diff options
author | Artturi <Artturin@artturin.com> | 2022-03-15 00:03:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-15 00:03:56 +0200 |
commit | b54e7571e2c1dbad3b2a593ddf778b4447b0815b (patch) | |
tree | 7f93482eb60a7aaaca417b9fb7899c219ee9d593 /pkgs/build-support/build-fhs-userenv | |
parent | 3239fd2b8f728106491154b44625662e10259af2 (diff) | |
parent | 4330797dfb095d59f57bb65f04d4054a53089892 (diff) | |
download | nixpkgs-b54e7571e2c1dbad3b2a593ddf778b4447b0815b.tar nixpkgs-b54e7571e2c1dbad3b2a593ddf778b4447b0815b.tar.gz nixpkgs-b54e7571e2c1dbad3b2a593ddf778b4447b0815b.tar.bz2 nixpkgs-b54e7571e2c1dbad3b2a593ddf778b4447b0815b.tar.lz nixpkgs-b54e7571e2c1dbad3b2a593ddf778b4447b0815b.tar.xz nixpkgs-b54e7571e2c1dbad3b2a593ddf778b4447b0815b.tar.zst nixpkgs-b54e7571e2c1dbad3b2a593ddf778b4447b0815b.zip |
Merge pull request #161739 from Artturin/gsettingsfhsenv
Diffstat (limited to 'pkgs/build-support/build-fhs-userenv')
-rw-r--r-- | pkgs/build-support/build-fhs-userenv/env.nix | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/pkgs/build-support/build-fhs-userenv/env.nix b/pkgs/build-support/build-fhs-userenv/env.nix index abf577baa2d..7251500f76c 100644 --- a/pkgs/build-support/build-fhs-userenv/env.nix +++ b/pkgs/build-support/build-fhs-userenv/env.nix @@ -134,6 +134,32 @@ let paths = [ etcPkg ] ++ 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 { |