lp:debian/dgit
- Get this branch:
- bzr branch lp:debian/dgit
Branch information
- Owner:
- Ubuntu branches
- Status:
- Development
Recent revisions
- 29. By Ian Jackson
-
Bugfixes:
* Unbreak --dry-run (`exiting subroutine via next', broken in
ac221d67, bug released in 0.22).
* When running git-add in commit-quilty- patch, properly escape
filenames (which git-add treats as glob patterns).
* When running git-add in commit-quilty- patch, use -f and sometimes -A,
so as to avoid being broken by any .gitignore, etc.
* When quilt linearisation fails, print the right information in
the error message. (This has been broken forever.)
* Cope properly with `3.0 (quilt)' with single-debian- patch.
Closes:#796016. (Still does not work with wheezy's dpkg-source, so
no test case yet.)
* With dgit sbuild, pass our -d before the user's arguments, so that
the user can override it. Closes:#796019.New checks and improved behaviours:
* Detect and reject git trees containing debian/source/ local-options
or debian/source/ local-patch- header.
* In --dry-run mode, _do_ actually run dpkg-source --commit so that we
actually do construct the quilt fixup commit; instead, honour
--dry-run by avoiding pulling it back to your HEAD.
* quilt-fixup checks that the git tree is clean, as for build-prep.Documentation:
* In dgit(7), discuss binaries and documentation present in upstream but
removed by rules clean.Test suite:
* Run quilt-fixup with -wgf in distropatches-reject,
so that we don't need build-depends. - 28. By Ian Jackson
-
Important bugfixes:
* In option parser test `@ARGV' not `length @ARGV'. Closes:#795710.
* Properly quote package name when constructing regexp in
complete_file_from_ dsc. Closes:#795736. Also, grep the code for
likely similar problems elsewhere and improve a (harmless) instance in
dgit-repos-server. Other improvements:
* If a .orig in .. is a symlink, hardlink the link target into our
private unpack directory, rather than the link itself (since latter
won't work if the symlink is relative). Closes:#795665.
* Test suite: Fix t-restriction-x-dgit- schroot- build in non-adt mode.
* Infrastructure: Improve an error message in dgit-repos-policy- debian. - 27. By Ian Jackson
-
Improvements:
* Honour *.clean-mode configuration setting for --clean= mode.
* No longer require option values to be cuddled: support `--opt val' and
`-o val'. Closes:#763332.Manpages:
* Fix typos.
* Document that tags are in DEP-14 format, and that they
are used for authenticating pushes.
* Correct cross-reference to point to browse.d.d.o.
* Move dgit.default.* to main CONFIGURATION section.Administrivia:
* Add missing close of #793060 to changelog for version 1.1. - 26. By Ian Jackson
-
Bugfixes:
* When source package contains things called .git (even files, and even
in subdirectories), remove them. Closes:#793671.
* Work around curl -sS -I printing `HTTP/1.0 200 Connection established'
before the actual header, so dgit works with https_proxy set (!)
* --new is needed for read access to packages in NEW, too. Document
this, and make it work properly.
* Work around #793471 (madness with $SIG{__WARN__} and Perl's system
builtin): move $SIG{} setting into setup_sigwarn in Dgit.pm, and
check getppid.
* When invoking git-buildpackage via dgit gbp-build, consider our
command line arguments when massaging the dpkg-buildpackage arguments,
so that we don't end up giving dpkg-buildpackage contradictory
instructions.
* Cope with new git-buildpackage which provides gbp, rather than the
eponymous command, on PATH.Configurability:
* Honour dgit-distros.DISTRO. cmd-CMD and .opts-CMD. Closes:#793427.
* Make configuration able to prevent dpkg-mergechangelogs setup.
* Provide dgit setup-new-tree (like dpkg-setup-mergechangelogs
but only does it if not disabled in config).
* Set up git user.email and user.name from distro access config
or DEBEMAIL/DEBFULLNAME. Closes:#793410.
* When key to use not specified any other way, use the debian/changelog
trailer line. Closes:#793423.
* Honour --git= (mostly).Documentation:
* Fix some manpage typos. [ Richard Hartmann ]
* Manpage said that --clean=check was -wn but that is --clean=none;
correctly document that --clean=check is actually -wc.
* Document that up to -DDDD (not just -DD) is meaningfully different.
* Document that -cname=value applies only for this run.
* Improve manpage comment about defining a new distro.
* Document that --quilt=linear is the default for Debian.
* Fix a formatting problem in --build-products- dir= doc.
* In manpage, do not seem to imply that NMU should be of only one
new commit.
* Qualify to Debian the manpage comment about how to do NMU.
* In discussion on how to start using dgit when already using git, do
not imply/assume that existing git history will have identical trees
to dgit history.
* Remove stray sentence in config section of manpage.
* Manpage: Clarify wording of readonly config.
* Manpage: Better cross-references for -k and keyid.
* dgit(7): No longer say that dgit-repos lives on Alioth.Improvements:
* Introduce more sophisticated protocol negotiation for rpush.
* Do not quote `:' in shellquote.
* Print a supplementary message when push fails, giving advice to
the user about how to retry. Closes:#793144.
* Slurp in entire git config, for better performance.
* Rename `git-build' operation to `gbp-build' to make it clearer what
it's for. Keep the old name as an alias.
* Show `dgit sbuild' in usage message.
* When we are using dpkg-buildpackage to clean before using it to also
do the build, let it do its cleaning thing as part of its run, rather
than running it twice. When we are _not_ supposed to be using
dpkg-buildpackage to clean, but we are running it to do the build,
pass -nc.
* Also suppress spurious runs of the clean target when building using
git-buildpackage.
* When exec fails, always print the program name in the error message.Infrastructure:
* Infrastructure: Get mirroring right for fresh repos of existing
packages (!)Packaging, cleanups, debugging and test suite:
* Fix Vcs-Git and Vcs-Browse to refer to chiark. (The dgit-repos on
alioth aren't suitable right now because the master there can
currently only be updated with an actual upload, ie dgit push.)
* Make warnings fatal in dpkg-repos-admin-debian, dgit-ssh-dispatch
(using setup_sigwarn).
* Make warnings fatal in tstunt/dpkg-parsechang elog (directly).
* Test suite: Honour DGIT_TEST_DEBUG=''.
* With -DDDD, print out all gitcfg references (copious!)
* Fix a debug message in the obsolete sshpsql archive access driver.
* Test suite: More automatic enumeration of tests.
* Test suite: Provide tests which check that all our various build
operations run the right targets as expected (ie, that we are massaging
the arguments to dpkg-buildpackage, and suppressing our clean target,
etc., correctly). - 25. By Ian Jackson
-
Improvements:
* Switch to new production git repositories for reading.
(this can no longer divert to alioth). Public readonly access
now works. Closes:#791447.
* Memoise git config lookups (big speedup!)
* Provide -wdd aka --clean=dpkg-source- d. Closes:#792433.
* Provide -wc aka --clean=check.Manpage updates:
* Remove some obsolete caveats from BUGS.
* Reorganise and complete the configuration section.
* Remove obselete comment about DMs not being able to push.
We have, for now, a way to add keys manually. Closes:#720173.Access machinery:
* Remove configuration relating to alioth.
* Provide for different access mechanisms when pushing.
* Provide for configurable git url suffix.
* Allow git-url to be '' to force fallback to git-proto etc.
* Provide for checking git presence via http[s].
* Do some quoting on debug output (needed if the server might not
be trustworthy and might send us bad stuff).
* Talk to push.dgit.debian. org, rather than the .debian.net alias. Infrastructure:
* Provide for mirroring git updates to a different server.
* Provide cgit-regen-config command for cgi-grnet-01.
* Make dgit-ssh-dispatch not spew (harmless) warnings if caller
tries for a shell session (ie SSH_ORIGINAL_COMMAND not set). Cleanups:
* Remove an obsolete comment from the code.
* Improve an error message from dgit-repos-policy- debian.
* Test suite: Break out t-make-hook-link.
* Fix a manpage typo. - 24. By Ian Jackson
-
INCOMPATIBLE CHANGES:
* Client uses new infrastructure:
- Check for new dgit git service on dgit-git.debian.net (ie
gideon.debian. org), with transition plan based on diversion feature.
Closes:#720172.
- Old versions of dgit will stop working when the server-side handle is
pulled.* dgit git trees no longer contain .pc for format `3.0 (quilt)' source
packages. Closes:#764606.
- It is deleted whenever we find it.
- Older versions of dgit will choke on trees without .pc.
- (When doing quilt fixup, we recreate a suitable .pc in a temporary
directory so that we can do dpkg-source --comit.)* All users are urged to upgrade ASAP.
Other significant improvements:
* When generating quilt patches, try to linearise the git history into a
series of individual new patches for debian/patches. Closes:#770710.* When receiving a push with dgit-repos-server, update the server's
refs/heads/master if we are pushing to what the distro regards as a
relevant branch, and the push would ff master. Closes:#728209.* For non-Debian distros, distro version release tags contain distro
name a la DEP-14 (rather than hardcoding `debian/').* Set up a merge driver for debian/changelog. Closes:#769291.
* --clean=git and --clean=none cause dgit to pass -nc to
dpkg-buildpackage, suppressing calls to the package's clean target.
Also, expand the documentation in this area slightly. Closes:#768590.* Provide --clean=git-ff (aka -wgf), which is useful for dgit itself (!)
Minor improvements:
* Reduce some noise output and improve the clarity of some messages.
* Be more careful about tag updates during fetch: only update tags
referring to uploads to distro we are trying to fetch from.
* Change realpath dependency to `coreutils (>= 8.23-1~) | realpath'
(Closes:#786955.)Bugfixes:
* Fix handling of rmadison-based and gitless distros (e.g., Ubuntu).
* Add missing `gpgv' to test dependencies in debian/tests/control.
* Strip `-b <branch>' from contents of Vcs-Git header, when setting up
the vcs-git remote. Closes:#759374.
* Do not offer wget as an alternative dependency to curl. We always
unconditionally invoke curl and have no code to use wget.
Closes:#760805.
* Complain about lack of cuddled values for value-taking single-letter
options, rather than thinking the user meat an empty value.
Closes:#763332.
* Reject (rather than ignoring) further options merged witth -wn, -wg,
-wd.
* Fix inaccurate error message when archive's git hash is not an
ancestor of git repo's git hash.
* Detect and bomb out on vendor-specific `3.0 (quilt)' patch series.
* Fix the rules clean target to remove test results and output.Documentation improvements:
* Break out dgit(7) from dgit(1).
* Provide example workflow for dgit rpush. Closes:#763334.
(Also part of the fix for #768470.)
* Document that dgit repos are cloneable with git, in dgit(1)
section MODEL. [Andreas Barth.] Closes:#768470.
* Better documentation for quilt series handling.
* Document under `dgit push' that it is best to build with dgit too.
Closes:#763333.
* Other minor clarifications and improvements.Behind-the-scenes work:
* Use ftpmasterapi archive query method.
(Closes:#727702. Also partly obsoletes #768470.)
* New dgit-infrastructure binary package containing dgit-repos-server et
al. Client users probably don't want this stuff. Also, it provides a
convenient way to publish the dependencies.
* Many many bugfixes to the server side (dpkg-repos-server et al.).
* Add :..; prefix to ssh remote commands, for the benefit of future
forced command wrappers. Implicitly, this defines a new ssh-based
command protocol. Closes:#720174, #720175.
* Distro access configuration handling changes (should not be noticeable
to most users).
* In places, significant restructuring or tidying up.
* Turn all perl warnings into errors using $SIG{__WARN__}. - 23. By Ian Jackson
-
Use Dpkg::Version:
:version_ compare everywhere, not
Dpkg::Version::version_ compare_ string. The latter is entirely wrong,
meaning that dgit would get many version comparisons wrong.
Closes:#768038. - 22. By Ian Jackson
-
Bugfixes:
* Clone removes destination directory on error. Closes:#736153.
* Work with wheezy-backports (and keep squeeze-backports working too).
Closes:#736524.
* Work in read-only no-git-history mode with Ubuntu. You still have
to pass -dubuntu. Closes:#751781.
* Use mirror.ftp-master. debian. org DNS alias rather than coccia.
Closes:#752602.
* Check hashes of files ourselves rather than running dget to
re-retreive the .dsc.
* Check SHA-256 of .dsc against hash from archive_query (ie projectb)
rather than letting dpkg-source do a signature verification.
Closes:#737619. Closes:#737625.
* Treat .dsc as bytes, just like everything else, rather than letting
HTTP::Message convert it to a Perl unicode string which the rest of
the program mishandles. Closes:#738536.Minor improvements:
* Include canonicalised suite name in signed tag message.
* Mention cross-version dgit rpush incompatibility in manpage.
* Check for rpush protocol version incompatibility and crash early
if incompatible.
* New script tests/using-intree for running tests on the source tree.
* Do not spew diff output to terminal (by default). Print sensible
message instead. Closes:#736526.
* Print better message for lack of configuration settings.
* Document that dgit rpush needs gnupg and your public key on the build
host. Closes:#736529.
* Fix a manpage reference to `--dget=' where `--dgit=' was intended.
* Provide t-archive-process- incoming and t-archive-query subroutines for
regression test scripts to use.
* Print better message for unknown operations.
* Provide `dgit clean'. Closes:#736527.
* When cloning, set up a remote `vcs-git' from the package's Vcs-Git
(and put an appropriate caveat in the manpage). Closes:#740687.
Closes:#740721.
* Improve error message for .dsc having already been signed (iff
using libdpkg-perl 1.17.x). Closes:#731635.
* Improve error message for .dsc parsing failures more generally.
* Better reporting of child exit statuses (esp. deaths due to signals).
* In rpush, on protocol error talking to build host, check if the
subprocess died and report differently if so. Closes:#736528.
* Fixed a manpage typo.
* When tests invoke dgit, use --dgit= so that subprocesses use our
dgit rather than system one.
* Add a test for dgit rpush.Major new feature, currently stalled awaiting server infrastructure:
* dgit-repos-server: New program for receiving signed-tag-based
pushes. Corresponding support in dgit itself, but not currently
used by default for any distro.
* Bring forward push of the version tag ref so it happens alongside
the push of the suite branch ref.
* New git-check and git-create methods "true" which are no-ops.
* test-dummy-drs `distro': for testing dgit and dgit-repos-server. - 21. By Ian Jackson
-
Bugfixes relating to unclean trees:
* Run a clean (of the specified type) before any build operation; do
this with `dpkg-buildpackage -T' clean if necessary, so -wd now works
with all the building methods.
* Refuse to do quilt fixup (explicitly requested, or as a result of
build) if the tree contains ignored files. Closes:#731632.Error message improvements:
* Use failedcmd to report errors when ssh psql fails. Closes:#734281.
* failedcmd prints $us, not $_[0] - ie, dgit doesn't pretend,
in the error message, to be its child.
* Do not report the (irrelevant) $? when madison parsing fails.Better workflow flexibility:
* Provide --build-products- dir option (and corresponding semantics
for -C) to specify where to find the files to upload. Closes:#731633.Support for Debian backports suites:
* New quirks infrastructure in configuration and internals,
for suites (or perhaps distros) which are a bit like others.
* Use correct default archive location.
* Compute "-v" option default value correctly.
* Closes:#733954.Packaging improvement:
* Add `Testsuite: autopkgtest' to debian/control. (This will only have
the right effect with recent enought dpkg; it will generate a harmless
warning with earlier versions of dpkg.) - 20. By Ian Jackson
-
Use newest (not oldest) version currently in suite when calculating
what value to use for -v<version> by default. Closes:#732781.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)