Commands
Deb-o-Matic provides an interface to perform specific tasks into the
Deb-o-Matic packagedir directory such as removing uploaded files or
rebuilding packages. These operations are handled by commands stored in
.commands files, and uploaded into Deb-o-Matic packagedir by using
dcut utility, or by hand.
Using dcut is usually simpler, just launch the following command:
dcut -U mydebomatic commandfile.commands
where mydebomatic is a dput host as described in dput.cf (5) man page, and
commandfile.commands is the file containing the commands to be executed by
Deb-o-Matic.
Multiple commands can be stored in a single .commands file, but it is
usually safer to issue a single command per file.
Remove packages
It could happen some files are kept into Deb-o-Matic packagedir and you
need to remove them. In order to do so, you must use the rm command:
echo "rm foo*" > foo.commands
where foo* is a regular expression matching the files you want to remove.
Rebuild packages
You could want to rebuild a package already in the mirrors to see whether it
compiles with newer packages, to analyze its content, and so on. In order to do
so, you must use the rebuild command:
echo "rebuild foo_version dist" > foo.commands
where foo is the name of the source package you want to rebuild,
version is the version of the package you want to rebuild, and dist is
the distribution which rebuild the package for.
Deb-o-Matic can also rebuild packages available in other distributions. The syntax is similar, you just have to indicate which distribution to pick packages from:
echo "rebuild foo_version dist origin" > foo.commands
where origin is the distribution to pick packages from.
Killing builds
You could want to terminate a build you erroneously uploaded, or you do not
want it to complete to avoid wasting too many resources.
In order to do so, you must use the kill command:
echo "kill foo_version dist" > foo.commands
where foo is the name of the source package you want to terminate its build,
version is its versiond, and dist is
the distribution the package is being built for.
Porter uploads
You could want to prepare a porter upload, a binary-only upload which generates architecture dependent binaries only. Additional information can be found in Debian Developer’s Reference.
In order to do so, you must use the porter command:
echo "porter foo_version dist Joe Doe <j.doe@acme.com>" > foo.commands
where foo is the name of the source package you want to rebuild, version is the version of the package you want to rebuild, dist is the distribution which rebuild package for, and the element between quotes is the address to be used as maintainer field, which is usually the developer who is preparing the upload.
Binary NMU uploads
You could want to prepare a binary NMU (or binNMU) upload, a binary-only upload which generates architecture dependent binaries only, together with a changelog entry describing why the upload was needed. Additional information can be found in Debian Developer's Reference.
In order to do so, you must use the binnmu command:
echo 'binnmu foo_version dist binNMU_version "changelog" John Doe <jdoe@debian.org>' > foo.commands
where foo is the name of the source package you want to rebuild, version is the version of the package you want to rebuild, dist is the distribution which rebuild package for, binNMU_version is the progressive binNMU number, changelog is the reason why the upload was prepared (enclosed in quotation marks), and the rest of the string is the address to be used as maintainer field, which is usually the developer who is preparing the upload.
Rebuild packages with extra build-dependencies
You could want to rebuild a package already in the mirrors also adding a
specific build-dependency to see whether it compiles with a newer library
version. In order to do so, you must use the builddep command:
echo "builddep foo_version dist extrapackage (>= packageversion)" > foo.commands
where extrapackage is the name of the package you want to install before
the compilation takes place, and packageversion is the optional version of
the package you want to install. More than one package can be defined, separated by commas.