From 5a9ac9fed70b63b7ec27e11ba7f4b5673c25a946 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 12 May 2015 17:28:06 +0200 Subject: [PATCH 01/21] Use gcc 4.9 by default --- pkgs/tools/misc/pipelight/default.nix | 4 +-- pkgs/top-level/all-packages.nix | 36 +++++++++++---------------- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/pkgs/tools/misc/pipelight/default.nix b/pkgs/tools/misc/pipelight/default.nix index cb130c8e917..89459eb281b 100644 --- a/pkgs/tools/misc/pipelight/default.nix +++ b/pkgs/tools/misc/pipelight/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, fetchgit, autoconf, automake, wineStaging, perl, xlibs - , gnupg, gcc48_multi, mesa, curl, bash, cacert, cabextract, utillinux, attr + , gnupg, gcc_multi, mesa, curl, bash, cacert, cabextract, utillinux, attr }: let @@ -19,7 +19,7 @@ in stdenv.mkDerivation rec { sha256 = "1i440rf22fmd2w86dlm1mpi3nb7410rfczc0yldnhgsvp5p3sm5f"; }; - buildInputs = [ wine_custom xlibs.libX11 gcc48_multi mesa curl ]; + buildInputs = [ wine_custom xlibs.libX11 gcc_multi mesa curl ]; propagatedbuildInputs = [ curl cabextract ]; patches = [ ./pipelight.patch ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d6fcb1c0f95..0711b41d529 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -239,7 +239,7 @@ let # just the plain stdenv. stdenv_32bit = lowPrio ( if system == "x86_64-linux" then - overrideCC stdenv gcc48_multi + overrideCC stdenv gcc_multi else stdenv); @@ -3469,8 +3469,20 @@ let gambit = callPackage ../development/compilers/gambit { }; - gcc = gcc48; - gcc_multi = gcc48_multi; + gcc = gcc49; + + gcc_multi = + if system == "x86_64-linux" then lowPrio ( + wrapCCWith (import ../build-support/cc-wrapper) glibc_multi (gcc.cc.override { + stdenv = overrideCC stdenv (wrapCCWith (import ../build-support/cc-wrapper) glibc_multi gcc.cc); + profiledCompiler = false; + enableMultilib = true; + })) + else throw "Multilib gcc not supported on ‘${system}’"; + + gcc_debug = lowPrio (wrapCC (gcc.cc.override { + stripped = false; + })); gccApple = throw "gccApple is no longer supported"; @@ -3601,24 +3613,6 @@ let else null; })); - gcc48_multi = - if system == "x86_64-linux" then lowPrio ( - wrapCCWith (import ../build-support/cc-wrapper) glibc_multi (gcc48.cc.override { - stdenv = overrideCC stdenv (wrapCCWith (import ../build-support/cc-wrapper) glibc_multi gcc.cc); - profiledCompiler = false; - enableMultilib = true; - })) - else throw "Multilib gcc not supported on ‘${system}’"; - - gcc48_debug = lowPrio (wrapCC (callPackage ../development/compilers/gcc/4.8 { - stripped = false; - - inherit noSysDirs; - cross = null; - libcCross = null; - binutilsCross = null; - })); - gcc49 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/4.9 { inherit noSysDirs; From 6671bb8be4744cc15c9da2871766ce6e16886488 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 12 May 2015 17:35:23 +0200 Subject: [PATCH 02/21] Remove gccStdInc This reverts d927da8dae1c4ff0c492d41e00835cfd08ff84d7. Having a copy of gcc-wrapper/setup-hook.sh is bad for maintainability - it had already started to diverge. Also, gccStdInc gave a nix-env conflict with the standard gcc. And it wasn't actually used in Nixpkgs. Instead, if you really need to change "-isystem" to "-I", you can now set ccIncludeFlag to "-I". --- pkgs/build-support/cc-wrapper/default.nix | 3 +- .../cc-wrapper/setup-hook-stdinc.sh | 44 ------------------- pkgs/build-support/cc-wrapper/setup-hook.sh | 2 +- pkgs/top-level/all-packages.nix | 21 --------- 4 files changed, 2 insertions(+), 68 deletions(-) delete mode 100644 pkgs/build-support/cc-wrapper/setup-hook-stdinc.sh diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index f6826c837ca..8f930eb4dc4 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -9,7 +9,6 @@ , cc ? null, libc ? null, binutils ? null, coreutils ? null, shell ? stdenv.shell , zlib ? null, extraPackages ? [] , dyld ? null # TODO: should this be a setup-hook on dyld? -, setupHook ? ./setup-hook.sh }: with stdenv.lib; @@ -226,7 +225,7 @@ stdenv.mkDerivation { '' + '' - substituteAll ${setupHook} $out/nix-support/setup-hook.tmp + substituteAll ${./setup-hook.sh} $out/nix-support/setup-hook.tmp cat $out/nix-support/setup-hook.tmp >> $out/nix-support/setup-hook rm $out/nix-support/setup-hook.tmp diff --git a/pkgs/build-support/cc-wrapper/setup-hook-stdinc.sh b/pkgs/build-support/cc-wrapper/setup-hook-stdinc.sh deleted file mode 100644 index 22e778b0690..00000000000 --- a/pkgs/build-support/cc-wrapper/setup-hook-stdinc.sh +++ /dev/null @@ -1,44 +0,0 @@ -# This is an alternate setup hook for gcc-wrapper that uses the -I flag to -# add include search paths instead of -isystem. We need this for some packages -# because -isystem can change the search order specified by prior -I flags. -# Changing the search order can point gcc to the wrong package's headers. -# The -I flag will never change the order of prior flags. - -export NIX_CC=@out@ - -addCVars () { - if [ -d $1/include ]; then - export NIX_CFLAGS_COMPILE+=" -I $1/include" - fi - - if [ -d $1/lib64 -a ! -L $1/lib64 ]; then - export NIX_LDFLAGS+=" -L$1/lib64" - fi - - if [ -d $1/lib ]; then - export NIX_LDFLAGS+=" -L$1/lib" - fi -} - -envHooks+=(addCVars) - -# Note: these come *after* $out in the PATH (see setup.sh). - -if [ -n "@gcc@" ]; then - addToSearchPath PATH @gcc@/bin -fi - -if [ -n "@binutils@" ]; then - addToSearchPath PATH @binutils@/bin -fi - -if [ -n "@libc@" ]; then - addToSearchPath PATH @libc@/bin -fi - -if [ -n "@coreutils@" ]; then - addToSearchPath PATH @coreutils@/bin -fi - -export CC=gcc -export CXX=g++ diff --git a/pkgs/build-support/cc-wrapper/setup-hook.sh b/pkgs/build-support/cc-wrapper/setup-hook.sh index 648afda6ebb..3d0b2fdfe8a 100644 --- a/pkgs/build-support/cc-wrapper/setup-hook.sh +++ b/pkgs/build-support/cc-wrapper/setup-hook.sh @@ -2,7 +2,7 @@ export NIX_CC=@out@ addCVars () { if [ -d $1/include ]; then - export NIX_CFLAGS_COMPILE+=" -isystem $1/include" + export NIX_CFLAGS_COMPILE+=" ${ccIncludeFlag:--isystem} $1/include" fi if [ -d $1/lib64 -a ! -L $1/lib64 ]; then diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0711b41d529..e3f616ad74f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4511,27 +4511,6 @@ let inherit stdenv gcc binutils libc shell name cross; }); - /* Alternative GCC wrapper that uses the standard -I include flag instead of - * -isystem. The -isystem flag can change the search order specified by prior - * -I flags. For KDE 5 packages, we don't want to interfere with the include - * search path order specified by the build system. Some packages depend on - * Qt 4 and Qt 5 simultaneously; because the two Qt versions provide headers - * with the same filenames, we must respect the search order specified by the - * build system so that the Qt 4 components find the Qt 4 headers and the Qt 5 - * components find the Qt 5 headers. - */ - wrapGCCStdInc = glibc: baseGCC: (import ../build-support/cc-wrapper) { - nativeTools = stdenv.cc.nativeTools or false; - nativeLibc = stdenv.cc.nativeLibc or false; - nativePrefix = stdenv.cc.nativePrefix or ""; - cc = baseGCC; - libc = glibc; - inherit stdenv binutils coreutils zlib; - setupHook = ../build-support/cc-wrapper/setup-hook-stdinc.sh; - }; - - gccStdInc = wrapGCCStdInc glibc gcc.cc; - # prolog yap = callPackage ../development/compilers/yap { }; From 9ae86dc3fc9db623dbed81c74e7ab37bce785715 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 12 May 2015 18:41:02 +0200 Subject: [PATCH 03/21] Ensure that errexit is honoured in hooks Partial fix for #7524. --- pkgs/stdenv/generic/setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index 75be719c2b9..47e33056270 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -19,7 +19,7 @@ runHook() { if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi eval "local -a dummy=(\"\${$var[@]}\")" for hook in "_callImplicitHook 0 $hookName" "${dummy[@]}"; do - if ! _eval "$hook" "$@"; then return 1; fi + _eval "$hook" "$@" done return 0 } From 90fd9a55d9346d39948a690b4209c57940e79120 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Tue, 12 May 2015 06:40:31 -0400 Subject: [PATCH 04/21] binutils: don't build with Werror --- pkgs/development/tools/misc/binutils/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix index f740c60c487..767edcd7984 100644 --- a/pkgs/development/tools/misc/binutils/default.nix +++ b/pkgs/development/tools/misc/binutils/default.nix @@ -59,7 +59,7 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = "-static-libgcc"; configureFlags = - [ "--enable-shared" "--enable-deterministic-archives" ] + [ "--enable-shared" "--enable-deterministic-archives" "--disable-werror" ] ++ optional (stdenv.system == "mips64el-linux") "--enable-fix-loongson2f-nop" ++ optional (cross != null) "--target=${cross.config}" ++ optionals gold [ "--enable-gold" "--enable-plugins" ] From 110b671c13747aeda5cc3b3f64f17d0599a262d6 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 13:09:17 +0200 Subject: [PATCH 05/21] gcc: Put info in a separate output --- pkgs/development/compilers/gcc/4.8/default.nix | 2 ++ pkgs/development/compilers/gcc/4.9/default.nix | 2 ++ 2 files changed, 4 insertions(+) diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix index 6d5627c34d6..69f9a8df025 100644 --- a/pkgs/development/compilers/gcc/4.8/default.nix +++ b/pkgs/development/compilers/gcc/4.8/default.nix @@ -209,6 +209,8 @@ stdenv.mkDerivation ({ builder = ../builder.sh; + outputs = [ "out" "info" ]; + src = fetchurl { url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2"; sha256 = "15c6gwm6dzsaagamxkak5smdkf1rdfbqqjs9jdbrp3lbg4ism02a"; diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix index 16737ffc896..1cc894b9dcf 100644 --- a/pkgs/development/compilers/gcc/4.9/default.nix +++ b/pkgs/development/compilers/gcc/4.9/default.nix @@ -208,6 +208,8 @@ stdenv.mkDerivation ({ builder = ../builder.sh; + outputs = [ "out" "info" ]; + src = fetchurl { url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2"; sha256 = "1pbjp4blk2ycaa6r3jmw4ky5f1s9ji3klbqgv8zs2sl5jn1cj810"; From 24aa3551b0e68c05b8291e61075e612b38586069 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 13:17:25 +0200 Subject: [PATCH 06/21] Fix stdenv build --- pkgs/stdenv/linux/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index d432206a9e1..e4d79fce744 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -285,6 +285,7 @@ rec { [ gzip bzip2 xz bash binutils coreutils diffutils findutils gawk glibc gnumake gnused gnutar gnugrep gnupatch patchelf attr acl paxctl zlib pcre linuxHeaders ed gcc gcc.cc libsigsegv + stage3.pkgs.isl_0_11 stage3.pkgs.cloog_0_18_0 ]; overrides = pkgs: { From 0cc883f2ee12b8454bfff63d0d26c99bc8da2ca7 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 13:47:41 +0200 Subject: [PATCH 07/21] groff: Mark as unsafe for parallel building --- pkgs/tools/text/groff/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/tools/text/groff/default.nix b/pkgs/tools/text/groff/default.nix index 90beca862c0..b0421a8ed0d 100644 --- a/pkgs/tools/text/groff/default.nix +++ b/pkgs/tools/text/groff/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { sha256 = "1998v2kcs288d3y7kfxpvl369nqi06zbbvjzafyvyl3pr7bajj1s"; }; + enableParallelBuilding = false; + buildInputs = [ ghostscript ]; nativeBuildInputs = [ perl ]; From e8e0995bd04c4342d0683f235299f7f72c3a940d Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 13:53:40 +0200 Subject: [PATCH 08/21] Fix inputproto and probably other packages "grep Requires" failed on *.pc files that had no Requires fields, due to pipefail. But this error was previously masked by #7524. --- pkgs/servers/x11/xorg/builder.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/servers/x11/xorg/builder.sh b/pkgs/servers/x11/xorg/builder.sh index 6ba50d24507..f5b8803a98a 100644 --- a/pkgs/servers/x11/xorg/builder.sh +++ b/pkgs/servers/x11/xorg/builder.sh @@ -9,8 +9,10 @@ postInstall() { if test -n "$origPostInstall"; then eval "$origPostInstall"; fi local r p requires + set +o pipefail requires=$(grep "Requires:" $out/lib/pkgconfig/*.pc | \ sed "s/Requires://" | sed "s/,/ /g") + set -o pipefail echo "propagating requisites $requires" From e7feb89158e0e4330d0221e1c48483a94ba5a6ce Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 15:29:29 +0200 Subject: [PATCH 09/21] systemd: Fix another build failure hidden by #7524 --- pkgs/os-specific/linux/systemd/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index f18cc6fa613..bde6686ff0a 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -66,7 +66,7 @@ stdenv.mkDerivation rec { '' # FIXME: patch this in systemd properly (and send upstream). # FIXME: use sulogin from util-linux once updated. - for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.m4.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c; do + for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c; do test -e $i substituteInPlace $i \ --replace /usr/bin/getent ${stdenv.glibc}/bin/getent \ From f40c885a34ce7b2644e5d450566806da1a7ac6f5 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 15:31:26 +0200 Subject: [PATCH 10/21] libtiff: Update to 4.0.4beta --- .../development/libraries/libtiff/default.nix | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix index 7ed9794011c..739148cb9a6 100644 --- a/pkgs/development/libraries/libtiff/default.nix +++ b/pkgs/development/libraries/libtiff/default.nix @@ -1,12 +1,7 @@ -{ stdenv, fetchurl, fetchsvn, pkgconfig, zlib, libjpeg, xz }: +{ stdenv, fetchurl, pkgconfig, zlib, libjpeg, xz }: let - version = "4.0.3"; - patchDir = fetchsvn { - url = svn://svn.archlinux.org/packages/libtiff/trunk; - rev = "198247"; - sha256 = "0a47l0zkc1zz7wxg64cyjv9z1djdvfyxgmwd03znlsac4zijkcy4"; - }; + version = "4.0.4beta"; in stdenv.mkDerivation rec { name = "libtiff-${version}"; @@ -19,19 +14,6 @@ stdenv.mkDerivation rec { sha256 = "0wj8d1iwk9vnpax2h29xqc2hwknxg3s0ay2d5pxkg59ihbifn6pa"; }; - patchPhase = '' - for p in ${patchDir}/*-{2013-4244,2012-4447,2012-4564,2013-1960,2013-1961,libjpeg-turbo}.patch; do - patch -p1 < "$p" - done - ( - cd tools - for p in ${patchDir}/*-CVE-{2013-4231,2013-4232}.patch; do - patch -p0 < "$p" - done - ) - patch -p0 < ${patchDir}/${if stdenv.isDarwin then "tiff-4.0.3" else "*"}-tiff2pdf-colors.patch - ''; # ^ sh on darwin seems not to expand globs in redirects, and I don't want to rebuild all again elsewhere - nativeBuildInputs = [ pkgconfig ]; propagatedBuildInputs = [ zlib libjpeg xz ]; #TODO: opengl support (bogus configure detection) From 94389cb8c6a0cf79bb68dd6c6f60318efa1c9ffb Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 15:32:32 +0200 Subject: [PATCH 11/21] xdg-utils, libclc: Use fetchzip --- pkgs/development/libraries/libclc/default.nix | 13 +++++++------ pkgs/tools/X11/xdg-utils/default.nix | 12 +++++++----- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/pkgs/development/libraries/libclc/default.nix b/pkgs/development/libraries/libclc/default.nix index c41e2e0a70b..16d9d8c75a4 100644 --- a/pkgs/development/libraries/libclc/default.nix +++ b/pkgs/development/libraries/libclc/default.nix @@ -1,12 +1,13 @@ -{ stdenv, fetchsvn, python, llvm, clang }: +{ stdenv, fetchFromGitHub, python, llvm, clang }: stdenv.mkDerivation { name = "libclc-2015-03-27"; - src = fetchsvn { - url = "http://llvm.org/svn/llvm-project/libclc/trunk"; - rev = "233456"; - sha256 = "0g56kgffc1qr9rzhcjr4w8kljcicg0q828s9b4bmfzjvywd7hhr0"; + src = fetchFromGitHub { + owner = "llvm-mirror"; + repo = "libclc"; + rev = "0a2d1619921545b52303be5608b64dc46f381e97"; + sha256 = "0hgm013c0vlfqfbbf4cdajl01hhk1mhsfk4h4bfza1san97l0vcc"; }; buildInputs = [ python llvm clang ]; @@ -22,7 +23,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { homepage = http://libclc.llvm.org/; - description = "implementation of the library requirements of the OpenCL C programming language"; + description = "Implementation of the library requirements of the OpenCL C programming language"; license = licenses.mit; platforms = platforms.all; maintainers = with maintainers; [ wkennington ]; diff --git a/pkgs/tools/X11/xdg-utils/default.nix b/pkgs/tools/X11/xdg-utils/default.nix index 53b3531b685..4d7ead019ce 100644 --- a/pkgs/tools/X11/xdg-utils/default.nix +++ b/pkgs/tools/X11/xdg-utils/default.nix @@ -1,12 +1,14 @@ -{ stdenv, fetchgit, file, libxslt, docbook_xml_dtd_412, docbook_xsl, xmlto, w3m }: +{ stdenv, fetchzip, file, libxslt, docbook_xml_dtd_412, docbook_xsl, xmlto, w3m }: + +let rev = "e8ee3b18d16e41b95148111b920a0c8beed3ac6c"; in stdenv.mkDerivation rec { name = "xdg-utils-1.1.0-rc3p7"; - src = fetchgit { - url = "http://anongit.freedesktop.org/git/xdg/xdg-utils.git"; - rev = "e8ee3b18d16e41b95148111b920a0c8beed3ac6c"; - sha256 = "0qy9h7vh6sw7wmadjvasw4sdhb9fvv7bn32ifgasdx7ag3r3939w"; + src = fetchzip { + name = "xdg-utils-${rev}.tar.gz"; + url = "http://cgit.freedesktop.org/xdg/xdg-utils/snapshot/${rev}.tar.gz"; + sha256 = "1hz6rv45blcii1a8n1j45rg8vzm98vh4fvlca3zmay1kp57yr4jl"; }; # just needed when built from git From 1fc19adf2c9d360aac3af63f901c3315ddf20dfd Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 18:14:27 +0200 Subject: [PATCH 12/21] mesa: Remove gallium references These files no longer exist. The resulting failures were hidden by @vcunat --- pkgs/development/libraries/mesa/default.nix | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix index 2e94626411e..d5838308b39 100644 --- a/pkgs/development/libraries/mesa/default.nix +++ b/pkgs/development/libraries/mesa/default.nix @@ -132,9 +132,6 @@ stdenv.mkDerivation { `#$out/lib/libXvMC*` \ $out/lib/gbm $out/lib/libgbm* \ '' + '' - $out/lib/gallium-pipe \ - $out/lib/libdricore* \ - $out/lib/libgallium* \ $out/lib/vdpau \ $out/lib/libxatracker* @@ -149,18 +146,6 @@ stdenv.mkDerivation { $out/lib/pkgconfig/osmesa.pc '' + /* now fix references in .la files */ '' - sed "/^libdir=/s,$out,$drivers," -i \ - '' + optionalString enableExtraFeatures '' - `#$drivers/lib/libXvMC*.la` \ - '' + '' - $drivers/lib/gallium-pipe/*.la \ - $drivers/lib/libgallium.la \ - $drivers/lib/vdpau/*.la \ - $drivers/lib/libdricore*.la - - sed "s,$out\(/lib/\(libdricore[0-9\.]*\|libgallium\).la\),$drivers\1,g" \ - -i $drivers/lib/*.la $drivers/lib/*/*.la - sed "/^libdir=/s,$out,$osmesa," -i \ $osmesa/lib/libOSMesa*.la From 279aca0f4b18aa8157762a26e78c53b3eb074acc Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 18:15:25 +0200 Subject: [PATCH 13/21] llvm: Don't depend on valgrind/gdb See a4619673b50bb424371b3fbfa52b202db767313d. --- pkgs/development/compilers/llvm/3.6/llvm.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/compilers/llvm/3.6/llvm.nix b/pkgs/development/compilers/llvm/3.6/llvm.nix index 736ffca295f..05772ebb318 100644 --- a/pkgs/development/compilers/llvm/3.6/llvm.nix +++ b/pkgs/development/compilers/llvm/3.6/llvm.nix @@ -27,7 +27,7 @@ in stdenv.mkDerivation rec { mv compiler-rt-* $sourceRoot/projects/compiler-rt ''; - buildInputs = [ perl groff cmake libxml2 python libffi ] ++ stdenv.lib.optional stdenv.isLinux valgrind; + buildInputs = [ perl groff cmake libxml2 python libffi ] /* ++ stdenv.lib.optional stdenv.isLinux valgrind */; propagatedBuildInputs = [ ncurses zlib ]; From eb5c1616401ff78509ee707a060efe738f5378b1 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 18:16:07 +0200 Subject: [PATCH 14/21] wayland: Fewer build-time dependencies --- pkgs/development/libraries/wayland/default.nix | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix index cdd663bf191..e5a01c5d843 100644 --- a/pkgs/development/libraries/wayland/default.nix +++ b/pkgs/development/libraries/wayland/default.nix @@ -1,16 +1,12 @@ { stdenv, fetchurl, pkgconfig -, libffi, docbook_xsl, doxygen, graphviz, libxslt, xmlto -, expat ? null # Build wayland-scanner (currently cannot be disabled as of 1.7.0) +, libffi, docbook_xsl, doxygen, graphviz, libxslt, xmlto, expat }: # Require the optional to be enabled until upstream fixes or removes the configure flag assert expat != null; -let - mkFlag = optSet: flag: if optSet then "--enable-${flag}" else "--disable-${flag}"; -in - with stdenv.lib; + stdenv.mkDerivation rec { name = "wayland-${version}"; version = "1.7.0"; @@ -20,13 +16,11 @@ stdenv.mkDerivation rec { sha256 = "173w0pqzk2m7hjlg15bymrx7ynxgq1ciadg03hzybxwnvfi4gsmx"; }; - configureFlags = [ - (mkFlag (expat != null) "scanner") - ]; + configureFlags = "--with-scanner --disable-documentation"; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ libffi docbook_xsl doxygen graphviz libxslt xmlto expat ]; + buildInputs = [ libffi /* docbook_xsl doxygen graphviz libxslt xmlto */ expat ]; meta = { description = "Reference implementation of the wayland protocol"; From 26f17ee091248b4ead62f78a969f94e1230f4588 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 18:16:22 +0200 Subject: [PATCH 15/21] cmake: Get rid of circular dependency Also, don't install static libraries in jsoncpp. --- pkgs/development/libraries/jsoncpp/default.nix | 10 +++------- .../development/tools/build-managers/cmake/default.nix | 5 ++--- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/pkgs/development/libraries/jsoncpp/default.nix b/pkgs/development/libraries/jsoncpp/default.nix index 07563364e34..357ba257c24 100644 --- a/pkgs/development/libraries/jsoncpp/default.nix +++ b/pkgs/development/libraries/jsoncpp/default.nix @@ -20,18 +20,14 @@ stdenv.mkDerivation rec { export sourceRoot=${src.name} ''; - nativeBuildInputs = [ - # cmake can be built with the system jsoncpp, or its own bundled version. - # Obviously we cannot build it against the system jsoncpp that doesn't yet exist, so - # we make a bootstrapping build with the bundled version. - (cmake.override { jsoncpp = null; }) - python - ]; + nativeBuildInputs = [ cmake python ]; cmakeFlags = [ "-DJSONCPP_WITH_CMAKE_PACKAGE=1" ]; + postInstall = "rm $out/lib/*.a"; + meta = { inherit version; homepage = https://github.com/open-source-parsers/jsoncpp; diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix index 72ecb10b099..77863c4532d 100644 --- a/pkgs/development/tools/build-managers/cmake/default.nix +++ b/pkgs/development/tools/build-managers/cmake/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl -, bzip2, curl, expat, jsoncpp, libarchive, xz, zlib +, bzip2, curl, expat, libarchive, xz, zlib , useNcurses ? false, ncurses, useQt4 ? false, qt4 , wantPS ? false, ps ? null }: @@ -40,7 +40,6 @@ stdenv.mkDerivation rec { buildInputs = [ bzip2 curl expat libarchive xz zlib ] - ++ optional (jsoncpp != null) jsoncpp ++ optional useNcurses ncurses ++ optional useQt4 qt4; @@ -53,8 +52,8 @@ stdenv.mkDerivation rec { "--docdir=/share/doc/${name}" "--mandir=/share/man" "--system-libs" + "--no-system-jsoncpp" ] - ++ optional (jsoncpp == null) "--no-system-jsoncpp" ++ optional useQt4 "--qt-gui"; setupHook = ./setup-hook.sh; From 81dfb2c948334372f138d19625409af62fea182a Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 15 May 2015 10:58:07 +0200 Subject: [PATCH 16/21] Fix usbutils More #7524. http://hydra.nixos.org/build/22211118 --- pkgs/os-specific/linux/usbutils/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/os-specific/linux/usbutils/default.nix b/pkgs/os-specific/linux/usbutils/default.nix index 710a01ed03d..158ff2299b1 100644 --- a/pkgs/os-specific/linux/usbutils/default.nix +++ b/pkgs/os-specific/linux/usbutils/default.nix @@ -12,7 +12,6 @@ stdenv.mkDerivation rec { postInstall = '' - rm $out/sbin/update-usbids.sh substituteInPlace $out/bin/lsusb.py \ --replace /usr/share/usb.ids ${hwdata}/data/hwdata/usb.ids ''; From 592d4af9cf0e81907919cf954c1d0ad3089ae772 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 15 May 2015 11:08:22 +0200 Subject: [PATCH 17/21] wpa_supplicant: Fix build There is no wpa_priv. Another case of #7524. http://hydra.nixos.org/build/22211118 --- pkgs/os-specific/linux/wpa_supplicant/default.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix index c709880af2d..baa0d1c6b54 100644 --- a/pkgs/os-specific/linux/wpa_supplicant/default.nix +++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix @@ -87,10 +87,6 @@ stdenv.mkDerivation rec { ]; postInstall = '' - # Copy the wpa_priv binary which is not installed - mkdir -p $out/bin - cp -v wpa_priv $out/bin - mkdir -p $out/share/man/man5 $out/share/man/man8 cp -v "doc/docbook/"*.5 $out/share/man/man5/ cp -v "doc/docbook/"*.8 $out/share/man/man8/ @@ -99,6 +95,7 @@ stdenv.mkDerivation rec { sed -e "s@/sbin/wpa_supplicant@$out&@" -i "$out/share/dbus-1/system-services/"* cp -v dbus/dbus-wpa_supplicant.conf $out/etc/dbus-1/system.d cp -v "systemd/"*.service $out/etc/systemd/system + rm $out/share/man/man8/wpa_priv.8 ''; meta = with stdenv.lib; { From e7f1038798d99beeda326aee016e2f84dca15fd8 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 1 Jun 2015 20:09:31 +0200 Subject: [PATCH 18/21] Fix typo in last merge --- pkgs/development/tools/build-managers/cmake/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix index 02847c749bf..27e7a884eaf 100644 --- a/pkgs/development/tools/build-managers/cmake/default.nix +++ b/pkgs/development/tools/build-managers/cmake/default.nix @@ -51,6 +51,7 @@ stdenv.mkDerivation rec { [ "--docdir=/share/doc/${name}" "--mandir=/share/man" "--no-system-jsoncpp" + ] ++ optional (!stdenv.isCygwin) "--system-libs" ++ optional useQt4 "--qt-gui" ++ ["--"] From aaaa9f0041c28c465dcd0f5e524062025663b6f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 4 Jun 2015 15:32:19 +0200 Subject: [PATCH 19/21] lame: fix build on 32-bit with gcc 4.9 --- pkgs/development/libraries/lame/default.nix | 2 ++ pkgs/development/libraries/lame/gcc-4.9.patch | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 pkgs/development/libraries/lame/gcc-4.9.patch diff --git a/pkgs/development/libraries/lame/default.nix b/pkgs/development/libraries/lame/default.nix index 4a61d188ef6..1f8ad2e67c9 100644 --- a/pkgs/development/libraries/lame/default.nix +++ b/pkgs/development/libraries/lame/default.nix @@ -30,6 +30,8 @@ stdenv.mkDerivation rec { sha256 = "1zr3kadv35ii6liia0bpfgxpag27xcivp571ybckpbz4b10nnd14"; }; + patches = [ ./gcc-4.9.patch ]; + nativeBuildInputs = [ ] ++ optional nasmSupport nasm; diff --git a/pkgs/development/libraries/lame/gcc-4.9.patch b/pkgs/development/libraries/lame/gcc-4.9.patch new file mode 100644 index 00000000000..59f8e00e4a8 --- /dev/null +++ b/pkgs/development/libraries/lame/gcc-4.9.patch @@ -0,0 +1,33 @@ +fix sse optimizations build on 32-bit with gcc 4.9 +http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=351af417bae0d09bd5a3753d1237f03adf591933 + +xmm_quantize_sub.c: In function 'init_xrpow_core_sse': +xmm_quantize_sub.c:65:18: warning: SSE vector return without SSE enabled changes the ABI [-W +psabi] + const __m128 vec_fabs_mask = _mm_loadu_ps(&fabs_mask._float[0]); + ^ +In file included from xmm_quantize_sub.c:37:0: +/usr/lib/gcc/i686-w64-mingw32/4.9.0/include/xmmintrin.h:933:1: error: inlining failed in call to always_inline '_mm_loadu_ps': target specific option mismatch + _mm_loadu_ps (float const *__P) + ^ +xmm_quantize_sub.c:65:18: error: called from here + const __m128 vec_fabs_mask = _mm_loadu_ps(&fabs_mask._float[0]); + ^ +--- lame/libmp3lame/vector/xmm_quantize_sub.c.orig 2014-06-08 12:16:19.455468042 -0700 ++++ lame/libmp3lame/vector/xmm_quantize_sub.c 2014-06-08 12:16:09.592356980 -0700 +@@ -35,6 +35,7 @@ + #ifdef HAVE_XMMINTRIN_H + + #include ++#pragma GCC target("sse") + + typedef union { + int32_t _i_32[4]; /* unions are initialized by its first member */ +@@ -124,6 +125,7 @@ + } + + ++#pragma GCC target("sse2") + void + fht_SSE2(FLOAT * fz, int n) + { From 646ee283e803ca2daa90b2ba507928ec661f58f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 4 Jun 2015 16:15:35 +0200 Subject: [PATCH 20/21] gst-plugins-base-0.10: fix 32-bit build with gcc-4.9 --- .../legacy/gst-plugins-base/default.nix | 3 +- .../legacy/gst-plugins-base/gcc-4.9.patch | 38 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix index 59ee86da86d..040cf20c4ea 100644 --- a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix +++ b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix @@ -18,9 +18,10 @@ stdenv.mkDerivation rec { }; patchPhase = '' - sed -i 's@/bin/echo@echo@g' configure sed -i -e 's/^ /\t/' docs/{libs,plugins}/Makefile.in + + patch -p1 < ${./gcc-4.9.patch} ''; # TODO : v4l, libvisual diff --git a/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch new file mode 100644 index 00000000000..fd9f6ea240d --- /dev/null +++ b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch @@ -0,0 +1,38 @@ +https://bugzilla.gnome.org/show_bug.cgi?id=670690 + +From 9bd5a7ae5435469c3557a3d70e762791cb3dc5c7 Mon Sep 17 00:00:00 2001 +From: Antoine Jacoutot +Date: Mon, 20 Jan 2014 15:44:09 +0100 +Subject: [PATCH] audioresample: fix build on BSD + +On i386, EMMINTRIN is defined but not usable without sse so check for +__SSE__ and __SSE2__ as well. + +https://bugzilla.gnome.org/show_bug.cgi?id=670690 +--- + gst/audioresample/resample.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c +index 98d006c..481fa01 100644 +--- a/gst/audioresample/resample.c ++++ b/gst/audioresample/resample.c +@@ -77,13 +77,13 @@ + #define EXPORT G_GNUC_INTERNAL + + #ifdef _USE_SSE +-#ifndef HAVE_XMMINTRIN_H ++#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H) + #undef _USE_SSE + #endif + #endif + + #ifdef _USE_SSE2 +-#ifndef HAVE_EMMINTRIN_H ++#if !defined(__SSE2__) || !defined(HAVE_XMMINTRIN_H) + #undef _USE_SSE2 + #endif + #endif +-- +1.8.5.3 + From d57ef6b523838cf161dbc9fb01173caf3e84954b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sun, 7 Jun 2015 09:21:20 +0200 Subject: [PATCH 21/21] liferea: fix build problem hidden by #7524 --- pkgs/applications/networking/newsreaders/liferea/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix index 26078c8e583..b260be42d5b 100644 --- a/pkgs/applications/networking/newsreaders/liferea/default.nix +++ b/pkgs/applications/networking/newsreaders/liferea/default.nix @@ -28,8 +28,6 @@ stdenv.mkDerivation rec { ]; preFixup = '' - rm $out/share/icons/hicolor/icon-theme.cache - for f in "$out"/bin/*; do wrapProgram "$f" \ --prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pygobject3})" \