Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2172 - (hide 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 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 1589 ## setup ##
22     SMAGENAME="$1"
23     SMAGEVERSION="$(< ${MLIBDIR}/version)"
24    
25 niro 1639 # expand PKGDIR, BUILDDIR and BINDIR with MROOT
26 niro 347 if [[ -n ${MROOT} ]]
27     then
28     export PKGDIR=${MROOT}/${PKGDIR}
29     export BUILDDIR=${MROOT}/${BUILDDIR}
30     export BINDIR=${MROOT}/${BINDIR}
31     fi
32    
33 niro 59 # print out our version
34     showversion
35     echo
36    
37 niro 1641 if [[ -z ${SMAGENAME} ]]
38 niro 24 then
39     echo "No .smage2 file given. Exiting."
40     echo
41     exit 1
42     fi
43    
44 niro 1584 # load supported mage features
45     load_mage_features
46    
47 niro 192 # updating smage2-scripts
48 niro 306 if [[ $1 = update ]]
49 niro 24 then
50 niro 59 if [ ! -d ${SOURCEDIR} ]
51     then
52     install -d ${SOURCEDIR}
53     fi
54     syncsmage2
55     exit 0
56     fi
57    
58 niro 192 # creates md5sums for smages to given dir
59 niro 306 if [[ $1 = calcmd5 ]]
60 niro 59 then
61 niro 1207 if [ $# -ge 2 ]
62 niro 59 then
63     SMAGENAME="$2"
64     MD5DIR="$3"
65 niro 1207 [[ -z ${MD5DIR} ]] && MD5DIR="$(dirname ${SMAGENAME})/md5"
66    
67 niro 1346 smagesource ${SMAGENAME} || die "download source failed"
68 niro 59
69 niro 66 # overridable sourcedir; must be declared after source of the smage2
70     CALC_SOURCEDIR="${CALC_SOURCEDIR:="${SOURCEDIR}/${PNAME}"}"
71    
72 niro 59 [ -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 niro 66 # 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 niro 59 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 niro 66
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 niro 59 done
113 niro 306
114 niro 59 echo
115     echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
116     echo
117     else
118     echo "Usage: Calculating MD5 Sums:"
119 niro 1207 echo " $(basename $0) calcmd5 /path/to/SMAGENAME [/path/to/MD5DIR]"
120 niro 59 echo
121     echo
122     echo "Export the CALC_SOURCEDIR variable to override current SOURCEDIRs."
123     echo
124     exit 1
125     fi
126 niro 306
127 niro 59 exit 0
128     fi
129    
130 niro 192 # download sources
131 niro 59 if [ "$1" == "download" -a -n "$2" ]
132     then
133 niro 24 if [ ! -d ${SMAGESCRIPTSDIR} ]
134     then
135     install -d ${SMAGESCRIPTSDIR}
136     fi
137 niro 59
138     # get smage
139     SMAGENAME="$2"
140     MD5DIR="$(dirname ${SMAGENAME})/md5"
141 niro 1346 smagesource ${SMAGENAME} || die "download source failed"
142 niro 59
143     download_sources
144 niro 24 exit 0
145     fi
146    
147 niro 202 # 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 niro 1346 smagesource ${SMAGENAME} || die "regen: smage2 not found"
154 niro 202
155     regen_mage_tree
156 niro 255
157 niro 890 # build several targets
158 niro 943 if [[ -n ${MAGE_TARGETS} ]]
159 niro 890 then
160     for target in ${MAGE_TARGETS}
161     do
162     # build md5sum for existing packages
163     generate_package_md5sum \
164 niro 1641 --pcat "${PCAT}" \
165 niro 890 --pname "${PNAME}" \
166     --pver "${PVER}" \
167     --pbuild "${PBUILD}" \
168     --parch "${ARCH}" \
169     --target "${target}"
170     done
171 niro 943
172     # build several subpackages
173     elif [[ -n ${SPLIT_PACKAGES} ]]
174     then
175     split_save_variables
176 niro 964 for subpackage in ${SPLIT_PACKAGES}
177 niro 943 do
178     # get the right variables for the split
179     export PNAME="${subpackage}"
180     split_info_${subpackage}
181 niro 1659 # fix PCATEGORIE -> PCAT
182     if [[ ! -z ${PCATEGORIE} ]]
183     then
184     PCAT="${PCATEGORIE}"
185     unset PCATEGORIE
186     fi
187 niro 943 # build md5sum for existing packages
188     generate_package_md5sum \
189 niro 1641 --pcat "${PCAT}" \
190 niro 943 --pname "${PNAME}" \
191     --pver "${PVER}" \
192     --pbuild "${PBUILD}" \
193     --parch "${ARCH}"
194 niro 951 # restore smage environment
195     split_restore_variables
196 niro 943 done
197 niro 951 # unset all saved smage variables
198     split_unset_variables
199 niro 943
200 niro 890 else
201     # build md5sum for existing packages
202     generate_package_md5sum \
203 niro 1641 --pcat "${PCAT}" \
204 niro 890 --pname "${PNAME}" \
205     --pver "${PVER}" \
206     --pbuild "${PBUILD}" \
207 niro 943 --parch "${ARCH}"
208 niro 890 fi
209 niro 255
210 niro 202 exit 0
211     fi
212    
213 niro 412 if [ "$1" == "--create-src-tarball" -a -n "$2" ]
214 niro 403 then
215     # set correct SMAGENAME
216     SMAGENAME="$2"
217     MD5DIR="$(dirname ${SMAGENAME})/md5"
218    
219 niro 412 echo -e "${COLGREEN}create-src-tarball called for ${COLBLUE}${SMAGENAME}${COLGREEN} ...${COLDEFAULT}"
220 niro 403
221 niro 1346 smagesource ${SMAGENAME} || die "regen: smage2 not found"
222 niro 403
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 niro 406 if [ "$1" == "--src-tarball" -a -n "$2" ] || [ "$1" == "-st" -a -n "$2" ]
235 niro 403 then
236 niro 412 SRCPKGTARBALL="${2}"
237 niro 1584 msetfeature "srcpkgtarball"
238 niro 403
239 niro 412 # 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 niro 403 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 niro 412
255     [[ ! -f ${SMAGENAME} ]] && die "Included smage2 file in src-tarball not found: ${SMAGENAME}"
256 niro 403 fi
257    
258 niro 1617 if [ "$1" == "--resume" -a -n "$2" ]
259     then
260     msetfeature "resume"
261     SMAGENAME="$2"
262     fi
263 niro 403
264 niro 306 [ ! -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 niro 419 [ -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 niro 24
275 niro 1346 smagesource ${SMAGENAME} || die "source failed"
276 niro 1649 PKGNAME="${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}"
277 niro 59 MD5DIR="$(dirname ${SMAGENAME})/md5"
278 niro 941 SMAGE_LOG_CMD="tee -a /var/log/smage/${PKGNAME}.log"
279 niro 24
280     xtitle "Compiling ${PKGNAME}"
281 niro 439 echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
282 niro 59
283 niro 191 # auto regen mage tree if requested
284     regen_mage_tree
285    
286 niro 1635 if mqueryfeature "srcpkgbuild"
287 niro 403 then
288     if [[ -d ${SOURCEDIR}/${PNAME} ]]
289     then
290 niro 441 echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
291 niro 408 rm -rf ${SOURCEDIR}/${PNAME}
292 niro 403 fi
293     fi
294    
295 niro 192 # download sources
296 niro 1584 mqueryfeature "srcpkgtarball" || download_sources
297 niro 59
298 niro 192 # fixes some issues with these functions
299 niro 24 export -f src_prepare || die "src_prepare export failed"
300     export -f src_compile || die "src_compile export failed"
301 niro 1575 export -f src_check || die "src_check export failed"
302 niro 24 export -f src_install || die "src_install export failed"
303    
304 niro 192 # fixes some compile issues
305 niro 24 export CHOST="${CHOST}" || die "CHOST export failed"
306     export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
307 niro 1616 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 niro 24 export BINDIR="${BINDIR}" || die "BINDIR export failed"
315     export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
316    
317 niro 192 # setup distcc
318 niro 351 # setup for distcc goes *before* ccache, so ccache comes before distcc in path
319 niro 1584 mqueryfeature "distcc" && setup_distcc_environment
320 niro 24
321 niro 2159 # setup icecc
322     # setup for icecc goes *before* ccache, so ccache comes before icecc in path
323 niro 2172 mqueryfeature "icecc" && setup_icecc_environment
324 niro 2159
325 niro 192 # setup ccache
326 niro 1584 mqueryfeature "ccache" && setup_ccache_environment
327 niro 24
328 niro 1617 if mqueryfeature "resume"
329 niro 24 then
330 niro 1617 echo -e "${COLMAGENTA}Resume requested; continuing previous build${COLDEFAULT}"
331 niro 24
332 niro 1617 # 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 niro 24
340 niro 1617 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 niro 24
348 niro 1617 # 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 niro 1621 # clean up stamps dir
368     if [ -d ${BUILDDIR}/.stamps ]
369     then
370     rm -rf ${BUILDDIR}/.stamps
371     fi
372    
373 niro 1617 # 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 niro 24 fi
377    
378 niro 1593 if [[ ${PKGTYPE} = virtual ]]
379 niro 1575 then
380 niro 1593 echo "virtual package detected; nothing will be build ..."
381     # automatically set !pkgbuild here too
382     msetfeature "!pkgbuild"
383 niro 1575 else
384 niro 1617 ( run_resume src_prepare || src_prepare ) | ${SMAGE_LOG_CMD}
385 niro 1593 die_pipestatus 0 "src_prepare failed"
386 niro 1617 resume_stamp src_prepare
387     step_by_step src_prepare
388 niro 1575
389 niro 1617 ( run_resume src_compile || src_compile ) | ${SMAGE_LOG_CMD}
390 niro 1593 die_pipestatus 0 "src_compile failed"
391 niro 1617 resume_stamp src_compile
392     step_by_step src_compile
393 niro 945
394 niro 1593 # 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 niro 1617 ( run_resume src_check || src_check ) | ${SMAGE_LOG_CMD}
400 niro 1593 die_pipestatus 0 "src_check failed"
401 niro 1617 resume_stamp src_check
402 niro 1593 fi
403 niro 1617 step_by_step src_check
404 niro 945
405 niro 1593 # 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 niro 1784 split_info_${subpackage}
414     if [[ ${PKGTYPE} = virtual ]]
415 niro 1593 then
416 niro 2042 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 niro 1784 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 niro 1593
434 niro 1784 echo
435     echo -en "${COLBLUE}*** ${COLDEFAULT}"
436 niro 2042 echo -en "Running ${COLGREEN}split src_install()${COLDEFAULT}"
437 niro 1784 echo -en " for subpkg: ${COLBLUE}${PNAME}${COLDEFAULT}"
438     echo -e " - basepkg: ${COLBLUE}${SPLIT_PACKAGE_BASE}${COLDEFAULT} ..."
439 niro 1593
440 niro 1784 ( 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 niro 1593 fi
446 niro 2042 # restore smage environment
447     split_restore_variables
448 niro 1593 done
449     # unset all saved smage variables
450     split_unset_variables
451     else
452 niro 1617 ( run_resume src_install || src_install ) | ${SMAGE_LOG_CMD}
453 niro 1593 die_pipestatus 0 "src_install failed"
454 niro 1617 resume_stamp src_install
455     step_by_step src_install
456 niro 1593 fi
457 niro 943 fi
458 niro 24
459 niro 1593 # echo for sake of good-looking
460     echo
461    
462 niro 1584 if mqueryfeature "!compressdoc"
463 niro 24 then
464 niro 1584 echo -e "!compressdoc detected; documentation will not be compressed ..."
465 niro 1595 elif mqueryfeature "!pkgbuild"
466     then
467     echo "!pkgbuild detected; skipping documentation compression..."
468 niro 943 else
469 niro 1584 # compressing doc, info & man files
470     if [[ -n ${SPLIT_PACKAGES} ]]
471     then
472 niro 2042 # save smage environment
473     split_save_variables
474 niro 1584 for subpackage in ${SPLIT_PACKAGES}
475     do
476 niro 2042 # honor split_info
477     split_info_${subpackage}
478 niro 2043 if [[ ${PKGTYPE} = virtual ]]
479     then
480     # automatically set !pkgbuild here too
481     msetfeature "!pkgbuild"
482     fi
483 niro 2042
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 niro 1584 done
497 niro 2042 # unset saved variables
498     split_unset_variables
499 niro 1584 else
500 niro 1636 run_resume post-mcompressdoc || mcompressdocs ${BINDIR}
501     resume_stamp post-mcompressdoc
502 niro 1584 fi
503 niro 24 fi
504    
505 niro 1584 if mqueryfeature "!libtool"
506 niro 1580 then
507 niro 1595 if mqueryfeature "!pkgbuild"
508     then
509     echo "!pkgbuild detected; skipping libtool archive stripping ..."
510     else
511 niro 1580 if [[ -n ${SPLIT_PACKAGES} ]]
512     then
513 niro 2042 # save smage environment
514     split_save_variables
515 niro 1580 for subpackage in ${SPLIT_PACKAGES}
516     do
517 niro 2042 # honor split_info
518     split_info_${subpackage}
519 niro 2043 if [[ ${PKGTYPE} = virtual ]]
520     then
521     # automatically set !pkgbuild here too
522     msetfeature "!pkgbuild"
523     fi
524 niro 2042
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 niro 1580 done
540 niro 2042 # unset saved variables
541     split_unset_variables
542 niro 1580 else
543 niro 1617 echo -e "${COLBLUE}===${COLGREEN} stripping libtool archives ...${COLDEFAULT}"
544 niro 1636 run_resume post-mstriplibtoolarchive || mstriplibtoolarchive ${BINDIR}
545     resume_stamp post-mstriplibtoolarchive
546 niro 1580 fi
547 niro 1595 fi
548 niro 1580 fi
549 niro 24
550 niro 1584 if mqueryfeature "purge"
551 niro 1580 then
552 niro 1595 if mqueryfeature "!pkgbuild"
553     then
554 niro 2042 echo "!pkgbuild detected; skipping file purgation ..."
555 niro 1595 else
556 niro 1580 if [[ -n ${SPLIT_PACKAGES} ]]
557     then
558 niro 2042 # save smage environment
559     split_save_variables
560 niro 1580 for subpackage in ${SPLIT_PACKAGES}
561     do
562 niro 2042 # honor split_info
563     split_info_${subpackage}
564 niro 2043 if [[ ${PKGTYPE} = virtual ]]
565     then
566     # automatically set !pkgbuild here too
567     msetfeature "!pkgbuild"
568     fi
569 niro 2042
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 niro 1580 done
585 niro 2042 # unset saved variables
586     split_unset_variables
587 niro 1580 else
588 niro 1617 echo -e "${COLBLUE}===${COLGREEN} purging all purge targets ...${COLDEFAULT}"
589 niro 1636 run_resume post-mpurgetargets || mpurgetargets ${BINDIR}
590     resume_stamp post-mpurgetargets
591 niro 1580 fi
592 niro 1595 fi
593 niro 1580 fi
594    
595 niro 79 # stripping all bins and libs
596 niro 1584 if mqueryfeature "!strip"
597     then
598 niro 2042 echo -e "!strip detected; package will not be stripped ..."
599 niro 1595 elif mqueryfeature "!pkgbuild"
600     then
601     echo "!pkgbuild detected; skipping stripping of the package ..."
602 niro 1584 else
603 niro 1595 if [[ -n ${SPLIT_PACKAGES} ]]
604     then
605 niro 2042 # save smage environment
606     split_save_variables
607 niro 1595 for subpackage in ${SPLIT_PACKAGES}
608     do
609 niro 2042 # honor split_info
610     split_info_${subpackage}
611 niro 2043 if [[ ${PKGTYPE} = virtual ]]
612     then
613     # automatically set !pkgbuild here too
614     msetfeature "!pkgbuild"
615     fi
616 niro 2042
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 niro 1595 done
638 niro 2042 # unset saved variables
639     split_unset_variables
640 niro 1595 else
641     echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
642 niro 1636 run_resume post-mstripbins || mstripbins ${BINDIR}
643     resume_stamp post-mstripbins
644 niro 1595 echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries ...${COLDEFAULT}"
645 niro 1636 run_resume post-mstriplibs || mstriplibs ${BINDIR}
646     resume_stamp post-mstriplibs
647 niro 1595 echo -e "${COLBLUE}===${COLGREEN} stripping static libraries ...${COLDEFAULT}"
648 niro 1636 run_resume post-mstripstatic || mstripstatic ${BINDIR}
649     resume_stamp post-mstripstatic
650 niro 1595 fi
651 niro 1584 fi
652 niro 79
653 niro 2157 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 niro 1595 if mqueryfeature "!pkgbuild"
697 niro 1584 then
698 niro 1595 echo -e "!pkgbuild detected; Package will not be build ..."
699 niro 1584 else
700 niro 306 # build several targets
701 niro 943 if [[ -n ${MAGE_TARGETS} ]]
702 niro 192 then
703     for target in ${MAGE_TARGETS}
704     do
705 niro 1573 # check if a special target_pkgbuild exists
706 niro 192 if typeset -f ${target}_pkgbuild > /dev/null
707     then
708     # run it
709 niro 1636 run_resume post-${target}_pkgbuild || ${target}_pkgbuild
710     resume_stamp post-${target}_pkgbuild
711 niro 192 fi
712     # now create the target package
713 niro 1636 run_resume post-pkg_builddir_${target} || ${MLIBDIR}/pkgbuild_dir.sh \
714 niro 1649 "${PNAME}-${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}" \
715 niro 192 ${BINDIR} || die "target: ${target} package-build failed"
716 niro 1636 resume_stamp post-pkg_builddir_${target}
717 niro 255
718     # build pkg-md5-sum if requested
719 niro 1636 run_resume post-md5sum_${target} || generate_package_md5sum \
720 niro 1641 --pcat "${PCAT}" \
721 niro 255 --pname "${PNAME}" \
722     --pver "${PVER}" \
723     --pbuild "${PBUILD}" \
724     --parch "${ARCH}" \
725     --target "${target}"
726 niro 1636 resume_stamp post-md5sum_${target}
727 niro 255
728 niro 1649 echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD} successfully builded.\n${COLDEFAULT}"
729 niro 192 done
730 niro 943
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 niro 1659 # fix PCATEGORIE -> PCAT
741     if [[ ! -z ${PCATEGORIE} ]]
742     then
743     PCAT="${PCATEGORIE}"
744     unset PCATEGORIE
745     fi
746 niro 2043 if [[ ${PKGTYPE} = virtual ]]
747     then
748     # automatically set !pkgbuild here too
749     msetfeature "!pkgbuild"
750     fi
751 niro 943
752 niro 1595 # jump to next one if !pkgbuild is set in split_info
753 niro 2042 if mqueryfeature "!pkgbuild"
754     then
755     # restore smage environment
756     split_restore_variables
757     continue
758     fi
759 niro 947
760 niro 943 # check if an special subpackage_pkgbuild exists
761     if typeset -f ${PNAME}_pkgbuild > /dev/null
762     then
763     # run it
764 niro 1636 run_resume post-${PNAME}_pkgbuild || ${PNAME}_pkgbuild
765     resume_stamp post-${PNAME}_pkgbuild
766 niro 943 fi
767     # now create the target package
768 niro 1636 run_resume post-pkg_builddir_${PNAME} || ${MLIBDIR}/pkgbuild_dir.sh \
769 niro 1649 "${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}" \
770 niro 943 "${BINDIR}_${PNAME}" || die "split_package: ${PNAME} package-build failed"
771 niro 1636 resume_stamp post-pkg_builddir_${PNAME}
772 niro 943
773     # build pkg-md5-sum if requested
774 niro 1636 run_resume post-md5sum_${PNAME} || generate_package_md5sum \
775 niro 1641 --pcat "${PCAT}" \
776 niro 943 --pname "${PNAME}" \
777     --pver "${PVER}" \
778     --pbuild "${PBUILD}" \
779     --parch "${ARCH}"
780 niro 1636 resume_stamp post-md5sum_${PNAME}
781 niro 943
782 niro 1649 echo -e "${COLGREEN}\nPackage ${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD} successfully builded.\n${COLDEFAULT}"
783 niro 951
784     # restore smage environment
785     split_restore_variables
786 niro 943 done
787 niro 951 # unset all saved smage variables
788     split_unset_variables
789 niro 943
790 niro 192 else
791 niro 1636 run_resume post-pkg_builddir || ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
792     resume_stamp post-pkg_builddir
793 niro 255
794     # build pkg-md5-sum if requested
795 niro 1636 run_resume post-md5sum || generate_package_md5sum \
796 niro 1641 --pcat "${PCAT}" \
797 niro 255 --pname "${PNAME}" \
798     --pver "${PVER}" \
799     --pbuild "${PBUILD}" \
800     --parch "${ARCH}"
801 niro 1636 resume_stamp post-md5sum
802 niro 255
803 niro 439 echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}"
804 niro 192 fi
805 niro 403
806     # build src-pkg-tarball if requested
807 niro 1635 if mqueryfeature "srcpkgbuild"
808 niro 1617 then
809 niro 1636 run_resume post-srcpkgbuild || source_pkg_build ${SMAGENAME}
810     resume_stamp post-srcpkgbuild
811 niro 1617 fi
812 niro 1584 fi
813 niro 24
814 niro 1584 if mqueryfeature "buildlog"
815 niro 875 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 niro 24 xtitleclean

Properties

Name Value
svn:executable *