7 |
|
|
8 |
source ${BUILDSERVER_LIB_DIR}/buildserver-functions.sh |
source ${BUILDSERVER_LIB_DIR}/buildserver-functions.sh |
9 |
|
|
10 |
# override |
NON_SRC_ARCH_PACKAGES+=( "${BOOTSTRAP_DEVUTILS}" ) |
11 |
#BUILDROOT="/mnt/test-buildroot" |
|
12 |
#BUILD_ARCH=( x86_64 i686 ) |
# fallback |
13 |
#BUILDROOT_PROFILE="R11" |
if [[ -z ${MAGE_PROFILE} ]] |
14 |
#SMAGE_SVN_REPO="svn://cvs.magellan-linux.de/smage/trunk" |
then |
15 |
#MAGE_SVN_REPO="svn://cvs.magellan-linux.de/mage/trunk" |
echo "Warning: using '${BUILDROOT_PROFILE}' as MAGE_PROFILE. You should define MAGE_PROFILE in the profile.conf." |
16 |
|
MAGE_PROFILE="${BUILDROOT_PROFILE}" |
17 |
|
fi |
18 |
|
|
19 |
if [ ! -f ${BUILDROOT}/.stamps/mage_svn-checkout-ok ] |
if [ ! -f ${BUILDROOT}/.stamps/mage_svn-checkout-ok ] |
20 |
then |
then |
23 |
|
|
24 |
# create buildroot layout |
# create buildroot layout |
25 |
install -d ${BUILDROOT}/.stamps |
install -d ${BUILDROOT}/.stamps |
|
install -d ${BUILDROOT}/tmp/mage-tree |
|
26 |
install -d ${BUILDROOT}/ssh |
install -d ${BUILDROOT}/ssh |
27 |
for arch in ${BUILD_ARCH[*]} src |
for arch in $(enum-all-arch-types) |
28 |
do |
do |
29 |
install -d ${BUILDROOT}/${arch} |
install -d ${BUILDROOT}/${arch} |
30 |
|
install -d ${BUILDROOT}/mage-tree/${arch} |
31 |
install -d ${BUILDROOT}/packages/${arch} |
install -d ${BUILDROOT}/packages/${arch} |
32 |
install -d ${BUILDROOT}/meta/${arch} |
install -d ${BUILDROOT}/meta/${arch} |
33 |
install -d ${BUILDROOT}/build-info/${arch} |
install -d ${BUILDROOT}/build-info/${arch} |
34 |
|
install -d ${BUILDROOT}/log/smage/${arch} |
35 |
done |
done |
36 |
|
|
37 |
# |
# |
38 |
# arch specific |
# arch specific |
39 |
# |
# |
40 |
for arch in src ${BUILD_ARCH[*]} |
for arch in $(enum-all-arch-types) |
41 |
do |
do |
42 |
if [ ! -f ${BUILDROOT}/.stamps/${arch}_bootstrap-ok ] |
if [ ! -f ${BUILDROOT}/.stamps/${arch}_bootstrap-ok ] |
43 |
then |
then |
44 |
mage-bootstrap \ |
mage-bootstrap \ |
45 |
--root ${BUILDROOT}/${arch} \ |
--root ${BUILDROOT}/${arch} \ |
46 |
--magerc ${BUILDSERVER_CONFIG_DIR}/profiles/${BUILDROOT_PROFILE}/${arch}/mage.rc \ |
--magerc ${BUILDSERVER_CONFIG_DIR}/profiles/${BUILDROOT_PROFILE}/${arch}/mage.rc \ |
47 |
--profile "${BUILDROOT_PROFILE}" \ |
--profile "${MAGE_PROFILE}" \ |
48 |
--basesystem "${BOOTSTRAP_BASESYSTEM}" \ |
--basesystem "${BOOTSTRAP_BASESYSTEM}" \ |
49 |
|| die "'${arch}' bootstrap" |
|| die "'${arch}' bootstrap" |
50 |
touch ${BUILDROOT}/.stamps/${arch}_bootstrap-ok |
touch ${BUILDROOT}/.stamps/${arch}_bootstrap-ok |
56 |
# create initial mage-tree for all arches |
# create initial mage-tree for all arches |
57 |
${BUILDSERVER_LIB_DIR}/buildserver-setup-mage-tree.sh |
${BUILDSERVER_LIB_DIR}/buildserver-setup-mage-tree.sh |
58 |
|
|
59 |
for arch in src ${BUILD_ARCH[*]} |
for arch in $(enum-all-arch-types) |
60 |
do |
do |
|
|
|
|
echo "DEBUG: arch='${arch}' BUILD_ARCH[*]='${BUILD_ARCH[*]}'" |
|
|
|
|
61 |
# honor any proxy settings |
# honor any proxy settings |
62 |
:> ${BUILDROOT}/${arch}/etc/env.d/01proxy |
:> ${BUILDROOT}/${arch}/etc/env.d/01proxy |
63 |
[[ -n ${http_proxy} ]] && echo "http_proxy=\"${http_proxy}\"" >> ${BUILDROOT}/${arch}/etc/env.d/01proxy |
[[ -n ${http_proxy} ]] && echo "http_proxy=\"${http_proxy}\"" >> ${BUILDROOT}/${arch}/etc/env.d/01proxy |
71 |
:> ${BUILDROOT}/${arch}/etc/env.d/00mage-buildserver |
:> ${BUILDROOT}/${arch}/etc/env.d/00mage-buildserver |
72 |
echo "MAGE_BOOTSTRAP=\"true\"" >> ${BUILDROOT}/${arch}/etc/env.d/00mage-buildserver |
echo "MAGE_BOOTSTRAP=\"true\"" >> ${BUILDROOT}/${arch}/etc/env.d/00mage-buildserver |
73 |
|
|
74 |
# install subversion |
for pkg in ${ALL_ARCH_PACKAGES[*]} |
75 |
if [ ! -f ${BUILDROOT}/.stamps/${arch}_subversion-ok ] |
do |
76 |
then |
runarch-pkg-install "${arch}" "${pkg}" |
77 |
runarch "${arch}" mage install subversion || die "${arch} install subversion" |
done |
|
touch ${BUILDROOT}/.stamps/${arch}_subversion-ok |
|
|
else |
|
|
echo "Warning: subversion already installed for arch '${arch}'" |
|
|
fi |
|
|
|
|
|
# install openssh |
|
|
if [ ! -f ${BUILDROOT}/.stamps/${arch}_openssh-ok ] |
|
|
then |
|
|
runarch "${arch}" mage install openssh || die "${arch} install openssh" |
|
|
touch ${BUILDROOT}/.stamps/${arch}_openssh-ok |
|
|
else |
|
|
echo "Warning: openssh already installed for arch '${arch}'" |
|
|
fi |
|
78 |
|
|
79 |
|
# exclude these pkg from src chroot |
80 |
if [[ ${arch} != src ]] |
if [[ ${arch} != src ]] |
81 |
then |
then |
82 |
if [ ! -f ${BUILDROOT}/.stamps/${arch}_common-devutils-ok ] |
for pkg in ${NON_SRC_ARCH_PACKAGES[*]} |
83 |
then |
do |
84 |
runarch "${arch}" mage install "${BOOTSTRAP_DEVUTILS}" || die "${arch} install '${BOOTSTRAP_DEVUTILS}'" |
runarch-pkg-install "${arch}" "${pkg}" |
85 |
touch ${BUILDROOT}/.stamps/${arch}_common-devutils-ok |
done |
|
else |
|
|
echo "Warning: '${BOOTSTRAP_DEVUTILS}' already installed for arch '${arch}'" |
|
|
fi |
|
86 |
|
|
|
# install ccache |
|
|
if [ ! -f ${BUILDROOT}/.stamps/${arch}_ccache-ok ] |
|
|
then |
|
|
runarch "${arch}" mage install ccache || die "${arch} install ccache" |
|
|
touch ${BUILDROOT}/.stamps/${arch}_ccache-ok |
|
|
else |
|
|
echo "Warning: ccache already installed for arch '${arch}'" |
|
|
fi |
|
87 |
# setup ccache |
# setup ccache |
88 |
if [ ! -f ${BUILDROOT}/.stamps/${arch}_setup-ccache-ok ] |
if [ ! -f ${BUILDROOT}/.stamps/${arch}_setup-ccache-ok ] |
89 |
then |
then |
95 |
fi |
fi |
96 |
|
|
97 |
# update-ca-certificates |
# update-ca-certificates |
98 |
runarch "${arch}" update-ca-certificates # no die here, cmd may missing |
if [ -x ${BUILDROOT}/${arch}/usr/sbin/update-ca-certificates ] |
99 |
|
then |
100 |
|
runarch "${arch}" update-ca-certificates # no die here, cmd may missing |
101 |
|
fi |
102 |
|
|
103 |
# create list of protected packages |
# create list of protected packages |
104 |
echo "BUILDSERVER_CACHE_DIR=\"${BUILDSERVER_CACHE_DIR}\"" > ${BUILDROOT}/${arch}/.runrc |
echo "BUILDSERVER_CACHE_DIR=\"${BUILDSERVER_CACHE_DIR}\"" > ${BUILDROOT}/${arch}/.runrc |