chiark / gitweb /
dgit.git
4 years agochangelog: start 9.10
Ian Jackson [Sat, 14 Sep 2019 20:37:15 +0000 (21:37 +0100)]
changelog: start 9.10

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: finalise 9.9 archive/debian/9.9 debian/9.9
Ian Jackson [Sat, 14 Sep 2019 20:35:03 +0000 (21:35 +0100)]
changelog: finalise 9.9

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Document changes since 9.8
Ian Jackson [Sat, 14 Sep 2019 19:42:11 +0000 (20:42 +0100)]
changelog: Document changes since 9.8

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoi18n-commit - autogenerated
Ian Jackson [Sat, 14 Sep 2019 19:40:33 +0000 (20:40 +0100)]
i18n-commit - autogenerated

4 years agodgit-maint-bpo(7): Mention occasional need for --new
Ian Jackson [Thu, 5 Sep 2019 15:50:28 +0000 (16:50 +0100)]
dgit-maint-bpo(7): Mention occasional need for --new

Closes: #935443
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agogit-debpush(1): warning about use of forcing options
Sean Whitton [Sat, 14 Sep 2019 16:54:34 +0000 (09:54 -0700)]
git-debpush(1): warning about use of forcing options

Suggested-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Closes: #935084
4 years agogit-debpush(1): note that --quilt=baredebian+git is an alias
Sean Whitton [Sat, 14 Sep 2019 16:54:10 +0000 (09:54 -0700)]
git-debpush(1): note that --quilt=baredebian+git is an alias

Suggested-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Relates-to: #935084
4 years agoinfra: dgit-mirror-ssh-wrap: Fix $package_re
Ian Jackson [Fri, 13 Sep 2019 17:22:58 +0000 (18:22 +0100)]
infra: dgit-mirror-ssh-wrap: Fix $package_re

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: Add missing dependency on liburl-perl
Ian Jackson [Fri, 13 Sep 2019 15:37:01 +0000 (16:37 +0100)]
test suite: Add missing dependency on liburl-perl

This is only a Recommends in dgit.deb so we need to pull it in
explicitly for the tests that need it.

We add the dependency unconditionally to the test suite tests that
depend on dgit, since that avoids having to track exactly when it's
needed.  (This module has an Installed-Size of 228.)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodebian/control: Add missing dependency on liburl-perl
Ian Jackson [Fri, 13 Sep 2019 15:33:46 +0000 (16:33 +0100)]
debian/control: Add missing dependency on liburl-perl

dgit uses URI::Escape for archive_query_aptget.

This is a Recommends, because if you never use the aptget method you
don't need it.  (But few installations can do without the aptget
method entirely.)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: Test dgit-mirror-ssh-wrap
Ian Jackson [Fri, 13 Sep 2019 15:02:26 +0000 (16:02 +0100)]
test suite: Test dgit-mirror-ssh-wrap

This script will break if rsync changes the way it passes arguments to
the peer.  We need to catch that.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoinfra: New script dgit-mirror-ssh-wrap
Ian Jackson [Fri, 13 Sep 2019 15:02:22 +0000 (16:02 +0100)]
infra: New script dgit-mirror-ssh-wrap

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agolintian: Override source format warnings
Ian Jackson [Fri, 13 Sep 2019 14:41:59 +0000 (15:41 +0100)]
lintian: Override source format warnings

I also don't agree that missing source format is a problem.
The semantics are well defined.

There are difficulties with 3.0 native (for example, that it forbids
non-native versions) so 1.0 must continue to be used so that it
continues to exist.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoi18n-commit - autogenerated
Ian Jackson [Sun, 8 Sep 2019 19:11:31 +0000 (20:11 +0100)]
i18n-commit - autogenerated

4 years agolintian: Override some checks
Ian Jackson [Sun, 8 Sep 2019 19:11:15 +0000 (20:11 +0100)]
lintian: Override some checks

