diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2017-02-27 20:15:27 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2017-02-27 20:15:27 +0100 |
commit | a1919db7cd20e0bd5102d9e806a70e49194c177a (patch) | |
tree | 2580614733b3c910ee5adc0dbe9ec0f12f038554 /pkgs/build-support | |
parent | 18bd007714db261bedad8d3f175e0df5f3a60cdb (diff) | |
parent | 8def08a56cf304fbc55090b280e35b798b72055a (diff) |
Merge branch 'master' into staging
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/kde/derivation.nix | 17 | ||||
-rw-r--r-- | pkgs/build-support/kde/wrapper.nix | 67 | ||||
-rw-r--r-- | pkgs/build-support/kdewrapper/default.nix | 44 | ||||
-rw-r--r-- | pkgs/build-support/vm/default.nix | 12 |
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"; }; |