diff --git a/pkgs/development/python-modules/mat2/bubblewrap-path.patch b/pkgs/development/python-modules/mat2/bubblewrap-path.patch new file mode 100644 index 000000000000..2c71930b6df8 --- /dev/null +++ b/pkgs/development/python-modules/mat2/bubblewrap-path.patch @@ -0,0 +1,35 @@ +diff --git a/libmat2/bubblewrap.py b/libmat2/bubblewrap.py +index 970d5dd..5d3c0b7 100644 +--- a/libmat2/bubblewrap.py ++++ b/libmat2/bubblewrap.py +@@ -22,11 +22,7 @@ CalledProcessError = subprocess.CalledProcessError + + + def _get_bwrap_path() -> str: +- which_path = shutil.which('bwrap') +- if which_path: +- return which_path +- +- raise RuntimeError("Unable to find bwrap") # pragma: no cover ++ return '@bwrap@' + + + def _get_bwrap_args(tempdir: str, +@@ -37,16 +33,11 @@ def _get_bwrap_args(tempdir: str, + + # XXX: use --ro-bind-try once all supported platforms + # have a bubblewrap recent enough to support it. +- ro_bind_dirs = ['/usr', '/lib', '/lib64', '/bin', '/sbin', '/etc/alternatives', cwd] ++ ro_bind_dirs = ['/nix/store', cwd] + for bind_dir in ro_bind_dirs: + if os.path.isdir(bind_dir): # pragma: no cover + ro_bind_args.extend(['--ro-bind', bind_dir, bind_dir]) + +- ro_bind_files = ['/etc/ld.so.cache'] +- for bind_file in ro_bind_files: +- if os.path.isfile(bind_file): # pragma: no cover +- ro_bind_args.extend(['--ro-bind', bind_file, bind_file]) +- + args = ro_bind_args + \ + ['--dev', '/dev', + '--proc', '/proc', diff --git a/pkgs/development/python-modules/mat2/default.nix b/pkgs/development/python-modules/mat2/default.nix index 97b52855f6ba..1d5a76b7b804 100644 --- a/pkgs/development/python-modules/mat2/default.nix +++ b/pkgs/development/python-modules/mat2/default.nix @@ -1,4 +1,5 @@ { lib +, stdenv , buildPythonPackage , python , pythonOlder @@ -37,7 +38,6 @@ buildPythonPackage rec { # hardcode paths to some binaries (substituteAll ({ src = ./paths.patch; - bwrap = "${bubblewrap}/bin/bwrap"; exiftool = "${exiftool}/bin/exiftool"; ffmpeg = "${ffmpeg}/bin/ffmpeg"; } // lib.optionalAttrs dolphinIntegration { @@ -52,6 +52,11 @@ buildPythonPackage rec { src = ./fix_poppler.patch; poppler_path = "${poppler_gi}/lib/girepository-1.0"; }) + ] ++ lib.optionals (stdenv.hostPlatform.isLinux) [ + (substituteAll { + src = ./bubblewrap-path.patch; + bwrap = "${bubblewrap}/bin/bwrap"; + }) ]; postPatch = '' diff --git a/pkgs/development/python-modules/mat2/paths.patch b/pkgs/development/python-modules/mat2/paths.patch index 50b0c9aaa789..784e04cda383 100644 --- a/pkgs/development/python-modules/mat2/paths.patch +++ b/pkgs/development/python-modules/mat2/paths.patch @@ -12,41 +12,6 @@ index 41c8de4..11df258 100644 +Icon=@mat2svg@ +Exec=@kdialog@ --yesno "$( @mat2@ -s %F )" --title "Clean Metadata?" && @mat2@ %U +Exec[de]=@kdialog@ --yesno "$( @mat2@ -s %F )" --title "Metadaten löschen?" && @mat2@ %U -diff --git a/libmat2/bubblewrap.py b/libmat2/bubblewrap.py -index 970d5dd..5d3c0b7 100644 ---- a/libmat2/bubblewrap.py -+++ b/libmat2/bubblewrap.py -@@ -22,11 +22,7 @@ CalledProcessError = subprocess.CalledProcessError - - - def _get_bwrap_path() -> str: -- which_path = shutil.which('bwrap') -- if which_path: -- return which_path -- -- raise RuntimeError("Unable to find bwrap") # pragma: no cover -+ return '@bwrap@' - - - def _get_bwrap_args(tempdir: str, -@@ -37,16 +33,11 @@ def _get_bwrap_args(tempdir: str, - - # XXX: use --ro-bind-try once all supported platforms - # have a bubblewrap recent enough to support it. -- ro_bind_dirs = ['/usr', '/lib', '/lib64', '/bin', '/sbin', '/etc/alternatives', cwd] -+ ro_bind_dirs = ['/nix/store', cwd] - for bind_dir in ro_bind_dirs: - if os.path.isdir(bind_dir): # pragma: no cover - ro_bind_args.extend(['--ro-bind', bind_dir, bind_dir]) - -- ro_bind_files = ['/etc/ld.so.cache'] -- for bind_file in ro_bind_files: -- if os.path.isfile(bind_file): # pragma: no cover -- ro_bind_args.extend(['--ro-bind', bind_file, bind_file]) -- - args = ro_bind_args + \ - ['--dev', '/dev', - '--proc', '/proc', diff --git a/libmat2/exiftool.py b/libmat2/exiftool.py index eb65b2a..51a0fa1 100644 --- a/libmat2/exiftool.py