Autodeb is a work-in-progress service developed in the context of a Google Summer of Code project. The main goals of the service are to automate building, testing and distributing Debian packages.The service focuses on two main use cases:
1. Generate and distribute backports and packages for new upstream versions automatically
Autodeb will periodically attempt to update all packages in the Debian archive to new upstream versions when they are available. It will also try to backport all packages in the archive to previous Debian versions. Resulting packages will be distributed and the build logs will be made available. We hope that the resulting information will be useful to package maintainers. The resulting builds could also be used by Debian users so that they are left with a deb-based alternative when there are no packages for their needs in Debian itself.
2. Enable Debian package maintainers to test their packages (and their reverse dependencies) before each upload
Autodeb will empower Debian package maintainers by giving them easy access to thorough testing before every upload. It will run tests that are not often run due to lack of time or resources. Autodeb will provide a dput-compatible API. Instead of uploading your packages directly to the ftp-master upload queue, you may upload your source packages to Autodeb where they will be built on all release architectures. Autopkgtests will also be ran on all resulting deb packages and their reverse dependencies. Optionally, the upload will be forwarded to the ftp-master queue if all tests succeed.
Getting started with the service
1. Associating a PGP key to your account
To get started with using Autodeb, the first thing that you need to do is log into the service and associate a PGP key with your account. This is done from the pgp-keys page.
2. Adding autodeb to your dput configuration
This server has a REST API that can be very useful if you want to build automated tools to interact with it. However, it also accepts uploads via dput. You can add autodeb to your configured dput hosts by adding the following lines to ~/.dput.cf:
[autodeb] fqdn = auto.debian.net incoming = /upload method = https allowed_distributions = .
3. Uploading a package
Before you upload a package, you should know that autodeb only accepts signed source uploads. Anything other than that will be rejected with an error message.
You may upload a package to autodeb with the following command:
Note that neither dput nor dput-ng display http error messages, they only display the error code. Autodeb always tries to return a 4XX error code when there is something wrong with the upload. If your uploads yields a 5XX code, it might be a good idea to get in touch with us so that we can fix the bug.
$ dput autodeb <package.changes>
If your upload was rejected, you can obtain the error message by re-uploading the failed file with curl:
$ FILE=<filename> ; curl -w "\n" -X PUT -T $FILE https://auto.debian.net/upload/$FILE
4. Obtaining logs
Now that you have completed an upload, it will be visible in the uploads page with a dget-compatible .changes link. A build job will also be created and it will be visible in the jobs page. As soon as the job is completed by one of the autodeb workers, the logs will be available for download.
In the future, Autodeb will:
- generate autopkgtests jobs for both the uploaded package
- generate autopkgtests jobs for the package's dependencies
- host the resulting .debs
- provide a range of controls for the build environment
- automatically backport and/or update packages from the Debian archive to new upstream versions