summaryrefslogtreecommitdiff
path: root/Debian
diff options
context:
space:
mode:
authorjoey <joey>2003-08-22 19:40:51 +0000
committerjoey <joey>2003-08-22 19:40:51 +0000
commit917726187d01b79c7aa454a953f2e483a5171061 (patch)
tree7f614ae4c96f9cd3facf2f25e1be5c49a2c7ff15 /Debian
parent5dd373940d0348cc4dce74d0b0aa148d35b29934 (diff)
r1596: * Remove duplicate packages from DOPACKAGES after argument processing.
Closes: #112950 * dh_compress: deal with links pointing to links pointing to compressed files, no matter what order find returns them. Closes: #204169 * dh_installmodules, dh_installpam, dh_installcron, dh_installinit, dh_installogrotate: add --name= option, that can be used to specify the name to use for the file(s) installed by these commands. For example, dh_installcron --name=foo will install debian/package.foo.cron.daily to etc/cron.daily/foo. Closes: #138202, #101003, #68545, #148844 (Thanks to Thomas Hood for connecting these bug reports.) * dh_installinit: deprecated --init-script option in favor of the above. * Add dh_installppp. Closes: #43403
Diffstat (limited to 'Debian')
-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 53db13a..364187a 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 345630d..0eea018 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.
{