X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_gencontrol;h=32b85637f5f066d10d8d2b735a7fde841dca701b;hb=fb8f18f4a98669c3b85e1bd7920fbabfc00b886e;hp=0c03dfce2017b5db1d154ced6583f8628519b35d;hpb=8da1a397c64f933ae536be136aaab99f6105ab71;p=debhelper.git diff --git a/dh_gencontrol b/dh_gencontrol index 0c03dfc..32b8563 100755 --- a/dh_gencontrol +++ b/dh_gencontrol @@ -1,31 +1,92 @@ #!/usr/bin/perl -w -# -# Generate and install the control file. Simple dpkg-gencontrol wrapper. +=head1 NAME + +dh_gencontrol - generate and install control file + +=cut + +use strict; use Debian::Debhelper::Dh_Lib; -init(); -foreach $PACKAGE (@{$dh{DOPACKAGES}}) { - $TMP=tmpdir($PACKAGE); - $EXT=pkgext($PACKAGE); +=head1 SYNOPSIS + +B [S>] [S I>] + +=head1 DESCRIPTION + +B is a debhelper program that is responsible for generating +control files, and installing them into the I directory with the +proper permissions. + +This program is merely a wrapper around L, which calls +it once for each package being acted on, and passes in some additional +useful flags. + +=head1 OPTIONS + +=over 4 + +=item B<--> I + +Pass I to L. + +=item B<-u>I, B<--dpkg-gencontrol-params=>I + +This is another way to pass I to L. +It is deprecated; use B<--> instead. + +=back + +=cut + +init(options => { + "dpkg-gencontrol-params=s", => \$dh{U_PARAMS}, +}); + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp=tmpdir($package); + my $ext=pkgext($package); + + my $substvars="debian/${ext}substvars"; - $changelog=pkgfile($PACKAGE,'changelog'); + my $changelog=pkgfile($package,'changelog'); if (! $changelog) { $changelog='debian/changelog'; } - if ( ! -d '$TMP/DEBIAN' ) { - doit("install","-o",0,"-g",0,"-d","$TMP/DEBIAN"); + if ( ! -d "$tmp/DEBIAN" ) { + doit("install","-o",0,"-g",0,"-d","$tmp/DEBIAN"); } + # avoid gratuitous warning + if (! -e $substvars || system("grep -q '^misc:Depends=' $substvars") != 0) { + complex_doit("echo misc:Depends= >> $substvars"); + } + # Generate and install control file. - doit("dpkg-gencontrol","-c".Debian::Debhelper::Dh_Lib::getcontrol(), - "-l$changelog","-isp","-p$PACKAGE","-Tdebian/${EXT}substvars", - "-P$TMP",@{$dh{U_PARAMS}}); + my @command="dpkg-gencontrol"; + if (getpackages() > 1) { + push @command, "-p$package"; + } + doit(@command, "-l$changelog", "-T$substvars", + "-P$tmp",@{$dh{U_PARAMS}}); - # This chmod is only necessary if the user sets the umask to something odd. - doit("chmod","644","$TMP/DEBIAN/control"); + # This chmod is only necessary if the user sets the umask to + # something odd. + doit("chmod","644","$tmp/DEBIAN/control"); - doit("chown","0.0","$TMP/DEBIAN/control"); + doit("chown","0:0","$tmp/DEBIAN/control"); } +=head1 SEE ALSO + +L + +This program is a part of debhelper. + +=head1 AUTHOR + +Joey Hess + +=cut