adding a rmlint fix while it gets merged upstream
This commit is contained in:
parent
7d8e9fb07a
commit
3f8e1ec7ac
108
pkgs_pr/rmlint.nix
Normal file
108
pkgs_pr/rmlint.nix
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
cairo,
|
||||||
|
elfutils,
|
||||||
|
fetchFromGitHub,
|
||||||
|
fetchpatch,
|
||||||
|
glib,
|
||||||
|
gobject-introspection,
|
||||||
|
gtksourceview3,
|
||||||
|
json-glib,
|
||||||
|
makeWrapper,
|
||||||
|
pango,
|
||||||
|
pkg-config,
|
||||||
|
polkit,
|
||||||
|
python3,
|
||||||
|
scons,
|
||||||
|
sphinx,
|
||||||
|
util-linux,
|
||||||
|
wrapGAppsHook3,
|
||||||
|
withGui ? false,
|
||||||
|
}:
|
||||||
|
|
||||||
|
assert withGui -> !stdenv.hostPlatform.isDarwin;
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "rmlint";
|
||||||
|
version = "2.10.2";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "sahib";
|
||||||
|
repo = "rmlint";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "sha256-pOo1YfeqHUU6xyBRFbcj2lX1MHJ+a5Hi31BMC1nYZGo=";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# pass through NIX_* environment variables to scons.
|
||||||
|
./rmlint/scons-nix-env.patch
|
||||||
|
# fix #664
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/sahib/rmlint/commit/f0ca57ec907f7199e3670038d60b4702d1e1d8e2.patch";
|
||||||
|
hash = "sha256-715X+R2BcQIaUV76hoO+EXPfNheOfw4OIHsqSoruIUI=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs =
|
||||||
|
[
|
||||||
|
pkg-config
|
||||||
|
sphinx
|
||||||
|
scons
|
||||||
|
]
|
||||||
|
++ lib.optionals withGui [
|
||||||
|
makeWrapper
|
||||||
|
wrapGAppsHook3
|
||||||
|
gobject-introspection
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs =
|
||||||
|
[
|
||||||
|
glib
|
||||||
|
json-glib
|
||||||
|
util-linux
|
||||||
|
]
|
||||||
|
++ lib.optionals withGui [
|
||||||
|
cairo
|
||||||
|
gtksourceview3
|
||||||
|
pango
|
||||||
|
polkit
|
||||||
|
python3
|
||||||
|
python3.pkgs.pygobject3
|
||||||
|
]
|
||||||
|
++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [
|
||||||
|
elfutils
|
||||||
|
];
|
||||||
|
|
||||||
|
prePatch = ''
|
||||||
|
# remove sources of nondeterminism
|
||||||
|
substituteInPlace lib/cmdline.c \
|
||||||
|
--replace "__DATE__" "\"Jan 1 1970\"" \
|
||||||
|
--replace "__TIME__" "\"00:00:00\""
|
||||||
|
substituteInPlace docs/SConscript \
|
||||||
|
--replace "gzip -c " "gzip -cn "
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Otherwise tries to access /usr.
|
||||||
|
prefixKey = "--prefix=";
|
||||||
|
|
||||||
|
sconsFlags = lib.optionals (!withGui) [ "--without-gui" ];
|
||||||
|
|
||||||
|
# in GUI mode, this shells out to itself, and tries to import python modules
|
||||||
|
postInstall = lib.optionalString withGui ''
|
||||||
|
gappsWrapperArgs+=(--prefix PATH : "$out/bin")
|
||||||
|
gappsWrapperArgs+=(--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${python3.pkgs.pygobject3}):$(toPythonPath ${python3.pkgs.pycairo})")
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Extremely fast tool to remove duplicates and other lint from your filesystem";
|
||||||
|
homepage = "https://rmlint.readthedocs.org";
|
||||||
|
platforms = platforms.unix;
|
||||||
|
license = licenses.gpl3;
|
||||||
|
maintainers = with maintainers; [
|
||||||
|
aaschmid
|
||||||
|
koral
|
||||||
|
];
|
||||||
|
mainProgram = "rmlint";
|
||||||
|
};
|
||||||
|
}
|
||||||
19
pkgs_pr/rmlint/scons-nix-env.patch
Normal file
19
pkgs_pr/rmlint/scons-nix-env.patch
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
scons does not use os environment by default:
|
||||||
|
https://scons.org/doc/2.1.0/HTML/scons-user/x1750.html
|
||||||
|
|
||||||
|
nixpkgs' cc-wrapper on the other hand relies on various NIX_* variables
|
||||||
|
to be passed through like NIX_CFLAGS_COMPILE_BEFORE.
|
||||||
|
--- a/SConstruct
|
||||||
|
+++ b/SConstruct
|
||||||
|
@@ -559,10 +559,7 @@ options = dict(
|
||||||
|
SHLINKCOMSTR=link_shared_library_message,
|
||||||
|
LINKCOMSTR=link_program_message,
|
||||||
|
PREFIX=GetOption('prefix'),
|
||||||
|
- ENV = dict([ (key, os.environ[key])
|
||||||
|
- for key in os.environ
|
||||||
|
- if key in ['PATH', 'TERM', 'HOME', 'PKG_CONFIG_PATH']
|
||||||
|
- ])
|
||||||
|
+ ENV = os.environ,
|
||||||
|
)
|
||||||
|
|
||||||
|
if ARGUMENTS.get('VERBOSE') == "1":
|
||||||
Loading…
x
Reference in New Issue
Block a user