diff options
Diffstat (limited to 'Debian/Debhelper')
-rw-r--r-- | Debian/Debhelper/Dh_Lib.pm | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm index 421dd996..7c12706a 100644 --- a/Debian/Debhelper/Dh_Lib.pm +++ b/Debian/Debhelper/Dh_Lib.pm @@ -606,11 +606,23 @@ sub excludefile { return 0; } -sub dpkg_architecture_value { - my $var = shift; - my $value=`dpkg-architecture -q$var` || error("dpkg-architecture failed"); - chomp $value; - return $value; +{ + my %dpkg_arch_output; + sub dpkg_architecture_value { + my $var = shift; + local $_; + if (!exists($dpkg_arch_output{$var})) { + open(PIPE, '-|', 'dpkg-architecture') + or error("dpkg-architecture failed"); + while (<PIPE>) { + my ($k, $v) = split(/=/); + chomp $v; + $dpkg_arch_output{$k} = $v; + } + close(PIPE); + } + return $dpkg_arch_output{$var}; + } } # Returns the build architecture. (Memoized) |