From f0c3197c8a4d3c3e2f3e6c403ffe52555c871181 Mon Sep 17 00:00:00 2001 From: joey Date: Sun, 3 Jun 2001 22:25:07 +0000 Subject: [PATCH] r475: * dh_gencontrol: Added a documented interface for specifying substvars data in a file. Substvars data may be put in debian/package.substvars. (Those files used to be used by debhelper for automatically generated data, but it uses a different internal filename now). It will be merged with any automatically determined substvars data. See bug #98819 * I want to stress that no one should ever rely in internal, undocumented debhelper workings. Just because debhelper uses a certian name for some internally used file does not mean that you should feel free to modify that file to your own ends in a debian package. If you do use it, don't be at all suprised when it breaks. If you find that debhelper is lacking a documented interface for something that you need, ask for it! (debhelper's undocumented, internal use only files should now all be prefixed with ".debhelper") --- debian/changelog | 18 ++++++++++++++++++ dh_clean | 2 +- dh_gencontrol | 26 +++++++++++++++++++++----- dh_makeshlibs | 3 ++- dh_perl | 4 ++-- dh_shlibdeps | 2 +- doc/PROGRAMMING | 4 ++++ 7 files changed, 49 insertions(+), 10 deletions(-) diff --git a/debian/changelog b/debian/changelog index f19766b..f8858cb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,21 @@ +debhelper (3.0.30) unstable; urgency=low + + * dh_gencontrol: Added a documented interface for specifying substvars + data in a file. Substvars data may be put in debian/package.substvars. + (Those files used to be used by debhelper for automatically generated + data, but it uses a different internal filename now). It will be merged + with any automatically determined substvars data. See bug #98819 + * I want to stress that no one should ever rely in internal, undocumented + debhelper workings. Just because debhelper uses a certian name for some + internally used file does not mean that you should feel free to modify + that file to your own ends in a debian package. If you do use it, don't + be at all suprised when it breaks. If you find that debhelper is lacking + a documented interface for something that you need, ask for it! + (debhelper's undocumented, internal use only files should now all be + prefixed with ".debhelper") + + -- Joey Hess Sun, 3 Jun 2001 16:37:33 -0400 + debhelper (3.0.29) unstable; urgency=low * Added -X flag to dh_makeshlibs, for packages with wacky plugins that diff --git a/dh_clean b/dh_clean index d86743a..bd3b72c 100755 --- a/dh_clean +++ b/dh_clean @@ -62,7 +62,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { my $ext=pkgext($package); if (! $dh{D_FLAG}) { - doit("rm","-f","debian/${ext}substvars", + doit("rm","-f","debian/${ext}substvars.debhelper", "debian/${ext}postinst.debhelper", "debian/${ext}postrm.debhelper", "debian/${ext}preinst.debhelper", diff --git a/dh_gencontrol b/dh_gencontrol index bb39780..d305b96 100755 --- a/dh_gencontrol +++ b/dh_gencontrol @@ -21,7 +21,15 @@ 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 including "-isp". +useful flags including "-isp". + +Note that L expands certian substirution variables +when generating the control file (for details, see its man page). Those +variables are typically generated by L and like programs. +However, if you want to specify some of your own manually, you may do so, +by creating files named debian/package.substvars (where package is the +package these variables apply to). The files should be of the same form +output by L =head1 OPTIONS @@ -52,12 +60,20 @@ foreach my $package (@{$dh{DOPACKAGES}}) { doit("install","-o",0,"-g",0,"-d","$tmp/DEBIAN"); } - # Generate and install control file. Use complex_doit to allow for - # wild and wonderful U_PARAMS quoting. + # Merge in user-specified substvars file with debhelper generated + # one. + my $substvars=pkgfile($package,"substvars"); + if (-e $substvars) { + complex_doit("cat $substvars >> debian/${ext}substvars.debhelper"); + } + + # Generate and install control file. doit("dpkg-gencontrol","-l$changelog","-isp","-p$package", - "-Tdebian/${ext}substvars","-P$tmp",@{$dh{U_PARAMS}}); + "-Tdebian/${ext}substvars.debhelper", + "-P$tmp",@{$dh{U_PARAMS}}); - # This chmod is only necessary if the user sets the umask to something odd. + # 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"); diff --git a/dh_makeshlibs b/dh_makeshlibs index bb1d8ac..a70d3b2 100755 --- a/dh_makeshlibs +++ b/dh_makeshlibs @@ -19,7 +19,8 @@ dh_makeshlibs is a debhelper program that automatically scans for shared libraries, and generates a shlibs file for the libraries it finds. It also adds a call to ldconfig in the postinst and postrm scripts (in -DH_COMPAT=3 mode and above only). +DH_COMPAT=3 mode and above only) to any packages which it finds shared +libraries in. =head1 OPTIONS diff --git a/dh_perl b/dh_perl index ac6fa06..ea2025e 100755 --- a/dh_perl +++ b/dh_perl @@ -89,7 +89,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { my $ext = pkgext($package); my @subs; - if (open IN, "debian/${ext}substvars") + if (open IN, "debian/${ext}substvars.debhelper") { @subs = grep !/^perl:Depends=/, ; close IN; @@ -144,7 +144,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { unless $perl_depends eq 'perl-base'; } - open OUT, ">debian/${ext}substvars"; + open OUT, ">debian/${ext}substvars.debhelper"; print OUT @subs; close OUT; } diff --git a/dh_shlibdeps b/dh_shlibdeps index 744aa5b..f9199c3 100755 --- a/dh_shlibdeps +++ b/dh_shlibdeps @@ -97,7 +97,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { } if (@filelist) { - doit("dpkg-shlibdeps","-Tdebian/${ext}substvars",@{$dh{U_PARAMS}},'-dDepends',@filelist); + doit("dpkg-shlibdeps","-Tdebian/${ext}substvars.debhelper",@{$dh{U_PARAMS}},'-dDepends',@filelist); } } diff --git a/doc/PROGRAMMING b/doc/PROGRAMMING index 1f89e10..0934727 100644 --- a/doc/PROGRAMMING +++ b/doc/PROGRAMMING @@ -34,6 +34,10 @@ The autoscript() function (see below) is one easy way to do this. dh_installdeb is an exception, it will run after the other commands and merge these modifications into the actual postinst scripts. +In general, files named debian/*.debhelper are internal to debhelper, and +their expstence or use should not be relied on by external programs such as +the build process of a package. + Debhelper programs should default to doing exactly what policy says to do. There are always exceptions. Just ask me. -- 2.39.2