Magellan Linux

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

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

revision 2730 by niro, Sun Aug 10 19:35:40 2014 UTC revision 2796 by niro, Thu Aug 28 09:45:42 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 $(enum-all-arch-types)
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  #  #
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
# Line 50  done Line 56  done
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
# Line 64  do Line 67  do
67   [[ -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
68   runarch ${arch} env-rebuild || die "${arch} environment rebuild for proxy setup"   runarch ${arch} env-rebuild || die "${arch} environment rebuild for proxy setup"
69    
70   # install subversion   # always enable bootstrap mode to supress the startups of any services
71   if [ ! -f ${BUILDROOT}/.stamps/${arch}_subversion-ok ]   :> ${BUILDROOT}/${arch}/etc/env.d/00mage-buildserver
72   then   echo "MAGE_BOOTSTRAP=\"true\"" >> ${BUILDROOT}/${arch}/etc/env.d/00mage-buildserver
73   runarch "${arch}" mage install subversion || die "${arch} install subversion"  
74   touch ${BUILDROOT}/.stamps/${arch}_subversion-ok   for pkg in ${ALL_ARCH_PACKAGES[*]}
75   else   do
76   echo "Warning: subversion already installed for arch '${arch}'"   runarch-pkg-install "${arch}" "${pkg}"
77   fi   done
   
  # 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
# Line 114  do Line 98  do
98   runarch "${arch}" update-ca-certificates # no die here, cmd may missing   runarch "${arch}" update-ca-certificates # no die here, cmd may missing
99    
100   # create list of protected packages   # create list of protected packages
101   echo "BUILDSERVER_CONFIG_DIR=\"${BUILDSERVER_CONFIG_DIR}\"" > ${BUILDROOT}/${arch}/.runrc   echo "BUILDSERVER_CACHE_DIR=\"${BUILDSERVER_CACHE_DIR}\"" > ${BUILDROOT}/${arch}/.runrc
  install -d ${BUILDSERVER_CONFIG_DIR}/protected  
102   cat >> ${BUILDROOT}/${arch}/.runrc << "EOF"   cat >> ${BUILDROOT}/${arch}/.runrc << "EOF"
 env-rebuild  
 source /etc/profile  
   
103  if [ -f /etc/rc.d/init.d/functions ]  if [ -f /etc/rc.d/init.d/functions ]
104  then  then
105   source /etc/rc.d/init.d/functions   source /etc/rc.d/init.d/functions
# Line 139  else Line 119  else
119   die "/etc/mage.rc not found"   die "/etc/mage.rc not found"
120  fi  fi
121    
122    env-rebuild
123    source /etc/profile
124    
125    echo "generate protected packages info data"
126    install -d ${BUILDSERVER_CACHE_DIR}/protected
127    
128  for mage in $(find ${INSTALLDB} -name \*.${MAGESUFFIX})  for mage in $(find ${INSTALLDB} -name \*.${MAGESUFFIX})
129  do  do
130   pkgname=$(basename ${i} .${MAGESUFFIX})   pkgname=$(basename ${mage} .${MAGESUFFIX})
131   pkgname="${pkgname%-*-*}"   pkgname="${pkgname%-*-*}"
132   echo "${pkgname}" > ${BUILDSERVER_CONFIG_DIR}/protected/"${pkgname}"   echo "${pkgname}" > ${BUILDSERVER_CACHE_DIR}/protected/"${pkgname}"
133  done  done
134  EOF  EOF
135     runarch-script ${arch} .runrc  || die "${arch} protect-gen failed"
136     if [ -f ${BUILDROOT}/${arch}/.runrc ]
137     then
138     rm ${BUILDROOT}/${arch}/.runrc
139     fi
140    
141   # cleanup   # cleanup
142   runarch "${arch}" mage clean || die "${arch} mage clean"   runarch "${arch}" mage clean || die "${arch} mage clean"

Legend:
Removed from v.2730  
changed lines
  Added in v.2796