chiark / gitweb /
dgit.git
2 years agoDgit.pm: Call `confess' when shellquote gets an undef arg
Ian Jackson [Wed, 18 Jan 2017 21:28:25 +0000 (21:28 +0000)]
Dgit.pm: Call `confess' when shellquote gets an undef arg

This can happen if a command (eg passed to debugcmd) has an undef
argument.  This turns an undefined warning into an explicit internal
error.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: start 3.6~
Ian Jackson [Wed, 18 Jan 2017 18:15:18 +0000 (18:15 +0000)]
changelog: start 3.6~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: finalise 3.5 archive/debian/3.5 debian/3.5
Ian Jackson [Tue, 17 Jan 2017 22:36:28 +0000 (22:36 +0000)]
changelog: finalise 3.5

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: gardening
Ian Jackson [Tue, 17 Jan 2017 13:04:51 +0000 (13:04 +0000)]
changelog: gardening

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Call t-ok.
Ian Jackson [Tue, 17 Jan 2017 13:03:18 +0000 (13:03 +0000)]
test suite: gitattributes: Call t-ok.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: More testing of clone: check for message (#851624)
Ian Jackson [Tue, 17 Jan 2017 13:03:07 +0000 (13:03 +0000)]
test suite: gitattributes: More testing of clone: check for message (#851624)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: clonee: Do setup_new_tree earlier.
Ian Jackson [Tue, 17 Jan 2017 13:01:50 +0000 (13:01 +0000)]
dgit: clonee: Do setup_new_tree earlier.

This avoids printing a spurious warning about actually-defused
gitattributes when cloning.  Closes:#851624.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: More testing of clone: check good clone
Ian Jackson [Tue, 17 Jan 2017 12:59:25 +0000 (12:59 +0000)]
test suite: gitattributes: More testing of clone: check good clone

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: work around git attribute updates bug
Ian Jackson [Tue, 17 Jan 2017 21:52:34 +0000 (21:52 +0000)]
test suite: gitattributes: work around git attribute updates bug

touch af/*, to work around #851713

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: More testing of clone: check sums
Ian Jackson [Tue, 17 Jan 2017 12:55:33 +0000 (12:55 +0000)]
test suite: gitattributes: More testing of clone: check sums

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Start to test clone
Ian Jackson [Tue, 17 Jan 2017 12:54:24 +0000 (12:54 +0000)]
test suite: gitattributes: Start to test clone

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Break out sums_check_broken
Ian Jackson [Tue, 17 Jan 2017 12:53:47 +0000 (12:53 +0000)]
test suite: gitattributes: Break out sums_check_broken

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Defuse gitattributes in private working area, always
Ian Jackson [Tue, 17 Jan 2017 12:49:44 +0000 (12:49 +0000)]
dgit: Defuse gitattributes in private working area, always

Even if we don't do it in the user's tree because config
setup-gitattributes=false.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Improve comment left in .git/info/attributes.
Ian Jackson [Tue, 17 Jan 2017 12:45:05 +0000 (12:45 +0000)]
dgit: Improve comment left in .git/info/attributes.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Check that warning does not appear when unexpected
Ian Jackson [Tue, 17 Jan 2017 12:42:39 +0000 (12:42 +0000)]
test suite: gitattributes: Check that warning does not appear when unexpected

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Break out t-dgit-warn-check
Ian Jackson [Tue, 17 Jan 2017 12:37:32 +0000 (12:37 +0000)]
test suite: gitattributes: Break out t-dgit-warn-check

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Break out wd= setting
Ian Jackson [Tue, 17 Jan 2017 12:33:04 +0000 (12:33 +0000)]
test suite: gitattributes: Break out wd= setting

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Test that checkout is good too
Ian Jackson [Tue, 17 Jan 2017 12:30:38 +0000 (12:30 +0000)]
test suite: gitattributes: Test that checkout is good too

2 years agotest suite: gitattributes: Break out sums_check
Ian Jackson [Tue, 17 Jan 2017 12:25:53 +0000 (12:25 +0000)]
test suite: gitattributes: Break out sums_check

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Rename $branch (from $refname)
Ian Jackson [Tue, 17 Jan 2017 12:24:39 +0000 (12:24 +0000)]
test suite: gitattributes: Rename $branch (from $refname)

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Move setting of sums
Ian Jackson [Tue, 17 Jan 2017 12:23:54 +0000 (12:23 +0000)]
test suite: gitattributes: Move setting of sums

Fixes some of the working filenames.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Call t-git-none
Ian Jackson [Tue, 17 Jan 2017 12:19:02 +0000 (12:19 +0000)]
test suite: gitattributes: Call t-git-none

This is preparatory to testing clone.  No significant effect right
now.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Break out origtar= setting
Ian Jackson [Tue, 17 Jan 2017 12:16:06 +0000 (12:16 +0000)]
test suite: gitattributes: Break out origtar= setting

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Fix a ----- message
Ian Jackson [Tue, 17 Jan 2017 12:13:37 +0000 (12:13 +0000)]
test suite: gitattributes: Fix a ----- message

No significant change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Break out dscf= setting
Ian Jackson [Tue, 17 Jan 2017 12:13:17 +0000 (12:13 +0000)]
test suite: gitattributes: Break out dscf= setting

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: start 3.5~
Ian Jackson [Tue, 17 Jan 2017 12:09:21 +0000 (12:09 +0000)]
changelog: start 3.5~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: finalise 3.4 archive/debian/3.4 debian/3.4
Ian Jackson [Mon, 16 Jan 2017 17:27:50 +0000 (17:27 +0000)]
changelog: finalise 3.4

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: worktrees: Replace references to /home/ian
Ian Jackson [Mon, 16 Jan 2017 15:48:24 +0000 (15:48 +0000)]
test suite: worktrees: Replace references to /home/ian

Replace with references to /nonexistent, to catch inadvertant
accesses.

Now `git-grep /home/ian' produces only one hit - in a commit message,
where it's harmless.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite; drs-push-rejects: Set origin's url
Ian Jackson [Mon, 16 Jan 2017 16:00:21 +0000 (16:00 +0000)]
test suite; drs-push-rejects: Set origin's url

Use an ad-hoc expression which produces the right ext:: rune, as dgit
would.

Closes:#851580.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: start 3.4~
Ian Jackson [Mon, 16 Jan 2017 15:42:48 +0000 (15:42 +0000)]
changelog: start 3.4~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: finalise 3.3 archive/debian/3.3 debian/3.3
Ian Jackson [Mon, 16 Jan 2017 10:03:28 +0000 (10:03 +0000)]
changelog: finalise 3.3

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: try to guess some attr names from manpage
Ian Jackson [Mon, 16 Jan 2017 01:43:19 +0000 (01:43 +0000)]
test suite: gitattributes: try to guess some attr names from manpage

This may allow the test suite to detect if git gains new attributes.
The worst case is that we add unknown attributes to our test package.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: Document gitattributes handling
Ian Jackson [Mon, 16 Jan 2017 01:31:55 +0000 (01:31 +0000)]
changelog: Document gitattributes handling

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit(1): gitattributes: Document dgit-distro.distro.setup-gitattributes
Ian Jackson [Mon, 16 Jan 2017 01:29:54 +0000 (01:29 +0000)]
dgit(1): gitattributes: Document dgit-distro.distro.setup-gitattributes

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agogitattributes: Docs and message wordsmithing
Ian Jackson [Sun, 15 Jan 2017 22:45:31 +0000 (22:45 +0000)]
gitattributes: Docs and message wordsmithing

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Check for expected warnings
Ian Jackson [Sun, 15 Jan 2017 22:50:03 +0000 (22:50 +0000)]
test suite: gitattributes: Check for expected warnings

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agogitattributes: Issue a warning on un-defused .gitattributes
Ian Jackson [Mon, 16 Jan 2017 01:11:51 +0000 (01:11 +0000)]
gitattributes: Issue a warning on un-defused .gitattributes

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Remove .git from orig
Ian Jackson [Sun, 15 Jan 2017 22:50:12 +0000 (22:50 +0000)]
test suite: gitattributes: Remove .git from orig

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: test unsetup tree, too
Ian Jackson [Sun, 15 Jan 2017 22:19:55 +0000 (22:19 +0000)]
test suite: gitattributes: test unsetup tree, too

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Test source format 1.0 with diff
Ian Jackson [Sun, 15 Jan 2017 18:24:40 +0000 (18:24 +0000)]
test suite: gitattributes: Test source format 1.0 with diff

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: Reorganise and improve, still wip
Ian Jackson [Sun, 15 Jan 2017 12:19:35 +0000 (12:19 +0000)]
test suite: gitattributes: Reorganise and improve, still wip

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: gitattributes: new test, still wip
Ian Jackson [Sat, 14 Jan 2017 23:08:37 +0000 (23:08 +0000)]
test suite: gitattributes: new test, still wip

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agogitattributes: dgit: setup-gitattributes: New action
Ian Jackson [Sun, 15 Jan 2017 22:45:09 +0000 (22:45 +0000)]
gitattributes: dgit: setup-gitattributes: New action

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agogitattributes: Suppress transformations in our cloned trees
Ian Jackson [Mon, 16 Jan 2017 01:10:03 +0000 (01:10 +0000)]
gitattributes: Suppress transformations in our cloned trees

The user wants a checkout of the actual source tree, so that their
checkout and the source package are identical.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agogitattributes: Suppress transformations in ud
Ian Jackson [Mon, 16 Jan 2017 01:05:37 +0000 (01:05 +0000)]
gitattributes: Suppress transformations in ud

We want all of our own manipulations to be unaffected by gitattributes
transformations, so that the imported git *trees* are identical to the
source packages.  (Ie, if transformations are in effect, the
*checkout* of such a tree might not be identical to the source
package.)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: gitattributes: Provide setup_gitattrs (internal function)
Ian Jackson [Mon, 16 Jan 2017 01:04:25 +0000 (01:04 +0000)]
dgit: gitattributes: Provide setup_gitattrs (internal function)

This is the idempotent function which adds the appropriate runes to
.git/info/attributes.  No callers yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agogitattributes: dgit(7): Document our approach and rationale
Ian Jackson [Mon, 16 Jan 2017 01:07:50 +0000 (01:07 +0000)]
gitattributes: dgit(7): Document our approach and rationale

This is not properly implemented yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: import_dsc: Break out import_dsc_result
Ian Jackson [Sun, 15 Jan 2017 18:36:47 +0000 (18:36 +0000)]
dgit: import_dsc: Break out import_dsc_result

No functional change other than slight change to messages.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Remove redundant use of List::Util qw(any). Closes:#851280.
Ian Jackson [Fri, 13 Jan 2017 18:33:42 +0000 (18:33 +0000)]
dgit: Remove redundant use of List::Util qw(any).  Closes:#851280.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: protocol-compat: check that we use the right distro
Ian Jackson [Fri, 13 Jan 2017 17:59:11 +0000 (17:59 +0000)]
test suite: protocol-compat: check that we use the right distro

* Set distro to '' when running the import.  This makes dgit fall back
  to the default distro.

* Set the default distro to `foreign' (which has no settings, so we
  use builtin defaults).  This only has any effect if the shell
  variable `distro' is set to the empty string - so it only takes
  effect during the import.

* Set dgit-distro.foreign.cmd-git to false.  This therefore detects if
  we ever try to do the import with the default distro's `git'
  command: we are supposed to be using the one from the .dsc.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Option parsing: Fix undefined $suite in some import-dsc.
Ian Jackson [Fri, 13 Jan 2017 13:50:15 +0000 (13:50 +0000)]
dgit: Option parsing: Fix undefined $suite in some import-dsc.

* Set $isuite to a dummy value.  In import-dsc we aren't operating on
  a suite.  We have to set it to something (because the config likes
  to look at the suite) and this avoids picking up information
  relating to the default suite.

* Set $idistro (if -d not supplied) to the distro from (or implied by)
  the .dsc.  This is needed so that we do not use any config from the
  default distro.  In particular, the default commands (like what
  `git' command to use to access the dgit git server) need to be found
  via the dsc's distro's cmd-git setting, and this is done by
  parseopts_late_defaults() in pushing().  So we must set $idistro
  before then.

* Move notpushing earlier, so that we call it before we call
  resolve_dsc_field_commit().  (It doesn't matter there for $idistro,
  because it sets that itself, but the git command does.)

Closes:#851213.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: Internal change: fix handling of nonempty distro=
Ian Jackson [Fri, 13 Jan 2017 17:43:28 +0000 (17:43 +0000)]
test suite: Internal change: fix handling of nonempty distro=

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: defdistro-import-dsc: Drop this test.
Ian Jackson [Fri, 13 Jan 2017 17:36:07 +0000 (17:36 +0000)]
test suite: defdistro-import-dsc: Drop this test.

import-dsc *should* access the default distro for cmd-dgit et al.
(Many of the things in parseopts_late_defaults.)

Checking that we use the right distro config is going to be done
shortly by protocol-compat.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Set default dsc import distro when suppressing Dgit field.
Ian Jackson [Fri, 13 Jan 2017 17:27:32 +0000 (17:27 +0000)]
dgit: Set default dsc import distro when suppressing Dgit field.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Break out parse_dsc_field_def_dsc_distro as global sub
Ian Jackson [Fri, 13 Jan 2017 17:27:03 +0000 (17:27 +0000)]
dgit: Break out parse_dsc_field_def_dsc_distro as global sub

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Set default dsc import distro when there is no Dgit field.
Ian Jackson [Fri, 13 Jan 2017 17:17:42 +0000 (17:17 +0000)]
dgit: Set default dsc import distro when there is no Dgit field.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: parse_dsc_field: Break out $def_dsc_distro
Ian Jackson [Fri, 13 Jan 2017 17:01:50 +0000 (17:01 +0000)]
dgit: parse_dsc_field: Break out $def_dsc_distro

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: default dsc distro config setting: Move to lib.
Ian Jackson [Fri, 13 Jan 2017 17:00:49 +0000 (17:00 +0000)]
test suite: default dsc distro config setting: Move to lib.

We need this for the .dscs we have in tests/pkg-srcs/.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Remove a leftover debugging print.
Ian Jackson [Fri, 13 Jan 2017 13:49:25 +0000 (13:49 +0000)]
dgit: Remove a leftover debugging print.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoPackaging: Remove redundant Recommends on libtext-iconv-perl.
Ian Jackson [Thu, 12 Jan 2017 02:16:23 +0000 (02:16 +0000)]
Packaging: Remove redundant Recommends on libtext-iconv-perl.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: start 3.3~
Ian Jackson [Thu, 12 Jan 2017 02:16:01 +0000 (02:16 +0000)]
changelog: start 3.3~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: finalise 3.2 archive/debian/3.2 debian/3.2
Ian Jackson [Thu, 12 Jan 2017 02:11:45 +0000 (02:11 +0000)]
changelog: finalise 3.2

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: tidy up
Ian Jackson [Thu, 12 Jan 2017 01:37:34 +0000 (01:37 +0000)]
changelog: tidy up

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Fix a warning message about ref (mainly, tag) updates.
Ian Jackson [Fri, 6 Jan 2017 20:25:32 +0000 (20:25 +0000)]
dgit: Fix a warning message about ref (mainly, tag) updates.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Fix a typo in a comment.
Ian Jackson [Fri, 6 Jan 2017 17:02:29 +0000 (17:02 +0000)]
dgit: Fix a typo in a comment.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit-user(7): Fix some more typos
Ian Jackson [Wed, 4 Jan 2017 01:27:41 +0000 (01:27 +0000)]
dgit-user(7): Fix some more typos

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agooption parsing: Rework --dep14tag options, introducing `defoptmodes'
Ian Jackson [Wed, 21 Dec 2016 21:46:22 +0000 (21:46 +0000)]
option parsing: Rework --dep14tag options, introducing `defoptmodes'

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit-user(7): Fix some typos.
Ian Jackson [Wed, 21 Dec 2016 14:13:40 +0000 (14:13 +0000)]
dgit-user(7): Fix some typos.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: Mention #850953
Ian Jackson [Thu, 12 Jan 2017 01:05:31 +0000 (01:05 +0000)]
changelog: Mention #850953

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: Document dgit-maint-merge change
Ian Jackson [Thu, 12 Jan 2017 00:05:39 +0000 (00:05 +0000)]
changelog: Document dgit-maint-merge change

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit-maint-merge(7): Use git-deborig(1)
Sean Whitton [Wed, 11 Jan 2017 15:31:54 +0000 (08:31 -0700)]
dgit-maint-merge(7): Use git-deborig(1)

Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
2 years agotest suite: mirror-private: test that package becomes public. (#849789)
Ian Jackson [Thu, 12 Jan 2017 00:03:27 +0000 (00:03 +0000)]
test suite: mirror-private: test that package becomes public.  (#849789)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit-repos-policy-debian: Remirror a package when it becomes public
Ian Jackson [Thu, 12 Jan 2017 00:02:27 +0000 (00:02 +0000)]
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.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoinfra: mirroring and policy hooks: Provide ((( ))) banners
Ian Jackson [Thu, 12 Jan 2017 00:00:40 +0000 (00:00 +0000)]
infra: mirroring and policy hooks: Provide ((( ))) banners

When we invoke these, this makes their output easier to find in the
middle of the test suite debug scrool.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Do not execute END blocks in children.
Ian Jackson [Wed, 11 Jan 2017 23:31:37 +0000 (23:31 +0000)]
dgit: Do not execute END blocks in children.

END blocks run inside children created by fork or piped open (the
latter, if they run perl code), on exit or (I think maybe) die.  This
is far from appropriate.

So far symptoms of this bug seem to be limited to duplicated error
messages but I have not done a thorough analysis.  Closes:#850052.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Call forkcheck_setup in multisuite children
Ian Jackson [Thu, 12 Jan 2017 00:23:20 +0000 (00:23 +0000)]
dgit: Call forkcheck_setup in multisuite children

We want execute our SIGWARN handler in these explicitly created
children.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoDgit: forkcheck_*: break out from setup_sigwarn
Ian Jackson [Wed, 11 Jan 2017 23:15:11 +0000 (23:15 +0000)]
Dgit: forkcheck_*: break out from setup_sigwarn

Other places are going to want this too, notably END blocks.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: start 3.2~
Ian Jackson [Wed, 11 Jan 2017 23:14:48 +0000 (23:14 +0000)]
changelog: start 3.2~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: finalise 3.1 archive/debian/3.1 debian/3.1
Ian Jackson [Tue, 10 Jan 2017 17:50:39 +0000 (17:50 +0000)]
changelog: finalise 3.1

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: Arrange not to overwrite .save-env on t-chain-test
Ian Jackson [Tue, 10 Jan 2017 17:00:42 +0000 (17:00 +0000)]
test suite: Arrange not to overwrite .save-env on t-chain-test

We want .save-env to be the env on entry to the original test, not
on execution of t-chain-test with a modified environment.

Without this the effects of t-defdistro might leak into the execution
of tests/setup/examplegit.  This is no good because
tests/setup/examplegit relies in the -dtest-dummy which is our usual
dgit runes.  (Or to put it another way, examplegit uses many suites
which are not (yet) set up properly by t-defdistro.)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: buile_prep_early: Call notpushing() after getting $isuite
Ian Jackson [Tue, 10 Jan 2017 15:34:06 +0000 (15:34 +0000)]
dgit: buile_prep_early: Call notpushing() after getting $isuite

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: dsc download handling: save as ,fetch if need be
Ian Jackson [Tue, 10 Jan 2017 14:22:55 +0000 (14:22 +0000)]
dgit: dsc download handling: save as ,fetch if need be

* Pass \$refetched to complete_file_from_dsc, so that we refetch files
  whose hashes are wrong.

* When saving files we refetched, save them as F,fetch if saving them
  as F gives EEXIST.  So we can save refetched files.

* When looking for files to reuse, look for F,fetch first.

We do this only here in generate_commits_from_dsc, not in
ensure_we_have_orig.  This is because, in practice, this all won't be
very effective for origs which need to be referred to by various
.dscs.

The main use case is when the user did a build without changing the
version number.  This would otherwise break fetch: Closes:#850824.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: complete_file_from_dsc: Introduce $refetched
Ian Jackson [Tue, 10 Jan 2017 14:34:08 +0000 (14:34 +0000)]
dgit: complete_file_from_dsc: Introduce $refetched

Make have a option which, if set, causes hash mismatches to result in
a refetch rather than a crash.

No functional change because no call sites pass it.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: complete_file_from_dsc: Reorganise $fetchhash
Ian Jackson [Tue, 10 Jan 2017 14:28:58 +0000 (14:28 +0000)]
dgit: complete_file_from_dsc: Reorganise $fetchhash

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: complete_file_from_dsc: Introduce $checkhash
Ian Jackson [Tue, 10 Jan 2017 14:26:38 +0000 (14:26 +0000)]
dgit: complete_file_from_dsc: Introduce $checkhash

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: generate_commits_from_dsc: Introduce $upper_f
Ian Jackson [Tue, 10 Jan 2017 14:10:50 +0000 (14:10 +0000)]
dgit: generate_commits_from_dsc: Introduce $upper_f

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: Fix entry referring twice to refs/dgit-fetch/DISTRO
Ian Jackson [Tue, 10 Jan 2017 13:45:35 +0000 (13:45 +0000)]
changelog: Fix entry referring twice to refs/dgit-fetch/DISTRO

Reported-by: Sean Whitton <spwhitton@spwhitton.name>
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: After downloading .debian.* files, save them in `..', too
Ian Jackson [Tue, 10 Jan 2017 13:43:10 +0000 (13:43 +0000)]
dgit: After downloading .debian.* files, save them in `..', too

Ie do this not just for .origs.  We don't want the user needlessly
re-downloading them on each fetch.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: defdistro-import-dsc: New test
Ian Jackson [Tue, 10 Jan 2017 13:29:26 +0000 (13:29 +0000)]
test suite: defdistro-import-dsc: New test

Add test for import-dsc with default distro.  (Detects #850781.)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: import-dsc: Add missing call to notpushing().
Ian Jackson [Tue, 10 Jan 2017 13:28:21 +0000 (13:28 +0000)]
dgit: import-dsc: Add missing call to notpushing().

Avoids crashing with undefined $isuite.  Closes:#850781.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: Do not nedlessly re-fetch the rewrite map.
Ian Jackson [Mon, 9 Jan 2017 17:42:40 +0000 (17:42 +0000)]
dgit: Do not nedlessly re-fetch the rewrite map.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: start 3.1
Ian Jackson [Mon, 9 Jan 2017 17:42:02 +0000 (17:42 +0000)]
changelog: start 3.1

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agochangelog: finalise 3.0 archive/debian/3.0 debian/3.0
Ian Jackson [Mon, 9 Jan 2017 17:37:09 +0000 (17:37 +0000)]
changelog: finalise 3.0

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: defdistro-mirror: Add missing dependency
Ian Jackson [Mon, 9 Jan 2017 17:12:00 +0000 (17:12 +0000)]
test suite: defdistro-mirror: Add missing dependency

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: defdistro-rpush: Remove workaround for missing isuite param
Ian Jackson [Mon, 9 Jan 2017 16:15:52 +0000 (16:15 +0000)]
test suite: defdistro-rpush: Remove workaround for missing isuite param

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: rpush: Use $isuite for $isuite, not $csuite
Ian Jackson [Mon, 9 Jan 2017 16:14:21 +0000 (16:14 +0000)]
dgit: rpush: Use $isuite for $isuite, not $csuite

Send isuite as a parameter, and use it if it's provided, instead of
csuite.  This means config lookups like
    dgit-distro.SUITE.distro
only need the user-provided suite name (eg `unstable'), and don't need
to be duplicated for the canonical name (eg `sid').

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: Test that default distro works
Ian Jackson [Mon, 9 Jan 2017 16:11:32 +0000 (16:11 +0000)]
test suite: Test that default distro works

Ie check that dgit-distro.SUITE.distro works

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agotest suite: Provide t-defdistro (for use with t-alt-test)
Ian Jackson [Mon, 9 Jan 2017 16:10:16 +0000 (16:10 +0000)]
test suite: Provide t-defdistro (for use with t-alt-test)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: $isuite handling: Defer calls to access_* until first `want'
Ian Jackson [Mon, 9 Jan 2017 16:07:15 +0000 (16:07 +0000)]
dgit: $isuite handling: Defer calls to access_* until first `want'

pushing, rpush_handle_protovsn_bothends, and quiltmode, all depend on
access_*.  For that we need $isuite, but we only get that (in the form
of $csuite) from the build host.

We can move all of these calls into i_resp_want, which is called the
first time the build host actually wants something from us.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodgit: $isuite fixes: defer pushing and rpush_handle_protovsn_bothends in rpush
Ian Jackson [Mon, 9 Jan 2017 16:03:45 +0000 (16:03 +0000)]
dgit: $isuite fixes: defer pushing and rpush_handle_protovsn_bothends in rpush

We mustn't call pushing until we have parsed the arguments enough to
find $isuite.  So remove the call to pushing from
cmd_remote_push_build_host.  Now we rely on cmd_push's call to
pushing, which it does after the argument parsing.

We then need to move rpush_handle_protovsn_bothends (which implicitly
calls accesss_*) too, until we have got $isuite and called pushing().
We can move that into dopush.

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