Magellan Linux

Diff of /trunk/mage-buildserver/buildserver-prepare.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2588 by niro, Thu Feb 6 13:07:22 2014 UTC revision 2793 by niro, Thu Aug 28 09:42:57 2014 UTC
# Line 2  Line 2 
2    
3  # get configuration  # get configuration
4  BUILDSERVER_CONFIG_DIR="/etc/mage-buildserver"  BUILDSERVER_CONFIG_DIR="/etc/mage-buildserver"
5    BUILDSERVER_CACHE_DIR="/var/cache/mage-buildserver"
6  source ${BUILDSERVER_CONFIG_DIR}/buildserver.conf  source ${BUILDSERVER_CONFIG_DIR}/buildserver.conf
7    
8  source ${BUILDSERVER_LIB_DIR}/buildserver-functions.sh  source ${BUILDSERVER_LIB_DIR}/buildserver-functions.sh
9    
10  # override  ALL_ARCH_PACKAGES=( subversion openssh )
11  #BUILDROOT="/mnt/test-buildroot"  NON_SRC_ARCH_PACKAGES=( "${BOOTSTRAP_DEVUTILS}" ccache python scanelf )
12  #BUILD_ARCH=( x86_64 i686 )  
13  #BUILDROOT_PROFILE="R11"  # fallback
14  #SMAGE_SVN_REPO="svn://cvs.magellan-linux.de/smage/trunk"  if [[ -z ${MAGE_PROFILE} ]]
15  #MAGE_SVN_REPO="svn://cvs.magellan-linux.de/mage/trunk"  then
16     echo "Warning: using '${BUILDROOT_PROFILE}' as MAGE_PROFILE. You should define MAGE_PROFILE in the profile.conf."
17     MAGE_PROFILE="${BUILDROOT_PROFILE}"
18    fi
19    
20  if [ ! -f ${BUILDROOT}/.stamps/mage_svn-checkout-ok ]  if [ ! -f ${BUILDROOT}/.stamps/mage_svn-checkout-ok ]
21  then  then
# Line 20  fi Line 24  fi
24    
25  # create buildroot layout  # create buildroot layout
26  install -d ${BUILDROOT}/.stamps  install -d ${BUILDROOT}/.stamps
27  install -d ${BUILDROOT}/tmp/mage-tree  install -d ${BUILDROOT}/ssh
28  for arch in ${BUILD_ARCH[*]} src  for arch in ${BUILD_ARCH[*]} src
29  do  do
30   install -d ${BUILDROOT}/${arch}   install -d ${BUILDROOT}/${arch}
31     install -d ${BUILDROOT}/mage-tree/${arch}
32   install -d ${BUILDROOT}/packages/${arch}   install -d ${BUILDROOT}/packages/${arch}
33   install -d ${BUILDROOT}/meta/${arch}   install -d ${BUILDROOT}/meta/${arch}
34     install -d ${BUILDROOT}/build-info/${arch}
35  done  done
36    
37  #  #
# Line 38  do Line 44  do
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
# Line 64  do Line 70  do
70   [[ -n ${no_proxy} ]] && echo "no_proxy=\"${no_proxy}\"" >> ${BUILDROOT}/${arch}/etc/env.d/01proxy   [[ -n ${no_proxy} ]] && echo "no_proxy=\"${no_proxy}\"" >> ${BUILDROOT}/${arch}/etc/env.d/01proxy
71   runarch ${arch} env-rebuild || die "${arch} environment rebuild for proxy setup"   runarch ${arch} env-rebuild || die "${arch} environment rebuild for proxy setup"
72    
73   # install subversion   # always enable bootstrap mode to supress the startups of any services
74   if [ ! -f ${BUILDROOT}/.stamps/${arch}_subversion-ok ]   :> ${BUILDROOT}/${arch}/etc/env.d/00mage-buildserver
75   then   echo "MAGE_BOOTSTRAP=\"true\"" >> ${BUILDROOT}/${arch}/etc/env.d/00mage-buildserver
76   runarch "${arch}" mage install subversion || die "${arch} install subversion"  
77   touch ${BUILDROOT}/.stamps/${arch}_subversion-ok   for pkg in ${ALL_ARCH_PACKAGES[*]}
78   else   do
79   echo "Warning: subversion already installed for arch '${arch}'"   runarch-pkg-install "${arch}" "${pkg}"
80   fi   done
81    
82     # exclude these pkg from src chroot
83   if [[ ${arch} != src ]]   if [[ ${arch} != src ]]
84   then   then
85   if [ ! -f ${BUILDROOT}/.stamps/${arch}_common-devutils-ok ]   for pkg in ${NON_SRC_ARCH_PACKAGES[*]}
86   then   do
87   runarch "${arch}" mage install "${BOOTSTRAP_DEVUTILS}" || die "${arch} install '${BOOTSTRAP_DEVUTILS}'"   runarch-pkg-install "${arch}" "${pkg}"
88   touch ${BUILDROOT}/.stamps/${arch}_common-devutils-ok   done
  else  
  echo "Warning: '${BOOTSTRAP_DEVUTILS}' already installed for arch '${arch}'"  
  fi  
89    
  # 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  
90   # setup ccache   # setup ccache
91   if [ ! -f ${BUILDROOT}/.stamps/${arch}_setup-ccache-ok ]   if [ ! -f ${BUILDROOT}/.stamps/${arch}_setup-ccache-ok ]
92   then   then
# Line 100  do Line 96  do
96   echo "Warning: ccache already configured for arch '${arch}'"   echo "Warning: ccache already configured for arch '${arch}'"
97   fi   fi
98   fi   fi
99    
100     # update-ca-certificates
101     runarch "${arch}" update-ca-certificates # no die here, cmd may missing
102    
103     # create list of protected packages
104     echo "BUILDSERVER_CACHE_DIR=\"${BUILDSERVER_CACHE_DIR}\"" > ${BUILDROOT}/${arch}/.runrc
105     cat >> ${BUILDROOT}/${arch}/.runrc << "EOF"
106    if [ -f /etc/rc.d/init.d/functions ]
107    then
108     source /etc/rc.d/init.d/functions
109    else
110     die "/etc/rc.d/init.d/functions not found"
111    fi
112    if [ -f /etc/mage.rc.global ]
113    then
114     source /etc/mage.rc.global
115    else
116     die "/etc/mage.rc.global not found"
117    fi
118    if [ -f /etc/mage.rc ]
119    then
120     source /etc/mage.rc
121    else
122     die "/etc/mage.rc not found"
123    fi
124    
125    env-rebuild
126    source /etc/profile
127    
128    echo "generate protected packages info data"
129    install -d ${BUILDSERVER_CACHE_DIR}/protected
130    
131    for mage in $(find ${INSTALLDB} -name \*.${MAGESUFFIX})
132    do
133     pkgname=$(basename ${mage} .${MAGESUFFIX})
134     pkgname="${pkgname%-*-*}"
135     echo "${pkgname}" > ${BUILDSERVER_CACHE_DIR}/protected/"${pkgname}"
136    done
137    EOF
138     runarch-script ${arch} .runrc  || die "${arch} protect-gen failed"
139     if [ -f ${BUILDROOT}/${arch}/.runrc ]
140     then
141     rm ${BUILDROOT}/${arch}/.runrc
142     fi
143    
144   # cleanup   # cleanup
145   runarch "${arch}" mage clean || die "${arch} mage clean"   runarch "${arch}" mage clean || die "${arch} mage clean"
146    

Legend:
Removed from v.2588  
changed lines
  Added in v.2793