linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / tools / misc / rmlint / default.nix
blob8211c5aebc774ceabd808e1c9ad473835c9b338b
1 { lib, stdenv
2 , cairo
3 , fetchFromGitHub
4 , gettext
5 , glib
6 , gobject-introspection
7 , gtksourceview3
8 , json-glib
9 , libelf
10 , makeWrapper
11 , pango
12 , pkg-config
13 , polkit
14 , python3
15 , scons
16 , sphinx
17 , util-linux
18 , wrapGAppsHook
19 , withGui ? false }:
21 assert withGui -> !stdenv.isDarwin;
23 with lib;
24 stdenv.mkDerivation rec {
25   pname = "rmlint";
26   version = "2.10.1";
28   src = fetchFromGitHub {
29     owner = "sahib";
30     repo = "rmlint";
31     rev = "v${version}";
32     sha256 = "15xfkcw1bkfyf3z8kl23k3rlv702m0h7ghqxvhniynvlwbgh6j2x";
33   };
35   nativeBuildInputs = [
36     pkg-config
37     sphinx
38     scons
39   ] ++ lib.optionals withGui [
40     makeWrapper
41     wrapGAppsHook
42   ];
44   buildInputs = [
45     glib
46     json-glib
47     libelf
48     util-linux
49   ] ++ lib.optionals withGui [
50     cairo
51     gobject-introspection
52     gtksourceview3
53     pango
54     polkit
55     python3
56     python3.pkgs.pygobject3
57   ];
59   prePatch = ''
60     export CFLAGS="$NIX_CFLAGS_COMPILE"
61     export LDFLAGS="''${NIX_LDFLAGS//-rpath /-Wl,-rpath=}"
63     # remove sources of nondeterminism
64     substituteInPlace lib/cmdline.c \
65       --replace "__DATE__" "\"Jan  1 1970\"" \
66       --replace "__TIME__" "\"00:00:00\""
67     substituteInPlace docs/SConscript \
68       --replace "gzip -c " "gzip -cn "
69   '';
71   prefixKey = "--prefix=";
73   sconsFlags = lib.optionals (!withGui) [ "--without-gui" ];
75   # in GUI mode, this shells out to itself, and tries to import python modules
76   postInstall = lib.optionalString withGui ''
77     gappsWrapperArgs+=(--prefix PATH : "$out/bin")
78     gappsWrapperArgs+=(--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${python3.pkgs.pygobject3}):$(toPythonPath ${python3.pkgs.pycairo})")
79   '';
81   meta = {
82     description = "Extremely fast tool to remove duplicates and other lint from your filesystem";
83     homepage = "https://rmlint.readthedocs.org";
84     platforms = platforms.unix;
85     license = licenses.gpl3;
86     maintainers = with maintainers; [ aaschmid koral ];
87   };