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

Bug#815728: marked as done (jessie-pu: package debmirror/1:2.16+deb8u1)



Your message dated Sat, 09 Dec 2017 10:47:53 +0000
with message-id <1512816473.1994.32.camel@adam-barratt.org.uk>
and subject line Closing bugs for updates included in jessie point release
has caused the Debian Bug report #815728,
regarding jessie-pu: package debmirror/1:2.16+deb8u1
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.)


-- 
815728: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815728
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

As the new debmirror maintainer, I'd like to fix a couple of problems
with the version in stable.  One is serious and causes debmirror to sit
in an infinite loop when run against the current Debian archive
(#808216, #815149).  While the other doesn't have quite such dire
consequences, a current desktop system with the appstream package
installed needs to have the DEP-11 metadata files present in order for
"apt update" to succeed (#814416).

I think it makes sense to fix both of these in stable, and my proposed
patch follows.  Both changes are cherry-picks from unstable.

diff -Nru debmirror-2.16/debian/changelog debmirror-2.16+deb8u1/debian/changelog
--- debmirror-2.16/debian/changelog	2013-08-26 17:41:08.000000000 +0100
+++ debmirror-2.16+deb8u1/debian/changelog	2016-02-24 07:28:48.000000000 +0000
@@ -1,3 +1,10 @@
+debmirror (1:2.16+deb8u1) stable; urgency=medium
+
+  * Tolerate unknown lines in *.diff/Index (closes: #808216, #815149).
+  * Mirror DEP-11 metadata files (closes: #814416).
+
+ -- Colin Watson <cjwatson@debian.org>  Wed, 24 Feb 2016 07:28:42 +0000
+
 debmirror (1:2.16) unstable; urgency=low
 
   * Fix confusing output with --precleanup.
diff -Nru debmirror-2.16/debmirror debmirror-2.16+deb8u1/debmirror
--- debmirror-2.16/debmirror	2013-06-23 17:34:26.000000000 +0100
+++ debmirror-2.16+deb8u1/debmirror	2016-02-24 07:27:41.000000000 +0000
@@ -671,6 +671,10 @@
 # info. Files also get registered in %files.
 my %i18n_get;
 
+# Hash to record which DEP-11 metadata files need to be downloaded. Files
+# also get registered in %files.
+my %dep11_get;
+
 # Separate hash for files belonging to Debian Installer images.
 # This data is not cached.
 my %di_files;
@@ -1092,7 +1096,7 @@
 # for the ftp method.
 $do_dry_run = $dry_run;
 
-# Determine size of Contents and Translation files to get.
+# Determine size of Contents, Translation, and DEP-11 files to get.
 if ($getcontents) {
   # Updates of Contents files using diffs are done here; only full downloads
   # are delayed.
@@ -1126,6 +1130,7 @@
   next unless exists $distset{$dist}{mirror};
   foreach my $section (@sections) {
     i18n_from_release($dist,"$section/i18n");
+    dep11_from_release($dist,"$section/dep11");
   }
 }
 
@@ -1296,16 +1301,17 @@
   }
 }
 
-# With pre-mirror cleanup Contents and Translation files need to be
+# With pre-mirror cleanup Contents, Translation, and DEP-11 files need to be
 # downloaded before the cleanup as otherwise they would be deleted
 # because they haven't been registered yet.
 # With post-mirror cleanup it's more neat to do all downloads together.
 # This could be simplified if we could register the files earlier.
 
-# Download Contents and Translation files.
+# Download Contents, Translation, and DEP-11 files.
 init_connection();
 get_contents_files() if ($getcontents);
 get_i18n_files();
+get_dep11_files();
 
 # Pre-mirror cleanup
 if ($pre_cleanup) {
@@ -1982,7 +1988,7 @@
   }
 }
 
-sub link_translation_into_snapshot {
+sub link_auxfile_into_snapshot {
   my ($file,$dist,$distpath,$filename,$mirrordir,$tempdir) = @_;
   my $next = get_next_snapshot($dist);
   my $target_path = "$mirrordir/dists/$dist/$next/$distpath";
@@ -2421,12 +2427,67 @@
     if (! check_i18n("$tempdir/$file", $i18n_get{$file}{size}, $i18n_get{$file}{sha1})) {
       remote_get("$file");
       if ($debmarshal) {
-	link_translation_into_snapshot($file,
-				       $i18n_get{$file}{dist},
-				       $i18n_get{$file}{distpath},
-				       $i18n_get{$file}{filename},
-				       $mirrordir,
-				       $tempdir);
+        link_auxfile_into_snapshot($file,
+                                   $i18n_get{$file}{dist},
+                                   $i18n_get{$file}{distpath},
+                                   $i18n_get{$file}{filename},
+                                   $mirrordir,
+                                   $tempdir);
+      }
+    }
+  }
+}
+
+sub dep11_from_release {
+  my ($dist,$distpath) = @_;
+  my $subdir = "dists/$dist/$distpath";
+  my $compdir = $tempdir."/".$subdir;
+  my ($size, $filename);
+  my $exclude = "(".join("|", @excludes).")" if @excludes;
+  my $include = "(".join("|", @includes).")" if @includes;
+
+  # Create dep11 directories
+  make_dir($subdir);
+  make_dir($compdir);
+
+  # Search for DEP-11 files in file_lists
+  foreach my $path (keys %file_lists) {
+    next if length($compdir)+1>length($path); # the +1 stands for the slash after $compdir
+    next if substr($path, 0, length($compdir)) ne $compdir;
+
+    my $filename = substr($path, length($compdir)+1, length($path)-length($compdir)-1);
+    next if $filename !~ /\.(?:gz|bz2|xz)$/;
+    my $all_arches = "(".join("|", map(quotemeta, @arches)).")";
+    next if $filename =~ /^Components-/ and $filename !~ /^Components-$all_arches\./;
+
+    my $size = $file_lists{$path}{size};
+    if(!(defined($include) && ($subdir."/".$filename)=~/$include/o)) {
+      next if (defined($exclude) && ($subdir."/".$filename)=~/$exclude/o);
+    }
+
+    $files{"$subdir/$filename"}=1;
+    $files{$tempdir."/"."$subdir/$filename"}=1;
+    if (!check_lists("$tempdir/$subdir/$filename")) {
+      $bytes_to_get += $size;
+      $dep11_get{"$subdir/$filename"}{dist} = $dist;
+      $dep11_get{"$subdir/$filename"}{distpath} = $distpath;
+      $dep11_get{"$subdir/$filename"}{filename} = $filename;
+    }
+  }
+}
+
+sub get_dep11_files {
+  say("Get DEP-11 metadata files ...");
+  foreach my $file (sort keys %dep11_get) {
+    if (!check_lists("$tempdir/$file")) {
+      remote_get($file);
+      if ($debmarshal) {
+        link_auxfile_into_snapshot($file,
+                                   $dep11_get{$file}{dist},
+                                   $dep11_get{$file}{distpath},
+                                   $dep11_get{$file}{filename},
+                                   $mirrordir,
+                                   $tempdir);
       }
     }
   }
@@ -2463,6 +2524,9 @@
 	$diff_size{$file} = $size;
       }
     }
+    else {
+      $_ = <INDEX>;
+    }
   }
   close(INDEX);
 

-- System Information:
Debian Release: 8.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

-- 
Colin Watson                                       [cjwatson@debian.org]

--- End Message ---
--- Begin Message ---
Version: 8.10

Hi,

Each of the updates referenced in these bugs was included in this
morning's jessie point release. Thanks!

Regards,

Adam

--- End Message ---

Reply to: