summary refs log tree commit diff
path: root/pkgs/build-support/build-fhs-userenv-bubblewrap
diff options
context:
space:
mode:
authorArtturin <Artturin@artturin.com>2022-02-25 01:08:47 +0200
committerArtturin <Artturin@artturin.com>2022-03-03 01:22:09 +0200
commit3e7e6ab84a5a4facdbeea8941af9df471d66c839 (patch)
tree0733863230b289f47d7900e29ec9b26059fe0123 /pkgs/build-support/build-fhs-userenv-bubblewrap
parent800013956d54e37c4803a0e6aa2ed57bf29c107a (diff)
downloadnixpkgs-3e7e6ab84a5a4facdbeea8941af9df471d66c839.tar
nixpkgs-3e7e6ab84a5a4facdbeea8941af9df471d66c839.tar.gz
nixpkgs-3e7e6ab84a5a4facdbeea8941af9df471d66c839.tar.bz2
nixpkgs-3e7e6ab84a5a4facdbeea8941af9df471d66c839.tar.lz
nixpkgs-3e7e6ab84a5a4facdbeea8941af9df471d66c839.tar.xz
nixpkgs-3e7e6ab84a5a4facdbeea8941af9df471d66c839.tar.zst
nixpkgs-3e7e6ab84a5a4facdbeea8941af9df471d66c839.zip
buildFHSUserEnv{Chroot,Bubblewrap}: link gsettings-schemas to the FHS location
We shouldn't need to use wrapGAppsHook in expressions
that use this builder.
Diffstat (limited to 'pkgs/build-support/build-fhs-userenv-bubblewrap')
-rw-r--r--pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix26
1 files changed, 26 insertions, 0 deletions
diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
index 0051961d9f1..c2f3ade6457 100644
--- a/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
+++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
@@ -93,6 +93,32 @@ let
     paths = [ etcPkg ldconfig ] ++ basePkgs ++ targetPaths;
     extraOutputsToInstall = [ "out" "lib" "bin" ] ++ extraOutputsToInstall;
     ignoreCollisions = true;
+    postBuild = ''
+      if [[ -d  $out/share/gsettings-schemas/ ]]; then
+          # Recreate the standard schemas directory if its a symlink to make it writable
+          if [[ -L $out/share/glib-2.0 ]]; then
+              ln -s $(readlink $out/share/glib-2.0) $out/share/glib-2.0.old
+              rm -rf $out/share/glib-2.0
+          fi
+
+          mkdir -p $out/share/glib-2.0/schemas
+
+          # symlink any schema files or overrides to the standard schema directory
+          if [[ -e $out/share/glib-2.0.old/schemas ]]; then
+              ln -fs $out/share/glib-2.0.old/schemas/*.xml $out/share/glib-2.0/schemas
+              ln -fs $out/share/glib-2.0.old/schemas/*.gsettings-schemas.override $out/share/glib-2.0/schemas
+          fi
+
+          for d in $out/share/gsettings-schemas/*; do
+              # Force symlink, in case there are duplicates
+              ln -fs $d/glib-2.0/schemas/*.xml $out/share/glib-2.0/schemas
+              ln -fs $d/glib-2.0/schemas/*.gschema.override $out/share/glib-2.0/schemas
+          done
+
+          # and compile them
+          ${pkgs.glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
+      fi
+    '';
   };
 
   staticUsrProfileMulti = buildEnv {