summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* dgit: fix rpush+buildinfo: Transfer buildinfos for signing.Ian Jackson2017-07-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | buildinfos are supposed to be signed. And, indeed, if they are present, debsign wants to sign them. That means they need to be transferred to the signing end, and back again. We check that the filename is not totally unreasonable, but do not attempt to verify it completely. If there are situations where unwanted or confusing buildinfos are generated, this is the fault of the build process. dgit rpush should, in this respect, do the same as debsign+dput - ie faithfully sign and upload what the build has provided. We do check that the buildinfo doesn't look too much like a .changes, and mentions the same files as the .changes (insofar as they mention files in common). This is a rather nugatory defence against some kinds of bait and switch attacks. This is in some sense an incompatible protocol change: if the build host has a new dgit, and sends buildinfos, an old dgit on the initiator will declare a protocol violation. However, the new protocol elements occur only when needed. in this situation, the only way to get things to work at all with the old dgit at either end would be to strip out the buildinfos, which is obviously undesirable. Closes:#867693. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* rpush: break out @rfiles in dopushIan Jackson2017-07-08
| | | | | | | | | This very slight refactoring makes it easier to add additional files here, and also factors out the appending of $dryrunsuffix to each one. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: start 3.11~Ian Jackson2017-02-12
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: finalise 3.10debian/3.10archive/debian/3.10Ian Jackson2017-02-06
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Update for docs fixesNicholas D Steeves2017-02-05
| | | | Signed-off-by: Nicholas D Steeves <nsteeves@gmail.com>
* docs: Fix typosNicholas D Steeves2017-02-05
| | | | Signed-off-by: Nicholas D Steeves <nsteeves@gmail.com>
* import-maintmangle: New test for changelog Maintainer mangling.Ian Jackson2017-02-05
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* lib-import-chk: New import_chk_changelog_massage hookIan Jackson2017-02-05
| | | | | | Nothing sets this yet, so no functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: importing: Better handle commas in changelog maintainer fieldsIan Jackson2017-02-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some maintainers have written commas in the maintainer field of their changelog entries. Such changelog entries could not be imported. clogp_authline had code to replace multiple maintainers (which are hypothetical right now) into just the first, but that trips on these maintainers with commas. Ultimately we should expect that the Maintainer: field from dpkg-parsechangelog is in (a subset of) RFC5322 recipient field format. In that format, any commas would need to be quoted. So: If the Maintainer field from dpkg-parsechangelog has a comma which has no @ or " before it, then we consider it a single old-school comma-containing maintainer. If it were intended as multiple maintainers, then the first maintainer has no email address. Not coping properly with that very-hypothetical future seems OK. We simply delete the comma, so that the things we record in the git history are more conservative. If there is a " we leave things untouched in the hope that this is a single address, albeit with some quoting. The alternative would be to try to use a full RFC5322 parser. That's quite a risky change. Perhaps we will revisit this after stretch. For now this Closes:#852661. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: lib-import-chk: Test commit authorshipIan Jackson2017-02-05
| | | | | | | Check that commits have smae authorship as appears in the changelog. (Or, at least, the same authorship set.) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Do not fail when run with detached HEAD. Closes:#853022.Ian Jackson2017-02-05
| | | | | | | | | | | | | | Specifically: * Pass -q to git-symbolic-ref. That means that it doesn't print an error message when HEAD is not a symbolic ref (ie, a detached head), and it means that the exit status is then 1 rather than 128. * If the return value from cmdoutput_errok is undef, check $? (which is the exit status <<8) and then simply pass on the undef. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: branchsuite: Break out @cmdIan Jackson2017-02-05
| | | | | | | | We are going to need to reuse this to print a proper error message. No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Strip initial newline from Changes line from dpkg-parsechangelogIan Jackson2017-02-05
| | | | | | so as to avoid blank line in commit messages. Closes:#853093. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: quilt-useremail: New test for user config copyingIan Jackson2017-02-05
| | | | | | Test for #853085. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Copy several user.* settings from main tree git local configIan Jackson2017-02-05
| | | | | | Copy to dgit private workarea. Closes:#853085. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: start 3.10~Ian Jackson2017-02-04
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: finalise 3.9debian/3.9archive/debian/3.9Ian Jackson2017-01-25
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-merge(7): Quote sample clone commandsSean Whitton2017-01-25
| | | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name> Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-merge(7): Get git clone url right. Closes:#852609.Ian Jackson2017-01-25
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: overwrite-chkclog: test UNRELEASED handling.Ian Jackson2017-01-25
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit --overwrite: Check $gf->('Distribution')Ian Jackson2017-01-25
| | | | | | | | | | | | | Check that the overwritten version's changelog entry is not UNRELEASED. This could easily happen if this release was being made from a git branch which predates the previous package upload, with working practices which commit finalised UNRELEASED changelog entries with the complete version number for the next upload. (Such practices seem quite common.) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* pseudomerge_version_check; Break out $gfIan Jackson2017-01-25
| | | | | | No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: start 3.9~Ian Jackson2017-01-25
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: finalise 3.8debian/3.8archive/debian/3.8Ian Jackson2017-01-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: defdistro-setup: Test that setup-* functions distro selection works.Ian Jackson2017-01-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: t-defdistro: Set distro='' tooIan Jackson2017-01-23
| | | | | | | This means that t-defdistro works without t-chain-test and reinvocation. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* config and suite handling: Make dgit-setup-* work in default distro.Ian Jackson2017-01-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: start 3.8~Ian Jackson2017-01-23
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* finalise 3.7debian/3.7archive/debian/3.7Ian Jackson2017-01-22
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Documemnt dgit-maint-merge changesIan Jackson2017-01-22
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-merge(7): updates re #852090: suggestions by SeanIan Jackson2017-01-22
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-merge(7): updates re #852090: suggestions by meIan Jackson2017-01-22
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-merge(7): updates re #852090: suggestions by meIan Jackson2017-01-22
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-merge(7): updates re #852090: suggestions by meIan Jackson2017-01-22
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-merge(7): Fix a typo `detachs'Ian Jackson2017-01-21
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Makefile: New %.view target:Ian Jackson2017-01-21
| | | | | | `make dgit-maint-merge.7.view' runs `man -l ...' Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: defdistro-dsd-clone-drs: New testIan Jackson2017-01-21
| | | | | | Would have detected #851906 (and hopefully #850521). Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Document fixes to repos_server_urlIan Jackson2017-01-19
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: repos_server_url: Set $access_forpush to 1Ian Jackson2017-01-19
| | | | | | | | | | | In 468edf05661e "dgit: clone-dgit-repos-server: Set $access_forpush" we set this to 0. But this is wrong. The dgit-repos-server is used for pushing, not for readonly access. The readonly url may be entirely wrong, and indeed it is, for Debian. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: repos_server_url: Set $isuiteIan Jackson2017-01-19
| | | | | | | | We need to set this or access_*() fails. Set it to a dummy value. The user will need to specify -d to get the server for a non-default distro, which is hopefully obvious. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: repos_server_url(): Break outIan Jackson2017-01-19
| | | | | | No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: start 3.7~Ian Jackson2017-01-19
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: finalise 3.6debian/3.6archive/debian/3.6Ian Jackson2017-01-19
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: aptget archive access methodPeter Michael Green2017-01-19
| | | | | Add dummy implementation of file_in_archive_aptget copied from file_in_archive_dummycat. Re:#851697.
* infrastructure: Do not reject commits with no author/committer nameIan Jackson2017-01-18
| | | | | | | | | | | But still insist on email address and date). Peter Green reports that eg 71e128629ec786f3 in upstream xen.git is such a commit (and is accepted by github). Closes:#851716. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* infrastructure: Properly honour NOCOMMITCHECK policy hook exit status.Ian Jackson2017-01-18
| | | | | | Closes:#851800. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: downstream-gitless: Test import of .dsc with unsafe url.Ian Jackson2017-01-18
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: downstream-gitless: Test import of .dsc from unknown distro.Ian Jackson2017-01-18
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: git_lrfetch_sane: Take $url, and pass it right value in importIan Jackson2017-01-18
| | | | | | | This means we actually use the url from a Dgit .dsc field naming an unknown distro. Closes:#851728. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: git_get_config: Use confess, not croakIan Jackson2017-01-18
| | | | | | Using croak was simply a mistake. I always wanted a stack trace. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>