diff options
author | Modestas Vainius <modestas@vainius.eu> | 2009-03-23 21:32:43 +0200 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-04-10 16:03:34 -0400 |
commit | 93cd875ba2e3ac9eda6adc31b4334d43ef718ea0 (patch) | |
tree | fbd83665938169f404fae9ddb5e9cdf456870dd6 /Debian/Debhelper/Dh_Lib.pm | |
parent | 877c62f70a904c1f549fbee9f763345bc19c6697 (diff) |
Add dpkg_architecture_value and sourcepackage to Dh_Lib
Both these function are taken from dh_auto_configure. I believe they
are useful enough to be in Dh_Lib (esp. dpkg_architecture_value()).
The patch removes these funtions from dh_auto_configure too.
Signed-off-by: Modestas Vainius <modestas@vainius.eu>
Diffstat (limited to 'Debian/Debhelper/Dh_Lib.pm')
-rw-r--r-- | Debian/Debhelper/Dh_Lib.pm | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm index b57c4d97..f0ad505b 100644 --- a/Debian/Debhelper/Dh_Lib.pm +++ b/Debian/Debhelper/Dh_Lib.pm @@ -15,7 +15,8 @@ use vars qw(@ISA @EXPORT %dh); &filedoublearray &getpackages &basename &dirname &xargs %dh &compat &addsubstvar &delsubstvar &excludefile &package_arch &is_udeb &udeb_filename &debhelper_script_subst &escape_shell - &inhibit_log &load_log &write_log); + &inhibit_log &load_log &write_log &dpkg_architecture_value + &sourcepackage); my $max_compat=7; @@ -600,15 +601,21 @@ sub excludefile { return 0; } +sub dpkg_architecture_value { + my $var = shift; + my $value=`dpkg-architecture -q$var 2>/dev/null` || error("dpkg-architecture failed"); + chomp $value; + return $value; +} + # Returns the build architecture. (Memoized) { my $arch; sub buildarch { - return $arch if defined $arch; - - $arch=`dpkg-architecture -qDEB_HOST_ARCH 2>/dev/null` || error("dpkg-architecture failed"); - chomp $arch; + if (!defined $arch) { + $arch=dpkg_architecture_value('DEB_HOST_ARCH'); + } return $arch; } } @@ -625,6 +632,23 @@ sub samearch { return 0; } +# Returns source package name +sub sourcepackage { + open (CONTROL, 'debian/control') || + error("cannot read debian/control: $!\n"); + while (<CONTROL>) { + chomp; + s/\s+$//; + if (/^Source:\s*(.*)/) { + close CONTROL; + return $1; + } + } + + close CONTROL; + error("could not find Source: line in control file."); +} + # Returns a list of packages in the control file. # Must pass "arch" or "indep" or "same" to specify arch-dependant or # -independant or same arch packages. If nothing is specified, returns all |