chiark / gitweb /
dgit-repos-policy-debian: Remirror a package when it becomes public
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 12 Jan 2017 00:02:27 +0000 (00:02 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 12 Jan 2017 00:31:20 +0000 (00:31 +0000)
Ie, make the repo available much more promptly when the package passes
NEW.

Closes:#849789.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
debian/changelog
infra/dgit-repos-policy-debian

index 05ab9d0..a7a4b99 100644 (file)
@@ -4,6 +4,9 @@ dgit (3.2~) unstable; urgency=medium
   * dgit: Do not execute END blocks in children.  So far symptoms of this
     bug seem to be limited to duplicated error messages but I have not
     done a thorough analysis.  Closes:#850052.
+  * dgit-infrastructure: dgit-repos-policy-debian: Remirror a package when
+    it becomes public (ie, make the repo available much more promptly when
+    the package passes NEW).  Closes:#849789.
 
   Test suite:
   * infra: mirroring and policy hooks: Improve some debugging output.
index cff5d06..990abd2 100755 (executable)
@@ -262,6 +262,21 @@ sub check_package () {
     if (good_suite_has_suitable_vsn(\&vsn_in_our_history)) {
        chmod $publicmode, "." or die $!;
        $pkg_secret = 0;
+       eval {
+           my $mirror_hook = "$distrodir/mirror-hook";
+           if (stat_exists $mirror_hook) {
+               my @mirror_cmd =
+                   ($mirror_hook, $distrodir, "updated-hook", $pkg);
+               debugcmd " (mirror)",@mirror_cmd;
+               system @mirror_cmd and failedcmd @mirror_cmd;
+           }
+       };
+       if (length $@) {
+           chomp $@;
+           print STDERR "policy hook: warning:".
+               " failed to mirror publication of \`$pkg':".
+               " $@\n";
+       }
        return 0;
     }