Magellan Linux

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

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

revision 2728 by niro, Sun Aug 10 19:32:13 2014 UTC revision 2936 by niro, Wed Feb 3 11:58:39 2016 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  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
# Line 20  fi Line 23  fi
23    
24  # create buildroot layout  # create buildroot layout
25  install -d ${BUILDROOT}/.stamps  install -d ${BUILDROOT}/.stamps
26  install -d ${BUILDROOT}/tmp/mage-tree  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}
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     echo "boostrapping system:"
45     echo "  ARCH='${arch}'"
46     echo "  ROOT='${BUILDROOT}/${arch}'"
47     echo "  MAGERC='${BUILDSERVER_CONFIG_DIR}/profiles/${BUILDROOT_PROFILE}/${arch}/mage.rc'"
48     echo "  PROFILE='${MAGE_PROFILE}'"
49     echo "  BASESYSTEM='${BOOTSTRAP_BASESYSTEM}'"
50     echo
51   mage-bootstrap \   mage-bootstrap \
52   --root ${BUILDROOT}/${arch} \   --root ${BUILDROOT}/${arch} \
53   --magerc ${BUILDSERVER_CONFIG_DIR}/profiles/${BUILDROOT_PROFILE}/${arch}/mage.rc \   --magerc ${BUILDSERVER_CONFIG_DIR}/profiles/${BUILDROOT_PROFILE}/${arch}/mage.rc \
54   --profile "${BUILDROOT_PROFILE}" \   --profile "${MAGE_PROFILE}" \
55   --basesystem "${BOOTSTRAP_BASESYSTEM}" \   --basesystem "${BOOTSTRAP_BASESYSTEM}" \
56   || die "'${arch}' bootstrap"   || die "'${arch}' bootstrap"
57   touch ${BUILDROOT}/.stamps/${arch}_bootstrap-ok   touch ${BUILDROOT}/.stamps/${arch}_bootstrap-ok
# Line 50  done Line 63  done
63  # create initial mage-tree for all arches  # create initial mage-tree for all arches
64  ${BUILDSERVER_LIB_DIR}/buildserver-setup-mage-tree.sh  ${BUILDSERVER_LIB_DIR}/buildserver-setup-mage-tree.sh
65    
66  for arch in src ${BUILD_ARCH[*]}  for arch in $(enum-all-arch-types)
67  do  do
   
  echo "DEBUG: arch='${arch}' BUILD_ARCH[*]='${BUILD_ARCH[*]}'"  
   
