about summary refs log tree commit diff
path: root/pkgs/by-name/ba
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ba')
-rw-r--r--pkgs/by-name/ba/babeltrace/package.nix2
-rw-r--r--pkgs/by-name/ba/backgroundremover/package.nix2
-rw-r--r--pkgs/by-name/ba/backlight-auto/package.nix2
-rw-r--r--pkgs/by-name/ba/balls/lock.json111
-rw-r--r--pkgs/by-name/ba/balls/package.nix56
-rw-r--r--pkgs/by-name/ba/bankstown-lv2/package.nix2
-rw-r--r--pkgs/by-name/ba/bant/package.nix64
-rw-r--r--pkgs/by-name/ba/baobab/package.nix63
-rw-r--r--pkgs/by-name/ba/base45/package.nix2
-rw-r--r--pkgs/by-name/ba/basedpyright/package.nix51
-rw-r--r--pkgs/by-name/ba/bash-language-server/package.nix26
-rw-r--r--pkgs/by-name/ba/bat/package.nix2
-rw-r--r--pkgs/by-name/ba/batik/package.nix55
-rw-r--r--pkgs/by-name/ba/batmon/package.nix2
-rw-r--r--pkgs/by-name/ba/bazecor/10-dygma.rules4
-rw-r--r--pkgs/by-name/ba/bazecor/package.nix68
16 files changed, 486 insertions, 26 deletions
diff --git a/pkgs/by-name/ba/babeltrace/package.nix b/pkgs/by-name/ba/babeltrace/package.nix
index a9a9928d77aa7..488f81ffec2ab 100644
--- a/pkgs/by-name/ba/babeltrace/package.nix
+++ b/pkgs/by-name/ba/babeltrace/package.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
   version = "1.5.11";
 
   src = fetchurl {
-    url = "https://www.efficios.com/files/babeltrace/${finalAttrs.pname}-${finalAttrs.version}.tar.bz2";
+    url = "https://www.efficios.com/files/babeltrace/babeltrace-${finalAttrs.version}.tar.bz2";
     sha256 = "Z7Q6qu9clR+nrxpVfPcgGhH+iYdrfCK6CgPLwxbbWpw=";
   };
 
diff --git a/pkgs/by-name/ba/backgroundremover/package.nix b/pkgs/by-name/ba/backgroundremover/package.nix
index 67c2f2eaa6a87..3ee27b6923939 100644
--- a/pkgs/by-name/ba/backgroundremover/package.nix
+++ b/pkgs/by-name/ba/backgroundremover/package.nix
@@ -32,7 +32,7 @@ let
         --replace 'os.path.expanduser(os.path.join("~", ".u2net", model_name + ".pth"))' "os.path.join(\"$models\", model_name + \".pth\")"
     '';
 
-    nativeBuildInputs = [ p.setuptools p.wheel p.pythonRelaxDepsHook ];
+    nativeBuildInputs = [ p.setuptools p.wheel ];
 
     pythonRelaxDeps = [ "pillow" "torchvision" ];
 
diff --git a/pkgs/by-name/ba/backlight-auto/package.nix b/pkgs/by-name/ba/backlight-auto/package.nix
index 26869b5a20dd4..9fa2d1245d10c 100644
--- a/pkgs/by-name/ba/backlight-auto/package.nix
+++ b/pkgs/by-name/ba/backlight-auto/package.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
     mainProgram = "backlight-auto";
     homepage = "https://len.falken.directory/backlight-auto.html";
     license = licenses.mit;
-    maintainers = [ maintainers.lf- ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 })
diff --git a/pkgs/by-name/ba/balls/lock.json b/pkgs/by-name/ba/balls/lock.json
new file mode 100644
index 0000000000000..5379ad56d2c4d
--- /dev/null
+++ b/pkgs/by-name/ba/balls/lock.json
@@ -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"
+    }
+  ]
+}
diff --git a/pkgs/by-name/ba/balls/package.nix b/pkgs/by-name/ba/balls/package.nix
new file mode 100644
index 0000000000000..04f6d701bb0f1
--- /dev/null
+++ b/pkgs/by-name/ba/balls/package.nix
@@ -0,0 +1,56 @@
+{
+  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 = "The testing framework with balls";
+    homepage = "https://github.com/disruptek/balls";
+    mainProgram = "balls";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ ehmry ];
+  };
+})
diff --git a/pkgs/by-name/ba/bankstown-lv2/package.nix b/pkgs/by-name/ba/bankstown-lv2/package.nix
index 2ee7b4486e014..7cbe4708ff385 100644
--- a/pkgs/by-name/ba/bankstown-lv2/package.nix
+++ b/pkgs/by-name/ba/bankstown-lv2/package.nix
@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256-IThXEY+mvT2MCw0PSWU/182xbUafd6dtm6hNjieLlKg=";
   };
 
