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

multistrap l10n and important bug freeze exception request



I've now got all the l10n updates for multistrap (program output and
manpages) and I'm ready to upload 2.1.7 to unstable.

This upload also fixes one important bug and one GPL-compliance issue:

Source: multistrap
Version: 2.1.7
Distribution: unstable
Urgency: low
Maintainer: Neil Williams <codehelp@debian.org>
Date: Sat, 02 Oct 2010 16:27:01 +0100
Closes: 595017 595308 595391 597144 597385 597505 598476
Changes: 
 multistrap (2.1.7) unstable; urgency=low
 .
   * Add all packages to the source dir, including calculated
     dependencies.
   * [INTL:pt] Updated Portuguese translation for manpages
     (Closes: #595308)
   * [INTL:da] Danish translation of multistrap (Closes: #595391)
   * [INTL:pt] Updated Portuguese translation for program messages
     (Closes: #597144)
   * [INTL:fr] French manpage translation (Closes: #597385)
   * [INTL:de] german manpage translation (Closes: #597505)
   * [INTL:vi] Vietnamese program translation update (Closes: #598476)
   * Pre-handle keyring packages using GPG for use with apt >= 0.8
     (Closes: #595017)

I'm attaching the debdiff output and diffstat.

The debdiff of the .dsc (release.diff) has had all the l10n changes
removed (else it's >200kb)

The GPL-compliance issue is that the old --source-dir behaviour only
downloaded the source for specified packages, not the dependencies of
those packages, despite those dependencies being installed (and
therefore the rootfs had incomplete sources). (This involved preparing
an array of all the packages and passing that array to apt-get source
instead of the original list.)

The important bug fix allows multistrap to work with the changes in apt
during the release freeze (0.8.2 and later) which has radically changed
the SecureApt behaviour of apt 0.7.x The patch in the package is
slightly modified from the one in the bug report. (The fix involves
downloading the specified keyring packages in advance of the main
download, unpack and then process using the external gpg executable.)

Please let me know if this change is acceptable for a freeze exception
- if so, I'll upload multistrap 2.1.7 to unstable tomorrow and 2.1.8 to
experimental afterwards.

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/

[The following lists of changes regard files as different if they have
different names, permissions or owners.]

Files in second .changes but not in first
-----------------------------------------
-rw-r--r--  root/root   /usr/share/man/de/man1/device-table.pl.1.gz
-rw-r--r--  root/root   /usr/share/man/de/man1/multistrap.1.gz
-rw-r--r--  root/root   /usr/share/man/fr/man1/device-table.pl.1.gz
-rw-r--r--  root/root   /usr/share/man/pt/man1/device-table.pl.1.gz

Control files: lines which differ (wdiff format)
------------------------------------------------
Installed-Size: [-340-] {+404+}
Version: [-2.1.6-] {+2.1.7+}
 debian/changelog      |   17 
 doc/po/de.po          | 1447 ++++++++++++++++++++++++++++++++++++++++++++++++++
 doc/po/fr.po          |  491 ++++++++--------
 doc/po/multistrap.pot |    7 
 doc/po/pt.po          |  325 ++++++-----
 doc/po4a.config       |    2 
 multistrap            |   50 +
 po/da.po              |  235 ++++----
 po/fr.po              |  364 ++++++------
 po/multistrap.pot     |  130 ++--
 po/pt.po              |  275 ++++-----
 po/vi.po              |  251 ++++----
 pod/multistrap        |    2 
 13 files changed, 2584 insertions(+), 1012 deletions(-)
diff -Nru multistrap-2.1.6/debian/changelog multistrap-2.1.7/debian/changelog
--- multistrap-2.1.6/debian/changelog	2010-07-28 19:30:25.000000000 +0100
+++ multistrap-2.1.7/debian/changelog	2010-10-02 16:27:52.000000000 +0100
@@ -1,3 +1,20 @@
+multistrap (2.1.7) unstable; urgency=low
+
+  * Add all packages to the source dir, including calculated
+    dependencies.
+  * [INTL:pt] Updated Portuguese translation for manpages
+    (Closes: #595308)
+  * [INTL:da] Danish translation of multistrap (Closes: #595391)
+  * [INTL:pt] Updated Portuguese translation for program messages
+    (Closes: #597144)
+  * [INTL:fr] French manpage translation (Closes: #597385)
+  * [INTL:de] german manpage translation (Closes: #597505)
+  * [INTL:vi] Vietnamese program translation update (Closes: #598476)
+  * Pre-handle keyring packages using GPG for use with apt >= 0.8
+    (Closes: #595017)
+
+ -- Neil Williams <codehelp@debian.org>  Sat, 02 Oct 2010 16:27:01 +0100
+
 multistrap (2.1.6) unstable; urgency=low
 
   * [INTL:fr] French manpage translation update (Closes: #584679)
diff -Nru multistrap-2.1.6/doc/po4a.config multistrap-2.1.7/doc/po4a.config
--- multistrap-2.1.6/doc/po4a.config	2010-07-28 19:34:37.000000000 +0100
+++ multistrap-2.1.7/doc/po4a.config	2010-10-02 18:23:45.000000000 +0100
@@ -1,4 +1,4 @@
-[po4a_langs] fr pt
+[po4a_langs] de fr pt
 [po4a_paths] doc/po/multistrap.pot $lang:doc/po/$lang.po
 [type:pod] pod/multistrap $lang:doc/pod/1/$lang/multistrap
 [type:pod] device-table.pl $lang:doc/pod/1/$lang/device-table.pl
diff -Nru multistrap-2.1.6/multistrap multistrap-2.1.7/multistrap
--- multistrap-2.1.6/multistrap	2010-07-26 22:45:46.000000000 +0100
+++ multistrap-2.1.7/multistrap	2010-10-02 16:30:22.000000000 +0100
@@ -151,6 +151,8 @@
 system ("mkdir -p ${dir}${dpkgdir}") if (not -d "${dir}${dpkgdir}");
 system ("mkdir -p ${dir}etc/apt/sources.list.d/")
 	if (not -d "${dir}etc/apt/sources.list.d/");
+system ("mkdir -p ${dir}etc/apt/trusted.gpg.d/")
+	if (not -d "${dir}etc/apt/trusted.gpg.d/");
 system ("mkdir -p ${dir}etc/apt/preferences.d/")
 	if (not -d "${dir}etc/apt/preferences.d/");
 system ("mkdir -p ${dir}usr/share/info/")
@@ -256,24 +258,37 @@
 foreach my $pkg (values %keyrings) {
 	next if (not defined $pkg);
 	next if ("" eq "$pkg");
-	my $status = `LC_ALL=C dpkg -s $pkg`;
-	next if $status =~ /Status: install ok installed/;
 	$k .= "$pkg ";
 }
-if (defined $k) {
-	my $e=`LC_ALL=C printenv`;
-	if ($e !~ /\nFAKEROOTKEY=[0-9]+\n/) {
-		my $str = "";
-		if (($e =~ /\nUSER=root\n/)) {
-			$str = "sudo" if (-f "/usr/bin/sudo");
+if ((defined $k) and (not defined $noauth)) {
+	printf (_g("I: Installing %s\n"), $k);
+	system ("apt-get -d --reinstall install $k");
+	foreach my $keyring_pkg (values %keyrings) {
+		my @files=();
+		my $file = `find /var/cache/apt/archives/ -name "$keyring_pkg*"`;
+		chomp ($file);
+		my $xdir = `mktemp -d -t keyring.XXXXXX`;
+		chomp ($xdir);
+		system ("dpkg -X $file $xdir >/dev/null");
+		if (-d "${xdir}/usr/share/keyrings") {
+			opendir (DIR, "${xdir}/usr/share/keyrings");
+			@files=grep(!m:\.\.?$:,readdir DIR);
+			closedir (DIR);
+		}
+		foreach my $gpg (@files) {
+			next if ($gpg =~ /removed/);
+			system ("gpg --no-default-keyring ".
+				"--homedir=${dir}/etc/apt/trusted.gpg.d/ ".
+				"--keyring=multistrap.gpg ".
+				" --import ${xdir}/usr/share/keyrings/${gpg} 2>/dev/null");
 		}
-		printf (_g("I: Installing %s\n"), $k);
-		system ("$str apt-get install $k");
+		system ("rm -rf ${xdir}");
 	}
 }
-
 $config_str = '';
 $config_str .= " -o Apt::Architecture=$arch";
+$config_str .= " -o Dir::Etc::TrustedParts=${dir}${etcdir}trusted.gpg.d";
+$config_str .= " -o Dir::Etc::Trusted=${dir}${etcdir}trusted.gpg";
 $config_str .= " -o Apt::Get::AllowUnauthenticated=true"
 	if (defined $noauth);
 $config_str .= " -o Apt::Get::Download-Only=true";
@@ -478,6 +493,7 @@
 		my $pkg=`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Package`;
 		chomp ($ver);
 		chomp ($pkg);
+		push @dsclist, $pkg;
 		mkdir ("./tmp");
 		my $tmpdir = `mktemp -p ./tmp -d -t multistrap.XXXXXX`;
 		chomp ($tmpdir);
@@ -587,7 +603,11 @@
 sub tidy_apt {
 	print _g("I: Tidying up apt cache and list data.\n");
 	if (defined $sourcedir) {
-		my $str = join (" ", @dsclist);
+		my %uniqdsc=();
+		foreach my $a (@dsclist) {
+			$uniqdsc{$a}++;
+		}
+		my $str = join (" ", sort keys %uniqdsc);
 		print "(cd $sourcedir; apt-get -d $config_str source $str)";
 		system ("(cd $sourcedir; apt-get -d $config_str source $str)");
 	}
@@ -928,11 +948,11 @@
 	print "packages:\tPackages: ".join (", ", sort @long)."\n";
 	print "suites:  \tSuites: ".join (", ", sort values %suites)."\n";
 	print "components\tComponents: ".join (", ", sort values %components)."\n";
-	my $msg="omitdebsrc\t"._g("Omit deb-src from sources.list for sections:");
+	my $srcmsg="omitdebsrc\t"._g("Omit deb-src from sources.list for sections:");
 	foreach my $omit (sort keys %omitdebsrc) {
-		$msg .= $omitdebsrc{$omit} if (defined $omitdebsrc{$omit});
+		$srcmsg .= $omitdebsrc{$omit} if (defined $omitdebsrc{$omit});
 	}
-	print "$msg\n";
+	print "$srcmsg\n";
 	if (defined $explicit_suite) {
 		printf("explicitsuite:\t"._g("Explicit suite selection: Yes\n"));
 	} else {
diff -Nru multistrap-2.1.6/pod/multistrap multistrap-2.1.7/pod/multistrap
--- multistrap-2.1.6/pod/multistrap	2010-07-22 21:13:23.000000000 +0100
+++ multistrap-2.1.7/pod/multistrap	2010-10-02 16:12:27.000000000 +0100
@@ -25,7 +25,7 @@
 --no-auth - allow the use of unauthenticated repositories. Same
 as noauth=true
 
---sourcedir DIR - move the contents of var/cache/apt/archives/ from
+--source-dir DIR - move the contents of var/cache/apt/archives/ from
 inside the chroot to the specified external directory, then add the
 Debian source packages for each used binary. Same as retainsources=DIR
 If the specified directory does not exist, nothing is done.

Attachment: pgpyjvxTe_Mgj.pgp
Description: PGP signature


Reply to: