summaryrefslogtreecommitdiffstats
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)
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";
};