-  cargoSha256 = "sha256-yRzM4tcYc6mweTpLnnlCeKgP00L2wRgHamtUzK9Kstc=";
+  cargoHash = "sha256-yRzM4tcYc6mweTpLnnlCeKgP00L2wRgHamtUzK9Kstc=";
 
   installPhase = ''
     export LIBDIR=$out/lib
diff --git a/pkgs/by-name/ba/bant/package.nix b/pkgs/by-name/ba/bant/package.nix
new file mode 100644
index 0000000000000..d7bd9feb5b64c
--- /dev/null
+++ b/pkgs/by-name/ba/bant/package.nix
@@ -0,0 +1,64 @@
+{
+  lib,
+  stdenv,
+  buildBazelPackage,
+  fetchFromGitHub,
+  bazel_6,
+  jdk,
+}:
+
+let
+  system = stdenv.hostPlatform.system;
+  registry = fetchFromGitHub {
+    owner = "bazelbuild";
+    repo = "bazel-central-registry";
+    rev = "1c729c2775715fd98f0f948a512eb173213250da";
+    hash = "sha256-1iaDDM8/v8KCOUjPgLUtZVta7rMzwlIK//cCoLUrb/s=";
+  };
+in buildBazelPackage rec {
+  pname = "bant";
+  version = "0.1.6";
+
+  src = fetchFromGitHub {
+    owner = "hzeller";
+    repo = "bant";
+    rev = "v${version}";
+    hash = "sha256-4h76ok2aN7WfD8OHIS0O2Dk924+hFXJXewKRM7XYjKw=";
+  };
+
+  bazelFlags = ["--registry" "file://${registry}"];
+
+  postPatch = ''
+    patchShebangs scripts/create-workspace-status.sh
+  '';
+
+  fetchAttrs = {
+    sha256 = {
+      aarch64-linux = "sha256-38O9HPKMjqpNCO+kC8hUlsJAclONVCj3oj/iVRwOEDo=";
+      x86_64-linux = "sha256-OUVjgVIBNh0j10dgk/l42bqmsGuBC56uf4Ei/IRXxBI=";
+    }.${system} or (throw "No hash for system: ${system}");
+  };
+
+  nativeBuildInputs = [
+    jdk
+  ];
+  bazel = bazel_6;
+
+  bazelBuildFlags = [ "-c opt" ];
+  bazelTestTargets = [ "//..." ];
+  bazelTargets = [ "//bant:bant" ];
+
+  buildAttrs = {
+    installPhase = ''
+      install -D --strip bazel-bin/bant/bant "$out/bin/bant"
+    '';
+  };
+
+  meta = with lib; {
+    description = "Bazel/Build Analysis and Navigation Tool";
+    homepage = "http://bant.build/";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ hzeller lromor ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/ba/baobab/package.nix b/pkgs/by-name/ba/baobab/package.nix
new file mode 100644
index 0000000000000..3978661baabb8
--- /dev/null
+++ b/pkgs/by-name/ba/baobab/package.nix
@@ -0,0 +1,63 @@
+{ 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 = "46.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    hash = "sha256-zk3vXILQVnGlAJ9768+FrJhnXZ2BYNKK2RgbJppy43w=";
+  };
+
+  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 = pname;
+    };
+  };
+
+  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;
+    maintainers = teams.gnome.members;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/ba/base45/package.nix b/pkgs/by-name/ba/base45/package.nix
index 3a9b53cc31af1..07e248ad80458 100644
--- a/pkgs/by-name/ba/base45/package.nix
+++ b/pkgs/by-name/ba/base45/package.nix
@@ -5,7 +5,7 @@ buildNimPackage (finalAttrs: {
   version = "20230124";
   src = fetchFromSourcehut {
     owner = "~ehmry";
-    repo = finalAttrs.pname;
+    repo = "base45";
     rev = finalAttrs.version;
     hash = "sha256-9he+14yYVGt2s1IuRLPRsv23xnJzERkWRvIHr3PxFYk=";
   };
diff --git a/pkgs/by-name/ba/basedpyright/package.nix b/pkgs/by-name/ba/basedpyright/package.nix
index d591250ba2eb4..51fdeb6b97122 100644
--- a/pkgs/by-name/ba/basedpyright/package.nix
+++ b/pkgs/by-name/ba/basedpyright/package.nix
@@ -1,19 +1,23 @@
 {
   lib,
-  buildNpmPackage,
   fetchFromGitHub,
   runCommand,
   jq,
+  buildNpmPackage,
+  python3,
+  stdenvNoCC,
+  testers,
+  basedpyright,
 }:
 
 let
-  version = "1.12.6";
+  version = "1.15.2";
 
   src = fetchFromGitHub {
     owner = "detachhead";
     repo = "basedpyright";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1F3T+BGamFJEDAIMz684oIn4xEDbNadEh8TTG5l8fPo=";
+    hash = "sha256-N51wZjhdoNbhHpMrgcEEzd9FIVwKwYs9sU7jyFV2b8g=";
   };
 
   patchedPackageJSON = runCommand "package.json" { } ''
@@ -43,7 +47,7 @@ let
     pname = "pyright-internal";
     inherit version src;
     sourceRoot = "${src.name}/packages/pyright-internal";
-    npmDepsHash = "sha256-8nXW5Z5xTr8EXxyBylxCr7C88zmRxppe8EaspFy7b6o=";
+    npmDepsHash = "sha256-RkMgCa7oAPFbTHC5WAcz6b8cUOEORR0sZr2VxhQki1k=";
     dontNpmBuild = true;
     # FIXME: Remove this flag when TypeScript 5.5 is released
     npmFlags = [ "--legacy-peer-deps" ];
@@ -53,16 +57,48 @@ let
       runHook postInstall
     '';
   };
+
+  docify = python3.pkgs.buildPythonApplication {
+    pname = "docify";
+    version = "unstable";
+    format = "pyproject";
+    src = fetchFromGitHub {
+      owner = "AThePeanut4";
+      repo = "docify";
+      rev = "7380a6faa6d1e8a3dc790a00254e6d77f84cbd91";
+      hash = "sha256-BPR1rc/JzdBweiWmdHxgardDDrJZVWkUIF3ZEmEYf/A=";
+    };
+    buildInputs = [ python3.pkgs.setuptools ];
+    propagatedBuildInputs = [
+      python3.pkgs.libcst
+      python3.pkgs.tqdm
+    ];
+  };
+
+  docstubs = stdenvNoCC.mkDerivation {
+    name = "docstubs";
+    inherit src;
+    buildInputs = [ docify ];
+
+    installPhase = ''
+      runHook preInstall
+      cp -r packages/pyright-internal/typeshed-fallback docstubs
+      ${docify}/bin/docify docstubs/stdlib --builtins-only --in-place
+      cp -rv docstubs "$out"
+      runHook postInstall
+    '';
+  };
 in
 buildNpmPackage rec {
   pname = "basedpyright";
   inherit version src;
 
   sourceRoot = "${src.name}/packages/pyright";
-  npmDepsHash = "sha256-ZFuCY2gveimFK5Hztj6k6PkeTpbR7XiyQyS5wPaNNts=";
+  npmDepsHash = "sha256-6Zhd5IothE7RoetaITL5MmLIF6YDNk6IiHcfTzbbjLY=";
 
   postPatch = ''
     chmod +w ../../
+    ln -s ${docstubs} ../../docstubs
     ln -s ${pyright-root}/node_modules ../../node_modules
     chmod +w ../pyright-internal
     ln -s ${pyright-internal}/node_modules ../pyright-internal/node_modules
@@ -75,7 +111,10 @@ buildNpmPackage rec {
 
   dontNpmBuild = true;
 
-  passthru.updateScript = ./update.sh;
+  passthru = {
+    updateScript = ./update.sh;
+    tests.version = testers.testVersion { package = basedpyright; };
+  };
 
   meta = {
     changelog = "https://github.com/detachhead/basedpyright/releases/tag/${version}";
diff --git a/pkgs/by-name/ba/bash-language-server/package.nix b/pkgs/by-name/ba/bash-language-server/package.nix
index eb47dfdd9f6b6..4b045a8fde435 100644
--- a/pkgs/by-name/ba/bash-language-server/package.nix
+++ b/pkgs/by-name/ba/bash-language-server/package.nix
@@ -3,9 +3,9 @@
 , fetchFromGitHub
 , pnpm_8
 , nodejs
-, npmHooks
 , makeBinaryWrapper
 , shellcheck
+, versionCheckHook
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -19,26 +19,24 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-yJ81oGd9aNsWQMLvDSgMVVH1//Mw/SVFYFIPsJTQYzE=";
   };
 
+  pnpmWorkspace = "bash-language-server";
   pnpmDeps = pnpm_8.fetchDeps {
-    inherit (finalAttrs) pname version src;
+    inherit (finalAttrs) pname version src pnpmWorkspace;
     hash = "sha256-W25xehcxncBs9QgQBt17F5YHK0b+GDEmt27XzTkyYWg=";
   };
 
   nativeBuildInputs = [
     nodejs
     pnpm_8.configHook
-    npmHooks.npmBuildHook
     makeBinaryWrapper
+    versionCheckHook
   ];
-  npmBuildScript = "compile";
-  # We are only interested in the bash-language-server executable, which is
-  # part of the `./server` directory. From some reason, the `./vscode-client`
-  # directory is not included in upstream's `pnpm-workspace.yaml`, so perhaps
-  # that's why our ${pnpmDeps} don't include the dependencies required for it.
-  preBuild = ''
-    rm -r vscode-client
-    substituteInPlace tsconfig.json \
-      --replace-fail '{ "path": "./vscode-client" },' ""
+  buildPhase = ''
+    runHook preBuild
+
+    pnpm compile server
+
+    runHook postBuild
   '';
 
   installPhase = ''
@@ -57,13 +55,15 @@ stdenv.mkDerivation (finalAttrs: {
 
     # Create the executable, based upon what happens in npmHooks.npmInstallHook
     makeWrapper ${lib.getExe nodejs} $out/bin/bash-language-server \
-      --prefix PATH : ${lib.makeBinPath [ shellcheck ]} \
+      --suffix PATH : ${lib.makeBinPath [ shellcheck ]} \
       --inherit-argv0 \
       --add-flags $out/lib/bash-language-server/out/cli.js
 
     runHook postInstall
   '';
 
+  doInstallCheck = true;
+
   meta = with lib; {
     description = "A language server for Bash";
     homepage = "https://github.com/bash-lsp/bash-language-server";
diff --git a/pkgs/by-name/ba/bat/package.nix b/pkgs/by-name/ba/bat/package.nix
index 5476fc55f662d..9e4132bc0b460 100644
--- a/pkgs/by-name/ba/bat/package.nix
+++ b/pkgs/by-name/ba/bat/package.nix
@@ -75,6 +75,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sharkdp/bat/raw/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
     mainProgram = "bat";
-    maintainers = with maintainers; [ dywedir lilyball zowoq SuperSandro2000 ];
+    maintainers = with maintainers; [ dywedir zowoq SuperSandro2000 ];
   };
 }
diff --git a/pkgs/by-name/ba/batik/package.nix b/pkgs/by-name/ba/batik/package.nix
new file mode 100644
index 0000000000000..18bdb7c37e195
--- /dev/null
+++ b/pkgs/by-name/ba/batik/package.nix
@@ -0,0 +1,55 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  jre,
+  rhino,
+  stripJavaArchivesHook,
+  makeWrapper,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "batik";
+  version = "1.17";
+
+  src = fetchurl {
+    url = "mirror://apache/xmlgraphics/batik/binaries/batik-bin-${finalAttrs.version}.tar.gz";
+    hash = "sha256-sEJphF3grlwZCEt3gHHm4JF8RpvKKBLLvKXf2lu/dhA=";
+  };
+
+  nativeBuildInputs = [
+    stripJavaArchivesHook
+    makeWrapper
+  ];
+
+  buildInputs = [
+    jre
+    rhino
+  ];
+
+  patchPhase = ''
+    # Vendored dependencies
+    rm lib/rhino-*.jar
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/java
+    cp *.jar lib/*.jar $out/share/java
+    chmod +x $out/share/java/*.jar
+    classpath="$(find $out/share/java -name '*.jar' -printf '${rhino}/share/java/js.jar:%h/%f')"
+    for appName in rasterizer slideshow squiggle svgpp ttf2svg; do
+      makeWrapper ${lib.getExe jre} $out/bin/batik-$appName \
+        --add-flags "-jar $out/share/java/batik-all-${finalAttrs.version}.jar" \
+        --add-flags "-classpath $classpath" \
+        --add-flags "org.apache.batik.apps.$appName.Main"
+    done
+  '';
+
+  meta = with lib; {
+    description = "Java based toolkit for handling SVG";
+    homepage = "https://xmlgraphics.apache.org/batik";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+  };
+})
diff --git a/pkgs/by-name/ba/batmon/package.nix b/pkgs/by-name/ba/batmon/package.nix
index e41587b1f57b4..5e5cf3f6501f7 100644
--- a/pkgs/by-name/ba/batmon/package.nix
+++ b/pkgs/by-name/ba/batmon/package.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256-+kjDNQKlaoI5fQ5FqYF6IPCKeE92WKxIhVCKafqfE0o=";
   };
 
-  cargoSha256 = "sha256-DJpWBset6SW7Ahg60+Tu1VpH34LcVOyrEs9suKyTE9g=";
+  cargoHash = "sha256-DJpWBset6SW7Ahg60+Tu1VpH34LcVOyrEs9suKyTE9g=";
 
   meta = with lib; {
     description = "Interactive batteries viewer";
diff --git a/pkgs/by-name/ba/bazecor/10-dygma.rules b/pkgs/by-name/ba/bazecor/10-dygma.rules
new file mode 100644
index 0000000000000..6805e68c06446
--- /dev/null
+++ b/pkgs/by-name/ba/bazecor/10-dygma.rules
@@ -0,0 +1,4 @@
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2201", MODE="0666"
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2200", MODE="0666"
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="35ef", MODE="0666"
+KERNEL=="hidraw*", ATTRS{idVendor}=="35ef", MODE="0666"
diff --git a/pkgs/by-name/ba/bazecor/package.nix b/pkgs/by-name/ba/bazecor/package.nix
new file mode 100644
index 0000000000000..dc74c867c64f6
--- /dev/null
+++ b/pkgs/by-name/ba/bazecor/package.nix
@@ -0,0 +1,68 @@
+{
+  lib,
+  appimageTools,
+  fetchurl,
+  makeWrapper,
+}:
+let
+  pname = "bazecor";
+  version = "1.4.2";
+  src = appimageTools.extract {
+    inherit pname version;
+    src = fetchurl {
+      url = "https://github.com/Dygmalab/Bazecor/releases/download/v${version}/Bazecor-${version}-x64.AppImage";
+      hash = "sha256-2/GX2p+YhN6XLXl8ORn5Vy5GYjPS1ZkKmSymeUjExLU=";
+    };
+
+    # Workaround for https://github.com/Dygmalab/Bazecor/issues/370
+    postExtract = ''
+      substituteInPlace \
+        $out/usr/lib/bazecor/resources/app/.webpack/main/index.js \
+        --replace-fail \
+          'checkUdev=()=>{try{if(c.default.existsSync(f))return c.default.readFileSync(f,"utf-8").trim()===d.trim()}catch(e){u.default.error(e)}return!1}' \
+          'checkUdev=()=>{return 1}'
+    '';
+  };
+in
+appimageTools.wrapAppImage {
+  inherit pname version src;
+
+  # also make sure to update the udev rules in ./10-dygma.rules; most recently
+  # taken from
+  # https://github.com/Dygmalab/Bazecor/blob/v1.3.11/src/main/utils/udev.ts#L6
+
+  extraPkgs = pkgs: [ pkgs.glib ];
+
+  # Also expose the udev rules here, so it can be used as:
+  #   services.udev.packages = [ pkgs.bazecor ];
+  # to allow non-root modifications to the keyboards.
+
+  extraInstallCommands = ''
+    source "${makeWrapper}/nix-support/setup-hook"
+    wrapProgram $out/bin/bazecor \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
+
+    install -m 444 -D ${src}/Bazecor.desktop -t $out/share/applications
+    install -m 444 -D ${src}/bazecor.png -t $out/share/pixmaps
+
+    mkdir -p $out/lib/udev/rules.d
+    install -m 444 -D ${./10-dygma.rules} $out/lib/udev/rules.d/10-dygma.rules
+
+    substituteInPlace $out/share/applications/Bazecor.desktop \
+      --replace-fail 'Exec=Bazecor' 'Exec=bazecor'
+  '';
+
+  meta = {
+    description = "Graphical configurator for Dygma Products";
+    homepage = "https://github.com/Dygmalab/Bazecor";
+    changelog = "https://github.com/Dygmalab/Bazecor/releases/tag/v${version}";
+    sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [
+      amesgen
+      gcleroux
+    ];
+    platforms = [ "x86_64-linux" ];
+    mainProgram = "bazecor";
+  };
+}