From 2c62f010f900b3aa7bff4e414973d929fa02d1ce Mon Sep 17 00:00:00 2001 From: bas Date: Fri, 19 Dec 2025 12:33:32 +0100 Subject: [PATCH 1/3] python3Packages.pycambia: init at 0.1.0 --- .../python-modules/pycambia/default.nix | 58 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 60 insertions(+) create mode 100644 pkgs/development/python-modules/pycambia/default.nix diff --git a/pkgs/development/python-modules/pycambia/default.nix b/pkgs/development/python-modules/pycambia/default.nix new file mode 100644 index 000000000000..2e23a766570a --- /dev/null +++ b/pkgs/development/python-modules/pycambia/default.nix @@ -0,0 +1,58 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + fetchpatch, + openssl, + pkg-config, + pytestCheckHook, + rustPlatform, +}: +let + cargoLockPatch = ( + fetchpatch { + name = "cargo.lock.patch"; + url = "https://github.com/KyokoMiki/pycambia/commit/00446e13c20a461c323b119e16f3f57489ba662d.patch"; + hash = "sha256-N7F67VRxfndoN8NllmGKEePOh3mgbjlNaToUvxh+IrE="; + } + ); +in +buildPythonPackage rec { + pname = "pycambia"; + version = "0.1.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "KyokoMiki"; + repo = "pycambia"; + tag = version; + hash = "sha256-ZflLy6Qa4tBlPZkTya3ELu463qcnRcMS57a6FfHpSNE="; + }; + + patches = [ cargoLockPatch ]; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit src; + hash = "sha256-jmdf+Idg9PR4jgZ7bexPsAyGj86vGxLseTWXnhzP7+E="; + patches = [ cargoLockPatch ]; + }; + + buildInputs = [ openssl ]; + + nativeBuildInputs = [ + pkg-config + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "cambia" ]; + + meta = { + description = "Python wrapper for compact disc ripper log checking utility cambia"; + homepage = "https://github.com/KyokoMiki/pycambia"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ undefined-landmark ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index bf8cf0483ce0..c6d42e091f1e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -13013,6 +13013,8 @@ self: super: with self; { pycairo = callPackage ../development/python-modules/pycairo { inherit (pkgs.buildPackages) meson; }; + pycambia = callPackage ../development/python-modules/pycambia { }; + pycangjie = callPackage ../development/python-modules/pycangjie { inherit (pkgs.buildPackages) meson; }; From 9ace99a248ad969609c1daf97e0e37c8857624f0 Mon Sep 17 00:00:00 2001 From: bas Date: Sun, 21 Dec 2025 11:01:39 +0100 Subject: [PATCH 2/3] python3Packages.pyoxipng: init at 9.1.1 --- .../python-modules/pyoxipng/default.nix | 42 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 44 insertions(+) create mode 100644 pkgs/development/python-modules/pyoxipng/default.nix diff --git a/pkgs/development/python-modules/pyoxipng/default.nix b/pkgs/development/python-modules/pyoxipng/default.nix new file mode 100644 index 000000000000..f696a8a44b1c --- /dev/null +++ b/pkgs/development/python-modules/pyoxipng/default.nix @@ -0,0 +1,42 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + rustPlatform, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "pyoxipng"; + version = "9.1.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "nfrasser"; + repo = "pyoxipng"; + tag = "v${version}"; + hash = "sha256-aVya+0+X2p0VaWCZTxVlVUFFlqkqZ7A2lJjhxiXAgrE="; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit src; + hash = "sha256-wMCx6cujqM4q96b1mg4eovKjWmsv0FcaDBCxy0OodmA="; + }; + + nativeBuildInputs = with rustPlatform; [ + cargoSetupHook + maturinBuildHook + ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "oxipng" ]; + + meta = { + description = "Python wrapper for multithreaded PNG optimizer oxipng"; + homepage = "https://github.com/nfrasser/pyoxipng"; + changelog = "https://github.com/nfrasser/pyoxipng/blob/${src.tag}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ undefined-landmark ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c6d42e091f1e..bc614d98cabf 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -14110,6 +14110,8 @@ self: super: with self; { pyoxigraph = callPackage ../development/python-modules/pyoxigraph { }; + pyoxipng = callPackage ../development/python-modules/pyoxipng { }; + pypager = callPackage ../development/python-modules/pypager { }; pypalazzetti = callPackage ../development/python-modules/pypalazzetti { }; From 2e5f95719e8e3c63707185083fa1c6c3fddcd47e Mon Sep 17 00:00:00 2001 From: bas Date: Sun, 21 Dec 2025 11:04:56 +0100 Subject: [PATCH 3/3] smoked-salmon: init at 0.9.7.4 --- pkgs/by-name/sm/smoked-salmon/package.nix | 94 +++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 pkgs/by-name/sm/smoked-salmon/package.nix diff --git a/pkgs/by-name/sm/smoked-salmon/package.nix b/pkgs/by-name/sm/smoked-salmon/package.nix new file mode 100644 index 000000000000..9c38d4fbd84c --- /dev/null +++ b/pkgs/by-name/sm/smoked-salmon/package.nix @@ -0,0 +1,94 @@ +{ + lib, + fetchFromGitHub, + ffmpeg-headless, + flac, + lame, + mp3val, + python3Packages, + sox, +}: +let + runtimeDeps = [ + ffmpeg-headless + flac + lame + mp3val + sox + ]; +in +python3Packages.buildPythonApplication rec { + pname = "smoked-salmon"; + version = "0.9.7.4"; + pyproject = true; + + src = fetchFromGitHub { + owner = "smokin-salmon"; + repo = "smoked-salmon"; + tag = version; + hash = "sha256-JOwqu/Hu7BjYLo3DdL6o+9TI/OQvlgj5Xu8WQ0cujwo="; + }; + + # Upstream tends to use very narrow version constraints + pythonRelaxDeps = true; + + build-system = with python3Packages; [ + setuptools + setuptools-scm + ]; + + dependencies = with python3Packages; [ + aiohttp + aiohttp-jinja2 + beautifulsoup4 + bitstring + click + deluge-client + ffmpeg-python + filetype + httpx + humanfriendly + jinja2 + msgspec + musicbrainzngs + mutagen + pillow + platformdirs + pycambia + pyoxipng + pyperclip + qbittorrent-api + ratelimit + requests + rich + send2trash + setuptools + torf + tqdm + transmission-rpc + unidecode + wheel + ]; + + makeWrapperArgs = [ + "--suffix" + "PATH" + ":" + (lib.makeBinPath runtimeDeps) + ]; + + passthru = { + inherit runtimeDeps; + }; + + meta = { + description = "Toolkit for checking, editing and uploading music to Gazelle-based trackers"; + homepage = "https://github.com/smokin-salmon/smoked-salmon"; + license = with lib.licenses; [ asl20 ]; + mainProgram = "salmon"; + maintainers = with lib.maintainers; [ + ambroisie + undefined-landmark + ]; + }; +}