Magellan Linux

Annotation of /branches/mage-next/src/smage2.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2559 - (hide annotations) (download) (as text)
Wed Jan 29 12:12:00 2014 UTC (10 years, 3 months ago) by niro
File MIME type: application/x-sh
File size: 21628 byte(s)
-moved usr/lib/mage/smage2.sh > src/smage2.sh
1 niro 24 #!/bin/bash
2 niro 1571 # $Id$
3 niro 24
4     # compiles/installs .smage2 source install scripts
5     # needs pkgbuild_dir (mage)
6    
7 niro 1571 # TODO: record dynlib, gz | xz database
8 niro 24
9    
10 niro 419 # set default user mage.rc
11     : ${MAGERC="/etc/mage.rc"}
12    
13 niro 169 # export default C locale
14     export LC_ALL=C
15    
16 niro 439 source /etc/mage.rc.global
17 niro 419 source ${MAGERC}
18 niro 1273 source ${MLIBDIR}/mage4.functions.sh
19 niro 1640 source ${MLIBDIR}/smage2.functions.sh
20 niro 24
21 niro 2209 # export default path
22     export PATH="${PATH}:${MLIBDIR}"
23    
24 niro 1589 ## setup ##
25     SMAGENAME="$1"
26     SMAGEVERSION="$(< ${MLIBDIR}/version)"
27    
28 niro 1639 # expand PKGDIR, BUILDDIR and BINDIR with MROOT
29 niro 347 if [[ -n ${MROOT} ]]
30     then
31     export PKGDIR=${MROOT}/${PKGDIR}
32     export BUILDDIR=${MROOT}/${BUILDDIR}
33     export BINDIR=${MROOT}/${BINDIR}
34     fi
35    
36 niro 59 # print out our version
37     showversion
38     echo
39    
40 niro 1641 if [[ -z ${SMAGENAME} ]]
41 niro 24 then
42     echo "No .smage2 file given. Exiting."
43     echo
44     exit 1
45     fi
46    
47 niro 1584 # load supported mage features
48     load_mage_features
49    
50 niro 192 # updating smage2-scripts
51 niro 306 if [[ $1 = update ]]
52 niro 24 then
53 niro 59 if [ ! -d ${SOURCEDIR} ]
54     then
55     install -d ${SOURCEDIR}
56     fi
57     syncsmage2
58     exit 0
59     fi
60    
61 niro 192 # creates md5sums for smages to given dir
62 niro 306 if [[ $1 = calcmd5 ]]
63 niro 59 then
64 niro 1207 if [ $# -ge 2 ]
65 niro 59 then
66     SMAGENAME="$2"
67     MD5DIR="$3"
68 niro 1207 [[ -z ${MD5DIR} ]] && MD5DIR="$(dirname ${SMAGENAME})/md5"
69    
70 niro 1346 smagesource ${SMAGENAME} || die "download source failed"
71 niro 59
72 niro 66 # overridable sourcedir; must be declared after source of the smage2
73     CALC_SOURCEDIR="${CALC_SOURCEDIR:="${SOURCEDIR}/${PNAME}"}"
74    
75 niro 59 [ -z "${SRC_URI}" ] && die "Nothing declared to calculate."
76    
77     # end of array
78     EOA=${#SRC_URI[*]}
79    
80     [ ! -d ${MD5DIR} ] && install -d ${MD5DIR}
81    
82     # clear md5sum file
83     MY_MD5_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
84     echo -n > ${MY_MD5_FILE}
85    
86     for ((i=0; i < EOA; i++))
87     do
88 niro 66 # url to file
89     my_SRC_URI="$(echo ${SRC_URI[${i}]} | cut -d' ' -f1)"
90    
91     # subdir in sources dir; the my_SRCI_URI file goes to there
92     my_SRC_URI_DEST="$(echo ${SRC_URI[${i}]} | cut -d' ' -f2)"
93    
94     # if my_src_uri_dest is not equal my_src_uri; than an other dir is used
95     if [[ ${my_SRC_URI_DEST} != ${my_SRC_URI} ]]
96     then
97     MY_SRC_FILE="${my_SRC_URI_DEST}/$(basename ${SRC_URI[${i}]})"
98     else
99     MY_SRC_FILE="$(basename ${SRC_URI[${i}]})"
100     fi
101    
102 niro 59 if [ -e "${CALC_SOURCEDIR}/${MY_SRC_FILE}" ]
103     then
104     echo "calculating $(basename ${MY_SRC_FILE}) ..."
105     ( cd ${CALC_SOURCEDIR}; md5sum "${MY_SRC_FILE}" ) >> ${MY_MD5_FILE}
106     else
107     echo "WARNING: File '$(basename ${MY_SRC_FILE}) not found in ${CALC_SOURCEDIR}."
108     fi
109 niro 66
110     # unset them to be shure
111     unset my_SRC_URI
112     unset my_SRC_URI_DEST
113     unset my_SRC_URI_MIRROR
114     unset my_SOURCEDIR
115 niro 59 done
116 niro 306
117 niro 59 echo
118     echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
119     echo
120     else
121     echo "Usage: Calculating MD5 Sums:"
122 niro 1207 echo " $(basename $0) calcmd5 /path/to/SMAGENAME [/path/to/MD5DIR]"
123 niro 59 echo
124     echo
125     echo "Export the CALC_SOURCEDIR variable to override current SOURCEDIRs."
126     echo
127     exit 1
128     fi
129 niro 306
130 niro 59 exit 0
131     fi
132    
133 niro 192 # download sources
134 niro 59 if [ "$1" == "download" -a -n "$2" ]
135     then
136 niro 24 if [ ! -d ${SMAGESCRIPTSDIR} ]
137     then
138     install -d ${SMAGESCRIPTSDIR}
139     fi
140 niro 59
141     # get smage
142     SMAGENAME="$2"
143     MD5DIR="$(dirname ${SMAGENAME})/md5"
144 niro 1346 smagesource ${SMAGENAME} || die "download source failed"
145 niro 59
146     download_sources
147 niro 24 exit 0
148     fi
149    
150 niro 202 # regen-mage-tree
151     if [ "$1" == "only-regen-tree" -a -n "$2" ]
152     then
153     # set correct SMAGENAME
154     SMAGENAME="$2"
155     MD5DIR="$(dirname ${SMAGENAME})/md5"
156 niro 1346 smagesource ${SMAGENAME} || die "regen: smage2 not found"
157 niro 202
158     regen_mage_tree
159 niro 255
160 niro 943 # build several subpackages
161 niro 2365 if [[ -n ${SPLIT_PACKAGES} ]]
162 niro 943 then
163     split_save_variables
164 niro 964 for subpackage in ${SPLIT_PACKAGES}
165 niro 943 do
166     # get the right variables for the split
167     export PNAME="${subpackage}"
168     split_info_${subpackage}
169 niro 1659 # fix PCATEGORIE -> PCAT
170     if [[ ! -z ${PCATEGORIE} ]]
171     then
172     PCAT="${PCATEGORIE}"
173     unset PCATEGORIE
174     fi
175 niro 943 # build md5sum for existing packages
176     generate_package_md5sum \
177 niro 1641 --pcat "${PCAT}" \
178 niro 943 --pname "${PNAME}" \
179     --pver "${PVER}" \
180     --pbuild "${PBUILD}" \
181     --parch "${ARCH}"
182 niro 951 # restore smage environment
183     split_restore_variables
184 niro 943 done
185 niro 951 # unset all saved smage variables
186     split_unset_variables
187 niro 943
188 niro 890 else
189     # build md5sum for existing packages
190     generate_package_md5sum \
191 niro 1641 --pcat "${PCAT}" \
192 niro 890 --pname "${PNAME}" \
193     --pver "${PVER}" \
194     --pbuild "${PBUILD}" \
195 niro 943 --parch "${ARCH}"
196 niro 890 fi
197 niro 255
198 niro 202 exit 0
199     fi
200    
201 niro 412 if [ "$1" == "--create-src-tarball" -a -n "$2" ]
202 niro 403 then
203     # set correct SMAGENAME
204     SMAGENAME="$2"
205     MD5DIR="$(dirname ${SMAGENAME})/md5"
206    
207 niro 412 echo -e "${COLGREEN}create-src-tarball called for ${COLBLUE}${SMAGENAME}${COLGREEN} ...${COLDEFAULT}"
208 niro 403
209 niro 1346 smagesource ${SMAGENAME} || die "regen: smage2 not found"
210 niro 403
211     if [[ -d ${SOURCEDIR}/${PNAME} ]]
212     then
213     echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
214     rm -rf ${SOURCEDIR}/${PKGNAME}
215     fi
216    
217     download_sources
218     source_pkg_build ${SMAGENAME}
219     exit 0
220     fi
221    
222 niro 406 if [ "$1" == "--src-tarball" -a -n "$2" ] || [ "$1" == "-st" -a -n "$2" ]
223 niro 403 then
224 niro 412 SRCPKGTARBALL="${2}"
225 niro 1584 msetfeature "srcpkgtarball"
226 niro 403
227 niro 412 # abort if given file is not a source pkg
228     [[ ${SRCPKGTARBALL##*.} != ${SRCPKGSUFFIX} ]] && die "${SRCPKGTARBALL} is not a valid src-pkg file."
229    
230     # set correct SMAGENAME; use the one that the src_pkg provide
231     # /path/to/SOURCEDIR/PNAME/SMAGENAME
232     SMAGENAME="${SOURCEDIR}/$(basename ${SRCPKGTARBALL%-*-*})/$(basename ${SRCPKGTARBALL} .${SRCPKGSUFFIX}).${SMAGESUFFIX}"
233    
234 niro 403 echo -e "${COLGREEN}Using src-tarball ${COLBLUE}${SRCPKGTARBALL}${COLGREEN} ...${COLDEFAULT}"
235    
236     [[ ! -d ${SOURCEDIR} ]] && install -d ${SOURCEDIR}
237    
238     # unpack srctarball
239     [[ ! -f ${SRCPKGTARBALL} ]] && die "Error: ${SRCPKGTARBALL} does not exist. Aborting."
240    
241     tar xvjf ${SRCPKGTARBALL} -C ${SOURCEDIR} || die "Error unpackung src-tarball ${SRCPKGTARBALL}"
242 niro 412
243     [[ ! -f ${SMAGENAME} ]] && die "Included smage2 file in src-tarball not found: ${SMAGENAME}"
244 niro 403 fi
245    
246 niro 1617 if [ "$1" == "--resume" -a -n "$2" ]
247     then
248     msetfeature "resume"
249     SMAGENAME="$2"
250     fi
251 niro 403
252 niro 306 [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ] && die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
253     [ -z "$(basename ${SMAGENAME} | grep .${SMAGESUFFIX})" ] &&
254     die "File '$(basename ${SMAGENAME})' is not a sMage v${SMAGEVERSION} file. Aborting."
255 niro 419 [ -z "${SOURCEDIR}" ] && die "\$SOURCEDIR not found. Please setup your ${MAGERC} correctly."
256     [ -z "${SMAGESCRIPTSDIR}" ] && die "\$SMAGESCRIPTSDIR not found. Please setup your ${MAGERC} correctly."
257     [ -z "${SMAGE2RSYNC}" ] && die "\$SMAGE2RSYNC not found. Please setup your ${MAGERC} correctly."
258     [ -z "${BINDIR}" ] && die "no BINDIR variable found in ${MAGERC}"
259     [ -z "${CHOST}" ] && die "no CHOST variable found in ${MAGERC}"
260     [ -z "${CFLAGS}" ] && die "no CFLAGS variable found in ${MAGERC}"
261     [ -z "${CXXFLAGS}" ] && die "no CXXFLAGS variable found in ${MAGERC}"
262 niro 24
263 niro 1346 smagesource ${SMAGENAME} || die "source failed"
264 niro 1649 PKGNAME="${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}"
265 niro 59 MD5DIR="$(dirname ${SMAGENAME})/md5"
266 niro 941 SMAGE_LOG_CMD="tee -a /var/log/smage/${PKGNAME}.log"
267 niro 24
268     xtitle "Compiling ${PKGNAME}"
269 niro 439 echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
270 niro 59
271 niro 191 # auto regen mage tree if requested
272     regen_mage_tree
273    
274 niro 1635 if mqueryfeature "srcpkgbuild"
275 niro 403 then
276     if [[ -d ${SOURCEDIR}/${PNAME} ]]
277     then
278 niro 441 echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
279 niro 408 rm -rf ${SOURCEDIR}/${PNAME}
280 niro 403 fi
281     fi
282    
283 niro 192 # download sources
284 niro 1584 mqueryfeature "srcpkgtarball" || download_sources
285 niro 59
286 niro 192 # fixes some issues with these functions
287 niro 24 export -f src_prepare || die "src_prepare export failed"
288     export -f src_compile || die "src_compile export failed"
289 niro 1575 export -f src_check || die "src_check export failed"
290 niro 24 export -f src_install || die "src_install export failed"
291    
292 niro 192 # fixes some compile issues
293 niro 24 export CHOST="${CHOST}" || die "CHOST export failed"
294     export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
295 niro 1616 if [[ -z ${CXXFLAGS} ]]
296     then
297     export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
298     else
299     export CXXFLAGS="${CXXFLAGS}" || die "CXXFLAGS export failed"
300     fi
301     export LDFLAGS="${LDFLAGS}" || die "LDFLAGS export failed"
302 niro 24 export BINDIR="${BINDIR}" || die "BINDIR export failed"
303     export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
304    
305 niro 192 # setup distcc
306 niro 351 # setup for distcc goes *before* ccache, so ccache comes before distcc in path
307 niro 1584 mqueryfeature "distcc" && setup_distcc_environment
308 niro 24
309 niro 2159 # setup icecc
310     # setup for icecc goes *before* ccache, so ccache comes before icecc in path
311 niro 2172 mqueryfeature "icecc" && setup_icecc_environment
312 niro 2159
313 niro 192 # setup ccache
314 niro 1584 mqueryfeature "ccache" && setup_ccache_environment
315 niro 24
316 niro 1617 if mqueryfeature "resume"
317 niro 24 then
318 niro 1617 echo -e "${COLMAGENTA}Resume requested; continuing previous build${COLDEFAULT}"
319 niro 24
320 niro 1617 # setup build logging
321     [[ ! -d /var/log/smage ]] && install -d /var/log/smage
322     if [[ -f /var/log/smage/${PKGNAME}.log.bz2 ]]
323     then
324     bunzip2 -f /var/log/smage/${PKGNAME}.log.bz2
325     fi
326     echo -e "### Resume started on $(date) ###\n" >> /var/log/smage/${PKGNAME}.log
327 niro 24
328 niro 1617 else
329     # clean up builddir if a previously one exist
330     if [ -d ${BUILDDIR} ]
331     then
332     rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
333     fi
334     install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
335 niro 24
336 niro 1617 # clean up srcdir if a previously unpacked one exist
337     if [ -d ${SRCDIR} ]
338     then
339     rm -rf ${SRCDIR}
340     fi
341    
342     # clean up bindir if a previous build exist or create a new one
343     if [ -d ${BINDIR} ]
344     then
345     rm -rf ${BINDIR}
346     fi
347     install -d ${BINDIR} || die "couldn't create \$BINDIR."
348    
349     # clean up package temp dir if a previous build exist
350     if [ -d ${BUILDDIR}/${PKGNAME} ]
351     then
352     rm -rf ${BUILDDIR}/${PKGNAME}
353     fi
354    
355 niro 1621 # clean up stamps dir
356     if [ -d ${BUILDDIR}/.stamps ]
357     then
358     rm -rf ${BUILDDIR}/.stamps
359     fi
360    
361 niro 1617 # setup build logging
362     [[ ! -d /var/log/smage ]] && install -d /var/log/smage
363     echo -e "### Build started on $(date) ###\n" > /var/log/smage/${PKGNAME}.log
364 niro 24 fi
365    
366 niro 1593 if [[ ${PKGTYPE} = virtual ]]
367 niro 1575 then
368 niro 1593 echo "virtual package detected; nothing will be build ..."
369     # automatically set !pkgbuild here too
370     msetfeature "!pkgbuild"
371 niro 1575 else
372 niro 1617 ( run_resume src_prepare || src_prepare ) | ${SMAGE_LOG_CMD}
373 niro 1593 die_pipestatus 0 "src_prepare failed"
374 niro 1617 resume_stamp src_prepare
375     step_by_step src_prepare
376 niro 1575
377 niro 1617 ( run_resume src_compile || src_compile ) | ${SMAGE_LOG_CMD}
378 niro 1593 die_pipestatus 0 "src_compile failed"
379 niro 1617 resume_stamp src_compile
380     step_by_step src_compile
381 niro 945
382 niro 1593 # only run checks if requested
383     if mqueryfeature "!check"
384     then
385     echo "!check detected; src_check() will not be run!" | ${SMAGE_LOG_CMD}
386     else
387 niro 1617 ( run_resume src_check || src_check ) | ${SMAGE_LOG_CMD}
388 niro 1593 die_pipestatus 0 "src_check failed"
389 niro 1617 resume_stamp src_check
390 niro 1593 fi
391 niro 1617 step_by_step src_check
392 niro 945
393 niro 1593 # build several subpackages
394     if [[ -n ${SPLIT_PACKAGES} ]]
395     then
396     # save bindir & pname
397     split_save_variables
398     export SAVED_BINDIR="${BINDIR}"
399     for subpackage in ${SPLIT_PACKAGES}
400     do
401 niro 1784 split_info_${subpackage}
402     if [[ ${PKGTYPE} = virtual ]]
403 niro 1593 then
404 niro 2042 echo
405     echo -en "${COLBLUE}*** ${COLDEFAULT}"
406     echo -en "Virtual package detected"
407     echo -en " for subpkg: ${COLBLUE}${PNAME}${COLDEFAULT}"
408     echo -e " - basepkg: ${COLBLUE}${SPLIT_PACKAGE_BASE}${COLDEFAULT} ..."
409    
410 niro 1784 echo "virtual package detected; nothing will be build ..."
411     # automatically set !pkgbuild here too
412     msetfeature "!pkgbuild"
413     else
414     if typeset -f src_install_${subpackage} > /dev/null
415     then
416     # export subpackage bindir
417     export BINDIR="${SAVED_BINDIR}_${subpackage}"
418     # export PNAME, several internal function and include
419     # rely on this variable
420     export PNAME="${subpackage}"
421 niro 1593
422 niro 1784 echo
423     echo -en "${COLBLUE}*** ${COLDEFAULT}"
424 niro 2042 echo -en "Running ${COLGREEN}split src_install()${COLDEFAULT}"
425 niro 1784 echo -en " for subpkg: ${COLBLUE}${PNAME}${COLDEFAULT}"
426     echo -e " - basepkg: ${COLBLUE}${SPLIT_PACKAGE_BASE}${COLDEFAULT} ..."
427 niro 1593
428 niro 1784 ( run_resume src_install_${subpackage} || src_install_${subpackage} ) | ${SMAGE_LOG_CMD}
429     die_pipestatus 0 "src_install_${subpackage} failed"
430     resume_stamp src_install_${subpackage}
431     step_by_step src_install_${subpackage}
432     fi
433 niro 1593 fi
434 niro 2042 # restore smage environment
435     split_restore_variables
436 niro 1593 done
437     # unset all saved smage variables
438     split_unset_variables
439     else
440 niro 1617 ( run_resume src_install || src_install ) | ${SMAGE_LOG_CMD}
441 niro 1593 die_pipestatus 0 "src_install failed"
442 niro 1617 resume_stamp src_install
443     step_by_step src_install
444 niro 1593 fi
445 niro 943 fi
446 niro 24
447 niro 1593 # echo for sake of good-looking
448     echo
449    
450 niro 1584 if mqueryfeature "!compressdoc"
451 niro 24 then
452 niro 1584 echo -e "!compressdoc detected; documentation will not be compressed ..."
453 niro 1595 elif mqueryfeature "!pkgbuild"
454     then
455     echo "!pkgbuild detected; skipping documentation compression..."
456 niro 943 else
457 niro 1584 # compressing doc, info & man files
458     if [[ -n ${SPLIT_PACKAGES} ]]
459     then
460 niro 2042 # save smage environment
461     split_save_variables
462 niro 1584 for subpackage in ${SPLIT_PACKAGES}
463     do
464 niro 2042 # honor split_info
465     split_info_${subpackage}
466 niro 2043 if [[ ${PKGTYPE} = virtual ]]
467     then
468     # automatically set !pkgbuild here too
469     msetfeature "!pkgbuild"
470     fi
471 niro 2042
472     if mqueryfeature "!compressdoc"
473     then
474     echo -e "!compressdoc detected; documentation of '${subpackage}' will not be compressed ..."
475     elif mqueryfeature "!pkgbuild"
476     then
477     echo "!pkgbuild detected; skipping documentation compression for '${subpackage}' ..."
478     else
479     run_resume post-mcompressdoc_${subpackage} || mcompressdocs ${BINDIR}_${subpackage}
480     resume_stamp post-mcompressdoc_${subpackage}
481     fi
482     # restore smage environment
483     split_restore_variables
484 niro 1584 done
485 niro 2042 # unset saved variables
486     split_unset_variables
487 niro 1584 else
488 niro 1636 run_resume post-mcompressdoc || mcompressdocs ${BINDIR}
489     resume_stamp post-mcompressdoc
490 niro 1584 fi
491 niro 24 fi
492    
493 niro 1584 if mqueryfeature "!libtool"
494 niro 1580 then
495 niro 1595 if mqueryfeature "!pkgbuild"
496     then
497     echo "!pkgbuild detected; skipping libtool archive stripping ..."
498     else
499 niro 1580 if [[ -n ${SPLIT_PACKAGES} ]]
500     then
501 niro 2042 # save smage environment
502     split_save_variables
503 niro 1580 for subpackage in ${SPLIT_PACKAGES}
504     do
505 niro 2042 # honor split_info
506     split_info_${subpackage}
507 niro 2043 if [[ ${PKGTYPE} = virtual ]]
508     then
509     # automatically set !pkgbuild here too
510     msetfeature "!pkgbuild"
511     fi
512 niro 2042
513     if mqueryfeature "!libtool"
514     then
515     if mqueryfeature "!pkgbuild"
516     then
517     echo "!pkgbuild detected; skipping libtool archive stripping for '${subpackage}'..."
518     else
519     echo -e "${COLBLUE}===${COLGREEN} stripping libtool archives for '${subpackage}' ...${COLDEFAULT}"
520     run_resume post-mstriplibtoolarchive_${subpackage} || mstriplibtoolarchive ${BINDIR}_${subpackage}
521     resume_stamp post-mstriplibtoolarchive_${subpackage}
522     fi
523     fi
524    
525     # restore smage environment
526     split_restore_variables
527 niro 1580 done
528 niro 2042 # unset saved variables
529     split_unset_variables
530 niro 1580 else
531 niro 1617 echo -e "${COLBLUE}===${COLGREEN} stripping libtool archives ...${COLDEFAULT}"
532 niro 1636 run_resume post-mstriplibtoolarchive || mstriplibtoolarchive ${BINDIR}
533     resume_stamp post-mstriplibtoolarchive
534 niro 1580 fi
535 niro 1595 fi
536 niro 1580 fi
537 niro 24
538 niro 1584 if mqueryfeature "purge"
539 niro 1580 then
540 niro 1595 if mqueryfeature "!pkgbuild"
541     then
542 niro 2042 echo "!pkgbuild detected; skipping file purgation ..."
543 niro 1595 else
544 niro 1580 if [[ -n ${SPLIT_PACKAGES} ]]
545     then
546 niro 2042 # save smage environment
547     split_save_variables
548 niro 1580 for subpackage in ${SPLIT_PACKAGES}
549     do
550 niro 2042 # honor split_info
551     split_info_${subpackage}
552 niro 2043 if [[ ${PKGTYPE} = virtual ]]
553     then
554     # automatically set !pkgbuild here too
555     msetfeature "!pkgbuild"
556     fi
557 niro 2042
558     if mqueryfeature "purge"
559     then
560     if mqueryfeature "!pkgbuild"
561     then
562     echo "!pkgbuild detected; skipping file purgation for '${subpackage}' ..."
563     else
564     echo -e "${COLBLUE}===${COLGREEN} purging all purge targets in '${subpackage}' ...${COLDEFAULT}"
565     run_resume post-mpurgetargets_${subpackage} || mpurgetargets ${BINDIR}_${subpackage}
566     resume_stamp post-mpurgetargets_${subpackage}
567     fi
568     fi
569    
570     # restore smage environment
571     split_restore_variables
572 niro 1580 done
573 niro 2042 # unset saved variables
574     split_unset_variables
575 niro 1580 else
576 niro 1617 echo -e "${COLBLUE}===${COLGREEN} purging all purge targets ...${COLDEFAULT}"
577 niro 1636 run_resume post-mpurgetargets || mpurgetargets ${BINDIR}
578     resume_stamp post-mpurgetargets
579 niro 1580 fi
580 niro 1595 fi
581 niro 1580 fi
582    
583 niro 79 # stripping all bins and libs
584 niro 1584 if mqueryfeature "!strip"
585     then
586 niro 2042 echo -e "!strip detected; package will not be stripped ..."
587 niro 1595 elif mqueryfeature "!pkgbuild"
588     then
589     echo "!pkgbuild detected; skipping stripping of the package ..."
590 niro 1584 else
591 niro 1595 if [[ -n ${SPLIT_PACKAGES} ]]
592     then
593 niro 2042 # save smage environment
594     split_save_variables
595 niro 1595 for subpackage in ${SPLIT_PACKAGES}
596     do
597 niro 2042 # honor split_info
598     split_info_${subpackage}
599 niro 2043 if [[ ${PKGTYPE} = virtual ]]
600     then
601     # automatically set !pkgbuild here too
602     msetfeature "!pkgbuild"
603     fi
604 niro 2042
605     if mqueryfeature "!strip"
606     then
607     echo -e "!strip detected; package '${subpackage}' will not be stripped ..."
608     elif mqueryfeature "!pkgbuild"
609     then
610     echo "!pkgbuild detected; skipping stripping of the package '${subpackage}' ..."
611     else
612     echo -e "${COLBLUE}===${COLGREEN} stripping binaries for '${subpackage}' ...${COLDEFAULT}"
613     run_resume post-mstripbins_${subpackage} || mstripbins ${BINDIR}_${subpackage}
614     resume_stamp post-mstripbins_${subpackage}
615     echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries for '${subpackage}' ...${COLDEFAULT}"
616     run_resume post-mstriplibs_${subpackage} || mstriplibs ${BINDIR}_${subpackage}
617     resume_stamp post-mstriplibs_${subpackage}
618     echo -e "${COLBLUE}===${COLGREEN} stripping static libraries for '${subpackage}' ...${COLDEFAULT}"
619     run_resume post-mstripstatic_${subpackage} || mstripstatic ${BINDIR}_${subpackage}
620     resume_stamp post-mstripstatic_${subpackage}
621     fi
622    
623     # restore smage environment
624     split_restore_variables
625 niro 1595 done
626 niro 2042 # unset saved variables
627     split_unset_variables
628 niro 1595 else
629     echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
630 niro 1636 run_resume post-mstripbins || mstripbins ${BINDIR}
631     resume_stamp post-mstripbins
632 niro 1595 echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries ...${COLDEFAULT}"
633 niro 1636 run_resume post-mstriplibs || mstriplibs ${BINDIR}
634     resume_stamp post-mstriplibs
635 niro 1595 echo -e "${COLBLUE}===${COLGREEN} stripping static libraries ...${COLDEFAULT}"
636 niro 1636 run_resume post-mstripstatic || mstripstatic ${BINDIR}
637     resume_stamp post-mstripstatic
638 niro 1595 fi
639 niro 1584 fi
640 niro 79
641 niro 2157 if mqueryfeature "qalint"
642     then
643     if mqueryfeature "!pkgbuild"
644     then
645     echo "!pkgbuild detected; skipping QA lint checks ..."
646     else
647     if [[ -n ${SPLIT_PACKAGES} ]]
648     then
649     # save smage environment
650     split_save_variables
651     for subpackage in ${SPLIT_PACKAGES}
652     do
653     # honor split_info
654     split_info_${subpackage}
655     if [[ ${PKGTYPE} = virtual ]]
656     then
657     # automatically set !pkgbuild here too
658     msetfeature "!pkgbuild"
659     fi
660    
661     if mqueryfeature "qalint"
662     then
663     if mqueryfeature "!pkgbuild"
664     then
665     echo "!pkgbuild detected; skipping QA lint checks for '${subpackage}' ..."
666     else
667     echo -e "${COLBLUE}===${COLGREEN} running QA lint checks for '${subpackage}' ...${COLDEFAULT}"
668     mqalint ${BINDIR}_${subpackage}
669     fi
670     fi
671    
672     # restore smage environment
673     split_restore_variables
674     done
675     # unset saved variables
676     split_unset_variables
677     else
678     echo -e "${COLBLUE}===${COLGREEN} running QA lint checks ...${COLDEFAULT}"
679     mqalint ${BINDIR}
680     fi
681     fi
682     fi
683    
684 niro 1595 if mqueryfeature "!pkgbuild"
685 niro 1584 then
686 niro 1595 echo -e "!pkgbuild detected; Package will not be build ..."
687 niro 1584 else
688 niro 943 # build several subpackages
689 niro 2365 if [[ -n ${SPLIT_PACKAGES} ]]
690 niro 943 then
691     split_save_variables
692     for subpackage in ${SPLIT_PACKAGES}
693     do
694     # get the right variables for the split
695     export PNAME="${subpackage}"
696     split_info_${PNAME}
697 niro 1659 # fix PCATEGORIE -> PCAT
698     if [[ ! -z ${PCATEGORIE} ]]
699     then
700     PCAT="${PCATEGORIE}"
701     unset PCATEGORIE
702     fi
703 niro 2043 if [[ ${PKGTYPE} = virtual ]]
704     then
705     # automatically set !pkgbuild here too
706     msetfeature "!pkgbuild"
707     fi
708 niro 943
709 niro 1595 # jump to next one if !pkgbuild is set in split_info
710 niro 2042 if mqueryfeature "!pkgbuild"
711     then
712     # restore smage environment
713     split_restore_variables
714     continue
715     fi
716 niro 947
717 niro 943 # check if an special subpackage_pkgbuild exists
718     if typeset -f ${PNAME}_pkgbuild > /dev/null
719     then
720     # run it
721 niro 1636 run_resume post-${PNAME}_pkgbuild || ${PNAME}_pkgbuild
722     resume_stamp post-${PNAME}_pkgbuild
723 niro 943 fi
724     # now create the target package
725 niro 1636 run_resume post-pkg_builddir_${PNAME} || ${MLIBDIR}/pkgbuild_dir.sh \
726 niro 1649 "${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}" \
727 niro 943 "${BINDIR}_${PNAME}" || die "split_package: ${PNAME} package-build failed"
728 niro 1636 resume_stamp post-pkg_builddir_${PNAME}
729 niro 943
730     # build pkg-md5-sum if requested
731 niro 1636 run_resume post-md5sum_${PNAME} || generate_package_md5sum \
732 niro 1641 --pcat "${PCAT}" \
733 niro 943 --pname "${PNAME}" \
734     --pver "${PVER}" \
735     --pbuild "${PBUILD}" \
736     --parch "${ARCH}"
737 niro 1636 resume_stamp post-md5sum_${PNAME}
738 niro 943
739 niro 1649 echo -e "${COLGREEN}\nPackage ${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD} successfully builded.\n${COLDEFAULT}"
740 niro 951
741     # restore smage environment
742     split_restore_variables
743 niro 943 done
744 niro 951 # unset all saved smage variables
745     split_unset_variables
746 niro 943
747 niro 192 else
748 niro 1636 run_resume post-pkg_builddir || ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
749     resume_stamp post-pkg_builddir
750 niro 255
751     # build pkg-md5-sum if requested
752 niro 1636 run_resume post-md5sum || generate_package_md5sum \
753 niro 1641 --pcat "${PCAT}" \
754 niro 255 --pname "${PNAME}" \
755     --pver "${PVER}" \
756     --pbuild "${PBUILD}" \
757     --parch "${ARCH}"
758 niro 1636 resume_stamp post-md5sum
759 niro 255
760 niro 439 echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}"
761 niro 192 fi
762 niro 403
763     # build src-pkg-tarball if requested
764 niro 1635 if mqueryfeature "srcpkgbuild"
765 niro 1617 then
766 niro 1636 run_resume post-srcpkgbuild || source_pkg_build ${SMAGENAME}
767     resume_stamp post-srcpkgbuild
768 niro 1617 fi
769 niro 1584 fi
770 niro 24
771 niro 1584 if mqueryfeature "buildlog"
772 niro 875 then
773     bzip2 -9f /var/log/smage/${PKGNAME}.log
774     else
775     [[ -f /var/log/smage/${PKGNAME}.log ]] && rm /var/log/smage/${PKGNAME}.log
776     fi
777    
778 niro 24 xtitleclean

Properties

Name Value
svn:executable *