Package: equivs Version: 2.0.8 Severity: wishlist I would like to be able to use `equivs-build` to generate the source packages needed to upload to my Ubuntu PPA using the `dput` command.
I have attached a patch that modifies the `equivs-build` script to add a new --source|-s parameter that mirrors the existing --full|-f parameter except that it passes the -S parameter to dpkg-buildpackage, which then generates the appropriate source output for PPAs. I have also done my best to update the manpage and script documentation to cover the new parameter, but I may be using incorrect terminology as much of it is a modified copy of the documentation for --full. If there are any changes you would like to see in how the feature is handled, I will be glad to modify it as needed. Cheers -- System Information: Debian Release: squeeze/sid APT prefers lucid-updates APT policy: (500, 'lucid-updates'), (500, 'lucid-security'), (500, 'lucid') Architecture: i386 (i686) Kernel: Linux 2.6.32.16-linode28 (SMP w/4 CPU cores) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages equivs depends on: ii debhelper 7.4.15ubuntu1 helper programs for debian/rules ii dpkg-dev 1.15.5.6ubuntu4.3 Debian package development tools ii fakeroot 1.14.4-1ubuntu1 Gives a fake root environment ii make 3.81-7ubuntu1 An utility for Directing compilati ii perl 5.10.1-8ubuntu2 Larry Wall's Practical Extraction equivs recommends no packages. equivs suggests no packages. -- no debconf information
diff -urN --exclude=CVS --exclude=.svn --exclude='.git*' --exclude='*.swp' equivs-2.0.8/debian/equivs-build.pod equivs-2.0.8-jreese/debian/equivs-build.pod --- equivs-2.0.8/debian/equivs-build.pod 2010-01-19 22:40:29.000000000 -0500 +++ equivs-2.0.8-jreese/debian/equivs-build.pod 2010-11-17 15:54:27.000000000 -0500 @@ -4,7 +4,7 @@ =head1 SYNOPSIS -B<equivs-build [--full|-f] [--arch=foo|-a=foo] controlfile> +B<equivs-build [--full|-f] [--source|-s] [--arch=foo|-a=foo] controlfile> =head1 DESCRIPTION @@ -101,6 +101,16 @@ the last entry of a supplied changelog, the Maintainer: field in the equivs control file, or the local username. +=item --source | -s + +Do a source build. B<debuild> will be called, that is, a +source package will be built and signed, suitable for upload +to the Ubuntu PPA servers. + +The ID used to signed is taken from, in that order, the user from +the last entry of a supplied changelog, the Maintainer: field in the +equivs control file, or the local username. + =item --arch | -a Build package for the specified architecture. Used diff -urN --exclude=CVS --exclude=.svn --exclude='.git*' --exclude='*.swp' equivs-2.0.8/usr/bin/equivs-build equivs-2.0.8-jreese/usr/bin/equivs-build --- equivs-2.0.8/usr/bin/equivs-build 2010-01-19 23:24:03.000000000 -0500 +++ equivs-2.0.8-jreese/usr/bin/equivs-build 2010-11-17 15:56:31.000000000 -0500 @@ -20,19 +20,20 @@ sub usage { print STDERR <<EOU; -Usage: equivs-build [--full|-f] [--arch=foo|-a=foo] controlfile +Usage: equivs-build [--full|-f] [--source|-s] [--arch=foo|-a=foo] controlfile controlfile is the name of an equivs controlfile. You can use "equivs-control filename" to create one. --full Full build including signing, etc., suitable for upload to Debian +--source Source build including signing, etc., suitable for upload to a PPA --arch Build package for a different architecture. Used e.g. for building Hurd packages under Linux. EOU exit 1; } -my ($full_package, $arch); -GetOptions(full => \$full_package, 'arch=s' => \$arch) or usage(); +my ($full_package, $source_only, $arch); +GetOptions(full => \$full_package, source => \$source_only, 'arch=s' => \$arch) or usage(); my $debug = 0; @@ -168,6 +169,8 @@ if ($full_package) { push @build_cmd, qw(dpkg-buildpackage -rfakeroot); +} elsif ($source_only) { + push @build_cmd, qw(dpkg-buildpackage -S -rfakeroot); } else { push @build_cmd, qw(fakeroot debian/rules binary); }