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