From 6751fac41836112b07e46cb398296918951f9cb6 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 4 Dec 2012 19:54:44 +0100 Subject: [PATCH] dpkg: Fix caching of architecture name Our deb-closure script would causes zillions of invocations of "dpkg --print-architecture", which is rather slow. --- .../package-management/dpkg/cache-arch.patch | 15 +++++++++++++++ pkgs/tools/package-management/dpkg/default.nix | 2 ++ 2 files changed, 17 insertions(+) create mode 100644 pkgs/tools/package-management/dpkg/cache-arch.patch diff --git a/pkgs/tools/package-management/dpkg/cache-arch.patch b/pkgs/tools/package-management/dpkg/cache-arch.patch new file mode 100644 index 00000000000..9677c8fdee3 --- /dev/null +++ b/pkgs/tools/package-management/dpkg/cache-arch.patch @@ -0,0 +1,15 @@ +Don't invoke "dpkg --print-architecture" for every call to +Dpkg::Arch::get_raw_build_arch(). + +diff -ru -x '*~' dpkg-1.16.9/scripts/Dpkg/Arch.pm dpkg-1.16.9-new/scripts/Dpkg/Arch.pm +--- dpkg-1.16.9/scripts/Dpkg/Arch.pm 2012-10-20 06:34:17.000000000 +0200 ++++ dpkg-1.16.9-new/scripts/Dpkg/Arch.pm 2012-12-04 19:42:20.451002537 +0100 +@@ -59,7 +59,7 @@ + # dpkg-architecture itself, by avoiding computing the DEB_BUILD_ + # variables when they are not requested. + +- my $build_arch = `dpkg --print-architecture`; ++ $build_arch = `dpkg --print-architecture`; + syserr("dpkg --print-architecture failed") if $? >> 8; + + chomp $build_arch; diff --git a/pkgs/tools/package-management/dpkg/default.nix b/pkgs/tools/package-management/dpkg/default.nix index 849780ad047..e801bcfb2c2 100644 --- a/pkgs/tools/package-management/dpkg/default.nix +++ b/pkgs/tools/package-management/dpkg/default.nix @@ -10,6 +10,8 @@ stdenv.mkDerivation { sha256 = "0ykby9x4x2zb7rfj30lfjcsrq2q32z2lnsrl8pbdvb2l9sx7zkbk"; }; + patches = [ ./cache-arch.patch ]; + configureFlags = "--disable-dselect --with-admindir=/var/lib/dpkg PERL_LIBDIR=$(out)/${perl.libPrefix}"; preConfigure = ''