Multiarch cook via HOST_ARCH

[ Thread Index | Date Index | More lists.tuxfamily.org/slitaz Archives ]


Hi all,

Opening a new thread since here I want to talk about how cook handle
multiarch packages. The goal is to use the wok, a chroot and do like in
i486, just call a cooker each x hours to cook commits in wok. But
cross-compiling packages such as erlang is not realy usefull on small
ARM machine I guess. Also like many packages it need custom options
when building for ARM. So building each packages for all arch on each
commit as no sens. Before setting up the ARM cooker I commited code to
handle a new receipt variable: HOST_ARCH = the host architectures on
wich the package will run.

Knowing we are NOT going to build (at least for now) the all wok for
ARM but just the needed packages for an X environment, gtk
desktop, touchscreen handling and small server. We may cook 400-600
packages. All these packages must be reviewed, builded localy, then
added to the arch. So cook will not build any package for arm without
HOST_ARCH set to:

HOST_ARCH="i486 arm"

Or if a package is only for arm: HOST_ARCH="arm"

Most will be base and widely used packages, this will force packages
receipt editing and reviewing (deps/bdeps, _pkg --> $install, ident,
etc), please also check files path, missing or bloated file/libs and
split packages if needed. In receipt use $root and not $1 anymore for
post and pre commands, this let us use many --option in any order since
new libtaz.sh export any --option or --option=value

To add custom arch code use case, I will commit glibc-base package wich
even use case for VERSION since cross tools dont use and may never use
same version because some versions of toolchain components refuse to
work together. Use this case in receipt itself or in _rules functions.

case "$ARCH" in
	arm) ... ;;
	x86_64) ... ;;
esac

On the cooker side, we create an arch.$ARCH file in build wok so the
web interface just have to 'ls wok/*/arch.$ARCH | wc -l' to know the
number of packages include for this arch. Arm have for example 13
packages actually: http://cook.slitaz.org/cross/arm/

** For Tank admins **

$ echo "ARM cooker by hand"
$ ssh tank.slitaz.org
$ su
# conspy -f 3
# cooker
# cooker -p zlib
# echo "Same as i486 chroot, wok & co in /home/slitaz"

# echo "To test cross tools and get info"
# cross testsuite
# cross info

- Christophe

-- 
SliTaz GNU/Linux Mailing list - http://www.slitaz.org/


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/