Magellan Linux

Contents of /trunk/pkgtools/add2alx-060

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

Name Value
svn:executable *