diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index c8d485f694cc..745dae2ef724 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -196,6 +196,7 @@ ./programs/fzf.nix ./programs/gamemode.nix ./programs/gamescope.nix + ./programs/gdk-pixbuf.nix ./programs/geary.nix ./programs/git.nix ./programs/gnome-disks.nix @@ -1497,7 +1498,6 @@ ./services/x11/display-managers/xpra.nix ./services/x11/extra-layouts.nix ./services/x11/fractalart.nix - ./services/x11/gdk-pixbuf.nix ./services/x11/hardware/cmt.nix ./services/x11/hardware/digimend.nix ./services/x11/hardware/synaptics.nix diff --git a/nixos/modules/services/x11/gdk-pixbuf.nix b/nixos/modules/programs/gdk-pixbuf.nix similarity index 65% rename from nixos/modules/services/x11/gdk-pixbuf.nix rename to nixos/modules/programs/gdk-pixbuf.nix index 9e89d9f96c4a..f96259ccd2c7 100644 --- a/nixos/modules/services/x11/gdk-pixbuf.nix +++ b/nixos/modules/programs/gdk-pixbuf.nix @@ -1,16 +1,20 @@ { config, lib, pkgs, ... }: let - cfg = config.services.xserver.gdk-pixbuf; + cfg = config.programs.gdk-pixbuf; loadersCache = pkgs.gnome._gdkPixbufCacheBuilder_DO_NOT_USE { - extraLoaders = lib.unique (cfg.modulePackages); + extraLoaders = lib.unique cfg.modulePackages; }; in { + imports = [ + (lib.mkRenamedOptionModule [ "services" "xserver" "gdk-pixbuf" ] [ "programs" "gdk-pixbuf" ]) + ]; + options = { - services.xserver.gdk-pixbuf.modulePackages = lib.mkOption { + programs.gdk-pixbuf.modulePackages = lib.mkOption { type = lib.types.listOf lib.types.package; default = [ ]; description = "Packages providing GDK-Pixbuf modules, for cache generation."; @@ -22,7 +26,7 @@ in # GDK_PIXBUF_MODULE_FILE to point to it. config = lib.mkIf (cfg.modulePackages != []) { environment.sessionVariables = { - GDK_PIXBUF_MODULE_FILE = "${loadersCache}"; + GDK_PIXBUF_MODULE_FILE = loadersCache; }; }; } diff --git a/nixos/modules/services/desktop-managers/plasma6.nix b/nixos/modules/services/desktop-managers/plasma6.nix index cf51f6025506..5bae328accde 100644 --- a/nixos/modules/services/desktop-managers/plasma6.nix +++ b/nixos/modules/services/desktop-managers/plasma6.nix @@ -202,7 +202,7 @@ in { environment.sessionVariables.KPACKAGE_DEP_RESOLVERS_PATH = "${kdePackages.frameworkintegration.out}/libexec/kf6/kpackagehandlers"; # Enable GTK applications to load SVG icons - services.xserver.gdk-pixbuf.modulePackages = [pkgs.librsvg]; + programs.gdk-pixbuf.modulePackages = [pkgs.librsvg]; fonts.packages = [cfg.notoPackage pkgs.hack-font]; fonts.fontconfig.defaultFonts = { diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix index 7d80b9b2641c..53d3b91bfa17 100644 --- a/nixos/modules/services/x11/desktop-managers/plasma5.nix +++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix @@ -327,7 +327,7 @@ in }; # Enable GTK applications to load SVG icons - services.xserver.gdk-pixbuf.modulePackages = [ pkgs.librsvg ]; + programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ]; fonts.packages = with pkgs; [ cfg.notoPackage hack-font ]; fonts.fontconfig.defaultFonts = { diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix index 85d0d199de3f..727802f3a63e 100644 --- a/nixos/modules/services/x11/desktop-managers/xfce.nix +++ b/nixos/modules/services/x11/desktop-managers/xfce.nix @@ -153,7 +153,7 @@ in }]; services.xserver.updateDbusEnvironment = true; - services.xserver.gdk-pixbuf.modulePackages = [ pkgs.librsvg ]; + programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ]; # Enable helpful DBus services. services.udisks2.enable = true; diff --git a/pkgs/applications/networking/remote/vmware-horizon-client/update.sh b/pkgs/applications/networking/remote/vmware-horizon-client/update.sh index eec3d1de79e0..cbac1ab73fa9 100755 --- a/pkgs/applications/networking/remote/vmware-horizon-client/update.sh +++ b/pkgs/applications/networking/remote/vmware-horizon-client/update.sh @@ -2,13 +2,13 @@ #!nix-shell -p curl -p jq -p common-updater-scripts -i bash set -e -entryPointURL='https://customerconnect.vmware.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&category=desktop_end_user_computing&product=vmware_horizon_clients&version=horizon_8&dlgType=PRODUCT_BINARY' +entryPointURL='https://customerconnect.omnissa.com/channel/public/api/v1.0/products/getRelatedDLGList?locale=en_US&category=desktop_end_user_computing&product=vmware_horizon_clients&version=horizon_8&dlgType=PRODUCT_BINARY' function getTarballMetaUrl { curl "$entryPointURL" | jq -r ' .dlgEditionsLists | .[] | select(.name | contains("Client for Linux")) | .dlgList | .[] | select(.name | contains("tarball version")) | - @uri "https://customerconnect.vmware.com/channel/public/api/v1.0/dlg/details?locale=en_US&downloadGroup=\(.code)&productId=\(.productId)&rPId=\(.releasePackageId)" + @uri "https://customerconnect.omnissa.com/channel/public/api/v1.0/dlg/details?locale=en_US&downloadGroup=\(.code)&productId=\(.productId)&rPId=\(.releasePackageId)" ' } diff --git a/pkgs/applications/office/planify/default.nix b/pkgs/applications/office/planify/default.nix index ac516e28a693..f3f8f76de017 100644 --- a/pkgs/applications/office/planify/default.nix +++ b/pkgs/applications/office/planify/default.nix @@ -28,13 +28,13 @@ stdenv.mkDerivation rec { pname = "planify"; - version = "4.8"; + version = "4.8.2"; src = fetchFromGitHub { owner = "alainm23"; repo = "planify"; rev = version; - hash = "sha256-uzZYrn1nbDoLSYyO1Y2YJk35+1WfVckSgGproaHKTOQ="; + hash = "sha256-IwFA/4QGfkMYbuUxbg3/jkrud0MUlEjtkYtCLy+3emc="; }; nativeBuildInputs = [ diff --git a/pkgs/tools/networking/getmail6/default.nix b/pkgs/by-name/ge/getmail6/package.nix similarity index 87% rename from pkgs/tools/networking/getmail6/default.nix rename to pkgs/by-name/ge/getmail6/package.nix index 7f758527d1c9..575fd11f670f 100644 --- a/pkgs/tools/networking/getmail6/default.nix +++ b/pkgs/by-name/ge/getmail6/package.nix @@ -5,17 +5,17 @@ python3.pkgs.buildPythonApplication rec { pname = "getmail6"; - version = "6.18.14"; + version = "6.19.00"; pyproject = true; src = fetchFromGitHub { owner = "getmail6"; repo = "getmail6"; rev = "refs/tags/v${version}"; - hash = "sha256-NcUGIddbIjwMyE/6fR8lqs90/chzqROQDftF/cNkxOs="; + hash = "sha256-cAho0fAvxUoxKrvS7XJaKYGEGgtA8Xl6dOEtVtUvK10="; }; - nativeBuildInputs = with python3.pkgs; [ + build-system = with python3.pkgs; [ setuptools ]; diff --git a/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix b/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix index e6bcc1b411d5..ea371ae6efd8 100644 --- a/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix +++ b/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "gnome-shell-extension-EasyScreenCast"; - version = "1.7.1"; + version = "1.9.0"; src = fetchFromGitHub { owner = "EasyScreenCast"; repo = "EasyScreenCast"; rev = finalAttrs.version; - hash = "sha256-G7wdRFA0qL+6inVRLAmKoP0E0IOyvlmQIUwbDv/DbLI="; + hash = "sha256-rRRMFAdWseTxW6W194TE3yNlnpPX7gLViLPLQW6zuSI="; }; patches = [ @@ -32,6 +32,5 @@ stdenv.mkDerivation (finalAttrs: { license = licenses.gpl3Plus; maintainers = with maintainers; [ doronbehar ]; platforms = platforms.linux; - broken = true; }; }) diff --git a/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch b/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch index 4ea048ba79bf..b47d2b52a7d7 100644 --- a/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch +++ b/pkgs/desktops/gnome/extensions/EasyScreenCast/fix-gi-path.patch @@ -1,19 +1,32 @@ -diff --git a/prefs.js b/prefs.js -index 97b85a3..2fc6539 100644 ---- a/prefs.js -+++ b/prefs.js -@@ -14,8 +14,8 @@ +diff --git i/extension.js w/extension.js +index c151057..1b6dfc3 100644 +--- i/extension.js ++++ w/extension.js +@@ -717,7 +717,7 @@ const EasyScreenCastIndicator = GObject.registerClass({ + Lib.TalkativeLog('-*-execute post command'); + + // launch cmd after registration +- const tmpCmd = `/usr/bin/sh -c "${this._settings.getOption('s', Settings.POST_CMD_SETTING_KEY)}"`; ++ const tmpCmd = `/bin/sh -c "${this._settings.getOption('s', Settings.POST_CMD_SETTING_KEY)}"`; + + const mapObj = { + _fpath: pathFile, +diff --git i/prefs.js w/prefs.js +index e0dd1a2..9dcb87a 100644 +--- i/prefs.js ++++ w/prefs.js +@@ -13,8 +13,8 @@ 'use strict'; - const GIRepository = imports.gi.GIRepository; + import GIRepository from 'gi://GIRepository'; -GIRepository.Repository.prepend_search_path('/usr/lib64/gnome-shell'); -GIRepository.Repository.prepend_library_path('/usr/lib64/gnome-shell'); +GIRepository.Repository.prepend_search_path('@gnomeShell@/lib/gnome-shell'); +GIRepository.Repository.prepend_library_path('@gnomeShell@/lib/gnome-shell'); - const GObject = imports.gi.GObject; - const Gio = imports.gi.Gio; -@@ -746,7 +746,7 @@ const EasyScreenCastSettingsWidget = GObject.registerClass({ + import Adw from 'gi://Adw'; + import GObject from 'gi://GObject'; +@@ -713,7 +713,7 @@ const EasyScreenCastSettingsWidget = GObject.registerClass({ Lib.TalkativeLog('-^-NOT SET xdg-user video'); ctx.CtrlExe.Execute( @@ -22,19 +35,29 @@ index 97b85a3..2fc6539 100644 true, (success, out) => { Lib.TalkativeLog(`-^-CALLBACK sync S: ${success} out: ${out}`); -diff --git a/utilaudio.js b/utilaudio.js -index 957eda2..84af241 100644 ---- a/utilaudio.js -+++ b/utilaudio.js -@@ -15,10 +15,7 @@ +@@ -883,7 +883,7 @@ const EasyScreenCastSettingsWidget = GObject.registerClass({ + ); - const GObject = imports.gi.GObject; - const GIRepository = imports.gi.GIRepository; + ctx.CtrlExe.Execute( +- 'journalctl /usr/bin/gnome-shell --since "15 min ago" --output=cat --no-pager', ++ 'journalctl @gnomeShell@/bin/.gnome-shell-wrapped --since "15 min ago" --output=cat --no-pager', + false, + success => { + Lib.TalkativeLog(`-^-CALLBACK async S= ${success}`); +diff --git i/utilaudio.js w/utilaudio.js +index b07e181..ed7d3ba 100644 +--- i/utilaudio.js ++++ w/utilaudio.js +@@ -14,10 +14,8 @@ + + import GObject from 'gi://GObject'; + import GIRepository from 'gi://GIRepository'; -GIRepository.Repository.prepend_search_path('/usr/lib/gnome-shell'); -GIRepository.Repository.prepend_library_path('/usr/lib/gnome-shell'); -GIRepository.Repository.prepend_search_path('/usr/lib64/gnome-shell'); -GIRepository.Repository.prepend_library_path('/usr/lib64/gnome-shell'); -+GIRepository.Repository.prepend_search_path("@gnomeShell@/lib/gnome-shell"); - const Gvc = imports.gi.Gvc; ++GIRepository.Repository.prepend_search_path('@gnomeShell@/lib/gnome-shell'); ++GIRepository.Repository.prepend_library_path('@gnomeShell@/lib/gnome-shell'); + import Gvc from 'gi://Gvc'; - const ExtensionUtils = imports.misc.extensionUtils; + import * as Lib from './convenience.js'; diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix index 18448fd0b4f0..443111347d5d 100644 --- a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix +++ b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix @@ -4,54 +4,45 @@ , nix-update-script , pkg-config , meson -, python3 , ninja , vala -, desktop-file-utils -, gtk3 -, granite +, gtk4 +, granite7 +, libadwaita , libgee -, libhandy -, gcr -, webkitgtk_4_1 -, wrapGAppsHook3 +, gcr_4 +, webkitgtk_6_0 +, wrapGAppsHook4 }: stdenv.mkDerivation rec { pname = "elementary-capnet-assist"; - version = "2.4.4"; + version = "8.0.0"; src = fetchFromGitHub { owner = "elementary"; repo = "capnet-assist"; rev = version; - sha256 = "sha256-vnFrGHt/rtrDmXokYRoebVpNLfkZPe5IShRsXCWWsXs="; + sha256 = "sha256-xYywiI8hFjS7ODEhLGVwrlAY8I0pvUHfg6UkDhUsglU="; }; nativeBuildInputs = [ - desktop-file-utils meson ninja pkg-config - python3 vala - wrapGAppsHook3 + wrapGAppsHook4 ]; buildInputs = [ - gcr - granite - gtk3 + gcr_4 + granite7 + gtk4 + libadwaita libgee - libhandy - webkitgtk_4_1 + webkitgtk_6_0 ]; - postPatch = '' - chmod +x meson/post_install.py - patchShebangs meson/post_install.py - ''; - passthru = { updateScript = nix-update-script { }; }; diff --git a/pkgs/tools/audio/beets/builtin-plugins.nix b/pkgs/tools/audio/beets/builtin-plugins.nix index 15d7504ccd6c..87b090d6f6de 100644 --- a/pkgs/tools/audio/beets/builtin-plugins.nix +++ b/pkgs/tools/audio/beets/builtin-plugins.nix @@ -1,6 +1,5 @@ { stdenv , aacgain -, essentia-extractor , ffmpeg , flac , imagemagick @@ -16,6 +15,7 @@ deprecated = true; testPaths = [ ]; }; + acousticbrainz.propagatedBuildInputs = [ python3Packages.requests ]; albumtypes = { }; aura = { @@ -87,7 +87,7 @@ mbcollection.testPaths = [ ]; mbsubmit = { }; mbsync = { }; - metasync = { }; + metasync.testPaths = [ ]; missing.testPaths = [ ]; mpdstats.propagatedBuildInputs = [ python3Packages.mpd2 ]; mpdupdate = { @@ -119,12 +119,10 @@ propagatedBuildInputs = with python3Packages; [ pillow pyxdg ]; wrapperBins = [ imagemagick ]; }; - types.testPaths = [ "test/test_types_plugin.py" ]; + types.testPaths = [ "test/plugins/test_types_plugin.py" ]; unimported.testPaths = [ ]; web.propagatedBuildInputs = [ python3Packages.flask ]; zero = { }; - # NOTE: Condition can be removed once stable beets updates -} // lib.optionalAttrs ((lib.versions.majorMinor version) != "1.6") { limit = { }; substitute = { testPaths = [ ]; diff --git a/pkgs/tools/audio/beets/common.nix b/pkgs/tools/audio/beets/common.nix index fd3adbc26c9d..6f45ece8bd59 100644 --- a/pkgs/tools/audio/beets/common.nix +++ b/pkgs/tools/audio/beets/common.nix @@ -94,6 +94,7 @@ python3Packages.buildPythonApplication { nativeBuildInputs = [ gobject-introspection sphinxHook + python3Packages.pydata-sphinx-theme ] ++ extraNativeBuildInputs; buildInputs = [ @@ -119,6 +120,7 @@ python3Packages.buildPythonApplication { nativeCheckInputs = with python3Packages; [ pytestCheckHook + pytest-cov mock rarfile responses diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix index 513470b0ffd1..caa160cf1764 100644 --- a/pkgs/tools/audio/beets/default.nix +++ b/pkgs/tools/audio/beets/default.nix @@ -18,66 +18,23 @@ ** alternatives = { enable = true; propagatedBuildInputs = [ beetsPackages.alternatives ]; }; ** }; } */ -let - legacyMediafilePython3Packages = python3Packages.override { - overrides = self: super: { - mediafile = super.mediafile.overridePythonAttrs (oldAttrs: rec { - version = "0.10.1"; - format = "pyproject"; - src = fetchPypi { - pname = "mediafile"; - inherit version; - hash = "sha256-kpZCoX7lAjuQhiIc6AzcLFHQYCGokNRDOwvVvTLysp8="; - }; - }); - }; - }; -in lib.makeExtensible (self: { +lib.makeExtensible (self: { beets = self.beets-stable; beets-stable = callPackage ./common.nix rec { - python3Packages = legacyMediafilePython3Packages; + inherit python3Packages; # NOTE: ./builtin-plugins.nix and ./common.nix can have some conditionals # be removed when stable version updates - version = "1.6.0"; + version = "2.0.0"; src = fetchFromGitHub { owner = "beetbox"; repo = "beets"; rev = "v${version}"; - hash = "sha256-fT+rCJJQR7bdfAcmeFRaknmh4ZOP4RCx8MXpq7/D8tM="; + hash = "sha256-6pmImyopy0zFBDYoqDyWcBv61FK1kGsZwW2+7fzAnq8="; }; extraPatches = [ # Bash completion fix for Nix ./patches/bash-completion-always-print.patch - - # Fix unidecode>=1.3.5 compat - (fetchpatch { - url = "https://github.com/beetbox/beets/commit/5ae1e0f3c8d3a450cb39f7933aa49bb78c2bc0d9.patch"; - hash = "sha256-gqkrE+U1j3tt1qPRJufTGS/GftaSw/gweXunO/mCVG8="; - }) - - # Fix embedart with ImageMagick 7.1.1-12 - # https://github.com/beetbox/beets/pull/4839 - # The upstream patch does not apply on 1.6.0, as the related code has been refactored since - ./patches/fix-embedart-imagick-7.1.1-12.patch - # Pillow 10 compatibility fix, a backport of - # https://github.com/beetbox/beets/pull/4868, which doesn't apply now - ./patches/fix-pillow10-compat.patch - - # Sphinx 6 compatibility fix. - (fetchpatch { - url = "https://github.com/beetbox/beets/commit/2106f471affd1dab35b4b26187b9c74d034528c5.patch"; - hash = "sha256-V/886dYJW/O55VqU8sd+x/URIFcKhP6j5sUhTGMoxL8="; - }) - ]; - disabledTests = [ - # This issue is present on this version alone, and can be removed on the - # next stable version version bump. Since this is fixed in branch master, - # we don't have a bug ticket open for this. As of writing, it also seems - # hard to find a patch that can be backported to v1.6.0 that would fix - # the failure, as the master branch has gone through too many changes - # now. - "test_get_single_item_by_path" ]; }; @@ -85,26 +42,16 @@ in lib.makeExtensible (self: { beets-unstable = callPackage ./common.nix { inherit python3Packages; - version = "unstable-2024-03-16"; + version = "2.0.0-unstable-2024-05-25"; src = fetchFromGitHub { owner = "beetbox"; repo = "beets"; - rev = "b09806e0df8f01b9155017d3693764ae7beedcd5"; - hash = "sha256-jE6nZLOEFufqclT6p1zK7dW+vt69q2ulaRsUldL7cSQ="; + rev = "2130404217684f22f36de00663428602b3f96d84"; + hash = "sha256-trqF6YVBcv+i5H4Ez3PKnRQ6mV2Ly/cw3UJC7pl19og="; }; extraPatches = [ # Bash completion fix for Nix - ./patches/unstable-bash-completion-always-print.patch - ]; - pluginOverrides = { - # unstable has new plugins, so we register them here. - limit = { builtin = true; }; - substitute = { builtin = true; }; - advancedrewrite = { builtin = true; }; - autobpm = { builtin = true; }; - }; - extraNativeBuildInputs = [ - python3Packages.pydata-sphinx-theme + ./patches/bash-completion-always-print.patch ]; }; diff --git a/pkgs/tools/audio/beets/patches/bash-completion-always-print.patch b/pkgs/tools/audio/beets/patches/bash-completion-always-print.patch index 8a31fe22f728..96b175117572 100644 --- a/pkgs/tools/audio/beets/patches/bash-completion-always-print.patch +++ b/pkgs/tools/audio/beets/patches/bash-completion-always-print.patch @@ -1,44 +1,45 @@ diff --git i/beets/ui/commands.py w/beets/ui/commands.py -index 3a337401..d08a6763 100755 +index ad4f7821..5077191d 100755 --- i/beets/ui/commands.py +++ w/beets/ui/commands.py -@@ -1759,21 +1759,6 @@ default_commands.append(config_cmd) +@@ -2381,22 +2381,6 @@ default_commands.append(config_cmd) def print_completion(*args): for line in completion_script(default_commands + plugins.commands()): - print_(line, end='') -- if not any(map(os.path.isfile, BASH_COMPLETION_PATHS)): -- log.warning('Warning: Unable to find the bash-completion package. ' -- 'Command line completion might not work.') + print_(line, end="") +- if not any(os.path.isfile(syspath(p)) for p in BASH_COMPLETION_PATHS): +- log.warning( +- "Warning: Unable to find the bash-completion package. " +- "Command line completion might not work." +- ) - - --BASH_COMPLETION_PATHS = map(syspath, [ -- '/etc/bash_completion', -- '/usr/share/bash-completion/bash_completion', -- '/usr/local/share/bash-completion/bash_completion', +-BASH_COMPLETION_PATHS = [ +- b"/etc/bash_completion", +- b"/usr/share/bash-completion/bash_completion", +- b"/usr/local/share/bash-completion/bash_completion", - # SmartOS -- '/opt/local/share/bash-completion/bash_completion', +- b"/opt/local/share/bash-completion/bash_completion", - # Homebrew (before bash-completion2) -- '/usr/local/etc/bash_completion', --]) -- +- b"/usr/local/etc/bash_completion", +-] + def completion_script(commands): - """Yield the full completion shell script as strings. diff --git i/test/test_ui.py w/test/test_ui.py -index 9804b0a1..c3b53243 100644 +index cae86148..faf266a8 100644 --- i/test/test_ui.py +++ w/test/test_ui.py -@@ -1229,12 +1229,7 @@ class CompletionTest(_common.TestCase, TestHelper): - stdout=subprocess.PIPE, env=env) +@@ -1434,12 +1434,7 @@ class CompletionTest(_common.TestCase, TestHelper): + ) # Load bash_completion library. - for path in commands.BASH_COMPLETION_PATHS: -- if os.path.exists(util.syspath(path)): +- if os.path.exists(syspath(path)): - bash_completion = path - break - else: -- self.skipTest('bash-completion script not found') -+ self.skipTest('bash-completion script not found') +- self.skipTest("bash-completion script not found") ++ self.skipTest("bash-completion script not found") try: - with open(util.syspath(bash_completion), 'rb') as f: + with open(util.syspath(bash_completion), "rb") as f: tester.stdin.writelines(f) diff --git a/pkgs/tools/audio/beets/patches/fix-embedart-imagick-7.1.1-12.patch b/pkgs/tools/audio/beets/patches/fix-embedart-imagick-7.1.1-12.patch deleted file mode 100644 index 42ae3526e978..000000000000 --- a/pkgs/tools/audio/beets/patches/fix-embedart-imagick-7.1.1-12.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/beets/art.py b/beets/art.py -index 13d5dfbd..ac1d2fd8 100644 ---- a/beets/art.py -+++ b/beets/art.py -@@ -132,7 +132,7 @@ def check_art_similarity(log, item, imagepath, compare_threshold): - convert_cmd = ['convert', syspath(imagepath, prefix=False), - syspath(art, prefix=False), - '-colorspace', 'gray', 'MIFF:-'] -- compare_cmd = ['compare', '-metric', 'PHASH', '-', 'null:'] -+ compare_cmd = ['compare', '-define', 'phash:colorspaces=sRGB,HCLp', '-metric', 'PHASH', '-', 'null:'] - log.debug('comparing images with pipeline {} | {}', - convert_cmd, compare_cmd) - convert_proc = subprocess.Popen( diff --git a/pkgs/tools/audio/beets/patches/fix-pillow10-compat.patch b/pkgs/tools/audio/beets/patches/fix-pillow10-compat.patch deleted file mode 100644 index f85eec20156c..000000000000 --- a/pkgs/tools/audio/beets/patches/fix-pillow10-compat.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git i/beets/util/artresizer.py w/beets/util/artresizer.py -index 8683e228..6f99c79e 100644 ---- i/beets/util/artresizer.py -+++ w/beets/util/artresizer.py -@@ -72,7 +72,7 @@ def pil_resize(maxwidth, path_in, path_out=None, quality=0, max_filesize=0): - try: - im = Image.open(util.syspath(path_in)) - size = maxwidth, maxwidth -- im.thumbnail(size, Image.ANTIALIAS) -+ im.thumbnail(size, Image.Resampling.LANCZOS) - - if quality == 0: - # Use PIL's default quality. diff --git a/pkgs/tools/audio/beets/patches/unstable-bash-completion-always-print.patch b/pkgs/tools/audio/beets/patches/unstable-bash-completion-always-print.patch deleted file mode 100644 index 96b175117572..000000000000 --- a/pkgs/tools/audio/beets/patches/unstable-bash-completion-always-print.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff --git i/beets/ui/commands.py w/beets/ui/commands.py -index ad4f7821..5077191d 100755 ---- i/beets/ui/commands.py -+++ w/beets/ui/commands.py -@@ -2381,22 +2381,6 @@ default_commands.append(config_cmd) - def print_completion(*args): - for line in completion_script(default_commands + plugins.commands()): - print_(line, end="") -- if not any(os.path.isfile(syspath(p)) for p in BASH_COMPLETION_PATHS): -- log.warning( -- "Warning: Unable to find the bash-completion package. " -- "Command line completion might not work." -- ) -- -- --BASH_COMPLETION_PATHS = [ -- b"/etc/bash_completion", -- b"/usr/share/bash-completion/bash_completion", -- b"/usr/local/share/bash-completion/bash_completion", -- # SmartOS -- b"/opt/local/share/bash-completion/bash_completion", -- # Homebrew (before bash-completion2) -- b"/usr/local/etc/bash_completion", --] - - - def completion_script(commands): -diff --git i/test/test_ui.py w/test/test_ui.py -index cae86148..faf266a8 100644 ---- i/test/test_ui.py -+++ w/test/test_ui.py -@@ -1434,12 +1434,7 @@ class CompletionTest(_common.TestCase, TestHelper): - ) - - # Load bash_completion library. -- for path in commands.BASH_COMPLETION_PATHS: -- if os.path.exists(syspath(path)): -- bash_completion = path -- break -- else: -- self.skipTest("bash-completion script not found") -+ self.skipTest("bash-completion script not found") - try: - with open(util.syspath(bash_completion), "rb") as f: - tester.stdin.writelines(f) diff --git a/pkgs/tools/audio/beets/plugins/alternatives.nix b/pkgs/tools/audio/beets/plugins/alternatives.nix index 95740e2d4e42..4b661d896ad6 100644 --- a/pkgs/tools/audio/beets/plugins/alternatives.nix +++ b/pkgs/tools/audio/beets/plugins/alternatives.nix @@ -2,26 +2,30 @@ python3Packages.buildPythonApplication rec { pname = "beets-alternatives"; - version = "unstable-2021-02-01"; + version = "0.11.1"; + pyproject = true; src = fetchFromGitHub { repo = "beets-alternatives"; owner = "geigerzaehler"; - rev = "288299e3aa9a1602717b04c28696fce5ce4259bf"; - sha256 = "sha256-Xl7AHr33hXQqQDuFbWuj8HrIugeipJFPmvNXpCkU/mI="; + rev = "v${version}"; + sha256 = "sha256-ORmF7YOQD4LvKiYo4Rzz+mzppOEvLics58aOK/IKcHc="; }; - postPatch = '' - substituteInPlace setup.cfg \ - --replace "addopts = --cov --cov-report=term --cov-report=html" "" - ''; - - nativeBuildInputs = [ beets ]; + nativeBuildInputs = [ + beets + python3Packages.poetry-core + ]; nativeCheckInputs = with python3Packages; [ pytestCheckHook + pytest-cov mock + typeguard ]; + preCheck = '' + export HOME=$(mktemp -d) + ''; meta = with lib; { description = "Beets plugin to manage external files"; diff --git a/pkgs/tools/audio/beets/plugins/copyartifacts.nix b/pkgs/tools/audio/beets/plugins/copyartifacts.nix index 132eda28ed30..d9d95a9f25d9 100644 --- a/pkgs/tools/audio/beets/plugins/copyartifacts.nix +++ b/pkgs/tools/audio/beets/plugins/copyartifacts.nix @@ -19,11 +19,13 @@ python3Packages.buildPythonApplication rec { pytestFlagsArray = [ "-r fEs" ]; - nativeCheckInputs = with python3Packages; [ - pytestCheckHook + nativeCheckInputs = [ + python3Packages.pytestCheckHook beets - six ]; + preCheck = '' + export HOME=$(mktemp -d) + ''; meta = { description = "Beets plugin to move non-music files during the import process"; diff --git a/pkgs/tools/audio/beets/plugins/extrafiles.nix b/pkgs/tools/audio/beets/plugins/extrafiles.nix index 80c51dcde522..02ac96c2bb40 100644 --- a/pkgs/tools/audio/beets/plugins/extrafiles.nix +++ b/pkgs/tools/audio/beets/plugins/extrafiles.nix @@ -33,5 +33,7 @@ python3Packages.buildPythonApplication { description = "A plugin for beets that copies additional files and directories during the import process"; license = lib.licenses.mit; inherit (beets.meta) platforms; + # Upstream hasn't had commits since 2020, build is broken since beets 2.0.0 + broken = true; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 34c5ffe85615..d090e192452a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8250,8 +8250,6 @@ with pkgs; geteltorito = callPackage ../tools/misc/geteltorito { }; - getmail6 = callPackage ../tools/networking/getmail6 { }; - getopt = callPackage ../tools/misc/getopt { }; getoptions = callPackage ../tools/misc/getoptions { };