From 420c60f61ab5f39a88f6d7b90408e1dcfd1d47f8 Mon Sep 17 00:00:00 2001 From: magicquark <198001825+magicquark@users.noreply.github.com> Date: Tue, 3 Mar 2026 23:33:53 +0000 Subject: [PATCH 1/5] dupeguru: migrate to pkgs/by-name --- .../default.nix => by-name/du/dupeguru/package.nix} | 6 ++++-- .../du}/dupeguru/remove-setuptools-sandbox.patch | 0 pkgs/top-level/all-packages.nix | 3 --- 3 files changed, 4 insertions(+), 5 deletions(-) rename pkgs/{applications/misc/dupeguru/default.nix => by-name/du/dupeguru/package.nix} (96%) rename pkgs/{applications/misc => by-name/du}/dupeguru/remove-setuptools-sandbox.patch (100%) diff --git a/pkgs/applications/misc/dupeguru/default.nix b/pkgs/by-name/du/dupeguru/package.nix similarity index 96% rename from pkgs/applications/misc/dupeguru/default.nix rename to pkgs/by-name/du/dupeguru/package.nix index 06af2c764027..201afbaa00a3 100644 --- a/pkgs/applications/misc/dupeguru/default.nix +++ b/pkgs/by-name/du/dupeguru/package.nix @@ -1,12 +1,14 @@ { stdenv, lib, - python3Packages, + python311Packages, gettext, qt5, fetchFromGitHub, }: - +let + python3Packages = python311Packages; +in python3Packages.buildPythonApplication rec { pname = "dupeguru"; version = "4.3.1"; diff --git a/pkgs/applications/misc/dupeguru/remove-setuptools-sandbox.patch b/pkgs/by-name/du/dupeguru/remove-setuptools-sandbox.patch similarity index 100% rename from pkgs/applications/misc/dupeguru/remove-setuptools-sandbox.patch rename to pkgs/by-name/du/dupeguru/remove-setuptools-sandbox.patch diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f23d78fa371e..14bf66f7c49e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -439,9 +439,6 @@ with pkgs; buildDotnetPackage = callPackage ../build-support/dotnet/build-dotnet-package { }; fetchNuGet = callPackage ../build-support/dotnet/fetchnuget { }; - dupeguru = callPackage ../applications/misc/dupeguru { - python3Packages = python311Packages; - }; fetchbzr = callPackage ../build-support/fetchbzr { }; From 012ca49b73329916ea8e5b1dc5b14809c3d090e8 Mon Sep 17 00:00:00 2001 From: magicquark <198001825+magicquark@users.noreply.github.com> Date: Wed, 4 Mar 2026 02:02:38 +0000 Subject: [PATCH 2/5] dupeguru: update licence from bsd to gplv3 - The licence was changed in 2015. - See https://github.com/arsenetar/dupeguru/commit/bb9908abb4c25c9cf99bb78414059115475c947a. --- pkgs/by-name/du/dupeguru/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/du/dupeguru/package.nix b/pkgs/by-name/du/dupeguru/package.nix index 201afbaa00a3..6de1948fb9af 100644 --- a/pkgs/by-name/du/dupeguru/package.nix +++ b/pkgs/by-name/du/dupeguru/package.nix @@ -76,7 +76,7 @@ python3Packages.buildPythonApplication rec { broken = stdenv.hostPlatform.isDarwin; description = "GUI tool to find duplicate files in a system"; homepage = "https://github.com/arsenetar/dupeguru"; - license = lib.licenses.bsd3; + license = lib.licenses.gpl3; platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ novoxd ]; mainProgram = "dupeguru"; From 16c7b8cd98c8548a5233d2116c09077c0afec8be Mon Sep 17 00:00:00 2001 From: magicquark <198001825+magicquark@users.noreply.github.com> Date: Tue, 3 Mar 2026 23:50:53 +0000 Subject: [PATCH 3/5] dupeguru: 4.3.1 -> 4.3.1-unstable-2026-01-06 --- pkgs/by-name/du/dupeguru/package.nix | 20 +++++--------- .../dupeguru/remove-setuptools-sandbox.patch | 27 ------------------- 2 files changed, 7 insertions(+), 40 deletions(-) delete mode 100644 pkgs/by-name/du/dupeguru/remove-setuptools-sandbox.patch diff --git a/pkgs/by-name/du/dupeguru/package.nix b/pkgs/by-name/du/dupeguru/package.nix index 6de1948fb9af..d8d12c1c4a17 100644 --- a/pkgs/by-name/du/dupeguru/package.nix +++ b/pkgs/by-name/du/dupeguru/package.nix @@ -1,47 +1,41 @@ { stdenv, lib, - python311Packages, + python3Packages, gettext, qt5, fetchFromGitHub, }: -let - python3Packages = python311Packages; -in python3Packages.buildPythonApplication rec { pname = "dupeguru"; - version = "4.3.1"; + version = "4.3.1-unstable-2026-01-06"; pyproject = false; src = fetchFromGitHub { owner = "arsenetar"; repo = "dupeguru"; - rev = version; - hash = "sha256-/jkZiCapmCLMp7WfgUmpsR8aNCfb3gBELlMYaC4e7zI="; + rev = "16aa6c21ffc2c33d44ff4a47bfa1a623c16ed626"; + hash = "sha256-0x2ZpjaxpWVhm9vimDA06y1BOvpoU6KZYz5MPAoWAts="; }; - patches = [ - ./remove-setuptools-sandbox.patch - ]; - nativeBuildInputs = [ gettext python3Packages.pyqt5 python3Packages.setuptools + python3Packages.sphinx qt5.wrapQtAppsHook ]; propagatedBuildInputs = with python3Packages; [ - hsaudiotag3k + distro mutagen polib pyqt5 pyqt5-sip semantic-version send2trash - sphinx + xxhash ]; makeFlags = [ diff --git a/pkgs/by-name/du/dupeguru/remove-setuptools-sandbox.patch b/pkgs/by-name/du/dupeguru/remove-setuptools-sandbox.patch deleted file mode 100644 index 983ea4dd7efc..000000000000 --- a/pkgs/by-name/du/dupeguru/remove-setuptools-sandbox.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/build.py b/build.py -index 06905a11..56d54a17 100644 ---- a/build.py -+++ b/build.py -@@ -10,7 +10,7 @@ from optparse import OptionParser - import shutil - from multiprocessing import Pool - --from setuptools import sandbox -+import subprocess - from hscommon import sphinxgen - from hscommon.build import ( - add_to_pythonpath, -@@ -118,7 +118,12 @@ def build_normpo(): - def build_pe_modules(): - print("Building PE Modules") - # Leverage setup.py to build modules -- sandbox.run_setup("setup.py", ["build_ext", "--inplace"]) -+ result = subprocess.run( -+ [sys.executable, "setup.py", "build_ext", "--inplace"], -+ check=True, -+ ) -+ if result.returncode != 0: -+ sys.exit("Error building PE modules. Please check the output above.") - - - def build_normal(): From 1b67fe9e5a4bd201e5a5bf7c198cf812495f4e85 Mon Sep 17 00:00:00 2001 From: magicquark <198001825+magicquark@users.noreply.github.com> Date: Wed, 4 Mar 2026 02:24:52 +0000 Subject: [PATCH 4/5] dupeguru: modernise --- pkgs/by-name/du/dupeguru/package.nix | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/du/dupeguru/package.nix b/pkgs/by-name/du/dupeguru/package.nix index d8d12c1c4a17..f90498dc5e61 100644 --- a/pkgs/by-name/du/dupeguru/package.nix +++ b/pkgs/by-name/du/dupeguru/package.nix @@ -4,9 +4,10 @@ python3Packages, gettext, qt5, + writableTmpDirAsHomeHook, fetchFromGitHub, }: -python3Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication (finalAttrs: { pname = "dupeguru"; version = "4.3.1-unstable-2026-01-06"; @@ -25,6 +26,7 @@ python3Packages.buildPythonApplication rec { python3Packages.setuptools python3Packages.sphinx qt5.wrapQtAppsHook + writableTmpDirAsHomeHook ]; propagatedBuildInputs = with python3Packages; [ @@ -47,10 +49,6 @@ python3Packages.buildPythonApplication rec { pytestCheckHook ]; - preCheck = '' - export HOME="$(mktemp -d)" - ''; - # Avoid double wrapping Python programs. dontWrapQtApps = true; @@ -70,9 +68,10 @@ python3Packages.buildPythonApplication rec { broken = stdenv.hostPlatform.isDarwin; description = "GUI tool to find duplicate files in a system"; homepage = "https://github.com/arsenetar/dupeguru"; + changelog = "https://github.com/arsenetar/dupeguru/releases/tag/${builtins.head (lib.strings.splitString "-" finalAttrs.version)}"; license = lib.licenses.gpl3; platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ novoxd ]; mainProgram = "dupeguru"; }; -} +}) From 37ab0d560ef8fa12d79df54e7b48aa45d49df433 Mon Sep 17 00:00:00 2001 From: magicquark <198001825+magicquark@users.noreply.github.com> Date: Wed, 4 Mar 2026 03:06:43 +0000 Subject: [PATCH 5/5] dupeguru: ensure documentation is built - Without the `installdocs` target enabled, when a user clicks `help` in the UI, it goes to a webpage that targets an out of date help manual. - With this change, the `help` button in the UI opens the documentation built from source. --- pkgs/by-name/du/dupeguru/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/du/dupeguru/package.nix b/pkgs/by-name/du/dupeguru/package.nix index f90498dc5e61..beafc8424f88 100644 --- a/pkgs/by-name/du/dupeguru/package.nix +++ b/pkgs/by-name/du/dupeguru/package.nix @@ -52,6 +52,8 @@ python3Packages.buildPythonApplication (finalAttrs: { # Avoid double wrapping Python programs. dontWrapQtApps = true; + installTargets = "install installdocs"; + # TODO: A bug in python wrapper # see https://github.com/NixOS/nixpkgs/pull/75054#discussion_r357656916 preFixup = ''