From 67e4ed96937dbbb663a66a9f0228f4811b5020df Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Thu, 7 Dec 2017 09:55:48 -0500 Subject: [PATCH 01/11] mmc-utils: Enable cross-compilation --- pkgs/os-specific/linux/mmc-utils/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/os-specific/linux/mmc-utils/default.nix b/pkgs/os-specific/linux/mmc-utils/default.nix index a17f687a255..b491d5bbda7 100644 --- a/pkgs/os-specific/linux/mmc-utils/default.nix +++ b/pkgs/os-specific/linux/mmc-utils/default.nix @@ -10,6 +10,8 @@ stdenv.mkDerivation rec { sha256 = "0hkdzc71pdnscbpdpgwljcchiyancarldjyd0w609sy18bky833x"; }; + makeFlags = "CC=${stdenv.cc.targetPrefix}cc"; + installPhase = '' make install prefix=$out mkdir -p $out/share/man/man1 From edd92f9182e63d6f118a1c5136590694fb1793dc Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Thu, 7 Dec 2017 09:55:37 -0500 Subject: [PATCH 02/11] net-tools: Enable cross-compilation --- pkgs/os-specific/linux/net-tools/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/os-specific/linux/net-tools/default.nix b/pkgs/os-specific/linux/net-tools/default.nix index ce287dc1841..42f745b02e3 100644 --- a/pkgs/os-specific/linux/net-tools/default.nix +++ b/pkgs/os-specific/linux/net-tools/default.nix @@ -15,6 +15,8 @@ stdenv.mkDerivation rec { ''; makeFlags = [ + "CC=${stdenv.cc.targetPrefix}cc" + "AR=${stdenv.cc.targetPrefix}ar" "BASEDIR=$(out)" "mandir=/share/man" "HAVE_ARP_TOOLS=1" From 10fa4a571c0669e44acfedc3bf1917b3ffcfbf61 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Sun, 29 Oct 2017 16:57:54 -0400 Subject: [PATCH 03/11] tcp-wrappers: Enable cross-compilation This package, like so many others, assumes that ar is unprefixed. --- pkgs/os-specific/linux/tcp-wrappers/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/os-specific/linux/tcp-wrappers/default.nix b/pkgs/os-specific/linux/tcp-wrappers/default.nix index e3aae30babc..5df7bb827aa 100644 --- a/pkgs/os-specific/linux/tcp-wrappers/default.nix +++ b/pkgs/os-specific/linux/tcp-wrappers/default.nix @@ -35,7 +35,7 @@ in stdenv.mkDerivation rec { buildInputs = [ libnsl ]; - makeFlags = [ "REAL_DAEMON_DIR=$(out)/bin" "linux" ]; + makeFlags = [ "REAL_DAEMON_DIR=$(out)/bin" "linux" "AR:=$(AR)" ]; installPhase = '' mkdir -p "$out/bin" From d8c744b862e718ccf52ca6197a1c2383d77e9482 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Sun, 29 Oct 2017 15:21:06 -0400 Subject: [PATCH 04/11] libnl: Enable parallel building This is a long enough derivation to make this worthwhile. --- pkgs/os-specific/linux/libnl/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/os-specific/linux/libnl/default.nix b/pkgs/os-specific/linux/libnl/default.nix index f66df8163ff..c79a4314d6f 100644 --- a/pkgs/os-specific/linux/libnl/default.nix +++ b/pkgs/os-specific/linux/libnl/default.nix @@ -19,6 +19,8 @@ stdenv.mkDerivation { sha256 = "0dd7xxikib201i99k2if066hh7gwf2i4ffckrjplq6lr206jn00r"; }); + enableParallelBuilding = true; + nativeBuildInputs = [ autoreconfHook bison flex pkgconfig ]; meta = with lib; { From 6971c503af84da630e518697740789cb4c38a46f Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Sun, 29 Oct 2017 14:00:31 -0400 Subject: [PATCH 05/11] runit: Enable cross-compilation --- pkgs/tools/system/runit/default.nix | 8 ++++++-- pkgs/tools/system/runit/fix-ar-ranlib.patch | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 pkgs/tools/system/runit/fix-ar-ranlib.patch diff --git a/pkgs/tools/system/runit/default.nix b/pkgs/tools/system/runit/default.nix index aa2f50f2df0..4d5de56fbf0 100644 --- a/pkgs/tools/system/runit/default.nix +++ b/pkgs/tools/system/runit/default.nix @@ -13,6 +13,10 @@ stdenv.mkDerivation rec { sha256 = "065s8w62r6chjjs6m9hapcagy33m75nlnxb69vg0f4ngn061dl3g"; }; + patches = [ + ./fix-ar-ranlib.patch + ]; + outputs = [ "out" "man" ]; sourceRoot = "admin/${name}"; @@ -34,8 +38,8 @@ stdenv.mkDerivation rec { cd src # Both of these are originally hard-coded to gcc - echo cc > conf-cc - echo cc > conf-ld + echo ${stdenv.cc.targetPrefix}cc > conf-cc + echo ${stdenv.cc.targetPrefix}cc > conf-ld ''; installPhase = '' diff --git a/pkgs/tools/system/runit/fix-ar-ranlib.patch b/pkgs/tools/system/runit/fix-ar-ranlib.patch new file mode 100644 index 00000000000..c65a037d524 --- /dev/null +++ b/pkgs/tools/system/runit/fix-ar-ranlib.patch @@ -0,0 +1,18 @@ +--- runit-2.1.2/src/print-ar.sh ++++ runit-2.1.2/src/print-ar.sh +@@ -1,7 +1,7 @@ + cat warn-auto.sh + echo 'main="$1"; shift' + echo 'rm -f "$main"' +-echo 'ar cr "$main" ${1+"$@"}' ++echo '$AR cr "$main" ${1+"$@"}' + case "`cat systype`" in + sunos-5.*) ;; + unix_sv*) ;; +@@ -10,5 +10,5 @@ case "`cat systype`" in + dgux-*) ;; + hp-ux-*) ;; + sco*) ;; +- *) echo 'ranlib "$main"' ;; ++ *) echo '$RANLIB "$main"' ;; + esac From d23f71deaa161054ef449c0014c5043d85ae950b Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Fri, 27 Oct 2017 23:17:55 -0400 Subject: [PATCH 06/11] curl: Enable cross-compilation By fixing toolchain paths --- 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 4a1ff7f1798..5980392267b 100644 --- a/pkgs/tools/networking/curl/default.nix +++ b/pkgs/tools/networking/curl/default.nix @@ -76,8 +76,8 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optional c-aresSupport "--enable-ares=${c-ares}" ++ stdenv.lib.optional gssSupport "--with-gssapi=${kerberos.dev}"; - CXX = "c++"; - CXXCPP = "c++ -E"; + CXX = "${stdenv.cc.targetPrefix}c++"; + CXXCPP = "${stdenv.cc.targetPrefix}c++ -E"; doCheck = false; # expensive, fails From a09aa86ece6b39fb38fed510396abea779fa4d76 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Mon, 26 Feb 2018 18:17:23 -0500 Subject: [PATCH 07/11] rng-tools: Enable cross-compilation --- pkgs/tools/security/rng-tools/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/tools/security/rng-tools/default.nix b/pkgs/tools/security/rng-tools/default.nix index 1885940e7f3..d2326c7e8c3 100644 --- a/pkgs/tools/security/rng-tools/default.nix +++ b/pkgs/tools/security/rng-tools/default.nix @@ -9,6 +9,9 @@ stdenv.mkDerivation rec { sha256 = "13h7lc8wl9khhvkr0i3bl5j9bapf8anhqis1lcnwxg1vc2v058b0"; }; + # For cross-compilation + makeFlags = [ "AR:=$(AR)" ]; + meta = { description = "A random number generator daemon"; From 8b32cfdbc06e4839e71e9b11ab23aff726d48535 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Tue, 24 Apr 2018 16:25:33 -0400 Subject: [PATCH 08/11] lib.systems.gnu: Accept gnueabi as a gnu platform --- lib/systems/for-meta.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/systems/for-meta.nix b/lib/systems/for-meta.nix index 9e85cea3ad1..4ecd9ffc6ac 100644 --- a/lib/systems/for-meta.nix +++ b/lib/systems/for-meta.nix @@ -19,7 +19,11 @@ in rec { darwin = [ patterns.isDarwin ]; freebsd = [ patterns.isFreeBSD ]; # Should be better, but MinGW is unclear, and HURD is bit-rotted. - gnu = [ { kernel = parse.kernels.linux; abi = parse.abis.gnu; } ]; + gnu = [ + { kernel = parse.kernels.linux; abi = parse.abis.gnu; } + { kernel = parse.kernels.linux; abi = parse.abis.gnueabi; } + { kernel = parse.kernels.linux; abi = parse.abis.gnueabihf; } + ]; illumos = [ patterns.isSunOS ]; linux = [ patterns.isLinux ]; netbsd = [ patterns.isNetBSD ]; From 860c81d6f70aac3f653fc240e35e7d6f7e98a187 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Sun, 25 Feb 2018 14:42:23 -0500 Subject: [PATCH 09/11] ldns: Enable cross-compilation --- pkgs/development/libraries/ldns/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/libraries/ldns/default.nix b/pkgs/development/libraries/ldns/default.nix index 6c2a8f84d23..e9d81d3ab78 100644 --- a/pkgs/development/libraries/ldns/default.nix +++ b/pkgs/development/libraries/ldns/default.nix @@ -40,6 +40,9 @@ stdenv.mkDerivation rec { "--with-trust-anchor=${dns-root-data}/root.key" "--with-drill" "--disable-gost" + ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "ac_cv_func_malloc_0_nonnull=yes" + "ac_cv_func_realloc_0_nonnull=yes" ]; postInstall = '' From da481541585d5c6feb237f1559320dc7dfc064f7 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Sun, 29 Apr 2018 16:35:31 -0400 Subject: [PATCH 10/11] glib: Enable cross-compilation glib needs gettext for the build machine. Since gettext is also a propagatedBuildInput I'm assuming that it's also used at runtime. --- pkgs/development/libraries/glib/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index 403f0e8aa99..ac921227740 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -65,7 +65,7 @@ stdenv.mkDerivation rec { ++ optionals stdenv.isLinux [ utillinuxMinimal ] # for libmount ++ optionals doCheck [ tzdata libxml2 desktop-file-utils shared-mime-info ]; - nativeBuildInputs = [ pkgconfig perl python ]; + nativeBuildInputs = [ pkgconfig perl python gettext ]; propagatedBuildInputs = [ zlib libffi gettext libiconv ]; From 86a778a80a3e4a8eca8fad3a6a4a93142255ebbc Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Wed, 20 Dec 2017 13:58:56 -0500 Subject: [PATCH 11/11] avahi: Enable cross-compilation --- pkgs/development/libraries/avahi/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/avahi/default.nix b/pkgs/development/libraries/avahi/default.nix index 098378701d5..53e3f5468ab 100644 --- a/pkgs/development/libraries/avahi/default.nix +++ b/pkgs/development/libraries/avahi/default.nix @@ -20,13 +20,15 @@ stdenv.mkDerivation rec { buildInputs = [ libdaemon dbus perl perlXMLParser glib expat libiconv ] ++ (stdenv.lib.optional qt4Support qt4); - nativeBuildInputs = [ pkgconfig gettext intltool ]; + nativeBuildInputs = [ pkgconfig gettext intltool glib ]; configureFlags = [ "--disable-qt3" "--disable-gdbm" "--disable-mono" "--disable-gtk" "--disable-gtk3" "--${if qt4Support then "enable" else "disable"}-qt4" - "--disable-python" "--localstatedir=/var" "--with-distro=none" ] + "--disable-python" "--localstatedir=/var" "--with-distro=none" + # A systemd unit is provided by the avahi-daemon NixOS module + "--with-systemdsystemunitdir=no" ] ++ stdenv.lib.optional withLibdnssdCompat "--enable-compat-libdns_sd" # autoipd won't build on darwin ++ stdenv.lib.optional stdenv.isDarwin "--disable-autoipd";