Magellan Linux

Contents of /trunk/mage/usr/lib/mage/smage2.sh

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

Name Value
svn:executable *