Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2744 - (hide annotations) (download) (as text)
Wed Aug 13 07:06:44 2014 UTC (9 years, 9 months ago) by niro
File MIME type: application/x-sh
File size: 21825 byte(s)
-renamed src_setup() function to the more appropriate name pkg_setup()
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 1635 if mqueryfeature "srcpkgbuild"
272 niro 403 then
273     if [[ -d ${SOURCEDIR}/${PNAME} ]]
274     then
275 niro 441 echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
276 niro 408 rm -rf ${SOURCEDIR}/${PNAME}
277 niro 403 fi
278     fi
279    
280 niro 192 # download sources
281 niro 1584 mqueryfeature "srcpkgtarball" || download_sources
282 niro 59
283 niro 192 # fixes some issues with these functions
284 niro 2744 export -f pkg_setup || die "pkg_setup export failed"
285 niro 24 export -f src_prepare || die "src_prepare export failed"
286     export -f src_compile || die "src_compile export failed"
287 niro 1575 export -f src_check || die "src_check export failed"
288 niro 24 export -f src_install || die "src_install export failed"
289    
290 niro 192 # fixes some compile issues
291 niro 24 export CHOST="${CHOST}" || die "CHOST export failed"
292     export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
293 niro 1616 if [[ -z ${CXXFLAGS} ]]
294     then
295     export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
296     else
297     export CXXFLAGS="${CXXFLAGS}" || die "CXXFLAGS export failed"
298     fi
299     export LDFLAGS="${LDFLAGS}" || die "LDFLAGS export failed"
300 niro 24 export BINDIR="${BINDIR}" || die "BINDIR export failed"
301     export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
302    
303 niro 192 # setup distcc
304 niro 351 # setup for distcc goes *before* ccache, so ccache comes before distcc in path
305 niro 1584 mqueryfeature "distcc" && setup_distcc_environment
306 niro 24
307 niro 2159 # setup icecc
308     # setup for icecc goes *before* ccache, so ccache comes before icecc in path
309 niro 2172 mqueryfeature "icecc" && setup_icecc_environment
310 niro 2159
311 niro 192 # setup ccache
312 niro 1584 mqueryfeature "ccache" && setup_ccache_environment
313 niro 24
314 niro 1617 if mqueryfeature "resume"
315 niro 24 then
316 niro 1617 echo -e "${COLMAGENTA}Resume requested; continuing previous build${COLDEFAULT}"
317 niro 24
318 niro 1617 # setup build logging
319     [[ ! -d /var/log/smage ]] && install -d /var/log/smage
320     if [[ -f /var/log/smage/${PKGNAME}.log.bz2 ]]
321     then
322     bunzip2 -f /var/log/smage/${PKGNAME}.log.bz2
323     fi
324     echo -e "### Resume started on $(date) ###\n" >> /var/log/smage/${PKGNAME}.log
325 niro 24
326 niro 1617 else
327     # clean up builddir if a previously one exist
328     if [ -d ${BUILDDIR} ]
329     then
330     rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
331     fi
332     install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
333 niro 24
334 niro 1617 # clean up srcdir if a previously unpacked one exist
335     if [ -d ${SRCDIR} ]
336     then
337     rm -rf ${SRCDIR}
338     fi
339    
340     # clean up bindir if a previous build exist or create a new one
341     if [ -d ${BINDIR} ]
342     then
343     rm -rf ${BINDIR}
344     fi
345     install -d ${BINDIR} || die "couldn't create \$BINDIR."
346    
347     # clean up package temp dir if a previous build exist
348     if [ -d ${BUILDDIR}/${PKGNAME} ]
349     then
350     rm -rf ${BUILDDIR}/${PKGNAME}
351     fi
352    
353 niro 1621 # clean up stamps dir
354     if [ -d ${BUILDDIR}/.stamps ]
355     then
356     rm -rf ${BUILDDIR}/.stamps
357     fi
358    
359 niro 1617 # setup build logging
360     [[ ! -d /var/log/smage ]] && install -d /var/log/smage
361     echo -e "### Build started on $(date) ###\n" > /var/log/smage/${PKGNAME}.log
362 niro 24 fi
363    
364 niro 1593 if [[ ${PKGTYPE} = virtual ]]
365 niro 1575 then
366 niro 1593 echo "virtual package detected; nothing will be build ..."
367     # automatically set !pkgbuild here too
368     msetfeature "!pkgbuild"
369 niro 1575 else
370 niro 2744 ( run_resume pkg_setup || pkg_setup ) | ${SMAGE_LOG_CMD}
371     die_pipestatus 0 "pkg_setup failed"
372     resume_stamp pkg_setup
373     step_by_step pkg_setup
374 niro 2742
375 niro 1617 ( run_resume src_prepare || src_prepare ) | ${SMAGE_LOG_CMD}
376 niro 1593 die_pipestatus 0 "src_prepare failed"
377 niro 1617 resume_stamp src_prepare
378     step_by_step src_prepare
379 niro 1575
380 niro 1617 ( run_resume src_compile || src_compile ) | ${SMAGE_LOG_CMD}
381 niro 1593 die_pipestatus 0 "src_compile failed"
382 niro 1617 resume_stamp src_compile
383     step_by_step src_compile
384 niro 945
385 niro 1593 # only run checks if requested
386     if mqueryfeature "!check"
387     then
388     echo "!check detected; src_check() will not be run!" | ${SMAGE_LOG_CMD}
389     else
390 niro 1617 ( run_resume src_check || src_check ) | ${SMAGE_LOG_CMD}
391 niro 1593 die_pipestatus 0 "src_check failed"
392 niro 1617 resume_stamp src_check
393 niro 1593 fi
394 niro 1617 step_by_step src_check
395 niro 945
396 niro 1593 # build several subpackages
397     if [[ -n ${SPLIT_PACKAGES} ]]
398     then
399     # save bindir & pname
400     split_save_variables
401     export SAVED_BINDIR="${BINDIR}"
402     for subpackage in ${SPLIT_PACKAGES}
403     do
404 niro 1784 split_info_${subpackage}
405     if [[ ${PKGTYPE} = virtual ]]
406 niro 1593 then
407 niro 2042 echo
408     echo -en "${COLBLUE}*** ${COLDEFAULT}"
409     echo -en "Virtual package detected"
410     echo -en " for subpkg: ${COLBLUE}${PNAME}${COLDEFAULT}"
411     echo -e " - basepkg: ${COLBLUE}${SPLIT_PACKAGE_BASE}${COLDEFAULT} ..."
412    
413 niro 1784 echo "virtual package detected; nothing will be build ..."
414     # automatically set !pkgbuild here too
415     msetfeature "!pkgbuild"
416     else
417     if typeset -f src_install_${subpackage} > /dev/null
418     then
419     # export subpackage bindir
420     export BINDIR="${SAVED_BINDIR}_${subpackage}"
421     # export PNAME, several internal function and include
422     # rely on this variable
423     export PNAME="${subpackage}"
424 niro 1593
425 niro 1784 echo
426     echo -en "${COLBLUE}*** ${COLDEFAULT}"
427 niro 2042 echo -en "Running ${COLGREEN}split src_install()${COLDEFAULT}"
428 niro 1784 echo -en " for subpkg: ${COLBLUE}${PNAME}${COLDEFAULT}"
429     echo -e " - basepkg: ${COLBLUE}${SPLIT_PACKAGE_BASE}${COLDEFAULT} ..."
430 niro 1593
431 niro 1784 ( run_resume src_install_${subpackage} || src_install_${subpackage} ) | ${SMAGE_LOG_CMD}
432     die_pipestatus 0 "src_install_${subpackage} failed"
433     resume_stamp src_install_${subpackage}
434     step_by_step src_install_${subpackage}
435     fi
436 niro 1593 fi
437 niro 2042 # restore smage environment
438     split_restore_variables
439 niro 1593 done
440     # unset all saved smage variables
441     split_unset_variables
442     else
443 niro 1617 ( run_resume src_install || src_install ) | ${SMAGE_LOG_CMD}
444 niro 1593 die_pipestatus 0 "src_install failed"
445 niro 1617 resume_stamp src_install
446     step_by_step src_install
447 niro 1593 fi
448 niro 943 fi
449 niro 24
450 niro 1593 # echo for sake of good-looking
451     echo
452    
453 niro 1584 if mqueryfeature "!compressdoc"
454 niro 24 then
455 niro 1584 echo -e "!compressdoc detected; documentation will not be compressed ..."
456 niro 1595 elif mqueryfeature "!pkgbuild"
457     then
458     echo "!pkgbuild detected; skipping documentation compression..."
459 niro 943 else
460 niro 1584 # compressing doc, info & man files
461     if [[ -n ${SPLIT_PACKAGES} ]]
462     then
463 niro 2042 # save smage environment
464     split_save_variables
465 niro 1584 for subpackage in ${SPLIT_PACKAGES}
466     do
467 niro 2042 # honor split_info
468     split_info_${subpackage}
469 niro 2043 if [[ ${PKGTYPE} = virtual ]]
470     then
471     # automatically set !pkgbuild here too
472     msetfeature "!pkgbuild"
473     fi
474 niro 2042
475     if mqueryfeature "!compressdoc"
476     then
477     echo -e "!compressdoc detected; documentation of '${subpackage}' will not be compressed ..."
478     elif mqueryfeature "!pkgbuild"
479     then
480     echo "!pkgbuild detected; skipping documentation compression for '${subpackage}' ..."
481     else
482     run_resume post-mcompressdoc_${subpackage} || mcompressdocs ${BINDIR}_${subpackage}
483     resume_stamp post-mcompressdoc_${subpackage}
484     fi
485     # restore smage environment
486     split_restore_variables
487 niro 1584 done
488 niro 2042 # unset saved variables
489     split_unset_variables
490 niro 1584 else
491 niro 1636 run_resume post-mcompressdoc || mcompressdocs ${BINDIR}
492     resume_stamp post-mcompressdoc
493 niro 1584 fi
494 niro 24 fi
495    
496 niro 1584 if mqueryfeature "!libtool"
497 niro 1580 then
498 niro 1595 if mqueryfeature "!pkgbuild"
499     then
500     echo "!pkgbuild detected; skipping libtool archive stripping ..."
501     else
502 niro 1580 if [[ -n ${SPLIT_PACKAGES} ]]
503     then
504 niro 2042 # save smage environment
505     split_save_variables
506 niro 1580 for subpackage in ${SPLIT_PACKAGES}
507     do
508 niro 2042 # honor split_info
509     split_info_${subpackage}
510 niro 2043 if [[ ${PKGTYPE} = virtual ]]
511     then
512     # automatically set !pkgbuild here too
513     msetfeature "!pkgbuild"
514     fi
515 niro 2042
516     if mqueryfeature "!libtool"
517     then
518     if mqueryfeature "!pkgbuild"
519     then
520     echo "!pkgbuild detected; skipping libtool archive stripping for '${subpackage}'..."
521     else
522     echo -e "${COLBLUE}===${COLGREEN} stripping libtool archives for '${subpackage}' ...${COLDEFAULT}"
523     run_resume post-mstriplibtoolarchive_${subpackage} || mstriplibtoolarchive ${BINDIR}_${subpackage}
524     resume_stamp post-mstriplibtoolarchive_${subpackage}
525     fi
526     fi
527    
528     # restore smage environment
529     split_restore_variables
530 niro 1580 done
531 niro 2042 # unset saved variables
532     split_unset_variables
533 niro 1580 else
534 niro 1617 echo -e "${COLBLUE}===${COLGREEN} stripping libtool archives ...${COLDEFAULT}"
535 niro 1636 run_resume post-mstriplibtoolarchive || mstriplibtoolarchive ${BINDIR}
536     resume_stamp post-mstriplibtoolarchive
537 niro 1580 fi
538 niro 1595 fi
539 niro 1580 fi
540 niro 24
541 niro 1584 if mqueryfeature "purge"
542 niro 1580 then
543 niro 1595 if mqueryfeature "!pkgbuild"
544     then
545 niro 2042 echo "!pkgbuild detected; skipping file purgation ..."
546 niro 1595 else
547 niro 1580 if [[ -n ${SPLIT_PACKAGES} ]]
548     then
549 niro 2042 # save smage environment
550     split_save_variables
551 niro 1580 for subpackage in ${SPLIT_PACKAGES}
552     do
553 niro 2042 # honor split_info
554     split_info_${subpackage}
555 niro 2043 if [[ ${PKGTYPE} = virtual ]]
556     then
557     # automatically set !pkgbuild here too
558     msetfeature "!pkgbuild"
559     fi
560 niro 2042
561     if mqueryfeature "purge"
562     then
563     if mqueryfeature "!pkgbuild"
564     then
565     echo "!pkgbuild detected; skipping file purgation for '${subpackage}' ..."
566     else
567     echo -e "${COLBLUE}===${COLGREEN} purging all purge targets in '${subpackage}' ...${COLDEFAULT}"
568     run_resume post-mpurgetargets_${subpackage} || mpurgetargets ${BINDIR}_${subpackage}
569     resume_stamp post-mpurgetargets_${subpackage}
570     fi
571     fi
572    
573     # restore smage environment
574     split_restore_variables
575 niro 1580 done
576 niro 2042 # unset saved variables
577     split_unset_variables
578 niro 1580 else
579 niro 1617 echo -e "${COLBLUE}===${COLGREEN} purging all purge targets ...${COLDEFAULT}"
580 niro 1636 run_resume post-mpurgetargets || mpurgetargets ${BINDIR}
581     resume_stamp post-mpurgetargets
582 niro 1580 fi
583 niro 1595 fi
584 niro 1580 fi
585    
586 niro 79 # stripping all bins and libs
587 niro 1584 if mqueryfeature "!strip"
588     then
589 niro 2042 echo -e "!strip detected; package will not be stripped ..."
590 niro 1595 elif mqueryfeature "!pkgbuild"
591     then
592     echo "!pkgbuild detected; skipping stripping of the package ..."
593 niro 1584 else
594 niro 1595 if [[ -n ${SPLIT_PACKAGES} ]]
595     then
596 niro 2042 # save smage environment
597     split_save_variables
598 niro 1595 for subpackage in ${SPLIT_PACKAGES}
599     do
600 niro 2042 # honor split_info
601     split_info_${subpackage}
602 niro 2043 if [[ ${PKGTYPE} = virtual ]]
603     then
604     # automatically set !pkgbuild here too
605     msetfeature "!pkgbuild"
606     fi
607 niro 2042
608     if mqueryfeature "!strip"
609     then
610     echo -e "!strip detected; package '${subpackage}' will not be stripped ..."
611     elif mqueryfeature "!pkgbuild"
612     then
613     echo "!pkgbuild detected; skipping stripping of the package '${subpackage}' ..."
614     else
615     echo -e "${COLBLUE}===${COLGREEN} stripping binaries for '${subpackage}' ...${COLDEFAULT}"
616     run_resume post-mstripbins_${subpackage} || mstripbins ${BINDIR}_${subpackage}
617     resume_stamp post-mstripbins_${subpackage}
618     echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries for '${subpackage}' ...${COLDEFAULT}"
619     run_resume post-mstriplibs_${subpackage} || mstriplibs ${BINDIR}_${subpackage}
620     resume_stamp post-mstriplibs_${subpackage}
621     echo -e "${COLBLUE}===${COLGREEN} stripping static libraries for '${subpackage}' ...${COLDEFAULT}"
622     run_resume post-mstripstatic_${subpackage} || mstripstatic ${BINDIR}_${subpackage}
623     resume_stamp post-mstripstatic_${subpackage}
624     fi
625    
626     # restore smage environment
627     split_restore_variables
628 niro 1595 done
629 niro 2042 # unset saved variables
630     split_unset_variables
631 niro 1595 else
632     echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
633 niro 1636 run_resume post-mstripbins || mstripbins ${BINDIR}
634     resume_stamp post-mstripbins
635 niro 1595 echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries ...${COLDEFAULT}"
636 niro 1636 run_resume post-mstriplibs || mstriplibs ${BINDIR}
637     resume_stamp post-mstriplibs
638 niro 1595 echo -e "${COLBLUE}===${COLGREEN} stripping static libraries ...${COLDEFAULT}"
639 niro 1636 run_resume post-mstripstatic || mstripstatic ${BINDIR}
640     resume_stamp post-mstripstatic
641 niro 1595 fi
642 niro 1584 fi
643 niro 79
644 niro 2157 if mqueryfeature "qalint"
645     then
646     if mqueryfeature "!pkgbuild"
647     then
648     echo "!pkgbuild detected; skipping QA lint checks ..."
649     else
650     if [[ -n ${SPLIT_PACKAGES} ]]
651     then
652     # save smage environment
653     split_save_variables
654     for subpackage in ${SPLIT_PACKAGES}
655     do
656     # honor split_info
657     split_info_${subpackage}
658     if [[ ${PKGTYPE} = virtual ]]
659     then
660     # automatically set !pkgbuild here too
661     msetfeature "!pkgbuild"
662     fi
663    
664     if mqueryfeature "qalint"
665     then
666     if mqueryfeature "!pkgbuild"
667     then
668     echo "!pkgbuild detected; skipping QA lint checks for '${subpackage}' ..."
669     else
670     echo -e "${COLBLUE}===${COLGREEN} running QA lint checks for '${subpackage}' ...${COLDEFAULT}"
671     mqalint ${BINDIR}_${subpackage}
672     fi
673     fi
674    
675     # restore smage environment
676     split_restore_variables
677     done
678     # unset saved variables
679     split_unset_variables
680     else
681     echo -e "${COLBLUE}===${COLGREEN} running QA lint checks ...${COLDEFAULT}"
682     mqalint ${BINDIR}
683     fi
684     fi
685     fi
686    
687 niro 1595 if mqueryfeature "!pkgbuild"
688 niro 1584 then
689 niro 1595 echo -e "!pkgbuild detected; Package will not be build ..."
690 niro 1584 else
691 niro 943 # build several subpackages
692 niro 2365 if [[ -n ${SPLIT_PACKAGES} ]]
693 niro 943 then
694     split_save_variables
695     for subpackage in ${SPLIT_PACKAGES}
696     do
697     # get the right variables for the split
698     export PNAME="${subpackage}"
699     split_info_${PNAME}
700 niro 1659 # fix PCATEGORIE -> PCAT
701     if [[ ! -z ${PCATEGORIE} ]]
702     then
703     PCAT="${PCATEGORIE}"
704     unset PCATEGORIE
705     fi
706 niro 2043 if [[ ${PKGTYPE} = virtual ]]
707     then
708     # automatically set !pkgbuild here too
709     msetfeature "!pkgbuild"
710     fi
711 niro 943
712 niro 1595 # jump to next one if !pkgbuild is set in split_info
713 niro 2042 if mqueryfeature "!pkgbuild"
714     then
715     # restore smage environment
716     split_restore_variables
717     continue
718     fi
719 niro 947
720 niro 943 # check if an special subpackage_pkgbuild exists
721     if typeset -f ${PNAME}_pkgbuild > /dev/null
722     then
723     # run it
724 niro 1636 run_resume post-${PNAME}_pkgbuild || ${PNAME}_pkgbuild
725     resume_stamp post-${PNAME}_pkgbuild
726 niro 943 fi
727     # now create the target package
728 niro 1636 run_resume post-pkg_builddir_${PNAME} || ${MLIBDIR}/pkgbuild_dir.sh \
729 niro 1649 "${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}" \
730 niro 943 "${BINDIR}_${PNAME}" || die "split_package: ${PNAME} package-build failed"
731 niro 1636 resume_stamp post-pkg_builddir_${PNAME}
732 niro 943
733     # build pkg-md5-sum if requested
734 niro 1636 run_resume post-md5sum_${PNAME} || generate_package_md5sum \
735 niro 1641 --pcat "${PCAT}" \
736 niro 943 --pname "${PNAME}" \
737     --pver "${PVER}" \
738     --pbuild "${PBUILD}" \
739     --parch "${ARCH}"
740 niro 1636 resume_stamp post-md5sum_${PNAME}
741 niro 943
742 niro 1649 echo -e "${COLGREEN}\nPackage ${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD} successfully builded.\n${COLDEFAULT}"
743 niro 951
744     # restore smage environment
745     split_restore_variables
746 niro 943 done
747 niro 951 # unset all saved smage variables
748     split_unset_variables
749 niro 943
750 niro 192 else
751 niro 1636 run_resume post-pkg_builddir || ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
752     resume_stamp post-pkg_builddir
753 niro 255
754     # build pkg-md5-sum if requested
755 niro 1636 run_resume post-md5sum || generate_package_md5sum \
756 niro 1641 --pcat "${PCAT}" \
757 niro 255 --pname "${PNAME}" \
758     --pver "${PVER}" \
759     --pbuild "${PBUILD}" \
760     --parch "${ARCH}"
761 niro 1636 resume_stamp post-md5sum
762 niro 255
763 niro 439 echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}"
764 niro 192 fi
765 niro 403
766     # build src-pkg-tarball if requested
767 niro 1635 if mqueryfeature "srcpkgbuild"
768 niro 1617 then
769 niro 1636 run_resume post-srcpkgbuild || source_pkg_build ${SMAGENAME}
770     resume_stamp post-srcpkgbuild
771 niro 1617 fi
772 niro 1584 fi
773 niro 24
774 niro 2589 # auto regen mage tree if requested
775     regen_mage_tree
776    
777 niro 1584 if mqueryfeature "buildlog"
778 niro 875 then
779     bzip2 -9f /var/log/smage/${PKGNAME}.log
780     else
781     [[ -f /var/log/smage/${PKGNAME}.log ]] && rm /var/log/smage/${PKGNAME}.log
782     fi
783    
784 niro 24 xtitleclean

Properties

Name Value
svn:executable *