diff options
Diffstat (limited to 'dh_gencontrol')
-rwxr-xr-x | dh_gencontrol | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/dh_gencontrol b/dh_gencontrol new file mode 100755 index 00000000..32b85637 --- /dev/null +++ b/dh_gencontrol @@ -0,0 +1,92 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_gencontrol - generate and install control file + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B<dh_gencontrol> [S<I<debhelper options>>] [S<B<--> I<params>>] + +=head1 DESCRIPTION + +B<dh_gencontrol> is a debhelper program that is responsible for generating +control files, and installing them into the I<DEBIAN> directory with the +proper permissions. + +This program is merely a wrapper around L<dpkg-gencontrol(1)>, which calls +it once for each package being acted on, and passes in some additional +useful flags. + +=head1 OPTIONS + +=over 4 + +=item B<--> I<params> + +Pass I<params> to L<dpkg-gencontrol(1)>. + +=item B<-u>I<params>, B<--dpkg-gencontrol-params=>I<params> + +This is another way to pass I<params> to L<dpkg-gencontrol(1)>. +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"; + + my $changelog=pkgfile($package,'changelog'); + if (! $changelog) { + $changelog='debian/changelog'; + } + + 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. + 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"); + + doit("chown","0:0","$tmp/DEBIAN/control"); +} + +=head1 SEE ALSO + +L<debhelper(7)> + +This program is a part of debhelper. + +=head1 AUTHOR + +Joey Hess <joeyh@debian.org> + +=cut |