mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-18 14:41:18 +00:00
Merge master into staging-next
This commit is contained in:
@@ -16424,6 +16424,11 @@
|
||||
githubId = 83420438;
|
||||
name = "Lewis";
|
||||
};
|
||||
lubsch = {
|
||||
github = "lubsch";
|
||||
githubId = 33580245;
|
||||
name = "Benjamin Lohmar";
|
||||
};
|
||||
luc65r = {
|
||||
email = "lucas@ransan.fr";
|
||||
github = "luc65r";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "mednafen-pce-fast";
|
||||
version = "0-unstable-2026-07-03";
|
||||
version = "0-unstable-2026-07-10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "beetle-pce-fast-libretro";
|
||||
rev = "744a9ffb6120e7531c153aa468f34adb3fab9057";
|
||||
hash = "sha256-n5Mz0a2bIbQEDsX8PZzji58D8L/yFoQVghrMTg7Srd0=";
|
||||
rev = "0bc6c86928343ca4202c5b6ef33fa4387c47fc12";
|
||||
hash = "sha256-TgUueogxf5KZ1S5pt0WiYtoHXWQI81C6QUts1xJClh8=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -837,7 +837,7 @@
|
||||
}
|
||||
},
|
||||
"ungoogled-chromium": {
|
||||
"version": "150.0.7871.124",
|
||||
"version": "150.0.7871.128",
|
||||
"deps": {
|
||||
"depot_tools": {
|
||||
"rev": "f4fadaf6a5ba1bced9d3d9021060667b563bf583",
|
||||
@@ -849,16 +849,16 @@
|
||||
"hash": "sha256-/1A+DkzAQj2zGPe/A/G0Z3VrYJXUxq4Hd/+d/o5p3G8="
|
||||
},
|
||||
"ungoogled-patches": {
|
||||
"rev": "150.0.7871.124-1",
|
||||
"hash": "sha256-3dwDG3YuX/l5bOLcC3lICM2qmGnwVAPPJraDRaHZSe8="
|
||||
"rev": "150.0.7871.128-1",
|
||||
"hash": "sha256-GxSsGTC68IEMPt85RLBCVDT0dTl7ZVVPc8o4vxc50H8="
|
||||
},
|
||||
"npmHash": "sha256-pF0JtwFpPC4/fodbhSJnQKkczA9WlDg4VqEAy9aDVLg="
|
||||
},
|
||||
"DEPS": {
|
||||
"src": {
|
||||
"url": "https://chromium.googlesource.com/chromium/src.git",
|
||||
"rev": "9261fd0a595ac4964ea84e6bd4a025c1173a2ffa",
|
||||
"hash": "sha256-YKkZfxFZ7mitD6YqJZW+NQByq71UVb0jCFIBXj0SyzU=",
|
||||
"rev": "81891e5ca708047763816c778216799ef14c66cb",
|
||||
"hash": "sha256-lGHZZ2xIih+TaH145CZwEwyXsM1ZQWwqXsIQjWQ/jvk=",
|
||||
"recompress": true
|
||||
},
|
||||
"src/third_party/clang-format/script": {
|
||||
@@ -1663,8 +1663,8 @@
|
||||
},
|
||||
"src/v8": {
|
||||
"url": "https://chromium.googlesource.com/v8/v8.git",
|
||||
"rev": "209c9cea0db17d8caf23e9d2c7de08c351609744",
|
||||
"hash": "sha256-3jUyRERu1r+Fl2uSAaRchV2L99XLp8XO9DHctk0lMjY="
|
||||
"rev": "2b2f69158528fdd9d86b778cfcc2d0a1c4f8c59f",
|
||||
"hash": "sha256-bqzCZSpKdXgKv3O1I7ck1PEXCa/2jBT7hpBEKW0LgTA="
|
||||
},
|
||||
"src/agents/shared": {
|
||||
"url": "https://chromium.googlesource.com/chromium/agents.git",
|
||||
|
||||
@@ -5,18 +5,17 @@
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "adslib";
|
||||
version = "0-unstable-2026-04-27";
|
||||
version = "113.0.34-1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stlehmann";
|
||||
repo = "ADS";
|
||||
rev = "77953d58f2690436e82db9954e2e55878c5edaa4";
|
||||
hash = "sha256-UDPuzqD1krEZa7436k1NvE0lJUmNYG4kiP5fstoRDMc=";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-Kh8BDioZdwSdATHPgZ7Ar3/E0y3eRRpG/38/2uHZEEQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -27,12 +26,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
postInstall = ''
|
||||
# Downstream consumers (e.g. pyads) load the shared library as
|
||||
# `adslib.so` rather than the meson default `libadslib.so`.
|
||||
ln -s libadslib.so $out/lib/adslib.so
|
||||
# `adslib.so` rather than the meson default `libAdsLib.so`.
|
||||
ln -s libAdsLib.so $out/lib/adslib.so
|
||||
'';
|
||||
|
||||
passthru.updateScript = unstableGitUpdater { };
|
||||
|
||||
meta = {
|
||||
description = "Beckhoff protocol to communicate with TwinCAT devices";
|
||||
homepage = "https://github.com/stlehmann/ADS";
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
|
||||
let
|
||||
pname = "autobrr";
|
||||
version = "1.81.0";
|
||||
version = "1.82.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "autobrr";
|
||||
repo = "autobrr";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Xm5cYtQabHkoiVZ6v71qWKIpx44obzr0Om2hahFUyO8=";
|
||||
hash = "sha256-dB/lk05v9L8GAF//N1We3byhsK+156rzRT+r9Q+EVD4=";
|
||||
};
|
||||
|
||||
autobrr-web = stdenvNoCC.mkDerivation {
|
||||
@@ -46,7 +46,7 @@ let
|
||||
;
|
||||
pnpm = pnpm_11;
|
||||
fetcherVersion = 4;
|
||||
hash = "sha256-VDW1B8OVFZ72nBl8IYM5nXqit2za1Q8mXI6UhcmEeSo=";
|
||||
hash = "sha256-wlikd38tAfgaSSD9L7DiSXRQFYcfVq5YA1eWs5NE4n8=";
|
||||
};
|
||||
|
||||
postBuild = ''
|
||||
@@ -65,7 +65,7 @@ buildGoModule (finalAttrs: {
|
||||
src
|
||||
;
|
||||
|
||||
vendorHash = "sha256-mOsiQXuhhNSbViEFecmlNk549LyfUIuc8FxwDma9XNI=";
|
||||
vendorHash = "sha256-tsGl0uiQV25aemEQvedZUISrlO4IPE+V87nl31m8hZI=";
|
||||
|
||||
preBuild = ''
|
||||
cp -r ${finalAttrs.passthru.autobrr-web}/* web/dist
|
||||
|
||||
@@ -22,10 +22,10 @@
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "bruijn";
|
||||
version = "0-unstable-2026-07-05";
|
||||
version = "0-unstable-2026-07-16";
|
||||
src = fetchzip {
|
||||
url = "https://github.com/marvinborner/bruijn/archive/29a4a3e9620702f47d839a154d64489b8fdce1a7.tar.gz";
|
||||
sha256 = "18vxzgd6faq8djgpav4na1nvp0jid44vd52gn9a8smwr2xk44wnz";
|
||||
url = "https://github.com/marvinborner/bruijn/archive/9f1ac8856d09666a7444874f80b91b876929eecf.tar.gz";
|
||||
sha256 = "18mcwp2xn7wgr81mgqr38irvkf24rf0nvwzi8janasq5favim0vy";
|
||||
};
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cgal";
|
||||
version = "6.1.1";
|
||||
version = "6.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/CGAL/cgal/releases/download/v${finalAttrs.version}/CGAL-${finalAttrs.version}.tar.xz";
|
||||
sha256 = "sha256-UlBpNfcOJH7Sd348ZfIOhveSCMKi0OGArnR12vEclu8=";
|
||||
sha256 = "sha256-+8MoFnRehxpcvetiRTF+nb8QrhqVewqx7bALT94Auo0=";
|
||||
};
|
||||
|
||||
patches = [ ./cgal_path.patch ];
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "dezoomify-rs";
|
||||
version = "2.16.0";
|
||||
version = "2.17.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
owner = "lovasoa";
|
||||
repo = "dezoomify-rs";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-45Vlgle605s3uvPh+Lr+KAk72AzIoolnSuhFzRCORC4=";
|
||||
hash = "sha256-iRcRMzUW3K0pzRP9Y7ID29Kxpi3dPxRCC4WY+2ydAyE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [
|
||||
@@ -36,7 +36,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
cargoHash = "sha256-tfeknHPrY11rSmHyEAUvJgCLDwmIpo9jk8BLgzgQCrc=";
|
||||
cargoHash = "sha256-Tou+t4rbN/KfUAr9AVWD/aAzz+u50v9UZwo5mGXmjy4=";
|
||||
|
||||
# hyper uses SystemConfiguration.framework to read system proxy settings.
|
||||
# Allow access to the Mach service to prevent the tests from failing.
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
}:
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "flood";
|
||||
version = "4.14.2";
|
||||
version = "4.15.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jesec";
|
||||
repo = "flood";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-gSjkpAGkvgRRh8WDpL/F7fS8KDxHRJUuWVqHGcFEGAc=";
|
||||
hash = "sha256-wd+9owJi9W9pf6c1JuO0X/6JWxLq8XIypj6r4rQUemM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pnpm_10 ];
|
||||
@@ -31,7 +31,7 @@ buildNpmPackage (finalAttrs: {
|
||||
;
|
||||
pnpm = pnpm_10;
|
||||
fetcherVersion = 4;
|
||||
hash = "sha256-yNRC5sCBn002gxUfHMUvh3DZeVYOokfz4MTvqXR2MzI=";
|
||||
hash = "sha256-a1PoQ5pXw1SgyGFRa3+7AOr6vpyGyHxkMU7KQEFlZ04=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -11,17 +11,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "mago";
|
||||
version = "1.29.0";
|
||||
version = "1.43.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "carthage-software";
|
||||
repo = "mago";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-e/LKOQ+GAtdDye/poJdbX/98gDWle3NWIZ2zHwkGkcQ=";
|
||||
hash = "sha256-AWnPhylz41E6d1M7PxVpH4EbyYeO9T6jlWVlzBqiOhQ=";
|
||||
forceFetchGit = true; # Does not download all files otherwise
|
||||
};
|
||||
|
||||
cargoHash = "sha256-stjjP8VRHy5k9zMXWGikVNExXRFte0gVBEsbKmPY6U4=";
|
||||
cargoHash = "sha256-f7HZTJ0ESx7QTKgBqd2FOH1nCeIzgODMM9Sb0tQpfdE=";
|
||||
|
||||
env = {
|
||||
# Get openssl-sys to use pkg-config
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
|
||||
# nativeBuildInputs
|
||||
cmake,
|
||||
@@ -36,15 +37,25 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "musescore";
|
||||
version = "4.7.3";
|
||||
version = "4.7.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "musescore";
|
||||
repo = "MuseScore";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-wWqFJkXLRi3JtnEW3STTG/jBBIQK1dIYPZdKCiBn0m0=";
|
||||
hash = "sha256-ny6s5hQUxopb6c45KJugYEZULkC8fLP+Au5ghic0KvI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix for https://github.com/musescore/MuseScore/issues/34091 also reported
|
||||
# downstream at: https://github.com/NixOS/nixpkgs/issues/540783. PR to
|
||||
# track: https://github.com/musescore/MuseScore/pull/34204
|
||||
(fetchpatch {
|
||||
url = "https://github.com/musescore/MuseScore/commit/f273501e418842351c4bda10cce32b0e329eaff1.patch";
|
||||
hash = "sha256-zrZRzeAHSFGtCuw/o4A3b1Blbo3FxKGxw1UDu9IggzY=";
|
||||
})
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeFeature "MUSE_APP_BUILD_MODE" "release")
|
||||
# Disable the build and usage of the `/bin/crashpad_handler` utility - it's
|
||||
|
||||
13
pkgs/by-name/na/nanoarrow/cpp20-arrow-cpp-fix.diff
Normal file
13
pkgs/by-name/na/nanoarrow/cpp20-arrow-cpp-fix.diff
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git i/meson.build w/meson.build
|
||||
index 5c3032d..5ec2e56 100644
|
||||
--- i/meson.build
|
||||
+++ w/meson.build
|
||||
@@ -22,7 +22,7 @@ project(
|
||||
version: '0.8.0',
|
||||
license: 'Apache-2.0',
|
||||
meson_version: '>=0.58.0',
|
||||
- default_options: ['c_std=c99', 'warning_level=2', 'cpp_std=c++17'],
|
||||
+ default_options: ['c_std=c99', 'warning_level=2', 'cpp_std=c++20'],
|
||||
)
|
||||
|
||||
cc = meson.get_compiler('c')
|
||||
@@ -30,6 +30,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
tag = "apache-arrow-nanoarrow-${finalAttrs.version}";
|
||||
hash = "sha256-1iLbT1eeyZaoB75uYTgg4qns+C7b4DErqMwJ9nQPRls=";
|
||||
};
|
||||
patches = [
|
||||
# Fixes an issue between our `arrow-cpp` and this version of `nanoarrow`.
|
||||
# Not applicable for upstreaming so it seems. See discussion:
|
||||
# https://github.com/apache/arrow-nanoarrow/issues/902
|
||||
./cpp20-arrow-cpp-fix.diff
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "qrupdate";
|
||||
version = "1.1.5";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mpimd-csc";
|
||||
repo = "qrupdate-ng";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-dHxLPrN00wwozagY2JyfZkD3sKUD2+BcnbjNgZepzFg=";
|
||||
hash = "sha256-d5bc9JJOM3Tn41yZfqq3/rPMqZQxxICJo49oELSwxjc=";
|
||||
};
|
||||
|
||||
cmakeFlags =
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "routedns";
|
||||
version = "0.1.209";
|
||||
version = "0.1.223";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "folbricht";
|
||||
repo = "routedns";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-fzBiF0xIArHchV2umdiO6Q2LPe/nZ7QUVKa2w7onO/0=";
|
||||
hash = "sha256-RUGKdTtCIljqJlDOOSh0rEh7J+kF9m0dasAhlqpnkyw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-e19ZqeVA+WQOILZrju7xFDii/lxmZceXk30tWY74cmM=";
|
||||
vendorHash = "sha256-WN94s9eRr+Um2WYPnUSDKXRDeNYVy6R920eaCTNd86w=";
|
||||
|
||||
subPackages = [ "./cmd/routedns" ];
|
||||
|
||||
|
||||
47
pkgs/by-name/zs/zsh-patina/package.nix
Normal file
47
pkgs/by-name/zs/zsh-patina/package.nix
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
nix-update-script,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "zsh-patina";
|
||||
version = "1.7.0";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "michel-kraemer";
|
||||
repo = "zsh-patina";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-sPlIT3UHtq+5+bpfrSPPfVXTdmqjEq+6k9tPShhG7h0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-j2MwEwQhSCUCwANAxr0aZjJ9iS0cGzRRttfK8LONEpg=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
postInstall = ''
|
||||
install -Dm644 LICENSE $out/share/licenses/zsh-patina/LICENSE
|
||||
''
|
||||
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
installShellCompletion --cmd zsh-patina --zsh <($out/bin/zsh-patina completion)
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Zsh syntax highlighter";
|
||||
homepage = "https://github.com/michel-kraemer/zsh-patina";
|
||||
changelog = "https://github.com/michel-kraemer/zsh-patina/blob/${finalAttrs.version}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ lubsch ];
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "zsh-patina";
|
||||
};
|
||||
})
|
||||
@@ -59,6 +59,7 @@
|
||||
aacgain,
|
||||
beautifulsoup4,
|
||||
chromaprint,
|
||||
dbus-python,
|
||||
discogs-client,
|
||||
ffmpeg,
|
||||
flac,
|
||||
@@ -88,6 +89,7 @@
|
||||
extraNativeBuildInputs ? [ ],
|
||||
|
||||
# tests
|
||||
doCheck ? true,
|
||||
pytestCheckHook,
|
||||
pytest-cov-stub,
|
||||
pytest-factoryboy,
|
||||
@@ -194,6 +196,8 @@ buildPythonPackage (finalAttrs: {
|
||||
]
|
||||
++ finalAttrs.finalPackage.passthru.plugins.wrapperBins;
|
||||
|
||||
inherit doCheck;
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
disabledTestPaths =
|
||||
@@ -275,7 +279,11 @@ buildPythonPackage (finalAttrs: {
|
||||
bench.testPaths = [ ];
|
||||
bpd = { };
|
||||
bpm.testPaths = [ ];
|
||||
bpsync.testPaths = [ ];
|
||||
bpsync = {
|
||||
# plugin retired: https://github.com/beetbox/beets/issues/3862.
|
||||
deprecated = true;
|
||||
testPaths = [ ];
|
||||
};
|
||||
bucket = { };
|
||||
chroma = {
|
||||
propagatedBuildInputs = [ pyacoustid ];
|
||||
@@ -288,10 +296,15 @@ buildPythonPackage (finalAttrs: {
|
||||
propagatedBuildInputs = [ requests ];
|
||||
testPaths = [ ];
|
||||
};
|
||||
discogs.propagatedBuildInputs = [
|
||||
discogs-client
|
||||
requests
|
||||
];
|
||||
discogs = {
|
||||
propagatedBuildInputs = [
|
||||
discogs-client
|
||||
requests
|
||||
];
|
||||
singlePluginTest.config = {
|
||||
user_token = "test";
|
||||
};
|
||||
};
|
||||
duplicates.testPaths = [ ];
|
||||
edit = { };
|
||||
embedart = {
|
||||
@@ -334,7 +347,10 @@ buildPythonPackage (finalAttrs: {
|
||||
testPaths = [ ];
|
||||
};
|
||||
limit = { };
|
||||
listenbrainz = { };
|
||||
listenbrainz.singlePluginTest.config = {
|
||||
token = "test";
|
||||
username = "test";
|
||||
};
|
||||
loadext = {
|
||||
propagatedBuildInputs = [ requests ];
|
||||
testPaths = [ ];
|
||||
@@ -348,7 +364,10 @@ buildPythonPackage (finalAttrs: {
|
||||
mbsubmit = { };
|
||||
mbsync = { };
|
||||
mbpseudo = { };
|
||||
metasync.testPaths = [ ];
|
||||
metasync = {
|
||||
propagatedBuildInputs = [ dbus-python ];
|
||||
testPaths = [ ];
|
||||
};
|
||||
missing.testPaths = [ ];
|
||||
mpdstats.propagatedBuildInputs = [ python-mpd2 ];
|
||||
mpdupdate = {
|
||||
@@ -363,11 +382,14 @@ buildPythonPackage (finalAttrs: {
|
||||
plexupdate = { };
|
||||
random = { };
|
||||
replace = { };
|
||||
replaygain.wrapperBins = [
|
||||
aacgain
|
||||
ffmpeg
|
||||
mp3gain
|
||||
];
|
||||
replaygain = {
|
||||
singlePluginTest.config.backend = "gstreamer";
|
||||
wrapperBins = [
|
||||
aacgain
|
||||
ffmpeg
|
||||
mp3gain
|
||||
];
|
||||
};
|
||||
rewrite.testPaths = [ ];
|
||||
scrub.testPaths = [ ];
|
||||
smartplaylist = { };
|
||||
@@ -375,7 +397,10 @@ buildPythonPackage (finalAttrs: {
|
||||
propagatedBuildInputs = [ soco ];
|
||||
testPaths = [ ];
|
||||
};
|
||||
spotify = { };
|
||||
spotify.singlePluginTest.setup = ''
|
||||
mkdir -p $HOME/.config/beets
|
||||
echo '{"access_token":"test"}' > $HOME/.config/beets/spotify_token.json
|
||||
'';
|
||||
subsonicplaylist = {
|
||||
propagatedBuildInputs = [ requests ];
|
||||
testPaths = [ ];
|
||||
@@ -384,7 +409,7 @@ buildPythonPackage (finalAttrs: {
|
||||
substitute = {
|
||||
testPaths = [ ];
|
||||
};
|
||||
tidal = { };
|
||||
tidal.propagatedBuildInputs = [ requests-oauthlib ];
|
||||
the = { };
|
||||
titlecase.propagatedBuildInputs = [ titlecase ];
|
||||
thumbnails = {
|
||||
@@ -416,23 +441,24 @@ buildPythonPackage (finalAttrs: {
|
||||
lib.throwIf (finalAttrs.finalPackage.passthru.plugins.builtins.${plugName}.deprecated or false)
|
||||
"beets evaluation error: Plugin ${plugName} was enabled in pluginOverrides, but it has been removed. Remove the override to fix evaluation."
|
||||
) pluginOverrides;
|
||||
all =
|
||||
lib.mapAttrs
|
||||
(
|
||||
n: a:
|
||||
{
|
||||
name = n;
|
||||
enable = !disableAllPlugins;
|
||||
builtin = false;
|
||||
propagatedBuildInputs = [ ];
|
||||
testPaths = [ "test/plugins/test_${n}.py" ];
|
||||
wrapperBins = [ ];
|
||||
}
|
||||
// a
|
||||
)
|
||||
(
|
||||
lib.recursiveUpdate finalAttrs.finalPackage.passthru.plugins.base finalAttrs.finalPackage.passthru.plugins.overrides
|
||||
);
|
||||
all = lib.pipe finalAttrs.finalPackage.passthru.plugins.base [
|
||||
(base: lib.recursiveUpdate base finalAttrs.finalPackage.passthru.plugins.overrides)
|
||||
(lib.mapAttrs (
|
||||
n: a:
|
||||
lib.recursiveUpdate {
|
||||
name = n;
|
||||
enable = !disableAllPlugins;
|
||||
builtin = false;
|
||||
propagatedBuildInputs = [ ];
|
||||
singlePluginTest = {
|
||||
config = { };
|
||||
setup = "";
|
||||
};
|
||||
testPaths = [ "test/plugins/test_${n}.py" ];
|
||||
wrapperBins = [ ];
|
||||
} a
|
||||
))
|
||||
];
|
||||
enabled = lib.filterAttrs (_: p: p.enable) finalAttrs.finalPackage.passthru.plugins.all;
|
||||
disabled = lib.filterAttrs (_: p: !p.enable) finalAttrs.finalPackage.passthru.plugins.all;
|
||||
disabledTestPaths = lib.flatten (
|
||||
@@ -443,23 +469,6 @@ buildPythonPackage (finalAttrs: {
|
||||
);
|
||||
};
|
||||
tests = {
|
||||
gstreamer =
|
||||
runCommand "beets-gstreamer-test"
|
||||
{
|
||||
meta.timeout = 60;
|
||||
}
|
||||
''
|
||||
set -euo pipefail
|
||||
export HOME=$(mktemp -d)
|
||||
mkdir $out
|
||||
|
||||
cat << EOF > $out/config.yaml
|
||||
replaygain:
|
||||
backend: gstreamer
|
||||
EOF
|
||||
|
||||
${finalAttrs.finalPackage}/bin/beet -c $out/config.yaml > /dev/null
|
||||
'';
|
||||
with-new-builtin-plugin = finalAttrs.finalPackage.overrideAttrs (
|
||||
newAttrs: oldAttrs: {
|
||||
postPatch = (oldAttrs.postPatch or "") + ''
|
||||
@@ -497,7 +506,66 @@ buildPythonPackage (finalAttrs: {
|
||||
-c $out/config.yaml \
|
||||
mpdstats --help 2> $out/mpdstats-help-stderr || true
|
||||
'';
|
||||
};
|
||||
}
|
||||
# Build and start beets once for each supported built-in plugin. Keeping the
|
||||
# plugins isolated makes missing optional dependencies visible.
|
||||
// lib.pipe finalAttrs.finalPackage.passthru.plugins.all [
|
||||
# Deprecated plugins are not useful regression targets.
|
||||
(lib.filterAttrs (_: pluginAttrs: !(pluginAttrs.deprecated or false)))
|
||||
(lib.concatMapAttrs (
|
||||
pluginName: pluginAttrs:
|
||||
let
|
||||
testConfig = {
|
||||
plugins = [ pluginName ];
|
||||
}
|
||||
# Some plugins do not accept an empty attribute set as config.
|
||||
// lib.optionalAttrs (pluginAttrs.singlePluginTest.config != { }) {
|
||||
${pluginName} = pluginAttrs.singlePluginTest.config;
|
||||
};
|
||||
beetsWithSinglePlugin = beets.override {
|
||||
disableAllPlugins = true;
|
||||
pluginOverrides = {
|
||||
${pluginName}.enable = true;
|
||||
};
|
||||
# The runCommand below is the relevant check; avoid running
|
||||
# the full upstream test suite once per plugin. NOTE that
|
||||
# testing whether any plugin's `testPaths` is incorrect, is
|
||||
# done for all plugins via the `beets-minimal` derivation.
|
||||
doCheck = false;
|
||||
};
|
||||
in
|
||||
{
|
||||
"with-single-plugin-${pluginName}" = beetsWithSinglePlugin;
|
||||
"single-plugin-${pluginName}" = runCommand "beets-single-plugin-${pluginName}-test" { } ''
|
||||
set -euo pipefail
|
||||
export HOME=$(mktemp -d)
|
||||
${pluginAttrs.singlePluginTest.setup}
|
||||
mkdir $out
|
||||
|
||||
cat <<'EOF' > $out/config.yaml
|
||||
${lib.generators.toYAML { } testConfig}
|
||||
EOF
|
||||
|
||||
status=0
|
||||
${lib.getExe beetsWithSinglePlugin} \
|
||||
-c "$out/config.yaml" \
|
||||
--help > "$out/stdout" 2> "$out/stderr" || status=$?
|
||||
|
||||
# beet exits successfully when a plugin fails to load, so its
|
||||
# stderr must also be checked for the diagnostic.
|
||||
if (( status != 0 )) || grep -Fq "error loading plugin" "$out/stderr"; then
|
||||
{
|
||||
printf '%s\n' '----- stdout -----'
|
||||
cat "$out/stdout"
|
||||
printf '%s\n' '----- stderr -----'
|
||||
cat "$out/stderr"
|
||||
} >&2
|
||||
exit 1
|
||||
fi
|
||||
'';
|
||||
}
|
||||
))
|
||||
];
|
||||
};
|
||||
|
||||
meta = {
|
||||
@@ -509,6 +577,7 @@ buildPythonPackage (finalAttrs: {
|
||||
doronbehar
|
||||
lovesegfault
|
||||
pjones
|
||||
staticdev
|
||||
];
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
mainProgram = "beet";
|
||||
|
||||
Reference in New Issue
Block a user