chiark / gitweb /
WIP
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 5 Jul 2018 00:26:57 +0000 (01:26 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 5 Jul 2018 00:26:57 +0000 (01:26 +0100)
dgit

diff --git a/dgit b/dgit
index f18236a7998beb6371dcd64b34ae2cbcc2f44bfc..14d8097da82abb2efd53b3e0acec6dc3c4035ae6 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -1181,7 +1181,7 @@ sub file_in_archive_ftpmasterapi {
     my $info = api_query($data, "file_in_archive/$pat", 1);
 }
 
-sub package_wholly_new_ftpmasterapi {
+sub package_not_wholly_new_ftpmasterapi {
     my ($proto,$data,$pkg) = @_;
     my $info = api_query($data,"madison?package=${pkg}&f=json");
     return !!@$info;
@@ -1350,7 +1350,7 @@ sub archive_query_aptget {
 }
 
 sub file_in_archive_aptget () { return undef; }
-sub package_wholly_new_aptget () { return undef; }
+sub package_not_wholly_new_aptget () { return undef; }
 
 #---------- `dummyapicat' archive query method ----------
 
@@ -1389,7 +1389,7 @@ sub file_in_archive_dummycatapi ($$$) {
     return \@out;
 }
 
-sub package_wholly_new_dummycatapi {
+sub package_not_wholly_new_dummycatapi {
     my ($proto,$data,$pkg) = @_;
     dummycatapi_run_in_mirror "
             find -name ${pkg}_*.dsc
@@ -1449,7 +1449,7 @@ sub canonicalise_suite_madison {
 }
 
 sub file_in_archive_madison { return undef; }
-sub package_wholly_new_madison { return undef; }
+sub package_not_wholly_new_madison { return undef; }
 
 #---------- `sshpsql' archive query method ----------
 
@@ -1527,7 +1527,7 @@ END
 }
 
 sub file_in_archive_sshpsql ($$$) { return undef; }
-sub package_wholly_new_sshpsql ($$$) { return undef; }
+sub package_not_wholly_new_sshpsql ($$$) { return undef; }
 
 #---------- `dummycat' archive query method ----------
 
@@ -1572,7 +1572,7 @@ sub archive_query_dummycat ($$) {
 }
 
 sub file_in_archive_dummycat () { return undef; }
-sub package_wholly_new_dummycat () { return undef; }
+sub package_not_wholly_new_dummycat () { return undef; }
 
 #---------- tag format handling ----------
 
@@ -4456,13 +4456,21 @@ END
     if ($sourconlypolicy eq 'ok') {
     } elsif ($sourconlypolicy eq 'always') {
        forceable_fail [qw(uploading-binaries)],
-           "uploading binaries, although distroy policy is source only";
+           "uploading binaries, although distroy policy is source only"
+           if $hasdebs;
     } elsif ($sourconlypolicy eq 'never') {
        forceable_fail [qw(uploading-source-only)],
-           "source-only upload, although distroy policy requires .debs";
+           "source-only upload, although distroy policy requires .debs"
+           if !$hasdebs;
     } elsif ($sourconlypolicy eq 'not-wholly-new') {
-       if ($new_package) {
-           my $have = archive_query('package_', 
+       forceable_fail [qw(uploading-source-only)],
+           "source-only upload, even though package is entirely NEW"
+           if !$hasdebs
+           && $new_package
+           && !archive_query('package_not_wholly_new', $package);
+    } else {
+       badcfg "unknown source-only-uploads policy \`$sourceonlypolicy'";
+    }
 
     # Perhaps adjust .dsc to contain right set of origs
     changes_update_origs_from_dsc($dsc, $changes, $upstreamversion,