smoked-salmon: init at 0.9.7.4 (#472425)

This commit is contained in:
Bruno BELANYI
2025-12-21 10:28:04 +00:00
committed by GitHub
4 changed files with 198 additions and 0 deletions
+94
View File
@@ -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
];
};
}
@@ -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 ];
};
}
@@ -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 ];
};
}
+4
View File
@@ -13021,6 +13021,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;
};
@@ -14116,6 +14118,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 { };