Upload of dpkg 1.14.21 to unstable
Hi,
So, the next upload is ready, there might be still some translation
updates meanwhile, but no other changes for now, if something else comes
up we'll probably queue it for the next upload (which ideally should
only contain translation updates).
Most of the changes have either been pre-aproved, are important fixes,
regressions fixes and/or low-risk to be included. I'm attaching the
debdiff with the uninteresting stuff trimmed down, and links to the git
repo per commit, if you'd prefer each patch attached instead, please
ask and I'll send another mail with them.
If everything seems fine with you, I'll proceed with the upload.
Proposed debian/changelog
=========================
dpkg (1.14.21) unstable; urgency=low
[ Raphael Hertzog ]
* Small fix in "3.0 (quilt)" source format when using non-standard name
of the quilt series.
* Handle debian.tar.gz files like diff.gz in dpkg-buildpackage and
dpkg-genchanges to detect the kind of upload.
* Add "armel" to /usr/share/dpkg/archtable. Closes: #487768
* Modified Dpkg::BuildOptions to recognize and use spaces as separator
in DEB_BUILD_OPTIONS (in order to conform with the Debian policy
ruling established in #430649).
* Fix dpkg-source to not use -i and -I by default with "1.0" source
packages. Closes: #495138
[ Guillem Jover ]
* When loading the status file fix up any inconsistent package in state
triggers-awaited w/o the corresponding package with pending triggers.
Closes: #487637, #486843, #489068
* Fix --no-act in triggers related code. Closes: #495097
* Do not assert when dpkg stops processing packages due to too many
errors occurred while configuring or removing packages.
Thanks to Ian Jackson <ian@davenant.greenend.org.uk>. Closes: #483655
* Move lzma from dpkg Suggests to Pre-Depends. Closes: #456332
* Match description of -si option in dpkg-buildpackage to the one in
dpkg-genchanges. Closes: #493743
* Close --status-fd file descriptors on exec, so that they are not
inherited by the childs. Closes: #471488, #487684
* State that the preferred front-end is aptitude and replace one instance
of dselect usage with apt-get. Closes: #483785
[ Updated manpages translations ]
* French (Florent Usseil).
* German (Helge Kreutzmann).
[ Updated scripts translations ]
* Russian (Yuri Kozlov). Closes: #490076
* German (Helge Kreutzmann).
[ Updated dpkg translations ]
* Basque (Piarres Beobide). Closes: #490905
* Korean (Changwoo Ryu).
* Thai (Theppitak Karoonboonyanan). Closes: #488090
* Romanian (Eddy Petrișor).
* Russian (Yuri Kozlov). Closes: #488689
* Slovak (Ivan Masár). Closes: #488903
* French (Christian Perrier).
[ Added dpkg translations ]
* Lithuanian (Gintautas Miliauskas). Closes: #493326
[ Updated dselect translations ]
* Romanian (Eddy Petrișor).
Detailed list of non-translation commits
========================================
Misc fixes
----------
Changes related to dpkg-source v3:
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=9e780c86920150be
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=de193419c89d9507
Add armel to list of official architectures
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=7e24b87a5367ac4e
dpkg-buildpackage: use space as separator in DEB_BUILD_OPTIONS
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=9f484513e477dc29
dpkg: Move lzma from Suggests to Pre-Depends
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=91798ddd126ee367
Close --status-fd file descriptors on exec
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=8fe053cbfd17ca08
Regression fixes
----------------
Fix up packages in an inconsistent triggers-awaited state
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=587b8d8696cb92a4
Fix --no-act in triggers related code
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=df21e28ec2ea8baf
dpkg: Do not assert when configure or remove produced too many errors
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=5a39b7b59a228dbf
dpkg-source: don't use -i/-I by default for "1.0" source packages
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=21d69014f424f670
Doc fixes
---------
Match -si option description in dpkg-buildpackage to dpkg-genchanges
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=9e212bce41b6a62c
State that the preferred front-end is aptitude
http://git.debian.org/?p=dpkg/dpkg.git;a=commitdiff;h=da41337d96b4b2ef
thanks,
guillem
diff -Nru dpkg-1.14.20/ChangeLog dpkg-1.14.21/ChangeLog
--- dpkg-1.14.20/ChangeLog 2008-06-18 10:33:46.000000000 +0300
+++ dpkg-1.14.21/ChangeLog 2008-08-17 19:01:24.000000000 +0300
@@ -1,3 +1,86 @@
+2008-08-17 Guillem Jover <guillem@debian.org>
+
+ * configure.ac: Release 1.14.21.
+
+2008-08-17 Guillem Jover <guillem@debian.org>
+
+ * man/dpkg.1: Change reference to dselect as being the preferred
+ fron-end to aptitude. And 'apt-get dselect-upgrade' to be used to
+ act on the current package selections. Add references to aptitude
+ and apt man pages in 'SEE ALSO'.
+
+2008-08-16 Guillem Jover <guillem@debian.org>
+
+ * src/main.c (setpipe): Set file descriptors to close on exec.
+
+2008-08-15 Guillem Jover <guillem@debian.org>
+
+ * scripts/dpkg-buildpackage.pl (usage): Fix description of -si option.
+ * man/dpkg-buildpackage.1: Match description of -si option with the
+ one from dpkg-genchanges.1.
+
+2008-08-15 Raphael Hertzog <hertzog@debian.org>
+
+ * Dpkg/Source/Package.pm (new): Call init_options() only if
+ initialize() has been called as it's supposed to be called
+ only after the object has been upgraded to its target type.
+ (init_options): add a comment that explains that this function is
+ not called by Dpkg::Source::Package::V1::init_options() and
+ render the function more robust.
+
+2008-08-15 Ian Jackson <ian@davenant.greenend.org.uk>
+
+ * src/packages.c (process_queue): When onerr_abort is bigger than 0
+ return instead of breaking out of the loop, to avoid wrongly
+ asserting that !queue.length.
+
+2008-08-15 Guillem Jover <guillem@debian.org>
+
+ * lib/dbmodify.c (modstatdb_note): Do not call modstatdb_note_core if
+ cstatus does not allow writting. Move the core functionallity to ...
+ (modstatdb_note_core): ... here. New function.
+ * src/help.c (post_postinst_tasks_core): Do not call trig_incorporate
+ if running under --no-act.
+ * src/trigproc.c (trigproc): Do not call maintainer_script_postinst
+ if running under --no-act.
+ (trig_transitional_activate): Do not call trig_file_interests_save
+ if cstatus does not allow writting.
+
+2008-08-15 Guillem Jover <guillem@debian.org>
+
+ * lib/dpkg-db.h (trig_enqueue_awaited_pend): New function prototype.
+ (trig_fixup_awaiters): Likewise.
+ * lib/dbmodify.c (modstatdb_init): Call trig_fixup_awaiters.
+ * lib/fields.c (f_trigaw): Call trig_enqueue_awaited_pend.
+ * lib/triglib.c (struct pkg_list): New type.
+ (trig_awaited_pend_head): New variable.
+ (trig_enqueue_awaited_pend): New function definition.
+ (trig_fixup_awaiters): Likewise.
+
+2008-06-24 Raphael Hertzog <hertzog@debian.org>
+
+ * debian/archtable: Add armel.
+
+2008-06-21 Raphael Hertzog <hertzog@debian.org>
+
+ * scripts/dpkg-buildpackage.pl, scripts/dpkg-genchanges.pl: Treat
+ debian.tar.gz files (used by 3.0 (quilt) source packages) like
+ diff.gz files when it comes to detection of the kind of upload.
+
+2008-06-21 Raphael Hertzog <hertzog@debian.org>
+
+ * scripts/Dpkg/Source/Package/V3/quilt.pm: Define QUILT_SERIES
+ when running quilt in order to be able to use quilt series with
+ non-standard names (like debian.series or ubuntu.series).
+
+2008-06-18 Raphael Hertzog <hertzog@debian.org>
+
+ * configure.ac: Bump version to 1.14.21~.
+
+2008-06-18 Raphael Hertzog <hertzog@debian.org>
+
+ * configure.ac: Release 1.14.20.
+
2008-06-16 Guillem Jover <guillem@debian.org>
* lib/triglib.c (trig_file_interests_ensure): Pass the proper mask
diff -Nru dpkg-1.14.20/configure.ac dpkg-1.14.21/configure.ac
--- dpkg-1.14.20/configure.ac 2008-06-18 10:34:50.000000000 +0300
+++ dpkg-1.14.21/configure.ac 2008-08-17 19:01:10.000000000 +0300
@@ -1,7 +1,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
-AC_INIT([dpkg], [1.14.20], [debian-dpkg@lists.debian.org])
+AC_INIT([dpkg], [1.14.21], [debian-dpkg@lists.debian.org])
AC_CONFIG_SRCDIR([lib/dpkg.h])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([config])
diff -Nru dpkg-1.14.20/debian/archtable dpkg-1.14.21/debian/archtable
--- dpkg-1.14.20/debian/archtable 2007-07-28 18:29:49.000000000 +0300
+++ dpkg-1.14.21/debian/archtable 2008-08-15 09:14:39.000000000 +0300
@@ -17,6 +17,7 @@
alpha-linux-gnu alpha
x86_64-linux-gnu amd64
arm-linux-gnu arm
+arm-linux-gnueabi armel
hppa-linux-gnu hppa
m68k-linux-gnu m68k
mips-linux-gnu mips
diff -Nru dpkg-1.14.20/debian/control dpkg-1.14.21/debian/control
--- dpkg-1.14.20/debian/control 2008-06-18 10:33:27.000000000 +0300
+++ dpkg-1.14.21/debian/control 2008-08-15 09:29:15.000000000 +0300
@@ -18,11 +18,11 @@
Package: dpkg
Architecture: any
Essential: yes
-Pre-Depends: ${shlibs:Depends}, coreutils (>= 5.93-1)
+Pre-Depends: ${shlibs:Depends}, coreutils (>= 5.93-1), lzma
Conflicts: sysvinit (<< 2.82-1), dpkg-iasearch (<< 0.11),
dpkg-dev (<< 1.14.16), apt (<< 0.7.7), aptitude (<< 0.4.7-1)
Replaces: manpages-de (<= 0.4-3), manpages-pl (<= 20051117-1)
-Suggests: apt, lzma
+Suggests: apt
Description: Debian package management system
This package privides the low-level infrastructure for handling the
installation and removal of Debian software packages.
diff -Nru dpkg-1.14.20/lib/dbmodify.c dpkg-1.14.21/lib/dbmodify.c
--- dpkg-1.14.20/lib/dbmodify.c 2008-06-18 10:33:27.000000000 +0300
+++ dpkg-1.14.21/lib/dbmodify.c 2008-08-15 09:29:15.000000000 +0300
@@ -196,6 +196,7 @@
uvb.buf= m_malloc(uvb.size);
}
+ trig_fixup_awaiters(cstatus);
trig_incorporate(cstatus, admindir);
return cstatus;
@@ -240,6 +241,41 @@
free(updatefnbuf);
}
+static void
+modstatdb_note_core(struct pkginfo *pkg)
+{
+ assert(cstatus >= msdbrw_write);
+
+ varbufreset(&uvb);
+ varbufrecord(&uvb, pkg, &pkg->installed);
+
+ if (fwrite(uvb.buf, 1, uvb.used, importanttmp) != uvb.used)
+ ohshite(_("unable to write updated status of `%.250s'"), pkg->name);
+ if (fflush(importanttmp))
+ ohshite(_("unable to flush updated status of `%.250s'"), pkg->name);
+ if (ftruncate(fileno(importanttmp), uvb.used))
+ ohshite(_("unable to truncate for updated status of `%.250s'"), pkg->name);
+ if (fsync(fileno(importanttmp)))
+ ohshite(_("unable to fsync updated status of `%.250s'"), pkg->name);
+ if (fclose(importanttmp))
+ ohshite(_("unable to close updated status of `%.250s'"), pkg->name);
+ sprintf(updatefnrest, IMPORTANTFMT, nextupdate);
+ if (rename(importanttmpfile, updatefnbuf))
+ ohshite(_("unable to install updated status of `%.250s'"), pkg->name);
+
+ /* Have we made a real mess? */
+ assert(strlen(updatefnrest) <= IMPORTANTMAXLEN);
+
+ nextupdate++;
+
+ if (nextupdate > MAXUPDATES) {
+ modstatdb_checkpoint();
+ nextupdate = 0;
+ }
+
+ createimptmp();
+}
+
/* Note: If anyone wants to set some triggers-pending, they must also
* set status appropriately, or we will undo it. That is, it is legal
* to call this when pkg->status and pkg->trigpend_head disagree and
@@ -249,8 +285,6 @@
void modstatdb_note(struct pkginfo *pkg) {
struct trigaw *ta;
- assert(cstatus >= msdbrw_write);
-
onerr_abort++;
if (pkg->status != stat_triggerspending &&
@@ -267,31 +301,8 @@
versiondescribe(&pkg->installed.version, vdew_nonambig));
statusfd_send("status: %s: %s", pkg->name, statusinfos[pkg->status].name);
- varbufreset(&uvb);
- varbufrecord(&uvb, pkg, &pkg->installed);
- if (fwrite(uvb.buf, 1, uvb.used, importanttmp) != uvb.used)
- ohshite(_("unable to write updated status of `%.250s'"), pkg->name);
- if (fflush(importanttmp))
- ohshite(_("unable to flush updated status of `%.250s'"), pkg->name);
- if (ftruncate(fileno(importanttmp), uvb.used))
- ohshite(_("unable to truncate for updated status of `%.250s'"), pkg->name);
- if (fsync(fileno(importanttmp)))
- ohshite(_("unable to fsync updated status of `%.250s'"), pkg->name);
- if (fclose(importanttmp))
- ohshite(_("unable to close updated status of `%.250s'"), pkg->name);
- sprintf(updatefnrest, IMPORTANTFMT, nextupdate);
- if (rename(importanttmpfile, updatefnbuf))
- ohshite(_("unable to install updated status of `%.250s'"), pkg->name);
- assert(strlen(updatefnrest)<=IMPORTANTMAXLEN); /* or we've made a real mess */
-
- nextupdate++;
-
- if (nextupdate > MAXUPDATES) {
- modstatdb_checkpoint();
- nextupdate= 0;
- }
-
- createimptmp();
+ if (cstatus >= msdbrw_write)
+ modstatdb_note_core(pkg);
if (!pkg->trigpend_head && pkg->othertrigaw_head) {
/* Automatically remove us from other packages' Triggers-Awaited.
diff -Nru dpkg-1.14.20/lib/dpkg-db.h dpkg-1.14.21/lib/dpkg-db.h
--- dpkg-1.14.20/lib/dpkg-db.h 2008-06-18 10:33:27.000000000 +0300
+++ dpkg-1.14.21/lib/dpkg-db.h 2008-08-15 09:29:14.000000000 +0300
@@ -289,6 +289,9 @@
int trig_note_aw(struct pkginfo *pend, struct pkginfo *aw);
void trig_clear_awaiters(struct pkginfo *notpend);
+void trig_enqueue_awaited_pend(struct pkginfo *pend);
+void trig_fixup_awaiters(enum modstatdb_rw cstatus);
+
void trig_file_interests_ensure(void);
void trig_file_interests_save(void);
diff -Nru dpkg-1.14.20/lib/fields.c dpkg-1.14.21/lib/fields.c
--- dpkg-1.14.20/lib/fields.c 2008-06-18 10:33:27.000000000 +0300
+++ dpkg-1.14.21/lib/fields.c 2008-08-15 09:29:14.000000000 +0300
@@ -543,6 +543,8 @@
if (!trig_note_aw(pend, aw))
parseerr(NULL, filename, lno, warnto, warncount, aw, 0,
_("duplicate awaited trigger package `%.255s'"), word);
+
+ trig_enqueue_awaited_pend(pend);
}
}
diff -Nru dpkg-1.14.20/lib/triglib.c dpkg-1.14.21/lib/triglib.c
--- dpkg-1.14.20/lib/triglib.c 2008-06-18 10:33:27.000000000 +0300
+++ dpkg-1.14.21/lib/triglib.c 2008-08-15 09:29:14.000000000 +0300
@@ -169,6 +169,52 @@
}
}
+/* FIXME: switch to use the generic pkg list for lenny+1 */
+struct pkg_list {
+ struct pkg_list *next;
+ struct pkginfo *pkg;
+};
+
+static struct pkg_list *trig_awaited_pend_head;
+
+void
+trig_enqueue_awaited_pend(struct pkginfo *pend)
+{
+ struct pkg_list *tp;
+
+ for (tp = trig_awaited_pend_head; tp; tp = tp->next)
+ if (tp->pkg == pend)
+ return;
+
+ tp = nfmalloc(sizeof(*tp));
+ tp->pkg = pend;
+ tp->next = trig_awaited_pend_head;
+ trig_awaited_pend_head = tp;
+}
+
+/*
+ * Fix up packages in state triggers-awaited w/o the corresponding package
+ * with pending triggers. This can happen when dpkg was interrupted
+ * while in modstatdb_note, and the package in triggers-pending had its
+ * state modified but dpkg could not clearing the awaiters.
+ *
+ * XXX: possibly get rid of some of the checks done somewhere else for
+ * this condition at run-time.
+ */
+void
+trig_fixup_awaiters(enum modstatdb_rw cstatus)
+{
+ struct pkg_list *tp;
+
+ if (cstatus < msdbrw_write)
+ return;
+
+ for (tp = trig_awaited_pend_head; tp; tp = tp->next)
+ if (!tp->pkg->trigpend_head)
+ trig_clear_awaiters(tp->pkg);
+ trig_awaited_pend_head = NULL;
+}
+
/*---------- generalised handling of trigger kinds ----------*/
static const struct trigkindinfo tki_explicit, tki_file, tki_unknown;
diff -Nru dpkg-1.14.20/man/dpkg.1 dpkg-1.14.21/man/dpkg.1
--- dpkg-1.14.20/man/dpkg.1 2008-06-18 10:33:27.000000000 +0300
+++ dpkg-1.14.21/man/dpkg.1 2008-08-17 18:05:07.000000000 +0300
@@ -19,7 +19,7 @@
.SH DESCRIPTION
\fBdpkg\fP is a tool to install, build, remove and manage
Debian packages. The primary and more user-friendly
-front-end for \fBdpkg\fP is \fBdselect\fP(1). \fBdpkg\fP itself is
+front-end for \fBdpkg\fP is \fBaptitude\fP(1). \fBdpkg\fP itself is
controlled entirely via command line parameters, which consist of exactly
one action and zero or more options. The action-parameter tells \fBdpkg\fP
what to do and options control the behavior of the action in some way.
@@ -641,7 +641,7 @@
Note that this will not actually install or remove anything, but just
set the selection state on the requested packages. You will need some
other application to actually download and install the requested
-packages. For example, run \fBdselect\fP and choose \fIInstall\fP.
+packages. For example, run \fBapt\-get dselect\-upgrade\fP.
Ordinarily, you will find that \fBdselect\fP(1) provides a more
convenient way to modify the package selection states.
@@ -652,6 +652,8 @@
following packages: \fBapt\fR, \fBaptitude\fR and \fBdebsums\fR.
.
.SH SEE ALSO
+\fBaptitude\fP(1),
+\fBapt\fP(1),
\fBdselect\fP(1),
\fBdpkg\-deb\fP(1),
\fBdpkg\-query\fP(1),
diff -Nru dpkg-1.14.20/man/dpkg-buildpackage.1 dpkg-1.14.21/man/dpkg-buildpackage.1
--- dpkg-1.14.20/man/dpkg-buildpackage.1 2008-05-05 20:07:01.000000000 +0300
+++ dpkg-1.14.21/man/dpkg-buildpackage.1 2008-08-17 18:05:07.000000000 +0300
@@ -1,4 +1,4 @@
-.TH dpkg\-buildpackage 1 "2008-03-14" "Debian Project" "dpkg utilities"
+.TH dpkg\-buildpackage 1 "2008-08-15" "Debian Project" "dpkg utilities"
.SH NAME
dpkg\-buildpackage \- build binary or source packages from sources
.
@@ -30,11 +30,10 @@
haven't been used).
.TP
.B \-si
-By default, or if specified, the original source will be included if the
-version number ends in
-.BR \-0 " or " \-1 ,
-i.e. if the Debian revision part of the version number is
-.BR 0 " or " 1 .
+By default, or if specified, the original source will be included only if
+the upstream version number (the version without epoch and without Debian
+revision) differs from the upstream version number of the previous
+changelog entry.
.TP
.B \-sa
Forces the inclusion of the original source.
diff -Nru dpkg-1.14.20/scripts/Dpkg/BuildOptions.pm dpkg-1.14.21/scripts/Dpkg/BuildOptions.pm
--- dpkg-1.14.20/scripts/Dpkg/BuildOptions.pm 2008-06-18 10:33:30.000000000 +0300
+++ dpkg-1.14.21/scripts/Dpkg/BuildOptions.pm 2008-07-19 19:10:22.000000000 +0300
@@ -3,6 +3,9 @@
use strict;
use warnings;
+use Dpkg::Gettext;
+use Dpkg::ErrorHandling qw(warning);
+
sub parse {
my ($env) = @_;
@@ -12,16 +15,16 @@
my %opts;
- foreach (split(/[\s,]+/, $env)) {
- # FIXME: This is pending resolution of Debian bug #430649
- /^([a-z][a-z0-9_-]*)(=(\w*))?$/;
+ foreach (split(/\s+/, $env)) {
+ unless (/^([a-z][a-z0-9_-]*)(=(\S*))?$/) {
+ warning(_g("invalid flag in DEB_BUILD_OPTIONS: %s"), $_);
+ next;
+ }
my ($k, $v) = ($1, $3 || '');
# Sanity checks
- if (!$k) {
- next;
- } elsif ($k =~ /^(noopt|nostrip|nocheck)$/ && length($v)) {
+ if ($k =~ /^(noopt|nostrip|nocheck)$/ && length($v)) {
$v = '';
} elsif ($k eq 'parallel' && $v !~ /^-?\d+$/) {
next;
@@ -37,18 +40,15 @@
my ($opts, $overwrite) = @_;
$overwrite = 1 if not defined($overwrite);
- my $env = $overwrite ? '' : $ENV{DEB_BUILD_OPTIONS}||'';
- if ($env) { $env .= ',' }
-
+ my $new = {};
+ $new = parse() unless $overwrite;
while (my ($k, $v) = each %$opts) {
- if ($v) {
- $env .= "$k=$v,";
- } else {
- $env .= "$k,";
- }
+ $new->{$k} = $v;
}
- $ENV{DEB_BUILD_OPTIONS} = $env if $env;
+ my $env = join(" ", map { $new->{$_} ? $_ . "=" . $new->{$_} : $_ } sort keys %$new);
+
+ $ENV{DEB_BUILD_OPTIONS} = $env;
return $env;
}
diff -Nru dpkg-1.14.20/scripts/Dpkg/Source/Package/V3/quilt.pm dpkg-1.14.21/scripts/Dpkg/Source/Package/V3/quilt.pm
--- dpkg-1.14.20/scripts/Dpkg/Source/Package/V3/quilt.pm 2008-06-18 10:33:30.000000000 +0300
+++ dpkg-1.14.21/scripts/Dpkg/Source/Package/V3/quilt.pm 2008-08-15 09:14:41.000000000 +0300
@@ -105,8 +105,13 @@
unless (File::Spec->file_name_is_absolute($absdir)) {
$absdir = File::Spec->rel2abs($dir);
}
+ my $series = $self->get_series_file($dir);
+ unless (File::Spec->file_name_is_absolute($series)) {
+ $series = File::Spec->rel2abs($series);
+ }
my %opts = (
- env => { QUILT_PATCHES => "$absdir/debian/patches" },
+ env => { QUILT_PATCHES => "$absdir/debian/patches",
+ QUILT_SERIES => $series },
'chdir' => $dir,
'exec' => [ 'quilt', '--quiltrc', '/dev/null', @$params ],
%more_opts
diff -Nru dpkg-1.14.20/scripts/Dpkg/Source/Package.pm dpkg-1.14.21/scripts/Dpkg/Source/Package.pm
--- dpkg-1.14.20/scripts/Dpkg/Source/Package.pm 2008-06-18 10:33:30.000000000 +0300
+++ dpkg-1.14.21/scripts/Dpkg/Source/Package.pm 2008-08-16 00:04:42.000000000 +0300
@@ -100,22 +100,27 @@
'options' => {},
};
bless $self, $class;
+ if (exists $args{'options'}) {
+ $self->{'options'} = $args{'options'};
+ }
if (exists $args{"filename"}) {
$self->initialize($args{"filename"});
+ $self->init_options();
}
- if (exists $args{"options"}) {
- $self->{'options'} = $args{'options'};
- }
- $self->init_options();
return $self;
}
sub init_options {
my ($self) = @_;
# Use full ignore list by default
+ # note: this function is not called by V1 packages
$self->{'options'}{'diff_ignore_regexp'} ||= $diff_ignore_default_regexp;
- $self->{'options'}{'tar_ignore'} = [ @tar_ignore_default_pattern ]
+ if (defined $self->{'options'}{'tar_ignore'}) {
+ $self->{'options'}{'tar_ignore'} = [ @tar_ignore_default_pattern ]
unless @{$self->{'options'}{'tar_ignore'}};
+ } else {
+ $self->{'options'}{'tar_ignore'} = [ @tar_ignore_default_pattern ];
+ }
}
sub initialize {
diff -Nru dpkg-1.14.20/scripts/dpkg-buildpackage.pl dpkg-1.14.21/scripts/dpkg-buildpackage.pl
--- dpkg-1.14.20/scripts/dpkg-buildpackage.pl 2008-05-05 20:07:01.000000000 +0300
+++ dpkg-1.14.21/scripts/dpkg-buildpackage.pl 2008-08-16 00:04:43.000000000 +0300
@@ -59,7 +59,7 @@
-m<maint> maintainer for package is <maint>. }
-e<maint> maintainer for release is <maint>. } only passed
-C<descfile> changes are described in <descfile>. } to dpkg-genchanges
- -si (default) src includes orig for rev. 0 or 1. }
+ -si (default) src includes orig if new upstream. }
-sa uploaded src always includes orig. }
-sd uploaded src is diff and .dsc only. }
-sn force Debian native source format. }
@@ -414,10 +414,10 @@
close OUT or syserr(_g('write changes file'));
my $srcmsg;
-sub fileomitted { return $files !~ /$_[0]/ }
+sub fileomitted($) { return $files !~ /$_[0]/ }
if (fileomitted '\.deb') {
# source only upload
- if (fileomitted "\.diff\.$comp_regex") {
+ if (fileomitted "\.diff\.$comp_regex" and fileomitted "\.debian\.tar\.$comp_regex") {
$srcmsg = _g('source only upload: Debian-native package');
} elsif (fileomitted "\.orig\.tar\.$comp_regex") {
$srcmsg = _g('source only, diff-only upload (original source NOT included)');
@@ -428,7 +428,7 @@
$srcmsg = _g('full upload (original source is included)');
if (fileomitted '\.dsc') {
$srcmsg = _g('binary only upload (no source included)');
- } elsif (fileomitted "\.diff\.$comp_regex") {
+ } elsif (fileomitted "\.diff\.$comp_regex" and fileomitted "\.debian\.tar\.$comp_regex") {
$srcmsg = _g('full upload; Debian-native package (full source is included)');
} elsif (fileomitted "\.orig\.tar\.$comp_regex") {
$srcmsg = _g('binary and diff upload (original source NOT included)');
diff -Nru dpkg-1.14.20/scripts/dpkg-genchanges.pl dpkg-1.14.21/scripts/dpkg-genchanges.pl
--- dpkg-1.14.20/scripts/dpkg-genchanges.pl 2008-05-05 20:07:01.000000000 +0300
+++ dpkg-1.14.21/scripts/dpkg-genchanges.pl 2008-08-15 09:14:41.000000000 +0300
@@ -453,12 +453,12 @@
if ((($sourcestyle =~ m/i/ && not($include_tarball)) ||
$sourcestyle =~ m/d/) &&
- grep(m/\.diff\.$comp_regex$/,@sourcefiles)) {
+ grep(m/\.(debian\.tar|diff)\.$comp_regex$/,@sourcefiles)) {
$origsrcmsg= _g("not including original source code in upload");
@sourcefiles= grep(!m/\.orig\.tar\.$comp_regex$/,@sourcefiles);
} else {
if ($sourcestyle =~ m/d/ &&
- !grep(m/\.diff\.$comp_regex$/,@sourcefiles)) {
+ !grep(m/\.(debian\.tar|diff)\.$comp_regex$/,@sourcefiles)) {
warning(_g("ignoring -sd option for native Debian package"));
}
$origsrcmsg= _g("including full source code in upload");
diff -Nru dpkg-1.14.20/scripts/t/300_Dpkg_BuildOptions.t dpkg-1.14.21/scripts/t/300_Dpkg_BuildOptions.t
--- dpkg-1.14.20/scripts/t/300_Dpkg_BuildOptions.t 2008-06-18 10:33:31.000000000 +0300
+++ dpkg-1.14.21/scripts/t/300_Dpkg_BuildOptions.t 2008-07-19 19:10:22.000000000 +0300
@@ -7,7 +7,14 @@
use_ok('Dpkg::BuildOptions');
-$ENV{DEB_BUILD_OPTIONS} = 'noopt,foonostripbar,parallel=3,bazNOCHECK';
+{
+ no warnings;
+ # Disable warnings related to invalid values fed during
+ # the tests
+ $Dpkg::ErrorHandling::quiet_warnings = 1;
+}
+
+$ENV{DEB_BUILD_OPTIONS} = 'noopt foonostripbar parallel=3 bazNOCHECK';
my $dbo = Dpkg::BuildOptions::parse();
@@ -26,14 +33,14 @@
is_deeply($dbo, \%dbo, 'parse');
-$dbo = Dpkg::BuildOptions::parse('no opt,no-strip,parallel = 5,nocheck');
+$dbo = Dpkg::BuildOptions::parse('no opt no-strip parallel = 5 nocheck');
is_deeply($dbo, \%dbo2, 'parse (param)');
$dbo->{parallel} = 5;
$dbo->{noopt} = '';
-my $env = Dpkg::BuildOptions::set($dbo,1);
+my $env = Dpkg::BuildOptions::set($dbo, 1);
is($ENV{DEB_BUILD_OPTIONS}, $env, 'set (return value)');
is_deeply(Dpkg::BuildOptions::parse(), $dbo, 'set (env)');
@@ -41,4 +48,4 @@
$ENV{DEB_BUILD_OPTIONS} = 'foobar';
$dbo = { noopt => '' };
$env = Dpkg::BuildOptions::set($dbo, 0);
-is($env, "foobar,noopt,", 'set (append)');
+is($env, "foobar noopt", 'set (append)');
diff -Nru dpkg-1.14.20/src/help.c dpkg-1.14.21/src/help.c
--- dpkg-1.14.20/src/help.c 2008-06-18 10:33:31.000000000 +0300
+++ dpkg-1.14.21/src/help.c 2008-08-15 09:29:15.000000000 +0300
@@ -239,8 +239,10 @@
{
modstatdb_note(pkg);
- debug(dbg_triggersdetail, "post_postinst_tasks_core - trig_incorporate");
- trig_incorporate(msdbrw_write, admindir);
+ if (!f_noact) {
+ debug(dbg_triggersdetail, "post_postinst_tasks_core - trig_incorporate");
+ trig_incorporate(msdbrw_write, admindir);
+ }
}
static void
diff -Nru dpkg-1.14.20/src/main.c dpkg-1.14.21/src/main.c
--- dpkg-1.14.20/src/main.c 2008-06-18 10:33:31.000000000 +0300
+++ dpkg-1.14.21/src/main.c 2008-08-16 00:10:02.000000000 +0300
@@ -299,6 +299,8 @@
if (*ep || v > INT_MAX)
badusage(_("invalid integer for --%s: `%.250s'"),cip->olong,value);
+ setcloexec(v, _("<package status and progress file descriptor>"));
+
lastpipe= cip->parg;
if (*lastpipe) {
(*lastpipe)->next= nfmalloc(sizeof(struct pipef));
diff -Nru dpkg-1.14.20/src/packages.c dpkg-1.14.21/src/packages.c
--- dpkg-1.14.20/src/packages.c 2008-06-18 10:33:31.000000000 +0300
+++ dpkg-1.14.21/src/packages.c 2008-08-15 09:29:15.000000000 +0300
@@ -228,7 +228,8 @@
/* give up on it from the point of view of other packages, ie reset istobe */
pkg->clientdata->istobe= itb_normal;
error_unwind(ehflag_bombout);
- if (onerr_abort > 0) break;
+ if (onerr_abort > 0)
+ return;
continue;
}
push_error_handler(&ejbuf,print_error_perpackage,pkg->name);
diff -Nru dpkg-1.14.20/src/trigproc.c dpkg-1.14.21/src/trigproc.c
--- dpkg-1.14.20/src/trigproc.c 2008-05-05 20:07:01.000000000 +0300
+++ dpkg-1.14.21/src/trigproc.c 2008-08-15 09:29:15.000000000 +0300
@@ -298,9 +298,11 @@
pkg->status = stat_halfconfigured;
modstatdb_note(pkg);
- sincenothing = 0;
- maintainer_script_postinst(pkg, "triggered",
- namesarg.buf + 1, NULL);
+ if (!f_noact) {
+ sincenothing = 0;
+ maintainer_script_postinst(pkg, "triggered",
+ namesarg.buf + 1, NULL);
+ }
/* This is to cope if the package triggers itself: */
pkg->status = pkg->trigaw.head ? stat_triggersawaited :
@@ -361,10 +363,10 @@
transitional_interest_callback_ro, NULL, pkg);
}
iterpkgend(it);
- if (cstatus >= msdbrw_write)
+ if (cstatus >= msdbrw_write) {
modstatdb_checkpoint();
-
- trig_file_interests_save();
+ trig_file_interests_save();
+ }
}
/*========== hook setup ==========*/
Reply to: