Author: | Ed Bartosh |
---|---|
Version: | 13 |
It's automatic package building system for Maemo Extras repository based on sbdmock package builder [1].
Source package can be produced using this command [2]:
dpkg-buildpackage -rfakeroot -sa -S
and signed with [3]:
debsign -k<key_id> <package>.changes
Uploading source packages for builder is similar to uploading to extras and extras-devel repositories [4]. To be able to upload source packages for building uploader must have upload rights to extras repository.
To upload sources to for build uploader should have the following section in /etc/dput.cf [5]:
[chinook-extras-builder] login = <your_garage_login_name> fqdn = garage.maemo.org method = scp hash = md5 allow_unsigned_uploads = 0 incoming = /var/www/extras-devel/incoming-builder/chinook [diablo-extras-builder] login = <your_garage_login_name> fqdn = garage.maemo.org method = scp hash = md5 allow_unsigned_uploads = 0 incoming = /var/www/extras-devel/incoming-builder/diablo
Uploading is done by:
dput chinook-extras-builder *.changes
OR
dput diablo-extras-builder *.changes
NB: After a successful upload dput creates a .upload file. If you try to upload the same set of files, dput will refuse to do that. If you really want to upload it again (e.g. after uploading and have built a build dependency for a particular package), please use '-f' parameter:
dput -f chinook-extras-builder *.changes
OR
dput -f diablo-extras-builder *.changes
The builder picks up packages from the builder queue and produces binaries for all required architectures. Architectures are determined by 'Architecture:' field of the package's debian/control file. For architecture 'any' builds are performed for all supported architectures. For architecture 'all' only one build for fastest architecture is performed. For specific architecture ('i386' and 'armel' at the moment) only one build for specified architecture is performed. Build is done in a clean environment. It means that scratchbox target created from scratch for each build. Only essential build packages and build dependencies specified in package's control file will be installed into target before build. Sbdmock uses packages from SDK and extras-devel repositories to satisfy build dependencies. Build is done using dpkg-buildpackage. Builder produces 2 logs:
root.log -- information about setting up build target build.log -- information about the actual build operation
When build is complete, status information is sent to the 'builds' mailing list [6].
Build results are available in results directory:
https://garage.maemo.org/builder/chinook/<package name and version>/
OR
https://garage.maemo.org/builder/diablo/<package name and version>/
Content of this directory depends on the build status. For successful builds you will find only log files. For failed build you will find the sources that triggered the build (they will be available in 'sources' subdirectory) and any produced binary packages (these will be available in 'results' subdirectory). Short build report is available from summary.log
NOTE: result directory will be rewriten by the builder if package with the same name and version is re-uploaded for the build.
If build is successful packages will be signed by builder and automatically uploaded to extras-devel repository.
[1] | Scratchbox Debian package builder tool: http://bifh.org/wiki/sbdmock |
[2] | dpkg-buildpackage man page: http://www.penguin-soft.com/penguin/man/1/dpkg-source.html |
[3] | debsign man page: http://www.penguin-soft.com/penguin/man/1/debsign.html |
[4] | Maemo Extras Repository: http://maemo.org/community/application-catalog/extras_repository.html |
[5] | dput man page: http://www.penguin-soft.com/penguin/man/1/dput.html |
[6] | extras-cauldron-builds: https://garage.maemo.org/mailman/listinfo/extras-cauldron-builds |