The mannpage message on line 51 is
  warning: file `<standard input>', around line 51:
    table wider than line width
and refers to this line
  dgit-maint-gbp(7) for maintainers already using git-buildpackage
which does in fact fit (just) in an 80-column xterm.

I hope dgit-badcommit-fixup is never going to be needed enough again
to need a manpage.

I don't agree that trailing whitespace in changelog is a problem.

Remaining messages from

  lintian -EI --pedantic --no-tag-display-limit --suppress-tags=syntax-error-in-debian-changelog,changelog-empty-entry ../bpd/dgit_9.9~_multi.changes

are as follows:

  W: dgit source: missing-debian-source-format
  I: dgit source: older-source-format 1.0

I don't agree that source format 1.0 is wrong.  There are difficulties
with 3.0 native (for example, that it forbids non-native versions) so
1.0 must continue to be used so that it continues to exist.

I also don't agree that missing source format is a problem.  The
semantics are well defined.

  P: dgit source: package-uses-old-debhelper-compat-version 9
  W: dgit source: unnecessary-testsuite-autopkgtest-field

I like to keep things backwards compatible for a much longer time than
most people.  jessie is currently oldoldstable and has dh 9.

  P: dgit source: no-dep5-copyright

I don't have effort for this.  I think it is largely busywork but I
would accept a patch.

  I: dgit: package-contains-empty-directory usr/share/man/man5/

Avoiding this is awkward.

  W: dgit-infrastructure: binary-without-manpage usr/bin/dgit-mirror-rsync
  W: dgit-infrastructure: binary-without-manpage usr/bin/dgit-repos-admin-debian
  W: dgit-infrastructure: binary-without-manpage usr/bin/dgit-repos-policy-debian
  W: dgit-infrastructure: binary-without-manpage usr/bin/dgit-repos-policy-trusting
  W: dgit-infrastructure: binary-without-manpage usr/bin/dgit-repos-server
  W: dgit-infrastructure: binary-without-manpage usr/bin/dgit-ssh-dispatch

In principle manpages for some of all of these would be good.  But the
usefuless of these programs is largely limited to people whose
requirements are extremely similar to Debian's.  Most people can just
use a normal git server.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agocontrol: update Vcs-Git to end in .git
Ian Jackson [Sun, 8 Sep 2019 19:28:47 +0000 (20:28 +0100)]
control: update Vcs-Git to end in .git

In
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=888809
Paul Wise writes
  Salsa redirects git to URLs ending in ".git/" and redirects browsers
  to the URL not ending in ".git/" or ".git".

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agocontrol: Drop redundant Priority field
Ian Jackson [Sun, 8 Sep 2019 19:19:43 +0000 (20:19 +0100)]
control: Drop redundant Priority field

Found by lintian.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agogit-debrebase: Extend extended description.
Ian Jackson [Sun, 8 Sep 2019 19:16:19 +0000 (20:16 +0100)]
git-debrebase: Extend extended description.

Mentioning what the competition is may help both discoverability and
useability.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit(1): Fix a typo (found by lintian)
Ian Jackson [Sun, 8 Sep 2019 19:16:08 +0000 (20:16 +0100)]
dgit(1): Fix a typo (found by lintian)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agocontrol: Bump Standards-Version
Ian Jackson [Sun, 8 Sep 2019 18:50:52 +0000 (19:50 +0100)]
control: Bump Standards-Version

I have been through the upgrading checklist.

I came across two things which were mentioned but which I haven't
implemented:

 * nodoc build option.  It's not clear to me whether this is
   superseded by the nodocs build profile.  If we wanted to bootstrap
   using dgit, the build profile would probably be better.

 * using ${perl:Depends}.  I looked into this briefly and dh_perl
   doesn't seem to DTRT right now: it doesn't spot any of the modules
   we use.  I'm not sure why and have decided to punt on this for now.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agocontrol: Change priority of dgit-infrastruture to extra
Ian Jackson [Sun, 8 Sep 2019 18:42:57 +0000 (19:42 +0100)]
control: Change priority of dgit-infrastruture to extra

Pursuant to policy upgrading checklist.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit-maint-{merge,debrebase}(7): Use git fetch --tags upstream
Sean Whitton [Sat, 7 Sep 2019 16:32:21 +0000 (09:32 -0700)]
dgit-maint-{merge,debrebase}(7): Use git fetch --tags upstream

We recommend using a remote called 'upstream' and so we can recommend
a command which will be faster and less likely to error out.

Closes: #939679
Suggested-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
4 years agochangelog: start 9.9
Ian Jackson [Fri, 6 Sep 2019 22:59:01 +0000 (23:59 +0100)]
changelog: start 9.9

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: finalise 9.8 archive/debian/9.8 debian/9.8
Ian Jackson [Fri, 6 Sep 2019 22:42:22 +0000 (23:42 +0100)]
changelog: finalise 9.8

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Document changes since 9.7
Ian Jackson [Fri, 6 Sep 2019 21:39:06 +0000 (22:39 +0100)]
changelog: Document changes since 9.7

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoi18n-commit - autogenerated
Ian Jackson [Fri, 6 Sep 2019 22:47:23 +0000 (23:47 +0100)]
i18n-commit - autogenerated

4 years agotest suite: Check that archive skew machinery reports warning
Ian Jackson [Fri, 6 Sep 2019 21:14:53 +0000 (22:14 +0100)]
test suite: Check that archive skew machinery reports warning

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: Check that archive skew machinery succeeds
Ian Jackson [Fri, 6 Sep 2019 20:01:59 +0000 (21:01 +0100)]
test suite: Check that archive skew machinery succeeds

This is actually the point of this test case.

perling $tmp/aq/package... is a bit of a bodge, but fine.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Once again cope with archive skew
Ian Jackson [Fri, 6 Sep 2019 20:03:57 +0000 (21:03 +0100)]
dgit: Once again cope with archive skew

Since our http rearrangements, we have lost the ability to try
multiple dsc versions which means we cope badly with archive skew.

This was an editing error: in 7821907696db
   dgit: Abolish url_get in favour of url_fetch
we omitted to notice that url_get implicitly does what url_fetch needs
Ok404 to do.  So we didn't add the Ok404 parameter.

Fix this by adding it now.

Closes: #935874
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: clone-skew: Test for accessing mirror via http
Ian Jackson [Fri, 6 Sep 2019 20:00:11 +0000 (21:00 +0100)]
test suite: clone-skew: Test for accessing mirror via http

This test is misnamed right now, but really we are going to make it do
something interesting.

Right now it just sets everything up to access the mirror via http
rather than file://.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: t-archive: Honour t_archive_ln_s
Ian Jackson [Fri, 6 Sep 2019 20:56:54 +0000 (21:56 +0100)]
test suite: t-archive: Honour t_archive_ln_s

This will let us arrange to use cp instead.

No functional change for existing callers.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: curl: pass CURLOPT_FOLLOWLOCATION
Ian Jackson [Fri, 6 Sep 2019 19:37:28 +0000 (20:37 +0100)]
dgit: curl: pass CURLOPT_FOLLOWLOCATION

This was accidentally dropped in the 9.6 http changes.

Closes: #939564
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit-maint-{merge,debrebase}(7): Use git fetch --all --tags
Sean Whitton [Thu, 5 Sep 2019 16:08:48 +0000 (09:08 -0700)]
dgit-maint-{merge,debrebase}(7): Use git fetch --all --tags

`git remote update` doesn't fetch tags unless remote branches include
the commits at which those tags point.  Thus, if upstream pushes their
release tag but fails to push their master branch, `git remote update`
will not fetch the release tag.

I've been in this situation more than once when following the
workflows detailed in these manpages, so let's just recommend a
command which will definitely try to fetch the latest release tag.

Closes: #939504
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: Test already-tagged check
Ian Jackson [Thu, 5 Sep 2019 15:36:27 +0000 (16:36 +0100)]
test suite: Test already-tagged check

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Fail early when the archive/ tag already exists.
Ian Jackson [Thu, 5 Sep 2019 15:34:33 +0000 (16:34 +0100)]
dgit: Fail early when the archive/ tag already exists.

Suggest using a new version number.

We need a new --force option to override this check.

Closes: #935802
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: Add --force-reusing-version to many tests
Ian Jackson [Thu, 5 Sep 2019 17:13:27 +0000 (18:13 +0100)]
test suite: Add --force-reusing-version to many tests

This is going to be needed in a moment.  Unknown --force options are
harmless and just generate warnings, so we do this in advance.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit(1): Another semantic linefeed
Ian Jackson [Thu, 5 Sep 2019 13:50:01 +0000 (14:50 +0100)]
dgit(1): Another semantic linefeed

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Warn when we see what look like our options passed too late
Ian Jackson [Thu, 5 Sep 2019 13:48:19 +0000 (14:48 +0100)]
dgit: Warn when we see what look like our options passed too late

Closes: #934807
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Use distro-info-data to resolve unknown suites to distros
Ian Jackson [Thu, 5 Sep 2019 11:59:16 +0000 (12:59 +0100)]
dgit: Use distro-info-data to resolve unknown suites to distros

Closes: #931212
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit(1): Some semantic linefeeds
Ian Jackson [Thu, 5 Sep 2019 10:20:15 +0000 (11:20 +0100)]
dgit(1): Some semantic linefeeds

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Use $tarball_f_ext_re for test_source_only_changes
Ian Jackson [Thu, 5 Sep 2019 08:39:51 +0000 (09:39 +0100)]
dgit: Use $tarball_f_ext_re for test_source_only_changes

The old ad-hoc regexp doesn't match .tar.gz.{asc,sig}.

Closes: #939280
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoDgit: Break out $tarball_f_ext_re.
Ian Jackson [Thu, 5 Sep 2019 08:34:06 +0000 (09:34 +0100)]
Dgit: Break out $tarball_f_ext_re.

We are going to reuse this.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agogit-debrebase(5): Tiny typo fix
Ian Jackson [Sat, 18 May 2019 11:49:09 +0000 (12:49 +0100)]
git-debrebase(5): Tiny typo fix

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Start 9.8
Ian Jackson [Sun, 11 Aug 2019 00:12:05 +0000 (01:12 +0100)]
changelog: Start 9.8

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: finalise 9.7 archive/debian/9.7 debian/9.7
Ian Jackson [Sun, 11 Aug 2019 00:11:06 +0000 (01:11 +0100)]
changelog: finalise 9.7

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Document chages since 9.6
Ian Jackson [Sat, 10 Aug 2019 19:00:40 +0000 (20:00 +0100)]
changelog: Document chages since 9.6

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoi18n-commit - autogenerated
Ian Jackson [Sat, 10 Aug 2019 18:42:36 +0000 (19:42 +0100)]
i18n-commit - autogenerated

4 years agodgit: vcs-git handling: Strip [...] a la Haskell Team
Ian Jackson [Sat, 10 Aug 2019 18:22:24 +0000 (19:22 +0100)]
dgit: vcs-git handling: Strip [...] a la Haskell Team

The final syntax of this is not yet agreed but this regexp ought to do
the right thing in all reasonable cases.  (Ie, no [ ] inside the [ ].)

See also #932696 against policy, which is discussing the spec.

Closes: #932699
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: update-vcs-git: Use vcs_git_url_of_ctrl
Ian Jackson [Sat, 10 Aug 2019 18:24:00 +0000 (19:24 +0100)]
dgit: update-vcs-git: Use vcs_git_url_of_ctrl

So we strip -b fragments as we ought.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: update-vcs-git: Print a less confusing message if unchanged
Ian Jackson [Sat, 10 Aug 2019 18:20:30 +0000 (19:20 +0100)]
dgit: update-vcs-git: Print a less confusing message if unchanged

Previously, we would say it was "already configured" which is
unspecific and sounds a bit like an error.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: update-vcs-git: Do not crash if url is unchanged
Ian Jackson [Sat, 10 Aug 2019 18:18:03 +0000 (19:18 +0100)]
dgit: update-vcs-git: Do not crash if url is unchanged

Previously, we would pass an empty command array to runcmd, causing a
mysterious-looking failure.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Break out vcs_git_url_of_ctrl
Ian Jackson [Sat, 10 Aug 2019 18:11:57 +0000 (19:11 +0100)]
dgit: Break out vcs_git_url_of_ctrl

This should have been done before.  No functional change so far.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Fix on NFS (avoid leaking an open file in a directory to rm)
Stéphane Glondu [Fri, 9 Aug 2019 05:16:46 +0000 (07:16 +0200)]
dgit: Fix on NFS (avoid leaking an open file in a directory to rm)

The file debian/source/format was open by "dgit fetch" but never
closed, causing failure to remove the extracted tree on NFS.

Closes: #933827
Signed-off-by: Stéphane Glondu <glondu@debian.org>
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: alternating-dgit: New test
Ian Jackson [Thu, 8 Aug 2019 11:31:46 +0000 (12:31 +0100)]
test suite: alternating-dgit: New test

This tests alternating dgit and non-dgit uploads.  These were broken
by the bug #934126 (check_for_git always returns false), in the http
rework, and not detected by the test suite (!)

This test *does* break if check_for_git always returns false.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: Use http git check for three existing tests
Ian Jackson [Thu, 8 Aug 2019 11:33:22 +0000 (12:33 +0100)]
test suite: Use http git check for three existing tests

At the very least we want at least one test which fails when
check_for_git is nobbled ad-hoc [1] to return 1.  "clone-nogit" fits
that bill (verified experimentally).

Pick two other tests to enable this for, roughly arbitrarily.
(Two tests which chain to clone-nogit are affected too.)

Of course we also want a test which fails when check_for_git falsely
returns 0.  We don't have one right now.  Coming up...

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: WWW::Curl: Double check that $response_body was set
Ian Jackson [Thu, 8 Aug 2019 11:30:56 +0000 (12:30 +0100)]
dgit: WWW::Curl: Double check that $response_body was set

We are making some assumptions about how WWW::Curl behaves. This
confess, with appropriate tests, should catch any future problems.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: WWW::Curl Set $response_body to '' explicitly
Ian Jackson [Thu, 8 Aug 2019 11:30:46 +0000 (12:30 +0100)]
dgit: WWW::Curl Set $response_body to '' explicitly

check_for_git calls url_fetch with a WWW::Curl parameter
CURLOPT_NOBODY which suppresses saving the body.  The result is that
CURLOPT_WRITEDATA does not update $response_body.  Then, even on
success, url_fetch returns undef (which ought to mean 404).

Strictly this is a bit sneaky of check_for_git.  But, rather than
trying to make this interface more formal, just make url_fetch set
$response_body to ''.  It does return this except in the success case,
so the error cases are still handled right.

Closes: #934126
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: examplegit: Call t-select-package
Ian Jackson [Thu, 8 Aug 2019 11:10:33 +0000 (12:10 +0100)]
test suite: examplegit: Call t-select-package

This can save our importers from havig to t-select-package themselves.

Drop the now-redundant call from the one importer that had it.
Various of the importers call t-archive-* or t-git-* that also call
t-select-package, but this is not a problem.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: Break out t-non-dgit-upload
Ian Jackson [Thu, 8 Aug 2019 11:32:16 +0000 (12:32 +0100)]
test suite: Break out t-non-dgit-upload

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: http-git-check: New provision
Ian Jackson [Thu, 8 Aug 2019 10:41:37 +0000 (11:41 +0100)]
test suite: http-git-check: New provision

Importing this makes us use a local http server for the git check.
It's a setup so that it can imply the http-git-check dependency.

Right now nothing imports this so no functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: Honour new DGIT_TEST_KEEP_MUSTCLEAN
Ian Jackson [Thu, 8 Aug 2019 10:38:58 +0000 (11:38 +0100)]
test suite: Honour new DGIT_TEST_KEEP_MUSTCLEAN

FTR, using this typically results in runes like

  DGIT_TEST_KEEP_MUSTCLEAN=y tests/using-intree tests/tests/ftpmasterapi-http 2>&1 | tee tests/tmp/log

hanging instead of exiting, because the http server is still running
and its stderr is still going to tee.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: Rename http-static-server from ftpmasterapi-
Ian Jackson [Thu, 8 Aug 2019 10:10:44 +0000 (11:10 +0100)]
test suite: Rename http-static-server from ftpmasterapi-

We are going to use this for other things too.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohttp[s] tests: Add http test case
Ian Jackson [Thu, 25 Jul 2019 02:52:53 +0000 (03:52 +0100)]
http[s] tests: Add http test case

Maybe we will turn this into a TLS test case in due course.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohttp[s] tests: Fix stdout handling in ftpmaster test server
Ian Jackson [Thu, 25 Jul 2019 18:30:51 +0000 (19:30 +0100)]
http[s] tests: Fix stdout handling in ftpmaster test server

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohttp[s] tests: More-or-less functional ftpmaster http server
Ian Jackson [Thu, 25 Jul 2019 01:54:59 +0000 (02:54 +0100)]
http[s] tests: More-or-less functional ftpmaster http server

Not used anywhere yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohttp[s] tests: Import and slightly hack example script
Ian Jackson [Thu, 25 Jul 2019 00:30:33 +0000 (01:30 +0100)]
http[s] tests: Import and slightly hack example script

This is basically a copy of some of the example code from the
HTTP::Server::Simple docs, hacked up with my own (so far) nonsense.

Add copyright info to file and d/copyright.  Upstream licence is
Artistic or GPL-1+.  We choose GPL-1+ and upgrade to GPL-3+.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: lib: Provide $tmp/must-clean directory to tests
Ian Jackson [Thu, 25 Jul 2019 18:01:44 +0000 (19:01 +0100)]
test suite: lib: Provide $tmp/must-clean directory to tests

This is a directory for things which should be removed on exit.
Currently there are none.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Slightly more debugging for check_for_git with http[s]
Ian Jackson [Thu, 8 Aug 2019 09:22:18 +0000 (10:22 +0100)]
dgit: Slightly more debugging for check_for_git with http[s]

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Fix a typo in the entry for 9.6
Ian Jackson [Thu, 8 Aug 2019 09:21:42 +0000 (10:21 +0100)]
changelog: Fix a typo in the entry for 9.6

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Document changes to enumerate-tests
Ian Jackson [Sat, 10 Aug 2019 23:09:07 +0000 (00:09 +0100)]
changelog: Document changes to enumerate-tests

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: enumerate-tests: Spot t-alt-test
Ian Jackson [Sat, 10 Aug 2019 22:54:44 +0000 (23:54 +0100)]
test suite: enumerate-tests: Spot t-alt-test

And find the dependencies of the referred-to test.  No functional
change since currently no chained-to test has any nonstandard
dependencies.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: enumerate-tests: gencontrol-add-things: restrictions
Ian Jackson [Sat, 10 Aug 2019 22:54:09 +0000 (23:54 +0100)]
test suite: enumerate-tests: gencontrol-add-things: restrictions

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: enumerate-tests: gencontrol-add-things: delim feature
Ian Jackson [Sat, 10 Aug 2019 22:53:47 +0000 (23:53 +0100)]
test suite: enumerate-tests: gencontrol-add-things: delim feature

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotest suite: enumerate-tests: Break out gencontrol-add-things
Ian Jackson [Sat, 10 Aug 2019 22:45:22 +0000 (23:45 +0100)]
test suite: enumerate-tests: Break out gencontrol-add-things

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Start 9.7
Ian Jackson [Thu, 25 Jul 2019 12:14:20 +0000 (13:14 +0100)]
changelog: Start 9.7

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Write and finalise for 9.6 archive/debian/9.6 debian/9.6
Ian Jackson [Thu, 25 Jul 2019 12:12:11 +0000 (13:12 +0100)]
changelog: Write and finalise for 9.6

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agogit-playtree-create: Drop an unwanted set -x
Ian Jackson [Thu, 25 Jul 2019 11:53:28 +0000 (12:53 +0100)]
git-playtree-create: Drop an unwanted set -x

Closes: #932959
Reported-by: Sean Whitton <spwhitton@spwhitton.name>
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodebian/control: Drop now unused dependency on libwww-perl.
Ian Jackson [Tue, 23 Jul 2019 20:50:56 +0000 (21:50 +0100)]
debian/control: Drop now unused dependency on libwww-perl.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit(1): Drop mention of LWP::UserAgent since we don't use it now
Ian Jackson [Tue, 23 Jul 2019 20:50:37 +0000 (21:50 +0100)]
dgit(1): Drop mention of LWP::UserAgent since we don't use it now

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Abolish url_get in favour of url_fetch
Ian Jackson [Tue, 23 Jul 2019 17:18:53 +0000 (18:18 +0100)]
dgit: Abolish url_get in favour of url_fetch

This removes use of LWP from dgit.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Use libcurl, not @curl, for git check
Ian Jackson [Tue, 23 Jul 2019 16:42:08 +0000 (17:42 +0100)]
dgit: Use libcurl, not @curl, for git check

This means that when we sort out our TLS problems this will be fixed
too.

The remaining use of command-line curl is just to download additional
.dsc compoments.  I intend to leave that as-is.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: url_fetch: Honour new CurlOpts
Ian Jackson [Tue, 23 Jul 2019 16:33:41 +0000 (17:33 +0100)]
dgit: url_fetch: Honour new CurlOpts

No functional change with the existing callers.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: url_fetch: Honour new AccessBase
Ian Jackson [Tue, 23 Jul 2019 16:33:16 +0000 (17:33 +0100)]
dgit: url_fetch: Honour new AccessBase

No functional change with the existing callers.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Reorganise url_fetch
Ian Jackson [Tue, 23 Jul 2019 16:26:51 +0000 (17:26 +0100)]
dgit: Reorganise url_fetch

This was archive_api_query_curl.  We're working on making it good for
other things too.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: libcurl usage: Install SIGPIPE handler ourselv
Ian Jackson [Tue, 23 Jul 2019 17:22:26 +0000 (18:22 +0100)]
dgit: libcurl usage: Install SIGPIPE handler ourselv

We don't want a global SIGPIPE setting.  In particular we do not want
to run any of subprocesses with SIGPIPE ignored.

Just in case libcurl gets this wrong, tell it CURLOPT_NOSIGNAL, and do
it ourselves.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Set $SIG{INT} to DEFAULT
Ian Jackson [Tue, 23 Jul 2019 20:47:57 +0000 (21:47 +0100)]
dgit: Set $SIG{INT} to DEFAULT

There is a bug in libdpkg-perl, where Dpkg::Source::Package installs a
handler on loading.  This has the effect of making in-process C
calls (eg to libcurl) uninterruptible by ^C.

Work around it by unconditionally resetting SIGINT.  (Anyone who
deliberately invoked us with SIGINT ignored deserves to keep all the
resulting pieces.)

See #932841.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: archive_api_query_curl: Add a bit of debug
Ian Jackson [Tue, 23 Jul 2019 16:06:38 +0000 (17:06 +0100)]
dgit: archive_api_query_curl: Add a bit of debug

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Use WWW::Curl rather than invoking curl(1) for archive api
Ian Jackson [Tue, 23 Jul 2019 15:35:01 +0000 (16:35 +0100)]
dgit: Use WWW::Curl rather than invoking curl(1) for archive api

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Drop support for old attempts at cert/key pinning
Ian Jackson [Tue, 23 Jul 2019 15:22:19 +0000 (16:22 +0100)]
dgit: Drop support for old attempts at cert/key pinning

I don't think anyone is using these.  We are going to do something
different to try fo fix #932570.

When #790093 is fixed we may need something like archive-query-tls-key
(or even exactly that) but we would have to reimplement it for
WWW::Curl anyway.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotag2upload: Use the non-readonly method for dgit fetch
Ian Jackson [Tue, 23 Jul 2019 15:03:49 +0000 (16:03 +0100)]
tag2upload: Use the non-readonly method for dgit fetch

The principal effect in the Debian configuration is to access the
master dgit git server via ssh, rather than the mirror via https.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Provide --for-push option
Ian Jackson [Tue, 23 Jul 2019 15:03:13 +0000 (16:03 +0100)]
dgit: Provide --for-push option

This is much more conveient and in some cases sensible than
 -cdgit-distro.DISTRO.readonly=0

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Make cmd_archive_api_query call api_query_raw
Ian Jackson [Tue, 23 Jul 2019 14:24:55 +0000 (15:24 +0100)]
dgit: Make cmd_archive_api_query call api_query_raw

In support of #932570.  Now there is only one caller of
archive_api_query_cmd.

It is OK to pass `undef' because
  - archive_

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Move $data check into api_query
Ian Jackson [Tue, 23 Jul 2019 14:27:51 +0000 (15:27 +0100)]
dgit: Move $data check into api_query

In support of #932570.  Our intended other caller doesn't have a
$data.  No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodgit: Break out api_query_raw
Ian Jackson [Tue, 23 Jul 2019 14:18:22 +0000 (15:18 +0100)]
dgit: Break out api_query_raw

In support of #932570.  No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Add missing Closes of #932476 to changelog entry for 9.5
Ian Jackson [Tue, 23 Jul 2019 14:06:16 +0000 (15:06 +0100)]
changelog: Add missing Closes of #932476 to changelog entry for 9.5

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: start 9.6
Sean Whitton [Mon, 22 Jul 2019 20:42:03 +0000 (21:42 +0100)]
changelog: start 9.6

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
4 years agochangelog: finalise 9.5 archive/debian/9.5 debian/9.5
Sean Whitton [Mon, 22 Jul 2019 20:38:22 +0000 (21:38 +0100)]
changelog: finalise 9.5

4 years agochangelog: Bug close syntax fix
Sean Whitton [Mon, 22 Jul 2019 20:38:02 +0000 (21:38 +0100)]
changelog: Bug close syntax fix

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
4 years agochangelog: Minor fixes
Ian Jackson [Mon, 22 Jul 2019 16:20:36 +0000 (17:20 +0100)]
changelog: Minor fixes

Mention two omitted bug Closes.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Mention Vcs-Git change
Ian Jackson [Mon, 22 Jul 2019 16:14:55 +0000 (17:14 +0100)]
changelog: Mention Vcs-Git change

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>