Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

Name Value
svn:executable *