chiark / gitweb /
dgit: Introduce "deliberatelies"
[dgit.git] / infra / dgit-repos-server
index 7c447d288050856a281c51feb7fabe8770f68c6f..56fc4fd0ef766bbfd617aac8dfc34148ccfd55c2 100755 (executable)
@@ -100,6 +100,8 @@ our $workrepo;
 our $keyrings;
 our @lockfhs;
 our $debug='';
+our @deliberatelies;
+our $policy;
 
 #----- utilities -----
 
@@ -336,7 +338,9 @@ sub parsetag () {
            for (;;) {
                if (s/^distro\=(\S+) //) {
                    die "$1 != $distro" unless $1 eq $distro;
-               } elsif (s/^[-+.=0-9a-z]+ //) {
+               } elsif (s/^(--deliberately-$package_re) //) {
+                   push @deliberatelies, $1;
+               } elsif (s/^[-+.=0-9a-z]\S* //) {
                } else {
                    die "unknown dgit info in tag";
                }
@@ -475,7 +479,7 @@ sub tagh1 ($) {
 
 sub checks () {
     debug "checks";
-    checksuite();
+
     tagh1('type') eq 'commit' or reject "tag refers to wrong kind of object";
     tagh1('object') eq $commit or reject "tag refers to wrong commit";
     tagh1('tag') eq $tagname or reject "tag name in tag is wrong";
@@ -486,6 +490,8 @@ sub checks () {
     debug "translated version $v";
     $tagname eq "debian/$v" or die;
 
+    checksuite();
+
     # check that our ref is being fast-forwarded
     debug "oldcommit $oldcommit";
     if ($oldcommit =~ m/[^0]/) {