summaryrefslogtreecommitdiff
path: root/Debian/Debhelper
diff options
context:
space:
mode:
Diffstat (limited to 'Debian/Debhelper')
-rw-r--r--Debian/Debhelper/Dh_Lib.pm22
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)