Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2209 - (hide 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 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 890 # build several targets
161 niro 943 if [[ -n ${MAGE_TARGETS} ]]
162 niro 890 then
163     for target in ${MAGE_TARGETS}
164     do
165     # build md5sum for existing packages
166     generate_package_md5sum \
167 niro 1641 --pcat "${PCAT}" \
168 niro 890 --pname "${PNAME}" \
169     --pver "${PVER}" \
170     --pbuild "${PBUILD}" \
171     --parch "${ARCH}" \
172     --target "${target}"
173     done
174 niro 943
175     # build several subpackages
176     elif [[ -n ${SPLIT_PACKAGES} ]]
177     then
178     split_save_variables
179 niro 964 for subpackage in ${SPLIT_PACKAGES}
180 niro 943 do
181     # get the right variables for the split
182     export PNAME="${subpackage}"
183     split_info_${subpackage}
184 niro 1659 # fix PCATEGORIE -> PCAT
185     if [[ ! -z ${PCATEGORIE} ]]
186     then
187     PCAT="${PCATEGORIE}"
188     unset PCATEGORIE
189     fi
190 niro 943 # build md5sum for existing packages
191     generate_package_md5sum \
192 niro 1641 --pcat "${PCAT}" \
193 niro 943 --pname "${PNAME}" \
194     --pver "${PVER}" \
195     --pbuild "${PBUILD}" \
196     --parch "${ARCH}"
197 niro 951 # restore smage environment
198     split_restore_variables
199 niro 943 done
200 niro 951 # unset all saved smage variables
201     split_unset_variables
202 niro 943
203 niro 890 else
204     # build md5sum for existing packages
205     generate_package_md5sum \
206 niro 1641 --pcat "${PCAT}" \
207 niro 890 --pname "${PNAME}" \
208     --pver "${PVER}" \
209     --pbuild "${PBUILD}" \
210 niro 943 --parch "${ARCH}"
211 niro 890 fi
212 niro 255
213 niro 202 exit 0
214     fi
215    
216 niro 412 if [ "$1" == "--create-src-tarball" -a -n "$2" ]
217 niro 403 then
218     # set correct SMAGENAME
219     SMAGENAME="$2"
220     MD5DIR="$(dirname ${SMAGENAME})/md5"
221    
222 niro 412 echo -e "${COLGREEN}create-src-tarball called for ${COLBLUE}${SMAGENAME}${COLGREEN} ...${COLDEFAULT}"
223 niro 403
224 niro 1346 smagesource ${SMAGENAME} || die "regen: smage2 not found"
225 niro 403
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 niro 406 if [ "$1" == "--src-tarball" -a -n "$2" ] || [ "$1" == "-st" -a -n "$2" ]
238 niro 403 then
239 niro 412 SRCPKGTARBALL="${2}"
240 niro 1584 msetfeature "srcpkgtarball"
241 niro 403
242 niro 412 # 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 niro 403 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 niro 412
258     [[ ! -f ${SMAGENAME} ]] && die "Included smage2 file in src-tarball not found: ${SMAGENAME}"
259 niro 403 fi
260    
261 niro 1617 if [ "$1" == "--resume" -a -n "$2" ]
262     then
263     msetfeature "resume"
264     SMAGENAME="$2"
265     fi
266 niro 403
267 niro 306 [ ! -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 niro 419 [ -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 niro 24
278 niro 1346 smagesource ${SMAGENAME} || die "source failed"
279 niro 1649 PKGNAME="${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}"
280 niro 59 MD5DIR="$(dirname ${SMAGENAME})/md5"
281 niro 941 SMAGE_LOG_CMD="tee -a /var/log/smage/${PKGNAME}.log"
282 niro 24
283     xtitle "Compiling ${PKGNAME}"
284 niro 439 echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
285 niro 59
286 niro 191 # auto regen mage tree if requested
287     regen_mage_tree
288    
289 niro 1635 if mqueryfeature "srcpkgbuild"
290 niro 403 then
291     if [[ -d ${SOURCEDIR}/${PNAME} ]]
292     then
293 niro 441 echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
294 niro 408 rm -rf ${SOURCEDIR}/${PNAME}
295 niro 403 fi
296     fi
297    
298 niro 192 # download sources
299 niro 1584 mqueryfeature "srcpkgtarball" || download_sources
300 niro 59
301 niro 192 # fixes some issues with these functions
302 niro 24 export -f src_prepare || die "src_prepare export failed"
303     export -f src_compile || die "src_compile export failed"
304 niro 1575 export -f src_check || die "src_check export failed"
305 niro 24 export -f src_install || die "src_install export failed"
306    
307 niro 192 # fixes some compile issues
308 niro 24 export CHOST="${CHOST}" || die "CHOST export failed"
309     export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
310 niro 1616 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 niro 24 export BINDIR="${BINDIR}" || die "BINDIR export failed"
318     export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
319    
320 niro 192 # setup distcc
321 niro 351 # setup for distcc goes *before* ccache, so ccache comes before distcc in path
322 niro 1584 mqueryfeature "distcc" && setup_distcc_environment
323 niro 24
324 niro 2159 # setup icecc
325     # setup for icecc goes *before* ccache, so ccache comes before icecc in path
326 niro 2172 mqueryfeature "icecc" && setup_icecc_environment
327 niro 2159
328 niro 192 # setup ccache
329 niro 1584 mqueryfeature "ccache" && setup_ccache_environment
330 niro 24
331 niro 1617 if mqueryfeature "resume"
332 niro 24 then
333 niro 1617 echo -e "${COLMAGENTA}Resume requested; continuing previous build${COLDEFAULT}"
334 niro 24
335 niro 1617 # 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 niro 24
343 niro 1617 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 niro 24
351 niro 1617 # 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 niro 1621 # clean up stamps dir
371     if [ -d ${BUILDDIR}/.stamps ]
372     then
373     rm -rf ${BUILDDIR}/.stamps
374     fi
375    
376 niro 1617 # 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 niro 24 fi
380    
381 niro 1593 if [[ ${PKGTYPE} = virtual ]]
382 niro 1575 then
383 niro 1593 echo "virtual package detected; nothing will be build ..."
384     # automatically set !pkgbuild here too
385     msetfeature "!pkgbuild"
386 niro 1575 else
387 niro 1617 ( run_resume src_prepare || src_prepare ) | ${SMAGE_LOG_CMD}
388 niro 1593 die_pipestatus 0 "src_prepare failed"
389 niro 1617 resume_stamp src_prepare
390     step_by_step src_prepare
391 niro 1575
392 niro 1617 ( run_resume src_compile || src_compile ) | ${SMAGE_LOG_CMD}
393 niro 1593 die_pipestatus 0 "src_compile failed"
394 niro 1617 resume_stamp src_compile
395     step_by_step src_compile
396 niro 945
397 niro 1593 # 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 niro 1617 ( run_resume src_check || src_check ) | ${SMAGE_LOG_CMD}
403 niro 1593 die_pipestatus 0 "src_check failed"
404 niro 1617 resume_stamp src_check
405 niro 1593 fi
406 niro 1617 step_by_step src_check
407 niro 945
408 niro 1593 # 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 niro 1784 split_info_${subpackage}
417     if [[ ${PKGTYPE} = virtual ]]
418 niro 1593 then
419 niro 2042 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 niro 1784 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 niro 1593
437 niro 1784 echo
438     echo -en "${COLBLUE}*** ${COLDEFAULT}"
439 niro 2042 echo -en "Running ${COLGREEN}split src_install()${COLDEFAULT}"
440 niro 1784 echo -en " for subpkg: ${COLBLUE}${PNAME}${COLDEFAULT}"
441     echo -e " - basepkg: ${COLBLUE}${SPLIT_PACKAGE_BASE}${COLDEFAULT} ..."
442 niro 1593
443 niro 1784 ( 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 niro 1593 fi
449 niro 2042 # restore smage environment
450     split_restore_variables
451 niro 1593 done
452     # unset all saved smage variables
453     split_unset_variables
454     else
455 niro 1617 ( run_resume src_install || src_install ) | ${SMAGE_LOG_CMD}
456 niro 1593 die_pipestatus 0 "src_install failed"
457 niro 1617 resume_stamp src_install
458     step_by_step src_install
459 niro 1593 fi
460 niro 943 fi
461 niro 24
462 niro 1593 # echo for sake of good-looking
463     echo
464    
465 niro 1584 if mqueryfeature "!compressdoc"
466 niro 24 then
467 niro 1584 echo -e "!compressdoc detected; documentation will not be compressed ..."
468 niro 1595 elif mqueryfeature "!pkgbuild"
469     then
470     echo "!pkgbuild detected; skipping documentation compression..."
471 niro 943 else
472 niro 1584 # compressing doc, info & man files
473     if [[ -n ${SPLIT_PACKAGES} ]]
474     then
475 niro 2042 # save smage environment
476     split_save_variables
477 niro 1584 for subpackage in ${SPLIT_PACKAGES}
478     do
479 niro 2042 # honor split_info
480     split_info_${subpackage}
481 niro 2043 if [[ ${PKGTYPE} = virtual ]]
482     then
483     # automatically set !pkgbuild here too
484     msetfeature "!pkgbuild"
485     fi
486 niro 2042
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 niro 1584 done
500 niro 2042 # unset saved variables
501     split_unset_variables
502 niro 1584 else
503 niro 1636 run_resume post-mcompressdoc || mcompressdocs ${BINDIR}
504     resume_stamp post-mcompressdoc
505 niro 1584 fi
506 niro 24 fi
507    
508 niro 1584 if mqueryfeature "!libtool"
509 niro 1580 then
510 niro 1595 if mqueryfeature "!pkgbuild"
511     then
512     echo "!pkgbuild detected; skipping libtool archive stripping ..."
513     else
514 niro 1580 if [[ -n ${SPLIT_PACKAGES} ]]
515     then
516 niro 2042 # save smage environment
517     split_save_variables
518 niro 1580 for subpackage in ${SPLIT_PACKAGES}
519     do
520 niro 2042 # honor split_info
521     split_info_${subpackage}
522 niro 2043 if [[ ${PKGTYPE} = virtual ]]
523     then
524     # automatically set !pkgbuild here too
525     msetfeature "!pkgbuild"
526     fi
527 niro 2042
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 niro 1580 done
543 niro 2042 # unset saved variables
544     split_unset_variables
545 niro 1580 else
546 niro 1617 echo -e "${COLBLUE}===${COLGREEN} stripping libtool archives ...${COLDEFAULT}"
547 niro 1636 run_resume post-mstriplibtoolarchive || mstriplibtoolarchive ${BINDIR}
548     resume_stamp post-mstriplibtoolarchive
549 niro 1580 fi
550 niro 1595 fi
551 niro 1580 fi
552 niro 24
553 niro 1584 if mqueryfeature "purge"
554 niro 1580 then
555 niro 1595 if mqueryfeature "!pkgbuild"
556     then
557 niro 2042 echo "!pkgbuild detected; skipping file purgation ..."
558 niro 1595 else
559 niro 1580 if [[ -n ${SPLIT_PACKAGES} ]]
560     then
561 niro 2042 # save smage environment
562     split_save_variables
563 niro 1580 for subpackage in ${SPLIT_PACKAGES}
564     do
565 niro 2042 # honor split_info
566     split_info_${subpackage}
567 niro 2043 if [[ ${PKGTYPE} = virtual ]]
568     then
569     # automatically set !pkgbuild here too
570     msetfeature "!pkgbuild"
571     fi
572 niro 2042
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 niro 1580 done
588 niro 2042 # unset saved variables
589     split_unset_variables
590 niro 1580 else
591 niro 1617 echo -e "${COLBLUE}===${COLGREEN} purging all purge targets ...${COLDEFAULT}"
592 niro 1636 run_resume post-mpurgetargets || mpurgetargets ${BINDIR}
593     resume_stamp post-mpurgetargets
594 niro 1580 fi
595 niro 1595 fi
596 niro 1580 fi
597    
598 niro 79 # stripping all bins and libs
599 niro 1584 if mqueryfeature "!strip"
600     then
601 niro 2042 echo -e "!strip detected; package will not be stripped ..."
602 niro 1595 elif mqueryfeature "!pkgbuild"
603     then
604     echo "!pkgbuild detected; skipping stripping of the package ..."
605 niro 1584 else
606 niro 1595 if [[ -n ${SPLIT_PACKAGES} ]]
607     then
608 niro 2042 # save smage environment
609     split_save_variables
610 niro 1595 for subpackage in ${SPLIT_PACKAGES}
611     do
612 niro 2042 # honor split_info
613     split_info_${subpackage}
614 niro 2043 if [[ ${PKGTYPE} = virtual ]]
615     then
616     # automatically set !pkgbuild here too
617     msetfeature "!pkgbuild"
618     fi
619 niro 2042
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 niro 1595 done
641 niro 2042 # unset saved variables
642     split_unset_variables
643 niro 1595 else
644     echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
645 niro 1636 run_resume post-mstripbins || mstripbins ${BINDIR}
646     resume_stamp post-mstripbins
647 niro 1595 echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries ...${COLDEFAULT}"
648 niro 1636 run_resume post-mstriplibs || mstriplibs ${BINDIR}
649     resume_stamp post-mstriplibs
650 niro 1595 echo -e "${COLBLUE}===${COLGREEN} stripping static libraries ...${COLDEFAULT}"
651 niro 1636 run_resume post-mstripstatic || mstripstatic ${BINDIR}
652     resume_stamp post-mstripstatic
653 niro 1595 fi
654 niro 1584 fi
655 niro 79
656 niro 2157 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 niro 1595 if mqueryfeature "!pkgbuild"
700 niro 1584 then
701 niro 1595 echo -e "!pkgbuild detected; Package will not be build ..."
702 niro 1584 else
703 niro 306 # build several targets
704 niro 943 if [[ -n ${MAGE_TARGETS} ]]
705 niro 192 then
706     for target in ${MAGE_TARGETS}
707     do
708 niro 1573 # check if a special target_pkgbuild exists
709 niro 192 if typeset -f ${target}_pkgbuild > /dev/null
710     then
711     # run it
712 niro 1636 run_resume post-${target}_pkgbuild || ${target}_pkgbuild
713     resume_stamp post-${target}_pkgbuild
714 niro 192 fi
715     # now create the target package
716 niro 1636 run_resume post-pkg_builddir_${target} || ${MLIBDIR}/pkgbuild_dir.sh \
717 niro 1649 "${PNAME}-${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}" \
718 niro 192 ${BINDIR} || die "target: ${target} package-build failed"
719 niro 1636 resume_stamp post-pkg_builddir_${target}
720 niro 255
721     # build pkg-md5-sum if requested
722 niro 1636 run_resume post-md5sum_${target} || generate_package_md5sum \
723 niro 1641 --pcat "${PCAT}" \
724 niro 255 --pname "${PNAME}" \
725     --pver "${PVER}" \
726     --pbuild "${PBUILD}" \
727     --parch "${ARCH}" \
728     --target "${target}"
729 niro 1636 resume_stamp post-md5sum_${target}
730 niro 255
731 niro 1649 echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD} successfully builded.\n${COLDEFAULT}"
732 niro 192 done
733 niro 943
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 niro 1659 # fix PCATEGORIE -> PCAT
744     if [[ ! -z ${PCATEGORIE} ]]
745     then
746     PCAT="${PCATEGORIE}"
747     unset PCATEGORIE
748     fi
749 niro 2043 if [[ ${PKGTYPE} = virtual ]]
750     then
751     # automatically set !pkgbuild here too
752     msetfeature "!pkgbuild"
753     fi
754 niro 943
755 niro 1595 # jump to next one if !pkgbuild is set in split_info
756 niro 2042 if mqueryfeature "!pkgbuild"
757     then
758     # restore smage environment
759     split_restore_variables
760     continue
761     fi
762 niro 947
763 niro 943 # check if an special subpackage_pkgbuild exists
764     if typeset -f ${PNAME}_pkgbuild > /dev/null
765     then
766     # run it
767 niro 1636 run_resume post-${PNAME}_pkgbuild || ${PNAME}_pkgbuild
768     resume_stamp post-${PNAME}_pkgbuild
769 niro 943 fi
770     # now create the target package
771 niro 1636 run_resume post-pkg_builddir_${PNAME} || ${MLIBDIR}/pkgbuild_dir.sh \
772 niro 1649 "${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD}" \
773 niro 943 "${BINDIR}_${PNAME}" || die "split_package: ${PNAME} package-build failed"
774 niro 1636 resume_stamp post-pkg_builddir_${PNAME}
775 niro 943
776     # build pkg-md5-sum if requested
777 niro 1636 run_resume post-md5sum_${PNAME} || generate_package_md5sum \
778 niro 1641 --pcat "${PCAT}" \
779 niro 943 --pname "${PNAME}" \
780     --pver "${PVER}" \
781     --pbuild "${PBUILD}" \
782     --parch "${ARCH}"
783 niro 1636 resume_stamp post-md5sum_${PNAME}
784 niro 943
785 niro 1649 echo -e "${COLGREEN}\nPackage ${PNAME}-${PVER}-${ARCH}$(print_distrotag)-${PBUILD} successfully builded.\n${COLDEFAULT}"
786 niro 951
787     # restore smage environment
788     split_restore_variables
789 niro 943 done
790 niro 951 # unset all saved smage variables
791     split_unset_variables
792 niro 943
793 niro 192 else
794 niro 1636 run_resume post-pkg_builddir || ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
795     resume_stamp post-pkg_builddir
796 niro 255
797     # build pkg-md5-sum if requested
798 niro 1636 run_resume post-md5sum || generate_package_md5sum \
799 niro 1641 --pcat "${PCAT}" \
800 niro 255 --pname "${PNAME}" \
801     --pver "${PVER}" \
802     --pbuild "${PBUILD}" \
803     --parch "${ARCH}"
804 niro 1636 resume_stamp post-md5sum
805 niro 255
806 niro 439 echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}"
807 niro 192 fi
808 niro 403
809     # build src-pkg-tarball if requested
810 niro 1635 if mqueryfeature "srcpkgbuild"
811 niro 1617 then
812 niro 1636 run_resume post-srcpkgbuild || source_pkg_build ${SMAGENAME}
813     resume_stamp post-srcpkgbuild
814 niro 1617 fi
815 niro 1584 fi
816 niro 24
817 niro 1584 if mqueryfeature "buildlog"
818 niro 875 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 niro 24 xtitleclean

Properties

Name Value
svn:executable *