[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#818908: marked as done (jessie-pu: package dpkg/1.17.27)



Your message dated Sat, 04 Jun 2016 14:57:25 +0100
with message-id <1465048645.7545.11.camel@adam-barratt.org.uk>
and subject line Closing bugs for fixes included in 8.5
has caused the Debian Bug report #818908,
regarding jessie-pu: package dpkg/1.17.27
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
818908: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=818908
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian.org@packages.debian.org
Usertags: pu

Hi!

Here's a proposed dpkg 1.17.27, with cherry picked fixes from master
(already in unstable). These include fixes for regressions, memory
leaks, portability, interaction with tools such as GNU tar or the
system shell, install-info transition, and a sync of the architectures
supported (in case some of these end up accepted in the archive).

The change for Config-Version should be safe, as at worst it will have
no effect, otherwise packages relying on the correct behavior will
start to work now, it will also make upgrades easier, for example for
systemd, which I'm aware suffered from this problem.

The «git log» fix is not yet in master though, but it should also be
safe, otherwise the build would simply fail. And I've just realized it's
not documented in debian/changelog, it will be in the ChangeLog, but I
could add it to debian/changelog too.

The changes have passed all unit tests which are part of the build,
and all functional test in the dpkg-tests git repo. Attached a diff
with translation updates filtered.

Thanks,
Guillem
diff --git a/Makefile.am b/Makefile.am
index aa13270..c9f63d3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -172,6 +172,7 @@ dist-hook:
 				exit 1 ; \
 			fi ; \
 		done ; \
+		XDG_CONFIG_HOME= HOME= \
 		git log -C --stat 1.15.0.. >$(distdir)/ChangeLog; \
 	fi
 
diff --git a/check.am b/check.am
index 458214d..5e0d3cf 100644
--- a/check.am
+++ b/check.am
@@ -30,6 +30,7 @@ check-local: $(test_data) $(test_programs) $(test_scripts)
 	  $(TEST_ENV_VARS) \
 	  srcdir=$(srcdir) builddir=$(builddir) \
 	  PERL_DL_NONLAZY=1 \
+	  PERL5LIB=$(abs_top_srcdir)/scripts:$(abs_top_srcdir)/dselect/methods \
 	  PERL5OPT=$(TEST_COVERAGE) \
 	  $(PERL) -MTAP::Harness -e $(TEST_RUNNER) \
 	    $(addprefix $(builddir)/,$(test_programs)) \
diff --git a/cputable b/cputable
index b8b2da2..b376aa0 100644
--- a/cputable
+++ b/cputable
@@ -29,6 +29,7 @@ mips		mips		mips(eb)?		32	big
 mipsel		mipsel		mipsel			32	little
 mips64		mips64		mips64			64	big
 mips64el	mips64el	mips64el		64	little
+nios2		nios2		nios2			32	little
 or1k		or1k		or1k			32	big
 powerpc		powerpc		(powerpc|ppc)		32	big
 powerpcel	powerpcle	powerpcle		32	little
diff --git a/debian/changelog b/debian/changelog
index 8b2a4d0..eca2d78 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,45 @@
+dpkg (1.17.27) jessie; urgency=medium
+
+  [ Guillem Jover ]
+  * Add more Conflicts for removed packages expecting dpkg to ship
+    install-info. Namely ada-mode and octave2.1-info. Closes: #783657
+    Thanks to Andreas Beckmann <anbe@debian.org>.
+  * Remove trailing space before handling blank line dot-separator in
+    Dpkg::Control::HashCore. Regression introduced in dpkg 1.17.25.
+    Reported by Jakub Wilk <jwilk@debian.org>. Closes: #789580
+  * Only use the SHELL environment variable for interactive shells.
+    Closes: #788819
+  * Move tar option --no-recursion before -T in dpkg-deb. With tar > 1.28 the
+    --no-recursion option is now positional, and needs to be passed before
+    the -T option, otherwise the tarball will end up with duplicated entries.
+    Thanks to Richard Purdie <richard.purdie@linuxfoundation.org>.
+    Closes: #807940
+  * Initialize Config-Version also for packages previously in triggers-pending
+    state, otherwise we end up not passing the previously configured version
+    to «postinst configure», which might consider this a first install instead
+    of an upgrade. Closes: #801156
+  * Fix memory leak in dpkg infodb format upgrade logic.
+  * Fix physical file offset comparison in dpkg. Closes: #808912
+    Thanks to Yuri Gribov <tetra2005@gmail.com>.
+  * Add kfreebsd-armhf support to ostable and triplettable. Closes: #796283
+    Thanks to Steven Chamberlain <steven@pyro.eu.org>.
+  * Add NIOS2 support to cputable. Thanks to Marek Vasut <marex@denx.de>.
+  * Build system:
+    - Set PERL5LIB globally for the test suite to the local modules directory,
+      to avoid using the system modules. Regression introduced in dpkg 1.17.8.
+      Reported by Jérémy Bobbio <lunar@debian.org>. Closes: #801329
+    - When sys_siglist is defined in the system, try to use NSIG as we cannot
+      compute the array size with sizeof(). If NSIG is missing fallback to 32
+      items. Prompted by Igor Pashev <pashev.igor@gmail.com>.
+
+  [ Updated scripts translations ]
+  * German (Helge Kreutzmann). (Various fixes)
+
+  [ Updated manpages translations ]
+  * German (Helge Kreutzmann). (Various fixes)
+
+ -- Guillem Jover <guillem@debian.org>  Sun, 20 Mar 2016 11:40:28 +0100
+
 dpkg (1.17.26) jessie-security; urgency=high
 
   [ Guillem Jover ]
diff --git a/debian/control b/debian/control
index ade9839..97f06d2 100644
--- a/debian/control
+++ b/debian/control
@@ -80,11 +80,13 @@ Conflicts:
  gcc-4.2-doc (<< 4.2.4.nf1-4~), gcj-4.2-doc (<< 4.2.4.nf1-4~),
  gfortran-4.2-doc (<< 4.2.4.nf1-4~), gnat-4.2-doc (<< 4.2.4.nf1-4~),
 # These packages have been removed after lenny:
+ ada-mode (<< 3.6-3+rm),
  ada-reference-manual (<< 20021112web-4~), asn1-mode (<< 2.7-7~),
  bogosort (<< 0.4.2-3~), cl-yacc (<< 0.3-3~), libgtk1.2-doc (<< 1.2.10-19~),
  libnettle-dev (<< 2~), liborbit-dev (<< 0.5.17-12~),
  libreadline5-dev (<< 5.2-8~),
  librep-doc (<< 0.90~), mmucl (<< 1.5.2-3~), nxml-mode (<< 20041004-9~),
+ octave2.1-info (<< 1:2.1.73-19+rm),
  octave3.0-info (<< 1:3.0.5-7+rm),
  serveez-doc (<< 0.1.5-3~), slat (<< 2.0-6~),
  texlive-base-bin-doc (<< 2007.dfsg.2-9~), ttcn-el (<< 0.6.9-2~),
diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
index 442298d..61511de 100644
--- a/dpkg-deb/build.c
+++ b/dpkg-deb/build.c
@@ -560,7 +560,7 @@ do_build(const char *const *argv)
     if (chdir(dir))
       ohshite(_("failed to chdir to `%.255s'"), dir);
     execlp(TAR, "tar", "-cf", "-", "--format=gnu", "--null", "--no-unquote",
-                       "-T", "-", "--no-recursion", NULL);
+                       "--no-recursion", "-T", "-", NULL);
     ohshite(_("unable to execute %s (%s)"), "tar -cf", TAR);
   }
   close(p1[0]);
