push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchurl,
nixosTests,
}:
stdenv.mkDerivation rec {
pname = "babeld";
version = "1.13.1";
src = fetchurl {
url = "https://www.irif.fr/~jch/software/files/${pname}-${version}.tar.gz";
hash = "sha256-FfJNJtoMz8Bzq83vAwnygeRoTyqnESb4JlcsTIRejdk=";
};
outputs = [
"out"
"man"
];
makeFlags = [
"PREFIX=${placeholder "out"}"
"ETCDIR=${placeholder "out"}/etc"
];
passthru.tests.babeld = nixosTests.babeld;
meta = with lib; {
homepage = "http://www.irif.fr/~jch/software/babel/";
description = "Loop-avoiding distance-vector routing protocol";
license = licenses.mit;
maintainers = with maintainers; [ hexa ];
platforms = platforms.linux;
mainProgram = "babeld";
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
let
version = "16.0.3";
in
stdenvNoCC.mkDerivation {
pname = "babelstone-han";
inherit version;
src = fetchzip {
url = "https://babelstone.co.uk/Fonts/Download/BabelStoneHan-${version}.zip";
hash = "sha256-HmmRJLs51hoHoKQYdjbiivnJl+RhcBwzkng+5PoqX10=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts/truetype
cp *.ttf $out/share/fonts/truetype
runHook postInstall
'';
meta = with lib; {
description = "Unicode CJK font with over 36000 Han characters";
homepage = "https://www.babelstone.co.uk/Fonts/Han.html";
license = licenses.arphicpl;
platforms = platforms.all;
maintainers = with maintainers; [ emily ];
};
}

View File

@@ -0,0 +1,78 @@
{
lib,
stdenv,
fetchurl,
gitUpdater,
autoreconfHook,
pkg-config,
glib,
libuuid,
popt,
elfutils,
enablePython ? false,
pythonPackages ? null,
swig,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "babeltrace";
version = "1.5.11";
src = fetchurl {
url = "https://www.efficios.com/files/babeltrace/babeltrace-${finalAttrs.version}.tar.bz2";
hash = "sha256-Z7Q6qu9clR+nrxpVfPcgGhH+iYdrfCK6CgPLwxbbWpw=";
};
nativeBuildInputs = [
# The pre-generated ./configure script uses an old autoconf version which
# breaks cross-compilation (replaces references to malloc with rpl_malloc).
# Re-generate with nixpkgs's autoconf. This requires glib to be present in
# nativeBuildInputs for its m4 macros to be present.
autoreconfHook
glib
pkg-config
]
++ lib.optionals enablePython [
swig
pythonPackages.setuptools
];
buildInputs = [
glib
libuuid
popt
elfutils
];
configureFlags = [
# --enable-debug-info (default) requires the configure script to run host
# executables to determine the elfutils library version, which cannot be done
# while cross compiling.
(lib.enableFeature (stdenv.hostPlatform == stdenv.buildPlatform) "debug-info")
]
++ lib.optionals enablePython [
# Using (lib.enableFeature enablePython "python-bindings") makes the
# configure script look for python dependencies even when
# enablePython==false. Adding the configure flag conditionally seems to
# solve this.
"--enable-python-bindings"
];
#
passthru.updateScript = gitUpdater {
url = "https://git.efficios.com/babeltrace.git";
rev-prefix = "v";
# Versions 2.x are packaged independently as babeltrace2
allowedVersions = "^1\\.";
};
meta = {
description = "Command-line tool and library to read and convert LTTng tracefiles";
homepage = "https://www.efficios.com/babeltrace";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
bjornfor
wentasah
];
};
})

View File

@@ -0,0 +1,82 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
autoreconfHook,
pkg-config,
glib,
elfutils,
bison,
flex,
asciidoc,
xmlto,
docbook_xml_dtd_45,
docbook_xsl,
enablePython ? false,
python ? null,
pythonPackages ? null,
swig,
ensureNewerSourcesForZipFilesHook,
}:
stdenv.mkDerivation rec {
pname = "babeltrace2";
version = "2.1.2";
src = fetchFromGitHub {
owner = "efficios";
repo = "babeltrace";
rev = "v${version}";
hash = "sha256-4vqeIwCWEAzsHTdM2S2grF7F4vPqiWTeTEZpxsqf2g8=";
};
outputs = [
"out"
"man"
"dev"
];
nativeBuildInputs = [
autoreconfHook
pkg-config
glib
bison
flex
asciidoc
xmlto
docbook_xml_dtd_45
docbook_xsl
]
++ lib.optionals enablePython [
swig
pythonPackages.setuptools
ensureNewerSourcesForZipFilesHook
];
buildInputs = [
glib
elfutils
]
++ lib.optional enablePython python;
configureFlags = [
(lib.enableFeature enablePython "python-bindings")
(lib.enableFeature enablePython "python-plugins")
(lib.enableFeature (stdenv.hostPlatform == stdenv.buildPlatform) "debug-info")
];
# For cross-compilation of Python bindings
makeFlags = [ "CFLAGS=-Wno-error=stringop-truncation -Wno-error=null-dereference" ];
enableParallelBuilding = true;
meta = {
description = "Babeltrace /ˈbæbəltreɪs/ is an open-source trace manipulation toolkit";
homepage = "https://babeltrace.org";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ wentasah ];
mainProgram = "babeltrace2";
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,29 @@
diff --git a/meson.build b/meson.build
index 2350a1f..56f015d 100644
--- a/meson.build
+++ b/meson.build
@@ -551,7 +551,7 @@ pkgconfig.generate(
variables: [
'datadir=${prefix}/share',
'pluginsdir=${libdir}/@0@'.format(lib_name),
- 'girdir=${datadir}/gir-1.0',
+ 'girdir=@0@/share/gir-1.0'.format(get_option('prefix-dev')),
'typelibdir=${libdir}/girepository-1.0',
],
uninstalled_variables: [
diff --git a/meson_options.txt b/meson_options.txt
index f9d558c..3cac593 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -9,6 +9,11 @@ option('enable-gir',
choices: ['auto', 'true', 'false'],
description: 'gobject introspection .gir generation'
)
+option('prefix-dev',
+ type: 'string',
+ value: '',
+ description: 'Like prefix but for dev output of the package'
+)
option('enable-vapi',
type: 'boolean',
value: 'true',

View File

@@ -0,0 +1,72 @@
{
stdenv,
lib,
fetchurl,
meson,
ninja,
pkg-config,
gi-docgen,
gobject-introspection,
lcms2,
vala,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "babl";
version = "0.1.116";
outputs = [
"out"
"dev"
"devdoc"
];
src = fetchurl {
url = "https://download.gimp.org/pub/babl/${lib.versions.majorMinor finalAttrs.version}/babl-${finalAttrs.version}.tar.xz";
hash = "sha256-UPrgaYZ8et4SWYiP8ePbhf7IbXCCUuU4W1pPOaeOxIM=";
};
patches = [
# Allow overriding path to dev output that will be hardcoded e.g. in pkg-config file.
./dev-prefix.patch
];
nativeBuildInputs = [
meson
ninja
pkg-config
gi-docgen
gobject-introspection
vala
];
buildInputs = [
lcms2
];
mesonFlags = [
"-Dprefix-dev=${placeholder "dev"}"
]
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
# Docs are opt-out in native but opt-in in cross builds.
"-Dwith-docs=true"
"-Denable-gir=true"
];
postFixup = ''
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
moveToOutput "share/doc" "$devdoc"
'';
meta = with lib; {
description = "Image pixel format conversion library";
mainProgram = "babl";
homepage = "https://gegl.org/babl/";
changelog = "https://gitlab.gnome.org/GNOME/babl/-/blob/BABL_${
replaceStrings [ "." ] [ "_" ] finalAttrs.version
}/NEWS";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.unix;
};
})

View File

@@ -0,0 +1,41 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "baboossh";
version = "1.2.1";
pyproject = true;
src = fetchFromGitHub {
owner = "cybiere";
repo = "baboossh";
tag = "v${version}";
hash = "sha256-E/a6dL6BpQ6D8v010d8/qav/fkxpCYNvSvoPAZsm0Hk=";
};
build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
cmd2
paramiko
python-libnmap
tabulate
];
# No tests available
doCheck = false;
pythonImportsCheck = [ "baboossh" ];
meta = {
description = "Tool to do SSH spreading";
homepage = "https://github.com/cybiere/baboossh";
changelog = "https://github.com/cybiere/baboossh/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "baboossh";
};
}

View File

@@ -0,0 +1,111 @@
{
lib,
python3Packages,
fetchFromGitHub,
installShellFiles,
testers,
backblaze-b2,
# executable is renamed to backblaze-b2 by default, to avoid collision with boost's 'b2'
execName ? "backblaze-b2",
}:
python3Packages.buildPythonApplication rec {
pname = "backblaze-b2";
version = "4.4.2";
pyproject = true;
src = fetchFromGitHub {
owner = "Backblaze";
repo = "B2_Command_Line_Tool";
tag = "v${version}";
hash = "sha256-ut1e/A36Tp4pgwZx+S8nYmjg3k/2CmRpdUfz3iOXTz0=";
};
nativeBuildInputs = with python3Packages; [
installShellFiles
argcomplete
];
build-system = with python3Packages; [
pdm-backend
];
dependencies = with python3Packages; [
argcomplete
arrow
b2sdk
phx-class-registry
docutils
rst2ansi
tabulate
tqdm
platformdirs
packaging
setuptools
];
pythonRelaxDeps = [ "phx-class-registry" ];
nativeCheckInputs = with python3Packages; [
backoff
more-itertools
pexpect
pytestCheckHook
pytest-xdist
tenacity
];
preCheck = ''
export HOME=$(mktemp -d)
'';
disabledTestPaths = [
# Test requires network
"test/integration/test_b2_command_line.py"
"test/integration/test_tqdm_closer.py"
# it's hard to make it work on nix
"test/integration/test_autocomplete.py"
"test/unit/test_console_tool.py"
# this one causes successive tests to fail
"test/unit/_cli/test_autocomplete_cache.py"
];
disabledTests = [
# Autocomplete is not successful in a sandbox
"test_autocomplete_installer"
"test_help"
"test_install_autocomplete"
];
postInstall =
lib.optionalString (execName != "b2") ''
mv "$out/bin/b2" "$out/bin/${execName}"
''
+ ''
installShellCompletion --cmd ${execName} \
--bash <(register-python-argcomplete ${execName}) \
--zsh <(register-python-argcomplete ${execName})
'';
passthru.tests.version =
(testers.testVersion {
package = backblaze-b2;
command = "${execName} version --short";
}).overrideAttrs
(old: {
# workaround the error: Permission denied: '/homeless-shelter'
# backblaze-b2 fails to create a 'b2' directory under the XDG config path
preHook = ''
export HOME=$(mktemp -d)
'';
});
meta = with lib; {
description = "Command-line tool for accessing the Backblaze B2 storage service";
homepage = "https://github.com/Backblaze/B2_Command_Line_Tool";
changelog = "https://github.com/Backblaze/B2_Command_Line_Tool/blob/${src.tag}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ hrdinka ];
mainProgram = "backblaze-b2";
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "backdown";
version = "1.1.2";
src = fetchFromGitHub {
owner = "Canop";
repo = "backdown";
rev = "v${version}";
hash = "sha256-3+XmMRZz3SHF1sL+/CUvu4uQ2scE4ACpcC0r4nWhdkM=";
};
cargoHash = "sha256-qVE4MOFr0YO+9rAbfnz92h0KocaLu+v2u5ompwY/o6k=";
meta = with lib; {
description = "File deduplicator";
homepage = "https://github.com/Canop/backdown";
changelog = "https://github.com/Canop/backdown/blob/${src.rev}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "backdown";
};
}

View File

@@ -0,0 +1,112 @@
{
python3,
lib,
runCommand,
fetchFromGitHub,
fetchurl,
gitUpdater,
}:
let
p = python3.pkgs;
self = p.buildPythonApplication rec {
pname = "backgroundremover";
version = "0.3.0";
pyproject = true;
build-system = [
p.setuptools
];
src = fetchFromGitHub {
owner = "nadermx";
repo = "backgroundremover";
rev = "v${version}";
hash = "sha256-fWazMDjc+EoXvO7Iq+zwtJaMEU64ajpO6JtlvU5T0nc=";
};
models = runCommand "background-remover-models" { } ''
mkdir $out
cat ${src}/models/u2a{a,b,c,d} > $out/u2net.pth
cat ${src}/models/u2ha{a,b,c,d} > $out/u2net_human_seg.pth
cp ${src}/models/u2netp.pth $out
'';
postPatch = ''
rm -rf *dist
substituteInPlace backgroundremover/bg.py backgroundremover/u2net/detect.py \
--replace-fail 'os.path.expanduser(os.path.join("~", ".u2net", model_name + ".pth"))' "os.path.join(\"$models\", model_name + \".pth\")"
substituteInPlace backgroundremover/bg.py \
--replace-fail 'import moviepy.editor' 'import moviepy'
'';
pythonRelaxDeps = [
"pillow"
"torchvision"
"moviepy"
];
dependencies = [
p.certifi
p.charset-normalizer
p.ffmpeg-python
p.filelock
p.filetype
p.hsh
p.idna
p.more-itertools
p.moviepy
p.numpy
p.pillow
p.pymatting
p.pysocks
p.requests
p.scikit-image
p.scipy
p.six
p.torch
p.torchvision
p.tqdm
p.urllib3
p.waitress
];
pythonImportsCheck = [ "backgroundremover" ];
passthru = {
inherit models;
tests = {
image =
let
# random no copyright car image from the internet
demoImage = fetchurl {
url = "https://pics.craiyon.com/2023-07-16/38653769ac3b4e068181cb5ab1e542a1.webp";
hash = "sha256-Kvd06eZdibgDbabVVe0+cNTeS1rDnMXIZZpPlHIlfBo=";
};
in
runCommand "backgroundremover-image-test.png"
{
buildInputs = [ self ];
}
''
export NUMBA_CACHE_DIR=$(mktemp -d)
backgroundremover -i ${demoImage} -o $out
'';
};
updateScript = gitUpdater { rev-prefix = "v"; };
};
doCheck = false; # no tests
meta = {
mainProgram = "backgroundremover";
description = "Command line tool to remove background from image and video, made by nadermx to power";
homepage = "https://BackgroundRemoverAI.com";
downloadPage = "https://github.com/nadermx/backgroundremover/releases";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.lucasew ];
};
};
in
self

View File

@@ -0,0 +1,20 @@
from argparse import ArgumentParser
from pathlib import Path
import backgroundremover.utilities as utilities
from backgroundremover import bg
parser = ArgumentParser()
parser.add_argument('input', type=Path)
parser.add_argument('output', type=Path)
args = parser.parse_args()
input_bytes = args.input.read_bytes()
output_bytes = bg.remove(
input_bytes,
)
args.output.write_bytes(output_bytes)

View File

@@ -0,0 +1,125 @@
{
buildGoModule,
fetchFromGitHub,
gzip,
iana-etc,
lib,
libredirect,
nodejs,
pnpm_9,
restic,
stdenv,
util-linux,
makeBinaryWrapper,
}:
let
pname = "backrest";
version = "1.9.2";
src = fetchFromGitHub {
owner = "garethgeorge";
repo = "backrest";
tag = "v${version}";
hash = "sha256-3lAWViC9K34R8la/z57kjGJmMmletGd8pJ1dDt+BeKQ=";
};
frontend = stdenv.mkDerivation (finalAttrs: {
inherit version;
pname = "${pname}-webui";
src = "${src}/webui";
nativeBuildInputs = [
nodejs
pnpm_9.configHook
];
pnpmDeps = pnpm_9.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 1;
hash = "sha256-vJgsU0OXyAKjUJsPOyIY8o3zfNW1BUZ5IL814wmJr3o=";
};
buildPhase = ''
runHook preBuild
export BACKREST_BUILD_VERSION=${version}
pnpm build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir $out
cp -r dist/* $out
runHook postInstall
'';
});
in
buildGoModule {
inherit pname src version;
postPatch = ''
sed -i -e \
'/func installRestic(targetPath string) error {/a\
return fmt.Errorf("installing restic from an external source is prohibited by nixpkgs")' \
internal/resticinstaller/resticinstaller.go
'';
vendorHash = "sha256-oycV8JAJQF/PNc7mmYGzkZbpG8pMwxThmuys9e0+hcc=";
nativeBuildInputs = [
gzip
makeBinaryWrapper
];
preBuild = ''
mkdir -p ./webui/dist
cp -r ${frontend}/* ./webui/dist
go generate -skip="npm" ./...
'';
nativeCheckInputs = [
util-linux
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ libredirect.hook ];
checkFlags =
let
skippedTests = [
"TestMultihostIndexSnapshots"
"TestRunCommand"
"TestSnapshot"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
"TestBackup" # relies on ionice
"TestCancelBackup"
];
in
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
preCheck = ''
# Use restic from nixpkgs, otherwise download fails in sandbox
export BACKREST_RESTIC_COMMAND="${restic}/bin/restic"
export HOME=$(pwd)
''
+ lib.optionalString (stdenv.hostPlatform.isDarwin) ''
export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/services=${iana-etc}/etc/services
'';
doCheck = true;
postInstall = ''
wrapProgram $out/bin/backrest \
--set-default BACKREST_RESTIC_COMMAND "${lib.getExe restic}"
'';
meta = {
description = "Web UI and orchestrator for restic backup";
homepage = "https://github.com/garethgeorge/backrest";
changelog = "https://github.com/garethgeorge/backrest/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ iedame ];
mainProgram = "backrest";
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,30 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "backward";
version = "1.6";
src = fetchFromGitHub {
owner = "bombela";
repo = "backward-cpp";
rev = "v${finalAttrs.version}";
sha256 = "sha256-2k5PjwFxgA/2XPqJrPHxgSInM61FBEcieppBx+MAUKw=";
};
nativeBuildInputs = [
cmake
];
meta = {
description = "Beautiful stack trace pretty printer for C++";
homepage = "https://github.com/bombela/backward-cpp";
license = lib.licenses.mit;
platforms = lib.platforms.all;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "bacnet-stack";
version = "1.3.5";
src = fetchFromGitHub {
owner = "bacnet-stack";
repo = "bacnet-stack";
rev = "bacnet-stack-${version}";
sha256 = "sha256-Iwo0bNulKdFNwNU2xj6Uin+5hQt1I3N6+zso5BHrIOU=";
};
hardeningDisable = [ "all" ];
buildPhase = ''
make BUILD=debug BACNET_PORT=linux BACDL_DEFINE=-DBACDL_BIP=1 BACNET_DEFINES=" -DPRINT_ENABLED=1 -DBACFILE -DBACAPP_ALL -DBACNET_PROPERTY_LISTS"
'';
installPhase = ''
mkdir $out
cp -r bin $out/bin
'';
meta = with lib; {
description = "BACnet open source protocol stack for embedded systems, Linux, and Windows";
platforms = platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ WhittlesJr ];
};
}

View File

@@ -0,0 +1,87 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
installShellFiles,
pkg-config,
alsa-lib,
versionCheckHook,
bacon,
buildPackages,
nix-update-script,
withSound ? false,
}:
let
soundDependencies =
lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# bindgenHook is only included on darwin as it is needed to build `coreaudio-sys`, a darwin-specific crate
rustPlatform.bindgenHook
];
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "bacon";
version = "3.18.0";
src = fetchFromGitHub {
owner = "Canop";
repo = "bacon";
tag = "v${finalAttrs.version}";
hash = "sha256-YdlNJWsKGkXvpcA8un3eNfLVBlU6nalVyO/dhDAQF9k=";
};
cargoHash = "sha256-vGrWs8OkoqPO/oEiGZXrMxIKVA3u4gsaXgF1QUQT3kw=";
buildFeatures = lib.optionals withSound [
"sound"
];
nativeBuildInputs = [
installShellFiles
]
++ lib.optionals withSound [
pkg-config
];
buildInputs = lib.optionals withSound soundDependencies;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
postInstall =
let
bacon = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/bacon";
in
lib.optionalString (stdenv.hostPlatform.emulatorAvailable buildPackages) ''
installShellCompletion --cmd bacon \
--bash <(COMPLETE=bash ${bacon}) \
--fish <(COMPLETE=fish ${bacon}) \
--zsh <(COMPLETE=zsh ${bacon})
'';
passthru = {
tests = {
withSound = bacon.override { withSound = true; };
};
updateScript = nix-update-script { };
};
meta = {
description = "Background rust code checker";
mainProgram = "bacon";
homepage = "https://github.com/Canop/bacon";
changelog = "https://github.com/Canop/bacon/blob/v${finalAttrs.version}/CHANGELOG.md";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [
FlorianFranzen
matthiasbeyer
];
};
})

View File

@@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchurl,
sqlite,
libpq,
zlib,
acl,
ncurses,
openssl,
readline,
gettext,
}:
stdenv.mkDerivation rec {
pname = "bacula";
version = "15.0.3";
src = fetchurl {
url = "mirror://sourceforge/bacula/${pname}-${version}.tar.gz";
sha256 = "sha256-KUr9PS651bccPQ6I/fGetRO/24Q7KNNcBVLkrgYoJ6E=";
};
# libtool.m4 only matches macOS 10.*
postPatch = lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) ''
substituteInPlace configure \
--replace "10.*)" "*)"
'';
buildInputs = [
libpq
sqlite
zlib
ncurses
openssl
readline
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
gettext # bacula requires CoreFoundation, but its `configure` script will only link it when it detects libintl.
]
# acl relies on attr, which I can't get to build on darwin
++ lib.optional (!stdenv.hostPlatform.isDarwin) acl;
configureFlags = [
"--with-sqlite3=${sqlite.dev}"
"--with-postgresql=${lib.getDev libpq}"
"--with-logdir=/var/log/bacula"
"--with-working-dir=/var/lib/bacula"
"--mandir=\${out}/share/man"
]
++
lib.optional (stdenv.buildPlatform != stdenv.hostPlatform)
"ac_cv_func_setpgrp_void=${if stdenv.hostPlatform.isBSD then "no" else "yes"}"
++ lib.optionals stdenv.hostPlatform.isDarwin [
# baculas `configure` script fails to detect CoreFoundation correctly,
# but these symbols are available in the nixpkgs CoreFoundation framework.
"gt_cv_func_CFLocaleCopyCurrent=yes"
"gt_cv_func_CFPreferencesCopyAppValue=yes"
];
installFlags = [
"logdir=\${out}/logdir"
"working_dir=\${out}/workdir"
];
postInstall = ''
mkdir -p $out/bin
ln -s $out/sbin/* $out/bin
'';
meta = with lib; {
description = "Enterprise ready, Network Backup Tool";
homepage = "http://bacula.org/";
license = with licenses; [
agpl3Only
bsd2
];
maintainers = with maintainers; [
lovek323
eleanor
];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,82 @@
{
lib,
meson,
ninja,
fetchFromGitHub,
appstream-glib,
desktop-file-utils,
gdk-pixbuf,
gettext,
glib,
gobject-introspection,
gtk4,
gtksourceview5,
libadwaita,
libxml2,
pkg-config,
python3Packages,
wrapGAppsHook4,
}:
python3Packages.buildPythonApplication rec {
pname = "bada-bib";
version = "0.8.1";
format = "other";
src = fetchFromGitHub {
owner = "RogerCrocker";
repo = "BadaBib";
tag = "v${version}";
sha256 = "sha256-8lpkmQCVh94+qhFJijAIVyYeJRFz2u/OYR1C5E+gtOE=";
};
nativeBuildInputs = [
gettext
gobject-introspection
libxml2
meson
ninja
pkg-config
wrapGAppsHook4
];
buildInputs = [
gdk-pixbuf
glib
gtk4
gtksourceview5
libadwaita
];
nativeCheckInputs = [
appstream-glib
desktop-file-utils
];
pythonPath = with python3Packages; [
bibtexparser
pygobject3
];
postPatch = ''
patchShebangs build-aux/meson/postinstall.py
'';
dontWrapGApps = true; # Needs python wrapper
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
postFixup = ''
wrapPythonProgramsIn "$out/libexec" "$out $pythonPath"
'';
meta = with lib; {
homepage = "https://github.com/RogerCrocker/BadaBib";
description = "Simple BibTeX Viewer and Editor";
mainProgram = "badabib";
maintainers = [ maintainers.Cogitri ];
license = licenses.gpl3Plus;
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
fetchFromGitHub,
gitUpdater,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "badchars";
version = "0.5.0";
pyproject = true;
src = fetchFromGitHub {
owner = "cytopia";
repo = "badchars";
tag = version;
hash = "sha256-VWe3k34snEviBK7VBCDTWAu3YjZfh1gXHXjlnFlefJw=";
};
build-system = with python3.pkgs; [ setuptools ];
# no tests are available and it can't be imported (it's only a script, not a module)
doCheck = false;
passthru.updateScript = gitUpdater { };
meta = {
description = "HEX badchar generator for different programming languages";
longDescription = ''
A HEX bad char generator to instruct encoders such as shikata-ga-nai to
transform those to other chars.
'';
homepage = "https://github.com/cytopia/badchars";
changelog = "https://github.com/cytopia/badchars/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "badchars";
};
}

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "baddns";
version = "1.11.236";
pyproject = true;
src = fetchFromGitHub {
owner = "blacklanternsecurity";
repo = "baddns";
tag = version;
hash = "sha256-GaUZ3WLIxACsdSe262Ie1R1m8K/5X2ILGs6PWm/poUI=";
};
pythonRelaxDeps = true;
build-system = with python3.pkgs; [
poetry-core
poetry-dynamic-versioning
];
dependencies = with python3.pkgs; [
colorama
dnspython
httpx
python-dateutil
python-whois
pyyaml
setuptools
tldextract
];
nativeCheckInputs = with python3.pkgs; [
mock
pyfakefs
pytest-asyncio
pytest-httpx
pytest-mock
pytestCheckHook
];
pythonImportsCheck = [ "baddns" ];
disabledTests = [
# Tests require network access
"test_cli_cname_http"
"test_cli_direct"
"test_cli_validation_customnameservers_valid"
"test_cname_http_bigcartel_match"
"test_cname_whois_unregistered_baddata"
"test_cname_whois_unregistered_match"
"test_cname_whois_unregistered_missingdata"
"test_modules_customnameservers"
"test_references_cname_css"
"test_references_cname_js"
];
meta = {
description = "Tool to check subdomains for subdomain takeovers and other DNS issues";
homepage = "https://github.com/blacklanternsecurity/baddns/";
changelog = "https://github.com/blacklanternsecurity/baddns/releases/tag/${src.tag}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "baddns";
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "badger";
version = "4.8.0";
src = fetchFromGitHub {
owner = "dgraph-io";
repo = "badger";
rev = "v${version}";
hash = "sha256-LkJp0ixEJcD0mGeafjFoxjekeyep2nbZPXgVcMEofAU=";
};
vendorHash = "sha256-I7N85gdf4Bm/0zTcdFfbpah9veSpOzZcTvd7Ku5Xqpg=";
subPackages = [ "badger" ];
doCheck = false;
meta = with lib; {
description = "Fast key-value DB in Go";
homepage = "https://github.com/dgraph-io/badger";
license = licenses.asl20;
mainProgram = "badger";
maintainers = with maintainers; [ farcaller ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
badkeys,
fetchFromGitHub,
python3Packages,
testers,
}:
python3Packages.buildPythonApplication rec {
pname = "badkeys";
version = "0.0.14";
pyproject = true;
src = fetchFromGitHub {
owner = "badkeys";
repo = "badkeys";
tag = "v${version}";
hash = "sha256-+vG0/RO36JPJQ6PB7y6PBAqs4KkMRR21GdTdx/UHHKE=";
};
build-system = with python3Packages; [
setuptools
setuptools-scm
];
dependencies = with python3Packages; [
cryptography
gmpy2
];
optional-dependencies = with python3Packages; [
dnspython
paramiko
];
nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
pythonImportsCheck = [ "badkeys" ];
passthru = {
tests.version = testers.testVersion { package = badkeys; };
};
meta = {
description = "Tool to find common vulnerabilities in cryptographic public keys";
homepage = "https://badkeys.info/";
changelog = "https://github.com/badkeys/badkeys/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ getchoo ];
mainProgram = "badkeys";
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
fetchurl,
appimageTools,
makeWrapper,
}:
appimageTools.wrapAppImage rec {
pname = "badlion-client";
version = "4.5.4";
src = appimageTools.extractType2 {
inherit pname version;
src = fetchurl {
name = "badlion-client-linux";
# https://www.badlion.net/download/client/latest/linux
url = "https://web.archive.org/web/20250416011033/https://client-updates.badlion.net/BadlionClient";
hash = "sha256-M2aG3vb1EBpvx8ODs67Ua1R7lBXSe2oIcSwFzSz91n4=";
};
};
nativeBuildInputs = [ makeWrapper ];
extraInstallCommands = ''
install -Dm444 ${src}/BadlionClient.desktop $out/share/applications/BadlionClient.desktop
install -Dm444 ${src}/BadlionClient.png $out/share/pixmaps/BadlionClient.png
substituteInPlace $out/share/applications/BadlionClient.desktop \
--replace-fail "Exec=AppRun --no-sandbox %U" "Exec=badlion-client"
wrapProgram $out/bin/badlion-client \
--set APPIMAGE 1
'';
extraPkgs = pkgs: [ pkgs.xorg.libxshmfence ];
meta = {
description = "Most Complete All-In-One Mod Library for Minecraft with 100+ Mods, FPS Improvements, and more";
homepage = "https://client.badlion.net";
license = lib.licenses.unfree;
maintainers = [ ];
mainProgram = "badlion-client";
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "badrobot";
version = "0.1.4";
src = fetchFromGitHub {
owner = "controlplaneio";
repo = "badrobot";
rev = "v${version}";
sha256 = "sha256-U3b5Xw+GjnAEXteivztHdcAcXx7DYtgaUbW5oax0mIk=";
};
vendorHash = "sha256-oYdkCEdrw1eE5tnKveeJM3upRy8hOVc24JNN1bLX+ec=";
nativeBuildInputs = [ installShellFiles ];
ldflags = [
"-s"
"-w"
"-X github.com/controlplaneio/badrobot/cmd.version=v${version}"
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd badrobot \
--bash <($out/bin/badrobot completion bash) \
--fish <($out/bin/badrobot completion fish) \
--zsh <($out/bin/badrobot completion zsh)
'';
meta = {
homepage = "https://github.com/controlplaneio/badrobot";
changelog = "https://github.com/controlplaneio/badrobot/blob/v${version}/CHANGELOG.md";
description = "Operator Security Audit Tool";
mainProgram = "badrobot";
longDescription = ''
Badrobot is a Kubernetes Operator audit tool. It statically analyses
manifests for high risk configurations such as lack of security
restrictions on the deployed controller and the permissions of an
associated clusterole. The risk analysis is primarily focussed on the
likelihood that a compromised Operator would be able to obtain full
cluster permissions.
'';
license = with lib.licenses; [ asl20 ];
maintainers = with lib.maintainers; [ jk ];
};
}

View File

@@ -0,0 +1 @@
{ python3Packages }: with python3Packages; toPythonApplication badsecrets

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
openssl,
nss,
pkg-config,
nspr,
bash,
debug ? false,
}:
stdenv.mkDerivation rec {
pname = "badvpn";
version = "1.999.130";
src = fetchFromGitHub {
owner = "ambrop72";
repo = "badvpn";
tag = version;
sha256 = "sha256-bLTDpq3ohUP+KooPvhv1/AZfdo0HwB3g9QOuE2E/pmY=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
openssl
nss
nspr
];
preConfigure = ''
find . -name '*.sh' -exec sed -e 's@#!/bin/sh@${stdenv.shell}@' -i '{}' ';'
find . -name '*.sh' -exec sed -e 's@#!/bin/bash@${bash}/bin/bash@' -i '{}' ';'
cmakeFlagsArray=("-DCMAKE_BUILD_TYPE=" "-DCMAKE_C_FLAGS=-O3 ${
lib.optionalString (!debug) "-DNDEBUG"
}");
'';
meta = with lib; {
description = "Set of network-related (mostly VPN-related) tools";
license = licenses.bsd3;
maintainers = with maintainers; [ raskin ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
stdenvNoCC,
fetchurl,
}:
stdenvNoCC.mkDerivation rec {
pname = "baekmuk-ttf";
version = "2.2";
src = fetchurl {
url = "http://kldp.net/baekmuk/release/865-${pname}-${version}.tar.gz";
hash = "sha256-CKt9/7VdWIfMlCzjcPXjO3VqVfu06vC5DyRAcOjVGII=";
};
installPhase = ''
runHook preInstall
install -m444 -Dt $out/share/fonts ttf/*.ttf
install -m444 -Dt $out/share/doc/${pname}-${version} COPYRIGHT*
runHook postInstall
'';
meta = {
description = "Korean font";
homepage = "http://kldp.net/projects/baekmuk/";
license = lib.licenses.baekmuk;
};
}

View File

@@ -0,0 +1,105 @@
{
lib,
python3Packages,
fetchFromGitHub,
writableTmpDirAsHomeHook,
}:
python3Packages.buildPythonApplication rec {
pname = "bagels";
version = "0.3.9";
pyproject = true;
src = fetchFromGitHub {
owner = "EnhancedJax";
repo = "bagels";
tag = version;
hash = "sha256-LlEQ0by6Si37e8FvC4agjLy8eanizSA1iq44BaQ8D5o=";
};
build-system = with python3Packages; [
hatchling
];
pythonRelaxDeps = true;
dependencies = with python3Packages; [
aiohappyeyeballs
aiohttp-jinja2
aiohttp
aiosignal
annotated-types
attrs
blinker
click-default-group
click
frozenlist
idna
itsdangerous
linkify-it-py
markdown-it-py
markupsafe
mdit-py-plugins
mdurl
msgpack
multidict
numpy
packaging
platformdirs
plotext
propcache
pydantic-core
pydantic
pygments
python-dateutil
pyyaml
requests
rich
sqlalchemy
textual
tomli
typing-extensions
uc-micro-py
werkzeug
xdg-base-dirs
yarl
];
nativeCheckInputs = [
writableTmpDirAsHomeHook
]
++ (with python3Packages; [
freezegun
pytestCheckHook
]);
disabledTests = [
# AssertionError: assert 1 == 0
"test_delete_category"
# AttributeError: 'NoneType' object has no attribute 'defaults'
"test_basic_balance_calculation"
"test_combined_balance_calculation"
"test_get_days_in_period"
"test_get_period_average"
"test_get_period_figures"
"test_get_start_end_of_period"
"test_get_start_end_of_week"
"test_split_balance_calculation"
"test_transfer_balance_calculation"
];
meta = {
homepage = "https://github.com/EnhancedJax/Bagels";
description = "Powerful expense tracker that lives in your terminal";
longDescription = ''
Bagels expense tracker is a TUI application where you can track and analyse your money flow, with convenience oriented features and a complete interface.
'';
changelog = "https://github.com/EnhancedJax/Bagels/releases/tag/${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [
loc
];
mainProgram = "bagels";
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
fetchFromGitHub,
rustPlatform,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "bagr";
version = "0.3.0";
src = fetchFromGitHub {
owner = "pwinckles";
repo = "bagr";
tag = "v${finalAttrs.version}";
hash = "sha256-tvo9/ywPhYgqj4i+o6lYOmrVnLcyciM7HPdT2dKerO8=";
};
cargoHash = "sha256-r4tgDPyLxTjq/sxNLvlX/2MePUfOwNgranQSSbgDtu0=";
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
versionCheckProgramArg = "--version";
meta = {
description = "Command line utility for interacting with BagIt bags (RFC 8493)";
homepage = "https://github.com/pwinckles/bagr";
license = lib.licenses.asl20;
mainProgram = "bagr";
maintainers = with lib.maintainers; [
jezcope
];
platforms = with lib.platforms; unix ++ windows;
};
})

View File

@@ -0,0 +1,49 @@
{
fetchFromGitHub,
buildGoModule,
lib,
versionCheckHook,
}:
buildGoModule rec {
pname = "baidupcs-go";
version = "3.9.9";
src = fetchFromGitHub {
owner = "qjfoidnh";
repo = "BaiduPCS-Go";
rev = "v${version}";
hash = "sha256-x0oEuj8LoR0yUkKOzI27u3AIFVDDV7vMHCqvjENHwv8=";
};
vendorHash = "sha256-hW+IrzS5+DublQUIIcecL08xoauTjba9qnAtpzNeDXw=";
doCheck = false;
ldflags = [
"-X main.Version=${version}"
];
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/${meta.mainProgram}";
postInstall = ''
rm -f $out/bin/AndroidNDKBuild
ln -s $out/bin/BaiduPCS-Go $out/bin/baidupcs-go || true
'';
postVersionCheck = ''
rm -f $out/bin/pcs_config.json
'';
meta = {
mainProgram = "BaiduPCS-Go";
maintainers = with lib.maintainers; [ xddxdd ];
description = "Baidu Netdisk commandline client, mimicking Linux shell file handling commands";
homepage = "https://github.com/qjfoidnh/BaiduPCS-Go";
license = lib.licenses.asl20;
};
}

3208
pkgs/by-name/ba/baikal/composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,25 @@
{
php,
fetchFromGitHub,
lib,
}:
php.buildComposerProject2 (finalAttrs: {
pname = "baikal";
version = "0.10.1";
src = fetchFromGitHub {
owner = "sabre-io";
repo = "Baikal";
tag = finalAttrs.version;
hash = "sha256-YQQwTdwfHQZdUhO5HbScj/Bl8ype7TtPI3lHjvz2k04=";
};
# It doesn't provide a composer.lock file, we have to generate manually.
composerLock = ./composer.lock;
vendorHash = "sha256-dYg7cULL4gquR5EenA0lD9ZC9Ge4qNwFFDNhELKgSso=";
meta = {
description = "Lightweight CalDAV+CardDAV server that offers an extensive web interface with easy management of users, address books and calendars";
homepage = "https://sabre.io/baikal/";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ wrvsrx ];
};
})

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchFromGitHub,
unstableGitUpdater,
}:
stdenv.mkDerivation {
pname = "bakelite";
version = "0.4.2-unstable-2024-08-02";
src = fetchFromGitHub {
owner = "richfelker";
repo = "bakelite";
rev = "bc79a16b4414702c579143154d94a86666e99b78";
hash = "sha256-rRJrtCcgfbqC/4qQiTVeUUcPqoJlNfitYRqIO58AmpA=";
};
hardeningEnable = [ "pie" ];
preBuild = ''
# pipe2() is only exposed with _GNU_SOURCE
# Upstream makefile explicitly uses -O3 to improve SHA-3 performance
makeFlagsArray+=( CFLAGS="-D_GNU_SOURCE -g -O3" )
'';
installPhase = ''
mkdir -p $out/bin
cp bakelite $out/bin
'';
passthru = {
updateScript = unstableGitUpdater {
tagPrefix = "v";
};
};
meta = {
homepage = "https://github.com/richfelker/bakelite";
description = "Incremental backup with strong cryptographic confidentality";
mainProgram = "bakelite";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ mvs ];
# no support for Darwin (yet: https://github.com/richfelker/bakelite/pull/5)
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,26 @@
{ stdenvNoCC, fetchurl }:
stdenvNoCC.mkDerivation rec {
pname = "bakoma-ttf";
version = "2.2";
src = fetchurl {
name = "${pname}.tar.bz2";
url = "http://tarballs.nixos.org/sha256/1j1y3cq6ys30m734axc0brdm2q9n2as4h32jws15r7w5fwr991km";
hash = "sha256-dYaUMneFn1yC5lIMSLQSNmFRW16AdUXGqWBobzAbPsg=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts/truetype
cp ttf/*.ttf $out/share/fonts/truetype
runHook postInstall
'';
meta = {
description = "TrueType versions of the Computer Modern and AMS TeX Fonts";
homepage = "https://www.ctan.org/tex-archive/fonts/cm/ps-type1/bakoma/ttf/";
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
python3,
}:
buildNpmPackage rec {
pname = "balanceofsatoshis";
version = "19.4.14";
src = fetchFromGitHub {
owner = "alexbosworth";
repo = "balanceofsatoshis";
tag = "v${version}";
hash = "sha256-lXwE7/7ZWO6GD4SY0BPh/QXNpxkCYJS00Gjna0DkOE0=";
};
npmDepsHash = "sha256-WKpbYzNd0srD8yVB7Xa4v4qF9qHBiHHtKrYitnqEPTM=";
nativeBuildInputs = [ python3 ];
dontNpmBuild = true;
npmFlags = [ "--ignore-scripts" ];
meta = {
changelog = "https://github.com/alexbosworth/balanceofsatoshis/blob/${src.rev}/CHANGELOG.md";
description = "Tool for working with the balance of your satoshis on LND";
homepage = "https://github.com/alexbosworth/balanceofsatoshis";
license = lib.licenses.mit;
mainProgram = "bos";
maintainers = with lib.maintainers; [ mariaa144 ];
};
}

View File

@@ -0,0 +1,15 @@
--- result/share/balatro/globals.lua 1970-01-01 01:00:01.000000000 +0100
+++ result/share/balatro/globals.lua 1970-01-01 01:00:01.000000000 +0100
@@ -56,6 +56,12 @@ function Game:set_globals()
self.F_CRASH_REPORTS = false
end
+ if love.system.getOS() == 'Linux' then
+ self.F_SAVE_TIMER = 5
+ self.F_DISCORD = true
+ self.F_ENGLISH_ONLY = false
+ end
+
if love.system.getOS() == 'Nintendo Switch' then
self.F_HIDE_BETA_LANGS = true
self.F_BASIC_CREDITS = true

View File

@@ -0,0 +1,78 @@
{
stdenv,
lib,
love,
lovely-injector,
p7zip,
copyDesktopItems,
makeWrapper,
makeDesktopItem,
requireFile,
withMods ? true,
withLinuxPatch ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "balatro";
version = "1.0.1o";
src = requireFile {
name = "Balatro-${finalAttrs.version}.exe";
url = "https://store.steampowered.com/app/2379780/Balatro/";
# Use `nix --extra-experimental-features nix-command hash file --sri --type sha256` to get the correct hash
hash = "sha256-DXX+FkrM8zEnNNSzesmHiN0V8Ljk+buLf5DE5Z3pP0c=";
};
nativeBuildInputs = [
p7zip
copyDesktopItems
makeWrapper
];
buildInputs = [ love ] ++ lib.optional withMods lovely-injector;
dontUnpack = true;
desktopItems = [
(makeDesktopItem {
name = "balatro";
desktopName = "Balatro";
exec = "balatro";
keywords = [ "Game" ];
categories = [ "Game" ];
icon = "balatro";
})
];
buildPhase = ''
runHook preBuild
tmpdir=$(mktemp -d)
7z x ${finalAttrs.src} -o$tmpdir -y
${if withLinuxPatch then "patch $tmpdir/globals.lua -i ${./globals.patch}" else ""}
patchedExe=$(mktemp -u).zip
7z a $patchedExe $tmpdir/*
runHook postBuild
'';
# The `cat` bit is a hack suggested by whitelje (https://github.com/ethangreen-dev/lovely-injector/pull/66#issuecomment-2319615509)
# to make it so that lovely will pick up Balatro as the game name. The `LD_PRELOAD` bit is used to load lovely and it is the
# 'official' way of doing it.
installPhase = ''
runHook preInstall
install -Dm444 $tmpdir/resources/textures/2x/balatro.png -t $out/share/icons/
cat ${lib.getExe love} $patchedExe > $out/share/Balatro
chmod +x $out/share/Balatro
makeWrapper $out/share/Balatro $out/bin/balatro ${lib.optionalString withMods "--prefix LD_PRELOAD : '${lovely-injector}/lib/liblovely.so'"}
runHook postInstall
'';
meta = {
description = "Poker roguelike";
longDescription = ''
Balatro is a hypnotically satisfying deckbuilder where you play illegal poker hands,
discover game-changing jokers, and trigger adrenaline-pumping, outrageous combos.
'';
license = lib.licenses.unfree;
homepage = "https://store.steampowered.com/app/2379780/Balatro/";
maintainers = [ lib.maintainers.antipatico ];
platforms = love.meta.platforms;
mainProgram = "balatro";
};
})

View File

@@ -0,0 +1,78 @@
{
lib,
stdenv,
buildNpmPackage,
fetchFromGitHub,
nodejs_20,
versionCheckHook,
node-gyp,
python3,
udev,
cctools,
apple-sdk_12,
}:
let
buildNpmPackage' = buildNpmPackage.override {
nodejs = nodejs_20;
};
node-gyp' = node-gyp.override {
nodejs = nodejs_20;
};
in
buildNpmPackage' rec {
pname = "balena-cli";
version = "22.4.9";
src = fetchFromGitHub {
owner = "balena-io";
repo = "balena-cli";
rev = "v${version}";
hash = "sha256-Q3/2Uv7Lke7lBzcEPPgq5FWzWvBNdADvkXL4BBaHX9o=";
};
npmDepsHash = "sha256-7LVgD8uQEK1FQuWUsD7zgQrh0HB51XEkbp/TU7m1K3w=";
postPatch = ''
ln -s npm-shrinkwrap.json package-lock.json
'';
makeCacheWritable = true;
nativeBuildInputs = [
node-gyp'
python3
versionCheckHook
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
cctools
];
buildInputs =
lib.optionals stdenv.hostPlatform.isLinux [
udev
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
apple-sdk_12
];
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/balena";
meta = {
description = "Command line interface for balenaCloud or openBalena";
longDescription = ''
The balena CLI is a Command Line Interface for balenaCloud or openBalena. It is a software
tool available for Windows, macOS and Linux, used through a command prompt / terminal window.
It can be used interactively or invoked in scripts. The balena CLI builds on the balena API
and the balena SDK, and can also be directly imported in Node.js applications.
'';
homepage = "https://github.com/balena-io/balena-cli";
changelog = "https://github.com/balena-io/balena-cli/blob/v${version}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
kalebpace
doronbehar
];
mainProgram = "balena";
};
}

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchurl,
cmake,
SDL,
makeDesktopItem,
copyDesktopItems,
imagemagick,
}:
let
icon = fetchurl {
url = "https://baller.tuxfamily.org/king.png";
sha256 = "1xq2h87s648wjpjl72ds3xnnk2jp8ghbkhjzh2g4hpkq2zdz90hy";
};
in
stdenv.mkDerivation rec {
pname = "ballerburg";
version = "1.2.0";
src = fetchurl {
url = "https://download.tuxfamily.org/baller/ballerburg-${version}.tar.gz";
sha256 = "sha256-BiX0shPBGA8sshee8rxs41x+mdsrJzBqhpDDic6sYwA=";
};
nativeBuildInputs = [
cmake
copyDesktopItems
imagemagick
];
buildInputs = [ SDL ];
desktopItems = [
(makeDesktopItem {
name = "Ballerburg";
desktopName = "Ballerburg SDL";
exec = "_NET_WM_ICON=ballerburg ballerburg";
comment = meta.description;
icon = "ballerburg";
categories = [ "Game" ];
})
];
postInstall = ''
# Generate and install icon files
for size in 16 32 48 64 72 96 128 192 512 1024; do
mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
convert ${icon} -sample "$size"x"$size" \
-background white -gravity south -extent "$size"x"$size" \
$out/share/icons/hicolor/"$size"x"$size"/apps/ballerburg.png
done
'';
meta = with lib; {
description = "Classic cannon combat game";
mainProgram = "ballerburg";
longDescription = ''
Two castles, separated by a mountain, try to defeat each other with their cannonballs,
either by killing the opponent's king or by weakening the opponent enough so that the king capitulates.'';
homepage = "https://baller.tuxfamily.org/";
license = licenses.gpl3Plus;
maintainers = [ maintainers.j0hax ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,59 @@
{
ballerina,
lib,
writeText,
runCommand,
makeWrapper,
fetchzip,
stdenv,
openjdk17_headless,
}:
let
version = "2201.10.3";
codeName = "swan-lake";
openjdk = openjdk17_headless;
in
stdenv.mkDerivation {
pname = "ballerina";
inherit version;
src = fetchzip {
url = "https://dist.ballerina.io/downloads/${version}/ballerina-${version}-${codeName}.zip";
hash = "sha256-JVwxWRiOQaUZBkvxoLhKvktyQYnBtbCBZXZa6g6hoRQ=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
cp -rv distributions/ballerina-${version} $out
runHook postInstall
'';
preFixup = ''
wrapProgram $out/bin/bal --set JAVA_HOME ${openjdk}
'';
passthru.tests.smokeTest =
let
helloWorld = writeText "hello-world.bal" ''
import ballerina/io;
public function main() {
io:println("Hello, World!");
}
'';
in
runCommand "ballerina-${version}-smoketest" { } ''
${ballerina}/bin/bal run ${helloWorld} >$out
read result <$out
[[ $result = "Hello, World!" ]]
'';
meta = with lib; {
description = "Open-source programming language for the cloud";
mainProgram = "bal";
license = licenses.asl20;
platforms = openjdk.meta.platforms;
maintainers = with maintainers; [ eigengrau ];
sourceProvenance = with sourceTypes; [ binaryBytecode ];
};
}

View File

@@ -0,0 +1,111 @@
{
"depends": [
{
"method": "fetchzip",
"path": "/nix/store/zjgvbd2l57kn33qnngr17qdqsinwqhzl-source",
"rev": "46ecdd598dbafeb0e0ba38e87e6bc98b4637cd13",
"sha256": "1rsl8z2gsa0pqh4wx8dvdjf94b0wn4bfbvcq9bfcvc7qkmn96mkg",
"url": "https://github.com/disruptek/ups/archive/46ecdd598dbafeb0e0ba38e87e6bc98b4637cd13.tar.gz",
"ref": "0.4.0",
"packages": [
"ups"
],
"srcDir": ""
},
{
"method": "fetchzip",
"path": "/nix/store/sh8prqisw6dmi91hbi7c4x934vvgy46p-source",
"rev": "64f71af2fa4572c2bdf8987a56a427c1d88fc34f",
"sha256": "1slqsl9gj782hlfzpklxwdy0hip6hhykrk226xzq31sg40nfh9r6",
"url": "https://github.com/haltcase/glob/archive/64f71af2fa4572c2bdf8987a56a427c1d88fc34f.tar.gz",
"packages": [
"glob"
],
"srcDir": "src"
},
{
"method": "fetchzip",
"path": "/nix/store/z211zbzrd1808rpr5j8lgfzc7rqwqpbr-source",
"rev": "358c8969183dcf365cbc34f9c9c035da0f8c60c7",
"sha256": "1x2rp0wj048hvbrj7xkdm408adj16rr8wg4wdfynxxryl08vl30l",
"url": "https://github.com/disruptek/insideout/archive/358c8969183dcf365cbc34f9c9c035da0f8c60c7.tar.gz",
"ref": "0.1.0",
"packages": [
"insideout"
],
"srcDir": ""
},
{
"method": "fetchzip",
"path": "/nix/store/xpn694ibgipj8xak3j4bky6b3k0vp7hh-source",
"rev": "ec0cc6e64ea4c62d2aa382b176a4838474238f8d",
"sha256": "1fi9ls3xl20bmv1ikillxywl96i9al6zmmxrbffx448gbrxs86kg",
"url": "https://github.com/zevv/npeg/archive/ec0cc6e64ea4c62d2aa382b176a4838474238f8d.tar.gz",
"ref": "1.2.2",
"packages": [
"npeg"
],
"srcDir": "src"
},
{
"method": "fetchzip",
"path": "/nix/store/fclb7r25h7ldq4k8lrc9mc614nihyhp7-source",
"rev": "667736f52983239aa6b76a07605add23598362ca",
"sha256": "0y1a9p21hclrm2p3x018idrh4sk09hpr6csvcrnh5ka6baj6wj3k",
"url": "https://github.com/nim-works/cps/archive/667736f52983239aa6b76a07605add23598362ca.tar.gz",
"ref": "0.11.1",
"packages": [
"cps"
],
"srcDir": ""
},
{
"method": "fetchzip",
"path": "/nix/store/y6w1gzbf6i691z35rbn6kzrmf1n5bmdc-source",
"rev": "cb8b7bfdcdc2272aadf92153c668acd3c901bd6b",
"sha256": "1ggp5rvs217dv2n0p5ddm5h17pv2mc7724n8cd0b393kmsjiykhz",
"url": "https://github.com/nitely/nim-regex/archive/cb8b7bfdcdc2272aadf92153c668acd3c901bd6b.tar.gz",
"ref": "v0.25.0",
"packages": [
"regex"
],
"srcDir": "src"
},
{
"method": "fetchzip",
"path": "/nix/store/1mcck56sr1h1sf8gv87m761x6f3d1k0l-source",
"rev": "7c6ee4bfc184d7121896a098d68b639a96df7af1",
"sha256": "06j8d0bjbpv1iibqlmrac4qb61ggv17hvh6nv4pbccqk1rlpxhsq",
"url": "https://github.com/nitely/nim-unicodedb/archive/7c6ee4bfc184d7121896a098d68b639a96df7af1.tar.gz",
"ref": "v0.9.0",
"packages": [
"unicodedb"
],
"srcDir": "src"
},
{
"method": "fetchzip",
"path": "/nix/store/16fm03dql3pplz3ip40k0nbxw1gc0880-source",
"rev": "f5d50197b266173dd4ca4c6fdd30361398433bb4",
"sha256": "1cd3n9l45z60gpv0rc84v1ngkjxn0i45vz0lzy63052m7m0j2rks",
"url": "https://github.com/nitely/nim-unicodeplus/archive/f5d50197b266173dd4ca4c6fdd30361398433bb4.tar.gz",
"ref": "v0.9.1",
"packages": [
"unicodeplus"
],
"srcDir": "src"
},
{
"method": "fetchzip",
"path": "/nix/store/c4c1bbxd29gmjj543wma2sbya5wvw5yg-source",
"rev": "6845c68cf00c1546f49d628ae11334acba966bfb",
"sha256": "007bkx8dwy8n340zbp6wyqfsq9bh6q5ykav1ywdlwykyp1n909bh",
"url": "https://github.com/nitely/nim-segmentation/archive/6845c68cf00c1546f49d628ae11334acba966bfb.tar.gz",
"ref": "v0.1.0",
"packages": [
"segmentation"
],
"srcDir": "src"
}
]
}

View File

@@ -0,0 +1,55 @@
{
lib,
buildNimPackage,
fetchFromGitHub,
nim,
makeWrapper,
}:
buildNimPackage (finalAttrs: {
pname = "balls";
version = "5.4.0";
src = fetchFromGitHub {
owner = "disruptek";
repo = "balls";
rev = finalAttrs.version;
hash = "sha256-CMYkMkekVI0C1WUds+KBbRfjMte42kBAB2ddtQp8d+k=";
};
nativeBuildInputs = [ makeWrapper ];
lockFile = ./lock.json;
postPatch =
# Trim comments from the Nimble file.
''
sed \
-e 's/[[:space:]]* # .*$//g' \
-i balls.nimble
'';
preCheck = ''
echo 'path:"$projectDir/.."' > tests/nim.cfg
'';
postFixup =
let
lockAttrs = builtins.fromJSON (builtins.readFile finalAttrs.lockFile);
pathFlagOfFod = { path, srcDir, ... }: ''"--path:${path}/${srcDir}"'';
pathFlags = map pathFlagOfFod lockAttrs.depends;
in
''
wrapProgram $out/bin/balls \
--suffix PATH : ${lib.makeBinPath [ nim ]} \
--append-flags '--path:"${finalAttrs.src}" ${toString pathFlags}'
'';
meta = finalAttrs.src.meta // {
description = "Testing framework with balls";
homepage = "https://github.com/disruptek/balls";
mainProgram = "balls";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,89 @@
{
lib,
stdenv,
fetchFromGitLab,
glib,
gmime3,
gnutls,
gpgme,
gtk3,
gtksourceview4,
gtkspell3,
libcanberra-gtk3,
libesmtp,
libical,
libnotify,
libsecret,
openssl,
meson,
ninja,
pkg-config,
sqlite,
webkitgtk_4_0,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "balsa";
version = "2.6.5";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "GNOME";
repo = "balsa";
tag = finalAttrs.version;
hash = "sha256-KvgDIFbXmVkTqOibKF+8UhupEDgdhje600aSbmeKZqo=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wrapGAppsHook3
];
buildInputs = [
glib
gmime3
gnutls
gpgme
gtk3
gtksourceview4
gtkspell3
libcanberra-gtk3
libesmtp
libical
libnotify
libsecret
openssl
sqlite
webkitgtk_4_0
];
mesonFlags = [
(lib.mesonOption "sysconfdir" "etc")
];
configureFlags = [
"--with-canberra"
"--with-gtksourceview"
"--with-libsecret"
"--with-spell-checker=gtkspell"
"--with-sqlite"
"--with-ssl"
"--with-unique"
"--without-gnome"
];
enableParallelBuilding = true;
meta = {
description = "E-mail client for GNOME";
homepage = "https://gitlab.gnome.org/GNOME/balsa";
changelog = "https://gitlab.gnome.org/GNOME/balsa/-/blob/master/ChangeLog";
mainProgram = "balsa";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ timon ];
};
})

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitHub,
lua5_3,
python3,
}:
stdenv.mkDerivation rec {
pname = "bam";
version = "0.5.1";
src = fetchFromGitHub {
owner = "matricks";
repo = "bam";
rev = "v${version}";
sha256 = "13br735ig7lygvzyfd15fc2rdygrqm503j6xj5xkrl1r7w2wipq6";
};
nativeBuildInputs = [
lua5_3
python3
];
buildPhase = "${stdenv.shell} make_unix.sh";
checkPhase = "${python3.interpreter} scripts/test.py";
strictDeps = true;
installPhase = ''
mkdir -p "$out/share/bam"
cp -r docs examples tests "$out/share/bam"
mkdir -p "$out/bin"
cp bam "$out/bin"
'';
meta = with lib; {
description = "Yet another build manager";
mainProgram = "bam";
maintainers = with maintainers; [
raskin
];
platforms = platforms.linux;
license = licenses.zlib;
downloadPage = "http://matricks.github.com/bam/";
};
}

View File

@@ -0,0 +1,122 @@
{
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
gitUpdater,
libsForQt5,
pkg-config,
qt6Packages,
rtaudio_6,
rtmidi,
withQt6 ? false,
}:
let
qtPackages = if withQt6 then qt6Packages else libsForQt5;
in
stdenv.mkDerivation (finalAttrs: {
pname = "bambootracker" + lib.optionalString withQt6 "-qt6";
version = "0.6.5";
src = fetchFromGitHub {
owner = "BambooTracker";
repo = "BambooTracker";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-WoyOqInOOOIEwsMOc2yoTdh9UhJOvFKE1GfkxOuXDe0=";
};
patches = [
# Remove when version > 0.6.5
(fetchpatch {
name = "0001-bambootracker-Fix-compiler-warnings.patch";
url = "https://github.com/BambooTracker/BambooTracker/commit/d670cf8b6113318cd938cf19be76b6b14d3635f1.patch";
hash = "sha256-yyOMaOYKSc1hbbCL7wjFNPDmX2oMYo10J4hjZJss2zs=";
})
# Remove when version > 0.6.5
(fetchpatch {
name = "0002-bambootracker-Fix-GCC15-compat.patch";
url = "https://github.com/BambooTracker/BambooTracker/commit/92c0a7d1cfb05d1c6ae9482181c5c378082b772c.patch";
hash = "sha256-6K0RZD0LevggxFr92LaNmq+eMgOFJgFX60IgAw7tYdM=";
})
# Remove when version > 0.6.5
(fetchpatch {
name = "0003-bambootracker-Drop-unused-property.patch";
url = "https://github.com/BambooTracker/BambooTracker/commit/de4459f0315f099d3e0a2d20b938ec76285f2d46.patch";
hash = "sha256-zTh6i+hgQZ3kEid0IzQaR/PsrYlnhplccdlaS5g8FeA=";
})
];
postPatch = lib.optionalString withQt6 ''
# Work around lrelease finding in qmake being broken by using pre-Qt5.12 code path
# https://github.com/NixOS/nixpkgs/issues/214765
substituteInPlace BambooTracker/lang/lang.pri \
--replace 'equals(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 12)' 'if(true)'
'';
nativeBuildInputs = [
pkg-config
]
++ (with qtPackages; [
qmake
qttools
wrapQtAppsHook
]);
buildInputs = [
rtaudio_6
rtmidi
]
++ (
with qtPackages;
[
qtbase
]
++ lib.optionals stdenv.hostPlatform.isLinux [
qtwayland
]
++ lib.optionals withQt6 [
qt5compat
]
);
qmakeFlags = [
"CONFIG+=system_rtaudio"
"CONFIG+=system_rtmidi"
]
++ lib.optionals stdenv.cc.isClang [
# Clang is extra-strict about some deprecations
# https://github.com/BambooTracker/BambooTracker/issues/506
"CONFIG+=no_warnings_are_errors"
];
postConfigure = "make qmake_all";
# Wrapping the inside of the app bundles, avoiding double-wrapping
dontWrapQtApps = stdenv.hostPlatform.isDarwin;
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications
mv $out/{bin,Applications}/BambooTracker.app
ln -s $out/{Applications/BambooTracker.app/Contents/MacOS,bin}/BambooTracker
wrapQtApp $out/Applications/BambooTracker.app/Contents/MacOS/BambooTracker
'';
passthru = {
updateScript = gitUpdater {
rev-prefix = "v";
};
};
meta = {
description = "Tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
mainProgram = "BambooTracker";
homepage = "https://bambootracker.github.io/BambooTracker/";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ OPNA2608 ];
};
})

View File

@@ -0,0 +1,197 @@
{
stdenv,
lib,
binutils,
fetchFromGitHub,
cmake,
ninja,
pkg-config,
wrapGAppsHook3,
boost183,
cereal,
cgal_5,
curl,
dbus,
eigen,
expat,
ffmpeg,
gcc-unwrapped,
glew,
glfw,
glib,
glib-networking,
gmp,
gst_all_1,
gtest,
gtk3,
hicolor-icon-theme,
ilmbase,
libpng,
mpfr,
nlopt,
opencascade-occt_7_6,
openvdb,
opencv,
pcre,
systemd,
onetbb,
webkitgtk_4_1,
wxGTK31,
xorg,
withSystemd ? stdenv.hostPlatform.isLinux,
}:
let
wxGTK' =
(wxGTK31.override {
withCurl = true;
withPrivateFonts = true;
withWebKit = true;
}).overrideAttrs
(old: {
configureFlags = old.configureFlags ++ [
# Disable noisy debug dialogs
"--enable-debug=no"
];
});
in
stdenv.mkDerivation (finalAttrs: {
pname = "bambu-studio";
version = "02.02.02.56";
src = fetchFromGitHub {
owner = "bambulab";
repo = "BambuStudio";
tag = "v${finalAttrs.version}";
hash = "sha256-vg+sEIztFBfzROl2surRd4l/afZ+tGMtG65m3kDIPAY=";
};
nativeBuildInputs = [
cmake
ninja
pkg-config
wrapGAppsHook3
];
buildInputs = [
binutils
boost183
cereal
cgal_5
curl
dbus
eigen
expat
ffmpeg
gcc-unwrapped
glew
glfw
glib
glib-networking
gmp
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-good
gtk3
hicolor-icon-theme
ilmbase
libpng
mpfr
nlopt
opencascade-occt_7_6
openvdb
pcre
onetbb
webkitgtk_4_1
wxGTK'
xorg.libX11
opencv
]
++ lib.optionals withSystemd [ systemd ]
++ finalAttrs.checkInputs;
patches = [
# Fix for webkitgtk linking
./patches/0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch
# Fix an issue with
./patches/dont-link-opencv-world-bambu.patch
# Don't link osmesa
./patches/no-osmesa.patch
];
doCheck = true;
checkInputs = [ gtest ];
separateDebugInfo = true;
# The build system uses custom logic - defined in
# cmake/modules/FindNLopt.cmake in the package source - for finding the nlopt
# library, which doesn't pick up the package in the nix store. We
# additionally need to set the path via the NLOPT environment variable.
NLOPT = nlopt;
NIX_CFLAGS_COMPILE = toString [
"-DBOOST_TIMER_ENABLE_DEPRECATED"
# Disable compiler warnings that clutter the build log.
# It seems to be a known issue for Eigen:
# http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221
"-Wno-ignored-attributes"
"-I${opencv}/include/opencv4"
];
# prusa-slicer uses dlopen on `libudev.so` at runtime
NIX_LDFLAGS = lib.optionalString withSystemd "-ludev" + " -L${opencv}/lib -lopencv_imgcodecs";
# TODO: macOS
prePatch = ''
# Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
# now seems to be integrated into the main lib.
sed -i 's|nlopt_cxx|nlopt|g' cmake/modules/FindNLopt.cmake
'';
cmakeFlags = [
"-DSLIC3R_STATIC=0"
"-DSLIC3R_FHS=1"
"-DSLIC3R_GTK=3"
# Skips installing ffmpeg, since we BYO.
"-DFLATPAK=1"
# BambuStudio-specific
"-DBBL_RELEASE_TO_PUBLIC=1"
"-DBBL_INTERNAL_TESTING=0"
"-DDEP_WX_GTK3=ON"
"-DSLIC3R_BUILD_TESTS=0"
"-DCMAKE_CXX_FLAGS=-DBOOST_LOG_DYN_LINK"
];
preFixup = ''
gappsWrapperArgs+=(
--prefix LD_LIBRARY_PATH : "$out/lib"
# Fixes intermittent crash
# The upstream setup links in glew statically
--prefix LD_PRELOAD : "${glew.out}/lib/libGLEW.so"
)
'';
# needed to prevent collisions between the LICENSE.txt files of
# bambu-studio and orca-slicer.
postInstall = ''
mv $out/LICENSE.txt $out/share/BambuStudio/LICENSE.txt
mv $out/README.md $out/share/BambuStudio/README.md
'';
meta = {
description = "PC Software for BambuLab's 3D printers";
homepage = "https://github.com/bambulab/BambuStudio";
changelog = "https://github.com/bambulab/BambuStudio/releases/tag/v${finalAttrs.version}";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [
zhaofengli
dsluijk
];
mainProgram = "bambu-studio";
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,34 @@
From 7eed499898226222a949a792e0400ec10db4a1c9 Mon Sep 17 00:00:00 2001
From: Zhaofeng Li <hello@zhaofeng.li>
Date: Tue, 22 Nov 2022 13:00:39 -0700
Subject: [PATCH] [not for upstream] CMakeLists: Link against webkit2gtk in
libslic3r_gui
WebView.cpp uses symbols from webkitgtk directly. Upstream setup
links wxGTK statically so webkitgtk is already pulled in.
> /nix/store/039g378vc3pc3dvi9dzdlrd0i4q93qwf-binutils-2.39/bin/ld: slic3r/liblibslic3r_gui.a(WebView.cpp.o): undefined reference to symbol 'webkit_web_view_run_javascript_finish'
> /nix/store/039g378vc3pc3dvi9dzdlrd0i4q93qwf-binutils-2.39/bin/ld: /nix/store/8yvy428jy2nwq4dhmrcs7gj5r27a2pv6-webkitgtk-2.38.2+abi=4.0/lib/libwebkit2gtk-4.0.so.37: error adding symbols: DSO missing from command line
---
src/CMakeLists.txt | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9c5cb96..e92a0e3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -175,6 +175,11 @@ if (WIN32)
target_link_libraries(BambuStudio_app_gui PRIVATE boost_headeronly)
endif ()
+# We link against webkit2gtk symbols in src/slic3r/GUI/Widgets/WebView.cpp
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ target_link_libraries(libslic3r_gui "-lwebkit2gtk-4.1")
+endif ()
+
# Link the resources dir to where Slic3r GUI expects it
set(output_dlls_Release "")
set(output_dlls_Debug "")
--
2.38.1

View File

@@ -0,0 +1,14 @@
diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
index 2cdc525..44e6602 100644
--- a/src/libslic3r/CMakeLists.txt
+++ b/src/libslic3r/CMakeLists.txt
@@ -533,7 +533,8 @@ target_link_libraries(libslic3r
${OCCT_LIBS}
Clipper2
mcut
- opencv_world
+ opencv_core
+ opencv_imgproc
)
if(NOT WIN32)

View File

@@ -0,0 +1,13 @@
diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
index e695acd48..174e233e6 100644
--- a/src/slic3r/CMakeLists.txt
+++ b/src/slic3r/CMakeLists.txt
@@ -587,7 +587,7 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
FIND_LIBRARY(WAYLAND_EGL_LIBRARIES NAMES wayland-egl)
FIND_LIBRARY(WAYLAND_CLIENT_LIBRARIES NAMES wayland-client)
find_package(CURL REQUIRED)
- target_link_libraries(libslic3r_gui ${DBUS_LIBRARIES} OSMesa)
+ target_link_libraries(libslic3r_gui ${DBUS_LIBRARIES})
target_link_libraries(libslic3r_gui
OpenGL::EGL
${WAYLAND_SERVER_LIBRARIES}

View File

@@ -0,0 +1,112 @@
{
stdenv,
lib,
autoreconfHook,
gitUpdater,
gnome-common,
which,
fetchgit,
libgtop,
libwnck,
glib,
vala,
pkg-config,
libstartup_notification,
gobject-introspection,
gtk-doc,
docbook_xsl,
xorgserver,
dbus,
python3,
wrapGAppsHook3,
withDocs ? stdenv.buildPlatform.canExecute stdenv.hostPlatform,
}:
stdenv.mkDerivation rec {
pname = "bamf";
version = "0.5.6";
outputs = [
"out"
"dev"
]
++ lib.optionals withDocs [
"devdoc"
];
src = fetchgit {
url = "https://git.launchpad.net/~unity-team/bamf";
tag = version;
sha256 = "7U+2GcuDjPU8quZjkd8bLADGlG++tl6wSo0mUQkjAXQ=";
};
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
(python3.pythonOnBuildForHost.withPackages (ps: with ps; [ lxml ])) # Tests
autoreconfHook
dbus
docbook_xsl
gnome-common
gobject-introspection
gtk-doc # required for autoreconfHook, even when `withDocs = false`
pkg-config
vala
which
wrapGAppsHook3
xorgserver
];
buildInputs = [
glib
libgtop
libstartup_notification
libwnck
];
# Fix hard-coded path
# https://bugs.launchpad.net/bamf/+bug/1780557
postPatch = ''
substituteInPlace data/Makefile.am \
--replace '/usr/lib/systemd/user' '@prefix@/lib/systemd/user'
'';
configureFlags = [
"--enable-headless-tests"
]
++ lib.optionals withDocs [
"--enable-gtk-doc"
];
# Fix paths
makeFlags = [
"INTROSPECTION_GIRDIR=${placeholder "dev"}/share/gir-1.0/"
"INTROSPECTION_TYPELIBDIR=${placeholder "out"}/lib/girepository-1.0"
];
# TODO: Requires /etc/machine-id
doCheck = false;
strictDeps = true;
# Ignore deprecation errors
env.NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
passthru.updateScript = gitUpdater {
ignoredVersions = ".ubuntu.*";
};
meta = with lib; {
description = "Application matching framework";
longDescription = ''
Removes the headache of applications matching
into a simple DBus daemon and c wrapper library.
'';
homepage = "https://launchpad.net/bamf";
license = licenses.lgpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ davidak ];
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
jsoncpp,
pkg-config,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "bamtools";
version = "2.5.3";
src = fetchFromGitHub {
owner = "pezmaster31";
repo = "bamtools";
tag = "v${finalAttrs.version}";
hash = "sha256-3kIa407YgBpulh2koQQFK/RLmGEZvEvTnZyWKm+pngg=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
jsoncpp
zlib
];
doCheck = true;
meta = with lib; {
description = "C++ API & command-line toolkit for working with BAM data";
mainProgram = "bamtools";
homepage = "https://github.com/pezmaster31/bamtools";
changelog = "https://github.com/pezmaster31/bamtools/releases/tag/v${finalAttrs.version}";
license = licenses.mit;
maintainers = with maintainers; [ natsukium ];
platforms = platforms.unix;
};
})

View File

@@ -0,0 +1,67 @@
{
lib,
stdenv,
fetchurl,
autoPatchelfHook,
wrapGAppsHook3,
cairo,
e2fsprogs,
gmp,
gtk3,
libGL,
libX11,
libgcrypt,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "banana-accounting";
version = "10.1.24";
srcs = fetchurl {
url = "https://web.archive.org/web/20250416013207/https://www.banana.ch/accounting/files/bananaplus/exe/bananaplus.tgz";
hash = "sha256-5GewPGOCyeS6faL8aMUZ/JDUUn2PGuur0ws/7nlNX6M=";
};
sourceRoot = ".";
nativeBuildInputs = [
autoPatchelfHook
wrapGAppsHook3
];
buildInputs = [
cairo
e2fsprogs
gmp
gtk3
(lib.getLib stdenv.cc.cc)
libGL
libX11
libgcrypt
];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/opt $out/bin $out/share
cp -r . $out/opt/banana-accounting
ln -s $out/opt/banana-accounting/usr/bin/bananaplus $out/bin/bananaplus
ln -s $out/opt/banana-accounting/usr/share/applications $out/share/applications
ln -s $out/opt/banana-accounting/usr/share/icons $out/share/icons
runHook postInstall
'';
meta = {
description = "Accounting Software for small companies, associations and individuals";
homepage = "https://www.banana.ch";
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ jacg ];
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
};
})

View File

@@ -0,0 +1,54 @@
{
fetchFromGitHub,
lib,
stdenvNoCC,
# build deps
clickgen,
python3Packages,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "banana-cursor";
version = "1.0.0";
src = fetchFromGitHub {
owner = "ful1e5";
repo = "banana-cursor";
rev = "v${finalAttrs.version}";
hash = "sha256-PI7381xf/GctQTnfcE0W3M3z2kqbX4VexMf17C61hT8=";
};
nativeBuildInputs = [
clickgen
python3Packages.attrs
];
buildPhase = ''
runHook preBuild
ctgen build.toml -p x11 -o $out
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/icons
mv $out/Banana $out/share/icons
runHook postInstall
'';
meta = with lib; {
description = "Banana Cursor";
homepage = "https://github.com/ful1e5/banana-cursor";
license = licenses.gpl3Plus;
maintainers = with maintainers; [
getpsyched
yrd
];
platforms = platforms.linux;
};
})

View File

@@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
python310,
tcl,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "banana-vera";
version = "1.3.0-ubuntu";
src = fetchFromGitHub {
owner = "Epitech";
repo = "banana-vera";
tag = "v${finalAttrs.version}";
sha256 = "sha256-sSN3trSySJe3KVyrb/hc5HUGRS4M3c4UX9SLlzBM43c=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
python310
python310.pkgs.boost
tcl
];
cmakeFlags = [
"-DVERA_LUA=OFF"
"-DVERA_USE_SYSTEM_BOOST=ON"
"-DPANDOC=OFF"
];
meta = {
mainProgram = "vera++";
description = "Fork of vera using python3.10";
homepage = "https://github.com/Epitech/banana-vera";
license = lib.licenses.boost;
maintainers = with lib.maintainers; [ sigmanificient ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,340 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://plugins.gradle.org/m2": {
"com/google/code/gson#gson-parent/2.8.9": {
"pom": "sha256-sW4CbmNCfBlyrQ/GhwPsN5sVduQRuknDL6mjGrC7z/s="
},
"com/google/code/gson#gson/2.8.9": {
"jar": "sha256-05mSkYVd5JXJTHQ3YbirUXbP6r4oGlqw2OjUUyb9cD4=",
"pom": "sha256-r97W5qaQ+/OtSuZa2jl/CpCl9jCzA9G3QbnJeSb91N4="
},
"org/jetbrains/intellij/deps#trove4j/1.0.20200330": {
"jar": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=",
"pom": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k="
},
"org/jetbrains/kotlin#kotlin-build-statistics/2.0.21": {
"jar": "sha256-gBILdN8DYz1veeCIZBMe7jt6dIb2wF0vLtyGg3U8VNo=",
"pom": "sha256-/iTcYG/sg+yY3Qi8i7HPmeVAXejpF8URnVoMt++sVZ0="
},
"org/jetbrains/kotlin#kotlin-build-tools-api/2.0.21": {
"jar": "sha256-j8orSvbEzyRWXZp/ZMMXhIlRjQSeEGmB22cY7yLK4Y4=",
"pom": "sha256-zL2XaTA2Y0gWKVGY5JRFNPr7c9d4+M1NQ588h7CQ9JQ="
},
"org/jetbrains/kotlin#kotlin-compiler-embeddable/2.0.21": {
"jar": "sha256-n6jN0d4NzP/hVMmX1CPsa19TzW2Rd+OnepsN4D+xvIE=",
"pom": "sha256-vUZWpG7EGCUuW8Xhwg6yAp+yqODjzJTu3frH6HyM1bY="
},
"org/jetbrains/kotlin#kotlin-compiler-runner/2.0.21": {
"jar": "sha256-COYFvoEGD/YS0K65QFihm8SsmWJcNcRhxsCzAlYOkQQ=",
"pom": "sha256-+Wdq1JVBFLgc39CR6bW0J7xkkc+pRIRmjWU9TRkCPm0="
},
"org/jetbrains/kotlin#kotlin-daemon-client/2.0.21": {
"jar": "sha256-Nx6gjk8DaILMjgZP/PZEWZDfREKVuh7GiSjnzCtbwBU=",
"pom": "sha256-8oY4JGtQVSC/6TXxXz7POeS6VSb6RcjzKsfeejEjdAA="
},
"org/jetbrains/kotlin#kotlin-daemon-embeddable/2.0.21": {
"jar": "sha256-saCnPFAi+N0FpjjGt2sr1zYYGKHzhg/yZEEzsd0r2wM=",
"pom": "sha256-jbZ7QN1gJaLtBpKU8sm8+2uW2zFZz+927deEHCZq+/A="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-annotations/2.0.21": {
"jar": "sha256-W0cHoy5GfvvhIsMY/2q9yhei/H2Mg/ZgN8mhILbcvC8=",
"pom": "sha256-P+CLlUN7C074sWt39hqImzn1xGt+lx1N+63mbUQOodg="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/2.0.21": {
"jar": "sha256-Uur1LOMDtSneZ6vDusE+TxNZY1dUPfqDHE1y0tYxDlA=",
"module": "sha256-z29dNExVVVS/rGQFHq0AhcvUM4Z2uqP8h7UD6eSrvjQ=",
"pom": "sha256-gV5yqZ4ZFD1mLSTkYlKlnOdWMC18W9/FlIF9fMexI3g="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea-proto/2.0.21": {
"jar": "sha256-UzVXQrV7qOFvvfCiBDn4s0UnYHHtsUTns9puYL42MYg=",
"pom": "sha256-OMyaLLf55K/UOcMQdvgzFThIsfftITMgCDXRtCDfbqs="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea/2.0.21": {
"jar": "sha256-wfTqDBkmfx7tR0tUGwdxXEkWes+/AnqKL9B8u8gbjnI=",
"module": "sha256-YqcNAg27B4BkexFVGIBHE+Z2BkBa6XoQ2P2jgpOI0Uk=",
"pom": "sha256-1GjmNf3dsw9EQEuFixCyfcVm6Z1bVIusEMIjOp7OF74="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-model/2.0.21": {
"jar": "sha256-lR13mJs1cAljH/HvsSsBYczzKcUpxUalKfih0x+bwDw=",
"module": "sha256-6qn9n4b71E/2BwoZfce90ZgPDUHo20myUoA9A6pMVaw=",
"pom": "sha256-5RVeYOyr2v1kUmVKaYALyyp37n0fxucH+tOo5p8HTCw="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin/2.0.21": {
"module": "sha256-D5iXoGwHo+h9ZHExzDSQofctGuVMEH8T9yJp1TRLCHo=",
"pom": "sha256-RenM7OM+TY36mUHMkS81RYIBqdPwQ3IMMket3lf0f/Y="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin/2.0.21/gradle85": {
"jar": "sha256-nfXH/xOx/GislFDKY8UxEYkdb2R73ewPQ5iz5yJb9tk="
},
"org/jetbrains/kotlin#kotlin-gradle-plugins-bom/2.0.21": {
"module": "sha256-8JRUh/5RlZ/fi2oUQXB6Ke1fGsMaIxx/3r4sPd0i/fE=",
"pom": "sha256-Z1AT1Mvu4JyIkgriuiRvmfKKeJuHT2NASeAS+j7r9Mg="
},
"org/jetbrains/kotlin#kotlin-klib-commonizer-api/2.0.21": {
"jar": "sha256-R1eJEWW2mPvazo9NpvK8DpiOrvnvNnE1SIZajycGmv0=",
"pom": "sha256-Y/6HvSI1sSlAnHIqCbYsIKe3eueQGeIgMSSK9zawPFQ="
},
"org/jetbrains/kotlin#kotlin-native-utils/2.0.21": {
"jar": "sha256-ResIo5Kfl8SKkpEsliV3nRVAvG8/IS+56UYg0DJrzAA=",
"pom": "sha256-ZpB3PnZJ0dD61V0GCaTiHh68mF3Q+iYenG/9OJhnBh0="
},
"org/jetbrains/kotlin#kotlin-tooling-core/2.0.21": {
"jar": "sha256-W28UhUj+ngdN9R9CJTREM78DdaxbOf/NPXvX1/YC1ik=",
"pom": "sha256-MiVe/o/PESl703OozHf4sYXXOYTpGxieeRZlKb36XVo="
},
"org/jetbrains/kotlin#kotlin-util-io/2.0.21": {
"jar": "sha256-Dv7kwg8+f5ErMceWxOR/nRTqaIA+x+1OXU8kJY46ph4=",
"pom": "sha256-4gD5F2fbCFJsjZSt3OB7kPNCVBSwTs/XzPjkHJ8QmKA="
},
"org/jetbrains/kotlin#kotlin-util-klib/2.0.21": {
"jar": "sha256-oTtziWVUtI5L702KRjDqfpQBSaxMrcysBpFGORRlSeo=",
"pom": "sha256-724nWZiUO5b1imSWQIUyDxAxdNYJ7GakqUnmASPHmPU="
},
"org/jetbrains/kotlin/jvm#org.jetbrains.kotlin.jvm.gradle.plugin/2.0.21": {
"pom": "sha256-Jk8V5sp1XIU/oPWvEPa9GgHwmLKsDPmOHP05kBF/tjo="
},
"org/jetbrains/kotlinx#kotlinx-coroutines-bom/1.6.4": {
"pom": "sha256-qyYUhV+6ZqqKQlFNvj1aiEMV/+HtY/WTLnEKgAYkXOE="
},
"org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.6.4": {
"jar": "sha256-wkyLsnuzIMSpOHFQGn5eDGFgdjiQexl672dVE9TIIL4=",
"module": "sha256-DZTIpBSD58Jwfr1pPhsTV6hBUpmM6FVQ67xUykMho6c=",
"pom": "sha256-Cdlg+FkikDwuUuEmsX6fpQILQlxGnsYZRLPAGDVUciQ="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
}
},
"https://repo.maven.apache.org/maven2": {
"com/google/code/gson#gson-parent/2.11.0": {
"pom": "sha256-issfO3Km8CaRasBzW62aqwKT1Sftt7NlMn3vE6k2e3o="
},
"com/google/code/gson#gson/2.11.0": {
"jar": "sha256-V5KNblpu3rKr03cKj5W6RNzkXzsjt6ncKzCcWBVSp4s=",
"pom": "sha256-wOVHvqmYiI5uJcWIapDnYicryItSdTQ90sBd7Wyi42A="
},
"com/google/errorprone#error_prone_annotations/2.27.0": {
"jar": "sha256-JMkjNyxY410LnxagKJKbua7cd1IYZ8J08r0HNd9bofU=",
"pom": "sha256-TKWjXWEjXhZUmsNG0eNFUc3w/ifoSqV+A8vrJV6k5do="
},
"com/google/errorprone#error_prone_parent/2.27.0": {
"pom": "sha256-+oGCnQSVWd9pJ/nJpv1rvQn4tQ5tRzaucsgwC2w9dlQ="
},
"com/sun/mail#all/1.6.2": {
"pom": "sha256-S36Dqpt31l4AfpfLUPm4nNt1T6rxZBHl/ZTR49q3brM="
},
"com/sun/mail#javax.mail/1.6.2": {
"jar": "sha256-RbUV5xBJRMCeRbnHuxzl3/ZASGN0hS3SsugMw3Ut+hE=",
"pom": "sha256-xCKcBbWDbwAlITY9NDXz0HJmJ0RUi/F+fnreyv5ouf0="
},
"info/picocli#picocli/4.6.1": {
"jar": "sha256-Km4DMQ2xSfihHrBYqnjndcIp74FjM8loc3l2LSKDOtY=",
"pom": "sha256-sQOC7VBz9mKP84EayWFEkbHv8wLDz55Cmo81P2w75M8="
},
"javax/activation#activation/1.1": {
"jar": "sha256-KIHHnJ1u8BxY5ivuoT6dGsi4uqFvL8GYrW5ndt79zdM=",
"pom": "sha256-1JDlQKEVBLnXFxixyF/vez3mgCNhKQgkU5sHbVj6qKA="
},
"net/java#jvnet-parent/1": {
"pom": "sha256-KBRAgRJo5l2eJms8yJgpfiFOBPCXQNA4bO60qJI9Y78="
},
"org/apiguardian#apiguardian-api/1.1.2": {
"jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=",
"module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=",
"pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA="
},
"org/ini4j#ini4j/0.5.4": {
"jar": "sha256-qtYGNe7lZyVO0p8Y+xjA+eTE2s9RyCKRKCAxg7s14t0=",
"pom": "sha256-XMYUkRJoPvybUbn9k3h307NQPfboBdMHHOTbOb41mY8="
},
"org/jetbrains#annotations/13.0": {
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
},
"org/jetbrains/intellij/deps#trove4j/1.0.20200330": {
"jar": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=",
"pom": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k="
},
"org/jetbrains/kotlin#kotlin-build-common/2.0.21": {
"jar": "sha256-cLmHScMJc9O3YhCL37mROSB4swhzCKzTwa0zqg9GIV0=",
"pom": "sha256-qNP7huk2cgYkCh2+6LMBCteRP+oY+9Rtv2EB+Yvj4V0="
},
"org/jetbrains/kotlin#kotlin-build-tools-api/2.0.21": {
"jar": "sha256-j8orSvbEzyRWXZp/ZMMXhIlRjQSeEGmB22cY7yLK4Y4=",
"pom": "sha256-zL2XaTA2Y0gWKVGY5JRFNPr7c9d4+M1NQ588h7CQ9JQ="
},
"org/jetbrains/kotlin#kotlin-build-tools-impl/2.0.21": {
"jar": "sha256-um6iTa7URxf1AwcqkcWbDafpyvAAK9DsG+dzKUwSfcs=",
"pom": "sha256-epPI22tqqFtPyvD0jKcBa5qEzSOWoGUreumt52eaTkE="
},
"org/jetbrains/kotlin#kotlin-compiler-embeddable/2.0.21": {
"jar": "sha256-n6jN0d4NzP/hVMmX1CPsa19TzW2Rd+OnepsN4D+xvIE=",
"pom": "sha256-vUZWpG7EGCUuW8Xhwg6yAp+yqODjzJTu3frH6HyM1bY="
},
"org/jetbrains/kotlin#kotlin-compiler-runner/2.0.21": {
"jar": "sha256-COYFvoEGD/YS0K65QFihm8SsmWJcNcRhxsCzAlYOkQQ=",
"pom": "sha256-+Wdq1JVBFLgc39CR6bW0J7xkkc+pRIRmjWU9TRkCPm0="
},
"org/jetbrains/kotlin#kotlin-daemon-client/2.0.21": {
"jar": "sha256-Nx6gjk8DaILMjgZP/PZEWZDfREKVuh7GiSjnzCtbwBU=",
"pom": "sha256-8oY4JGtQVSC/6TXxXz7POeS6VSb6RcjzKsfeejEjdAA="
},
"org/jetbrains/kotlin#kotlin-daemon-embeddable/2.0.21": {
"jar": "sha256-saCnPFAi+N0FpjjGt2sr1zYYGKHzhg/yZEEzsd0r2wM=",
"pom": "sha256-jbZ7QN1gJaLtBpKU8sm8+2uW2zFZz+927deEHCZq+/A="
},
"org/jetbrains/kotlin#kotlin-klib-commonizer-embeddable/2.0.21": {
"jar": "sha256-2Gv0M4pthBzM37v/LaBb0DpJw9uMP5erhed+AhrQhFs=",
"pom": "sha256-esgfO7B8TWqo+pj/WjmaR6vRzhx4bU8/rZbvKBIL34o="
},
"org/jetbrains/kotlin#kotlin-native-prebuilt/2.0.21": {
"pom": "sha256-Gv4wJE4ZR67Wy+01BBrTbFnw6nZK/bxv/56agY7loEE="
},
"org/jetbrains/kotlin#kotlin-reflect/1.6.10": {
"jar": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=",
"pom": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak="
},
"org/jetbrains/kotlin#kotlin-script-runtime/2.0.21": {
"jar": "sha256-nBEfjQit5FVWYnLVYZIa3CsstrekzO442YKcXjocpqM=",
"pom": "sha256-lbLpKa+hBxvZUv0Tey5+gdBP4bu4G3V+vtBrIW5aRSQ="
},
"org/jetbrains/kotlin#kotlin-scripting-common/2.0.21": {
"jar": "sha256-+H3rKxTQaPmcuhghfYCvhUgcApxzGthwRFjprdnKIPg=",
"pom": "sha256-hP6ezqjlV+/6iFbJAhMlrWPCHZ0TEh6q6xGZ9qZYZXU="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/2.0.21": {
"jar": "sha256-JBPCMP3YzUfrvronPk35TPO0TLPsldLLNUcsk3aMnxw=",
"pom": "sha256-1Ch6fUD4+Birv3zJhH5/OSeC0Ufb7WqEQORzvE9r8ug="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/2.0.21": {
"jar": "sha256-btD6W+slRmiDmJtWQfNoCUeSYLcBRTVQL9OHzmx7qDM=",
"pom": "sha256-0ysb8kupKaL6MqbjRDIPp7nnvgbON/z3bvOm3ITiNrE="
},
"org/jetbrains/kotlin#kotlin-scripting-jvm/2.0.21": {
"jar": "sha256-iEJ/D3pMR4RfoiIdKfbg4NfL5zw+34vKMLTYs6M2p3w=",
"pom": "sha256-opCFi++0KZc09RtT7ZqUFaKU55um/CE8BMQnzch5nA0="
},
"org/jetbrains/kotlin#kotlin-stdlib/2.0.21": {
"jar": "sha256-8xzFPxBafkjAk2g7vVQ3Vh0SM5IFE3dLRwgFZBvtvAk=",
"module": "sha256-gf1tGBASSH7jJG7/TiustktYxG5bWqcpcaTd8b0VQe0=",
"pom": "sha256-/LraTNLp85ZYKTVw72E3UjMdtp/R2tHKuqYFSEA+F9o="
},
"org/jetbrains/kotlin#kotlin-stdlib/2.0.21/all": {
"jar": "sha256-UP+t6yC00kVqUmWVpPep6FiJaCcVBz5s26Gx2A461Fg="
},
"org/jetbrains/kotlin#kotlin-test-junit5/2.0.21": {
"jar": "sha256-rEfeYZt9h+K/339u7Gpiph0b3AwyV0DfUhhrFBk2cT0=",
"module": "sha256-pJ3WSbaBmpF2wNksgkT2sD6Q4xvXpTO3oJGsud6wleQ=",
"pom": "sha256-rdbbLWF1KU0hNI3eEMyqHeUWNT9uQHp24FNbS1RcJ30="
},
"org/jetbrains/kotlin#kotlin-test/2.0.21": {
"jar": "sha256-qJeyjGo+qOyPAO12aUGgwN+ZPX9lkIh1h5ho4IzriYU=",
"module": "sha256-1GaHPese5eDSFPdNDVC5BCGQZV+eUBRW/Qk72SCkL40=",
"pom": "sha256-6jadb0j7+WeUIXBPuf9tTM4mA3iZUKl8pd5bLsH5c4o="
},
"org/jetbrains/kotlin#kotlin-test/2.0.21/all": {
"jar": "sha256-2iho+pWj+4814rTjMcouKTIUhnAZZex2a66CD5jgJ3w="
},
"org/jetbrains/kotlin/kotlin-native-prebuilt/2.0.21/kotlin-native-prebuilt-2.0.21-linux-x86_64": {
"tar.gz": "sha256-8SXMZFcnRldupsPfHmVklSr9dpJcJNdc/4X4zdRG/ls="
},
"org/jetbrains/kotlinx#kotlinx-coroutines-bom/1.6.4": {
"pom": "sha256-qyYUhV+6ZqqKQlFNvj1aiEMV/+HtY/WTLnEKgAYkXOE="
},
"org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.6.4": {
"jar": "sha256-wkyLsnuzIMSpOHFQGn5eDGFgdjiQexl672dVE9TIIL4=",
"module": "sha256-DZTIpBSD58Jwfr1pPhsTV6hBUpmM6FVQ67xUykMho6c=",
"pom": "sha256-Cdlg+FkikDwuUuEmsX6fpQILQlxGnsYZRLPAGDVUciQ="
},
"org/jsoup#jsoup/1.18.1": {
"jar": "sha256-O7Ww7AKZir5FpR83185nwwaLTM1KtjyWWSnsUHTWTpE=",
"pom": "sha256-xN46hPu17vS9IpjW3pgcbNlyKHlQXINz4bZ/EdHK8n0="
},
"org/junit#junit-bom/5.10.1": {
"module": "sha256-IbCvz//i7LN3D16wCuehn+rulOdx+jkYFzhQ2ueAZ7c=",
"pom": "sha256-IcSwKG9LIAaVd/9LIJeKhcEArIpGtvHIZy+6qzN7w/I="
},
"org/junit#junit-bom/5.8.1": {
"module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=",
"pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM="
},
"org/junit/jupiter#junit-jupiter-api/5.10.1": {
"jar": "sha256-YNXDmMMtxwObmSglFK1gZAYdhBfPlZofa9IDjMkHyRM=",
"module": "sha256-+H9zEVSfSf4k5igqEWXpB+AXqR6XnK2r/fm/VMP3EG8=",
"pom": "sha256-PK9ZSxPa5xB1EN2Zj02en6J3MFzcohMh/dWRmdyHzz0="
},
"org/junit/jupiter#junit-jupiter-api/5.8.1": {
"jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=",
"module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=",
"pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8="
},
"org/junit/jupiter#junit-jupiter-engine/5.10.1": {
"jar": "sha256-ApMN/klfk/5wsmVQrOOij34bkAyEQmwuRibOAgxygtY=",
"module": "sha256-VBIeWCzLLUYl7J+lRnlDbJA/oFPHQJe75F/fud22f7g=",
"pom": "sha256-MHCG3F5wjLdZAQhoXAQOCOCK3g7UlUkwsvM8BttT6l4="
},
"org/junit/jupiter#junit-jupiter-engine/5.8.1": {
"module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=",
"pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4="
},
"org/junit/platform#junit-platform-commons/1.10.1": {
"jar": "sha256-fZhV7j8/cfAV6xR5VZv5I3gyQ8JPv72LKb7Y6AmbVnI=",
"module": "sha256-VtNwYvzicEHwtaNfOTxoyK0jr+NLLTDvjgewT8EZ1N0=",
"pom": "sha256-Su81pl6VGRWhPZ920fr/CaeMND5SJC+vNSBDtwx/bzA="
},
"org/junit/platform#junit-platform-commons/1.8.1": {
"jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=",
"module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=",
"pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ="
},
"org/junit/platform#junit-platform-engine/1.10.1": {
"jar": "sha256-uqSORw1t7nNpoKiCDFHaicFGMnntpuE6ME0R9Fkix2A=",
"module": "sha256-KXiTcRuSz0lfdH41o6rLSDELHRNBpFzYTSP5QxxS4p0=",
"pom": "sha256-3X1k/Zr2eJywPFDCWGyRW7hrHizIwH+5dPHbDvhhZA0="
},
"org/junit/platform#junit-platform-engine/1.8.1": {
"module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=",
"pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI="
},
"org/junit/platform#junit-platform-launcher/1.10.1": {
"jar": "sha256-3tQUxQTojQInAzEHGWkIThsv2bz4RD811E2ixuMwG8I=",
"module": "sha256-3ZcDx0TqC54Vv4yeP+vM/B40cBalXXHvf/qbC8TEBRI=",
"pom": "sha256-unroFwQMcqPCbTY6R/wTZIoc0MZOmjgYDd6YGKG1DjM="
},
"org/opentest4j#opentest4j/1.2.0": {
"jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=",
"pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ="
},
"org/opentest4j#opentest4j/1.3.0": {
"jar": "sha256-SOLfY2yrZWPO1k3N/4q7I1VifLI27wvzdZhoLd90Lxs=",
"module": "sha256-SL8dbItdyU90ZSvReQD2VN63FDUCSM9ej8onuQkMjg0=",
"pom": "sha256-m/fP/EEPPoNywlIleN+cpW2dQ72TfjCUhwbCMqlDs1U="
},
"org/slf4j#slf4j-api/1.6.6": {
"pom": "sha256-cxmZMiteIokinNntRiTJQexXG3xh0qJ9alB+9zuXyho="
},
"org/slf4j#slf4j-api/1.7.32": {
"jar": "sha256-NiT4R0wa9G11+YvAl9eGSjI8gbOAiqQ2iabhxgHAJ74=",
"pom": "sha256-ABzeWzxrqRBwQlz+ny5pXkrri8KQotTNllMRJ6skT+U="
},
"org/slf4j#slf4j-parent/1.6.6": {
"pom": "sha256-QrjCR2CP2OENW2Zs98gKW1nSseEoRQ97bZ0sIM+2sxs="
},
"org/slf4j#slf4j-parent/1.7.32": {
"pom": "sha256-WrNJ0PTHvAjtDvH02ThssZQKL01vFSFQ4W277MC4PHA="
},
"org/slf4j#slf4j-simple/1.7.32": {
"jar": "sha256-0v3XtzyiAZogYtFFoNhheaWPmMjD41ynxzWieztWIcM=",
"pom": "sha256-VVTmGS0A/7oRfST9+HBIj50DkABH6Lq1XgDugzgvQdg="
},
"org/xerial#sqlite-jdbc/3.47.0.0": {
"jar": "sha256-k9R8AGN3xHb497RdANIGBrd9WVFCPzRu9WtbCBNhwtM=",
"pom": "sha256-3SmXElydGbywbhuMYYZoJWi8iqHfmOguXp9Litbx/X0="
},
"org/zeroturnaround#zt-zip/1.14": {
"jar": "sha256-lkDsuPjrnDFVsVbtu0BJyT3uXaKz31U6UdlGmK+3aNk=",
"pom": "sha256-esRAYySqeauHFiEV/lpCdp4yB8eCFbvCMZ2ZNeNV5hg="
}
}
}

View File

@@ -0,0 +1,68 @@
{
lib,
jre,
gradle_8,
makeWrapper,
stdenv,
fetchFromGitLab,
}:
let
gradle = gradle_8;
in
stdenv.mkDerivation (finalAttrs: {
pname = "bandcamp-collection-downloader";
version = "0-unstable-2024-10-29";
src = fetchFromGitLab {
domain = "framagit.org";
owner = "Ezwen";
repo = "bandcamp-collection-downloader";
rev = "fe8a98d92d776d194be196b6860f55e194a999f8";
hash = "sha256-OaloKYlENq2kSzC8jvt4JJ7PsxLuqUuOdnYoazW5YUE=";
};
nativeBuildInputs = [
gradle
makeWrapper
];
mitmCache = gradle.fetchDeps {
inherit (finalAttrs) pname;
data = ./deps.json;
};
# this is required for using mitm-cache on Darwin
__darwinAllowLocalNetworking = true;
# tests want to talk to bandcamp
doCheck = false;
gradleBuildTask = "fatjar";
installPhase = ''
runHook preInstall
mkdir -p $out/bin
mkdir -p $out/share/bandcamp-collection-downloader
cp build/libs/bandcamp-collection-downloader.jar $out/share/bandcamp-collection-downloader/bandcamp-collection-downloader.jar
makeWrapper ${lib.getExe jre} $out/bin/bandcamp-collection-downloader \
--add-flags "-jar $out/share/bandcamp-collection-downloader/bandcamp-collection-downloader.jar"
runHook postInstall
'';
meta = {
description = "Tool to automatically download purchased music from bandcamp";
license = lib.licenses.agpl3Only;
homepage = "https://framagit.org/Ezwen/bandcamp-collection-downloader";
maintainers = [ lib.maintainers.shelvacu ];
mainProgram = "bandcamp-collection-downloader";
platforms = lib.platforms.all;
sourceProvenance = with lib.sourceTypes; [
fromSource
binaryBytecode # mitm cache
];
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
installShellFiles,
}:
rustPlatform.buildRustPackage rec {
pname = "bandwhich";
version = "0.23.1";
src = fetchFromGitHub {
owner = "imsnif";
repo = "bandwhich";
rev = "v${version}";
hash = "sha256-gXPX5drVXsfkssPMdhqIpFsYNSbelE9mKwO+nGEy4Qs=";
};
cargoHash = "sha256-bsyEEbwBTDcIOc+PRkZqcfqcDgQnchuVy8a8eSZZUHU=";
nativeBuildInputs = [ installShellFiles ];
__darwinAllowLocalNetworking = true;
preConfigure = ''
export BANDWHICH_GEN_DIR=_shell-files
mkdir -p $BANDWHICH_GEN_DIR
'';
postInstall = ''
installManPage $BANDWHICH_GEN_DIR/bandwhich.1
installShellCompletion $BANDWHICH_GEN_DIR/bandwhich.{bash,fish} \
--zsh $BANDWHICH_GEN_DIR/_bandwhich
'';
meta = {
description = "CLI utility for displaying current network utilization";
longDescription = ''
bandwhich sniffs a given network interface and records IP packet size, cross
referencing it with the /proc filesystem on linux or lsof on MacOS. It is
responsive to the terminal window size, displaying less info if there is
no room for it. It will also attempt to resolve ips to their host name in
the background using reverse DNS on a best effort basis.
'';
homepage = "https://github.com/imsnif/bandwhich";
changelog = "https://github.com/imsnif/bandwhich/blob/${src.rev}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
Br1ght0ne
figsoda
];
platforms = lib.platforms.unix;
mainProgram = "bandwhich";
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
rustPlatform,
fetchFromGitHub,
stdenv,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "bankstown-lv2";
version = "1.1.0";
src = fetchFromGitHub {
owner = "chadmed";
repo = "bankstown";
rev = finalAttrs.version;
hash = "sha256-IThXEY+mvT2MCw0PSWU/182xbUafd6dtm6hNjieLlKg=";
};
postPatch = ''
substituteInPlace Makefile \
--replace-fail "target/release" \
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/$cargoBuildType"
'';
cargoHash = "sha256-eMN95QNnQtC7QDix9g3dwb9ZbtQuiVBj8+R+opFs0KI=";
dontCargoInstall = true;
installFlags = [
"DESTDIR=$(out)"
"LIBDIR=lib"
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
homepage = "https://github.com/chadmed/bankstown";
description = "Lightweight psychoacoustic bass enhancement plugin";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
normalcea
yuka
];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "banner";
version = "1.3.6";
src = fetchFromGitHub {
owner = "pronovic";
repo = "banner";
rev = "BANNER_V${version}";
sha256 = "sha256-g9i460W0SanW2xIfZk9Am/vDsRlL7oxJOUhksa+I8zY=";
};
meta = with lib; {
homepage = "https://github.com/pronovic/banner";
description = "Print large banners to ASCII terminals";
mainProgram = "banner";
license = licenses.gpl2Only;
longDescription = ''
An implementation of the traditional Unix-program used to display
large characters.
'';
platforms = platforms.all;
maintainers = with maintainers; [ pSub ];
};
}

View File

@@ -0,0 +1,79 @@
{
lib,
stdenv,
buildBazelPackage,
fetchFromGitHub,
bazel_7,
jdk,
nix-update-script,
cctools,
}:
let
system = stdenv.hostPlatform.system;
registry = fetchFromGitHub {
owner = "bazelbuild";
repo = "bazel-central-registry";
rev = "1f55d91e1be0e4863a698b9d7582cf097ad456ee";
hash = "sha256-ESHF5FhLvn4u4j//6AFiSJRJYSKrI4EKr4oDwvsrcPM=";
};
in
buildBazelPackage rec {
pname = "bant";
version = "0.2.3";
src = fetchFromGitHub {
owner = "hzeller";
repo = "bant";
rev = "v${version}";
hash = "sha256-0RWR793+qXc5QYIc7wIL323iDkNts9w4e90FCdHT6t4=";
};
bazelFlags = [
"--registry"
"file://${registry}"
];
LIBTOOL = lib.optionalString stdenv.hostPlatform.isDarwin "${cctools}/bin/libtool";
postPatch = ''
patchShebangs scripts/create-workspace-status.sh
'';
removeRulesCC = false;
fetchAttrs = {
hash =
{
aarch64-linux = "sha256-aGfFbeosrWhNqiHV9ng59DeMZSGjaylPRfolxatauJE";
x86_64-linux = "sha256-nbHHkgN4O8bWZzrpQUMZbm4+iRffqdfu7C1kkLJ3GDQ=";
}
.${system} or (throw "No hash for system: ${system}");
};
nativeBuildInputs = [
jdk
];
bazel = bazel_7;
bazelBuildFlags = [ "-c opt" ];
bazelTestTargets = [ "//..." ];
bazelTargets = [ "//bant:bant" ];
buildAttrs = {
installPhase = ''
install -D --strip bazel-bin/bant/bant "$out/bin/bant"
'';
};
passthru.updateScript = nix-update-script { };
meta = {
description = "Bazel/Build Analysis and Navigation Tool";
homepage = "http://bant.build/";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [
hzeller
lromor
];
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
rustPlatform,
fetchCrate,
}:
rustPlatform.buildRustPackage rec {
pname = "bao";
version = "0.13.1";
src = fetchCrate {
inherit version;
pname = "${pname}_bin";
hash = "sha256-8h5otpu3z2Hgy0jMCITJNr8Q4iVdlR5Lea2X+WuenWs=";
};
cargoHash = "sha256-B0wvJTcIRJxBU0G1DONnKeQYrmsmMIorhTLc73o4/kE=";
meta = {
description = "Implementation of BLAKE3 verified streaming";
homepage = "https://github.com/oconnor663/bao";
maintainers = with lib.maintainers; [ amarshall ];
license = with lib.licenses; [
cc0
asl20
];
mainProgram = "bao";
};
}

View File

@@ -0,0 +1,64 @@
{
stdenv,
lib,
gettext,
fetchurl,
vala,
desktop-file-utils,
meson,
ninja,
pkg-config,
gtk4,
libadwaita,
glib,
libxml2,
wrapGAppsHook4,
itstool,
gnome,
}:
stdenv.mkDerivation rec {
pname = "baobab";
version = "48.0";
src = fetchurl {
url = "mirror://gnome/sources/baobab/${lib.versions.major version}/baobab-${version}.tar.xz";
hash = "sha256-VFklBNSdgH8jWRvn5+7xDGyd/LesUnuBw6zVh4eyb9o=";
};
nativeBuildInputs = [
desktop-file-utils
gettext
glib
itstool
libxml2
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
gtk4
libadwaita
glib
];
doCheck = true;
passthru = {
updateScript = gnome.updateScript {
packageName = "baobab";
};
};
meta = with lib; {
description = "Graphical application to analyse disk usage in any GNOME environment";
mainProgram = "baobab";
homepage = "https://apps.gnome.org/Baobab/";
license = licenses.gpl2Plus;
teams = [ teams.gnome ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,24 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "bar";
version = "1.11.1";
src = fetchurl {
url = "mirror://sourceforge/project/clpbar/clpbar/bar-${version}/bar_${version}.tar.gz";
sha256 = "00v5cb6vzizyyhflgr62d3k8dqc0rg6wdgfyyk11c0s0r32mw3zs";
};
meta = {
description = "Console progress bar";
homepage = "https://clpbar.sourceforge.net/";
license = lib.licenses.gpl2Only;
maintainers = [ lib.maintainers.rdnetto ];
platforms = lib.platforms.all;
mainProgram = "bar";
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchurl,
fetchpatch,
}:
stdenv.mkDerivation rec {
version = "0.99";
pname = "barcode";
src = fetchurl {
url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
sha256 = "1indapql5fjz0bysyc88cmc54y8phqrbi7c76p71fgjp45jcyzp8";
};
patches = [
# Pull upstream patch for -fno-common toolchains.
(fetchpatch {
name = "fno-common.patch";
url = "http://git.savannah.gnu.org/cgit/barcode.git/patch/?id=4654f68706a459c9602d9932b56a56e8930f7d53";
sha256 = "15kclzcwlh0ymr7m48vc0m8z98q0wf4xbfcky4g1y8yvvpvvrfgc";
})
];
configureFlags = lib.optional stdenv.hostPlatform.isDarwin "ac_cv_func_calloc_0_nonnull=yes";
hardeningDisable = [ "format" ];
meta = with lib; {
description = "GNU barcode generator";
maintainers = with maintainers; [ raskin ];
platforms = platforms.unix;
downloadPage = "https://ftp.gnu.org/gnu/barcode/";
homepage = "https://www.gnu.org/software/barcode/";
license = licenses.gpl3;
};
}

View File

@@ -0,0 +1,29 @@
commit 46479c52695cc5f8c01370fd2594468666c45c8e
Author: rnhmjoj <rnhmjoj@inventati.org>
Date: Sun Aug 3 00:18:47 2025 +0200
Fix the modules path at build time
The location of the modules is determined by reading the `module_path`
setting, which is set to "$out/lib/baresip/modules" when the
configuration file is generated during the first run. If the package is
updated and the store path changes, baresip breaks completely, forcing
the user to manually fix the configuration.
This patch fixes the location of the modules at build time, ignoring the
`module_path` setting, to avoid this issue.
diff --git a/src/module.c b/src/module.c
index 9f2135c6..b62d0bdd 100644
--- a/src/module.c
+++ b/src/module.c
@@ -141,8 +141,7 @@ int module_init(const struct conf *conf)
if (!conf)
return EINVAL;
- if (conf_get(conf, "module_path", &path))
- pl_set_str(&path, ".");
+ pl_set_str(&path, MOD_PATH);
err = conf_apply(conf, "module", module_handler, &path);
if (err)

View File

@@ -0,0 +1,194 @@
{
SDL2,
alsa-lib,
cairo,
celt,
cmake,
fetchFromGitHub,
ffmpeg,
glib,
gsm,
gst_all_1,
gtk3,
lib,
libre,
librem,
libsndfile,
libuuid,
libv4l,
libvpx,
mpg123,
openssl,
pipewire,
pkg-config,
portaudio,
spandsp3,
speex,
srtp,
stdenv,
zlib,
dbusSupport ? true,
}:
stdenv.mkDerivation rec {
version = "4.1.0";
pname = "baresip";
src = fetchFromGitHub {
owner = "baresip";
repo = "baresip";
rev = "v${version}";
hash = "sha256-KbjdwvXUiNvHb6AXt38M9gkhliiie+8frvuqYJEsnJE=";
};
patches = [
./fix-modules-path.patch
];
prePatch = ''
substituteInPlace cmake/FindGTK3.cmake --replace-fail GTK3_CFLAGS_OTHER ""
''
+ lib.optionalString (!dbusSupport) ''
substituteInPlace cmake/modules.cmake --replace-fail 'list(APPEND MODULES ctrl_dbus)' ""
'';
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
SDL2
alsa-lib
cairo
celt
ffmpeg
gsm
gtk3
libre
librem
libsndfile
libuuid
libv4l
libvpx
mpg123
openssl
pipewire
portaudio
spandsp3
speex
srtp
zlib
]
++ (with gst_all_1; [
gstreamer
gst-libav
gst-plugins-base
gst-plugins-bad
gst-plugins-good
]);
cmakeFlags = [
"-DCMAKE_SKIP_BUILD_RPATH=ON"
"-Dre_DIR=${libre}/include/re"
"-DGL_INCLUDE_DIRS=${lib.getDev glib}/include/glib-2.0"
"-DGLIB_INCLUDE_DIRS=${glib.out}/lib/glib-2.0/include"
"-DGST_INCLUDE_DIRS=${lib.getDev gst_all_1.gstreamer}/include/gstreamer-1.0"
];
makeFlags = [
"PREFIX=$(out)"
"CCACHE_DISABLE=1"
]
++ lib.optional (stdenv.cc.cc != null) "SYSROOT_ALT=${stdenv.cc.cc}"
++ lib.optional (stdenv.cc.libc != null) "SYSROOT=${stdenv.cc.libc}";
enableParallelBuilding = true;
env.NIX_CFLAGS_COMPILE = ''
-I${librem}/include/rem -I${gsm}/include/gsm
-DHAVE_INTTYPES_H -D__GLIBC__
-D__need_timeval -D__need_timespec -D__need_time_t
'';
# CMake feature detection is prone to breakage between upgrades:
# spot-check that the optional modules we care about were compiled
installCheckPhase = ''
runHook preInstallCheck
${lib.concatMapStringsSep "\n" (m: "test -x $out/lib/baresip/modules/${m}.so") [
"account"
"alsa"
"aubridge"
"auconv"
"aufile"
"auresamp"
"ausine"
"avcodec"
"avfilter"
"avformat"
"cons"
"contact"
"ctrl_dbus"
"ctrl_tcp"
"debug_cmd"
"dtls_srtp"
"ebuacip"
"echo"
"evdev"
"fakevideo"
"g711"
"g722"
"g726"
"gst"
"gtk"
"httpd"
"httpreq"
"ice"
"l16"
"menu"
"mixausrc"
"mixminus"
"multicast"
"mwi"
"natpmp"
"netroam"
"pcp"
"pipewire"
"plc"
"portaudio"
"presence"
"rtcpsummary"
"sdl"
"selfview"
"serreg"
"snapshot"
"sndfile"
"srtp"
"stdio"
"stun"
"swscale"
"syslog"
"turn"
"uuid"
"v4l2"
"vidbridge"
"vidinfo"
"vp8"
"vp9"
"vumeter"
"x11"
]}
runHook postInstallCheck
'';
meta = {
description = "Modular SIP User-Agent with audio and video support";
homepage = "https://github.com/baresip/baresip";
maintainers = with lib.maintainers; [
raskin
rnhmjoj
];
mainProgram = "baresip";
license = lib.licenses.bsd3;
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,64 @@
{
lib,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "bark-server";
version = "2.2.8";
src = fetchFromGitHub {
owner = "Finb";
repo = "bark-server";
tag = "v${finalAttrs.version}";
hash = "sha256-O4Bo3OuC8uwgFpwAY/zwSUQW6EY7h90Dn3tUjZA3j4E=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
postFetch = ''
cd "$out"
git rev-parse HEAD > $out/COMMIT
# '0000-00-00T00:00:00Z'
date -u -d "@$(git log -1 --pretty=%ct)" "+%Y-%m-%dT%H:%M:%SZ" > $out/SOURCE_DATE_EPOCH
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
vendorHash = "sha256-/h3L4Ow2aBPkbH1hPXCEb9DKrzVEcaLh2+O9iZXkXN8=";
ldflags = [
"-s"
"-w"
"-X main.version=${finalAttrs.version}"
];
preBuild = ''
ldflags+=" -X \"main.buildDate=$(<SOURCE_DATE_EPOCH)\""
ldflags+=" -X main.commitID==$(<COMMIT)"
'';
# All tests require network
doCheck = false;
doInstallCheck = true;
versionCheckProgramArg = "-v";
nativeInstallCheckInputs = [
versionCheckHook
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Backend of Bark, an iOS App which allows you to push customed notifications to your iPhone";
homepage = "https://github.com/Finb/bark-server";
changelog = "https://github.com/Finb/bark-server/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ moraxyc ];
mainProgram = "bark-server";
};
})

View File

@@ -0,0 +1,61 @@
{
lib,
rustPlatform,
fetchFromGitHub,
fetchpatch,
alsa-lib,
libopus,
soxr,
cmake,
pkg-config,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (final: {
pname = "bark";
version = "0.6.0";
src = fetchFromGitHub {
owner = "haileys";
repo = "bark";
tag = "v${final.version}";
hash = "sha256-JaUIWGCYhasM0DgqL+DiG2rE1OWVg/N66my/4RWDN1E=";
};
cargoHash = "sha256-LcmX8LbK8UHDDeqwLTFEUuRBv9GgDiCpXP4bmIR3gME=";
# Broken rustdoc comment
patches = [
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/haileys/bark/pull/13.patch";
hash = "sha256-cA1bqc7XhJ2cxOYvjIJ9oopzBZ9I4rGERkiwDAUh3V4";
})
];
buildInputs = [
alsa-lib
libopus
soxr
];
nativeBuildInputs = [
cmake
pkg-config
];
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Live sync audio streaming for local networks";
homepage = "https://github.com/haileys/bark";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ samw ];
platforms = lib.platforms.linux;
mainProgram = "bark";
};
})

View File

@@ -0,0 +1,36 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation rec {
pname = "barlow";
version = "1.422";
src = fetchzip {
url = "https://tribby.com/fonts/barlow/download/barlow-${version}.zip";
stripRoot = false;
hash = "sha256-aHAGPEgBkH41r7HR0D74OGCa7ta7Uo8Mgq4YVtYOwU8=";
};
installPhase = ''
runHook preInstall
install -Dm644 fonts/otf/*.otf -t $out/share/fonts/opentype
install -Dm644 fonts/ttf/*.ttf fonts/gx/*.ttf -t $out/share/fonts/truetype
install -Dm644 fonts/eot/*.eot -t $out/share/fonts/eot
install -Dm644 fonts/woff/*.woff -t $out/share/fonts/woff
install -Dm644 fonts/woff2/*.woff2 -t $out/share/fonts/woff2
runHook postInstall
'';
meta = with lib; {
description = "Grotesk variable font superfamily";
homepage = "https://tribby.com/fonts/barlow/";
license = licenses.ofl;
maintainers = [ ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,97 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch2,
file,
python3Packages,
rsync,
versionCheckHook,
nix-update-script,
}:
python3Packages.buildPythonApplication rec {
pname = "barman";
version = "3.14.1";
pyproject = true;
src = fetchFromGitHub {
owner = "EnterpriseDB";
repo = "barman";
tag = "release/${version}";
hash = "sha256-Z3+PgUJcyG/M05hMmIhRr3HttzHUDx7BGIs44LA/qE4=";
};
patches = [
./unwrap-subprocess.patch
# fix building with Python 3.13
(fetchpatch2 {
url = "https://github.com/EnterpriseDB/barman/commit/931f997f1d73bbe360abbca737bea9ae93172989.patch?full_index=1";
hash = "sha256-0aqyjsEabxLf4dpC4DeepmypAl7QfCedh7vy98iVifU=";
})
];
# https://github.com/EnterpriseDB/barman/blob/release/3.14.1/barman/encryption.py#L214
postPatch = ''
substituteInPlace barman/encryption.py \
--replace-fail '"file"' '"${lib.getExe file}"'
'';
build-system = with python3Packages; [
distutils
setuptools
];
dependencies = with python3Packages; [
argcomplete
azure-identity
azure-mgmt-compute
azure-storage-blob
boto3
distutils
google-cloud-compute
google-cloud-storage
grpcio
psycopg2
python-dateutil
python-snappy
];
nativeCheckInputs = [
python3Packages.lz4
python3Packages.mock
python3Packages.pytestCheckHook
python3Packages.zstandard
rsync
versionCheckHook
];
disabledTests = [
# Assertion error
"test_help_output"
"test_exits_on_unsupported_target"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# FsOperationFailed
"test_get_file_mode"
];
passthru = {
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^release/(\\d+\\.\\d+\\.\\d+)$"
];
};
};
meta = {
description = "Backup and Recovery Manager for PostgreSQL";
homepage = "https://www.pgbarman.org/";
changelog = "https://github.com/EnterpriseDB/barman/blob/${src.tag}/RELNOTES.md";
mainProgram = "barman";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ freezeboy ];
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,30 @@
--- a/barman/command_wrappers.py
+++ b/barman/command_wrappers.py
@@ -1144,5 +1144,5 @@
# * pass the current configuration file with -c
# * set it quiet with -q
- self.command = [sys.executable, command, "-c", config, "-q", subcommand]
+ self.command = [command, "-c", config, "-q", subcommand]
self.keep_descriptors = keep_descriptors
# Handle args for the sub-command (like the server name)
--- a/tests/test_command_wrappers.py
+++ a/tests/test_command_wrappers.py
@@ -1595,5 +1595,4 @@
)
assert subprocess.command == [
- sys.executable,
sys.argv[0],
"-c",
@@ -1622,5 +1621,4 @@
)
assert subprocess.command == [
- sys.executable,
"path/to/barman",
"-c",
@@ -1644,5 +1642,4 @@
command = [
- sys.executable,
"path/to/barman",
"-c",

View File

@@ -0,0 +1,34 @@
{
lib,
SDL,
SDL_mixer,
fetchurl,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "barrage";
version = "1.0.7";
src = fetchurl {
url = "mirror://sourceforge/lgames/barrage-${finalAttrs.version}.tar.gz";
hash = "sha256-cGYrG7A4Ffh51KyR+UpeWu7A40eqxI8g4LefBIs18kg=";
};
buildInputs = [
SDL
SDL_mixer
];
hardeningDisable = [ "format" ];
meta = {
homepage = "https://lgames.sourceforge.io/Barrage/";
description = "Destructive action game";
license = with lib.licenses; [ gpl2Plus ];
mainProgram = "barrage";
maintainers = [ ];
inherit (SDL.meta) platforms;
broken = stdenv.hostPlatform.isDarwin;
};
})

View File

@@ -0,0 +1,77 @@
{
lib,
stdenvNoCC,
fetchurl,
_7zz,
curl,
cacert,
xmlstarlet,
writeShellApplication,
common-updater-scripts,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "bartender";
version = "5.3.7";
src = fetchurl {
name = "Bartender ${lib.versions.major finalAttrs.version}.dmg";
url = "https://www.macbartender.com/B2/updates/${
builtins.replaceStrings [ "." ] [ "-" ] finalAttrs.version
}/Bartender%20${lib.versions.major finalAttrs.version}.dmg";
hash = "sha256-8hOe8MTDGyxEZTv0QndjkD3BEJ6kOHcbeU0uhat/N1s=";
};
dontPatch = true;
dontConfigure = true;
dontBuild = true;
dontFixup = true;
nativeBuildInputs = [ _7zz ];
sourceRoot = "Bartender ${lib.versions.major finalAttrs.version}.app";
installPhase = ''
runHook preInstall
mkdir -p "$out/Applications/${finalAttrs.sourceRoot}"
cp -R . "$out/Applications/${finalAttrs.sourceRoot}"
runHook postInstall
'';
passthru.updateScript = lib.getExe (writeShellApplication {
name = "bartender-update-script";
runtimeInputs = [
curl
cacert
xmlstarlet
common-updater-scripts
];
text = ''
version_major="${lib.versions.major finalAttrs.version}"
url="https://www.macbartender.com/B2/updates/AppcastB$version_major.xml"
version=$(curl -s "$url" | xmlstarlet sel -t -v '(//item)[last()]/sparkle:shortVersionString' -n)
update-source-version bartender "$version"
'';
});
meta = {
description = "Take control of your menu bar";
longDescription = ''
Bartender is an award-winning app for macOS that superpowers your menu bar, giving you total control over your menu bar items, what's displayed, and when, with menu bar items only showing when you need them.
Bartender improves your workflow with quick reveal, search, custom hotkeys and triggers, and lots more.
'';
homepage = "https://www.macbartender.com";
changelog = "https://macbartender.com/B2/updates/${
builtins.replaceStrings [ "." ] [ "-" ] finalAttrs.version
}/rnotes.html";
license = [ lib.licenses.unfree ];
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
maintainers = with lib.maintainers; [
stepbrobd
DimitarNestorov
];
platforms = lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,34 @@
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
}:
rustPlatform.buildRustPackage rec {
pname = "bartib";
version = "1.1.0";
src = fetchFromGitHub {
owner = "nikolassv";
repo = "bartib";
rev = "v${version}";
sha256 = "sha256-eVLacxKD8seD8mxVN1D3HhKZkIDXsEsSisZnFbmhpSk=";
};
cargoHash = "sha256-OSnBcYeTH9UqAXGhT/seEfNBejbYj/FTiMwMbvY7Bf4=";
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
installShellCompletion --cmd bartib --bash misc/bartibCompletion.sh
'';
meta = with lib; {
description = "Simple timetracker for the command line";
homepage = "https://github.com/nikolassv/bartib";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ figsoda ];
mainProgram = "bartib";
};
}

View File

@@ -0,0 +1,84 @@
{
config,
autoPatchelfHook,
boost,
bzip2,
cereal,
cmake,
eigen,
extra-cmake-modules,
fetchFromGitLab,
fmt,
freeglut,
glew,
lib,
libepoxy,
libGL,
lz4,
magic-enum,
nix-update-script,
opencv,
pkg-config,
stdenv,
onetbb,
xorg,
cudaPackages,
enableCuda ? config.cudaSupport,
}:
stdenv.mkDerivation {
pname = "basalt-monado";
version = "0-unstable-2025-09-25";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "mateosss";
repo = "basalt";
rev = "5337898271f5c2ce523258e93e80fd870130be31";
hash = "sha256-IoXZlXyOc5y9aSHBU3WCNhHi4L9xzHmbv6VMEvX2ZeE=";
fetchSubmodules = true;
};
nativeBuildInputs = [
autoPatchelfHook
cmake
extra-cmake-modules
pkg-config
];
buildInputs = [
boost
bzip2
cereal
eigen
fmt
freeglut
glew
libepoxy
libGL
lz4
magic-enum
opencv.cxxdev
onetbb
xorg.libX11
]
++ lib.optionals enableCuda [
cudaPackages.cuda_nvcc
];
cmakeFlags = [
(lib.cmakeBool "BASALT_INSTANTIATIONS_DOUBLE" false)
(lib.cmakeBool "BUILD_TESTS" false)
(lib.cmakeFeature "EIGEN_ROOT" "${eigen}/include/eigen3")
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Fork of Basalt improved for tracking XR devices with Monado";
homepage = "https://gitlab.freedesktop.org/mateosss/basalt";
license = lib.licenses.bsd3;
mainProgram = "basalt_vio";
maintainers = [ lib.maintainers.locochoco ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "basalt";
version = "0.9.0";
src = fetchFromGitHub {
owner = "erikjuhani";
repo = "basalt";
tag = "basalt/v${finalAttrs.version}";
hash = "sha256-r34MlNSLZAHqNWlFMGNxT6zTSX+IKKQmJ4klEB4kjek=";
};
cargoHash = "sha256-TpbJ1HCBocgLAXGb5dBbZNMlOYXR9IGBRtfShgwlMIo=";
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "TUI Application to manage Obsidian notes directly from the terminal";
homepage = "https://github.com/erikjuhani/basalt";
changelog = "https://github.com/erikjuhani/basalt/blob/${finalAttrs.src.tag}/basalt/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ faukah ];
mainProgram = "basalt";
};
})

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "base16-schemes";
version = "0-unstable-2025-06-04";
src = fetchFromGitHub {
owner = "tinted-theming";
repo = "schemes";
rev = "de3eeb6add0a6051bfc717684e36c8c9a78a1812";
hash = "sha256-C8VZuwzaQfNYbQQcc0Fh4RS+1nqc6j+IOy80NGmV4IQ=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/themes/
install base16/*.yaml $out/share/themes/
runHook postInstall
'';
meta = {
description = "All the color schemes for use in base16 packages";
homepage = "https://github.com/tinted-theming/schemes";
maintainers = [ lib.maintainers.DamienCassou ];
license = lib.licenses.mit;
};
})

View File

@@ -0,0 +1,36 @@
{
lib,
python3Packages,
fetchPypi,
}:
let
pname = "base16-shell-preview";
version = "1.1.0";
in
python3Packages.buildPythonApplication {
inherit pname version;
format = "pyproject";
src = fetchPypi {
inherit version;
pname = "${lib.replaceStrings [ "-" ] [ "_" ] pname}";
hash = "sha256-UWS1weiccSGqBU8grPAUKkuXb7qs5wliHVaPgdW4KtI=";
};
build-system = with python3Packages; [
setuptools
];
# If enabled, it will attempt to run '__init__.py, failing by trying to write
# at "/homeless-shelter" as HOME
doCheck = false;
meta = {
homepage = "https://github.com/nvllsvm/base16-shell-preview";
description = "Browse and preview Base16 Shell themes in your terminal";
mainProgram = "base16-shell-preview";
license = lib.licenses.mit;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,27 @@
{
buildGoModule,
fetchFromGitHub,
lib,
}:
buildGoModule rec {
pname = "base16-universal-manager";
version = "1.0";
src = fetchFromGitHub {
owner = "pinpox";
repo = "base16-universal-manager";
rev = "v${version}";
hash = "sha256-9KflJ863j0VeOyu6j6O28VafetRrM8FW818qCvqhaoY=";
};
vendorHash = "sha256-U28OJ5heeiaj3aGAhR6eAXzfvFMehAUcHzyFkZBRK6c=";
meta = with lib; {
description = "Universal manager to set base16 themes for any supported application";
homepage = "https://github.com/pinpox/base16-universal-manager";
license = licenses.mit;
maintainers = with maintainers; [ jo1gi ];
mainProgram = "base16-universal-manager";
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "base16384";
version = "2.3.2";
src = fetchFromGitHub {
owner = "fumiama";
repo = "base16384";
rev = "v${version}";
hash = "sha256-Xkub0sWT+1oJlznDnnV1mDgQNiMQj8gsWemrCOAYYgE=";
};
nativeBuildInputs = [ cmake ];
meta = with lib; {
description = "Encode binary files to printable utf16be";
mainProgram = "base16384";
homepage = "https://github.com/fumiama/base16384";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ aleksana ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,21 @@
{
lib,
buildNimPackage,
fetchFromSourcehut,
}:
buildNimPackage (finalAttrs: {
pname = "base45";
version = "20230124";
src = fetchFromSourcehut {
owner = "~ehmry";
repo = "base45";
rev = finalAttrs.version;
hash = "sha256-9he+14yYVGt2s1IuRLPRsv23xnJzERkWRvIHr3PxFYk=";
};
meta = finalAttrs.src.meta // {
description = "Base45 library for Nim";
license = lib.licenses.unlicense;
mainProgram = "base45";
};
})

View File

@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "base91";
version = "0.1.0";
src = fetchFromGitHub {
owner = "douzebis";
repo = "base91";
rev = "v${finalAttrs.version}";
hash = "sha256-Lx569OtNU0z884763FSByH0yXIq6GzeXyp5NVvMejco="; # update as needed
};
makeFlags = [
"CC=cc"
"-C"
"src"
"all"
];
installFlags = [
"-C"
"src"
"install"
"prefix=$(out)"
];
meta = {
description = "CLI tool for encoding binary data as ASCII characters";
homepage = "https://github.com/douzebis/base91";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ douzebis ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,112 @@
{
lib,
fetchFromGitHub,
runCommand,
stdenv,
clang_20,
buildNpmPackage,
docify,
testers,
writeText,
jq,
basedpyright,
pkg-config,
libsecret,
nix-update-script,
versionCheckHook,
}:
buildNpmPackage rec {
pname = "basedpyright";
version = "1.31.6";
src = fetchFromGitHub {
owner = "detachhead";
repo = "basedpyright";
tag = "v${version}";
hash = "sha256-SqG51pxkJQ/YrknSOMy6KWn1pvdgJa5CLnFl5naAPMA=";
};
npmDepsHash = "sha256-dwtMl5dFpol+J+cM6EHiwO+F93Iyurwx9Kr317IGtVw=";
npmWorkspace = "packages/pyright";
preBuild = ''
# Build the docstubs
cp -r packages/pyright-internal/typeshed-fallback docstubs
docify docstubs/stdlib --builtins-only --in-place
'';
nativeBuildInputs = [
docify
pkg-config
]
++ lib.optional stdenv.isDarwin [ clang_20 ]; # clang_21 breaks keytar
buildInputs = [ libsecret ];
postInstall = ''
mv "$out/bin/pyright" "$out/bin/basedpyright"
mv "$out/bin/pyright-langserver" "$out/bin/basedpyright-langserver"
# Remove dangling symlinks created during installation (remove -delete to just see the files, or -print '%l\n' to see the target
find -L $out -type l -print -delete
'';
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
tests = {
# We are expecting 4 errors. Any other amount would indicate not working
# stub files, for instance.
simple = testers.testEqualContents {
assertion = "simple type checking";
expected = writeText "expected" ''
4
'';
actual =
runCommand "actual"
{
nativeBuildInputs = [
jq
basedpyright
];
base = writeText "test.py" ''
import sys
from time import tzset
def print_string(a_string: str):
a_string += 42
print(a_string)
if sys.platform == "win32":
print_string(69)
this_function_does_not_exist("nice!")
else:
result_of_tzset_is_None: str = tzset()
'';
configFile = writeText "pyproject.toml" ''
[tool.pyright]
typeCheckingMode = "strict"
'';
}
''
(basedpyright --outputjson $base || true) | jq -r .summary.errorCount > $out
'';
};
};
};
meta = {
changelog = "https://github.com/detachhead/basedpyright/releases/tag/${src.tag}";
description = "Type checker for the Python language";
homepage = "https://github.com/detachhead/basedpyright";
license = lib.licenses.mit;
mainProgram = "basedpyright";
maintainers = with lib.maintainers; [
kiike
misilelab
];
};
}

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg2178"
sodipodi:version="0.32"
inkscape:version="0.45"
width="1568"
height="1164"
version="1.0"
sodipodi:docbase="F:\Uni\Scholl\Research\Conferences\BTW2007\Poster"
sodipodi:docname="Logo.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
sodipodi:modified="true">
<metadata
id="metadata2183">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs2181" />
<sodipodi:namedview
inkscape:window-height="1150"
inkscape:window-width="1143"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
inkscape:zoom="0.64948454"
inkscape:cx="784"
inkscape:cy="584.00852"
inkscape:window-x="412"
inkscape:window-y="20"
inkscape:current-layer="layer2"
showgrid="false"
inkscape:object-bbox="true"
inkscape:object-points="true"
gridempspacing="10" />
<g
inkscape:groupmode="layer"
id="layer2"
style="opacity:1">
<path
style="font-size:1470px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:19.98425102;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;font-family:Clarendo"
d="M 628.08008,847.55762 C 613.24569,864.30587 601.88095,879.3791 593.98584,892.77734 C 586.08995,906.17595 582.1422,916.94254 582.14258,925.07715 C 582.1422,937.9972 586.92735,947.08899 596.49805,952.35254 C 606.06796,957.61633 624.49079,960.24816 651.7666,960.24805 L 720.67285,960.24805 L 720.67285,1072.2207 L 207.46484,1072.2207 L 207.46484,960.24805 L 256.27344,960.24805 C 284.9843,960.24816 308.07265,955.94152 325.53857,947.32813 C 343.00426,938.71498 364.89633,919.09586 391.21484,888.4707 L 673.2998,568.34375 L 441.45898,276.92773 C 416.57596,245.82505 393.60723,224.77038 372.55273,213.76367 C 351.4979,202.75868 325.89734,197.25576 295.75098,197.25488 L 245.50684,197.25488 L 245.50684,86 L 767.32813,86 L 767.32813,197.25488 L 699.85742,197.25488 C 685.97999,197.25576 675.45266,199.76796 668.27539,204.7915 C 661.0972,209.81678 657.50834,217.11414 657.50879,226.68359 C 657.50834,233.38365 659.30277,240.20249 662.89209,247.14014 C 666.4805,254.07943 672.58156,262.57308 681.19531,272.62109 L 810.39453,429.81348 L 967.58691,265.44336 C 974.76388,258.26644 980.50606,250.84945 984.81348,243.19238 C 989.11933,235.53697 991.27265,229.07702 991.27344,223.8125 C 991.27265,215.20008 985.88936,208.62049 975.12354,204.07373 C 964.35618,199.5287 948.20629,197.25576 926.67383,197.25488 L 869.25195,197.25488 L 869.25195,86 L 1332.2158,86 L 1332.2158,197.25488 L 1279.1006,197.25488 C 1241.2968,197.25576 1189.8564,233.14439 1124.7793,304.9209 L 1123.3438,306.35645 L 905.8584,544.65723 L 1155.6436,856.1709 C 1194.8808,904.97966 1224.6684,934.52797 1245.0063,944.81592 C 1265.3422,955.10412 1294.412,960.24816 1332.2158,960.24805 L 1376,960.24805 L 1376,1072.2207 L 810.39453,1072.2207 L 810.39453,960.24805 L 877.86523,960.24805 C 901.79032,960.24816 919.25612,958.21447 930.2627,954.14697 C 941.26782,950.07971 946.77074,943.26087 946.77148,933.69043 C 946.77074,926.51284 945.3352,918.97623 942.46484,911.08057 C 939.59302,903.18523 935.28638,895.64861 929.54492,888.4707 L 768.76367,685.34082 L 628.08008,847.55762 z "
id="text2175" />
<path
style="font-size:500px;font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#e00000;fill-opacity:1;stroke:#ffffff;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;font-family:Arial Black"
d="M 146.16714,395.52869 L 353.19839,395.52869 C 387.70332,395.52904 414.19255,404.07396 432.66616,421.16345 C 451.13913,438.25361 460.37577,459.41244 460.37612,484.64001 C 460.37577,505.79912 453.78398,523.94688 440.60073,539.08337 C 431.81135,549.17472 418.95329,557.14998 402.02651,563.00916 C 427.74234,569.19424 446.66322,579.81434 458.78921,594.86951 C 470.9145,609.92499 476.97732,628.84587 476.97768,651.6322 C 476.97732,670.18697 472.66417,686.8699 464.03823,701.68103 C 455.41158,716.49227 443.61146,728.211 428.63784,736.83728 C 419.36019,742.20839 405.3628,746.11463 386.64565,748.55603 C 361.74306,751.81124 345.22289,753.43884 337.08511,753.43884 L 146.16714,753.43884 L 146.16714,395.52869 z M 257.7394,535.90955 L 305.83511,535.90955 C 323.0875,535.90976 335.09107,532.93939 341.84585,526.99841 C 348.60017,521.05789 351.97744,512.47229 351.97768,501.24158 C 351.97744,490.82517 348.60017,482.68716 341.84585,476.82751 C 335.09107,470.96842 323.33164,468.03874 306.56753,468.03845 L 257.7394,468.03845 L 257.7394,535.90955 z M 257.7394,676.53455 L 314.13589,676.53455 C 333.17863,676.53462 346.60635,673.15735 354.41909,666.40271 C 362.23134,659.64825 366.13758,650.57436 366.13784,639.18103 C 366.13758,628.60173 362.27203,620.0975 354.54116,613.66833 C 346.8098,607.23944 333.26001,604.02493 313.89175,604.02478 L 257.7394,604.02478 L 257.7394,676.53455 z "
id="text2205" />
<path
style="font-size:500px;font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#e00000;fill-opacity:1;stroke:#ffffff;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;font-family:Arial Black"
d="M 703.69272,694.35681 L 577.71616,694.35681 L 560.38217,753.43884 L 447.34506,753.43884 L 581.86655,395.52869 L 702.47202,395.52869 L 836.9935,753.43884 L 721.27084,753.43884 L 703.69272,694.35681 z M 680.49936,616.96423 L 640.94858,488.30212 L 601.64194,616.96423 L 680.49936,616.96423 z "
id="text3180" />
<path
style="font-size:500px;font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#e00000;fill-opacity:1;stroke:#ffffff;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;font-family:Arial Black"
d="M 810.90509,641.13416 L 916.1297,634.54236 C 918.40822,651.63231 923.04689,664.65313 930.04572,673.60486 C 941.4388,688.09061 957.71482,695.33344 978.87384,695.33337 C 994.6614,695.33344 1006.8277,691.63064 1015.3729,684.22498 C 1023.9176,676.81946 1028.19,668.23386 1028.1902,658.46814 C 1028.19,649.19091 1024.121,640.89013 1015.9832,633.5658 C 1007.845,626.24171 988.96479,619.3244 959.34259,612.81384 C 910.83987,601.90905 876.25331,587.42339 855.58282,569.35681 C 834.74945,551.29061 824.33279,528.26004 824.33282,500.26501 C 824.33279,481.87337 829.66319,464.49871 840.32404,448.14099 C 850.98479,431.7839 867.01667,418.92584 888.41974,409.56677 C 909.82262,400.20841 939.16015,395.52905 976.43243,395.52869 C 1022.1679,395.52905 1057.0393,404.03327 1081.0467,421.04138 C 1105.0535,438.05017 1119.3358,465.10906 1123.8934,502.21814 L 1019.6453,508.32166 C 1016.8782,492.20864 1011.0595,480.4899 1002.1893,473.16541 C 993.31863,465.84148 981.07092,462.17937 965.44611,462.17908 C 952.58787,462.17937 942.90364,464.90561 936.39337,470.35779 C 929.88282,475.81055 926.62761,482.44303 926.62775,490.25525 C 926.62761,495.95213 929.31316,501.07908 934.68439,505.63611 C 939.89257,510.35641 952.26235,514.75094 971.79376,518.8197 C 1020.1334,529.2366 1054.7606,539.77533 1075.6756,550.43591 C 1096.59,561.09692 1111.8081,574.32119 1121.3299,590.10876 C 1130.851,605.89668 1135.6118,623.55617 1135.6121,643.08728 C 1135.6118,666.03659 1129.2641,687.19543 1116.5692,706.56384 C 1103.8735,725.93237 1086.1327,740.62148 1063.3465,750.63123 C 1040.5598,760.64099 1011.8326,765.64587 977.16486,765.64587 C 916.29234,765.64587 874.13743,753.92713 850.70001,730.48962 C 827.26248,707.05218 813.99752,677.26705 810.90509,641.13416 L 810.90509,641.13416 z "
id="text3184" />
<path
style="font-size:500px;font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#e00000;fill-opacity:1;stroke:#ffffff;stroke-width:20;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;font-family:Arial Black"
d="M 1139.0592,395.52869 L 1435.4459,395.52869 L 1435.4459,471.9447 L 1249.899,471.9447 L 1249.899,528.82947 L 1422.0182,528.82947 L 1422.0182,601.82751 L 1249.899,601.82751 L 1249.899,672.38416 L 1440.817,672.38416 L 1440.817,753.43884 L 1139.0592,753.43884 L 1139.0592,395.52869 z "
id="text3188" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,86 @@
{
lib,
stdenv,
fetchurl,
unzip,
jre,
coreutils,
makeDesktopItem,
copyDesktopItems,
}:
stdenv.mkDerivation rec {
pname = "basex";
version = "12.0";
src = fetchurl {
url = "http://files.basex.org/releases/${version}/BaseX${
builtins.replaceStrings [ "." ] [ "" ] version
}.zip";
hash = "sha256-/9TeaAp2jckG77F8+J3aSpkoXWyTFXvXxnxXgpn58Zc=";
};
nativeBuildInputs = [
unzip
copyDesktopItems
];
buildInputs = [ jre ];
desktopItems = lib.optional (!stdenv.hostPlatform.isDarwin) (makeDesktopItem {
name = "basex";
exec = "basexgui %f";
icon = "${./basex.svg}"; # icon copied from Ubuntu basex package
comment = "Visually query and analyse your XML data";
desktopName = "BaseX XML Database";
genericName = "XML database tool";
categories = [
"Development"
"Utility"
"Database"
];
mimeTypes = [ "text/xml" ];
});
dontBuild = true;
installPhase = ''
runHook preInstall
# Remove Windows batch files (unclutter $out/bin)
rm ./bin/*.bat
mkdir -p "$out/share/basex"
cp -R bin etc lib webapp src BaseX.jar "$out"
cp -R readme.txt webapp "$out/share/basex"
# Use substitutions instead of wrapper scripts
for file in "$out"/bin/*; do
sed -i -e "s|/usr/bin/env bash|${stdenv.shell}|" \
-e "s|java|${jre}/bin/java|" \
-e "s|readlink|${coreutils}/bin/readlink|" \
-e "s|dirname|${coreutils}/bin/dirname|" \
-e "s|basename|${coreutils}/bin/basename|" \
-e "s|echo|${coreutils}/bin/echo|" \
"$file"
done
runHook postInstall
'';
meta = with lib; {
description = "XML database and XPath/XQuery processor";
longDescription = ''
BaseX is a very fast and light-weight, yet powerful XML database and
XPath/XQuery processor, including support for the latest W3C Full Text
and Update Recommendations. It supports large XML instances and offers a
highly interactive front-end (basexgui). Apart from two local standalone
modes, BaseX offers a client/server architecture.
'';
homepage = "https://basex.org/";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.bsd3;
platforms = platforms.unix;
maintainers = [ maintainers.bjornfor ];
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "basez";
version = "1.6.2";
src = fetchurl {
url = "http://www.quarkline.net/basez/download/basez-${version}.tar.gz";
sha256 = "sha256-Kp+CFIh5HCdj7wEgx1xD3IPdFlZ7fEFvMDMYif1ZiTc=";
};
doCheck = true;
meta = with lib; {
description = "Base 16/32/64 encode/decode data to standard output";
longDescription = ''
Encode data into/decode data from base16, base32, base32hex, base64 or
base64url stream per RFC 4648; MIME base64 Content-Transfer-Encoding
per RFC 2045; or PEM Printable Encoding per RFC 1421.
'';
homepage = "http://www.quarkline.net/basez/";
license = licenses.gpl3Plus;
maintainers = [ maintainers.oaksoaj ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,82 @@
{
lib,
stdenv,
fetchurl,
autoreconfHook,
perl,
ps,
python3Packages,
bashInteractive,
}:
stdenv.mkDerivation rec {
pname = "bash-completion";
version = "2.16.0";
# Using fetchurl because fetchGithub or fetchzip will have trouble on
# e.g. APFS filesystems (macOS) because of non UTF-8 characters in some of the
# test fixtures that are part of the repository.
# See discussion in https://github.com/NixOS/nixpkgs/issues/107768
src = fetchurl {
url = "https://github.com/scop/bash-completion/releases/download/${version}/bash-completion-${version}.tar.xz";
hash = "sha256-M2m9XkGKdfuZCGOSWu1bQgOYrOuzIOxMAwaz6uI/EHo=";
};
postPatch = ''
# fix `mount -t` tab completion
substituteInPlace bash_completion \
--replace-fail "/lib/modules" "/run/booted-system/kernel-modules/lib/modules"
'';
strictDeps = true;
nativeBuildInputs = [ autoreconfHook ];
# tests are super flaky unfortunately, and regularly break.
# let's disable them for now.
doCheck = false;
nativeCheckInputs = [
# perl is assumed by perldoc completion
perl
# ps assumed to exist by gdb, killall, pgrep, pidof,
# pkill, pwdx, renice, and reptyr completions
ps
python3Packages.pexpect
python3Packages.pytest
bashInteractive
];
# - ignore test_gcc on ARM because it assumes -march=native
# - ignore test_chsh because it assumes /etc/shells exists
# - ignore test_ether_wake, test_ifdown, test_ifstat, test_ifup,
# test_iperf, test_iperf3, test_nethogs and ip_addresses
# because they try to touch network
# - ignore test_ls because impure logic
# - ignore test_screen because it assumes vt terminals exist
checkPhase = ''
pytest . \
${lib.optionalString stdenv.hostPlatform.isAarch "--ignore=test/t/test_gcc.py"} \
--ignore=test/t/test_chsh.py \
--ignore=test/t/test_ether_wake.py \
--ignore=test/t/test_ifdown.py \
--ignore=test/t/test_ifstat.py \
--ignore=test/t/test_ifup.py \
--ignore=test/t/test_iperf.py \
--ignore=test/t/test_iperf3.py \
--ignore=test/t/test_nethogs.py \
--ignore=test/t/unit/test_unit_ip_addresses.py \
--ignore=test/t/test_ls.py \
--ignore=test/t/test_screen.py
'';
prePatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
sed -i -e 's/readlink -f/readlink/g' bash_completion completions/*
'';
meta = with lib; {
homepage = "https://github.com/scop/bash-completion";
description = "Programmable completion for the bash shell";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ philiptaron ];
};
}

View File

@@ -0,0 +1,49 @@
{
stdenvNoCC,
lib,
fetchFromGitHub,
coreutils,
gnused,
jq,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "bash-env-json";
version = "0.10.1";
src = fetchFromGitHub {
owner = "tesujimath";
repo = "bash-env-json";
rev = finalAttrs.version;
hash = "sha256-gyqj5r11DOfXd23LT7qwRLEoWvpHUbxbd28QJnlWTaQ=";
};
installPhase = ''
runHook preInstall
install -Dm755 bash-env-json -t $out/bin
runHook postInstall
'';
postFixup = ''
substituteInPlace $out/bin/bash-env-json --replace-fail " env " " ${lib.getExe' coreutils "env"} "
substituteInPlace $out/bin/bash-env-json --replace-fail " jq " " ${lib.getExe jq} "
substituteInPlace $out/bin/bash-env-json --replace-fail " mktemp " " ${lib.getExe' coreutils "mktemp"} "
substituteInPlace $out/bin/bash-env-json --replace-fail " rm " " ${lib.getExe' coreutils "rm"} "
substituteInPlace $out/bin/bash-env-json --replace-fail " sed " " ${lib.getExe gnused} "
substituteInPlace $out/bin/bash-env-json --replace-fail " touch " " ${lib.getExe' coreutils "touch"} "
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Export Bash environment as JSON for import into modern shells like Elvish and Nushell";
homepage = "https://github.com/tesujimath/bash-env-json";
mainProgram = "bash-env-json";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jaredmontoya ];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
python3,
}:
stdenv.mkDerivation {
pname = "bash-git-prompt";
version = "2.7.1-unstable-2025-04-23";
src = fetchFromGitHub {
owner = "magicmonty";
repo = "bash-git-prompt";
rev = "e733ada3e93fd9fdb6e9d1890e38e6e523522da7";
hash = "sha256-FWeYzISY4+cS2xg6skfcpTXgbkBs41E/EzEb3JNdFoQ=";
};
buildInputs = [ python3 ];
installPhase = ''
runHook preInstall
mkdir -p $out
# Copy all shell scripts
cp *.sh $out/
# Copy fish script
cp *.fish $out/
# Copy themes directory
cp -r themes $out/
# Copy documentation
cp README.md $out/
cp LICENSE.txt $out/
runHook postInstall
'';
meta = {
description = "Informative, fancy bash prompt for Git users";
homepage = "https://github.com/magicmonty/bash-git-prompt";
license = lib.licenses.bsd2;
platforms = lib.platforms.all;
maintainers = [ lib.maintainers.parrot7483 ];
};
}

View File

@@ -0,0 +1,91 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
pnpm_10,
nodejs,
makeBinaryWrapper,
shellcheck,
versionCheckHook,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "bash-language-server";
version = "5.6.0";
src = fetchFromGitHub {
owner = "bash-lsp";
repo = "bash-language-server";
tag = "server-${finalAttrs.version}";
hash = "sha256-Pe32lQSlyWcyUbqwhfoulwNwhrnWdRcKFIl3Jj0Skac=";
};
pnpmWorkspaces = [ "bash-language-server" ];
pnpmDeps = pnpm_10.fetchDeps {
inherit (finalAttrs)
pname
version
src
pnpmWorkspaces
;
fetcherVersion = 1;
hash = "sha256-NvyqPv5OKgZi3hW98Da8LhsYatmrzrPX8kLOfLr+BrI=";
};
nativeBuildInputs = [
nodejs
pnpm_10.configHook
makeBinaryWrapper
versionCheckHook
];
buildPhase = ''
runHook preBuild
pnpm compile server
runHook postBuild
'';
preInstall = ''
# remove unnecessary files
rm node_modules/.modules.yaml
CI=true pnpm --ignore-scripts --prod prune
rm -r node_modules/.pnpm/@mixmark-io*/node_modules/@mixmark-io/domino/{test,.yarn}
find -type f \( -name "*.ts" -o -name "*.map" \) -exec rm -rf {} +
# https://github.com/pnpm/pnpm/issues/3645
find node_modules server/node_modules -xtype l -delete
# remove non-deterministic files
rm node_modules/.modules.yaml
'';
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib/bash-language-server}
cp -r {node_modules,server} $out/lib/bash-language-server/
# Create the executable, based upon what happens in npmHooks.npmInstallHook
makeWrapper ${lib.getExe nodejs} $out/bin/bash-language-server \
--suffix PATH : ${lib.makeBinPath [ shellcheck ]} \
--inherit-argv0 \
--add-flags $out/lib/bash-language-server/server/out/cli.js
runHook postInstall
'';
doInstallCheck = true;
meta = {
description = "Language server for Bash";
homepage = "https://github.com/bash-lsp/bash-language-server";
changelog = "https://github.com/bash-lsp/bash-language-server/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
doronbehar
gepbird
];
mainProgram = "bash-language-server";
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,39 @@
diff --git a/bin/bma b/bin/bma
index 6144842..26965ce 100755
--- a/bin/bma
+++ b/bin/bma
@@ -13,7 +13,7 @@
#
# Assumes you have installed bash-my-aws to standard location
-for f in "${BMA_HOME:-$HOME/.bash-my-aws}"/lib/*-functions; do source $f; done
+for f in @out@/lib/*-functions; do source $f; done
# Disable awcli client side pager
#
diff --git a/scripts/build b/scripts/build
index 54a786b..37a05df 100755
--- a/scripts/build
+++ b/scripts/build
@@ -41,7 +41,7 @@ funcs_after_bma=$(compgen -A function)
exclusions=('region')
for fnc in $(echo "${funcs_before_bma}" "${funcs_after_bma}" "${exclusions}" | tr ' ' '\n' | LC_ALL=C sort | uniq -u); do
- echo "alias $fnc='\${BMA_HOME:-\$HOME/.bash-my-aws}/bin/bma $fnc'" >> "$aliases_destination"
+ echo "alias $fnc='@out@/bin/bma $fnc'" >> "$aliases_destination"
done;
diff --git a/scripts/build-completions b/scripts/build-completions
index 2b5d49b..bf86af6 100755
--- a/scripts/build-completions
+++ b/scripts/build-completions
@@ -6,7 +6,7 @@ cat <<EOF
# DO NOT MANUALLY MODIFY THIS FILE.
# Use 'scripts/build' to regenerate if required.
-bma_path="\${BMA_HOME:-\$HOME/.bash-my-aws}"
+bma_path="@out@"
EOF
# load in all the completions from scripts/completions

View File

@@ -0,0 +1,52 @@
diff --git a/test/stack-spec.sh b/test/stack-spec.sh
index f04a10c..1165953 100755
--- a/test/stack-spec.sh
+++ b/test/stack-spec.sh
@@ -72,28 +72,30 @@ describe "_bma_stack_template_arg:" "$(
)"
-[[ -d cloudformation/params ]] || mkdir -p cloudformation/params
+TEST_DIR=$(mktemp -d)
+
+[[ -d "$TEST_DIR"/cloudformation/params ]] || mkdir -p "$TEST_DIR"/cloudformation/params
# templates
touch \
- $(dirname $0)/cloudformation/great-app.json \
- $(dirname $0)/cloudformation/great-app.yml \
- $(dirname $0)/cloudformation/great-app.yaml \
+ "$TEST_DIR"/cloudformation/great-app.json \
+ "$TEST_DIR"/cloudformation/great-app.yml \
+ "$TEST_DIR"/cloudformation/great-app.yaml \
# params
[[ -d params ]] || mkdir params
touch \
- $(dirname $0)/cloudformation/great-app-params.json \
- $(dirname $0)/cloudformation/great-app-params-staging.json \
- $(dirname $0)/cloudformation/great-app-params-another-env.json \
- $(dirname $0)/cloudformation/params/great-app-params.json \
- $(dirname $0)/cloudformation/params/great-app-params-staging.json \
- $(dirname $0)/cloudformation/params/great-app-params-another-env.json
+ "$TEST_DIR"/cloudformation/great-app-params.json \
+ "$TEST_DIR"/cloudformation/great-app-params-staging.json \
+ "$TEST_DIR"/cloudformation/great-app-params-another-env.json \
+ "$TEST_DIR"/cloudformation/params/great-app-params.json \
+ "$TEST_DIR"/cloudformation/params/great-app-params-staging.json \
+ "$TEST_DIR"/cloudformation/params/great-app-params-another-env.json
-cd $(dirname $0)/cloudformation
+cd "$TEST_DIR"/cloudformation
describe "_bma_stack_args:" "$(
context "without an argument" "$(
@@ -115,3 +117,5 @@ describe "_bma_stack_args:" "$(
)"
cd -
+
+rm -rf "$TEST_DIR"

View File

@@ -0,0 +1,103 @@
{
lib,
stdenv,
makeWrapper,
awscli2,
jq,
unixtools,
fetchFromGitHub,
installShellFiles,
bashInteractive,
getopt,
python3,
}:
let
runtimeDeps = [
awscli2
jq
unixtools.column
bashInteractive
getopt
(python3.withPackages (ps: [ ps.jmespath ]))
];
in
stdenv.mkDerivation {
pname = "bash-my-aws";
version = "0-unstable-2025-01-22";
src = fetchFromGitHub {
owner = "bash-my-aws";
repo = "bash-my-aws";
rev = "d338b43cc215719c1853ec500c946db6b9caaa11";
sha256 = "sha256-PR52T6XCrakQsBOJXf0PaYpYE5oMcIz5UDA4I9B7C38=";
};
dontConfigure = true;
propagatedBuildInputs = runtimeDeps;
nativeBuildInputs = [
makeWrapper
installShellFiles
bashInteractive
];
patches = [
./0001-update-paths-to-placeholders.patch
./0002-fix-tests.patch
];
postPatch = ''
patchShebangs --build ./scripts
substituteAllInPlace ./scripts/build
substituteAllInPlace ./scripts/build-completions
substituteAllInPlace ./bin/bma
'';
buildPhase = ''
runHook preBuild
./scripts/build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r . $out
cat > $out/bin/bma-init <<EOF
echo source $out/aliases
EOF
chmod +x $out/bin/bma-init
installShellCompletion --bash --name bash-my-aws.bash $out/bash_completion.sh
runHook postInstall
'';
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
pushd $out
make test
popd
runHook postInstallCheck
'';
preFixup = ''
wrapProgram $out/bin/bma --prefix PATH : ${lib.makeBinPath runtimeDeps}
# make lib file executable so they are picked up by patchShebangs
chmod +x $out/lib/*
'';
meta = with lib; {
homepage = "https://bash-my-aws.org";
description = "CLI commands for AWS";
license = licenses.mit;
maintainers = with maintainers; [ tomberek ];
mainProgram = "bma";
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "bash-pinyin-completion-rs";
version = "0.3.2";
src = fetchFromGitHub {
owner = "AOSC-Dev";
repo = "bash-pinyin-completion-rs";
tag = "v${finalAttrs.version}";
hash = "sha256-r+B11TgMOhwslqygv72S9uhF7v79MAzUu5XHlD/P3HY=";
};
strictDeps = true;
cargoHash = "sha256-IEtGulY6EqJ74ok1xLY64K1yKSZcmb/wyObtcaHYMRk=";
postInstall = ''
substituteInPlace scripts/bash_pinyin_completion \
--replace-fail 'bash-pinyin-completion-rs' "$out/bin/bash-pinyin-completion-rs" \
--replace-fail '#!/usr/bin/env bash' ""
install -Dm644 scripts/bash_pinyin_completion $out/etc/bash_completion.d/pinyin_completion.bash
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Simple completion script for pinyin, written in rust";
homepage = "https://github.com/AOSC-Dev/bash-pinyin-completion-rs";
changelog = "https://github.com/AOSC-Dev/bash-pinyin-completion-rs/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ moraxyc ];
mainProgram = "bash-pinyin-completion-rs";
};
})

View File

@@ -0,0 +1,64 @@
{
stdenvNoCC,
lib,
fetchFromGitHub,
bats,
}:
let
version = "0.6.0";
in
stdenvNoCC.mkDerivation {
pname = "bash-preexec";
inherit version;
src = fetchFromGitHub {
owner = "rcaloras";
repo = "bash-preexec";
tag = version;
hash = "sha256-4DzbeIiUX7iXy2CeSvRC2X+XnjVk+/UiMbM/dLHx7zU=";
};
nativeCheckInputs = [ bats ];
dontConfigure = true;
doCheck = true;
dontBuild = true;
patchPhase = ''
runHook prePatch
# Needed since the tests expect that HISTCONTROL is set.
sed -i '/setup()/a HISTCONTROL=""' test/bash-preexec.bats
# Skip tests failing with Bats 1.5.0.
# See https://github.com/rcaloras/bash-preexec/issues/121
sed -i '/^@test.*IFS/,/^}/d' test/bash-preexec.bats
runHook postPatch
'';
checkPhase = ''
runHook preCheck
bats test
runHook postCheck
'';
installPhase = ''
runHook preInstall
install -Dm755 bash-preexec.sh $out/share/bash/bash-preexec.sh
runHook postInstall
'';
meta = {
description = "Preexec and precmd functions for Bash just like Zsh";
license = lib.licenses.mit;
homepage = "https://github.com/rcaloras/bash-preexec";
changelog = "https://github.com/rcaloras/bash-preexec/releases/tag/${version}";
maintainers = with lib.maintainers; [
hawkw
rycee
];
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
unstableGitUpdater,
makeWrapper,
openssl,
coreutils,
gnugrep,
}:
stdenv.mkDerivation {
pname = "bash-supergenpass";
version = "0-unstable-2024-03-24";
nativeBuildInputs = [ makeWrapper ];
src = fetchFromGitHub {
owner = "lanzz";
repo = "bash-supergenpass";
rev = "03416ad4d753d825acd0443a01ac13d385d5e048";
sha256 = "Q+xmT72UFCc71K87mAzpyTmEIXjR9SqX0xzmQfi5P9k=";
};
installPhase = ''
install -m755 -D supergenpass.sh "$out/bin/supergenpass"
wrapProgram "$out/bin/supergenpass" --prefix PATH : "${
lib.makeBinPath [
openssl
coreutils
gnugrep
]
}"
'';
passthru.updateScript = unstableGitUpdater {
url = "https://github.com/lanzz/bash-supergenpass.git";
};
meta = with lib; {
description = "Bash shell-script implementation of SuperGenPass password generation";
longDescription = ''
Bash shell-script implementation of SuperGenPass password generation
Usage: ./supergenpass.sh <domain> [ <length> ]
Default <length> is 10, which is also the original SuperGenPass default length.
The <domain> parameter is also optional, but it does not make much sense to omit it.
supergenpass will ask for your master password interactively, and it will not be displayed on your terminal.
'';
homepage = "https://github.com/lanzz/bash-supergenpass";
license = licenses.mit;
maintainers = with maintainers; [ fgaz ];
mainProgram = "supergenpass";
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,61 @@
{
stdenv,
lib,
fetchFromGitHub,
makeWrapper,
curl,
python3,
bind,
iproute2,
bc,
gitMinimal,
}:
let
version = "1.23.0";
deps = lib.makeBinPath [
curl
python3
bind.dnsutils
iproute2
bc
gitMinimal
];
in
stdenv.mkDerivation {
pname = "bashSnippets";
inherit version;
src = fetchFromGitHub {
owner = "alexanderepstein";
repo = "Bash-Snippets";
rev = "v${version}";
sha256 = "044nxgd3ic2qr6hgq5nymn3dyf5i4s8mv5z4az6jvwlrjnvbg8cp";
};
nativeBuildInputs = [ makeWrapper ];
postPatch = ''
patchShebangs install.sh
substituteInPlace install.sh --replace /usr/local "$out"
'';
strictDeps = true;
dontBuild = true;
installPhase = ''
mkdir -p "$out"/bin "$out"/share/man/man1
./install.sh all
for file in "$out"/bin/*; do
wrapProgram "$file" --prefix PATH : "${deps}"
done
'';
meta = with lib; {
description = "Collection of small bash scripts for heavy terminal users";
homepage = "https://github.com/alexanderepstein/Bash-Snippets";
license = licenses.mit;
maintainers = [ ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,54 @@
{
fetchFromGitHub,
lib,
stdenv,
}:
stdenv.mkDerivation rec {
pname = "bash_unit";
version = "2.3.3";
src = fetchFromGitHub {
owner = "bash-unit";
repo = "bash_unit";
rev = "v${version}";
hash = "sha256-uRUqa6sXaXXDes9JjyTsMlA+nYdTGdioM0/y2XDIiEw=";
};
patchPhase = ''
runHook prePatch
patchShebangs bash_unit
for t in tests/test_*; do
chmod +x "$t" # make test file visible to `patchShebangs`
patchShebangs "$t"
chmod -x "$t"
done
runHook postPatch
'';
doCheck = true;
checkPhase = ''
runHook preCheck
./bash_unit ./tests/test_core.sh
runHook postCheck
'';
installPhase = ''
mkdir -p $out/bin
cp bash_unit $out/bin/
'';
meta = with lib; {
description = "Bash unit testing enterprise edition framework for professionals";
maintainers = with maintainers; [ pamplemousse ];
platforms = platforms.all;
license = licenses.gpl3Plus;
mainProgram = "bash_unit";
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
fetchPypi,
python3Packages,
versionCheckHook,
}:
python3Packages.buildPythonApplication rec {
pname = "bashate";
version = "2.1.1";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-S6tul3+DBacgU1+Pk/H7QsUh/LxKbCs9PXZx9C8iH0w=";
};
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
babel
pbr
];
nativeCheckInputs = with python3Packages; [
fixtures
mock
stestr
testtools
];
checkPhase = ''
runHook preCheck
stestr run
runHook postCheck
'';
pythonImportsCheck = [ "bashate" ];
meta = {
description = "Style enforcement for bash programs";
mainProgram = "bashate";
homepage = "https://opendev.org/openstack/bashate";
license = with lib.licenses; [ asl20 ];
maintainers = with lib.maintainers; [ fab ];
teams = [ lib.teams.openstack ];
};
}

View File

@@ -0,0 +1,25 @@
From 1990ac93c9dbf3ada0eb2f045ef1aa95bbef7018 Mon Sep 17 00:00:00 2001
From: "P. R. d. O" <d.ol.rod@tutanota.com>
Date: Thu, 21 Apr 2022 07:40:30 -0600
Subject: [PATCH] Setting markdown_bin
---
bb.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bb.sh b/bb.sh
index 9d8e645..40fb54d 100755
--- a/bb.sh
+++ b/bb.sh
@@ -160,7 +160,7 @@ global_variables() {
# Markdown location. Trying to autodetect by default.
# The invocation must support the signature 'markdown_bin in.md > out.html'
- [[ -f Markdown.pl ]] && markdown_bin=./Markdown.pl || markdown_bin=$(which Markdown.pl 2>/dev/null || which markdown 2>/dev/null)
+ markdown_bin=@markdown_path@
}
# Check for the validity of some variables
--
2.35.1

View File

@@ -0,0 +1,64 @@
{
stdenv,
lib,
fetchFromGitHub,
makeWrapper,
replaceVars,
perlPackages,
# Flags to enable processors
# Currently, Markdown.pl does not work
usePandoc ? true,
pandoc,
}:
let
inherit (perlPackages) TextMarkdown;
# As bashblog supports various markdown processors
# we can set flags to enable a certain processor
markdownpl_path = "${perlPackages.TextMarkdown}/bin/Markdown.pl";
pandoc_path = "${pandoc}/bin/pandoc";
in
stdenv.mkDerivation {
pname = "bashblog";
version = "0-unstable-2022-03-26";
src = fetchFromGitHub {
owner = "cfenollosa";
repo = "bashblog";
rev = "c3d4cc1d905560ecfefce911c319469f7a7ff8a8";
sha256 = "sha256-THlP/JuaZzDq9QctidwLRiUVFxRhGNhRKleWbQiqsgg=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ TextMarkdown ] ++ lib.optionals usePandoc [ pandoc ];
patches = [
(replaceVars ./0001-Setting-markdown_bin.patch {
markdown_path = if usePandoc then pandoc_path else markdownpl_path;
})
];
postPatch = ''
patchShebangs bb.sh
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install -Dm755 bb.sh $out/bin/bashblog
runHook postInstall
'';
meta = with lib; {
description = "Single Bash script to create blogs";
mainProgram = "bashblog";
homepage = "https://github.com/cfenollosa/bashblog";
license = licenses.gpl3Only;
platforms = platforms.unix;
maintainers = [ ];
};
}

Some files were not shown because too many files have changed in this diff Show More