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.