A shell script implementing the XiVO sources conventions was integrated in packaging-farm and documented. Creating a package can be done from the repositories with a one-liner packaging-farm DIRECTORY=lib-javascript PACKAGE=pf-xivo-lib-js submit
The debian GNU/Linux packages repository was made public a few days ago. The pf-release.sh shell script based on the internal SVN repository has been updated to use the public GIT repository instead.
In order to make it more convenient for the developer to submit a job to packaging-farm the workflow was modified. It previously provided a single submission script that was independent from the building of the package. A new target, submit
has been introduced together with a global SUBMIT configuration variable. If SUBMIT=xivo, the submit target will call the /usr/lib/packaging-farm/submit/submit-xivo.sh script and expect it to do something useful based on the environment variables it finds.
During the installation of the Debian GNU/Linux packaging-farm-client package, the former rsync limit and origin of the chroot used to build the packages were deprecated in favor of the value of the SUBMIT configuration variable. It has two choices : the existing pokersource convention and the XiVO convention.
A new release (1.2.34) of packaging-farm has been published with this integration.
submit-xivo(1) submit-xivo(1) NAME submit-xivo.sh - create a source package from XiVO repositories SYNOPSIS [DIRECTORY=] submit-xivo.sh [VERBOSE=false] [GIT_DRY_RUN=false] \ [VCS_DIR=/var/cache/packaging-farm/VCS] \ [PACKAGES_DIR=/var/cache/packaging-farm/sources] \ [XIVO=skaro] \ [SUITE=squeeze] \ [SOURCE_GIT=git://git.xivo.fr] \ [DEBIAN_GIT=git://git.xivo.fr/debian] \ [DEBEMAIL=technique@proformatique.com] \ [DEBFULLNAME="Proformatique Maintainance Team"] \ [DIRECTORY=] \ submit-xivo.sh [TEST] DESCRIPTION When run as DIRECTORY=asterisk submit.xivo.sh will merge the asterisk sources with the corresponding Debian GNU/Linux package instructions and build a source package. step 1 - update the git repositories the SOURCE_GIT and DEBIAN_GIT repositories are pulled in the VCS_DIR directory. step 2 - merge sources and Debian GNU/Linux package the source and Debian package information are copied from VCS_DIR and merged into PACKAGES_DIR step 3 - build source package without any attempt at resolving dependencies, a source package is built using dpkg-buildpackage When invoked without the DIRECTORY environment variable set, submit-xivo.sh will display a usage and sample commands that can be copy/pasted to the command line. It is designed as a helper to the packaging-farm(1) command the sample commands make use of it. DEFINITIONS SUITE is the name of a Debian GNU/Linux distribution, such as squeeze or lenny. XIVO is the name of a XiVO release such as skaro or gallifrey. component is the name of a repository containing a set of packages, as in the reprepro(1) configuration files. A component is of the form SUITE-xivo-XIVO For instance, lenny-xivo-dalek, lenny-xivo-gal- lifrey and squeeze-xivo-skaro. VERSIONS The XiVO source packages have no version information. The Debian GNU/Linux package version numbers are generated based on the date of the last commit and its short hash. YYYYMMDD.HHMMSS.HASH will be the version number of a package where the last commit in the sources was made on YYYYMMDD.HHMMSS. This last commit hash is appended to the ver- sion number. Example: asterisk-20110312.102015.8ff428-1 When merging a source with its matching Debian GNU/Linux package, the first line of the debian/changelog file must contain the computed ver- sion number. If it does not, a new changelog entry is used with the following template: echo "$package (${version}${debian_version}) $component; urgency=low" echo echo " * upstream update" echo echo -n " -- $DEBFULLNAME <$DEBEMAIL> " date '+%a, %d %b %Y %R:%S %z' echo TARBALL CONSISTENCY If a source tarball already exists for a given version, it will be left untouched. Although the contents would be the same if re-generated, the checksum will be different when it is compressed. Such a change introduce an unnecessary and confusing variance when issuing more than one Debian GNU/Linux package for a given source. NAMESPACES git://git.xivo.fr source tree contains one repository for each component http://git.xivo.fr/xivo-dalek.git http://git.xivo.fr/xivo-gallifrey.git http://git.xivo.fr/xivo-skaro.git Within each repository, the directories containing a Makefile.pkg file contain sources that are candidates for packaging. git://git.xivo.fr/debian package tree contains one repository for each component http://git.xivo.fr/debian/lenny-xivo-dalek.git http://git.xivo.fr/debian/lenny-xivo-gallifrey.git http://git.xivo.fr/debian/squeeze-xivo-skaro.git Within each repository, each directory contains a trunk/debian sub-directory matching the corresponding DEB_PKG in the source directory. VCS_DIR tree contains a debian sub-directory where all debian repositories are cloned and a sources sub-directory where all source reposi- tories are cloned PACKAGES_DIR tree for each package found in the VCS_DIR/debian subdirectories, there exists a corresponding directory in PACKAGES_DIR with the dsc of the package and a subdirectory with the same name as the package containing the actual sources. ENVIRONMENT Each environment variable is shown with its default value. It can be overriden if set before the submit-xivo.sh is called. For instance PACKAGES_DIR=/tmp DIRECTORY=asterisk XIVO=skaro The name of the skaro distribution. Can be one of skaro, gal- lifrey. SUITE=squeeze A Debian GNU/Linux suite. Can be one of squeeze, lenny. VCS_DIR=/var/cache/packaging-farm/VCS The directory in which the source and debian repositories will be cloned. PACKAGES_DIR=/var/cache/packaging-farm/sources The directory in which the resulting source packages will be stored. SOURCE_GIT=git://git.xivo.fr The directory containing the source code repositories for each XiVO suite. DEBIAN_GIT=git://git.xivo.fr/debian The directory containing the Debian GNU/Linux repositories for each XiVO suite. GIT_DRY_RUN=false If set to true, no changes will be committed to the Debian GNU/Linux repository if a debian/changelog entry is added. DEBEMAIL=technique@proformatique.com The mail used when generating a debian/changelog entry. DEBFULLNAME="Proformatique Maintainance Team" The user name used when generating a debian/changelog entry. TESTING When run as VERBOSE=true submit-xivo.sh TEST a test suite embeded in the shell script is run. It uses files created in /tmp exclusively and will not modify anything outside it. All features and bug fixes have an associated test case. AUTHORS Loic Dachary <loic@dachary.org>