From 66d76f8b5b9a071bd29fc907a799568cfe3424fc Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 09:23:56 -0600 Subject: [PATCH 01/91] qt54.qtbase: don't rever to .dev outputs at runtime --- pkgs/development/libraries/qt-5/5.4/qtbase/default.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index af9b3feb6df..b22f90d5daf 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -98,8 +98,11 @@ stdenv.mkDerivation { export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$LD_LIBRARY_PATH" export MAKEFLAGS=-j$NIX_BUILD_CORES - export configureFlags+="-plugindir $out/lib/qt5/plugins -importdir $out/lib/qt5/imports -qmldir $out/lib/qt5/qml" - export configureFlags+=" -docdir $out/share/doc/qt5" + configureFlags+=" -plugindir $out/lib/qt5/plugins" + configureFlags+=" -importdir $out/lib/qt5/imports" + configureFlags+=" -qmldir $out/lib/qt5/qml" + configureFlags+=" -docdir $out/share/doc/qt5" + export configureFlags ''; prefixKey = "-prefix "; From c1f0f62a9cf916b579fa7d8be1a98ffd5b266d44 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 09:30:57 -0600 Subject: [PATCH 02/91] qt54.qtbase: don't propagate cups dependency It is not necessary to propagate the cups buildInput if Qt is configured with cups enabled. --- pkgs/development/libraries/qt-5/5.4/qtbase/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index b22f90d5daf..088cf8fd48f 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -188,14 +188,14 @@ stdenv.mkDerivation { # Qt doesn't directly need GLU (just GL), but many apps use, it's small and # doesn't remain a runtime-dep if not used ++ lib.optionals mesaSupported [ mesa mesa_glu ] - ++ lib.optional (cups != null) cups ++ lib.optional (mysql != null) mysql.lib ++ lib.optional (postgresql != null) postgresql ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf]; buildInputs = [ bison flex gperf ruby ] - ++ lib.optional developerBuild gdb; + ++ lib.optional developerBuild gdb + ++ lib.optional (cups != null) cups; nativeBuildInputs = [ python perl pkgconfig ]; From 5fb4e3b3388d124a561ae4943433a691ba198809 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 09:32:11 -0600 Subject: [PATCH 03/91] qt54.qtbase: don't propagate mysql dependency It is not necessary to propagate the mysql buildInput if Qt is configure with MySQL enabled. --- pkgs/development/libraries/qt-5/5.4/qtbase/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index 088cf8fd48f..ab86f95ece9 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -188,14 +188,14 @@ stdenv.mkDerivation { # Qt doesn't directly need GLU (just GL), but many apps use, it's small and # doesn't remain a runtime-dep if not used ++ lib.optionals mesaSupported [ mesa mesa_glu ] - ++ lib.optional (mysql != null) mysql.lib ++ lib.optional (postgresql != null) postgresql ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf]; buildInputs = [ bison flex gperf ruby ] ++ lib.optional developerBuild gdb - ++ lib.optional (cups != null) cups; + ++ lib.optional (cups != null) cups + ++ lib.optional (mysql != null) mysql.lib; nativeBuildInputs = [ python perl pkgconfig ]; From b0753cec2a56e04a5bc834c1b10c41b0ccbc1cd7 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 09:32:55 -0600 Subject: [PATCH 04/91] qt54.qtbase: don't propagate postgresql dependency It is not necessary to propagate the postgresql buildInput if Qt is configured with PostgreSQL enabled. --- pkgs/development/libraries/qt-5/5.4/qtbase/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index ab86f95ece9..4ec93242e1f 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -188,14 +188,14 @@ stdenv.mkDerivation { # Qt doesn't directly need GLU (just GL), but many apps use, it's small and # doesn't remain a runtime-dep if not used ++ lib.optionals mesaSupported [ mesa mesa_glu ] - ++ lib.optional (postgresql != null) postgresql ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf]; buildInputs = [ bison flex gperf ruby ] ++ lib.optional developerBuild gdb ++ lib.optional (cups != null) cups - ++ lib.optional (mysql != null) mysql.lib; + ++ lib.optional (mysql != null) mysql.lib + ++ lib.optional (postgresql != null) postgresql; nativeBuildInputs = [ python perl pkgconfig ]; From a6fd9e9be6754180abc9ec1854b80586e7d66d05 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 09:33:45 -0600 Subject: [PATCH 05/91] qt54.qtbase: don't propagate gtk dependencies It is not necessary to propagate the GTK dependencies if Qt is configured with the GTK Style enabled. --- pkgs/development/libraries/qt-5/5.4/qtbase/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index 4ec93242e1f..e7a1fba9062 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -187,15 +187,15 @@ stdenv.mkDerivation { ] # Qt doesn't directly need GLU (just GL), but many apps use, it's small and # doesn't remain a runtime-dep if not used - ++ lib.optionals mesaSupported [ mesa mesa_glu ] - ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf]; + ++ lib.optionals mesaSupported [ mesa mesa_glu ]; buildInputs = [ bison flex gperf ruby ] ++ lib.optional developerBuild gdb ++ lib.optional (cups != null) cups ++ lib.optional (mysql != null) mysql.lib - ++ lib.optional (postgresql != null) postgresql; + ++ lib.optional (postgresql != null) postgresql + ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf]; nativeBuildInputs = [ python perl pkgconfig ]; From 4ed8d5d1251e63abc44dcfb540a4594268c499f3 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 10:51:22 -0600 Subject: [PATCH 06/91] qt54.qtbase: don't propagate extra Mesa dependency The note accompanying this dependency says "it's small and doesn't remain a runtime-dep if not used," but *neither* of those statements is true. --- pkgs/development/libraries/qt-5/5.4/qtbase/default.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index e7a1fba9062..eabc03b2b32 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -14,7 +14,7 @@ , mysql ? null, postgresql ? null # options -, mesaSupported, mesa, mesa_glu +, mesaSupported, mesa , buildDocs ? false , buildExamples ? false , buildTests ? false @@ -185,9 +185,7 @@ stdenv.mkDerivation { zlib libjpeg libpng libtiff sqlite icu xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon ] - # Qt doesn't directly need GLU (just GL), but many apps use, it's small and - # doesn't remain a runtime-dep if not used - ++ lib.optionals mesaSupported [ mesa mesa_glu ]; + ++ lib.optional mesaSupported mesa; buildInputs = [ bison flex gperf ruby ] From 67d5a026caa2c9153304ba757c0743604fc61450 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 10:53:41 -0600 Subject: [PATCH 07/91] qt54.qtbase: don't propagate makeWrapper dependency I have no idea how it even got here; it's certainly not necessary! --- pkgs/development/libraries/qt-5/5.4/qtbase/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index eabc03b2b32..689ae173794 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -197,8 +197,6 @@ stdenv.mkDerivation { nativeBuildInputs = [ python perl pkgconfig ]; - propagatedNativeBuildInputs = [ makeWrapper ]; - # freetype-2.5.4 changed signedness of some struct fields NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare"; From d8a08fff90890838e5cb07ce97070ecf98560e87 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 12:28:36 -0600 Subject: [PATCH 08/91] qt54: disable documentation The documentation cannot be built as part of the split-module build anyway. After all the modules are built, we could build the documentation as a separate package. --- pkgs/development/libraries/qt-5/5.4/qtbase/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index 689ae173794..5a5cbe8875d 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -15,7 +15,6 @@ # options , mesaSupported, mesa -, buildDocs ? false , buildExamples ? false , buildTests ? false , developerBuild ? false @@ -204,9 +203,6 @@ stdenv.mkDerivation { '' # Don't retain build-time dependencies like gdb and ruby. sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri - '' - + lib.optionalString buildDocs '' - make docs && make install_docs ''; inherit lndir; From 0055c6aa94484ef30d9541c3b21bc2b653561c84 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 15:55:21 -0600 Subject: [PATCH 09/91] qt54: use multiple outputs --- .../libraries/qt-5/5.4/default.nix | 3 + .../libraries/qt-5/5.4/qtbase/default.nix | 37 +++++-- .../libraries/qt-5/5.4/qtbase/setup-hook.sh | 103 ++++++++++++------ 3 files changed, 101 insertions(+), 42 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.4/default.nix b/pkgs/development/libraries/qt-5/5.4/default.nix index 9b1324d1137..d0e09c6b10f 100644 --- a/pkgs/development/libraries/qt-5/5.4/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/default.nix @@ -43,6 +43,9 @@ let dontFixLibtool = args.dontFixLibtool or true; configureScript = args.configureScript or "qmake"; + outputs = args.outputs or [ "dev" "out" ]; + setOutputFlags = false; + enableParallelBuilding = args.enableParallelBuilding or true; meta = { diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index 5a5cbe8875d..e08640ae869 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -36,6 +36,8 @@ stdenv.mkDerivation { sourceRoot = "qt-everywhere-opensource-src-${version}"; + outputs = [ "dev" "out" ]; + postUnpack = '' mv qtbase-opensource-src-${version} ./qt-everywhere-opensource-src-${version}/qtbase ''; @@ -93,15 +95,34 @@ stdenv.mkDerivation { --replace "@mesa_inc@" "${mesa.dev}" ''; + setOutputFlags = false; preConfigure = '' export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$LD_LIBRARY_PATH" export MAKEFLAGS=-j$NIX_BUILD_CORES - configureFlags+=" -plugindir $out/lib/qt5/plugins" - configureFlags+=" -importdir $out/lib/qt5/imports" - configureFlags+=" -qmldir $out/lib/qt5/qml" - configureFlags+=" -docdir $out/share/doc/qt5" - export configureFlags + _multioutQtDevs() { + # We cannot simply set these paths in configureFlags because libQtCore retains + # references to the paths it was built with. + moveToOutput "bin" "$dev" + moveToOutput "include" "$dev" + moveToOutput "mkspecs" "$dev" + + # The destination directory must exist or moveToOutput will do nothing + mkdir -p "$dev/share" + moveToOutput "share/doc" "$dev" + + mkdir -p "$dev/lib" + lndir -silent "$out/lib" "$dev/lib" + if [[ -h "$dev/lib/cmake" ]]; then rm "$dev/lib/cmake"; fi + if [[ -h "$dev/lib/pkgconfig" ]]; then rm "$dev/lib/pkgconfig"; fi + } + preFixupHooks+=(_multioutQtDevs) + + configureFlags+="\ + -plugindir $out/lib/qt5/plugins \ + -importdir $out/lib/qt5/imports \ + -qmldir $out/lib/qt5/qml \ + -docdir $out/share/doc/qt5" ''; prefixKey = "-prefix "; @@ -194,15 +215,15 @@ stdenv.mkDerivation { ++ lib.optional (postgresql != null) postgresql ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf]; - nativeBuildInputs = [ python perl pkgconfig ]; + nativeBuildInputs = [ lndir python perl pkgconfig ]; # freetype-2.5.4 changed signedness of some struct fields NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare"; - postInstall = + postFixup = '' # Don't retain build-time dependencies like gdb and ruby. - sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri + sed '/QMAKE_DEFAULT_.*DIRS/ d' -i "$dev/mkspecs/qconfig.pri" ''; inherit lndir; diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh b/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh index b86b6df28ac..c44cd2234d7 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/setup-hook.sh @@ -1,45 +1,26 @@ if [[ -z "$QMAKE" ]]; then -linkDependencyDir() { +_qtLinkDependencyDir() { @lndir@/bin/lndir -silent "$1/$2" "$qtOut/$2" if [[ -n "$NIX_QT_SUBMODULE" ]]; then find "$1/$2" -printf "$2/%P\n" >> "$out/nix-support/qt-inputs" fi } -addQtModule() { - if [[ -d "$1/mkspecs" ]]; then +_qtLinkModule() { + if [ -d "$1/mkspecs" ]; then # $1 is a Qt module - linkDependencyDir "$1" mkspecs + _qtLinkDependencyDir "$1" mkspecs for dir in bin include lib share; do - if [[ -d "$1/$dir" ]]; then - linkDependencyDir "$1" "$dir" + if [ -d "$1/$dir" ]; then + _qtLinkDependencyDir "$1" "$dir" fi done fi } -propagateRuntimeDeps() { - local propagated - for dir in "etc/xdg" "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports" "share"; do - if [[ -d "$1/$dir" ]]; then - propagated= - for pkg in $propagatedBuildInputs; do - if [[ "z$pkg" == "z$1" ]]; then - propagated=1 - break - fi - done - if [[ -z $propagated ]]; then - propagatedBuildInputs="$propagatedBuildInputs $1" - fi - break - fi - done -} - -rmQtModules() { +_qtRmModules() { cat "$out/nix-support/qt-inputs" | while read file; do if [[ -h "$out/$file" ]]; then rm "$out/$file" @@ -55,14 +36,65 @@ rmQtModules() { rm "$out/nix-support/qt-inputs" } -rmQMake() { +addToSearchPathOnceWithCustomDelimiter() { + local delim="$1" + local search="$2" + local target="$3" + local dirs + local exported + IFS="$delim" read -a dirs <<< "${!search}" + for dir in ${dirs[@]}; do + if [ "z$dir" == "z$target" ]; then exported=1; fi + done + if [ -z $exported ]; then + eval "export ${search}=\"${!search}${!search:+$delim}$target\"" + fi +} + +addToSearchPathOnce() { + addToSearchPathOnceWithCustomDelimiter ':' "$@" +} + +propagateOnce() { + addToSearchPathOnceWithCustomDelimiter ' ' "$@" +} + +_qtPropagateRuntimeDependencies() { + for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do + if [ -d "$1/$dir" ]; then + propagateOnce propagatedBuildInputs "$1" + break + fi + done + addToSearchPathOnce QT_PLUGIN_PATH "$1/lib/qt5/plugins" + addToSearchPathOnce QML_IMPORT_PATH "$1/lib/qt5/imports" + addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml" +} + +_qtRmQmake() { rm "$qtOut/bin/qmake" "$qtOut/bin/qt.conf" } -setQMakePath() { +_qtSetQmakePath() { export PATH="$qtOut/bin${PATH:+:}$PATH" } +_qtMultioutModuleDevs() { + # We cannot simply set these paths in configureFlags because libQtCore retains + # references to the paths it was built with. + moveToOutput "bin" "${!outputDev}" + moveToOutput "include" "${!outputDev}" + + # The destination directory must exist or moveToOutput will do nothing + mkdir -p "${!outputDev}/share" + moveToOutput "share/doc" "${!outputDev}" +} + +_qtMultioutDevs() { + # This is necessary whether the package is a Qt module or not + moveToOutput "mkspecs" "${!outputDev}" +} + qtOut="" if [[ -z "$NIX_QT_SUBMODULE" ]]; then qtOut=`mktemp -d` @@ -72,7 +104,7 @@ fi mkdir -p "$qtOut/bin" "$qtOut/mkspecs" "$qtOut/include" "$qtOut/nix-support" "$qtOut/lib" "$qtOut/share" -cp "@out@/bin/qmake" "$qtOut/bin" +cp "@dev@/bin/qmake" "$qtOut/bin" cat >"$qtOut/bin/qt.conf" < Date: Sat, 23 Jan 2016 15:56:46 -0600 Subject: [PATCH 10/91] qt55.qtbase: don't refer to .dev outputs at runtime --- pkgs/development/libraries/qt-5/5.5/qtbase/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index 73fe320769c..65afcb4119e 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -83,7 +83,7 @@ stdenv.mkDerivation { --replace "@gtk@" "${gtk.out}" \ --replace "@gnome_vfs@" "${gnome_vfs.out}" \ --replace "@libgnomeui@" "${libgnomeui.out}" \ - --replace "@gconf@" "${GConf}" + --replace "@gconf@" "${GConf.out}" '' + lib.optionalString mesaSupported '' substituteInPlace \ From 5337a2a4b33027e157e6d5d575e614038554bdf0 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 15:57:28 -0600 Subject: [PATCH 11/91] qt55.qtbase: don't propagate cups dependency --- pkgs/development/libraries/qt-5/5.5/qtbase/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index 65afcb4119e..212db01ea01 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -185,14 +185,14 @@ stdenv.mkDerivation { # Qt doesn't directly need GLU (just GL), but many apps use, it's small and # doesn't remain a runtime-dep if not used ++ lib.optionals mesaSupported [ mesa mesa_glu ] - ++ lib.optional (cups != null) cups ++ lib.optional (mysql != null) mysql.lib ++ lib.optional (postgresql != null) postgresql ++ lib.optionals gtkStyle [gnome_vfs.out libgnomeui.out gtk GConf]; buildInputs = [ bison flex gperf ruby ] - ++ lib.optional developerBuild gdb; + ++ lib.optional developerBuild gdb + ++ lib.optional (cups != null) cups; nativeBuildInputs = [ python perl pkgconfig ]; From d5d75546397c03959cf5231786f16bb81a64cf39 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 15:58:00 -0600 Subject: [PATCH 12/91] qt55.qtbase: don't propagate mysql dependency --- pkgs/development/libraries/qt-5/5.5/qtbase/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index 212db01ea01..b7a6203aeb9 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -185,14 +185,14 @@ stdenv.mkDerivation { # Qt doesn't directly need GLU (just GL), but many apps use, it's small and # doesn't remain a runtime-dep if not used ++ lib.optionals mesaSupported [ mesa mesa_glu ] - ++ lib.optional (mysql != null) mysql.lib ++ lib.optional (postgresql != null) postgresql ++ lib.optionals gtkStyle [gnome_vfs.out libgnomeui.out gtk GConf]; buildInputs = [ bison flex gperf ruby ] ++ lib.optional developerBuild gdb - ++ lib.optional (cups != null) cups; + ++ lib.optional (cups != null) cups + ++ lib.optional (mysql != null) mysql.lib; nativeBuildInputs = [ python perl pkgconfig ]; From 4b844747a27bc0522a19f91b10a0c0326eaeaaca Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 15:58:25 -0600 Subject: [PATCH 13/91] qt55.qtbase: don't propagate postgresql dependency --- pkgs/development/libraries/qt-5/5.5/qtbase/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index b7a6203aeb9..91de7b76929 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -185,14 +185,14 @@ stdenv.mkDerivation { # Qt doesn't directly need GLU (just GL), but many apps use, it's small and # doesn't remain a runtime-dep if not used ++ lib.optionals mesaSupported [ mesa mesa_glu ] - ++ lib.optional (postgresql != null) postgresql ++ lib.optionals gtkStyle [gnome_vfs.out libgnomeui.out gtk GConf]; buildInputs = [ bison flex gperf ruby ] ++ lib.optional developerBuild gdb ++ lib.optional (cups != null) cups - ++ lib.optional (mysql != null) mysql.lib; + ++ lib.optional (mysql != null) mysql.lib + ++ lib.optional (postgresql != null) postgresql; nativeBuildInputs = [ python perl pkgconfig ]; From e64822b87dac14fdab96b31d110127d7270b5adf Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 15:59:03 -0600 Subject: [PATCH 14/91] qt55.qtbase: don't propagate gtk dependencies --- pkgs/development/libraries/qt-5/5.5/qtbase/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index 91de7b76929..18f04d4199d 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -184,15 +184,15 @@ stdenv.mkDerivation { ] # Qt doesn't directly need GLU (just GL), but many apps use, it's small and # doesn't remain a runtime-dep if not used - ++ lib.optionals mesaSupported [ mesa mesa_glu ] - ++ lib.optionals gtkStyle [gnome_vfs.out libgnomeui.out gtk GConf]; + ++ lib.optionals mesaSupported [ mesa mesa_glu ]; buildInputs = [ bison flex gperf ruby ] ++ lib.optional developerBuild gdb ++ lib.optional (cups != null) cups ++ lib.optional (mysql != null) mysql.lib - ++ lib.optional (postgresql != null) postgresql; + ++ lib.optional (postgresql != null) postgresql + ++ lib.optionals gtkStyle [gnome_vfs.out libgnomeui.out gtk GConf]; nativeBuildInputs = [ python perl pkgconfig ]; From 302450dbfe810cc00f55b447621a0f0ce8d90043 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 15:59:32 -0600 Subject: [PATCH 15/91] qt55.qtbase: don't propagate extra Mesa dependency --- pkgs/development/libraries/qt-5/5.5/qtbase/default.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index 18f04d4199d..755c9d92fb5 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -14,7 +14,7 @@ , mysql ? null, postgresql ? null # options -, mesaSupported, mesa, mesa_glu +, mesaSupported, mesa , buildDocs ? false , buildExamples ? false , buildTests ? false @@ -182,9 +182,7 @@ stdenv.mkDerivation { zlib libjpeg libpng libtiff sqlite icu xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon ] - # Qt doesn't directly need GLU (just GL), but many apps use, it's small and - # doesn't remain a runtime-dep if not used - ++ lib.optionals mesaSupported [ mesa mesa_glu ]; + ++ lib.optional mesaSupported mesa; buildInputs = [ bison flex gperf ruby ] From 3cfb552bbce40a275348d3ba70d0f08b21b0c71f Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 15:59:52 -0600 Subject: [PATCH 16/91] qt55.qtbase: don't depend on makeWrapper --- pkgs/development/libraries/qt-5/5.5/qtbase/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index 755c9d92fb5..f039973a9b9 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -194,8 +194,6 @@ stdenv.mkDerivation { nativeBuildInputs = [ python perl pkgconfig ]; - propagatedNativeBuildInputs = [ makeWrapper ]; - # freetype-2.5.4 changed signedness of some struct fields NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare"; From db69888a02a85f98aafad2654c1c21072a4d3a4e Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 16:00:20 -0600 Subject: [PATCH 17/91] qt55.qtbase: disable documentation The documentation cannot be built as part of the split-module build anyway. After all the modules are built, we could build the documentation as a separate package. --- pkgs/development/libraries/qt-5/5.5/qtbase/default.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index f039973a9b9..ef6e0620bca 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -15,7 +15,6 @@ # options , mesaSupported, mesa -, buildDocs ? false , buildExamples ? false , buildTests ? false , developerBuild ? false @@ -201,9 +200,6 @@ stdenv.mkDerivation { '' # Don't retain build-time dependencies like gdb and ruby. sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri - '' - + lib.optionalString buildDocs '' - make docs && make install_docs ''; inherit lndir; From 74121e07a74857667b58c6db5af99ef613679fb2 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sat, 23 Jan 2016 16:02:20 -0600 Subject: [PATCH 18/91] qt55: use multiple outputs --- .../libraries/qt-5/5.5/default.nix | 3 ++ .../libraries/qt-5/5.5/qtbase/default.nix | 34 ++++++++++++++++--- .../libraries/qt-5/5.5/qtbase/setup-hook.sh | 27 ++++++++++++--- 3 files changed, 55 insertions(+), 9 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix index 9b1324d1137..d0e09c6b10f 100644 --- a/pkgs/development/libraries/qt-5/5.5/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/default.nix @@ -43,6 +43,9 @@ let dontFixLibtool = args.dontFixLibtool or true; configureScript = args.configureScript or "qmake"; + outputs = args.outputs or [ "dev" "out" ]; + setOutputFlags = false; + enableParallelBuilding = args.enableParallelBuilding or true; meta = { diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index ef6e0620bca..82064831653 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -36,6 +36,8 @@ stdenv.mkDerivation { sourceRoot = "qt-everywhere-opensource-src-${version}"; + outputs = [ "dev" "out" ]; + postUnpack = '' mv qtbase-opensource-src-${version} ./qt-everywhere-opensource-src-${version}/qtbase ''; @@ -93,12 +95,34 @@ stdenv.mkDerivation { --replace "@mesa_inc@" "${mesa.dev}" ''; + setOutputFlags = false; preConfigure = '' export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$LD_LIBRARY_PATH" export MAKEFLAGS=-j$NIX_BUILD_CORES - export configureFlags+="-plugindir $out/lib/qt5/plugins -importdir $out/lib/qt5/imports -qmldir $out/lib/qt5/qml" - export configureFlags+=" -docdir $out/share/doc/qt5" + _multioutQtDevs() { + # We cannot simply set these paths in configureFlags because libQtCore retains + # references to the paths it was built with. + moveToOutput "bin" "$dev" + moveToOutput "include" "$dev" + moveToOutput "mkspecs" "$dev" + + # The destination directory must exist or moveToOutput will do nothing + mkdir -p "$dev/share" + moveToOutput "share/doc" "$dev" + + mkdir -p "$dev/lib" + lndir -silent "$out/lib" "$dev/lib" + if [[ -h "$dev/lib/cmake" ]]; then rm "$dev/lib/cmake"; fi + if [[ -h "$dev/lib/pkgconfig" ]]; then rm "$dev/lib/pkgconfig"; fi + } + preFixupHooks+=(_multioutQtDevs) + + configureFlags+="\ + -plugindir $out/lib/qt5/plugins \ + -importdir $out/lib/qt5/imports \ + -qmldir $out/lib/qt5/qml \ + -docdir $out/share/doc/qt5" ''; prefixKey = "-prefix "; @@ -191,15 +215,15 @@ stdenv.mkDerivation { ++ lib.optional (postgresql != null) postgresql ++ lib.optionals gtkStyle [gnome_vfs.out libgnomeui.out gtk GConf]; - nativeBuildInputs = [ python perl pkgconfig ]; + nativeBuildInputs = [ lndir python perl pkgconfig ]; # freetype-2.5.4 changed signedness of some struct fields NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare"; - postInstall = + postFixup = '' # Don't retain build-time dependencies like gdb and ruby. - sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri + sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $dev/mkspecs/qconfig.pri ''; inherit lndir; diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh b/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh index b86b6df28ac..59e04a3561e 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh @@ -63,6 +63,22 @@ setQMakePath() { export PATH="$qtOut/bin${PATH:+:}$PATH" } +_multioutQtModuleDevs() { + # We cannot simply set these paths in configureFlags because libQtCore retains + # references to the paths it was built with. + moveToOutput "bin" "${!outputDev}" + moveToOutput "include" "${!outputDev}" + + # The destination directory must exist or moveToOutput will do nothing + mkdir -p "${!outputDev}/share" + moveToOutput "share/doc" "${!outputDev}" +} + +_multioutQtDevs() { + # This is necessary whether the package is a Qt module or not + moveToOutput "mkspecs" "${!outputDev}" +} + qtOut="" if [[ -z "$NIX_QT_SUBMODULE" ]]; then qtOut=`mktemp -d` @@ -72,7 +88,7 @@ fi mkdir -p "$qtOut/bin" "$qtOut/mkspecs" "$qtOut/include" "$qtOut/nix-support" "$qtOut/lib" "$qtOut/share" -cp "@out@/bin/qmake" "$qtOut/bin" +cp "@dev@/bin/qmake" "$qtOut/bin" cat >"$qtOut/bin/qt.conf" < Date: Sun, 24 Jan 2016 11:06:40 -0600 Subject: [PATCH 19/91] qt55.qtbase: use -system-harfbuzz --- pkgs/development/libraries/qt-5/5.5/default.nix | 1 + .../libraries/qt-5/5.5/qtbase/default.nix | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix index d0e09c6b10f..4ace2495659 100644 --- a/pkgs/development/libraries/qt-5/5.5/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/default.nix @@ -64,6 +64,7 @@ let qtbase = callPackage ./qtbase { mesa = pkgs.mesa_noglu; + harfbuzz = pkgs.harfbuzz-icu; cups = if stdenv.isLinux then pkgs.cups else null; # GNOME dependencies are not used unless gtkStyle == true inherit (pkgs.gnome) libgnomeui GConf gnome_vfs; diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index 82064831653..c9d5d1a170e 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -3,7 +3,8 @@ , xlibs, libX11, libxcb, libXcursor, libXext, libXrender, libXi , xcbutil, xcbutilimage, xcbutilkeysyms, xcbutilwm, libxkbcommon -, fontconfig, freetype, openssl, dbus, glib, udev, libxml2, libxslt, pcre +, fontconfig, freetype, harfbuzz +, openssl, dbus, glib, udev, libxml2, libxslt, pcre , zlib, libjpeg, libpng, libtiff, sqlite, icu , coreutils, bison, flex, gdb, gperf, lndir, ruby @@ -177,6 +178,7 @@ stdenv.mkDerivation { -no-mips_dspr2 -system-zlib + -system-harfbuzz -system-libpng -system-libjpeg -system-xcb @@ -200,9 +202,16 @@ stdenv.mkDerivation { PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql.lib}/lib -lpq"; propagatedBuildInputs = [ + dbus glib libxml2 libxslt openssl pcre sqlite udev zlib + + # Image formats + libjpeg libpng libtiff + + # Text rendering + fontconfig freetype harfbuzz icu + + # X11 libs xlibs.libXcomposite libX11 libxcb libXext libXrender libXi - fontconfig freetype openssl dbus glib udev libxml2 libxslt pcre - zlib libjpeg libpng libtiff sqlite icu xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon ] ++ lib.optional mesaSupported mesa; From 9adcd6f78c36163731b480b1be368defccc3e47a Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 11:08:00 -0600 Subject: [PATCH 20/91] qt55: update homepage --- pkgs/development/libraries/qt-5/5.5/default.nix | 2 +- pkgs/development/libraries/qt-5/5.5/qtbase/default.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix index 4ace2495659..5f631357b5b 100644 --- a/pkgs/development/libraries/qt-5/5.5/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/default.nix @@ -49,7 +49,7 @@ let enableParallelBuilding = args.enableParallelBuilding or true; meta = { - homepage = http://qt-project.org; + homepage = http://www.qt.io; description = "A cross-platform application framework for C++"; license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; maintainers = with maintainers; [ bbenoist qknight ttuegel ]; diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index c9d5d1a170e..092f72264c3 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -241,7 +241,7 @@ stdenv.mkDerivation { enableParallelBuilding = true; meta = with lib; { - homepage = http://qt-project.org; + homepage = http://www.qt.io; description = "A cross-platform application framework for C++"; license = "GPL/LGPL"; maintainers = with maintainers; [ bbenoist qknight ttuegel ]; From a6c9a6f5bff3835ceb1d201e7904c83c9736f15d Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 11:08:43 -0600 Subject: [PATCH 21/91] qt55.qtbase: set licenses correctly --- pkgs/development/libraries/qt-5/5.5/default.nix | 12 ++++-------- .../libraries/qt-5/5.5/qtbase/default.nix | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix index 5f631357b5b..ae98c2c4b1f 100644 --- a/pkgs/development/libraries/qt-5/5.5/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/default.nix @@ -48,13 +48,7 @@ let enableParallelBuilding = args.enableParallelBuilding or true; - meta = { - homepage = http://www.qt.io; - description = "A cross-platform application framework for C++"; - license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; - maintainers = with maintainers; [ bbenoist qknight ttuegel ]; - platforms = platforms.linux; - } // (args.meta or {}); + meta = self.qtbase.meta // (args.meta or {}); }); addPackages = self: with self; @@ -117,4 +111,6 @@ let }; -in makeScope pkgs.newScope addPackages + self = makeScope pkgs.newScope addPackages; + +in self diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index 092f72264c3..5b0ced23028 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -243,7 +243,7 @@ stdenv.mkDerivation { meta = with lib; { homepage = http://www.qt.io; description = "A cross-platform application framework for C++"; - license = "GPL/LGPL"; + license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; maintainers = with maintainers; [ bbenoist qknight ttuegel ]; platforms = platforms.linux; }; From 4465f438dee7bb766f97a9eb0f328fff87a2365b Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 11:15:20 -0600 Subject: [PATCH 22/91] qt55: improve update documentation --- .../libraries/qt-5/5.5/default.nix | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix index ae98c2c4b1f..9863683840c 100644 --- a/pkgs/development/libraries/qt-5/5.5/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/default.nix @@ -1,15 +1,20 @@ -# Maintainer's Notes: -# -# Minor updates: -# 1. Edit ./fetchsrcs.sh to point to the updated URL. -# 2. Run ./fetchsrcs.sh. -# 3. Build and enjoy. -# -# Major updates: -# We prefer not to immediately overwrite older versions with major updates, so -# make a copy of this directory first. After copying, be sure to delete ./tmp -# if it exists. Then follow the minor update instructions. Be sure to check if -# any new components have been added and package them as necessary. +/* + +# Minor Updates + +1. Edit ./fetchsrcs.sh to point to the updated URL. +2. Run ./fetchsrcs.sh. +3. Build and enjoy. + +# Major Updates + +1. Make a copy of this directory. (We like to keep the old version around + for a short time after major updates.) +2. Delete the tmp/ subdirectory of the copy. +3. Follow the minor update instructions above. +4. Package any new Qt modules, if necessary. + +*/ { pkgs From 1087020a468f441bcc99b0e608cb642e58e5903b Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 12:18:56 -0600 Subject: [PATCH 23/91] cmake: invoke configure hooks correctly Otherwise, the multiple-outputs hooks will not fire correctly. --- pkgs/development/tools/build-managers/cmake/setup-hook.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh index 670376efdca..c4684e0376c 100755 --- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh +++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh @@ -13,7 +13,7 @@ fixCmakeFiles() { } cmakeConfigurePhase() { - eval "$preConfigure" + runHook preConfigure if [ -z "$dontFixCmake" ]; then fixCmakeFiles . @@ -53,7 +53,7 @@ cmakeConfigurePhase() { cmake ${cmakeDir:-.} $cmakeFlags "${cmakeFlagsArray[@]}" - eval "$postConfigure" + runHook postConfigure } if [ -z "$dontUseCmakeConfigure" -a -z "$configurePhase" ]; then From a714284d8b7d2dac3ed2c76670f290fe332da00c Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 12:20:39 -0600 Subject: [PATCH 24/91] cmake: don't set incompatible flags for multiple outputs --- pkgs/development/tools/build-managers/cmake/setup-hook.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/pkgs/development/tools/build-managers/cmake/setup-hook.sh index c4684e0376c..b14e9984bc3 100755 --- a/pkgs/development/tools/build-managers/cmake/setup-hook.sh +++ b/pkgs/development/tools/build-managers/cmake/setup-hook.sh @@ -57,6 +57,7 @@ cmakeConfigurePhase() { } if [ -z "$dontUseCmakeConfigure" -a -z "$configurePhase" ]; then + setOutputFlags= configurePhase=cmakeConfigurePhase fi From a27a4c29ad87fc0a8745fc89927d0d98a9055a08 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 12:38:16 -0600 Subject: [PATCH 25/91] extra-cmake-modules: use multiple outputs --- .../0001-extra-cmake-modules-paths.patch | 74 ------------------- .../extra-cmake-modules/default.nix | 12 +-- .../extra-cmake-modules/nix-lib-path.patch | 37 ++++++++++ .../extra-cmake-modules/series | 1 + .../extra-cmake-modules/setup-hook.sh | 44 +++++++++++ 5 files changed, 89 insertions(+), 79 deletions(-) delete mode 100644 pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/0001-extra-cmake-modules-paths.patch create mode 100644 pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/nix-lib-path.patch create mode 100644 pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/series diff --git a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/0001-extra-cmake-modules-paths.patch b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/0001-extra-cmake-modules-paths.patch deleted file mode 100644 index 9717716faf5..00000000000 --- a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/0001-extra-cmake-modules-paths.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 3cc148e878b69fc3e0228f3e3bf1bbe689dad87c Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel -Date: Fri, 20 Feb 2015 23:17:39 -0600 -Subject: [PATCH] extra-cmake-modules paths - ---- - kde-modules/KDEInstallDirs.cmake | 37 ++++--------------------------------- - 1 file changed, 4 insertions(+), 33 deletions(-) - -diff --git a/kde-modules/KDEInstallDirs.cmake b/kde-modules/KDEInstallDirs.cmake -index b7cd34d..2f868ac 100644 ---- a/kde-modules/KDEInstallDirs.cmake -+++ b/kde-modules/KDEInstallDirs.cmake -@@ -193,37 +193,8 @@ - # (To distribute this file outside of extra-cmake-modules, substitute the full - # License text for the above reference.) - --# Figure out what the default install directory for libraries should be. --# This is based on the logic in GNUInstallDirs, but simplified (the --# GNUInstallDirs code deals with re-configuring, but that is dealt with --# by the _define_* macros in this module). -+# The default library directory on NixOS is *always* /lib. - set(_LIBDIR_DEFAULT "lib") --# Override this default 'lib' with 'lib64' iff: --# - we are on a Linux, kFreeBSD or Hurd system but NOT cross-compiling --# - we are NOT on debian --# - we are on a 64 bits system --# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf --# For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if --# CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu" --# See http://wiki.debian.org/Multiarch --if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU") -- AND NOT CMAKE_CROSSCOMPILING) -- if (EXISTS "/etc/debian_version") # is this a debian system ? -- if(CMAKE_LIBRARY_ARCHITECTURE) -- set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}") -- endif() -- else() # not debian, rely on CMAKE_SIZEOF_VOID_P: -- if(NOT DEFINED CMAKE_SIZEOF_VOID_P) -- message(AUTHOR_WARNING -- "Unable to determine default LIB_INSTALL_LIBDIR directory because no target architecture is known. " -- "Please enable at least one language before including KDEInstallDirs.") -- else() -- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") -- set(_LIBDIR_DEFAULT "lib64") -- endif() -- endif() -- endif() --endif() - - set(_gnu_install_dirs_vars - BINDIR -@@ -445,15 +416,15 @@ if(KDE_INSTALL_USE_QT_SYS_PATHS) - "QtQuick2 imports" - QML_INSTALL_DIR) - else() -- _define_relative(QTPLUGINDIR LIBDIR "plugins" -+ _define_relative(QTPLUGINDIR LIBDIR "qt5/plugins" - "Qt plugins" - QT_PLUGIN_INSTALL_DIR) - -- _define_relative(QTQUICKIMPORTSDIR QTPLUGINDIR "imports" -+ _define_relative(QTQUICKIMPORTSDIR QTPLUGINDIR "qt5/imports" - "QtQuick1 imports" - IMPORTS_INSTALL_DIR) - -- _define_relative(QMLDIR LIBDIR "qml" -+ _define_relative(QMLDIR LIBDIR "qt5/qml" - "QtQuick2 imports" - QML_INSTALL_DIR) - endif() --- -2.3.0 - diff --git a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/default.nix index 4e1b1aff3bd..1c2ea70442d 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/default.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/default.nix @@ -1,9 +1,11 @@ -{ kdeFramework, lib, stdenv, cmake, pkgconfig, qttools }: +{ kdeFramework, lib, copyPathsToStore, cmake, pkgconfig, qttools }: kdeFramework { name = "extra-cmake-modules"; - patches = [ ./0001-extra-cmake-modules-paths.patch ]; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + + outputs = [ "out" ]; # this package has no runtime components setupHook = ./setup-hook.sh; # It is OK to propagate these inputs as long as @@ -11,8 +13,8 @@ kdeFramework { # of some other derivation. propagatedNativeBuildInputs = [ cmake pkgconfig qttools ]; - meta = { - license = stdenv.lib.licenses.bsd2; - maintainers = [ lib.maintainers.ttuegel ]; + meta = with lib; { + license = licenses.bsd2; + maintainers = [ maintainers.ttuegel ]; }; } diff --git a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/nix-lib-path.patch b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/nix-lib-path.patch new file mode 100644 index 00000000000..a74340a6dc9 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/nix-lib-path.patch @@ -0,0 +1,37 @@ +Index: extra-cmake-modules-5.18.0/kde-modules/KDEInstallDirs.cmake +=================================================================== +--- extra-cmake-modules-5.18.0.orig/kde-modules/KDEInstallDirs.cmake ++++ extra-cmake-modules-5.18.0/kde-modules/KDEInstallDirs.cmake +@@ -200,32 +200,6 @@ + # GNUInstallDirs code deals with re-configuring, but that is dealt with + # by the _define_* macros in this module). + set(_LIBDIR_DEFAULT "lib") +-# Override this default 'lib' with 'lib64' iff: +-# - we are on a Linux, kFreeBSD or Hurd system but NOT cross-compiling +-# - we are NOT on debian +-# - we are on a 64 bits system +-# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf +-# For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if +-# CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu" +-# See http://wiki.debian.org/Multiarch +-if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU") +- AND NOT CMAKE_CROSSCOMPILING) +- if (EXISTS "/etc/debian_version") # is this a debian system ? +- if(CMAKE_LIBRARY_ARCHITECTURE) +- set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}") +- endif() +- else() # not debian, rely on CMAKE_SIZEOF_VOID_P: +- if(NOT DEFINED CMAKE_SIZEOF_VOID_P) +- message(AUTHOR_WARNING +- "Unable to determine default LIB_INSTALL_LIBDIR directory because no target architecture is known. " +- "Please enable at least one language before including KDEInstallDirs.") +- else() +- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") +- set(_LIBDIR_DEFAULT "lib64") +- endif() +- endif() +- endif() +-endif() + + set(_gnu_install_dirs_vars + BINDIR diff --git a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/series b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/series new file mode 100644 index 00000000000..b4569e50a5f --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/series @@ -0,0 +1 @@ +nix-lib-path.patch diff --git a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh index a6fa6189240..ee26f75cf5f 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh +++ b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh @@ -24,4 +24,48 @@ addMimePkg() { fi } +_ecmConfig() { + # Because we need to use absolute paths here, we must set *all* the paths. + cmakeFlags+=" -DKDE_INSTALL_EXECROOTDIR=${!outputBin}" + cmakeFlags+=" -DKDE_INSTALL_BINDIR=${!outputBin}/bin" + cmakeFlags+=" -DKDE_INSTALL_SBINDIR=${!outputBin}/sbin" + cmakeFlags+=" -DKDE_INSTALL_LIBDIR=${!outputLib}/lib" + cmakeFlags+=" -DKDE_INSTALL_LIBEXECDIR=${!outputLib}/lib/libexec" + cmakeFlags+=" -DKDE_INSTALL_CMAKEPACKAGEDIR=${!outputDev}/lib/cmake" + cmakeFlags+=" -DKDE_INSTALL_QTPLUGINDIR=${!outputLib}/lib/qt5/plugins" + cmakeFlags+=" -DKDE_INSTALL_PLUGINDIR=${!outputLib}/lib/qt5/plugins" + cmakeFlags+=" -DKDE_INSTALL_QTQUICKIMPORTSDIR=${!outputLib}/lib/qt5/imports" + cmakeFlags+=" -DKDE_INSTALL_QMLDIR=${!outputLib}/lib/qt5/qml" + cmakeFlags+=" -DKDE_INSTALL_INCLUDEDIR=${!outputInclude}/include" + cmakeFlags+=" -DKDE_INSTALL_LOCALSTATEDIR=/var" + cmakeFlags+=" -DKDE_INSTALL_DATAROOTDIR=${!outputLib}/share" + cmakeFlags+=" -DKDE_INSTALL_DATADIR=${!outputLib}/share" + cmakeFlags+=" -DKDE_INSTALL_DOCBUNDLEDIR=${!outputLib}/share/doc/HTML" + cmakeFlags+=" -DKDE_INSTALL_KCFGDIR=${!outputLib}/share/config.kcfg" + cmakeFlags+=" -DKDE_INSTALL_KCONFUPDATEDIR=${!outputLib}/share/kconf_update" + cmakeFlags+=" -DKDE_INSTALL_KSERVICES5DIR=${!outputLib}/share/kservices5" + cmakeFlags+=" -DKDE_INSTALL_KSERVICETYPES5DIR=${!outputLib}/share/kservicetypes5" + cmakeFlags+=" -DKDE_INSTALL_KXMLGUI5DIR=${!outputLib}/share/kxmlgui5" + cmakeFlags+=" -DKDE_INSTALL_KNOTIFY5RCDIR=${!outputLib}/share/knotifications5" + cmakeFlags+=" -DKDE_INSTALL_ICONDIR=${!outputLib}/share/icons" + cmakeFlags+=" -DKDE_INSTALL_LOCALEDIR=${!outputLib}/share/locale" + cmakeFlags+=" -DKDE_INSTALL_SOUNDDIR=${!outputLib}/share/sounds" + cmakeFlags+=" -DKDE_INSTALL_TEMPLATEDIR=${!outputLib}/share/templates" + cmakeFlags+=" -DKDE_INSTALL_WALLPAPERDIR=${!outputLib}/share/wallpapers" + cmakeFlags+=" -DKDE_INSTALL_APPDIR=${!outputLib}/share/applications" + cmakeFlags+=" -DKDE_INSTALL_DESKTOPDIR=${!outputLib}/share/desktop-directories" + cmakeFlags+=" -DKDE_INSTALL_MIMEDIR=${!outputLib}/share/mime/packages" + cmakeFlags+=" -DKDE_INSTALL_METAINFODIR=${!outputLib}/share/appdata" + cmakeFlags+=" -DKDE_INSTALL_MANDIR=${!outputLib}/share/man" + cmakeFlags+=" -DKDE_INSTALL_INFODIR=${!outputLib}/share/info" + cmakeFlags+=" -DKDE_INSTALL_DBUSDIR=${!outputLib}/share/dbus-1" + cmakeFlags+=" -DKDE_INSTALL_DBUSINTERFACEDIR=${!outputLib}/share/interfaces" + cmakeFlags+=" -DKDE_INSTALL_DBUSSERVICEDIR=${!outputLib}/share/services" + cmakeFlags+=" -DKDE_INSTALL_DBUSSYSTEMSERVICEDIR=${!outputLib}/share/system-services" + cmakeFlags+=" -DKDE_INSTALL_SYSCONFDIR=${!outputLib}/etc" + cmakeFlags+=" -DKDE_INSTALL_CONFDIR=${!outputLib}/etc/xdg" + cmakeFlags+=" -DKDE_INSTALL_AUTOSTARTDIR=${!outputLib}/etc/xdg/autostart" +} + envHooks+=(addMimePkg) +preConfigureHooks+=(_ecmConfig) From ac5a585ed8ef6cbc6fd32127165b52022ba4c1b8 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 16:43:16 -0600 Subject: [PATCH 26/91] qt55: add fixQtModuleCMakeConfig setup hook --- pkgs/development/libraries/qt-5/5.5/default.nix | 2 ++ .../libraries/qt-5/5.5/fix-qt-module-cmake-config.sh | 5 +++++ 2 files changed, 7 insertions(+) create mode 100644 pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix index 9863683840c..88f064edc7d 100644 --- a/pkgs/development/libraries/qt-5/5.5/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/default.nix @@ -42,6 +42,7 @@ let inherit src; propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []); + nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ self.fixQtModuleCMakeConfig ]; NIX_QT_SUBMODULE = args.NIX_QT_SUBMODULE or true; dontAddPrefix = args.dontAddPrefix or true; @@ -113,6 +114,7 @@ let ]; makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh; + fixQtModuleCMakeConfig = makeSetupHook { } ./fix-qt-module-cmake-config.sh; }; diff --git a/pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh b/pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh new file mode 100644 index 00000000000..7ca3e33b613 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.5/fix-qt-module-cmake-config.sh @@ -0,0 +1,5 @@ +fixQtModuleCMakeConfig() { + local module="$1" + sed -e "/set(imported_location/ s@\\\${_qt5${module}_install_prefix}@${!outputLib}@" \ + -i "${!outputDev}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake" +} From 8bfae5c46d9f7c6109dae24d7328051011bf371a Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 16:43:49 -0600 Subject: [PATCH 27/91] qt55.qtbase: fix Qt module CMake config files --- .../libraries/qt-5/5.5/qtbase/default.nix | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index 5b0ced23028..0dd17ed699b 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, copyPathsToStore, makeWrapper +{ stdenv, lib, fetchurl, copyPathsToStore, fixQtModuleCMakeConfig , srcs , xlibs, libX11, libxcb, libXcursor, libXext, libXrender, libXi @@ -224,7 +224,7 @@ stdenv.mkDerivation { ++ lib.optional (postgresql != null) postgresql ++ lib.optionals gtkStyle [gnome_vfs.out libgnomeui.out gtk GConf]; - nativeBuildInputs = [ lndir python perl pkgconfig ]; + nativeBuildInputs = [ fixQtModuleCMakeConfig lndir python perl pkgconfig ]; # freetype-2.5.4 changed signedness of some struct fields NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare"; @@ -233,6 +233,19 @@ stdenv.mkDerivation { '' # Don't retain build-time dependencies like gdb and ruby. sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $dev/mkspecs/qconfig.pri + + fixQtModuleCMakeConfig "Concurrent" + fixQtModuleCMakeConfig "Core" + fixQtModuleCMakeConfig "DBus" + fixQtModuleCMakeConfig "Gui" + fixQtModuleCMakeConfig "Network" + fixQtModuleCMakeConfig "OpenGL" + fixQtModuleCMakeConfig "OpenGLExtensions" + fixQtModuleCMakeConfig "PrintSupport" + fixQtModuleCMakeConfig "Sql" + fixQtModuleCMakeConfig "Test" + fixQtModuleCMakeConfig "Widgets" + fixQtModuleCMakeConfig "Xml" ''; inherit lndir; From 6dfabcb47b0d84c9650d4c2960877fbf3b5489c7 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 16:44:33 -0600 Subject: [PATCH 28/91] qt55.qtscript: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtscript/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtscript/default.nix b/pkgs/development/libraries/qt-5/5.5/qtscript/default.nix index 127766e2ebd..b81a43aeadb 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtscript/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtscript/default.nix @@ -4,4 +4,7 @@ qtSubmodule { name = "qtscript"; qtInputs = [ qtbase qttools ]; patches = [ ./0001-glib-2.32.patch ]; + postFixup = '' + fixQtModuleCMakeConfig "Script" + ''; } From 6c37bebabdf53b6d1195bfce5fc0acc60849c22d Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 16:44:48 -0600 Subject: [PATCH 29/91] qt55.qtdeclarative: fix Qt module CMake config files --- .../libraries/qt-5/5.5/qtdeclarative/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix b/pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix index 9181c37b225..e2219642a12 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtdeclarative/default.nix @@ -5,4 +5,10 @@ qtSubmodule { patches = [ ./0001-nix-profiles-import-paths.patch ]; qtInputs = [ qtbase qtsvg qtxmlpatterns ]; nativeBuildInputs = [ python ]; + postFixup = '' + fixQtModuleCMakeConfig "Qml" + fixQtModuleCMakeConfig "Quick" + fixQtModuleCMakeConfig "QuickTest" + fixQtModuleCMakeConfig "QuickWidgets" + ''; } From 24d0cfbb3a54b78e3f11bcba69ad61d1e0c3b336 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 16:45:36 -0600 Subject: [PATCH 30/91] kde5.frameworks: use multiple outputs --- pkgs/development/libraries/kde-frameworks-5.18/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/kde-frameworks-5.18/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/default.nix index f41aebcb59d..2ecde7e834f 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/default.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/default.nix @@ -23,6 +23,8 @@ let name = "${name}-${version}"; inherit src; + outputs = [ "dev" "out" ]; + cmakeFlags = (args.cmakeFlags or []) ++ [ "-DBUILD_TESTING=OFF" ] From 27824e3332f7e77e876adc9b31b4fd80d9e0d2a1 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:25:18 -0600 Subject: [PATCH 31/91] qt55.qtxmlpatterns: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix b/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix index 9a8ddbba2bd..3b22132e4c3 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtxmlpatterns.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtxmlpatterns"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "XmlPatterns" + ''; } From 055b1b86c5341cf8c6bb03ec61577332c59e00c1 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:25:38 -0600 Subject: [PATCH 32/91] qt55.qtx11extras: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtx11extras.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix b/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix index a765161e2d7..db92f135362 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtx11extras.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtx11extras"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "X11Extras" + ''; } From da454bc547ae4f7fd3c26ee717f7b62606ec6c34 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:26:15 -0600 Subject: [PATCH 33/91] qt55.qtwebsockets: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix b/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix index fbdfbbcf0db..c0d0f9e7d71 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtwebsockets.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtwebsockets"; qtInputs = [ qtbase qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "WebSockets" + ''; } From db7cabe0987f0a792b904b608801e95d2df8c813 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:26:31 -0600 Subject: [PATCH 34/91] qt55.qtwebkit: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix b/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix index 2e92391f4c0..b441a2448d7 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtwebkit/default.nix @@ -31,4 +31,8 @@ qtSubmodule { }; in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ] ++ [ dlopen-webkit-udev ]; + postFixup = '' + fixQtModuleCMakeConfig "WebKit" + fixQtModuleCMakeConfig "WebKitWidgets" + ''; } From ed20a6a97cd9f674ca9f20668d9d2580f1a94913 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:27:08 -0600 Subject: [PATCH 35/91] qt55.qttools: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qttools.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qttools.nix b/pkgs/development/libraries/qt-5/5.5/qttools.nix index 65edc450812..a6b29c07cac 100644 --- a/pkgs/development/libraries/qt-5/5.5/qttools.nix +++ b/pkgs/development/libraries/qt-5/5.5/qttools.nix @@ -3,4 +3,11 @@ qtSubmodule { name = "qttools"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "Designer" + fixQtModuleCMakeConfig "Help" + fixQtModuleCMakeConfig "LinguistTools" + fixQtModuleCMakeConfig "UiPlugin" + fixQtModuleCMakeConfig "UiTools" + ''; } From 02f276123319d977764e39e3a167c45cc89eac31 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:27:23 -0600 Subject: [PATCH 36/91] qt55.qtsvg: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtsvg.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtsvg.nix b/pkgs/development/libraries/qt-5/5.5/qtsvg.nix index b9ccac7cf93..a460d6da4c2 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtsvg.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtsvg.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtsvg"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "Svg" + ''; } From 50de9a3f09b23205199ba5a8bc2dcfea76839ddb Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:27:37 -0600 Subject: [PATCH 37/91] qt55.qtserialport: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix b/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix index 32549c95344..3f409f9c0e0 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtserialport/default.nix @@ -9,4 +9,7 @@ qtSubmodule { libudev = libudev.out; }) ]; + postFixup = '' + fixQtModuleCMakeConfig "SerialPort" + ''; } From abcb26c2bb2ea1b710eafeddcece76725391db89 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:27:58 -0600 Subject: [PATCH 38/91] qt55.qtsensors: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtsensors.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtsensors.nix b/pkgs/development/libraries/qt-5/5.5/qtsensors.nix index 61e64dc47e4..5776f45a706 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtsensors.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtsensors.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtsensors"; qtInputs = [ qtbase qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "Sensors" + ''; } From 89dc8118b4eb3f208ca076ba3e82c4891b696620 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:28:13 -0600 Subject: [PATCH 39/91] qt55.qtquick1: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix b/pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix index d1c7bb389a4..d81abbcd614 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtquick1/default.nix @@ -4,4 +4,7 @@ qtSubmodule { name = "qtquick1"; patches = [ ./0001-nix-profiles-import-paths.patch ]; qtInputs = [ qtscript qtsvg qtwebkit qtxmlpatterns ]; + postFixup = '' + fixQtModuleCMakeConfig "Declarative" + ''; } From ea0794696fab69120bbfa4200a9dd3b34dd8910b Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:28:29 -0600 Subject: [PATCH 40/91] qt55.qtmultimedia: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix b/pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix index b6b4d8ea0cf..8db8fa5f4b9 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtmultimedia.nix @@ -9,4 +9,8 @@ qtSubmodule { pkgconfig alsaLib gstreamer gst-plugins-base libpulseaudio ]; configureFlags = "GST_VERSION=1.0"; + postFixup = '' + fixQtModuleCMakeConfig "Multimedia" + fixQtModuleCMakeConfig "MultimediaWidgets" + ''; } From 35c7cdac5fe2e195d8e0ee1918450fef7e843131 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:29:11 -0600 Subject: [PATCH 41/91] qt55.qtlocation: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtlocation.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtlocation.nix b/pkgs/development/libraries/qt-5/5.5/qtlocation.nix index 1e134057c4b..0e2ad8bafb3 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtlocation.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtlocation.nix @@ -3,4 +3,8 @@ qtSubmodule { name = "qtlocation"; qtInputs = [ qtbase qtmultimedia ]; + postFixup = '' + fixQtModuleCMakeConfig "Location" + fixQtModuleCMakeConfig "Positioning" + ''; } From aea5ee64db08fdefca02d0e57a33ffad4a76bede Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:29:23 -0600 Subject: [PATCH 42/91] qt55.qtenginio: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtenginio.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtenginio.nix b/pkgs/development/libraries/qt-5/5.5/qtenginio.nix index b860a73ef89..503a0f7ce4f 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtenginio.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtenginio.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtenginio"; qtInputs = [ qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "Enginio" + ''; } From 776de6d955997fbd571891ccdd79a66862550d6a Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:29:39 -0600 Subject: [PATCH 43/91] qt55.qtconnectivity: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix b/pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix index 95cd6fea79b..35538c7261f 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtconnectivity.nix @@ -3,4 +3,8 @@ qtSubmodule { name = "qtconnectivity"; qtInputs = [ qtbase qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "Bluetooth" + fixQtModuleCMakeConfig "Nfc" + ''; } From c5083f8cbd701a09f669dbc021834e980bcd5dbd Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 24 Jan 2016 18:43:43 -0600 Subject: [PATCH 44/91] kde5.kfilemetadata: fix CMake install paths --- .../libraries/kde-frameworks-5.18/default.nix | 2 +- .../kfilemetadata/cmake-install-paths.patch | 13 +++++++++++++ .../default.nix} | 5 +++-- .../kde-frameworks-5.18/kfilemetadata/series | 1 + 4 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata/cmake-install-paths.patch rename pkgs/development/libraries/kde-frameworks-5.18/{kfilemetadata.nix => kfilemetadata/default.nix} (57%) create mode 100644 pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata/series diff --git a/pkgs/development/libraries/kde-frameworks-5.18/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/default.nix index 2ecde7e834f..5d2cceff78d 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/default.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/default.nix @@ -67,7 +67,7 @@ let kdnssd = callPackage ./kdnssd.nix {}; kdoctools = callPackage ./kdoctools {}; kemoticons = callPackage ./kemoticons.nix {}; - kfilemetadata = callPackage ./kfilemetadata.nix {}; + kfilemetadata = callPackage ./kfilemetadata {}; kglobalaccel = callPackage ./kglobalaccel.nix {}; kguiaddons = callPackage ./kguiaddons.nix {}; khtml = callPackage ./khtml.nix {}; diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata/cmake-install-paths.patch b/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata/cmake-install-paths.patch new file mode 100644 index 00000000000..732f7b69c82 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata/cmake-install-paths.patch @@ -0,0 +1,13 @@ +Index: kfilemetadata-5.18.0/src/CMakeLists.txt +=================================================================== +--- kfilemetadata-5.18.0.orig/src/CMakeLists.txt ++++ kfilemetadata-5.18.0/src/CMakeLists.txt +@@ -49,7 +49,7 @@ install(TARGETS KF5FileMetaData EXPORT K + + install(EXPORT KF5FileMetaDataTargets + NAMESPACE KF5:: +- DESTINATION ${LIB_INSTALL_DIR}/cmake/KF5FileMetaData ++ DESTINATION ${KDE_INSTALL_FULL_CMAKEPACKAGEDIR}/KF5FileMetaData + FILE KF5FileMetaDataTargets.cmake) + + install(FILES diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata.nix b/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata/default.nix similarity index 57% rename from pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata.nix rename to pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata/default.nix index be99c58d550..9bb4831cf8d 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata/default.nix @@ -1,9 +1,10 @@ -{ kdeFramework, lib, extra-cmake-modules, attr, ebook_tools, exiv2 -, ffmpeg, karchive, ki18n, poppler, qtbase, taglib +{ kdeFramework, lib, copyPathsToStore, extra-cmake-modules +, attr, ebook_tools, exiv2, ffmpeg, karchive, ki18n, poppler, qtbase, taglib }: kdeFramework { name = "kfilemetadata"; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); nativeBuildInputs = [ extra-cmake-modules ]; buildInputs = [ attr ebook_tools exiv2 ffmpeg karchive poppler taglib ]; propagatedBuildInputs = [ qtbase ki18n ]; diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata/series b/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata/series new file mode 100644 index 00000000000..d2689425c38 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/kfilemetadata/series @@ -0,0 +1 @@ +cmake-install-paths.patch From 7fae06718e5ef7f80cf82aca107c1455b2dab3d8 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 25 Jan 2016 06:24:35 -0600 Subject: [PATCH 45/91] qt55.makeQtWrapper: don't set XDG_DATA_DIRS --- .../development/libraries/qt-5/5.5/make-qt-wrapper.sh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh b/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh index d61665455bf..63525ba365b 100644 --- a/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh +++ b/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh @@ -3,7 +3,6 @@ addQtDependency() { addToSearchPath QML_IMPORT_PATH "$1/lib/qt5/imports" addToSearchPath QML2_IMPORT_PATH "$1/lib/qt5/qml" addToSearchPath XDG_CONFIG_DIRS "$1/etc/xdg" - addToSearchPath XDG_DATA_DIRS "$1/share" } wrapQtProgram() { @@ -33,10 +32,10 @@ makeQtWrapper() { } # cannot use addToSearchPath because these directories may not exist yet -export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}$out/lib/qt5/plugins" -export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}$out/lib/qt5/imports" -export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}$out/lib/qt5/qml" -export XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}$out/etc/xdg" -export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}$out/share" +export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}${!outputLib}/lib/qt5/plugins" +export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}${!outputLib}/lib/qt5/imports" +export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}${!outputLib}/lib/qt5/qml" +export XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}${!outputLib}/etc/xdg" +export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}${!outputLib}/share" envHooks+=(addQtDependency) From b63c007412f5d81aaa62b51fb600839d42061cab Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 25 Jan 2016 06:25:05 -0600 Subject: [PATCH 46/91] kde5.kdelibs4support: don't use multiple outputs --- pkgs/development/libraries/kde-frameworks-5.18/default.nix | 2 +- .../libraries/kde-frameworks-5.18/kdelibs4support.nix | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/kde-frameworks-5.18/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/default.nix index 5d2cceff78d..080854380dc 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/default.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/default.nix @@ -23,7 +23,7 @@ let name = "${name}-${version}"; inherit src; - outputs = [ "dev" "out" ]; + outputs = args.outputs or [ "dev" "out" ]; cmakeFlags = (args.cmakeFlags or []) diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix index e61c4bb86e7..214b756d5cb 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix @@ -11,6 +11,7 @@ kdeFramework { name = "kdelibs4support"; + outputs = [ "out" ]; nativeBuildInputs = [ extra-cmake-modules kdoctools ]; buildInputs = [ kcompletion kconfig kded kservice kwidgetsaddons From ae75c888085d45c571c7fe0e021611f4cc3b7f03 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 25 Jan 2016 06:31:06 -0600 Subject: [PATCH 47/91] qt55.qtbase: upstream patch for backing store issue The included patch from upstream fixes the issue described here: https://bugreports.qt.io/browse/QTBUG-48321 The backing store of certain widgets was being improperly invalidated, leading to display bugs in, e.g. VLC. This patch is included in Qt 5.6, so we should remove it when we upgrade. --- pkgs/development/libraries/qt-5/5.5/qtbase/default.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix index 0dd17ed699b..68c209e6009 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix @@ -26,6 +26,12 @@ let inherit (srcs.qt5) version; system-x86_64 = lib.elem stdenv.system lib.platforms.x86_64; + + dontInvalidateBacking = fetchurl { + url = "https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=patch;h=0f68f8920573cdce1729a285a92ac8582df32841;hp=24c50f8dcf7fa61ac3c3d4d6295c259a104a2b8c"; + name = "qtbug-48321-dont-invalidate-backing-store.patch"; + sha256 = "07vnndmvri73psz0nrs2hg0zw2i4b1k1igy2al6kwjbp7d5xpglr"; + }; in stdenv.mkDerivation { @@ -51,6 +57,10 @@ stdenv.mkDerivation { postPatch = '' + cd qtbase + patch -p1 <${dontInvalidateBacking} + cd .. + substituteInPlace configure --replace /bin/pwd pwd substituteInPlace qtbase/configure --replace /bin/pwd pwd substituteInPlace qtbase/src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls From 7f43f089304042923901f45763b51b429d2f11b9 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 25 Jan 2016 09:37:16 -0600 Subject: [PATCH 48/91] extra-cmake-modules: add addToSearchPathOnce --- .../extra-cmake-modules/setup-hook.sh | 54 +++++++++++-------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh index ee26f75cf5f..0dfc34ef408 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh +++ b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh @@ -1,26 +1,36 @@ -addMimePkg() { - local propagated +_propagateMimeTypes() { + if [ -d "$1/share/mime" ]; then + propagateOnce propagatedUserEnvPkgs "$1" + addToSearchPathOnce XDG_DATA_DIRS "$1/share" + fi +} - if [[ -d "$1/share/mime" ]]; then - propagated= - for pkg in $propagatedBuildInputs; do - if [[ "z$pkg" == "z$1" ]]; then - propagated=1 - fi - done - if [[ -z $propagated ]]; then - propagatedBuildInputs="$propagatedBuildInputs $1" - fi +addToSearchPathOnceWithCustomDelimiter() { + local delim="$1" + local search="$2" + local target="$3" + local dirs + local exported + IFS="$delim" read -a dirs <<< "${!search}" + for dir in ${dirs[@]}; do + if [ "z$dir" == "z$target" ]; then exported=1; fi + done + if [ -z $exported ]; then + eval "export ${search}=\"${!search}${!search:+$delim}$target\"" + fi +} - propagated= - for pkg in $propagatedUserEnvPkgs; do - if [[ "z$pkg" == "z$1" ]]; then - propagated=1 - fi - done - if [[ -z $propagated ]]; then - propagatedUserEnvPkgs="$propagatedUserEnvPkgs $1" - fi +addToSearchPathOnce() { + addToSearchPathOnceWithCustomDelimiter ':' "$@" +} + +propagateOnce() { + addToSearchPathOnceWithCustomDelimiter ' ' "$@" +} + +_exportLocales() { + if [[ -d "$1/share/locale" ]]; then + addToSearchPathOnce XDG_DATA_DIRS "$1/share" fi } @@ -67,5 +77,5 @@ _ecmConfig() { cmakeFlags+=" -DKDE_INSTALL_AUTOSTARTDIR=${!outputLib}/etc/xdg/autostart" } -envHooks+=(addMimePkg) +envHooks+=(_propagateMimeTypes _exportLocales) preConfigureHooks+=(_ecmConfig) From 02c3ae154d8fcb4c43b69adabce7acb47338f88e Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 25 Jan 2016 09:37:35 -0600 Subject: [PATCH 49/91] kde5.kservice: propagate extra-cmake-modules input --- .../libraries/kde-frameworks-5.18/kservice/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix index 03b7c7c2f51..b502a18e0e5 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix @@ -5,7 +5,8 @@ kdeFramework { name = "kservice"; setupHook = ./setup-hook.sh; - nativeBuildInputs = [ extra-cmake-modules kdoctools ]; + propagatedNativeBuildInputs = [ extra-cmake-modules ]; + nativeBuildInputs = [ kdoctools ]; buildInputs = [ kcrash kdbusaddons ]; propagatedBuildInputs = [ kconfig kcoreaddons ki18n kwindowsystem ]; propagatedUserEnvPkgs = [ kcoreaddons ]; From cfd70eac9dc38779ca04df9dbc184db574439fa6 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 25 Jan 2016 09:37:55 -0600 Subject: [PATCH 50/91] kde5.kservice: propagate service and service type inputs --- .../kservice/setup-hook.sh | 54 +++++-------------- 1 file changed, 14 insertions(+), 40 deletions(-) diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh index c28e862ff8a..e1210515fcf 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh +++ b/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh @@ -1,43 +1,17 @@ -addServicePkg() { - local propagated - for dir in "share/kservices5" "share/kservicetypes5"; do - if [[ -d "$1/$dir" ]]; then - propagated= - for pkg in $propagatedBuildInputs; do - if [[ "z$pkg" == "z$1" ]]; then - propagated=1 - break - fi - done - if [[ -z $propagated ]]; then - propagatedBuildInputs="$propagatedBuildInputs $1" - fi - - propagated= - for pkg in $propagatedUserEnvPkgs; do - if [[ "z$pkg" == "z$1" ]]; then - propagated=1 - break - fi - done - if [[ -z $propagated ]]; then - propagatedUserEnvPkgs="$propagatedUserEnvPkgs $1" - fi - - break - fi - done +_propagateServices() { + if [ -d "$1/share/kservices5" ]; then + propagateOnce propagatedUserEnvPkgs "$1" + addToSearchPathOnce XDG_DATA_DIRS "$1/share" + fi } -envHooks+=(addServicePkg) - -local propagated -for pkg in $propagatedBuildInputs; do - if [[ "z$pkg" == "z@out@" ]]; then - propagated=1 - break +_propagateServiceTypes() { + if [ -d "$1/share/kservicetypes5" ]; then + propagateOnce propagatedUserEnvPkgs "$1" + addToSearchPathOnce XDG_DATA_DIRS "$1/share" fi -done -if [[ -z $propagated ]]; then - propagatedBuildInputs="$propagatedBuildInputs @out@" -fi +} + +envHooks+=(_propagateServices _propagateServiceTypes) + +propagateOnce propagatedBuildInputs "@out@" From 7049bde4d5ffc9475eab99c490e6c35d71eb1534 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Mon, 25 Jan 2016 20:02:14 -0600 Subject: [PATCH 51/91] kde5.kdelibs4support: use multiple outputs --- .../libraries/kde-frameworks-5.18/default.nix | 2 +- .../default.nix} | 7 +++++-- .../kdelibs4support/nix-kde-include-dir.patch | 13 +++++++++++++ .../kde-frameworks-5.18/kdelibs4support/series | 1 + .../kdelibs4support/setup-hook.sh | 1 + 5 files changed, 21 insertions(+), 3 deletions(-) rename pkgs/development/libraries/kde-frameworks-5.18/{kdelibs4support.nix => kdelibs4support/default.nix} (83%) create mode 100644 pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/nix-kde-include-dir.patch create mode 100644 pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/series create mode 100644 pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/setup-hook.sh diff --git a/pkgs/development/libraries/kde-frameworks-5.18/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/default.nix index 080854380dc..bb96048d6ff 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/default.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/default.nix @@ -60,7 +60,7 @@ let kdbusaddons = callPackage ./kdbusaddons.nix {}; kdeclarative = callPackage ./kdeclarative.nix {}; kded = callPackage ./kded.nix {}; - kdelibs4support = callPackage ./kdelibs4support.nix {}; + kdelibs4support = callPackage ./kdelibs4support {}; kdesignerplugin = callPackage ./kdesignerplugin.nix {}; kdewebkit = callPackage ./kdewebkit.nix {}; kdesu = callPackage ./kdesu.nix {}; diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/default.nix similarity index 83% rename from pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix rename to pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/default.nix index 214b756d5cb..843db83a99b 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/default.nix @@ -1,4 +1,5 @@ -{ kdeFramework, lib, extra-cmake-modules, docbook_xml_dtd_45, kauth +{ kdeFramework, lib, copyPathsToStore +, extra-cmake-modules, docbook_xml_dtd_45, kauth , karchive, kcompletion, kconfig, kconfigwidgets, kcoreaddons , kcrash, kdbusaddons, kded, kdesignerplugin, kdoctools, kemoticons , kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kitemmodels @@ -11,7 +12,9 @@ kdeFramework { name = "kdelibs4support"; - outputs = [ "out" ]; + outputs = [ "dev" "out" ]; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); + setupHook = ./setup-hook.sh; nativeBuildInputs = [ extra-cmake-modules kdoctools ]; buildInputs = [ kcompletion kconfig kded kservice kwidgetsaddons diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/nix-kde-include-dir.patch b/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/nix-kde-include-dir.patch new file mode 100644 index 00000000000..eabb7025448 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/nix-kde-include-dir.patch @@ -0,0 +1,13 @@ +Index: kdelibs4support-5.18.0/src/kdecore/kstandarddirs.cpp +=================================================================== +--- kdelibs4support-5.18.0.orig/src/kdecore/kstandarddirs.cpp ++++ kdelibs4support-5.18.0/src/kdecore/kstandarddirs.cpp +@@ -292,7 +292,7 @@ static QString relativeInstallPath(const + return QFile::decodeName(ICON_INSTALL_DIR "/"); + } + if (strcmp("include", type) == 0) { +- return QFile::decodeName(INCLUDE_INSTALL_DIR "/"); ++ return QFile::decodeName(qgetenv("NIX_KDE_INCLUDE_DIR")); + } + break; + case 'l': diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/series b/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/series new file mode 100644 index 00000000000..9b08ab20877 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/series @@ -0,0 +1 @@ +nix-kde-include-dir.patch diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/setup-hook.sh new file mode 100644 index 00000000000..21ac2e83b5d --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/kdelibs4support/setup-hook.sh @@ -0,0 +1 @@ +export NIX_KDE_INCLUDE_DIR="@dev@/include/" # trailing slash is required! From 4f7297f1e32f4d42544d6b5f9b332e1bd1f176ea Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 27 Jan 2016 06:23:03 -0600 Subject: [PATCH 52/91] kde5.apps: use multiple outputs --- pkgs/applications/kde-apps-15.12/kde-app.nix | 2 ++ pkgs/applications/kde-apps-15.12/kde-locale-4.nix | 7 +++++++ pkgs/applications/kde-apps-15.12/kde-locale-5.nix | 7 +++++++ pkgs/applications/kde-apps-15.12/kdelibs/default.nix | 2 ++ 4 files changed, 18 insertions(+) diff --git a/pkgs/applications/kde-apps-15.12/kde-app.nix b/pkgs/applications/kde-apps-15.12/kde-app.nix index 242f3d9c793..2f1fdc1d643 100644 --- a/pkgs/applications/kde-apps-15.12/kde-app.nix +++ b/pkgs/applications/kde-apps-15.12/kde-app.nix @@ -11,6 +11,8 @@ stdenv.mkDerivation (args // { name = "${name}-${version}"; inherit src; + outputs = args.outputs or [ "dev" "out" ]; + cmakeFlags = (args.cmakeFlags or []) ++ [ "-DBUILD_TESTING=OFF" ] diff --git a/pkgs/applications/kde-apps-15.12/kde-locale-4.nix b/pkgs/applications/kde-apps-15.12/kde-locale-4.nix index 4b612ee3e3c..e83794c60d8 100644 --- a/pkgs/applications/kde-apps-15.12/kde-locale-4.nix +++ b/pkgs/applications/kde-apps-15.12/kde-locale-4.nix @@ -6,6 +6,8 @@ kdeApp (args // { sname = "kde-l10n-${name}"; name = "kde-l10n-${name}-qt4"; + outputs = [ "out" ]; + nativeBuildInputs = [ automoc4 cmake gettext perl ] ++ (args.nativeBuildInputs or []); @@ -17,4 +19,9 @@ kdeApp (args // { sed -e 's/add_subdirectory(5)//' -i CMakeLists.txt ${args.preConfigure or ""} ''; + + preFixup = '' + propagatedBuildInputs= + propagatedNativeBuildInputs= + ''; }) diff --git a/pkgs/applications/kde-apps-15.12/kde-locale-5.nix b/pkgs/applications/kde-apps-15.12/kde-locale-5.nix index 522fc542aeb..772ebe37e44 100644 --- a/pkgs/applications/kde-apps-15.12/kde-locale-5.nix +++ b/pkgs/applications/kde-apps-15.12/kde-locale-5.nix @@ -6,6 +6,8 @@ kdeApp (args // { sname = "kde-l10n-${name}"; name = "kde-l10n-${name}-qt5"; + outputs = [ "out" ]; + nativeBuildInputs = [ cmake extra-cmake-modules gettext kdoctools ] ++ (args.nativeBuildInputs or []); @@ -14,4 +16,9 @@ kdeApp (args // { sed -e 's/add_subdirectory(4)//' -i CMakeLists.txt ${args.preConfigure or ""} ''; + + preFixup = '' + propagatedBuildInputs= + propagatedNativeBuildInputs= + ''; }) diff --git a/pkgs/applications/kde-apps-15.12/kdelibs/default.nix b/pkgs/applications/kde-apps-15.12/kdelibs/default.nix index 91c1f3af448..389362deecc 100644 --- a/pkgs/applications/kde-apps-15.12/kdelibs/default.nix +++ b/pkgs/applications/kde-apps-15.12/kdelibs/default.nix @@ -9,6 +9,8 @@ kdeApp { name = "kdelibs"; + outputs = [ "out" ]; + buildInputs = [ attica attr avahi giflib libdbusmenu_qt libjpeg libxml2 polkit_qt4 qca2 shared_desktop_ontologies udev xz pcre From ec9073dd2ebe04188a3aa25c386ba7688ff9646f Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 27 Jan 2016 11:03:49 -0600 Subject: [PATCH 53/91] kde5.plasma: remove misguided setupHook --- pkgs/desktops/plasma-5.5/default.nix | 2 -- pkgs/desktops/plasma-5.5/setup-hook.sh | 1 - 2 files changed, 3 deletions(-) delete mode 100644 pkgs/desktops/plasma-5.5/setup-hook.sh diff --git a/pkgs/desktops/plasma-5.5/default.nix b/pkgs/desktops/plasma-5.5/default.nix index c9fcbdd8e6a..bbac6ab3524 100644 --- a/pkgs/desktops/plasma-5.5/default.nix +++ b/pkgs/desktops/plasma-5.5/default.nix @@ -26,8 +26,6 @@ let name = "${name}-${version}"; inherit src; - setupHook = args.setupHook or ./setup-hook.sh; - cmakeFlags = (args.cmakeFlags or []) ++ [ "-DBUILD_TESTING=OFF" ] diff --git a/pkgs/desktops/plasma-5.5/setup-hook.sh b/pkgs/desktops/plasma-5.5/setup-hook.sh deleted file mode 100644 index a8d9b7e0e36..00000000000 --- a/pkgs/desktops/plasma-5.5/setup-hook.sh +++ /dev/null @@ -1 +0,0 @@ -addToSearchPath XDG_DATA_DIRS @out@/share From bda1938d3a278416d18aa3dc65bc40dce91467a4 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 27 Jan 2016 11:13:00 -0600 Subject: [PATCH 54/91] kde5.plasma: use multiple outputs --- pkgs/desktops/plasma-5.5/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/desktops/plasma-5.5/default.nix b/pkgs/desktops/plasma-5.5/default.nix index bbac6ab3524..ea1533af757 100644 --- a/pkgs/desktops/plasma-5.5/default.nix +++ b/pkgs/desktops/plasma-5.5/default.nix @@ -26,6 +26,8 @@ let name = "${name}-${version}"; inherit src; + outputs = args.outputs or [ "dev" "out" ]; + cmakeFlags = (args.cmakeFlags or []) ++ [ "-DBUILD_TESTING=OFF" ] From f6e87370fbe56848d30a0631ee019a9b3a97b7ea Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 27 Jan 2016 11:25:35 -0600 Subject: [PATCH 55/91] kde5.kauth: fix helper install paths --- .../kauth/cmake-install-paths.patch | 17 +++++++++++++++++ .../kde-frameworks-5.18/kauth/default.nix | 4 ++-- .../kauth/kauth-policy-install.patch | 13 ------------- .../libraries/kde-frameworks-5.18/kauth/series | 1 + 4 files changed, 20 insertions(+), 15 deletions(-) create mode 100644 pkgs/development/libraries/kde-frameworks-5.18/kauth/cmake-install-paths.patch delete mode 100644 pkgs/development/libraries/kde-frameworks-5.18/kauth/kauth-policy-install.patch create mode 100644 pkgs/development/libraries/kde-frameworks-5.18/kauth/series diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kauth/cmake-install-paths.patch b/pkgs/development/libraries/kde-frameworks-5.18/kauth/cmake-install-paths.patch new file mode 100644 index 00000000000..c66f5ecd008 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/kauth/cmake-install-paths.patch @@ -0,0 +1,17 @@ +Index: kauth-5.18.0/KF5AuthConfig.cmake.in +=================================================================== +--- kauth-5.18.0.orig/KF5AuthConfig.cmake.in ++++ kauth-5.18.0/KF5AuthConfig.cmake.in +@@ -4,9 +4,9 @@ set(KAUTH_STUB_FILES_DIR "@PACKAGE_KDE_I + + set(KAUTH_BACKEND_NAME "@KAUTH_BACKEND_NAME@") + set(KAUTH_HELPER_BACKEND_NAME "@KAUTH_HELPER_BACKEND_NAME@") +-set(KAUTH_POLICY_FILES_INSTALL_DIR "@KAUTH_POLICY_FILES_INSTALL_DIR@") +-set(KAUTH_HELPER_INSTALL_DIR "@KAUTH_HELPER_INSTALL_DIR@") +-set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "@KAUTH_HELPER_INSTALL_ABSOLUTE_DIR@") ++set(KAUTH_POLICY_FILES_INSTALL_DIR "${KDE_INSTALL_DATADIR}/polkit-1/actions") ++set(KAUTH_HELPER_INSTALL_DIR "${KDE_INSTALL_LIBEXECDIR}") ++set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "${KDE_INSTALL_LIBEXECDIR}") + + find_dependency(KF5CoreAddons "@KF5_DEP_VERSION@") + diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kauth/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kauth/default.nix index 2b000ff3c04..1352d8c5821 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/kauth/default.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/kauth/default.nix @@ -1,4 +1,4 @@ -{ kdeFramework, lib +{ kdeFramework, lib, copyPathsToStore , extra-cmake-modules , kcoreaddons , polkit-qt @@ -9,7 +9,7 @@ kdeFramework { nativeBuildInputs = [ extra-cmake-modules ]; buildInputs = [ polkit-qt ]; propagatedBuildInputs = [ kcoreaddons ]; - patches = [ ./kauth-policy-install.patch ]; + patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); meta = { maintainers = [ lib.maintainers.ttuegel ]; }; diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kauth/kauth-policy-install.patch b/pkgs/development/libraries/kde-frameworks-5.18/kauth/kauth-policy-install.patch deleted file mode 100644 index 340155256f2..00000000000 --- a/pkgs/development/libraries/kde-frameworks-5.18/kauth/kauth-policy-install.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/KF5AuthConfig.cmake.in b/KF5AuthConfig.cmake.in -index e859ec7..9a8ab18 100644 ---- a/KF5AuthConfig.cmake.in -+++ b/KF5AuthConfig.cmake.in -@@ -4,7 +4,7 @@ set(KAUTH_STUB_FILES_DIR "${PACKAGE_PREFIX_DIR}/@KF5_DATA_INSTALL_DIR@/kauth/") - - set(KAUTH_BACKEND_NAME "@KAUTH_BACKEND_NAME@") - set(KAUTH_HELPER_BACKEND_NAME "@KAUTH_HELPER_BACKEND_NAME@") --set(KAUTH_POLICY_FILES_INSTALL_DIR "@KAUTH_POLICY_FILES_INSTALL_DIR@") -+set(KAUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions") - set(KAUTH_HELPER_INSTALL_DIR "@KAUTH_HELPER_INSTALL_DIR@") - - find_dependency(KF5CoreAddons "@KF5_DEP_VERSION@") diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kauth/series b/pkgs/development/libraries/kde-frameworks-5.18/kauth/series new file mode 100644 index 00000000000..d2689425c38 --- /dev/null +++ b/pkgs/development/libraries/kde-frameworks-5.18/kauth/series @@ -0,0 +1 @@ +cmake-install-paths.patch From 9065ab0c8ac68887f4007ded5ac30de8555bfc44 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 27 Jan 2016 20:05:40 -0600 Subject: [PATCH 56/91] kde5.extra-cmake-modules: rewrite setupHook The rewrite achieves three goals. First, all the installation paths are set correctly for multiple outputs. Second, the correct search paths are set for all types of shared data. Third, packages are installed through propagatedUserEnvPkgs as required. --- .../extra-cmake-modules/setup-hook.sh | 70 +++++++-------- .../kde-frameworks-5.18/kdoctools/default.nix | 1 - .../kdoctools/setup-hook.sh | 5 -- .../kde-frameworks-5.18/kservice/default.nix | 1 - .../kservice/setup-hook.sh | 17 ---- .../libraries/qt-5/5.5/make-qt-wrapper.sh | 19 ++-- .../libraries/qt-5/5.5/qtbase/setup-hook.sh | 89 +++++++++++-------- 7 files changed, 94 insertions(+), 108 deletions(-) delete mode 100644 pkgs/development/libraries/kde-frameworks-5.18/kdoctools/setup-hook.sh delete mode 100644 pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh diff --git a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh index 0dfc34ef408..56ed09f4ea5 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh +++ b/pkgs/development/libraries/kde-frameworks-5.18/extra-cmake-modules/setup-hook.sh @@ -1,37 +1,37 @@ -_propagateMimeTypes() { - if [ -d "$1/share/mime" ]; then - propagateOnce propagatedUserEnvPkgs "$1" - addToSearchPathOnce XDG_DATA_DIRS "$1/share" - fi +_ecmSetXdgDirs() { + addToSearchPathOnce XDG_DATA_DIRS "$1/share" + addToSearchPathOnce XDG_CONFIG_DIRS "$1/etc/xdg" + addToSearchPathOnce NIX_WRAP_XDG_CONFIG_DIRS "$1/etc/xdg" } -addToSearchPathOnceWithCustomDelimiter() { - local delim="$1" - local search="$2" - local target="$3" - local dirs - local exported - IFS="$delim" read -a dirs <<< "${!search}" - for dir in ${dirs[@]}; do - if [ "z$dir" == "z$target" ]; then exported=1; fi +_ecmPropagateSharedData() { + local sharedPaths=( \ + "config.cfg" \ + "doc" \ + "kconf_update" \ + "kservices5" \ + "kservicetypes5" \ + "kxmlgui5" \ + "knotifications5" \ + "icons" \ + "sounds" \ + "templates" \ + "wallpapers" \ + "applications" \ + "desktop-directories" \ + "mime" \ + "info" \ + "dbus-1" \ + "interfaces" \ + "services" \ + "system-services" ) + for dir in ${sharedPaths[@]}; do + if [ -d "$1/share/$dir" ]; then + addToSearchPathOnce NIX_WRAP_XDG_DATA_DIRS "$1/share" + propagateOnce propagatedUserEnvPkgs "$1" + break + fi done - if [ -z $exported ]; then - eval "export ${search}=\"${!search}${!search:+$delim}$target\"" - fi -} - -addToSearchPathOnce() { - addToSearchPathOnceWithCustomDelimiter ':' "$@" -} - -propagateOnce() { - addToSearchPathOnceWithCustomDelimiter ' ' "$@" -} - -_exportLocales() { - if [[ -d "$1/share/locale" ]]; then - addToSearchPathOnce XDG_DATA_DIRS "$1/share" - fi } _ecmConfig() { @@ -69,13 +69,13 @@ _ecmConfig() { cmakeFlags+=" -DKDE_INSTALL_MANDIR=${!outputLib}/share/man" cmakeFlags+=" -DKDE_INSTALL_INFODIR=${!outputLib}/share/info" cmakeFlags+=" -DKDE_INSTALL_DBUSDIR=${!outputLib}/share/dbus-1" - cmakeFlags+=" -DKDE_INSTALL_DBUSINTERFACEDIR=${!outputLib}/share/interfaces" - cmakeFlags+=" -DKDE_INSTALL_DBUSSERVICEDIR=${!outputLib}/share/services" - cmakeFlags+=" -DKDE_INSTALL_DBUSSYSTEMSERVICEDIR=${!outputLib}/share/system-services" + cmakeFlags+=" -DKDE_INSTALL_DBUSINTERFACEDIR=${!outputLib}/share/dbus-1/interfaces" + cmakeFlags+=" -DKDE_INSTALL_DBUSSERVICEDIR=${!outputLib}/share/dbus-1/services" + cmakeFlags+=" -DKDE_INSTALL_DBUSSYSTEMSERVICEDIR=${!outputLib}/share/dbus-1/system-services" cmakeFlags+=" -DKDE_INSTALL_SYSCONFDIR=${!outputLib}/etc" cmakeFlags+=" -DKDE_INSTALL_CONFDIR=${!outputLib}/etc/xdg" cmakeFlags+=" -DKDE_INSTALL_AUTOSTARTDIR=${!outputLib}/etc/xdg/autostart" } -envHooks+=(_propagateMimeTypes _exportLocales) +envHooks+=(_ecmSetXdgDirs _ecmPropagateSharedData) preConfigureHooks+=(_ecmConfig) diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/default.nix index 138c3fc33b9..f67c19f4239 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/default.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/default.nix @@ -4,7 +4,6 @@ kdeFramework { name = "kdoctools"; - setupHook = ./setup-hook.sh; nativeBuildInputs = [ extra-cmake-modules ]; buildInputs = [ karchive ]; propagatedBuildInputs = [ ki18n ]; diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/setup-hook.sh deleted file mode 100644 index 5cfffbd622d..00000000000 --- a/pkgs/development/libraries/kde-frameworks-5.18/kdoctools/setup-hook.sh +++ /dev/null @@ -1,5 +0,0 @@ -addXdgData() { - addToSearchPath XDG_DATA_DIRS "$1/share" -} - -envHooks+=(addXdgData) diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix index b502a18e0e5..24c5e681ca8 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix @@ -4,7 +4,6 @@ kdeFramework { name = "kservice"; - setupHook = ./setup-hook.sh; propagatedNativeBuildInputs = [ extra-cmake-modules ]; nativeBuildInputs = [ kdoctools ]; buildInputs = [ kcrash kdbusaddons ]; diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh b/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh deleted file mode 100644 index e1210515fcf..00000000000 --- a/pkgs/development/libraries/kde-frameworks-5.18/kservice/setup-hook.sh +++ /dev/null @@ -1,17 +0,0 @@ -_propagateServices() { - if [ -d "$1/share/kservices5" ]; then - propagateOnce propagatedUserEnvPkgs "$1" - addToSearchPathOnce XDG_DATA_DIRS "$1/share" - fi -} - -_propagateServiceTypes() { - if [ -d "$1/share/kservicetypes5" ]; then - propagateOnce propagatedUserEnvPkgs "$1" - addToSearchPathOnce XDG_DATA_DIRS "$1/share" - fi -} - -envHooks+=(_propagateServices _propagateServiceTypes) - -propagateOnce propagatedBuildInputs "@out@" diff --git a/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh b/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh index 63525ba365b..f29bbb73639 100644 --- a/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh +++ b/pkgs/development/libraries/qt-5/5.5/make-qt-wrapper.sh @@ -1,10 +1,3 @@ -addQtDependency() { - addToSearchPath QT_PLUGIN_PATH "$1/lib/qt5/plugins" - addToSearchPath QML_IMPORT_PATH "$1/lib/qt5/imports" - addToSearchPath QML2_IMPORT_PATH "$1/lib/qt5/qml" - addToSearchPath XDG_CONFIG_DIRS "$1/etc/xdg" -} - wrapQtProgram() { local prog="$1" shift @@ -12,8 +5,8 @@ wrapQtProgram() { --prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \ --prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \ --prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \ - --prefix XDG_CONFIG_DIRS : "$XDG_CONFIG_DIRS" \ - --prefix XDG_DATA_DIRS : "$XDG_DATA_DIRS" \ + --prefix XDG_CONFIG_DIRS : "$NIX_WRAP_XDG_CONFIG_DIRS" \ + --prefix XDG_DATA_DIRS : "$NIX_WRAP_XDG_DATA_DIRS" \ "$@" } @@ -26,8 +19,8 @@ makeQtWrapper() { --prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \ --prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \ --prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \ - --prefix XDG_CONFIG_DIRS : "$XDG_CONFIG_DIRS" \ - --prefix XDG_DATA_DIRS : "$XDG_DATA_DIRS" \ + --prefix XDG_CONFIG_DIRS : "$NIX_WRAP_XDG_CONFIG_DIRS" \ + --prefix XDG_DATA_DIRS : "$NIX_WRAP_XDG_DATA_DIRS" \ "$@" } @@ -37,5 +30,5 @@ export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}${!outputLib}/lib/q export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}${!outputLib}/lib/qt5/qml" export XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS${XDG_CONFIG_DIRS:+:}${!outputLib}/etc/xdg" export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}${!outputLib}/share" - -envHooks+=(addQtDependency) +export NIX_WRAP_XDG_CONFIG_DIRS="$NIX_WRAP_XDG_CONFIG_DIRS${NIX_WRAP_XDG_CONFIG_DIRS:+:}${!outputLib}/etc/xdg" +export NIX_WRAP_XDG_DATA_DIRS="$NIX_WRAP_XDG_DATA_DIRS${NIX_WRAP_XDG_DATA_DIRS:+:}${!outputLib}/share" diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh b/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh index 59e04a3561e..9cf1ef9ccb6 100644 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh +++ b/pkgs/development/libraries/qt-5/5.5/qtbase/setup-hook.sh @@ -1,45 +1,26 @@ if [[ -z "$QMAKE" ]]; then -linkDependencyDir() { +_qtLinkDependencyDir() { @lndir@/bin/lndir -silent "$1/$2" "$qtOut/$2" if [[ -n "$NIX_QT_SUBMODULE" ]]; then find "$1/$2" -printf "$2/%P\n" >> "$out/nix-support/qt-inputs" fi } -addQtModule() { - if [[ -d "$1/mkspecs" ]]; then +_qtLinkModule() { + if [ -d "$1/mkspecs" ]; then # $1 is a Qt module - linkDependencyDir "$1" mkspecs + _qtLinkDependencyDir "$1" mkspecs for dir in bin include lib share; do - if [[ -d "$1/$dir" ]]; then - linkDependencyDir "$1" "$dir" + if [ -d "$1/$dir" ]; then + _qtLinkDependencyDir "$1" "$dir" fi done fi } -propagateRuntimeDeps() { - local propagated - for dir in "etc/xdg" "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports" "share"; do - if [[ -d "$1/$dir" ]]; then - propagated= - for pkg in $propagatedBuildInputs; do - if [[ "z$pkg" == "z$1" ]]; then - propagated=1 - break - fi - done - if [[ -z $propagated ]]; then - propagatedBuildInputs="$propagatedBuildInputs $1" - fi - break - fi - done -} - -rmQtModules() { +_qtRmModules() { cat "$out/nix-support/qt-inputs" | while read file; do if [[ -h "$out/$file" ]]; then rm "$out/$file" @@ -55,15 +36,51 @@ rmQtModules() { rm "$out/nix-support/qt-inputs" } -rmQMake() { +addToSearchPathOnceWithCustomDelimiter() { + local delim="$1" + local search="$2" + local target="$3" + local dirs + local exported + IFS="$delim" read -a dirs <<< "${!search}" + for dir in ${dirs[@]}; do + if [ "z$dir" == "z$target" ]; then exported=1; fi + done + if [ -z $exported ]; then + eval "export ${search}=\"${!search}${!search:+$delim}$target\"" + fi +} + +addToSearchPathOnce() { + addToSearchPathOnceWithCustomDelimiter ':' "$@" +} + +propagateOnce() { + addToSearchPathOnceWithCustomDelimiter ' ' "$@" +} + +_qtPropagateRuntimeDependencies() { + for dir in "lib/qt5/plugins" "lib/qt5/qml" "lib/qt5/imports"; do + if [ -d "$1/$dir" ]; then + propagateOnce propagatedBuildInputs "$1" + propagateOnce propagatedUserEnvPkgs "$1" + break + fi + done + addToSearchPathOnce QT_PLUGIN_PATH "$1/lib/qt5/plugins" + addToSearchPathOnce QML_IMPORT_PATH "$1/lib/qt5/imports" + addToSearchPathOnce QML2_IMPORT_PATH "$1/lib/qt5/qml" +} + +_qtRmQmake() { rm "$qtOut/bin/qmake" "$qtOut/bin/qt.conf" } -setQMakePath() { +_qtSetQmakePath() { export PATH="$qtOut/bin${PATH:+:}$PATH" } -_multioutQtModuleDevs() { +_qtMultioutModuleDevs() { # We cannot simply set these paths in configureFlags because libQtCore retains # references to the paths it was built with. moveToOutput "bin" "${!outputDev}" @@ -74,7 +91,7 @@ _multioutQtModuleDevs() { moveToOutput "share/doc" "${!outputDev}" } -_multioutQtDevs() { +_qtMultioutDevs() { # This is necessary whether the package is a Qt module or not moveToOutput "mkspecs" "${!outputDev}" } @@ -100,20 +117,20 @@ EOF export QMAKE="$qtOut/bin/qmake" -envHooks+=(addQtModule propagateRuntimeDeps) +envHooks+=(_qtLinkModule _qtPropagateRuntimeDependencies) # Set PATH to find qmake first in a preConfigure hook # It must run after all the envHooks! -preConfigureHooks+=(setQMakePath) +preConfigureHooks+=(_qtSetQmakePath) -preFixupHooks+=(_multioutQtDevs) +preFixupHooks+=(_qtMultioutDevs) if [[ -n "$NIX_QT_SUBMODULE" ]]; then - postInstallHooks+=(rmQMake rmQtModules) - preFixupHooks+=(_multioutQtModuleDevs) + postInstallHooks+=(_qtRmQmake _qtRmModules) + preFixupHooks+=(_qtMultioutModuleDevs) fi fi if [[ -z "$NIX_QT_PIC" ]]; then - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC" + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE${NIX_CFLAGS_COMPILE:+ }-fPIC" export NIX_QT_PIC=1 fi From 7840e5e9a1014b1aa06033f2dd0120f953db12be Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Thu, 28 Jan 2016 18:01:35 -0600 Subject: [PATCH 57/91] kde5.kde-gtk-config: fix extra include paths --- pkgs/desktops/plasma-5.5/kde-gtk-config/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/plasma-5.5/kde-gtk-config/default.nix b/pkgs/desktops/plasma-5.5/kde-gtk-config/default.nix index 6b41599994d..ab8867520b3 100644 --- a/pkgs/desktops/plasma-5.5/kde-gtk-config/default.nix +++ b/pkgs/desktops/plasma-5.5/kde-gtk-config/default.nix @@ -22,7 +22,7 @@ plasmaPackage { ]; propagatedBuildInputs = [ ki18n kio ]; cmakeFlags = [ - "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib}/lib/glib-2.0/include" - "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2}/lib/gtk-2.0/include" + "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include" + "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include" ]; } From 150238dc9959c2836c06c69ed650496b7c2c36df Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Thu, 28 Jan 2016 18:08:58 -0600 Subject: [PATCH 58/91] qt54: updated homepage --- pkgs/development/libraries/qt-5/5.4/default.nix | 2 +- pkgs/development/libraries/qt-5/5.4/qtbase/default.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.4/default.nix b/pkgs/development/libraries/qt-5/5.4/default.nix index d0e09c6b10f..3262da124cd 100644 --- a/pkgs/development/libraries/qt-5/5.4/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/default.nix @@ -49,7 +49,7 @@ let enableParallelBuilding = args.enableParallelBuilding or true; meta = { - homepage = http://qt-project.org; + homepage = http://www.qt.io; description = "A cross-platform application framework for C++"; license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; maintainers = with maintainers; [ bbenoist qknight ttuegel ]; diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index e08640ae869..15f77c8fc87 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -232,7 +232,7 @@ stdenv.mkDerivation { enableParallelBuilding = true; meta = with lib; { - homepage = http://qt-project.org; + homepage = http://www.qt.io; description = "A cross-platform application framework for C++"; license = "GPL/LGPL"; maintainers = with maintainers; [ bbenoist qknight ttuegel ]; From d282d0bfe7cbcc81bd45f40e3785e9d135e040ee Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Thu, 28 Jan 2016 18:10:42 -0600 Subject: [PATCH 59/91] qt54.qtbase: set licenses correctly --- pkgs/development/libraries/qt-5/5.4/default.nix | 12 ++++-------- .../libraries/qt-5/5.4/qtbase/default.nix | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.4/default.nix b/pkgs/development/libraries/qt-5/5.4/default.nix index 3262da124cd..ab132ae21c8 100644 --- a/pkgs/development/libraries/qt-5/5.4/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/default.nix @@ -48,13 +48,7 @@ let enableParallelBuilding = args.enableParallelBuilding or true; - meta = { - homepage = http://www.qt.io; - description = "A cross-platform application framework for C++"; - license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; - maintainers = with maintainers; [ bbenoist qknight ttuegel ]; - platforms = platforms.linux; - } // (args.meta or {}); + meta = self.qtbase.meta // (args.meta or {}); }); addPackages = self: with self; @@ -116,4 +110,6 @@ let }; -in makeScope pkgs.newScope addPackages + self = makeScope pkgs.newScope addPackages; + +in self diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index 15f77c8fc87..9525678ca1a 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -234,7 +234,7 @@ stdenv.mkDerivation { meta = with lib; { homepage = http://www.qt.io; description = "A cross-platform application framework for C++"; - license = "GPL/LGPL"; + license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; maintainers = with maintainers; [ bbenoist qknight ttuegel ]; platforms = platforms.linux; }; From f4e6b173bb770889541b59e77381e28cd5da99f0 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Thu, 28 Jan 2016 18:13:17 -0600 Subject: [PATCH 60/91] qt54: add fixQtModuleCMakeConfig setup hook --- pkgs/development/libraries/qt-5/5.4/default.nix | 2 ++ .../libraries/qt-5/5.4/fix-qt-module-cmake-config.sh | 5 +++++ 2 files changed, 7 insertions(+) create mode 100644 pkgs/development/libraries/qt-5/5.4/fix-qt-module-cmake-config.sh diff --git a/pkgs/development/libraries/qt-5/5.4/default.nix b/pkgs/development/libraries/qt-5/5.4/default.nix index ab132ae21c8..df2fb8ad186 100644 --- a/pkgs/development/libraries/qt-5/5.4/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/default.nix @@ -37,6 +37,7 @@ let inherit src; propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or []); + nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ self.fixQtModuleCMakeConfig ]; NIX_QT_SUBMODULE = args.NIX_QT_SUBMODULE or true; dontAddPrefix = args.dontAddPrefix or true; @@ -107,6 +108,7 @@ let ]; makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh; + fixQtModuleCMakeConfig = makeSetupHook { } ./fix-qt-module-cmake-config.sh; }; diff --git a/pkgs/development/libraries/qt-5/5.4/fix-qt-module-cmake-config.sh b/pkgs/development/libraries/qt-5/5.4/fix-qt-module-cmake-config.sh new file mode 100644 index 00000000000..7ca3e33b613 --- /dev/null +++ b/pkgs/development/libraries/qt-5/5.4/fix-qt-module-cmake-config.sh @@ -0,0 +1,5 @@ +fixQtModuleCMakeConfig() { + local module="$1" + sed -e "/set(imported_location/ s@\\\${_qt5${module}_install_prefix}@${!outputLib}@" \ + -i "${!outputDev}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake" +} From 65ef8578c298390d37135fcef6b23e6094c67043 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Thu, 28 Jan 2016 18:19:26 -0600 Subject: [PATCH 61/91] qt54.qtbase: fix Qt module CMake config files --- .../libraries/qt-5/5.4/qtbase/default.nix | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix index 9525678ca1a..0585601db76 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtbase/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, copyPathsToStore, makeWrapper +{ stdenv, lib, fetchurl, copyPathsToStore, fixQtModuleCMakeConfig , srcs , xlibs, libX11, libxcb, libXcursor, libXext, libXrender, libXi @@ -215,7 +215,7 @@ stdenv.mkDerivation { ++ lib.optional (postgresql != null) postgresql ++ lib.optionals gtkStyle [gnome_vfs libgnomeui gtk GConf]; - nativeBuildInputs = [ lndir python perl pkgconfig ]; + nativeBuildInputs = [ fixQtModuleCMakeConfig lndir python perl pkgconfig ]; # freetype-2.5.4 changed signedness of some struct fields NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare"; @@ -224,6 +224,19 @@ stdenv.mkDerivation { '' # Don't retain build-time dependencies like gdb and ruby. sed '/QMAKE_DEFAULT_.*DIRS/ d' -i "$dev/mkspecs/qconfig.pri" + + fixQtModuleCMakeConfig "Concurrent" + fixQtModuleCMakeConfig "Core" + fixQtModuleCMakeConfig "DBus" + fixQtModuleCMakeConfig "Gui" + fixQtModuleCMakeConfig "Network" + fixQtModuleCMakeConfig "OpenGL" + fixQtModuleCMakeConfig "OpenGLExtensions" + fixQtModuleCMakeConfig "PrintSupport" + fixQtModuleCMakeConfig "Sql" + fixQtModuleCMakeConfig "Test" + fixQtModuleCMakeConfig "Widgets" + fixQtModuleCMakeConfig "Xml" ''; inherit lndir; From fbcdf3ee629a113d61a4dd536de0c6adb612b904 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Thu, 28 Jan 2016 18:20:51 -0600 Subject: [PATCH 62/91] qt54.qtscript: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtscript/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtscript/default.nix b/pkgs/development/libraries/qt-5/5.4/qtscript/default.nix index 127766e2ebd..b81a43aeadb 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtscript/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtscript/default.nix @@ -4,4 +4,7 @@ qtSubmodule { name = "qtscript"; qtInputs = [ qtbase qttools ]; patches = [ ./0001-glib-2.32.patch ]; + postFixup = '' + fixQtModuleCMakeConfig "Script" + ''; } From b7db2185a058a5b23090992a34d32e45e957d7e9 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:39:49 -0600 Subject: [PATCH 63/91] qt54.qtdeclarative: fix Qt module CMake config files --- .../libraries/qt-5/5.4/qtdeclarative/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtdeclarative/default.nix b/pkgs/development/libraries/qt-5/5.4/qtdeclarative/default.nix index 9181c37b225..e2219642a12 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtdeclarative/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtdeclarative/default.nix @@ -5,4 +5,10 @@ qtSubmodule { patches = [ ./0001-nix-profiles-import-paths.patch ]; qtInputs = [ qtbase qtsvg qtxmlpatterns ]; nativeBuildInputs = [ python ]; + postFixup = '' + fixQtModuleCMakeConfig "Qml" + fixQtModuleCMakeConfig "Quick" + fixQtModuleCMakeConfig "QuickTest" + fixQtModuleCMakeConfig "QuickWidgets" + ''; } From a67c2ded6b228685c72b5581e4351299c79c332a Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:40:41 -0600 Subject: [PATCH 64/91] qt54.qtxmlpatterns: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix b/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix index 9a8ddbba2bd..3b22132e4c3 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtxmlpatterns.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtxmlpatterns"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "XmlPatterns" + ''; } From 669dcb34859357a5947a63f12f339b7cf40999a6 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:41:43 -0600 Subject: [PATCH 65/91] qt54.qtx11extras: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtx11extras.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix b/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix index a765161e2d7..db92f135362 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtx11extras.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtx11extras"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "X11Extras" + ''; } From 4d25e971936d57b5737ad5705901196e19c3c88b Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:42:35 -0600 Subject: [PATCH 66/91] qt54.qtwebsockets: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix b/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix index fbdfbbcf0db..c0d0f9e7d71 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtwebsockets.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtwebsockets"; qtInputs = [ qtbase qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "WebSockets" + ''; } From 1a481e58ec23d6e2474d40a3a530910a7daa5ba5 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:43:25 -0600 Subject: [PATCH 67/91] qt54.qtwebkit: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix b/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix index 2620dcdf2d8..7ed3017b95a 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtwebkit/default.nix @@ -31,4 +31,8 @@ qtSubmodule { }; in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ] ++ [ dlopen-webkit-udev ]; + postFixup = '' + fixQtModuleCMakeConfig "WebKit" + fixQtModuleCMakeConfig "WebKitWidgets" + ''; } From 35f33b438caca6b1f0687b8a7ad68384edce0a49 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:43:47 -0600 Subject: [PATCH 68/91] qt54.qttools: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qttools.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qttools.nix b/pkgs/development/libraries/qt-5/5.4/qttools.nix index 65edc450812..a6b29c07cac 100644 --- a/pkgs/development/libraries/qt-5/5.4/qttools.nix +++ b/pkgs/development/libraries/qt-5/5.4/qttools.nix @@ -3,4 +3,11 @@ qtSubmodule { name = "qttools"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "Designer" + fixQtModuleCMakeConfig "Help" + fixQtModuleCMakeConfig "LinguistTools" + fixQtModuleCMakeConfig "UiPlugin" + fixQtModuleCMakeConfig "UiTools" + ''; } From ece0396b5581a054ac770907aa0e70419e6820a2 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:44:20 -0600 Subject: [PATCH 69/91] qt54.qtsvg: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtsvg.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtsvg.nix b/pkgs/development/libraries/qt-5/5.4/qtsvg.nix index b9ccac7cf93..a460d6da4c2 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtsvg.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtsvg.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtsvg"; qtInputs = [ qtbase ]; + postFixup = '' + fixQtModuleCMakeConfig "Svg" + ''; } From 3bb5501a88f553f417c9bd6b23c68efba9c23152 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:44:48 -0600 Subject: [PATCH 70/91] qt54.qtserialport: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix b/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix index 072825dfe9b..2c9575f122e 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtserialport/default.nix @@ -10,4 +10,7 @@ qtSubmodule { libudev = libudev.out; }) ]; + postFixup = '' + fixQtModuleCMakeConfig "SerialPort" + ''; } From 2f0ec07921bc2e03e7c2a3202ebf818a47f1709a Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:45:08 -0600 Subject: [PATCH 71/91] qt54.qtsensors: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtsensors.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtsensors.nix b/pkgs/development/libraries/qt-5/5.4/qtsensors.nix index 61e64dc47e4..5776f45a706 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtsensors.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtsensors.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtsensors"; qtInputs = [ qtbase qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "Sensors" + ''; } From d769d6c3bd719b335883e32ff0d0fe9fadc684ab Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:45:41 -0600 Subject: [PATCH 72/91] qt54.qtquick1: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix b/pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix index d1c7bb389a4..d81abbcd614 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtquick1/default.nix @@ -4,4 +4,7 @@ qtSubmodule { name = "qtquick1"; patches = [ ./0001-nix-profiles-import-paths.patch ]; qtInputs = [ qtscript qtsvg qtwebkit qtxmlpatterns ]; + postFixup = '' + fixQtModuleCMakeConfig "Declarative" + ''; } From a7cce8b329486b22eab45de7d31fe6f8fa9ef5a7 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:46:26 -0600 Subject: [PATCH 73/91] qt54.qtmultimedia: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix b/pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix index b6b4d8ea0cf..8db8fa5f4b9 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtmultimedia.nix @@ -9,4 +9,8 @@ qtSubmodule { pkgconfig alsaLib gstreamer gst-plugins-base libpulseaudio ]; configureFlags = "GST_VERSION=1.0"; + postFixup = '' + fixQtModuleCMakeConfig "Multimedia" + fixQtModuleCMakeConfig "MultimediaWidgets" + ''; } From b3c8878a6598b5c738925412f59d79becff9be67 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:46:45 -0600 Subject: [PATCH 74/91] qt54.qtlocation: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtlocation.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtlocation.nix b/pkgs/development/libraries/qt-5/5.4/qtlocation.nix index 1e134057c4b..0e2ad8bafb3 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtlocation.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtlocation.nix @@ -3,4 +3,8 @@ qtSubmodule { name = "qtlocation"; qtInputs = [ qtbase qtmultimedia ]; + postFixup = '' + fixQtModuleCMakeConfig "Location" + fixQtModuleCMakeConfig "Positioning" + ''; } From 6e623f87845b1233bb759eb803ad33bcd1276077 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:47:27 -0600 Subject: [PATCH 75/91] qt54.qtenginio: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtenginio.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtenginio.nix b/pkgs/development/libraries/qt-5/5.4/qtenginio.nix index b860a73ef89..503a0f7ce4f 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtenginio.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtenginio.nix @@ -3,4 +3,7 @@ qtSubmodule { name = "qtenginio"; qtInputs = [ qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "Enginio" + ''; } From 0c79c7c3b2b0f81574dc50fb3c3e55a6f3ec5df6 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 08:47:45 -0600 Subject: [PATCH 76/91] qt54.qtconnectivity: fix Qt module CMake config files --- pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix b/pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix index 95cd6fea79b..35538c7261f 100644 --- a/pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix +++ b/pkgs/development/libraries/qt-5/5.4/qtconnectivity.nix @@ -3,4 +3,8 @@ qtSubmodule { name = "qtconnectivity"; qtInputs = [ qtbase qtdeclarative ]; + postFixup = '' + fixQtModuleCMakeConfig "Bluetooth" + fixQtModuleCMakeConfig "Nfc" + ''; } From 2f4087b13d71e648c774308ee64a2fa933d308a5 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 09:04:46 -0600 Subject: [PATCH 77/91] google-talk-plugin: udev -> libudev --- .../browsers/mozilla-plugins/google-talk-plugin/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix index 6fd953636a8..f35e88ae89e 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, rpm, cpio, mesa, xorg, cairo , libpng, gtk, glib, gdk_pixbuf, fontconfig, freetype, curl -, dbus_glib, alsaLib, libpulseaudio, udev, pango +, dbus_glib, alsaLib, libpulseaudio, libudev, pango }: with stdenv.lib; @@ -36,7 +36,7 @@ let alsaLib libpulseaudio dbus_glib - udev + libudev curl pango cairo From fe1bae4e58c64a9f0be4beef1ec1cf7f1420b26a Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 29 Jan 2016 09:04:57 -0600 Subject: [PATCH 78/91] spotify: udev -> libudev --- pkgs/applications/audio/spotify/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix index 6e4bf1b7311..70dc832225b 100644 --- a/pkgs/applications/audio/spotify/default.nix +++ b/pkgs/applications/audio/spotify/default.nix @@ -1,6 +1,6 @@ { fetchurl, stdenv, dpkg, xorg, alsaLib, makeWrapper, openssl_1_0_1, freetype , glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf -, libgcrypt, udev, fontconfig, dbus, expat, ffmpeg_0_10, curl, zlib, gnome }: +, libgcrypt, libudev, fontconfig, dbus, expat, ffmpeg_0_10, curl, zlib, gnome }: assert stdenv.system == "x86_64-linux"; @@ -27,7 +27,7 @@ let nss pango stdenv.cc.cc - udev + libudev xorg.libX11 xorg.libXcomposite xorg.libXcursor From 2efbf665a381130c2dafee4736224c1b92c32854 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 09:52:07 -0600 Subject: [PATCH 79/91] qt55.qttools: move runtime executables to $out --- pkgs/development/libraries/qt-5/5.5/qttools.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.5/qttools.nix b/pkgs/development/libraries/qt-5/5.5/qttools.nix index a6b29c07cac..1472691c525 100644 --- a/pkgs/development/libraries/qt-5/5.5/qttools.nix +++ b/pkgs/development/libraries/qt-5/5.5/qttools.nix @@ -4,6 +4,9 @@ qtSubmodule { name = "qttools"; qtInputs = [ qtbase ]; postFixup = '' + moveToOutput "bin/qdbus" "$out" + moveToOutput "bin/qtpaths" "$out" + fixQtModuleCMakeConfig "Designer" fixQtModuleCMakeConfig "Help" fixQtModuleCMakeConfig "LinguistTools" From 588c8499f75d1c1f1c5bd42ca509eee83a6cb15a Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 16:58:40 -0600 Subject: [PATCH 80/91] qt55: don't set output flags by default --- pkgs/development/libraries/qt-5/5.5/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/qt-5/5.5/default.nix b/pkgs/development/libraries/qt-5/5.5/default.nix index 88f064edc7d..955d57350c2 100644 --- a/pkgs/development/libraries/qt-5/5.5/default.nix +++ b/pkgs/development/libraries/qt-5/5.5/default.nix @@ -50,7 +50,7 @@ let configureScript = args.configureScript or "qmake"; outputs = args.outputs or [ "dev" "out" ]; - setOutputFlags = false; + setOutputFlags = args.setOutputFlags or false; enableParallelBuilding = args.enableParallelBuilding or true; From 7ea3225ea47e214e8ba412803f60b1806b673739 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 17:01:00 -0600 Subject: [PATCH 81/91] kde5.breeze: use runtime outputs --- pkgs/desktops/plasma-5.5/default.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/plasma-5.5/default.nix b/pkgs/desktops/plasma-5.5/default.nix index ea1533af757..384fa6f6d27 100644 --- a/pkgs/desktops/plasma-5.5/default.nix +++ b/pkgs/desktops/plasma-5.5/default.nix @@ -48,8 +48,11 @@ let breeze-qt4 = callPackage ./breeze-qt4.nix {}; breeze-qt5 = callPackage ./breeze-qt5.nix {}; breeze = - let version = (builtins.parseDrvName breeze-qt5.name).version; - in symlinkJoin "breeze-${version}" [ breeze-gtk breeze-qt4 breeze-qt5 ]; + let + version = (builtins.parseDrvName breeze-qt5.name).version; + in + symlinkJoin "breeze-${version}" + (map (pkg: pkg.out or pkg) [ breeze-gtk breeze-qt4 breeze-qt5 ]); kde-cli-tools = callPackage ./kde-cli-tools.nix {}; kde-gtk-config = callPackage ./kde-gtk-config {}; kdecoration = callPackage ./kdecoration.nix {}; From a5b7cf093937c114e515d8d74be28888d55193fd Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 17:01:14 -0600 Subject: [PATCH 82/91] kde5.kscreen: remove redundant propagatedUserEnvPkgs --- pkgs/desktops/plasma-5.5/kscreen.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkgs/desktops/plasma-5.5/kscreen.nix b/pkgs/desktops/plasma-5.5/kscreen.nix index 2cfd0df2e1d..a521a799362 100644 --- a/pkgs/desktops/plasma-5.5/kscreen.nix +++ b/pkgs/desktops/plasma-5.5/kscreen.nix @@ -23,11 +23,6 @@ plasmaPackage { qtdeclarative qtgraphicaleffects ]; - propagatedUserEnvPkgs = [ - libkscreen # D-Bus service - qtdeclarative # QML import - qtgraphicaleffects # QML import - ]; postInstall = '' wrapQtProgram "$out/bin/kscreen-console" ''; From 7b11d5066a7bd019466332e321e958ed03c53455 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 17:01:29 -0600 Subject: [PATCH 83/91] kde5.plasma-desktop: remove redundant propagatedUserEnvPkgs --- pkgs/desktops/plasma-5.5/plasma-desktop/default.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/desktops/plasma-5.5/plasma-desktop/default.nix b/pkgs/desktops/plasma-5.5/plasma-desktop/default.nix index a73060ad1af..5f27efc7f24 100644 --- a/pkgs/desktops/plasma-5.5/plasma-desktop/default.nix +++ b/pkgs/desktops/plasma-5.5/plasma-desktop/default.nix @@ -60,9 +60,6 @@ plasmaPackage rec { qtquickcontrols qtx11extras ]; - # All propagatedBuildInputs should be present in the profile because - # wrappers cannot be used here. - propagatedUserEnvPkgs = propagatedBuildInputs; patches = [ ./0001-qt-5.5-QML-import-paths.patch (substituteAll { From 30d6a7199554578b89deeed610f84097c1f35ea4 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 17:01:48 -0600 Subject: [PATCH 84/91] kde5.plasma-workspace: remove redundant propagatedUserEnvPkgs --- pkgs/desktops/plasma-5.5/plasma-mediacenter.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/pkgs/desktops/plasma-5.5/plasma-mediacenter.nix b/pkgs/desktops/plasma-5.5/plasma-mediacenter.nix index afd8a18bbbd..7088f45d64e 100644 --- a/pkgs/desktops/plasma-5.5/plasma-mediacenter.nix +++ b/pkgs/desktops/plasma-5.5/plasma-mediacenter.nix @@ -17,7 +17,4 @@ plasmaPackage rec { baloo kactivities kdeclarative kfilemetadata ki18n kio plasma-framework ]; - # All propagatedBuildInputs should be present in the profile because - # wrappers cannot be used here. - propagatedUserEnvPkgs = propagatedBuildInputs; } From a7ae370fa3d0c0851d5ee2ef3cb3a24a31e3ecb4 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 17:02:17 -0600 Subject: [PATCH 85/91] kde5.plasma-workspace: propagate inputs automatically --- .../plasma-5.5/plasma-workspace/default.nix | 39 +++++++--- .../plasma-workspace/startkde.patch | 72 +++++++++---------- 2 files changed, 65 insertions(+), 46 deletions(-) diff --git a/pkgs/desktops/plasma-5.5/plasma-workspace/default.nix b/pkgs/desktops/plasma-5.5/plasma-workspace/default.nix index 2d9364d446e..01c5c63ce0a 100644 --- a/pkgs/desktops/plasma-5.5/plasma-workspace/default.nix +++ b/pkgs/desktops/plasma-5.5/plasma-workspace/default.nix @@ -11,7 +11,7 @@ , xprop, xrdb, xset, xsetroot, solid, qtquickcontrols }: -plasmaPackage rec { +plasmaPackage { name = "plasma-workspace"; nativeBuildInputs = [ @@ -20,10 +20,11 @@ plasmaPackage rec { makeQtWrapper ]; buildInputs = [ - kcmutils kcrash kdbusaddons kdesu kdewebkit kjsembed knewstuff - knotifyconfig kpackage ktextwidgets kwallet kwayland kxmlrpcclient - libdbusmenu libSM libXcursor networkmanager-qt pam phonon - qtscript wayland + dbus_tools kcmutils kconfig kcrash kdbusaddons kdesu kdewebkit + kinit kjsembed knewstuff knotifyconfig kpackage kservice + ktextwidgets kwallet kwayland kxmlrpcclient libdbusmenu libSM + libXcursor mkfontdir networkmanager-qt pam phonon qtscript qttools + socat wayland xmessage xprop xset xsetroot ]; propagatedBuildInputs = [ baloo kactivities kdeclarative kdelibs4support kglobalaccel @@ -32,13 +33,31 @@ plasmaPackage rec { ]; patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); - inherit bash coreutils gnused gnugrep socat; - inherit kconfig kinit kservice qttools; - inherit dbus_tools mkfontdir xmessage xprop xrdb xset xsetroot; + postPatch = '' - substituteAllInPlace startkde/startkde.cmake + substituteInPlace startkde/startkde.cmake \ + --subst-var-by bash $(type -P bash) \ + --subst-var-by sed $(type -P sed) \ + --subst-var-by grep $(type -P grep) \ + --subst-var-by socat $(type -P socat) \ + --subst-var-by kcheckrunning $(type -P kcheckrunning) \ + --subst-var-by xmessage $(type -P xmessage) \ + --subst-var-by tr $(type -P tr) \ + --subst-var-by qtpaths $(type -P qtpaths) \ + --subst-var-by qdbus $(type -P qdbus) \ + --subst-var-by dbus-launch $(type -P dbus-launch) \ + --subst-var-by mkfontdir $(type -P mkfontdir) \ + --subst-var-by xset $(type -P xset) \ + --subst-var-by xsetroot $(type -P xsetroot) \ + --subst-var-by xprop $(type -P xprop) \ + --subst-var-by start_kdeinit_wrapper "${kinit.out}/lib/libexec/kf5/start_kdeinit_wrapper" \ + --subst-var-by kwrapper5 $(type -P kwrapper5) \ + --subst-var-by kdeinit5_shutdown $(type -P kdeinit5_shutdown) \ + --subst-var-by kbuildsycoca5 $(type -P kbuildsycoca5) \ + --subst-var-by kreadconfig5 $(type -P kreadconfig5) \ + --subst-var out substituteInPlace startkde/kstartupconfig/kstartupconfig.cpp \ - --replace kdostartupconfig5 $out/bin/kdostartupconfig5 + --replace kdostartupconfig5 $out/bin/kdostartupconfig5 ''; postInstall = '' diff --git a/pkgs/desktops/plasma-5.5/plasma-workspace/startkde.patch b/pkgs/desktops/plasma-5.5/plasma-workspace/startkde.patch index 802c92da64d..17c0ccf0ca9 100644 --- a/pkgs/desktops/plasma-5.5/plasma-workspace/startkde.patch +++ b/pkgs/desktops/plasma-5.5/plasma-workspace/startkde.patch @@ -4,7 +4,7 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake +++ plasma-workspace-5.5.1/startkde/startkde.cmake @@ -1,8 +1,31 @@ -#!/bin/sh -+#!@bash@/bin/bash ++#!@bash@ # # DEFAULT KDE STARTUP SCRIPT ( @PROJECT_VERSION@ ) # @@ -29,7 +29,7 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake +# in Trolltech.conf. A better solution would be to stop +# Qt from doing this wackiness in the first place. +if [ -e $HOME/.config/Trolltech.conf ]; then -+ @gnused@/bin/sed -e '/nix\\store\|nix\/store/ d' -i $HOME/.config/Trolltech.conf ++ @sed@ -e '/nix\\store\|nix\/store/ d' -i $HOME/.config/Trolltech.conf +fi + if test "x$1" = x--failsafe; then @@ -54,13 +54,13 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake - # Check if a KDE session already is running and whether it's possible to connect to X -kcheckrunning -+@out@/bin/kcheckrunning ++@kcheckrunning@ kcheckrunning_result=$? if test $kcheckrunning_result -eq 0 ; then - echo "KDE seems to be already running on this display." - xmessage -geometry 500x100 "KDE seems to be already running on this display." > /dev/null 2>/dev/null + echo "KDE seems to be already running on this display." -+ @xmessage@/bin/xmessage -geometry 500x100 "KDE seems to be already running on this display." ++ @xmessage@ -geometry 500x100 "KDE seems to be already running on this display." exit 1 elif test $kcheckrunning_result -eq 2 ; then echo "\$DISPLAY is not set or cannot connect to the X server." @@ -80,7 +80,7 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake -fi - -mkdir -p $configDir -+configDir=$(@qttools@/bin/qtpaths --writable-path GenericConfigLocation) ++configDir=$(@qtpaths@ --writable-path GenericConfigLocation) +mkdir -p "$configDir" #This is basically setting defaults so we can use them with kstartupconfig5 @@ -126,7 +126,7 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake returncode=$? if test $returncode -ne 0; then - xmessage -geometry 500x100 "kstartupconfig5 does not exist or fails. The error code is $returncode. Check your installation." -+ @xmessage@/bin/xmessage -geometry 500x100 "kstartupconfig5 does not exist or fails. The error code is $returncode. Check your installation." ++ @xmessage@ -geometry 500x100 "kstartupconfig5 does not exist or fails. The error code is $returncode. Check your installation." exit 1 fi [ -r $configDir/startupconfig ] && . $configDir/startupconfig @@ -134,7 +134,7 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake export QT_DEVICE_PIXEL_RATIO=$kdeglobals_kscreen_scalefactor fi -+XCURSOR_PATH=~/.icons:$(echo "$XDG_DATA_DIRS" | @coreutils@/bin/tr ":" "\n" | @gnused@/bin/sed 's,$,/icons,g' | @coreutils@/bin/tr "\n" ":") ++XCURSOR_PATH=~/.icons:$(echo "$XDG_DATA_DIRS" | @tr@ ":" "\n" | @sed@ 's,$,/icons,g' | @tr@ "\n" ":") +export XCURSOR_PATH + # XCursor mouse theme needs to be applied here to work even for kded or ksmserver @@ -160,7 +160,7 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake +# If the user has overwritten fonts, the cursor font may be different now +# so don't move this up. +# -+@xsetroot@/bin/xsetroot -cursor_name left_ptr ++@xsetroot@ -cursor_name left_ptr dl=$DESKTOP_LOCKED unset DESKTOP_LOCKED # Don't want it in the environment @@ -168,14 +168,14 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake +# Make sure that D-Bus is running +# D-Bus autolaunch is broken +if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then -+ eval `@dbus_tools@/bin/dbus-launch --sh-syntax --exit-with-session` ++ eval `@dbus-launch@ --sh-syntax --exit-with-session` +fi -+if @qttools@/bin/qdbus >/dev/null 2>/dev/null; then ++if @qdbus@ >/dev/null 2>/dev/null; then + : # ok +else + echo 'startkde: Could not start D-Bus. Can you call qdbus?' 1>&2 + test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null -+ @xmessage@/bin/xmessage -geometry 500x100 "Could not start D-Bus. Can you call qdbus?" ++ @xmessage@ -geometry 500x100 "Could not start D-Bus. Can you call qdbus?" + exit 1 +fi + @@ -195,7 +195,7 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake -# TODO: Use GenericConfigLocation once we depend on Qt 5.4 -scriptpath=`qtpaths --paths ConfigLocation | tr ':' '\n' | sed 's,$,/plasma-workspace,g'` -+scriptpath=$(@qttools@/bin/qtpaths --paths GenericConfigLocation | tr ':' '\n' | @gnused@/bin/sed 's,$,/plasma-workspace,g') ++scriptpath=$(@qtpaths@ --paths GenericConfigLocation | tr ':' '\n' | @sed@ 's,$,/plasma-workspace,g') # Add /env/ to the directory to locate the scripts to be sourced for prefix in `echo $scriptpath`; do @@ -204,7 +204,7 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake if test -n "$KDEDIRS"; then - kdedirs_first=`echo "$KDEDIRS"|sed -e 's/:.*//'` -+ kdedirs_first=`echo "$KDEDIRS" | @gnused@/bin/sed -e 's/:.*//'` ++ kdedirs_first=`echo "$KDEDIRS" | @sed@ -e 's/:.*//'` sys_odir=$kdedirs_first/share/fonts/override sys_fdir=$kdedirs_first/share/fonts else @@ -216,10 +216,10 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake -test -d "$usr_odir" && (mkfontdir "$usr_odir" ; xset +fp "$usr_odir") -test -d "$usr_fdir" && (mkfontdir "$usr_fdir" ; xset fp+ "$usr_fdir") -test -d "$sys_fdir" && xset fp+ "$sys_fdir" -+test -d "$sys_odir" && @xset@/bin/xset +fp "$sys_odir" -+test -d "$usr_odir" && ( @mkfontdir@/bin/mkfontdir "$usr_odir" ; @xset@/bin/xset +fp "$usr_odir" ) -+test -d "$usr_fdir" && ( @mkfontdir@/bin/mkfontdir "$usr_fdir" ; @xset@/bin/xset fp+ "$usr_fdir" ) -+test -d "$sys_fdir" && @xset@/bin/xset fp+ "$sys_fdir" ++test -d "$sys_odir" && @xset@ +fp "$sys_odir" ++test -d "$usr_odir" && ( @mkfontdir@ "$usr_odir" ; @xset@ +fp "$usr_odir" ) ++test -d "$usr_fdir" && ( @mkfontdir@ "$usr_fdir" ; @xset@ fp+ "$usr_fdir" ) ++test -d "$sys_fdir" && @xset@ fp+ "$sys_fdir" # Ask X11 to rebuild its font list. -xset fp rehash @@ -233,7 +233,7 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake -# so don't move this up. -# -xsetroot -cursor_name left_ptr -+@xset@/bin/xset fp rehash ++@xset@ fp rehash # Get Ghostscript to look into user's KDE fonts dir for additional Fontmap if test -n "$GS_LIB" ; then @@ -269,12 +269,12 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake KDE_FULL_SESSION=true export KDE_FULL_SESSION -xprop -root -f KDE_FULL_SESSION 8t -set KDE_FULL_SESSION true -+@xprop@/bin/xprop -root -f KDE_FULL_SESSION 8t -set KDE_FULL_SESSION true ++@xprop@ -root -f KDE_FULL_SESSION 8t -set KDE_FULL_SESSION true KDE_SESSION_VERSION=5 export KDE_SESSION_VERSION -xprop -root -f KDE_SESSION_VERSION 32c -set KDE_SESSION_VERSION 5 -+@xprop@/bin/xprop -root -f KDE_SESSION_VERSION 32c -set KDE_SESSION_VERSION 5 ++@xprop@ -root -f KDE_SESSION_VERSION 32c -set KDE_SESSION_VERSION 5 KDE_SESSION_UID=`id -ru` export KDE_SESSION_UID @@ -283,12 +283,12 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake # At this point all the environment is ready, let's send it to kwalletd if running if test -n "$PAM_KWALLET_LOGIN" ; then - env | socat STDIN UNIX-CONNECT:$PAM_KWALLET_LOGIN -+ env | @socat@/bin/socat STDIN UNIX-CONNECT:$PAM_KWALLET_LOGIN ++ env | @socat@ STDIN UNIX-CONNECT:$PAM_KWALLET_LOGIN fi # ...and also to kwalletd5 if test -n "$PAM_KWALLET5_LOGIN" ; then - env | socat STDIN UNIX-CONNECT:$PAM_KWALLET5_LOGIN -+ env | @socat@/bin/socat STDIN UNIX-CONNECT:$PAM_KWALLET5_LOGIN ++ env | @socat@ STDIN UNIX-CONNECT:$PAM_KWALLET5_LOGIN fi # At this point all environment variables are set, let's send it to the DBus session server to update the activation environment @@ -297,27 +297,27 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake echo 'startkde: Could not sync environment to dbus.' 1>&2 test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null - xmessage -geometry 500x100 "Could not sync environment to dbus." -+ @xmessage@/bin/xmessage -geometry 500x100 "Could not sync environment to dbus." ++ @xmessage@ -geometry 500x100 "Could not sync environment to dbus." exit 1 fi # We set LD_BIND_NOW to increase the efficiency of kdeinit. # kdeinit unsets this variable before loading applications. -LD_BIND_NOW=true @CMAKE_INSTALL_FULL_LIBEXECDIR_KF5@/start_kdeinit_wrapper --kded +kcminit_startup -+LD_BIND_NOW=true @kinit@/lib/libexec/kf5/start_kdeinit_wrapper --kded +kcminit_startup ++LD_BIND_NOW=true @start_kdeinit_wrapper@ --kded +kcminit_startup if test $? -ne 0; then # Startup error echo 'startkde: Could not start kdeinit5. Check your installation.' 1>&2 test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null - xmessage -geometry 500x100 "Could not start kdeinit5. Check your installation." -+ @xmessage@/bin/xmessage -geometry 500x100 "Could not start kdeinit5. Check your installation." ++ @xmessage@ -geometry 500x100 "Could not start kdeinit5. Check your installation." exit 1 fi +# (NixOS) We run kbuildsycoca5 before starting the user session because things +# may be missing or moved if they have run nixos-rebuild and it may not be +# possible for them to start Konsole to run it manually! -+@kservice@/bin/kbuildsycoca5 ++@kbuildsycoca5@ + # finally, give the session control to the session manager # see kdebase/ksmserver for the description of the rest of the startup sequence @@ -327,33 +327,33 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake KSMSERVEROPTIONS="" test -n "$dl" && KSMSERVEROPTIONS=" --lockscreen" -kwrapper5 @CMAKE_INSTALL_FULL_BINDIR@/ksmserver $KDEWM $KSMSERVEROPTIONS -+@kinit@/bin/kwrapper5 @CMAKE_INSTALL_FULL_BINDIR@/ksmserver $KDEWM $KSMSERVEROPTIONS ++@kwrapper5@ @CMAKE_INSTALL_FULL_BINDIR@/ksmserver $KDEWM $KSMSERVEROPTIONS if test $? -eq 255; then # Startup error echo 'startkde: Could not start ksmserver. Check your installation.' 1>&2 test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null - xmessage -geometry 500x100 "Could not start ksmserver. Check your installation." -+ @xmessage@/bin/xmessage -geometry 500x100 "Could not start ksmserver. Check your installation." ++ @xmessage@ -geometry 500x100 "Could not start ksmserver. Check your installation." fi -wait_drkonqi=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Enabled --default true` -+wait_drkonqi=`@kconfig@/bin/kreadconfig5 --file startkderc --group WaitForDrKonqi --key Enabled --default true` ++wait_drkonqi=`@kreadconfig5@ --file startkderc --group WaitForDrKonqi --key Enabled --default true` if test x"$wait_drkonqi"x = x"true"x ; then # wait for remaining drkonqi instances with timeout (in seconds) - wait_drkonqi_timeout=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900` -+ wait_drkonqi_timeout=`@kconfig@/bin/kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900` ++ wait_drkonqi_timeout=`@kreadconfig5@ --file startkderc --group WaitForDrKonqi --key Timeout --default 900` wait_drkonqi_counter=0 - while $qdbus | grep "^[^w]*org.kde.drkonqi" > /dev/null ; do -+ while @qttools@/bin/qdbus | @gnugrep@/bin/grep "^[^w]*org.kde.drkonqi" > /dev/null ; do ++ while @qdbus@ | @grep@ "^[^w]*org.kde.drkonqi" > /dev/null ; do sleep 5 wait_drkonqi_counter=$((wait_drkonqi_counter+5)) if test "$wait_drkonqi_counter" -ge "$wait_drkonqi_timeout" ; then # ask remaining drkonqis to die in a graceful way - $qdbus | grep 'org.kde.drkonqi-' | while read address ; do - $qdbus "$address" "/MainApplication" "quit" -+ @qttools@/bin/qdbus | @gnugrep@/bin/grep 'org.kde.drkonqi-' | while read address ; do -+ @qttools@/bin/qdbus "$address" "/MainApplication" "quit" ++ @qdbus@ | @grep@ 'org.kde.drkonqi-' | while read address ; do ++ @qdbus@ "$address" "/MainApplication" "quit" done break fi @@ -362,14 +362,14 @@ Index: plasma-workspace-5.5.1/startkde/startkde.cmake # Clean up -kdeinit5_shutdown -+@kinit@/bin/kdeinit5_shutdown ++@kdeinit5_shutdown@ unset KDE_FULL_SESSION -xprop -root -remove KDE_FULL_SESSION -+@xprop@/bin/xprop -root -remove KDE_FULL_SESSION ++@xprop@ -root -remove KDE_FULL_SESSION unset KDE_SESSION_VERSION -xprop -root -remove KDE_SESSION_VERSION -+@xprop@/bin/xprop -root -remove KDE_SESSION_VERSION ++@xprop@ -root -remove KDE_SESSION_VERSION unset KDE_SESSION_UID echo 'startkde: Done.' 1>&2 From 98aa0818124176bdbef278553bad18baaa1ca033 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 17:02:31 -0600 Subject: [PATCH 86/91] kde5.breeze-icons: remove redundant propagatedUserEnvPkgs --- pkgs/development/libraries/kde-frameworks-5.18/breeze-icons.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/kde-frameworks-5.18/breeze-icons.nix b/pkgs/development/libraries/kde-frameworks-5.18/breeze-icons.nix index 879262c56a4..44cc99daf26 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/breeze-icons.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/breeze-icons.nix @@ -6,5 +6,5 @@ kdeFramework { name = "breeze-icons"; nativeBuildInputs = [ extra-cmake-modules ]; - propagatedUserEnvPkgs = [ qtsvg ]; + buildInputs = [ qtsvg ]; } From 6c327da00791e5cf45c45984e16aabde6a24d5e4 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 17:02:46 -0600 Subject: [PATCH 87/91] kde5.kservice: remove redundant propagatedUserEnvPkgs --- .../libraries/kde-frameworks-5.18/kservice/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix b/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix index 24c5e681ca8..3a27d85b916 100644 --- a/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix +++ b/pkgs/development/libraries/kde-frameworks-5.18/kservice/default.nix @@ -8,7 +8,6 @@ kdeFramework { nativeBuildInputs = [ kdoctools ]; buildInputs = [ kcrash kdbusaddons ]; propagatedBuildInputs = [ kconfig kcoreaddons ki18n kwindowsystem ]; - propagatedUserEnvPkgs = [ kcoreaddons ]; patches = [ ./0001-qdiriterator-follow-symlinks.patch ./0002-no-canonicalize-path.patch From 29e2b511db3fd6df110ee01d1a12bd5d3540fd88 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 17:03:08 -0600 Subject: [PATCH 88/91] sddm: link theme runtime outputs --- pkgs/applications/display-managers/sddm/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix index e4f68d786f4..83e2e0018c1 100644 --- a/pkgs/applications/display-managers/sddm/default.nix +++ b/pkgs/applications/display-managers/sddm/default.nix @@ -72,7 +72,7 @@ stdenv.mkDerivation { nativeBuildInputs = [ lndir makeQtWrapper ]; buildInputs = [ unwrapped ] ++ themes; - inherit themes; + themes = map (pkg: pkg.out or pkg) themes; inherit unwrapped; installPhase = '' From db419ce555c0ea9b4c4ef812239a392bf9f3130c Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 17:03:25 -0600 Subject: [PATCH 89/91] sddm: remove bash-ism --- pkgs/applications/display-managers/sddm/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix index 83e2e0018c1..8e1812ec013 100644 --- a/pkgs/applications/display-managers/sddm/default.nix +++ b/pkgs/applications/display-managers/sddm/default.nix @@ -81,7 +81,7 @@ stdenv.mkDerivation { mkdir -p "$out/share/sddm" for pkg in $unwrapped $themes; do local sddmDir="$pkg/share/sddm" - if [[ -d "$sddmDir" ]]; then + if [ -d "$sddmDir" ]; then lndir -silent "$sddmDir" "$out/share/sddm" fi done From 4768f41e36dca53ff1c79ea73f6d74e3ccab0234 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 17:03:42 -0600 Subject: [PATCH 90/91] nixos/kde5: use runtime outputs --- nixos/modules/services/x11/desktop-managers/kde5.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/x11/desktop-managers/kde5.nix b/nixos/modules/services/x11/desktop-managers/kde5.nix index e8c768e41fa..4b238938d92 100644 --- a/nixos/modules/services/x11/desktop-managers/kde5.nix +++ b/nixos/modules/services/x11/desktop-managers/kde5.nix @@ -55,12 +55,12 @@ in services.xserver.desktopManager.session = singleton { name = "kde5"; bgSupport = true; - start = ''exec ${kde5.plasma-workspace}/bin/startkde;''; + start = ''exec startkde;''; }; security.setuidOwners = singleton { program = "kcheckpass"; - source = "${kde5.plasma-workspace}/lib/libexec/kcheckpass"; + source = "${kde5.plasma-workspace.out}/lib/libexec/kcheckpass"; owner = "root"; group = "root"; setuid = true; @@ -168,12 +168,12 @@ in # Enable GTK applications to load SVG icons environment.variables = mkIf (lib.hasAttr "breeze-icons" kde5) { - GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"; + GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"; }; fonts.fonts = [ (kde5.oxygen-fonts or pkgs.noto-fonts) ]; - programs.ssh.askPassword = "${kde5.ksshaskpass}/bin/ksshaskpass"; + programs.ssh.askPassword = "${kde5.ksshaskpass.out}/bin/ksshaskpass"; # Enable helpful DBus services. services.udisks2.enable = true; From f43eb5ece02ef40ca17675cd3dc4dfe8a11fe5de Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Sun, 31 Jan 2016 21:11:30 -0600 Subject: [PATCH 91/91] qt54.qttools: move runtime executables to $out --- pkgs/development/libraries/qt-5/5.4/qttools.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/qt-5/5.4/qttools.nix b/pkgs/development/libraries/qt-5/5.4/qttools.nix index a6b29c07cac..1472691c525 100644 --- a/pkgs/development/libraries/qt-5/5.4/qttools.nix +++ b/pkgs/development/libraries/qt-5/5.4/qttools.nix @@ -4,6 +4,9 @@ qtSubmodule { name = "qttools"; qtInputs = [ qtbase ]; postFixup = '' + moveToOutput "bin/qdbus" "$out" + moveToOutput "bin/qtpaths" "$out" + fixQtModuleCMakeConfig "Designer" fixQtModuleCMakeConfig "Help" fixQtModuleCMakeConfig "LinguistTools"