diff --git a/pkgs/by-name/fr/fractal/package.nix b/pkgs/by-name/fr/fractal/package.nix index 57e2d580238e1..66e3a059f61c8 100644 --- a/pkgs/by-name/fr/fractal/package.nix +++ b/pkgs/by-name/fr/fractal/package.nix @@ -29,6 +29,7 @@ libseccomp, glycin-loaders, libwebp, + libglycin, }: stdenv.mkDerivation (finalAttrs: { @@ -60,6 +61,14 @@ stdenv.mkDerivation (finalAttrs: { "target_dir / '${stdenv.hostPlatform.rust.cargoShortTarget}' / rust_target / meson.project_name()" ''; + preConfigure = '' + # Dirty approach to add patches after cargoSetupPostUnpackHook + # We should eventually use a cargo vendor patch hook instead + pushd ../$(stripHash $cargoDeps)/glycin-3.* + patch -p3 < ${libglycin.passthru.glycin3PathsPatch} + patch -p3 < ${libglycin.passthru.glycin3OptionalUsrPatch} + popd + ''; nativeBuildInputs = [ glib grass-sass @@ -102,7 +111,6 @@ stdenv.mkDerivation (finalAttrs: { preFixup = '' gappsWrapperArgs+=( --prefix XDG_DATA_DIRS : "${glycin-loaders}/share" - --prefix PATH : "${lib.makeBinPath [ bubblewrap ]}" ) ''; diff --git a/pkgs/by-name/li/libglycin/glycin-3-optional-usr.patch b/pkgs/by-name/li/libglycin/glycin-3-optional-usr.patch new file mode 100644 index 0000000000000..96a07d1627216 --- /dev/null +++ b/pkgs/by-name/li/libglycin/glycin-3-optional-usr.patch @@ -0,0 +1,13 @@ +diff --git a/vendor/glycin/src/sandbox.rs b/vendor/glycin/src/sandbox.rs +index d840674..475d4be 100644 +--- a/vendor/glycin/src/sandbox.rs ++++ b/vendor/glycin/src/sandbox.rs +@@ -292,7 +292,7 @@ impl Sandbox { + "--chdir", + "/", + // Make /usr available as read only +- "--ro-bind", ++ "--ro-bind-try", + "/usr", + "/usr", + // Make tmpfs dev available diff --git a/pkgs/by-name/li/libglycin/package.nix b/pkgs/by-name/li/libglycin/package.nix index 324c6ff988d2e..cc2db7bddc8b3 100644 --- a/pkgs/by-name/li/libglycin/package.nix +++ b/pkgs/by-name/li/libglycin/package.nix @@ -79,6 +79,7 @@ stdenv.mkDerivation (finalAttrs: { postPatch = '' patch -p2 < ${finalAttrs.passthru.glycin3PathsPatch} + patch -p2 < ${finalAttrs.passthru.glycin3OptionalUsrPatch} patchShebangs \ build-aux/crates-version.py @@ -120,6 +121,8 @@ stdenv.mkDerivation (finalAttrs: { glycin3PathsPatch = replaceVars ./fix-glycin-3-paths.patch { bwrap = "${bubblewrap}/bin/bwrap"; }; + + glycin3OptionalUsrPatch = ./glycin-3-optional-usr.patch; }; meta = { diff --git a/pkgs/by-name/lo/loupe/package.nix b/pkgs/by-name/lo/loupe/package.nix index 38a902de5a81f..85aab97d44743 100644 --- a/pkgs/by-name/lo/loupe/package.nix +++ b/pkgs/by-name/lo/loupe/package.nix @@ -69,6 +69,7 @@ stdenv.mkDerivation (finalAttrs: { # We should eventually use a cargo vendor patch hook instead pushd ../$(stripHash $cargoDeps)/glycin-3.* patch -p3 < ${libglycin.passthru.glycin3PathsPatch} + patch -p3 < ${libglycin.passthru.glycin3OptionalUsrPatch} popd ''; diff --git a/pkgs/by-name/sn/snapshot/package.nix b/pkgs/by-name/sn/snapshot/package.nix index 8c8a480bfeb1c..f4e0e86222920 100644 --- a/pkgs/by-name/sn/snapshot/package.nix +++ b/pkgs/by-name/sn/snapshot/package.nix @@ -37,6 +37,8 @@ stdenv.mkDerivation (finalAttrs: { patches = [ # Fix paths in glycin library libglycin.passthru.glycin3PathsPatch + # Make /usr optional in glycin library + libglycin.passthru.glycin3OptionalUsrPatch ]; cargoVendorDir = "vendor";