Magellan Linux

Annotation of /trunk/pkgtools/add2mcore.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2116 - (hide annotations) (download) (as text)
Mon May 13 11:45:58 2013 UTC (11 years ago) by niro
File MIME type: application/x-sh
File size: 7193 byte(s)
-do not autostart services and fixed hardcored chroot path
1 niro 1330 #!/bin/bash
2    
3     source /usr/lib/mage/mage4.functions.sh
4    
5     SMAGEFILE="$1"
6     if [[ -z ${SMAGEFILE} ]]
7     then
8     echo "No smagefile given."
9     exit 1
10     fi
11     [[ -n $2 ]] && [[ $2 != -st ]] && SVN_COMMIT="$2"
12     if [[ $3 = -st ]] || [[ $2 = -st ]]
13     then
14     echo "Using SRCTARBALL ..."
15     USE_SRCTARBALL=true
16     fi
17    
18     #CURARCH=i686
19     #CURARCH=x86_64
20     CURARCH=i486
21    
22     if [[ -z ${CURARCH} ]]
23     then
24     echo "Environment variable \${CURARCH} not given. Aborted."
25     exit 1
26     fi
27    
28     BUILDROOT=/mnt/mcore-buildroot-"${CURARCH}"
29    
30     SMAGEDIR=$(dirname ${SMAGEFILE})
31     MD5DIR=${SMAGEDIR}/md5
32     MD5NAME=$(basename $1 .smage2).md5
33     SMAGENAME=$(basename $1)
34     CURPNAME=$(magename2pname $1)
35     CURPVER=$(magename2pver $1)
36     CURPBUILD=$(magename2pbuild $(basename $1 .smage2))
37     PKGNAME=${CURPNAME}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk
38     SRCPKGNAME=${CURPNAME}-${CURPVER}-${CURPBUILD}.mpks
39     REPO="$(echo ${SMAGEFILE#*trunk/} | cut -d'/' -f1)"
40     SSHLOGIN="tjoke@magellan-linux.de:/var/www/htdocs/magellan/mcore-dev/unstable/packages"
41     SRCTARBALL_URI="http://magellan-linux.de/magellan/mcore-dev/unstable/packages/src"
42    
43     # abort if the package is already installed in BUILDROOT
44     get_value_from_file()
45     {
46     local var="$1"
47     local file="$2"
48     local value
49    
50     # source /etc/mage.rc to get the includes right
51     source /etc/mage.rc.global
52     source /etc/mage.rc
53    
54     # evaluate the value
55     source ${file} $> /dev/null
56     eval value=\$$(echo ${var})
57     echo "${value}"
58     }
59    
60     get_function_from_file()
61     {
62     local function="$1"
63     local file="$2"
64    
65     # source /etc/mage.rc to get the includes right
66     source /etc/mage.rc.global
67     source /etc/mage.rc
68    
69     # evaluate the value
70     source ${file} $> /dev/null
71     export -f ${function}
72     }
73    
74     CURPCATEGORIE=$(get_value_from_file PCATEGORIE ${SMAGEFILE})
75     INSTALLDB_BUILDROOT=$(get_value_from_file INSTALLDB ${BUILDROOT}/etc/mage.rc)
76     CURSPLITPACKAGES="$(get_value_from_file SPLIT_PACKAGES ${SMAGEFILE})"
77    
78     if [[ -d ${BUILDROOT}/${INSTALLDB_BUILDROOT}/${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD} ]]
79     then
80     echo "Package '${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD}' already installed in ${BUILDROOT}. Aborting!"
81     exit 1
82     fi
83    
84     # delete md5 if exist
85     [[ -f ${MD5DIR}/${MD5NAME} ]] && rm ${MD5DIR}/${MD5NAME}
86    
87     if [[ ${USE_SRCTARBALL} != true ]]
88     then
89     /sbin/smage2 download ${SMAGEFILE}
90     /sbin/smage2 calcmd5 ${SMAGEFILE} ${MD5DIR}
91     pushd ${SMAGEDIR}/../
92     svn add ${CURPNAME}
93     pushd ${SMAGEDIR}
94     svn add md5
95     svn add ${SMAGENAME} md5/${MD5NAME}
96     [[ -d mcore ]] && svn add mcore
97     [[ -d mcore/files ]] && svn add mcore/files
98    
99     [[ -z ${SVN_COMMIT} ]] && SVN_COMMIT="auto added: ver bump to ${CURPVER}-${CURPBUILD}"
100     svn commit -m "${SVN_COMMIT}" ../${CURPNAME} ${SMAGENAME} md5 md5/${MD5NAME}
101     popd
102     fi
103    
104     # update target repo
105     sudo svn update ${BUILDROOT}/var/cache/mage/smage/trunk/include
106     #sudo svn update ${BUILDROOT}/var/cache/mage/smage/trunk/${REPO}
107     sudo svn update ${BUILDROOT}/var/cache/mage/smage/trunk/${REPO}/include
108     sudo svn update ${BUILDROOT}/var/cache/mage/smage/trunk/${REPO}/${CURPNAME}
109    
110     sudo -s << EOF
111     :> ${BUILDROOT}/.installrc
112    
113     echo "export LC_ALL=C" >> ${BUILDROOT}/.installrc
114 niro 2116 # do not start any services, set mage bootstrap flag
115     echo "export MAGE_BOOTSTRAP=true" >> ${BUILDROOT}/.installrc
116 niro 1330 echo "REPO=${REPO}" >> ${BUILDROOT}/.installrc
117     echo "CURPNAME=${CURPNAME}" >> ${BUILDROOT}/.installrc
118     echo "CURPVER=${CURPVER}" >> ${BUILDROOT}/.installrc
119     echo "CURPBUILD=${CURPBUILD}" >> ${BUILDROOT}/.installrc
120     echo "CURARCH=${CURARCH}" >> ${BUILDROOT}/.installrc
121     echo "CURSPLITPACKAGES=\"${CURSPLITPACKAGES}\"" >> ${BUILDROOT}/.installrc
122     echo "SMAGENAME=${SMAGENAME}" >> ${BUILDROOT}/.installrc
123     echo "MD5NAME=${MD5NAME}" >> ${BUILDROOT}/.installrc
124     echo "PKGNAME=${PKGNAME}" >> ${BUILDROOT}/.installrc
125     echo "SPKGNAME=${SPKGNAME}" >> ${BUILDROOT}/.installrc
126     echo '/usr/bin/whoami' >> ${BUILDROOT}/.installrc
127     echo 'source /etc/profile' >> ${BUILDROOT}/.installrc
128     #echo 'echo PATH=\${PATH};read' >> ${BUILDROOT}/.installrc
129     echo 'cd /var/cache/mage/smage/trunk/${REPO}' >> ${BUILDROOT}/.installrc
130     #echo 'svn update include' >> ${BUILDROOT}/.installrc
131     #echo 'svn update ../include' >> ${BUILDROOT}/.installrc
132     #echo 'svn update ${CURPNAME}' >> ${BUILDROOT}/.installrc
133     echo 'USE_SRCTARBALL=${USE_SRCTARBALL}' >> ${BUILDROOT}/.installrc
134     echo 'if [[ \${USE_SRCTARBALL} != true ]];then ' >> ${BUILDROOT}/.installrc
135     echo '/sbin/smage2 /var/cache/mage/smage/trunk/${REPO}/${CURPNAME}/${SMAGENAME} || exit 1' >> ${BUILDROOT}/.installrc
136     echo 'else' >> ${BUILDROOT}/.installrc
137     echo 'echo "Fetching SRC_TARBALL"' >> ${BUILDROOT}/.installrc
138     echo 'pushd /var/tmp/magebuild > /dev/null' >> ${BUILDROOT}/.installrc
139     echo "SRCTARBALL=${CURPNAME}-${CURPVER}-${CURPBUILD}.mpks" >> ${BUILDROOT}/.installrc
140     echo "SRCTARBALL_URI=${SRCTARBALL_URI}" >> ${BUILDROOT}/.installrc
141     echo '/usr/bin/wget -c \${SRCTARBALL_URI}/\${SRCTARBALL}' >> ${BUILDROOT}/.installrc
142     echo '/sbin/smage2 -st \${SRCTARBALL}' >> ${BUILDROOT}/.installrc
143     echo '[[ -f \${SRCTARBALL} ]] && rm \${SRCTARBALL}' >> ${BUILDROOT}/.installrc
144     echo 'popd > /dev/null' >> ${BUILDROOT}/.installrc
145     echo 'fi' >> ${BUILDROOT}/.installrc
146     echo 'if [[ ! -z \${CURSPLITPACKAGES} ]]' >> ${BUILDROOT}/.installrc
147     echo 'then' >> ${BUILDROOT}/.installrc
148     echo 'for package in \${CURSPLITPACKAGES}' >> ${BUILDROOT}/.installrc
149     echo 'do' >> ${BUILDROOT}/.installrc
150     echo '/sbin/mage install \${package} || exit 1' >> ${BUILDROOT}/.installrc
151     echo 'mv /var/cache/mage/packages/\${package}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk /BUILDED' >> ${BUILDROOT}/.installrc
152     echo 'done' >> ${BUILDROOT}/.installrc
153     echo 'else' >> ${BUILDROOT}/.installrc
154     echo '/sbin/mage install ${CURPNAME} || exit 1' >> ${BUILDROOT}/.installrc
155     echo 'mv /var/cache/mage/packages/${PKGNAME} /BUILDED' >> ${BUILDROOT}/.installrc
156     echo 'fi' >> ${BUILDROOT}/.installrc
157     echo 'mv /var/cache/mage/packages/sources/${SRCPKGNAME} /BUILDED/sources' >> ${BUILDROOT}/.installrc
158     echo 'rm -rf /var/cache/mage/sources/${CURPNAME}' >> ${BUILDROOT}/.installrc
159     EOF
160    
161 niro 2116 sudo -H chroot ${BUILDROOT} /bin/bash /.installrc
162 niro 1330 sudo rm ${BUILDROOT}/.installrc
163    
164     if [[ ! -z ${CURSPLITPACKAGES} ]]
165     then
166     for package in ${CURSPLITPACKAGES}
167     do
168     # get pkgtyp
169     get_function_from_file split_info_${package} ${SMAGEFILE}
170     split_info_${package}
171     if [[ ${PKGTYPE} = virtual ]]
172     then
173     unset PKGTYPE
174     continue
175     fi
176     if [[ ${NOPKGBUILD} = true ]]
177     then
178     unset NOPKGBUILD
179     continue
180     fi
181    
182     pkgname="${package}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk"
183    
184     if [[ -f ${BUILDROOT}/BUILDED/${pkgname} ]]
185     then
186     scp ${BUILDROOT}/BUILDED/${pkgname} ${SSHLOGIN}/${CURARCH}/
187     else
188     echo "Error: ${BUILDROOT}/BUILDED/${pkgname} missing!"
189     exit 1
190     fi
191     done
192     else
193     if [[ -f ${BUILDROOT}/BUILDED/${PKGNAME} ]]
194     then
195     scp ${BUILDROOT}/BUILDED/${PKGNAME} ${SSHLOGIN}/${CURARCH}/
196     else
197     echo "Error: ${BUILDROOT}/BUILDED/${PKGNAME} missing!"
198     exit 1
199     fi
200     fi
201    
202     if [[ -f ${BUILDROOT}/BUILDED/sources/${SRCPKGNAME} ]]
203     then
204     scp ${BUILDROOT}/BUILDED/sources/${SRCPKGNAME} ${SSHLOGIN}/src/
205     else
206     echo "Error: ${BUILDROOT}/BUILDED/${SRCPKGNAME} missing!"
207     # exit 1
208     fi
209    
210     [[ -d /var/cache/mage/sources/${CURPNAME} ]] && rm -rf /var/cache/mage/sources/${CURPNAME}
211    
212    
213     # if we don't break before; all things are right - regardless if $? is not zero
214     # because some things like src-pkg creation may be disabled
215     exit 0
216    

Properties

Name Value
svn:executable *