summary refs log tree commit diff
path: root/pkgs/tools/package-management/dpkg
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-12-04 19:54:44 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-12-04 19:54:44 +0100
commit6751fac41836112b07e46cb398296918951f9cb6 (patch)
tree6e28f3bde1dfcb5878b960a22854402cc7fecd22 /pkgs/tools/package-management/dpkg
parentf4ec141869f77ed36cc51e2d4da172b238c2823b (diff)
downloadnixlib-6751fac41836112b07e46cb398296918951f9cb6.tar
nixlib-6751fac41836112b07e46cb398296918951f9cb6.tar.gz
nixlib-6751fac41836112b07e46cb398296918951f9cb6.tar.bz2
nixlib-6751fac41836112b07e46cb398296918951f9cb6.tar.lz
nixlib-6751fac41836112b07e46cb398296918951f9cb6.tar.xz
nixlib-6751fac41836112b07e46cb398296918951f9cb6.tar.zst
nixlib-6751fac41836112b07e46cb398296918951f9cb6.zip
dpkg: Fix caching of architecture name
Our deb-closure script would causes zillions of invocations of "dpkg
--print-architecture", which is rather slow.
Diffstat (limited to 'pkgs/tools/package-management/dpkg')
-rw-r--r--pkgs/tools/package-management/dpkg/cache-arch.patch15
-rw-r--r--pkgs/tools/package-management/dpkg/default.nix2
2 files changed, 17 insertions, 0 deletions
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 000000000000..9677c8fdee35
--- /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 849780ad047d..e801bcfb2c29 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 = ''