dht -- Debian Haskell Packaging Tools
./dht subcommand [args..]
This is the Debian Haskell Team multi purpose tool, combining various more or less useful tools.
Supported subcommands:
Usage: dht debian2dsc [-o output/] [dir ...]
Expects directories containing the contents of the debian/
directory of a Debian source package (i.e. control
, changelog
, watch
, ...). Uses the watch file to retrieve the upstream tarball (unless it already exists in the local directory), creates a debian.tar.xz
tarball from the given directory (ignoring the ususal suspects like _darcs
and *~
) and creates a corresponding .dsc
file; all without unpacking the upstream tarball.
Usage: dht upgrade [-D dist]
This script will:
At the end, it will rightfully ask you to review the changes, giving you a helpful link to the diff between the upstream sources.
Usage: dht tag [directory..]
For all given directories, which should be Debian source packages, figure out the current version from debian/changeslog and create a tag, tagging the youngest git commit that changed this particular source package.
TODO
Usage: dht what-to-build [directory..]
For all given directories (defaults to p/*/
), check if they are to be built. This means, in particular:
debian/changelog
is not UNRELEASED
, andUsage: dht mass-change [-n] [MESSAGE] [ACTION] DIRECTORY ...
This script runs ACTION in each of the given directories. If the ACTION effected a change, it will add MESSAGE to the changelog.
It assumes that all directories are in the same git repository as this script. It ensures that the repository is clean tobegin with, and will commit all changes at once at the end, if there was a change.
Usage: dht what-to-upgrade [directory..]
For all given directories (defaults to p/*/
), check if they are to be upgraded, i.e. that the package plan lists a newer version than the changelog.
Usage: dht upload foo.changes
Signs the .changes
file and the corresponding .dsc
file in a temporary location (to avoid touching the original files), uploads them to the archive using dput ssh-upload
and tags them in the repository and pushes the tag.
Checks that the distribution is not UNRELEASED
and that the tag does not exist already (by tagging first).