From a63603685a5aaa42c1c552baac158edb39cee23f Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 25 Nov 2017 16:41:57 +0100 Subject: [PATCH 01/20] =?UTF-8?q?pythonPackages.pycairo:=201.10.0=20?= =?UTF-8?q?=E2=86=92=201.15.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../python-modules/pycairo/default.nix | 56 ++++++------------- .../python-modules/pycairo/waf-py3_5.patch | 10 ---- 2 files changed, 17 insertions(+), 49 deletions(-) delete mode 100644 pkgs/development/python-modules/pycairo/waf-py3_5.patch diff --git a/pkgs/development/python-modules/pycairo/default.nix b/pkgs/development/python-modules/pycairo/default.nix index b4366ab791f..39c06bff3bf 100644 --- a/pkgs/development/python-modules/pycairo/default.nix +++ b/pkgs/development/python-modules/pycairo/default.nix @@ -1,50 +1,28 @@ -{ lib, fetchurl, fetchpatch, python, buildPythonPackage, pkgconfig, cairo, xlibsWrapper, isPyPy, isPy35, isPy36, isPy3k }: +{ lib, fetchFromGitHub, python, buildPythonPackage, pytest, pkgconfig, cairo, xlibsWrapper, isPyPy }: -if (isPyPy) then throw "pycairo not supported for interpreter ${python.executable}" else let - - patch_waf = fetchpatch { - url = http://www.linuxfromscratch.org/patches/blfs/8.0/pycairo-1.10.0-waf_python_3_4-1.patch; - sha256 = "0xfl1i9dips2nykyg91f5h5r3xpk2hp1js1gq5z0hwjr0in55id4"; - }; - patch_waf-py3_5 = ./waf-py3_5.patch; - -in buildPythonPackage rec { +buildPythonPackage rec { pname = "pycairo"; - version = "1.10.0"; + version = "1.15.4"; name = "${pname}-${version}"; - format = "other"; - src = if isPy3k - then fetchurl { - url = "http://cairographics.org/releases/pycairo-${version}.tar.bz2"; - sha256 = "1gjkf8x6hyx1skq3hhwcbvwifxvrf9qxis5vx8x5igmmgs70g94s"; - } - else fetchurl { - url = "http://cairographics.org/releases/py2cairo-${version}.tar.bz2"; - sha256 = "0cblk919wh6w0pgb45zf48xwxykfif16qk264yga7h9fdkq3j16k"; - }; + disabled = isPyPy; - patches = [ - (fetchpatch { - url = http://www.linuxfromscratch.org/patches/blfs/8.0/pycairo-1.10.0-waf_unpack-1.patch; - sha256 = "1bmrhq2nmhx4l5glvyi59r0hc7w5m56kz41frx7v3dcp8f91p7xd"; - }) - ]; + src = fetchFromGitHub { + owner = "pygobject"; + repo = "pycairo"; + rev = "v${version}"; + sha256 = "02vzmfxx8nl6dbwzc911wcj7hqspgqz6v9xmq6579vwfla0vaglv"; + }; + + postPatch = '' + # we are unable to pass --prefix to bdist_wheel + # see https://github.com/NixOS/nixpkgs/pull/32034#discussion_r153285955 + substituteInPlace setup.py --replace '"prefix": self.install_base' "'prefix': '$out'" + ''; nativeBuildInputs = [ pkgconfig ]; buildInputs = [ python cairo xlibsWrapper ]; - - configurePhase = '' - ( - cd $(${python.executable} waf unpack) - patch -p1 < ${patch_waf} - ${lib.optionalString (isPy35 || isPy36) "patch -p1 < ${patch_waf-py3_5}"} - ) - - ${python.executable} waf configure --prefix=$out - ''; - buildPhase = "${python.executable} waf"; - installPhase = "${python.executable} waf install"; + checkInputs = [ pytest ]; meta.platforms = lib.platforms.linux ++ lib.platforms.darwin; } diff --git a/pkgs/development/python-modules/pycairo/waf-py3_5.patch b/pkgs/development/python-modules/pycairo/waf-py3_5.patch deleted file mode 100644 index dcfdbea2fbd..00000000000 --- a/pkgs/development/python-modules/pycairo/waf-py3_5.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/waflib/Build.py -+++ b/waflib/Build.py -@@ -151,6 +151,7 @@ class BuildContext(Context.Context): - f.close() - self.init_dirs() - def store(self): -+ return - data={} - for x in SAVED_ATTRS: - data[x]=getattr(self,x) From 8b8f17a68b2e8b84dbb94d1fa74117a199ea6423 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 25 Nov 2017 16:42:23 +0100 Subject: [PATCH 02/20] =?UTF-8?q?pythonPackages.pygobject3:=203.24.1=20?= =?UTF-8?q?=E2=86=92=203.26.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/development/python-modules/pygobject/3.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/pygobject/3.nix b/pkgs/development/python-modules/pygobject/3.nix index 6afd10596bc..c7547c852d5 100644 --- a/pkgs/development/python-modules/pygobject/3.nix +++ b/pkgs/development/python-modules/pygobject/3.nix @@ -1,14 +1,14 @@ { stdenv, fetchurl, buildPythonPackage, python, pkgconfig, glib, gobjectIntrospection, pycairo, cairo, which, ncurses}: buildPythonPackage rec { - major = "3.24"; + major = "3.26"; minor = "1"; name = "pygobject-${major}.${minor}"; format = "other"; src = fetchurl { url = "mirror://gnome/sources/pygobject/${major}/${name}.tar.xz"; - sha256 = "1zdzznrj2s1gsrv2z4r0n88fzba8zjc1n2r313xi77lhl1daja56"; + sha256 = "1afi0jdjd9sanrzjwhv7z1k7qxlb91fqa6yqc2dbpjkhkjdpnmzm"; }; outputs = [ "out" "dev" ]; @@ -19,7 +19,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ pycairo cairo ]; meta = { - homepage = http://live.gnome.org/PyGObject; + homepage = https://pygobject.readthedocs.io/; description = "Python bindings for Glib"; platforms = stdenv.lib.platforms.unix; }; From 994cb768506d827f03295d23b2cb672aa00c00f5 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 28 Nov 2017 15:03:50 -0500 Subject: [PATCH 03/20] cc-wrapper: Don't leave CMD defined after setup hook Rename to `cmd` too, as uppercase typically means the variable is exported. --- pkgs/build-support/cc-wrapper/setup-hook.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/setup-hook.sh b/pkgs/build-support/cc-wrapper/setup-hook.sh index a8f29bd5877..c55bcf75a9e 100644 --- a/pkgs/build-support/cc-wrapper/setup-hook.sh +++ b/pkgs/build-support/cc-wrapper/setup-hook.sh @@ -138,15 +138,15 @@ export NIX_${role}CC=@out@ export ${role}CC=@named_cc@ export ${role}CXX=@named_cxx@ -for CMD in \ +for cmd in \ ar as nm objcopy ranlib strip strings size ld windres do if - PATH=$_PATH type -p "@targetPrefix@$CMD" > /dev/null + PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null then - export "${role}$(echo "$CMD" | tr "[:lower:]" "[:upper:]")=@targetPrefix@${CMD}"; + export "${role}$(echo "$cmd" | tr "[:lower:]" "[:upper:]")=@targetPrefix@${cmd}"; fi done # No local scope in sourced file -unset role +unset -v role cmd From f4cb1e2ffccbc3ef2ef57866869b81d61b6a2529 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Thu, 21 Sep 2017 01:31:52 -0400 Subject: [PATCH 04/20] cc-wrapper: Export env vars for objdump and readelf in setup-hook Also fix alphabetical order --- pkgs/build-support/cc-wrapper/setup-hook.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/build-support/cc-wrapper/setup-hook.sh b/pkgs/build-support/cc-wrapper/setup-hook.sh index c55bcf75a9e..4b4c40dd1c1 100644 --- a/pkgs/build-support/cc-wrapper/setup-hook.sh +++ b/pkgs/build-support/cc-wrapper/setup-hook.sh @@ -139,7 +139,7 @@ export ${role}CC=@named_cc@ export ${role}CXX=@named_cxx@ for cmd in \ - ar as nm objcopy ranlib strip strings size ld windres + ar as ld nm objcopy objdump readelf ranlib strip strings size windres do if PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null From 43e113739786ed51de7e829637493a58273cdf02 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 21 Aug 2017 13:55:39 -0400 Subject: [PATCH 05/20] cc-wrapper: Define new- and old-style cross env vars For example, `BUILD_CC` and `CC_FOR_BUILD` --- pkgs/build-support/cc-wrapper/setup-hook.sh | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/setup-hook.sh b/pkgs/build-support/cc-wrapper/setup-hook.sh index 4b4c40dd1c1..7822b7f84d0 100644 --- a/pkgs/build-support/cc-wrapper/setup-hook.sh +++ b/pkgs/build-support/cc-wrapper/setup-hook.sh @@ -97,10 +97,12 @@ ccWrapper_addCVars () { # setup-hook, which `role` tracks. if [ -n "${crossConfig:-}" ]; then export NIX_CC_WRAPPER_@infixSalt@_TARGET_BUILD=1 - role="BUILD_" + role_pre='BUILD_' + role_post='_FOR_BUILD' else export NIX_CC_WRAPPER_@infixSalt@_TARGET_HOST=1 - role="" + role_pre='' + role_post='' fi # Eventually the exact sort of env-hook we create will depend on the role. This @@ -133,10 +135,12 @@ fi # Export tool environment variables so various build systems use the right ones. -export NIX_${role}CC=@out@ +export NIX_${role_pre}CC=@out@ -export ${role}CC=@named_cc@ -export ${role}CXX=@named_cxx@ +export ${role_pre}CC=@named_cc@ +export ${role_pre}CXX=@named_cxx@ +export CC${role_post}=@named_cc@ +export CXX${role_post}=@named_cxx@ for cmd in \ ar as ld nm objcopy objdump readelf ranlib strip strings size windres @@ -144,9 +148,11 @@ do if PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null then - export "${role}$(echo "$cmd" | tr "[:lower:]" "[:upper:]")=@targetPrefix@${cmd}"; + upper_case="$(echo "$cmd" | tr "[:lower:]" "[:upper:]")" + export "${role_pre}${upper_case}=@targetPrefix@${cmd}"; + export "${upper_case}${role_post}=@targetPrefix@${cmd}"; fi done # No local scope in sourced file -unset -v role cmd +unset -v role_pre role_post cmd upper_case From 858ed1fc30174aa2cf8637a08ca8bea0702b4b04 Mon Sep 17 00:00:00 2001 From: Lancelot SIX Date: Wed, 29 Nov 2017 11:30:51 +0100 Subject: [PATCH 06/20] libmicrohttpd: 0.9.55 -> 0.9.57 See http://lists.gnu.org/archive/html/info-gnu/2017-11/msg00011.html for release information --- pkgs/development/libraries/libmicrohttpd/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libmicrohttpd/default.nix b/pkgs/development/libraries/libmicrohttpd/default.nix index 68156c0c217..fe3f40ece73 100644 --- a/pkgs/development/libraries/libmicrohttpd/default.nix +++ b/pkgs/development/libraries/libmicrohttpd/default.nix @@ -1,11 +1,12 @@ { stdenv, fetchurl, libgcrypt, curl, gnutls, pkgconfig, libiconv, libintlOrEmpty }: stdenv.mkDerivation rec { - name = "libmicrohttpd-0.9.55"; + name = "libmicrohttpd-${version}"; + version = "0.9.57"; src = fetchurl { url = "mirror://gnu/libmicrohttpd/${name}.tar.gz"; - sha256 = "1y6h1slav5l6k8zyb01dpw65dscdgxxgfa3a0z9qnn7jr66sn70c"; + sha256 = "0kmgkk9sjg1n3q7rbzw5y4qmgh51zn5qi2j69gbqmr6phxjaghfy"; }; outputs = [ "out" "dev" "devdoc" "info" ]; From b7e6fd3b3a8523c5860841d3b46286a1668f0391 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Wed, 29 Nov 2017 18:03:31 +0800 Subject: [PATCH 07/20] curl: 7.56.1 -> 7.57.0 Fixes CVEs: CVE-2017-8816 CVE-2017-8817 CVE-2017-8818 --- pkgs/tools/networking/curl/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix index d67b34371fe..7f8d50b6d89 100644 --- a/pkgs/tools/networking/curl/default.nix +++ b/pkgs/tools/networking/curl/default.nix @@ -21,11 +21,11 @@ assert scpSupport -> libssh2 != null; assert c-aresSupport -> c-ares != null; stdenv.mkDerivation rec { - name = "curl-7.56.1"; + name = "curl-7.57.0"; src = fetchurl { url = "http://curl.haxx.se/download/${name}.tar.bz2"; - sha256 = "142zidvlmrz31yx480nrhh47hl01d7jbaagin23pspl7cw1ng515"; + sha256 = "09j88lzqmi79rvvg2l7bjcs56330bq388f5p468hgblf6hdf6by9"; }; outputs = [ "bin" "dev" "out" "man" "devdoc" ]; From 8d479c039752af95dccb1afb126aedafdc44502e Mon Sep 17 00:00:00 2001 From: adisbladis Date: Wed, 29 Nov 2017 18:55:11 +0800 Subject: [PATCH 08/20] curl: Add brotli support --- pkgs/tools/networking/curl/default.nix | 6 +++++- pkgs/top-level/all-packages.nix | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix index 7f8d50b6d89..c356a307e3e 100644 --- a/pkgs/tools/networking/curl/default.nix +++ b/pkgs/tools/networking/curl/default.nix @@ -8,6 +8,7 @@ , scpSupport ? false, libssh2 ? null , gssSupport ? false, gss ? null , c-aresSupport ? false, c-ares ? null +, brotliSupport ? false, brotli ? null }: assert http2Support -> nghttp2 != null; @@ -19,6 +20,7 @@ assert !(gnutlsSupport && sslSupport); assert gnutlsSupport -> gnutls != null; assert scpSupport -> libssh2 != null; assert c-aresSupport -> c-ares != null; +assert brotliSupport -> brotli != null; stdenv.mkDerivation rec { name = "curl-7.57.0"; @@ -47,7 +49,8 @@ stdenv.mkDerivation rec { optional c-aresSupport c-ares ++ optional sslSupport openssl ++ optional gnutlsSupport gnutls ++ - optional scpSupport libssh2; + optional scpSupport libssh2 ++ + optional brotliSupport brotli; # for the second line see https://curl.haxx.se/mail/tracker-2014-03/0087.html preConfigure = '' @@ -64,6 +67,7 @@ stdenv.mkDerivation rec { ( if ldapSupport then "--enable-ldap" else "--disable-ldap" ) ( if ldapSupport then "--enable-ldaps" else "--disable-ldaps" ) ( if idnSupport then "--with-libidn=${libidn.dev}" else "--without-libidn" ) + ( if brotliSupport then "--with-brotli" else "--without-brotli" ) ] ++ stdenv.lib.optional c-aresSupport "--enable-ares=${c-ares}" ++ stdenv.lib.optional gssSupport "--with-gssapi=${gss}"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d78fb7f240d..94bf2fbe491 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1639,6 +1639,7 @@ with pkgs; idnSupport = true; ldapSupport = true; gssSupport = true; + brotliSupport = true; }; curl = callPackage ../tools/networking/curl rec { From bfaf7ae5aee2fdea952341911b68b54df7541c9c Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Wed, 29 Nov 2017 07:57:48 -0600 Subject: [PATCH 09/20] qt48: use tabs in the Makefile patch Fixes application of the patch to a differently configured Qt. --- pkgs/development/libraries/qt-4.x/4.8/default.nix | 2 +- pkgs/development/libraries/qt-4.x/4.8/parallel-build.patch | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix index a54860ff0ac..a73f63bfb4b 100644 --- a/pkgs/development/libraries/qt-4.x/4.8/default.nix +++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix @@ -128,7 +128,7 @@ stdenv.mkDerivation rec { postConfigure = '' echo "applying patch ${./parallel-build.patch}" - patch -p1 < ${./parallel-build.patch} + patch -p1 -i ${./parallel-build.patch} ''; prefixKey = "-prefix "; diff --git a/pkgs/development/libraries/qt-4.x/4.8/parallel-build.patch b/pkgs/development/libraries/qt-4.x/4.8/parallel-build.patch index 5783543e844..d471bb2a665 100644 --- a/pkgs/development/libraries/qt-4.x/4.8/parallel-build.patch +++ b/pkgs/development/libraries/qt-4.x/4.8/parallel-build.patch @@ -1,6 +1,6 @@ --- a/tools/designer/src/lib/Makefile +++ b/tools/designer/src/lib/Makefile @@ -7167,2 +7167,3 @@ compiler_moc_header_clean: - .uic/release-shared/ui_qtgradientviewdialog.h \ -+ .uic/release-shared/ui_qtgradientview.h \ - ../../../shared/qtgradienteditor/qtgradientviewdialog.h + .uic/release-shared/ui_qtgradientviewdialog.h \ ++ .uic/release-shared/ui_qtgradientview.h \ + ../../../shared/qtgradienteditor/qtgradientviewdialog.h From a4280a5e1c52ff063df33428cc7007fdab9c025a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 29 Nov 2017 18:06:57 +0100 Subject: [PATCH 10/20] mesa_noglu: use llvm-5 on aarch64 as well --- pkgs/top-level/all-packages.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 626786f2cb4..d947009defb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9921,8 +9921,7 @@ with pkgs; # through /run/opengl-driver*, which is overriden according to config.grsecurity # grsecEnabled = true; # no more support in nixpkgs ATM - # llvm-4.0.0 and 5.0.0 won't pass tests on aarch64 - llvmPackages = if system == "aarch64-linux" then llvmPackages_39 else llvmPackages_5; + llvmPackages = llvmPackages_5; }); mesa_glu = mesaDarwinOr (callPackage ../development/libraries/mesa-glu { }); From aa3d195a304360a79a0dd639037a92118a62f539 Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Wed, 29 Nov 2017 21:53:13 +0200 Subject: [PATCH 11/20] gcc5: Reduce diff to gcc6 --- pkgs/development/compilers/gcc/5/default.nix | 16 ++++++++-------- pkgs/development/compilers/gcc/6/default.nix | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pkgs/development/compilers/gcc/5/default.nix b/pkgs/development/compilers/gcc/5/default.nix index c9b49c0ede6..332dae95965 100644 --- a/pkgs/development/compilers/gcc/5/default.nix +++ b/pkgs/development/compilers/gcc/5/default.nix @@ -110,7 +110,7 @@ let version = "5.5.0"; gccFpu = platform.gcc.fpu or null; gccFloat = platform.gcc.float or null; gccMode = platform.gcc.mode or null; - in + in optional (gccArch != null) "--with-arch=${gccArch}" ++ optional (gccCpu != null) "--with-cpu=${gccCpu}" ++ optional (gccAbi != null) "--with-abi=${gccAbi}" ++ @@ -201,8 +201,6 @@ stdenv.mkDerivation ({ inherit sha256; }; - hardeningDisable = [ "format" ]; - inherit patches; outputs = [ "out" "lib" "man" "info" ]; @@ -211,6 +209,8 @@ stdenv.mkDerivation ({ libc_dev = stdenv.cc.libc_dev; + hardeningDisable = [ "format" ]; + # This should kill all the stdinc frameworks that gcc and friends like to # insert into default search paths. prePatch = stdenv.lib.optionalString hostPlatform.isDarwin '' @@ -356,9 +356,6 @@ stdenv.mkDerivation ({ }" ] ++ - # Optional features - optional (isl != null) "--with-isl=${isl}" ++ - (if enableMultilib then ["--enable-multilib" "--disable-libquadmath"] else ["--disable-multilib"]) ++ @@ -367,6 +364,9 @@ stdenv.mkDerivation ({ then ["--enable-plugin"] else ["--disable-plugin"]) ++ + # Optional features + optional (isl != null) "--with-isl=${isl}" ++ + # Java options optionals langJava [ "--with-ecj-jar=${javaEcj}" @@ -431,7 +431,7 @@ stdenv.mkDerivation ({ CC_FOR_TARGET = "${targetPlatform.config}-gcc"; NM_FOR_TARGET = "${targetPlatform.config}-nm"; CXX_FOR_TARGET = "${targetPlatform.config}-g++"; - # If we are making a cross compiler, cross != null + # If we are making a cross compiler, targetPlatform != hostPlatform NIX_CC_CROSS = optionalString (targetPlatform == hostPlatform) builtins.toString stdenv.cc; dontStrip = true; configureFlags = @@ -490,7 +490,7 @@ stdenv.mkDerivation ({ CPATH = makeSearchPathOutput "dev" "include" ([] ++ optional (zlib != null) zlib - ++ optionals langJava [ boehmgc ] + ++ optional langJava boehmgc ++ optionals javaAwtGtk xlibs ++ optionals javaAwtGtk [ gmp mpfr ] ++ optional (libpthread != null) libpthread diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix index a68946a6f34..c75472e7300 100644 --- a/pkgs/development/compilers/gcc/6/default.nix +++ b/pkgs/development/compilers/gcc/6/default.nix @@ -181,7 +181,7 @@ let version = "6.4.0"; stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final"; crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else ""; - bootstrap = targetPlatform == hostPlatform; + bootstrap = targetPlatform == hostPlatform; in @@ -383,7 +383,7 @@ stdenv.mkDerivation ({ # Ada optional langAda "--enable-libada" ++ - # Cross compilation + # Cross-compilation optional (targetPlatform == hostPlatform) ( let incDir = if hostPlatform.isDarwin then "${darwin.usr-include}" @@ -396,7 +396,7 @@ stdenv.mkDerivation ({ # Platform-specific flags optional (targetPlatform == hostPlatform && targetPlatform.isi686) "--with-arch=i686" ++ - optionals (hostPlatform.isSunOS) [ + optionals hostPlatform.isSunOS [ "--enable-long-long" "--enable-libssp" "--enable-threads=posix" "--disable-nls" "--enable-__cxa_atexit" # On Illumos/Solaris GNU as is preferred "--with-gnu-as" "--without-gnu-ld" From 77b409b2cf75076289e778d6caeec0f53a34317e Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Wed, 29 Nov 2017 21:59:19 +0200 Subject: [PATCH 12/20] gcc49: Reduce diff to gcc5 --- pkgs/development/compilers/gcc/4.9/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix index 362670ff5db..ecd46be34e5 100644 --- a/pkgs/development/compilers/gcc/4.9/default.nix +++ b/pkgs/development/compilers/gcc/4.9/default.nix @@ -106,7 +106,7 @@ let version = "4.9.4"; gccFpu = platform.gcc.fpu or null; gccFloat = platform.gcc.float or null; gccMode = platform.gcc.mode or null; - in + in optional (gccArch != null) "--with-arch=${gccArch}" ++ optional (gccCpu != null) "--with-cpu=${gccCpu}" ++ optional (gccAbi != null) "--with-abi=${gccAbi}" ++ @@ -421,7 +421,7 @@ stdenv.mkDerivation ({ CC_FOR_TARGET = "${targetPlatform.config}-gcc"; NM_FOR_TARGET = "${targetPlatform.config}-nm"; CXX_FOR_TARGET = "${targetPlatform.config}-g++"; - # If we are making a cross compiler, cross != null + # If we are making a cross compiler, targetPlatform != hostPlatform NIX_CC_CROSS = optionalString (targetPlatform == hostPlatform) builtins.toString stdenv.cc; dontStrip = true; configureFlags = @@ -501,7 +501,7 @@ stdenv.mkDerivation ({ EXTRA_TARGET_CFLAGS = if targetPlatform != hostPlatform && libcCross != null then [ - "-idirafter ${libcCross.dev}/include" + "-idirafter ${getDev libcCross}/include" ] ++ optionals (! crossStageStatic) [ "-B${libcCross.out}/lib" From 825b953bf575b4248ee57980362387c91be0f4c3 Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Wed, 29 Nov 2017 22:03:08 +0200 Subject: [PATCH 13/20] gcc48: Reduce diff to gcc49 --- .../development/compilers/gcc/4.8/default.nix | 26 +++++++++---------- .../development/compilers/gcc/4.9/default.nix | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix index 7003ace2890..c0efbb78f3c 100644 --- a/pkgs/development/compilers/gcc/4.8/default.nix +++ b/pkgs/development/compilers/gcc/4.8/default.nix @@ -115,7 +115,7 @@ let version = "4.8.5"; gccFpu = platform.gcc.fpu or null; gccFloat = platform.gcc.float or null; gccMode = platform.gcc.mode or null; - in + in optional (gccArch != null) "--with-arch=${gccArch}" ++ optional (gccCpu != null) "--with-cpu=${gccCpu}" ++ optional (gccAbi != null) "--with-abi=${gccAbi}" ++ @@ -186,7 +186,7 @@ let version = "4.8.5"; stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final"; crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else ""; - bootstrap = targetPlatform == hostPlatform && !hostPlatform.isArm && !hostPlatform.isMips; + bootstrap = targetPlatform == hostPlatform; in @@ -343,14 +343,6 @@ stdenv.mkDerivation ({ }" ] ++ - # Optional features - optional (isl != null) "--with-isl=${isl}" ++ - optionals (cloog != null) [ - "--with-cloog=${cloog}" - "--disable-cloog-version-check" - "--enable-cloog-backend=isl" - ] ++ - (if enableMultilib then ["--enable-multilib" "--disable-libquadmath"] else ["--disable-multilib"]) ++ @@ -359,6 +351,14 @@ stdenv.mkDerivation ({ then ["--enable-plugin"] else ["--disable-plugin"]) ++ + # Optional features + optional (isl != null) "--with-isl=${isl}" ++ + optionals (cloog != null) [ + "--with-cloog=${cloog}" + "--disable-cloog-version-check" + "--enable-cloog-backend=isl" + ] ++ + # Java options optionals langJava [ "--with-ecj-jar=${javaEcj}" @@ -422,7 +422,7 @@ stdenv.mkDerivation ({ CC_FOR_TARGET = "${targetPlatform.config}-gcc"; NM_FOR_TARGET = "${targetPlatform.config}-nm"; CXX_FOR_TARGET = "${targetPlatform.config}-g++"; - # If we are making a cross compiler, cross != null + # If we are making a cross compiler, targetPlatform != hostPlatform NIX_CC_CROSS = optionalString (targetPlatform == hostPlatform) builtins.toString stdenv.cc; dontStrip = true; configureFlags = @@ -431,7 +431,7 @@ stdenv.mkDerivation ({ optional langJava "--with-ecj-jar=${javaEcj.crossDrv}" ++ optional javaAwtGtk "--enable-java-awt=gtk" ++ optional (langJava && javaAntlr != null) "--with-antlr-jar=${javaAntlr.crossDrv}" ++ - optional (cloog != null) "--with-cloog=${cloog.crossDrv} --enable-cloog-backend=isl" ++ + optionals (cloog != null) ["--with-cloog=${cloog.crossDrv}" "--enable-cloog-backend=isl"] ++ [ "--with-gmp=${gmp.crossDrv}" "--with-mpfr=${mpfr.crossDrv}" @@ -502,7 +502,7 @@ stdenv.mkDerivation ({ EXTRA_TARGET_CFLAGS = if targetPlatform != hostPlatform && libcCross != null then [ - "-idirafter ${libcCross.dev}/include" + "-idirafter ${getDev libcCross}/include" ] ++ optionals (! crossStageStatic) [ "-B${libcCross.out}/lib" diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix index ecd46be34e5..ca9d26e68fc 100644 --- a/pkgs/development/compilers/gcc/4.9/default.nix +++ b/pkgs/development/compilers/gcc/4.9/default.nix @@ -430,7 +430,7 @@ stdenv.mkDerivation ({ optional langJava "--with-ecj-jar=${javaEcj.crossDrv}" ++ optional javaAwtGtk "--enable-java-awt=gtk" ++ optional (langJava && javaAntlr != null) "--with-antlr-jar=${javaAntlr.crossDrv}" ++ - optional (cloog != null) "--with-cloog=${cloog.crossDrv}" "--enable-cloog-backend=isl" ++ + optionals (cloog != null) ["--with-cloog=${cloog.crossDrv}" "--enable-cloog-backend=isl"] ++ [ "--with-gmp=${gmp.crossDrv}" "--with-mpfr=${mpfr.crossDrv}" From d7a0695c43f5b27329aef96bc4fd3e31427228f5 Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Wed, 29 Nov 2017 22:22:11 +0200 Subject: [PATCH 14/20] gcc7: Reduce diff to gcc6 --- pkgs/development/compilers/gcc/6/default.nix | 2 +- pkgs/development/compilers/gcc/7/default.nix | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix index c75472e7300..151dc96b242 100644 --- a/pkgs/development/compilers/gcc/6/default.nix +++ b/pkgs/development/compilers/gcc/6/default.nix @@ -430,7 +430,7 @@ stdenv.mkDerivation ({ CC_FOR_TARGET = "${targetPlatform.config}-gcc"; NM_FOR_TARGET = "${targetPlatform.config}-nm"; CXX_FOR_TARGET = "${targetPlatform.config}-g++"; - # If we are making a cross compiler, cross != null + # If we are making a cross compiler, targetPlatform != hostPlatform NIX_CC_CROSS = optionalString (targetPlatform == hostPlatform) builtins.toString stdenv.cc; dontStrip = true; configureFlags = diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix index c201ca6373b..7335c784a95 100644 --- a/pkgs/development/compilers/gcc/7/default.nix +++ b/pkgs/development/compilers/gcc/7/default.nix @@ -105,7 +105,7 @@ let version = "7.2.0"; gccFpu = platform.gcc.fpu or null; gccFloat = platform.gcc.float or null; gccMode = platform.gcc.mode or null; - in + in optional (gccArch != null) "--with-arch=${gccArch}" ++ optional (gccCpu != null) "--with-cpu=${gccCpu}" ++ optional (gccAbi != null) "--with-abi=${gccAbi}" ++ @@ -426,7 +426,7 @@ stdenv.mkDerivation ({ NM_FOR_TARGET = "${targetPlatform.config}-nm"; CXX_FOR_TARGET = "${targetPlatform.config}-g++"; # If we are making a cross compiler, targetPlatform != hostPlatform - NIX_CC_CROSS = if targetPlatform == hostPlatform then "${stdenv.ccCross}" else ""; + NIX_CC_CROSS = optionalString (targetPlatform == hostPlatform) builtins.toString stdenv.cc; dontStrip = true; configureFlags = optional (!enableMultilib) "--disable-multilib" ++ From 0f249a73548ed950acd95bd9d64c4ea05522876f Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Wed, 29 Nov 2017 22:55:34 +0200 Subject: [PATCH 15/20] gccSnapshot: Reduce diff to gcc7 --- pkgs/development/compilers/gcc/snapshot/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/gcc/snapshot/default.nix b/pkgs/development/compilers/gcc/snapshot/default.nix index 38df9de08c2..48840ffa7c2 100644 --- a/pkgs/development/compilers/gcc/snapshot/default.nix +++ b/pkgs/development/compilers/gcc/snapshot/default.nix @@ -105,7 +105,7 @@ let version = "7-20170409"; gccFpu = platform.gcc.fpu or null; gccFloat = platform.gcc.float or null; gccMode = platform.gcc.mode or null; - in + in optional (gccArch != null) "--with-arch=${gccArch}" ++ optional (gccCpu != null) "--with-cpu=${gccCpu}" ++ optional (gccAbi != null) "--with-abi=${gccAbi}" ++ @@ -412,7 +412,7 @@ stdenv.mkDerivation ({ CC_FOR_TARGET = "${targetPlatform.config}-gcc"; NM_FOR_TARGET = "${targetPlatform.config}-nm"; CXX_FOR_TARGET = "${targetPlatform.config}-g++"; - # If we are making a cross compiler, cross != null + # If we are making a cross compiler, targetPlatform != hostPlatform NIX_CC_CROSS = optionalString (targetPlatform == hostPlatform) builtins.toString stdenv.cc; dontStrip = true; configureFlags = From 703a9f93c1254f7bdf0350ca0462de0d78033c62 Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Wed, 29 Nov 2017 22:51:58 +0200 Subject: [PATCH 16/20] gcc6: Restore missing platform flags This was missed in commit 1c1207220f06 ("gcc: Refactor treatment of configure flags"), all other GCC versions have it right. --- pkgs/development/compilers/gcc/6/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix index 151dc96b242..d9f4d35f4f8 100644 --- a/pkgs/development/compilers/gcc/6/default.nix +++ b/pkgs/development/compilers/gcc/6/default.nix @@ -391,6 +391,7 @@ stdenv.mkDerivation ({ in "--with-native-system-header-dir=${incDir}" ) ++ + optional (targetPlatform == hostPlatform) (mkPlatformFlags stdenv.platform) ++ optional (targetPlatform != hostPlatform) crossConfigureFlags ++ optional (!bootstrap) "--disable-bootstrap" ++ From 64f945efd28bf8fc53bb161301b50066fd61cf53 Mon Sep 17 00:00:00 2001 From: Orivej Desh Date: Thu, 30 Nov 2017 07:42:07 +0000 Subject: [PATCH 17/20] Revert "qt48: use tabs in the Makefile patch" to apply a different fix, since the current one does not apply to Darwin. This reverts commit bfaf7ae5aee2fdea952341911b68b54df7541c9c. --- pkgs/development/libraries/qt-4.x/4.8/default.nix | 2 +- pkgs/development/libraries/qt-4.x/4.8/parallel-build.patch | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix index a73f63bfb4b..a54860ff0ac 100644 --- a/pkgs/development/libraries/qt-4.x/4.8/default.nix +++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix @@ -128,7 +128,7 @@ stdenv.mkDerivation rec { postConfigure = '' echo "applying patch ${./parallel-build.patch}" - patch -p1 -i ${./parallel-build.patch} + patch -p1 < ${./parallel-build.patch} ''; prefixKey = "-prefix "; diff --git a/pkgs/development/libraries/qt-4.x/4.8/parallel-build.patch b/pkgs/development/libraries/qt-4.x/4.8/parallel-build.patch index d471bb2a665..5783543e844 100644 --- a/pkgs/development/libraries/qt-4.x/4.8/parallel-build.patch +++ b/pkgs/development/libraries/qt-4.x/4.8/parallel-build.patch @@ -1,6 +1,6 @@ --- a/tools/designer/src/lib/Makefile +++ b/tools/designer/src/lib/Makefile @@ -7167,2 +7167,3 @@ compiler_moc_header_clean: - .uic/release-shared/ui_qtgradientviewdialog.h \ -+ .uic/release-shared/ui_qtgradientview.h \ - ../../../shared/qtgradienteditor/qtgradientviewdialog.h + .uic/release-shared/ui_qtgradientviewdialog.h \ ++ .uic/release-shared/ui_qtgradientview.h \ + ../../../shared/qtgradienteditor/qtgradientviewdialog.h From b4ec15304010a5dcc41c935db4bf3fc219dedbe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Fri, 1 Dec 2017 07:49:25 +0100 Subject: [PATCH 18/20] orc: doCheck broken on i686 on Hydra, again --- pkgs/development/compilers/orc/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/orc/default.nix b/pkgs/development/compilers/orc/default.nix index 525d2bb33a5..9fc9007abb9 100644 --- a/pkgs/development/compilers/orc/default.nix +++ b/pkgs/development/compilers/orc/default.nix @@ -15,7 +15,8 @@ stdenv.mkDerivation rec { sed "/^toolsdir=/ctoolsdir=$dev/bin" -i "$dev"/lib/pkgconfig/orc*.pc ''; - doCheck = true; + # https://bugzilla.gnome.org/show_bug.cgi?id=728129#c15 + doCheck = stdenv.system != "i686-linux"; # not sure about cross-compiling meta = with stdenv.lib; { description = "The Oil Runtime Compiler"; From da3679c1600d4657a3175eb7cfff3f6a346b03f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Fri, 1 Dec 2017 08:27:31 +0100 Subject: [PATCH 19/20] libsoup: maintenance 2.60.0 -> 2.60.2 + patch --- pkgs/development/libraries/libsoup/default.nix | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/libsoup/default.nix b/pkgs/development/libraries/libsoup/default.nix index cdf24c79e5e..e8d48bf668b 100644 --- a/pkgs/development/libraries/libsoup/default.nix +++ b/pkgs/development/libraries/libsoup/default.nix @@ -1,18 +1,18 @@ -{ stdenv, fetchurl, glib, libxml2, pkgconfig +{ stdenv, fetchurl, fetchpatch, glib, libxml2, pkgconfig , gnomeSupport ? true, libgnome_keyring3, sqlite, glib_networking, gobjectIntrospection , valaSupport ? true, vala_0_38 , libintlOrEmpty , intltool, python }: let majorVersion = "2.60"; - version = "${majorVersion}.0"; + version = "${majorVersion}.2"; in stdenv.mkDerivation { name = "libsoup-${version}"; src = fetchurl { url = "mirror://gnome/sources/libsoup/${majorVersion}/libsoup-${version}.tar.xz"; - sha256 = "b324edbecda0884143c0853b4a2bd5bd37fb3761f12f293c621ff34b9acdc84c"; + sha256 = "7263cfe18872e2e652c196f5667e514616d9c97c861dfca82a65a55f45f0da01"; }; prePatch = '' @@ -22,6 +22,15 @@ stdenv.mkDerivation { substituteInPlace libsoup/Makefile.in --replace "\$(DESTDIR)\$(vapidir)" "\$(DESTDIR)\$(girdir)/../vala/vapi" ''; + patches = [ + # remove for >= 2.60.3 + (fetchpatch { + name = "buffer-overflow.patch"; # https://bugzilla.gnome.org/show_bug.cgi?id=788037 + url = "https://git.gnome.org/browse/libsoup/patch/?id=b79689833ba"; + sha256 = "1azbk540mbm4c6ip54ixbg9d6w7nkls9y81fzm3csq9a5786r3d3"; + }) + ]; + outputs = [ "out" "dev" ]; buildInputs = libintlOrEmpty ++ [ intltool python sqlite ] From c13de40f04e4c426828ec6d009f7ce5cf8d396c2 Mon Sep 17 00:00:00 2001 From: Orivej Desh Date: Fri, 1 Dec 2017 17:15:10 +0000 Subject: [PATCH 20/20] tzdata: export TZDIR for dependent packages https://github.com/NixOS/nix/issues/1709 --- pkgs/data/misc/tzdata/default.nix | 2 ++ pkgs/data/misc/tzdata/tzdata-setup-hook.sh | 6 ++++++ 2 files changed, 8 insertions(+) create mode 100644 pkgs/data/misc/tzdata/tzdata-setup-hook.sh diff --git a/pkgs/data/misc/tzdata/default.nix b/pkgs/data/misc/tzdata/default.nix index 1b4d967af55..ada2ed997da 100644 --- a/pkgs/data/misc/tzdata/default.nix +++ b/pkgs/data/misc/tzdata/default.nix @@ -41,6 +41,8 @@ stdenv.mkDerivation rec { cp tzfile.h "$dev/include/tzfile.h" ''; + setupHook = ./tzdata-setup-hook.sh; + meta = { homepage = http://www.iana.org/time-zones; description = "Database of current and historical time zones"; diff --git a/pkgs/data/misc/tzdata/tzdata-setup-hook.sh b/pkgs/data/misc/tzdata/tzdata-setup-hook.sh new file mode 100644 index 00000000000..9ae9b46d85c --- /dev/null +++ b/pkgs/data/misc/tzdata/tzdata-setup-hook.sh @@ -0,0 +1,6 @@ +tzdataHook() { + export TZDIR=@out@/share/zoneinfo +} + +envHooks+=(tzdataHook) +crossEnvHooks+=(tzdataHook)