Package: debmirror
Version: 1:2.3.1
Severity: minor
Tags: patch
Hi there
I just tried mirroring the dists at
http://build.chromium.org/buildbot/packages/dists/chromeos/ (I think
these are created with reprepro), but failed due to missing Release.gpg
files.
There were two independent issues, one was in get_release() which was
returning 0 because the remote_get() would fail for Release.gpg, I
changed:
return 0 unless remote_get("dists/$dist/Release", "$tempdir/.tmp");
my $t = $num_errors;
return 0 unless remote_get("dists/$dist/Release.gpg", "$tempdir/.tmp");
# Check for gpg
if (!$ignore_release_gpg) {
if (system("gpgv --version >/dev/null 2>/dev/null")) {
say("gpgv failed: --ignore-release-gpg or gpgv binary missing?");
to:
return 0 unless remote_get("dists/$dist/Release", "$tempdir/.tmp");
my $t = $num_errors;
if (!$ignore_release_gpg) {
return 0 unless remote_get("dists/$dist/Release.gpg", "$tempdir/.tmp");
# Check for gpg
if (system("gpgv --version >/dev/null 2>/dev/null")) {
say("gpgv failed: --ignore-release-gpg or gpgv binary missing?");
but you could as well return 1 if ignore_release_gpg.
The other spot was when moving the files in place, changed this:
rename("$tdir/Release", "$tempdir/dists/$codename$dist_sdir/Release")
or die "Error while moving $tdir/Release: $!\n";
rename("$tdir/Release.gpg",
"$tempdir/dists/$codename$dist_sdir/Release.gpg")
or die "Error while moving $tdir/Release.gpg: $!\n";
into:
rename("$tdir/Release", "$tempdir/dists/$codename$dist_sdir/Release")
or die "Error while moving $tdir/Release: $!\n";
rename("$tdir/Release.gpg",
"$tempdir/dists/$codename$dist_sdir/Release.gpg")
or $ignore_release_gpg or die "Error while moving $tdir/Release.gpg:
$!\n";
and that was enough.
Attaching debdiff.
Thanks!
--
Loïc Minier
diff -Nru debmirror-2.3.1/debian/changelog debmirror-2.3.2/debian/changelog
--- debmirror-2.3.1/debian/changelog 2009-10-08 19:41:03.000000000 +0200
+++ debmirror-2.3.2/debian/changelog 2009-12-17 23:29:35.000000000 +0100
@@ -1,3 +1,10 @@
+debmirror (1:2.3.2) UNRELEASED; urgency=low
+
+ * Fix handling of repos without Release.gpg files --ignore-release-gpg is
+ passed.
+
+ -- Loïc Minier <[email protected]> Thu, 17 Dec 2009 23:29:04 +0100
+
debmirror (1:2.3.1) unstable; urgency=low
* Update example configuration (closes: #549955):
diff -Nru debmirror-2.3.1/debmirror debmirror-2.3.2/debmirror
--- debmirror-2.3.1/debmirror 2009-10-08 19:30:56.000000000 +0200
+++ debmirror-2.3.2/debmirror 2009-12-17 23:28:57.000000000 +0100
@@ -818,7 +818,7 @@
rename("$tdir/Release", "$tempdir/dists/$codename$dist_sdir/Release")
or die "Error while moving $tdir/Release: $!\n";
rename("$tdir/Release.gpg", "$tempdir/dists/$codename$dist_sdir/Release.gpg")
- or die "Error while moving $tdir/Release.gpg: $!\n";
+ or $ignore_release_gpg or die "Error while moving $tdir/Release.gpg: $!\n";
$files{"dists/$codename$dist_sdir/Release"}=1;
$files{$tempdir."/"."dists/$codename$dist_sdir/Release"}=1;
$files{"dists/$codename$dist_sdir/Release.gpg"}=1;
@@ -1756,9 +1756,9 @@
make_dir ("$tdir");
return 0 unless remote_get("dists/$dist/Release", "$tempdir/.tmp");
my $t = $num_errors;
- return 0 unless remote_get("dists/$dist/Release.gpg", "$tempdir/.tmp");
- # Check for gpg
if (!$ignore_release_gpg) {
+ return 0 unless remote_get("dists/$dist/Release.gpg", "$tempdir/.tmp");
+ # Check for gpg
if (system("gpgv --version >/dev/null 2>/dev/null")) {
say("gpgv failed: --ignore-release-gpg or gpgv binary missing?");
push (@errlog,"gpgv failed: --ignore-release-gpg or gpgv binary missing?\n");