Magellan Linux

Contents of /trunk/pkgtools/add2mcore.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2116 - (show annotations) (download) (as text)
Mon May 13 11:45:58 2013 UTC (10 years, 11 months ago) by niro
File MIME type: application/x-sh
File size: 7193 byte(s)
-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=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 # do not start any services, set mage bootstrap flag
115 echo "export MAGE_BOOTSTRAP=true" >> ${BUILDROOT}/.installrc
116 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 sudo -H chroot ${BUILDROOT} /bin/bash /.installrc
162 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 *