biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / misc / rmlint / default.nix
blob829987d6094ef4d9668f9e5a6afe641a1c52fbd6
1 { lib, stdenv
2 , cairo
3 , elfutils
4 , fetchFromGitHub
5 , glib
6 , gobject-introspection
7 , gtksourceview3
8 , json-glib
9 , makeWrapper
10 , pango
11 , pkg-config
12 , polkit
13 , python3
14 , scons
15 , sphinx
16 , util-linux
17 , wrapGAppsHook3
18 , withGui ? false }:
20 assert withGui -> !stdenv.hostPlatform.isDarwin;
22 stdenv.mkDerivation rec {
23   pname = "rmlint";
24   version = "2.10.2";
26   src = fetchFromGitHub {
27     owner = "sahib";
28     repo = "rmlint";
29     rev = "v${version}";
30     sha256 = "sha256-pOo1YfeqHUU6xyBRFbcj2lX1MHJ+a5Hi31BMC1nYZGo=";
31   };
33   patches = [
34     # pass through NIX_* environment variables to scons.
35     ./scons-nix-env.patch
36   ];
38   nativeBuildInputs = [
39     pkg-config
40     sphinx
41     scons
42   ] ++ lib.optionals withGui [
43     makeWrapper
44     wrapGAppsHook3
45     gobject-introspection
46   ];
48   buildInputs = [
49     glib
50     json-glib
51     util-linux
52   ] ++ lib.optionals withGui [
53     cairo
54     gtksourceview3
55     pango
56     polkit
57     python3
58     python3.pkgs.pygobject3
59   ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [
60     elfutils
61   ];
63   prePatch = ''
64     # remove sources of nondeterminism
65     substituteInPlace lib/cmdline.c \
66       --replace "__DATE__" "\"Jan  1 1970\"" \
67       --replace "__TIME__" "\"00:00:00\""
68     substituteInPlace docs/SConscript \
69       --replace "gzip -c " "gzip -cn "
70   '';
72   # Otherwise tries to access /usr.
73   prefixKey = "--prefix=";
75   sconsFlags = lib.optionals (!withGui) [ "--without-gui" ];
77   # in GUI mode, this shells out to itself, and tries to import python modules
78   postInstall = lib.optionalString withGui ''
79     gappsWrapperArgs+=(--prefix PATH : "$out/bin")
80     gappsWrapperArgs+=(--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${python3.pkgs.pygobject3}):$(toPythonPath ${python3.pkgs.pycairo})")
81   '';
83   meta = with lib; {
84     description = "Extremely fast tool to remove duplicates and other lint from your filesystem";
85     homepage = "https://rmlint.readthedocs.org";
86     platforms = platforms.unix;
87     license = licenses.gpl3;
88     maintainers = with maintainers; [ aaschmid koral ];
89     mainProgram = "rmlint";
90   };