nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 stdenv,
3 lib,
4 python3Packages,
5 gettext,
6 qt5,
7 fetchFromGitHub,
8}:
9
10python3Packages.buildPythonApplication rec {
11 pname = "dupeguru";
12 version = "4.3.1";
13
14 format = "other";
15
16 src = fetchFromGitHub {
17 owner = "arsenetar";
18 repo = "dupeguru";
19 rev = version;
20 hash = "sha256-/jkZiCapmCLMp7WfgUmpsR8aNCfb3gBELlMYaC4e7zI=";
21 };
22
23 patches = [
24 ./remove-setuptools-sandbox.patch
25 ];
26
27 nativeBuildInputs = [
28 gettext
29 python3Packages.pyqt5
30 python3Packages.setuptools
31 qt5.wrapQtAppsHook
32 ];
33
34 propagatedBuildInputs = with python3Packages; [
35 hsaudiotag3k
36 mutagen
37 polib
38 pyqt5
39 pyqt5-sip
40 semantic-version
41 send2trash
42 sphinx
43 ];
44
45 makeFlags = [
46 "PREFIX=${placeholder "out"}"
47 "NO_VENV=1"
48 ];
49
50 nativeCheckInputs = with python3Packages; [
51 pytestCheckHook
52 ];
53
54 preCheck = ''
55 export HOME="$(mktemp -d)"
56 '';
57
58 # Avoid double wrapping Python programs.
59 dontWrapQtApps = true;
60
61 # TODO: A bug in python wrapper
62 # see https://github.com/NixOS/nixpkgs/pull/75054#discussion_r357656916
63 preFixup = ''
64 makeWrapperArgs="''${qtWrapperArgs[@]}"
65 '';
66
67 # Executable in $out/bin is a symlink to $out/share/dupeguru/run.py
68 # so wrapPythonPrograms hook does not handle it automatically.
69 postFixup = ''
70 wrapPythonProgramsIn "$out/share/dupeguru" "$out $pythonPath"
71 '';
72
73 meta = with lib; {
74 broken = stdenv.hostPlatform.isDarwin;
75 description = "GUI tool to find duplicate files in a system";
76 homepage = "https://github.com/arsenetar/dupeguru";
77 license = licenses.bsd3;
78 platforms = platforms.unix;
79 maintainers = with maintainers; [ novoxd ];
80 mainProgram = "dupeguru";
81 };
82}