68   # honor any proxy settings   # honor any proxy settings
69   :> ${BUILDROOT}/${arch}/etc/env.d/01proxy   :> ${BUILDROOT}/${arch}/etc/env.d/01proxy
70   [[ -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 62  do Line 72  do
72   [[ -n ${ftp_proxy} ]] && echo "ftp_proxy=\"${ftp_proxy}\"" >> ${BUILDROOT}/${arch}/etc/env.d/01proxy   [[ -n ${ftp_proxy} ]] && echo "ftp_proxy=\"${ftp_proxy}\"" >> ${BUILDROOT}/${arch}/etc/env.d/01proxy
73   [[ -n ${ftps_proxy} ]] && echo "ftps_proxy=\"${ftps_proxy}\"" >> ${BUILDROOT}/${arch}/etc/env.d/01proxy   [[ -n ${ftps_proxy} ]] && echo "ftps_proxy=\"${ftps_proxy}\"" >> ${BUILDROOT}/${arch}/etc/env.d/01proxy
74   [[ -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
75     # honor tmp-pkg-cleanup
76     [[ -n ${CLEAN_TMP_PACKAGES} ]] && echo "CLEAN_TMP_PACKAGES=\"${CLEAN_TMP_PACKAGES}\"" >> ${BUILDROOT}/${arch}/etc/env.d/99-buildserver-clean-tmp-packages
77   runarch ${arch} env-rebuild || die "${arch} environment rebuild for proxy setup"   runarch ${arch} env-rebuild || die "${arch} environment rebuild for proxy setup"
78    
79   # install subversion   # always enable bootstrap mode to supress the startups of any services
80   if [ ! -f ${BUILDROOT}/.stamps/${arch}_subversion-ok ]   :> ${BUILDROOT}/${arch}/etc/env.d/00mage-buildserver
81   then   echo "MAGE_BOOTSTRAP=\"true\"" >> ${BUILDROOT}/${arch}/etc/env.d/00mage-buildserver
82   runarch "${arch}" mage install subversion || die "${arch} install subversion"  
83   touch ${BUILDROOT}/.stamps/${arch}_subversion-ok   for pkg in ${ALL_ARCH_PACKAGES[*]}
84   else   do
85   echo "Warning: subversion already installed for arch '${arch}'"   runarch-pkg-install "${arch}" "${pkg}"
86   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  
87    
88     # exclude these pkg from src chroot
89   if [[ ${arch} != src ]]   if [[ ${arch} != src ]]
90   then   then
91   if [ ! -f ${BUILDROOT}/.stamps/${arch}_common-devutils-ok ]   for pkg in ${NON_SRC_ARCH_PACKAGES[*]}
92   then   do
93   runarch "${arch}" mage install "${BOOTSTRAP_DEVUTILS}" || die "${arch} install '${BOOTSTRAP_DEVUTILS}'"   runarch-pkg-install "${arch}" "${pkg}"
94   touch ${BUILDROOT}/.stamps/${arch}_common-devutils-ok   done
  else  
  echo "Warning: '${BOOTSTRAP_DEVUTILS}' already installed for arch '${arch}'"  
  fi  
95    
  # 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  
96   # setup ccache   # setup ccache
97   if [ ! -f ${BUILDROOT}/.stamps/${arch}_setup-ccache-ok ]   if [ ! -f ${BUILDROOT}/.stamps/${arch}_setup-ccache-ok ]
98   then   then
# Line 109  do Line 102  do
102   echo "Warning: ccache already configured for arch '${arch}'"   echo "Warning: ccache already configured for arch '${arch}'"
103   fi   fi
104   fi   fi
105    
106     # update-ca-certificates
107     if [ -x ${BUILDROOT}/${arch}/usr/sbin/update-ca-certificates ]
108     then
109     runarch "${arch}" update-ca-certificates # no die here, cmd may missing
110     fi
111    
112     # create list of protected packages
113     echo "BUILDSERVER_CACHE_DIR=\"${BUILDSERVER_CACHE_DIR}\"" > ${BUILDROOT}/${arch}/.runrc
114     cat >> ${BUILDROOT}/${arch}/.runrc << "EOF"
115    if [ -f /etc/rc.d/init.d/functions ]
116    then
117     source /etc/rc.d/init.d/functions
118    else
119     die "/etc/rc.d/init.d/functions not found"
120    fi
121    if [ -f /etc/mage.rc.global ]
122    then
123     source /etc/mage.rc.global
124    else
125     die "/etc/mage.rc.global not found"
126    fi
127    if [ -f /etc/mage.rc ]
128    then
129     source /etc/mage.rc
130    else
131     die "/etc/mage.rc not found"
132    fi
133    
134    env-rebuild
135    source /etc/profile
136    
137    echo "generate protected packages info data"
138    install -d ${BUILDSERVER_CACHE_DIR}/protected
139    
140    for mage in $(find ${INSTALLDB} -name \*.${MAGESUFFIX})
141    do
142     pkgname=$(basename ${mage} .${MAGESUFFIX})
143     pkgname="${pkgname%-*-*}"
144     echo "${pkgname}" > ${BUILDSERVER_CACHE_DIR}/protected/"${pkgname}"
145    done
146    EOF
147     runarch-script ${arch} .runrc  || die "${arch} protect-gen failed"
148     if [ -f ${BUILDROOT}/${arch}/.runrc ]
149     then
150     rm ${BUILDROOT}/${arch}/.runrc
151     fi
152    
153   # cleanup   # cleanup
154   runarch "${arch}" mage clean || die "${arch} mage clean"   runarch "${arch}" mage clean || die "${arch} mage clean"
155    

Legend:
Removed from v.2728  
changed lines
  Added in v.2936