diff options
Diffstat (limited to 'Debian/Debhelper')
-rw-r--r-- | Debian/Debhelper/Dh_Getopt.pm | 12 | ||||
-rw-r--r-- | Debian/Debhelper/Dh_Lib.pm | 28 |
2 files changed, 34 insertions, 6 deletions
diff --git a/Debian/Debhelper/Dh_Getopt.pm b/Debian/Debhelper/Dh_Getopt.pm index 53db13ae..364187a1 100644 --- a/Debian/Debhelper/Dh_Getopt.pm +++ b/Debian/Debhelper/Dh_Getopt.pm @@ -149,6 +149,8 @@ sub parseopts { "L|libpackage=s" => \$options{LIBPACKAGE}, + "name=s" => \$options{NAME}, + "<>" => \&NonOption, ); @@ -173,13 +175,19 @@ sub parseopts { } push @{$options{DOPACKAGES}},GetPackages(); } - + # Remove excluded packages from the list of packages to act on. + # Also unique the list, in case some options were specified that + # added a package to it twice. my @package_list; my $package; + my %packages_seen; foreach $package (@{$options{DOPACKAGES}}) { if (! $exclude_package{$package}) { - push @package_list, $package; + if (! exists $packages_seen{$package}) { + $packages_seen{$package}=1; + push @package_list, $package; + } } } @{$options{DOPACKAGES}}=@package_list; diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm index 345630d7..0eea0180 100644 --- a/Debian/Debhelper/Dh_Lib.pm +++ b/Debian/Debhelper/Dh_Lib.pm @@ -11,9 +11,9 @@ use Exporter; use vars qw(@ISA @EXPORT %dh); @ISA=qw(Exporter); @EXPORT=qw(&init &doit &complex_doit &verbose_print &error &warning &tmpdir - &pkgfile &pkgext &isnative &autoscript &filearray &filedoublearray - &GetPackages &basename &dirname &xargs %dh &compat &addsubstvar - &delsubstvar &excludefile); + &pkgfile &pkgext &pkgfilename &isnative &autoscript &filearray + &filedoublearray &GetPackages &basename &dirname &xargs %dh + &compat &addsubstvar &delsubstvar &excludefile); my $max_compat=4; @@ -283,10 +283,18 @@ sub tmpdir { # * debian/package.filename.buildarch # * debian/package.filename # * debian/file (if the package is the main package) +# If --name was specified then tonly the first two are tried, and they must +# have the name after the pacage name: +# * debian/package.name.filename.buildarch +# * debian/package.name.filename sub pkgfile { my $package=shift; my $filename=shift; + if (defined $dh{NAME}) { + $filename="$dh{NAME}.$filename"; + } + if (-f "debian/$package.$filename.".buildarch()) { return "debian/$package.$filename.".buildarch(); } @@ -302,7 +310,7 @@ sub pkgfile { } # Pass it a name of a binary package, it returns the name to prefix to files -# in debian for this package. +# in debian/ for this package. sub pkgext { my $package=shift; @@ -312,6 +320,18 @@ sub pkgext { return "$package."; } +# Pass it the name of a binary package, it returns the name to install +# files by in eg, etc. Normally this is the same, but --name can override +# it. +sub pkgfilename { + my $package=shift; + + if (defined $dh{NAME}) { + return $dh{NAME}; + } + return $package; +} + # Returns 1 if the package is a native debian package, null otherwise. # As a side effect, sets $dh{VERSION} to the version of this package. { |