about summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2017-02-27 20:15:27 +0100
committerVladimír Čunát <vcunat@gmail.com>2017-02-27 20:15:27 +0100
commita1919db7cd20e0bd5102d9e806a70e49194c177a (patch)
tree2580614733b3c910ee5adc0dbe9ec0f12f038554 /pkgs/build-support
parent18bd007714db261bedad8d3f175e0df5f3a60cdb (diff)
parent8def08a56cf304fbc55090b280e35b798b72055a (diff)
downloadnixlib-a1919db7cd20e0bd5102d9e806a70e49194c177a.tar
nixlib-a1919db7cd20e0bd5102d9e806a70e49194c177a.tar.gz
nixlib-a1919db7cd20e0bd5102d9e806a70e49194c177a.tar.bz2
nixlib-a1919db7cd20e0bd5102d9e806a70e49194c177a.tar.lz
nixlib-a1919db7cd20e0bd5102d9e806a70e49194c177a.tar.xz
nixlib-a1919db7cd20e0bd5102d9e806a70e49194c177a.tar.zst
nixlib-a1919db7cd20e0bd5102d9e806a70e49194c177a.zip
Merge branch 'master' into staging
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/kde/derivation.nix17
-rw-r--r--pkgs/build-support/kde/wrapper.nix67
-rw-r--r--pkgs/build-support/kdewrapper/default.nix44
-rw-r--r--pkgs/build-support/vm/default.nix12
4 files changed, 90 insertions, 50 deletions
diff --git a/pkgs/build-support/kde/derivation.nix b/pkgs/build-support/kde/derivation.nix
new file mode 100644
index 000000000000..2e29a0a661e1
--- /dev/null
+++ b/pkgs/build-support/kde/derivation.nix
@@ -0,0 +1,17 @@
+{ stdenv, lib, debug ? false }:
+
+args:
+
+stdenv.mkDerivation (args // {
+
+  outputs = args.outputs or [ "out" "dev" ];
+
+  propagatedUserEnvPkgs =
+    builtins.map lib.getBin (args.propagatedBuildInputs or []);
+
+  cmakeFlags =
+    (args.cmakeFlags or [])
+    ++ [ "-DBUILD_TESTING=OFF" ]
+    ++ lib.optional debug "-DCMAKE_BUILD_TYPE=Debug";
+
+})
diff --git a/pkgs/build-support/kde/wrapper.nix b/pkgs/build-support/kde/wrapper.nix
new file mode 100644
index 000000000000..f5add12e8eca
--- /dev/null
+++ b/pkgs/build-support/kde/wrapper.nix
@@ -0,0 +1,67 @@
+{ stdenv, lib, makeWrapper, buildEnv }:
+
+packages:
+
+let
+  packages_ = if builtins.isList packages then packages else [packages];
+
+  unwrapped = lib.concatMap (p: if builtins.isList p.unwrapped then p.unwrapped else [p.unwrapped]) packages_;
+  targets = lib.concatMap (p: p.targets) packages_;
+  paths = lib.concatMap (p: p.paths or []) packages_;
+
+  name =
+    if builtins.length unwrapped == 1
+    then (lib.head unwrapped).name
+    else "kde-application";
+  meta =
+    if builtins.length unwrapped == 1
+    then (lib.head unwrapped).meta
+    else {};
+
+  env = buildEnv {
+    inherit name meta;
+    paths = builtins.map lib.getBin (unwrapped ++ paths);
+    pathsToLink = [ "/bin" "/share" "/lib/qt5" "/etc/xdg" ];
+  };
+in
+
+stdenv.mkDerivation {
+  inherit name meta;
+  preferLocalBuild = true;
+
+  inherit unwrapped env targets;
+
+  passthru = {
+    inherit targets paths;
+    unwrapped = if builtins.length unwrapped == 1 then lib.head unwrapped else unwrapped;
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildCommand = ''
+    for t in $targets; do
+        good=""
+        for drv in $unwrapped; do
+            if [ -a "$drv/$t" ]; then
+                makeWrapper "$drv/$t" "$out/$t" \
+                    --argv0 '"$0"' \
+                    --suffix PATH : "$env/bin" \
+                    --prefix XDG_CONFIG_DIRS : "$env/etc/xdg" \
+                    --prefix XDG_DATA_DIRS : "$env/share" \
+                    --set QML_IMPORT_PATH "$env/lib/qt5/imports" \
+                    --set QML2_IMPORT_PATH "$env/lib/qt5/qml" \
+                    --set QT_PLUGIN_PATH "$env/lib/qt5/plugins"
+                good="1"
+                break
+            fi
+        done
+        if [ -z "$good" ]; then
+            echo "file or directory not found in derivations: $t"
+            exit 1
+        fi
+    done
+
+    mkdir -p "$out/nix-support"
+    echo "$unwrapped" > "$out/nix-support/propagated-user-env-packages"
+  '';
+}
diff --git a/pkgs/build-support/kdewrapper/default.nix b/pkgs/build-support/kdewrapper/default.nix
deleted file mode 100644
index 64dfd7d0ca6b..000000000000
--- a/pkgs/build-support/kdewrapper/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, kde4, shared_mime_info, extraLibs ? [] }:
-
-/* Supply a KDE program, and it will have the necessary KDE vars to
-  get icons, mime types, etc. working.
-  For example:
-  
-  packageOverrides = pkgs : {
-    kdenliveWrapped = kde4.wrapper kde4.kdenlive;
-  };
-  */
-program:
-
-let
-  libs = with kde4; [ kdelibs kde_runtime oxygen_icons shared_mime_info ]
-    ++ extraLibs;
-in
-stdenv.mkDerivation {
-  name = program.name + "-wrapped";
-
-  inherit libs;
-
-  buildCommand = ''
-    mkdir -p $out/bin
-
-    KDEDIRS=${program}
-    QT_PLUGIN_PATH=${program}/lib/qt4/plugins:${program}/lib/kde4/plugins
-    for a in $libs; do
-      KDEDIRS=$a''${KDEDIRS:+:}$KDEDIRS
-      QT_PLUGIN_PATH=$a/lib/qt4/plugins:$a/lib/kde4/plugins''${QT_PLUGIN_PATH:+:}$QT_PLUGIN_PATH
-    done
-    for a in ${program}/bin/*; do 
-      PROG=$out/bin/`basename $a` 
-    cat > $PROG << END
-    #!/bin/sh
-    export KDEDIRS=$KDEDIRS\''${KDEDIRS:+:}\$KDEDIRS
-    export QT_PLUGIN_PATH=$QT_PLUGIN_PATH\''${QT_PLUGIN_PATH:+:}\$QT_PLUGIN_PATH
-    exec $a "\$@"
-    END
-    chmod +x $PROG
-    done
-  '';
-
-  preferLocalBuild = true;
-}
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 562344dfcf72..19a3f24a470d 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -866,7 +866,7 @@ rec {
       fullName = "Fedora 10 (i386)";
       packagesList = fetchurl {
         url = mirror://fedora/linux/releases/10/Everything/i386/os/repodata/beeea88d162e76993c25b9dd8139868274ee7fa1-primary.xml.gz;
-        sha1 = "beeea88d162e76993c25b9dd8139868274ee7fa1";
+        sha256 = "17lyvzqjsxw3ll7726dpg14f9jc2p3fz5cr5cwd8hp3rkm5nfclv";
       };
       urlPrefix = mirror://fedora/linux/releases/10/Everything/i386/os;
       packages = commonFedoraPackages ++ [ "cronie" "util-linux-ng" ];
@@ -877,7 +877,7 @@ rec {
       fullName = "Fedora 10 (x86_64)";
       packagesList = fetchurl {
         url = mirror://fedora/linux/releases/10/Everything/x86_64/os/repodata/7958210175e86b5cc843cf4bd0bc8659e445e261-primary.xml.gz;
-        sha1 = "7958210175e86b5cc843cf4bd0bc8659e445e261";
+        sha256 = "02pzqmb26zmmzdni11dip3bar4kr54ddsrq9z4vda7ldwwkqd3py";
       };
       urlPrefix = mirror://fedora/linux/releases/10/Everything/x86_64/os;
       archs = ["noarch" "x86_64"];
@@ -1325,7 +1325,7 @@ rec {
       fullName = "Ubuntu 7.10 Gutsy (i386)";
       packagesList = fetchurl {
         url = mirror://ubuntu/dists/gutsy/main/binary-i386/Packages.bz2;
-        sha1 = "8b52ee3d417700e2b2ee951517fa25a8792cabfd";
+        sha256 = "0fmac8svxq86a4w878g6syczvy5ff4jrdc1gajd3xd8z0dypnw27";
       };
       urlPrefix = mirror://ubuntu;
       packages = commonDebianPackages;
@@ -1336,7 +1336,7 @@ rec {
       fullName = "Ubuntu 8.04 Hardy (i386)";
       packagesList = fetchurl {
         url = mirror://ubuntu/dists/hardy/main/binary-i386/Packages.bz2;
-        sha1 = "db74581ee75cb3bee2a8ae62364e97956c723259";
+        sha256 = "19132nc9fhdfmgmvn834lk0d8c0n3jv0ndz9inyynh9k6pc8b5hd";
       };
       urlPrefix = mirror://ubuntu;
       packages = commonDebianPackages;
@@ -1347,7 +1347,7 @@ rec {
       fullName = "Ubuntu 8.04 Hardy (amd64)";
       packagesList = fetchurl {
         url = mirror://ubuntu/dists/hardy/main/binary-amd64/Packages.bz2;
-        sha1 = "d1f1d2b3cc62533d6e4337f2696a5d27235d1f28";
+        sha256 = "1xjcgh0ydixmim7kgxss0mhfw0sibpgygvgsyac4bdz9m503sj3h";
       };
       urlPrefix = mirror://ubuntu;
       packages = commonDebianPackages;
@@ -1411,7 +1411,7 @@ rec {
     ubuntu910x86_64 = {
       name = "ubuntu-9.10-karmic-amd64";
       fullName = "Ubuntu 9.10 Karmic (amd64)";
-     packagesList = fetchurl {
+      packagesList = fetchurl {
         url = mirror://ubuntu/dists/karmic/main/binary-amd64/Packages.bz2;
         sha256 = "3a604fcb0c135eeb8b95da3e90a8fd4cfeff519b858cd3c9e62ea808cb9fec40";
       };