Magellan Linux

Contents of /branches/mage-next/src/smage2.in

Parent Directory Parent Directory | Revision Log Revision Log


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