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