= Emdebian Toolchain Autobuilder = Emdebian Toolchain Autobuilder is in a very inmature stage, so '''be carefull.''' [[http://www.emdebian.org/repos/current/emdebian/trunk/paamboli/trunk/|paamboli]] and [[http://www.emdebian.org/repos/current/emdebian/trunk/buildcross/trunk/|buildcross]] work together to provide a distributed building system for the cross toolchains that Emdebian provides. Paamboli has a separated set of scripts named pernil, tomata, pa and oli. It keeps in mind distributed buildings relaying on secure keys, with the master and slave point of view. ''Oli'' is the master script and it is meant to be run on the master system, and basically what it does is to send ''tomata'' to the slave system (which have been already configured with ''pa'' and a rootfs tarball) and ''tomata'' triggers ''pernil'' script which it is encharged to set up the build environment and produce the binaries, afterwards those get send to the master and included into the public repository. == Master configuration == * Configure ''pernil.sh'' variables to set up the architectures and packages that you wanna-build :-) * Configure ''oli.sh'' to setup the hosts you want to use * Then run ''oli.sh'' === ToDo === == Slave configuration == You need to create a tarball with a rootfs. Edit '''/etc/schroot/schroot.conf''' {{{ [buildd-amd64] type=file description=Debian amd64 unstable file=/srv/buildd-rootfs.tgz groups=emdebian root-groups=emdebian run-setup-scripts=true #run-exec-scripts=true [buildd-i386] type=file description=Debian i386 unstable file=/srv/i386-rootfs.tgz groups=emdebian root-groups=emdebian run-setup-scripts=true #run-exec-scripts=true }}} Note that i386-rootfs.tgz is a compressed rootfs for ''i386'' and amd64-rootfs.tgz is a compressed rootfs for ''amd64'' To generate the filesystem one can use ''debootstrap'' and then install all the required [[http://www.emdebian.org/~zumbi/docs/packages.list|software]]. One also needs to set up a ssh-key to be able to do the transfers between master and slave servers. Put ''pa.sh'' somewhere sensible, for example, on eisluft ''pa.sh'' is under /usr/local/bin/ Setup ''pa.sh'' as a cron task. On eisluft the building magic happens under ''/srv/emdebian'' set by {{{UP_ROOTFS="emdebian" }}} and user '''zumbi''' has a cron job that updates the tarball every day. {{{ 00 19 * * * /usr/local/bin/pa.sh }}} === ToDo === * pa.sh should take tarball name as a parameter so it can update different tarballs (p.e., i386-rootfs.tgz and amd64-rootfs.tgz) == Note == * ''paamboli'' is designed to be used with ''buildcross'' ---- CategoryEmdebian