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);
 }

Reply via email to