## Auto-converted by kwiki2moinmoin v2005-10-07 = Dpatch Packages for Debian = == User Information == * [[http://ftp.debian.org/debian/pool/main/d/dpatch/|Packages for Sid and Sarge]] == Developer Information == * [[http://alioth.debian.org/projects/dpatch/|Alioth Project Home Page]] * [[http://lists.alioth.debian.org/mailman/listinfo/dpatch-maintainers|Maintainers Mailing List]] * [[PkgDpatchBugsClassification|Bugs Classification Page]] * [[http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=dpatch|BTS]] * [[http://packages.qa.debian.org/dpatch|PTS]] === Arch Repository === * For arch, every commit needs to be gpg-signed. There is no verification done on the keys, so you can create a new key that doesn't need any connection to the web of trust.{{{ ~/.arch-params/signing/dpatch\@packages.qa.debian.org--archive }}} should contain a command that the stuff to sign gets piped to.{{{ gpg --clearsign --secret-keyring ~/.gnupg/dpatch-arch_sec.gpg --keyring ~/.gnupg/dpatch-arch_pub.gpg }}} does this, with a custom keyring. * Making a new release is composed of the following steps: * create a so-called config file (this is arch terminology) * do a fresh checkout * do a make tla-release * extract the result * launch dpkg-buildpackage * This process is now automated by the script do-release in the dpatch-configs tree:{{{ ./do-release -c -d [/path/to/dpatch-tree] -- [debuild options] }}} * This script is to be run from a dpatch--configs--2.0 checkout * the dpatch tree it uses must be an arch checkout, ready to release, with all local changes committed. * By default do-release looks for dpatch sources in dpatch-mainline. * It then creates a new arch config for it, * and builds the package using debuild. * After this, one should commit the new config the script created (a simple file addition) by committing the changes to the current directory, being a checkout of the dpatch--configs--2.0 tree. * Optionally, the script can cache the arch revision it built the package from (recommended, use the --cacherev or -c option to do-release). * The package version is extracted from debian/changelog in the dpatch source tree. * If the build fails, its remains can be removed by killing the appropriate file from configs/releases/dpatch-$VERSION. * Set your identity{{{ tla my-id "Realname " }}} * Hook Script: Place{{{ . /path/to/dpatch/tools/dpatch.hook }}} in {{{~/.arch-params/hook}}} will send e-mail to dpatch_cvs@packages.qa.d.o on commit, with the log and the diff. * Register read-only{{{ tla register-archive http://arch.debian.org/arch/dpatch/dpatch@packages.qa.debian.org--archive/ }}} * Register read-write{{{ tla register-archive -f sftp://arch.debian.org/arch/dpatch/dpatch@packages.qa.debian.org--archive }}} * Checkout{{{ tla get dpatch@packages.qa.debian.org--archive/dpatch--mainline--2.0 dpatch tla get dpatch@packages.qa.debian.org--archive/dpatch--configs--2.0 dpatch-configs cd dpatch-configs tla buildcfg dpatch-mainline }}} * Edit Log{{{ $EDITOR $(tla make-log) }}} * Commit{{{ tla commit }}} * If you want to check out a specific dpatch release, do this:{{{ $ tla get dpatch@packages.qa.debian.org--archive/dpatch--configs--2.0 $ tla buildcfg releases/dpatch-VERSION # eg, dpatch-2.0.0 }}} * tla add filename adds a file to the repository. This can also be done automatically by putting an arch-tag: line into the file itself. * tla update updates your checked-out tree * tla inventory -s can be used to see which files tla recognized. * tla changes shows which files have been changed locally since the last checkout/update * tla file-diff gives the diff for a given file. * How is a complete diff against the last checkout/update done? * The arch repository is pull-mirrored by http://sourcecontrol.net/. === Arch information === * http://www.lnx-bbc.org/arch.html is some nice introduction to Arch. * http://regexps.srparish.net/www/tutorial/html/arch.html is an Arch tutorial. * http://wiki.gnuarch.org/ is the Arch wiki. * http://wiki.gnuarch.org/Centralized_20Development has some hints about how to do centralized development === Arch Q&A === Q: When invoking tla changes, I get the following:{{{ $ tla changes * looking for dpatch@packages.qa.debian.org--archive/dpatch--mainline--2.0--patch-111 to compare with PANIC: invoke_tar_extract: execve for hook script returned to caller tla: error running hook `make-pristine' (2) $ }}} What am I doing wrong? A: ~/.arch-params/hook is missing the starting #! line ------ Q: After trying to commit without having GPG set up, further commit attempts fail:{{{ arch_commit: unable to acquire revision lock (internal error in archive-pfs.c(pfs_lock_revision)) tree: /home/mh/dpatch/dpatch revision: dpatch@packages.qa.debian.org--archive/dpatch--mainline--2.0--patch-112 }}} A: Break the lock using{{{ tla lock-revisions -b dpatch@packages.qa.debian.org--archive/dpatch--mainline--2.0--patch-112 }}} In some circumstances, you need to break the lock on the preceding revision as well.