From: Ian Jackson Date: Thu, 5 Jul 2018 00:26:57 +0000 (+0100) Subject: WIP X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=6175d7b45c71820ccc02c2d18263b8ec53b98c01;p=dgit.git WIP --- diff --git a/dgit b/dgit index f18236a7..14d8097d 100755 --- 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,