This is an automated email from the git hooks/post-receive script. jamessan pushed a commit to branch master in repository devscripts.
commit a1e76fc70e7a36f744854a27506f369bc3294c10 Author: James McCoy <[email protected]> Date: Sat Jul 8 15:05:02 2017 -0400 debuild: Disable signing if distribution is "UNRELEASED" Let the user override that by using dpkg-buildpackage's --force-sign option. Signed-off-by: James McCoy <[email protected]> --- debian/changelog | 3 +++ scripts/debuild.1 | 10 ++++++---- scripts/debuild.pl | 14 +++++++++++--- test/test_package_lifecycle | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index aeb80e1..d0ed2ed 100644 --- a/debian/changelog +++ b/debian/changelog @@ -49,6 +49,9 @@ devscripts (2.17.7) UNRELEASED; urgency=medium + When an empty message is provided on the command-line, do not add an empty entry to the changelog. Thanks to Adam Barratt for the patch. (Closes: #830968) + * debuild: + + Disable signing if the target distribution is "UNRELEASED", but honor + dpkg-buildpackage's --force-sign as an override. (Closes: #861020) [ Ben Finney ] * debdiff: diff --git a/scripts/debuild.1 b/scripts/debuild.1 index 1e8938a..2232c73 100644 --- a/scripts/debuild.1 +++ b/scripts/debuild.1 @@ -12,10 +12,12 @@ debuild \- build a Debian package package. It first runs \fBdpkg-buildpackage\fR, then runs \fBlintian\fR on the \fI.changes\fR file created (assuming that \fBlintian\fR is installed), and -finally signs the \fI.changes\fR and/or \fI.dsc\fR files as -appropriate (using \fBdebsign\fR(1) to do this instead of -\fBdpkg-buildpackage\fR(1) itself; all relevant key-signing options -are passed on). Parameters can be passed to \fBdpkg-buildpackage\fR +finally signs the appropriate files (using \fBdebsign\fR(1) to do +this instead of \fBdpkg-buildpackage\fR(1) itself; all relevant +key-signing options are passed on). +Signing will be skipped if the distribution is \fIUNRELEASED\fR, unless +\fBdpkg-buildpackage\fR's \fB\-\-force-sign\fR option is used. +Parameters can be passed to \fBdpkg-buildpackage\fR and \fBlintian\fR, where the parameters to the latter are indicated with the \fB\-\-lintian-opts\fR option. The allowable options in this case are diff --git a/scripts/debuild.pl b/scripts/debuild.pl index cf89e2c..3ea04ab 100755 --- a/scripts/debuild.pl +++ b/scripts/debuild.pl @@ -665,7 +665,7 @@ until (-r 'debian/changelog') { # Find the source package name and version number my %changelog; my $c = changelog_parse(); -@changelog{'Source', 'Version'} = @{$c}{'Source', 'Version'}; +@changelog{'Source', 'Version', 'Distribution'} = @{$c}{'Source', 'Version', 'Distribution'}; fatal "no package name in changelog!" unless exists $changelog{'Source'}; @@ -721,8 +721,9 @@ if ( $( != 0 && $) == 0 ) { $( = $) } # Our first task is to parse the command line options. # dpkg-buildpackage variables explicitly initialised in dpkg-buildpackage -my $signsource=1; -my $signchanges=1; +my $forcesign; +my $signsource = $changelog{Distribution} ne 'UNRELEASED'; +my $signchanges = $changelog{Distribution} ne 'UNRELEASED'; my $binarytarget='binary'; my $since=''; my $usepause=0; @@ -770,6 +771,7 @@ foreach (@dpkg_extra_opts) { /^-[dD]$/ and next; # already been processed $_ eq '-us' and $signsource=0, next; $_ eq '-uc' and $signchanges=0, next; + $_ eq '--force-sign' and $forcesign=1, next; $_ eq '-ap' and $usepause=1, next; /^-a(.*)/ and $targetarch=$1, push(@dpkg_opts, $_), next; $_ eq '-tc' and push(@dpkg_opts, $_), next; @@ -820,6 +822,7 @@ while ($_=shift) { /^-k/ and push(@debsign_opts, $_), next; # Ditto $_ eq '-us' and $signsource=0, next; $_ eq '-uc' and $signchanges=0, next; + $_ eq '--force-sign' and $forcesign=1, next; $_ eq '-ap' and $usepause=1, next; /^-a(.*)/ and $targetarch=$1, push(@dpkg_opts, $_), next; @@ -887,6 +890,11 @@ if (@ARGV) { } } +if ($forcesign) { + $signchanges = 1; + $signsource = 1; +} + if ($signchanges==1 and $signsource==0) { push @warnings, "I will sign the .dsc file anyway as a signed .changes file was requested\n"; diff --git a/test/test_package_lifecycle b/test/test_package_lifecycle index 6e7a196..f3c768f 100755 --- a/test/test_package_lifecycle +++ b/test/test_package_lifecycle @@ -286,6 +286,39 @@ test_debuild2() { dpkg-genchanges: not including original source code in upload dpkg-source --after-build test dpkg-buildpackage: binary and diff upload (original source NOT included) +EOS + runCommandOutCmpFile "-k'uscan test key (no secret) <[email protected]>'" "${WORKDIR}/package_lifecycle/debuild.txt" "" 0 + cd ${WORKDIR} +} + +test_debuild_forcesign() { + export GNUPGHOME=$GPGHOME + cd ${WORKDIR}/package_lifecycle/test + COMMAND='debuild --no-conf --no-lintian --preserve-envvar=PATH --preserve-envvar=PERL5LIB --preserve-envvar=DEBFULLNAME --preserve-envvar=DEBEMAIL --preserve-envvar=GNUPGHOME --set-envvar=NO_PKG_MANGLE=1 --force-sign' + cat > ${WORKDIR}/package_lifecycle/debuild.txt <<-EOS + dpkg-buildpackage -us -uc + dpkg-buildpackage: source package test + dpkg-buildpackage: source version 1.0-2 + dpkg-buildpackage: source distribution UNRELEASED + dpkg-buildpackage: source changed by Testophilus Testownik <[email protected]> + dpkg-source --before-build test + dpkg-buildpackage: host architecture ${_ARCH} + fakeroot debian/rules clean + dh clean + dpkg-source -b test + dpkg-source: info: using source format '3.0 (quilt)' + dpkg-source: info: building test using existing ./test_1.0.orig.tar.xz + dpkg-source: info: building test in test_1.0-2.debian.tar.xz + dpkg-source: info: building test in test_1.0-2.dsc + debian/rules build + dh build + fakeroot debian/rules binary + dh binary + dpkg-deb: building package 'test' in '../test_1.0-2_all.deb'. + dpkg-genchanges >../test_1.0-2_${_ARCH}.changes + dpkg-genchanges: not including original source code in upload + dpkg-source --after-build test + dpkg-buildpackage: binary and diff upload (original source NOT included) Now signing changes and any dsc files... EOS if which dpkg-genbuildinfo >/dev/null 2>&1; then -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/devscripts.git _______________________________________________ devscripts-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/devscripts-devel
