diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2014-03-10 20:30:27 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2014-04-02 19:06:41 +0200 |
commit | 1f6a15d7ded115ece48419cb1e642816b2145db5 (patch) | |
tree | 07e603f94e373d26851227995bdc4847db2c09f5 /pkgs | |
parent | 1046b4ccabdef4313520fb41be627232ffa44fc0 (diff) | |
download | nixlib-1f6a15d7ded115ece48419cb1e642816b2145db5.tar nixlib-1f6a15d7ded115ece48419cb1e642816b2145db5.tar.gz nixlib-1f6a15d7ded115ece48419cb1e642816b2145db5.tar.bz2 nixlib-1f6a15d7ded115ece48419cb1e642816b2145db5.tar.lz nixlib-1f6a15d7ded115ece48419cb1e642816b2145db5.tar.xz nixlib-1f6a15d7ded115ece48419cb1e642816b2145db5.tar.zst nixlib-1f6a15d7ded115ece48419cb1e642816b2145db5.zip |
Merge #1901: add preFixupPhases to stdenv; for gsettings
Without this stdenv change it seems difficult to fix some glib's gsettings issues, as the folders in question may (not) be created in installPhase.
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/desktops/gnome-3/core/baobab/default.nix | 15 | ||||
-rw-r--r-- | pkgs/development/libraries/glib/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/libraries/glib/setup-hook.sh | 17 | ||||
-rw-r--r-- | pkgs/stdenv/generic/setup.sh | 2 | ||||
-rwxr-xr-x | pkgs/stdenv/mingw/setup.sh | 2 |
5 files changed, 26 insertions, 12 deletions
diff --git a/pkgs/desktops/gnome-3/core/baobab/default.nix b/pkgs/desktops/gnome-3/core/baobab/default.nix index 07805644d906..5121f1f69bec 100644 --- a/pkgs/desktops/gnome-3/core/baobab/default.nix +++ b/pkgs/desktops/gnome-3/core/baobab/default.nix @@ -1,7 +1,7 @@ { stdenv, intltool, fetchurl, vala, libgtop , pkgconfig, gtk3, glib, hicolor_icon_theme , bash, makeWrapper, itstool, libxml2 -, gnome3, librsvg, gdk_pixbuf }: +, gnome3, librsvg, gdk_pixbuf, file }: stdenv.mkDerivation rec { name = "baobab-3.10.1"; @@ -22,19 +22,14 @@ stdenv.mkDerivation rec { hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ]; buildInputs = [ vala pkgconfig gtk3 glib libgtop intltool itstool libxml2 - gnome3.gsettings_desktop_schemas makeWrapper ]; - - installFlags = "gsettingsschemadir=\${out}/share/baobab/glib-2.0/schemas/"; - - postInstall = '' - wrapProgram "$out/bin/baobab" \ - --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ - --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/baobab:$XDG_ICON_DIRS" - ''; + gnome3.gsettings_desktop_schemas makeWrapper file ]; preFixup = '' rm $out/share/icons/hicolor/icon-theme.cache rm $out/share/icons/HighContrast/icon-theme.cache + wrapProgram "$out/bin/baobab" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" ''; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index af4b152dccee..033a1def3ce7 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -48,6 +48,8 @@ stdenv.mkDerivation rec { sha256 = "1d98mbqjmc34s8095lkw1j1bwvnnkw9581yfvjaikjvfjsaz29qd"; }; + setupHook = ./setup-hook.sh; + buildInputs = [ libelf ] ++ optionals doCheck [ tzdata libxml2 desktop_file_utils shared_mime_info ]; diff --git a/pkgs/development/libraries/glib/setup-hook.sh b/pkgs/development/libraries/glib/setup-hook.sh new file mode 100644 index 000000000000..e5c0c372da00 --- /dev/null +++ b/pkgs/development/libraries/glib/setup-hook.sh @@ -0,0 +1,17 @@ +# Install gschemas, if any, in a package-specific directory +installFlagsArray+=("gsettingsschemadir=$out/gsettings-schemas/$name/glib-2.0/schemas/") + +make_glib_find_gsettings_schemas() { + # For packages that need gschemas of other packages (e.g. empathy) + if [ -d "$1/gsettings-schemas/*/glib-2.0/schemas" ]; then + addToSearchPath GSETTINGS_SCHEMAS_PATH "$1/gsettings-schemas/"* + fi +} + +envHooks+=(make_glib_find_gsettings_schemas) + +glibPreFixupPhase() { + addToSearchPath GSETTINGS_SCHEMAS_PATH "$out/gsettings-schemas/$name" +} + +preFixupPhases="$preFixupPhases glibPreFixupPhase" diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index 4740c6386339..d79131ac0670 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -877,7 +877,7 @@ genericBuild() { if [ -z "$phases" ]; then phases="$prePhases unpackPhase patchPhase $preConfigurePhases \ configurePhase $preBuildPhases buildPhase checkPhase \ - $preInstallPhases installPhase fixupPhase installCheckPhase \ + $preInstallPhases installPhase $preFixupPhases fixupPhase installCheckPhase \ $preDistPhases distPhase $postPhases"; fi diff --git a/pkgs/stdenv/mingw/setup.sh b/pkgs/stdenv/mingw/setup.sh index 592580a829e3..c757eb7ae54c 100755 --- a/pkgs/stdenv/mingw/setup.sh +++ b/pkgs/stdenv/mingw/setup.sh @@ -725,7 +725,7 @@ genericBuild() { if test -z "$phases"; then phases="$prePhases unpackPhase patchPhase $preConfigurePhases \ configurePhase $preBuildPhases buildPhase checkPhase \ - $preInstallPhases installPhase fixupPhase \ + $preInstallPhases installPhase $preFixupPhases fixupPhase \ $preDistPhases distPhase $postPhases"; fi |