diff --git a/lib/compat/strsignal.c b/lib/compat/strsignal.c
index 265feb4..a5d6d53 100644
--- a/lib/compat/strsignal.c
+++ b/lib/compat/strsignal.c
@@ -54,7 +54,12 @@ const char *const sys_siglist[] = {
 	"SIGTTIN",	/* 21 */
 	"SIGTTOU",	/* 22 */
 };
+# define COMPAT_NSIGLIST (int)(sizeof(sys_siglist) / sizeof(sys_siglist[0]))
 #else
+# ifndef NSIG
+#  define NSIG 32
+# endif
+# define COMPAT_NSIGLIST NSIG
 extern const char *const sys_siglist[];
 #endif
 
@@ -63,7 +68,7 @@ strsignal(int s)
 {
 	static char buf[100];
 
-	if (s > 0 && s < (int)(sizeof(sys_siglist) / sizeof(sys_siglist[0])))
+	if (s > 0 && s < COMPAT_NSIGLIST)
 		return sys_siglist[s];
 
 	sprintf(buf, _("Unknown signal %d"), s);
diff --git a/lib/dpkg/command.c b/lib/dpkg/command.c
index d378ad2..b6a79d7 100644
--- a/lib/dpkg/command.c
+++ b/lib/dpkg/command.c
@@ -216,14 +216,16 @@ command_shell(const char *cmd, const char *name)
 	const char *shell;
 	const char *mode;
 
-	shell = getenv("SHELL");
-	if (str_is_unset(shell))
-		shell = DEFAULTSHELL;
-
-	if (cmd == NULL)
+	if (cmd == NULL) {
 		mode = "-i";
-	else
+		shell = getenv("SHELL");
+	} else {
 		mode = "-c";
+		shell = NULL;
+	}
+
+	if (str_is_unset(shell))
+		shell = DEFAULTSHELL;
 
 	execlp(shell, shell, mode, cmd, NULL);
 	ohshite(_("unable to execute %s (%s)"), name, cmd);
diff --git a/lib/dpkg/parse.c b/lib/dpkg/parse.c
index d70d3f0..1e69b2f 100644
--- a/lib/dpkg/parse.c
+++ b/lib/dpkg/parse.c
@@ -225,19 +225,24 @@ pkg_parse_verify(struct parsedb_state *ps,
       if (!dop->arch)
         dop->arch = pkgbin->arch;
 
-  /* Check the Config-Version information:
-   * If there is a Config-Version it is definitely to be used, but
-   * there shouldn't be one if the package is ‘installed’ (in which case
-   * the Version and/or Revision will be copied) or if the package is
-   * ‘not-installed’ (in which case there is no Config-Version). */
+  /*
+   * Check the Config-Version information:
+   *
+   * If there is a Config-Version it is definitely to be used, but there
+   * should not be one if the package is ‘installed’ or ‘triggers-pending’
+   * (in which case the Version will be copied) or if the package is
+   * ‘not-installed’ (in which case there is no Config-Version).
+   */
   if (!(ps->flags & pdb_recordavailable)) {
     if (pkg->configversion.version) {
       if (pkg->status == PKG_STAT_INSTALLED ||
-          pkg->status == PKG_STAT_NOTINSTALLED)
+          pkg->status == PKG_STAT_NOTINSTALLED ||
+          pkg->status == PKG_STAT_TRIGGERSPENDING)
         parse_error(ps,
                     _("Config-Version for package with inappropriate Status"));
     } else {
-      if (pkg->status == PKG_STAT_INSTALLED)
+      if (pkg->status == PKG_STAT_INSTALLED ||
+          pkg->status == PKG_STAT_TRIGGERSPENDING)
         pkg->configversion = pkgbin->version;
     }
   }
diff --git a/man/dpkg.1 b/man/dpkg.1
index 4e9f7a3..fb6c43e 100644
--- a/man/dpkg.1
+++ b/man/dpkg.1
@@ -694,8 +694,9 @@ Sent just before a processing stage starts. \fIstage\fR is one of
 .TP
 \fB\-\-status\-logger\fR=\fIcommand\fR
 Send machine-readable package status and progress information to the
-shell \fIcommand\fR's standard input. This option can be specified
-multiple times. The output format used is the same as in \fB\-\-status\-fd.
+shell \fIcommand\fR's standard input, to be run via \*(lqsh \-c\*(rq.
+This option can be specified multiple times.
+The output format used is the same as in \fB\-\-status\-fd.
 .RE
 .TP
 \fB\-\-log=\fP\fIfilename\fP
@@ -739,7 +740,7 @@ temporary files and directories.
 The program \fBdpkg\fP will execute when displaying the conffiles.
 .TP
 .B SHELL
-The program \fBdpkg\fP will execute when starting a new shell.
+The program \fBdpkg\fP will execute when starting a new interactive shell.
 .TP
 .B COLUMNS
 Sets the number of columns \fBdpkg\fP should use when displaying formatted
diff --git a/ostable b/ostable
index 3bb6819..10e0d3a 100644
--- a/ostable
+++ b/ostable
@@ -23,6 +23,7 @@ gnuabi64-linux		linux-gnuabi64		linux[^-]*-gnuabi64
 gnuspe-linux		linux-gnuspe		linux[^-]*-gnuspe
 gnux32-linux		linux-gnux32		linux[^-]*-gnux32
 gnu-linux		linux-gnu		linux[^-]*(-gnu.*)?
+gnueabihf-kfreebsd	kfreebsd-gnueabihf	kfreebsd[^-]*-gnueabihf
 gnu-kfreebsd		kfreebsd-gnu		kfreebsd[^-]*(-gnu.*)?
 gnu-knetbsd		knetbsd-gnu		knetbsd[^-]*(-gnu.*)?
 gnu-kopensolaris	kopensolaris-gnu	kopensolaris[^-]*(-gnu.*)?
diff --git a/scripts/Dpkg/Control/HashCore.pm b/scripts/Dpkg/Control/HashCore.pm
index d9e0373..6ed6b40 100644
--- a/scripts/Dpkg/Control/HashCore.pm
+++ b/scripts/Dpkg/Control/HashCore.pm
@@ -219,10 +219,10 @@ sub parse {
 	    unless (defined($cf)) {
 		$self->parse_error($desc, _g('continued value line not in field'));
             }
+	    $line =~ s/\s*$//;
 	    if ($line =~ /^\.+$/) {
 		$line = substr $line, 1;
 	    }
-	    $line =~ s/\s*$//;
 	    $self->{$cf} .= "\n$line";
 	} elsif (m/^-----BEGIN PGP SIGNED MESSAGE-----[\r\t ]*$/) {
 	    $expect_pgp_sig = 1;
diff --git a/scripts/t/Dpkg_Control.t b/scripts/t/Dpkg_Control.t
index 1507678..07a3fb8 100644
--- a/scripts/t/Dpkg_Control.t
+++ b/scripts/t/Dpkg_Control.t
@@ -52,6 +52,7 @@ Long-Field: line1
  line 2 line 2 line 2
  .
    line 3 line 3 line 3
+ .
  ..
  line 4
 Empty-Field:
@@ -82,6 +83,7 @@ is($src->{'long-field'},
 line 2 line 2 line 2
 
   line 3 line 3 line 3
+
 .
 line 4', 'Get multi-line field');
 is($src->{'Empty-field'}, '', 'Get empty field');
diff --git a/scripts/t/Dpkg_Control/control-1 b/scripts/t/Dpkg_Control/control-1
index afe618e..0c70533 100644
--- a/scripts/t/Dpkg_Control/control-1
+++ b/scripts/t/Dpkg_Control/control-1
@@ -7,6 +7,7 @@ long-field: line1
  line 2 line 2 line 2    
  .
    line 3 line 3 line 3
+ .	  
  ..
  line 4
 empty-field: 
diff --git a/src/filesdb.c b/src/filesdb.c
index 759fe9a..47d77a4 100644
--- a/src/filesdb.c
+++ b/src/filesdb.c
@@ -312,8 +312,10 @@ pkg_sorter_by_listfile_phys_offs(const void *a, const void *b)
    * INT_MAX. */
   if (pa->clientdata->listfile_phys_offs < pb->clientdata->listfile_phys_offs)
     return -1;
-  else
+  else if (pa->clientdata->listfile_phys_offs > pb->clientdata->listfile_phys_offs)
     return 1;
+  else
+    return 0;
 }
 
 static void
diff --git a/src/infodb-upgrade.c b/src/infodb-upgrade.c
index 68f9431..2360c9b 100644
--- a/src/infodb-upgrade.c
+++ b/src/infodb-upgrade.c
@@ -149,6 +149,7 @@ pkg_infodb_link_multiarch_files(void)
 	}
 	pop_cleanup(ehflag_normaltidy); /* closedir */
 
+	varbuf_destroy(&pkgname);
 	varbuf_destroy(&newname);
 	varbuf_destroy(&oldname);
 }
diff --git a/triplettable b/triplettable
index 7257744..568a6b9 100644
--- a/triplettable
+++ b/triplettable
@@ -16,6 +16,7 @@ gnuabi64-linux-mips64	mips64
 gnuspe-linux-powerpc	powerpcspe
 gnux32-linux-amd64	x32
 gnu-linux-<cpu>		<cpu>
+gnueabihf-kfreebsd-arm	kfreebsd-armhf
 gnu-kfreebsd-<cpu>	kfreebsd-<cpu>
 gnu-knetbsd-<cpu>	knetbsd-<cpu>
 gnu-kopensolaris-<cpu>	kopensolaris-<cpu>

--- End Message ---
--- Begin Message ---
Version: 8.5

Hi,

The fixes referred to by each of these bugs were included in today's 8.5
point release.

Regards,

Adam

--- End Message ---

Reply to: