Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 66 by niro, Wed Feb 16 17:50:54 2005 UTC revision 1574 by niro, Wed Dec 28 10:44:37 2011 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2    # $Id$
3    
4  # compiles/installs .smage2 source install scripts  # compiles/installs .smage2 source install scripts
5  # needs pkgbuild_dir (mage)  # needs pkgbuild_dir (mage)
6    
7  # SMAGE2  # TODO: record dynlib, gz | xz database
 # version: 0.3.6-r15  
8    
9  #01.10.2004  
10  # added ccache support  # set default user mage.rc
11  # added distcc support  : ${MAGERC="/etc/mage.rc"}
12    
13  ## setup ##  ## setup ##
 SMAGEVERSION=0.3.6-r15  
 PKGSUFFIX="mpk"  
14  SMAGENAME="$1"  SMAGENAME="$1"
15  SMAGESUFFIX="smage2"  SMAGEVERSION="$( < ${MLIBDIR}/version)"
16  #SOURCEDIR="/bootstrap/sources"  
17  #SMAGESCRIPTSDIR="/bootstrap/smage2-install-scripts"  # export default C locale
18  #SMAGE2RSYNC="rsync://192.168.0.2/smage2-scripts"  export LC_ALL=C
19  MLIBDIR=/usr/lib/mage  
20    source /etc/mage.rc.global
21    source ${MAGERC}
22    source ${MLIBDIR}/mage4.functions.sh
23    
24    # set PKGDIR and BUILDDIR and BINDIR to MROOT
25    if [[ -n ${MROOT} ]]
26    then
27     export PKGDIR=${MROOT}/${PKGDIR}
28     export BUILDDIR=${MROOT}/${BUILDDIR}
29     export BINDIR=${MROOT}/${BINDIR}
30    fi
31    
32    # sources the smage file and uses state from distribution file if exist
33    # may helpful for repository support later on
34    smagesource()
35    {
36     local file="$1"
37     local mystate
38     local mycodename
39    
40  source /etc/mage.rc   source ${file}
41    
42  showversion() {   [[ -n ${STATE} ]] && mystate="${STATE}"
43    
44     # do not overide if local state was broken or disabled!
45     case ${STATE} in
46     broken) return ;;
47     disabled) return ;;
48     esac
49    
50     if [ -f ${SMAGESCRIPTSDIR}/distribution ]
51     then
52     source ${SMAGESCRIPTSDIR}/distribution
53     [[ -n ${STATE} ]] && mystate="${STATE}"
54     fi
55     # now switch state and export it
56     STATE="${mystate}"
57    }
58    
59    showversion()
60    {
61   echo -en "Magellan Source Install v${SMAGEVERSION} "   echo -en "Magellan Source Install v${SMAGEVERSION} "
62   echo -e  "-- Niels Rogalla (niro@magellan-linux.de)"   echo -e  "-- Niels Rogalla (niro@magellan-linux.de)"
63  }  }
64    
65  die() {  die()
66    {
67   xtitleclean   xtitleclean
68     echo -e ${COLRED}"Exited ${BASH_SOURCE} at line no ${BASH_LINENO}."${COLDEFAULT}
69   echo "SMAGE failed: $@"   echo "SMAGE failed: $@"
70   exit 1   exit 1
71  }  }
72    
73  xtitle() {  die_pipestatus()
74   if [ ${TERM} == "xterm" ]  {
75     # the status change if we do any parameter declarations!!
76     # dont do this anymore, keep this in mind!
77     #
78     # local pos="$1"
79     # local comment="$2"
80     #
81     # [ ${PIPESTATUS[${pos}]} -ne 0 ] && die "${comment}"
82     #
83     [ ${PIPESTATUS[$1]} -ne 0 ] && die "$2"
84    }
85    
86    xtitle()
87    {
88     if [[ ${TERM} = xterm ]]
89   then   then
90   echo -ne "\033]0;[sMage: $@]\007"   echo -ne "\033]0;[sMage: $@]\007"
91   fi   fi
92   return 0   return 0
93  }  }
94    
95  xtitleclean() {  xtitleclean()
96   if [ ${TERM} == "xterm" ]  {
97     if [[ ${TERM} = xterm ]]
98   then   then
99   echo -ne "\033]0;\007"   echo -ne "\033]0;\007"
100   fi   fi
101   return 0   return 0
102  }  }
103    
104  syncsmage2() {  syncsmage2()
105    {
106   xtitle "Updating smage2-script tree ..."   xtitle "Updating smage2-script tree ..."
107   local i   local i
108   for i in ${SMAGE2RSYNC}   for i in ${SMAGE2RSYNC}
109   do   do
110   rsync \   rsync ${RSYNC_FETCH_OPTIONS} ${i} ${SMAGESCRIPTSDIR}
111   --recursive \   if [[ $? = 0 ]]
  --links \  
  --perms \  
  --times \  
  --devices \  
  --timeout=600 \  
  --verbose \  
  --compress \  
  --progress \  
  --stats \  
  --delete \  
  --delete-after \  
  ${i} ${SMAGESCRIPTSDIR}  
   
  if [ "$?" == "0" ]  
112   then   then
113   break   break
114   else   else
115   continue   continue
116   fi   fi
   
117   done   done
118    
119   #clean up backup files (foo~)   # clean up backup files (foo~)
120   find ${SMAGESCRIPTSDIR} -name *~ -exec rm '{}' ';'   find ${SMAGESCRIPTSDIR} -name *~ -exec rm '{}' ';'
121    
122   xtitleclean   xtitleclean
123  }  }
124    
125  # $1 filename  # $1 filename
126  get_db_md5_sum() {  get_db_md5_sum()
127    {
128   local DB_FILE   local DB_FILE
129   local MD5_FILE   local MD5_FILE
130   local i   local i
# Line 98  get_db_md5_sum() { Line 137  get_db_md5_sum() {
137   echo "${i}"   echo "${i}"
138  }  }
139    
140  download_sources() {  download_sources()
141    {
142    
143   [ -z "${SRC_URI}" ] && echo -e "\nNothing declared to download.\n" && return 0   [ -z "${SRC_URI}" ] && echo -e "\nNothing declared to download.\n" && return 0
144    
# Line 110  download_sources() { Line 150  download_sources() {
150   local DB_MD5_SUM_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"   local DB_MD5_SUM_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
151   local FETCHING   local FETCHING
152   local i mirror   local i mirror
153     local wget_opts
154    
155   #install SRCDIR/PNAME if not exist   # filter wget command if busybox was found
156     wget_opts="$(busybox_filter_wget_options ${WGET_FETCH_OPTIONS})"
157    
158     # install SRCDIR/PNAME if not exist
159   [ ! -d ${SOURCEDIR}/${PNAME} ] && install -d ${SOURCEDIR}/${PNAME}   [ ! -d ${SOURCEDIR}/${PNAME} ] && install -d ${SOURCEDIR}/${PNAME}
160    
161   # check if FETCHING is needed   # check if FETCHING is needed
162   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} &> /dev/null )   ( cd ${SOURCEDIR}/${PNAME}; md5sum -c ${DB_MD5_SUM_FILE} &> /dev/null )
163   if [[ $? == 0 ]]   if [[ $? = 0 ]]
164   then   then
165   # md5's ok, not fetching needed   # md5's ok, no fetching needed
166   FETCHING=false   FETCHING=false
167   else   else
168   FETCHING=true   FETCHING=true
169   fi   fi
170    
171   for ((i=0; i < EOA; i++))   for ((i=0; i < EOA; i++))
172   do   do
173   # url to file   # url to file
# Line 141  download_sources() { Line 184  download_sources() {
184   my_SOURCEDIR="${SOURCEDIR}/${PNAME}"   my_SOURCEDIR="${SOURCEDIR}/${PNAME}"
185   fi   fi
186    
187     # create the SOURCEDIR
188     install -d ${my_SOURCEDIR}
189    
190   # if an mirrored file than replace first the mirror uri   # if an mirrored file than replace first the mirror uri
191   if [ -n "$(echo ${my_SRC_URI} | grep 'mirror://')" ]   if [[ -n $(echo ${my_SRC_URI} | grep 'mirror://') ]]
192   then   then
193   for mirror in ${MIRRORS}   for mirror in ${MIRRORS}
194   do   do
195   my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|mirror:/|${mirror}/sources|g")"   my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|mirror:/|${mirror}/sources|g")"
196    
197   #echo "DEBUG: ${MY_SRC_URI}"   if [[ ${FETCHING} = true ]]
198   if [[ ${FETCHING} == true ]]   then
199     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
200     wget \
201     ${wget_opts} \
202     --output-document="${my_SOURCEDIR}/$(basename ${my_SRC_URI_MIRROR})" \
203     "${my_SRC_URI_MIRROR}"
204     if [[ $? = 0 ]]
205     then
206     break
207     else
208     continue
209     fi
210     fi
211     done
212     elif [[ -n $(echo ${my_SRC_URI} | grep 'sourceforge://') ]]
213     then
214     for mirror in ${SOURCEFORGE_MIRRORS}
215     do
216     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|sourceforge:/|${mirror}|g")"
217    
218     if [[ ${FETCHING} = true ]]
219     then
220     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
221     wget \
222     ${wget_opts} \
223     --output-document="${my_SOURCEDIR}/$(basename ${my_SRC_URI_MIRROR})" \
224     "${my_SRC_URI_MIRROR}"
225     if [[ $? = 0 ]]
226     then
227     break
228     else
229     continue
230     fi
231     fi
232     done
233     elif [[ -n $(echo ${my_SRC_URI} | grep 'gnu://') ]]
234     then
235     for mirror in ${GNU_MIRRORS}
236     do
237     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|gnu:/|${mirror}|g")"
238    
239     if [[ ${FETCHING} = true ]]
240     then
241     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
242     wget \
243     ${wget_opts} \
244     --output-document="${my_SOURCEDIR}/$(basename ${my_SRC_URI_MIRROR})" \
245     "${my_SRC_URI_MIRROR}"
246     if [[ $? = 0 ]]
247     then
248     break
249     else
250     continue
251     fi
252     fi
253     done
254     elif [[ -n $(echo ${my_SRC_URI} | grep 'kde://') ]]
255     then
256     for mirror in ${KDE_MIRRORS}
257     do
258     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|kde:/|${mirror}|g")"
259    
260     if [[ ${FETCHING} = true ]]
261     then
262     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
263     wget \
264     ${wget_opts} \
265     --output-document="${my_SOURCEDIR}/$(basename ${my_SRC_URI_MIRROR})" \
266     "${my_SRC_URI_MIRROR}"
267     if [[ $? = 0 ]]
268     then
269     break
270     else
271     continue
272     fi
273     fi
274     done
275     elif [[ -n $(echo ${my_SRC_URI} | grep 'gnome://') ]]
276     then
277     for mirror in ${GNOME_MIRRORS}
278     do
279     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|gnome:/|${mirror}|g")"
280    
281     if [[ ${FETCHING} = true ]]
282   then   then
283   echo "==> fetching ${my_SRC_URI_MIRROR}"   echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
284   wget \   wget \
285   --passive-ftp \   ${wget_opts} \
286   --tries 3 \   --output-document="${my_SOURCEDIR}/$(basename ${my_SRC_URI_MIRROR})" \
  --continue \  
  --progress bar \  
  --directory-prefix="${my_SOURCEDIR}" \  
287   "${my_SRC_URI_MIRROR}"   "${my_SRC_URI_MIRROR}"
288   if [ "$?" == "0" ]   if [[ $? = 0 ]]
289   then   then
290   break   break
291   else   else
# Line 168  download_sources() { Line 294  download_sources() {
294   fi   fi
295   done   done
296   else   else
297   #echo "DEBUG: ${SRC_URI[${i}]}"   if [[ ${FETCHING} = true ]]
  if [[ ${FETCHING} == true ]]  
298   then   then
299   echo "==> fetching ${my_SRC_URI}"   echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI}${COLDEFAULT}"
300   wget \   wget \
301   --passive-ftp \   ${wget_opts} \
302   --tries 3 \   --output-document="${my_SOURCEDIR}/$(basename ${my_SRC_URI})" \
  --continue \  
  --progress bar \  
  --directory-prefix="${my_SOURCEDIR}" \  
303   "${my_SRC_URI}"   "${my_SRC_URI}"
  if [ "$?" == "0" ]  
  then  
  break  
  else  
  continue  
  fi  
304   fi   fi
305   fi   fi
306    
307   # unset them to be shure   # unset them to be shure
308   unset my_SRC_URI   unset my_SRC_URI
309   unset my_SRC_URI_DEST   unset my_SRC_URI_DEST
# Line 197  download_sources() { Line 313  download_sources() {
313    
314   # recheck md5 sums   # recheck md5 sums
315   echo   echo
316   echo ">== Checking MD5 sums:"   echo -e "${COLBLUE}===${COLGREEN} Checking MD5 sums:${COLDEFAULT}"
317   ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} ) || die "md5 failed"   ( cd ${SOURCEDIR}/${PNAME}; md5sum -c ${DB_MD5_SUM_FILE} ) || die "md5 failed"
318   echo   echo
319    
320   # not needed anymore   # not needed anymore
321   unset SRC_URI   unset SRC_URI
322  }  }
323    
324  # dummy function, used if that not exist in smage file  # dummy function, used if that does not exist in smage file
325  src_prepare() {  src_prepare()
326    {
327   echo "no src_prepare defined"   echo "no src_prepare defined"
  sleep 2  
328   return 0   return 0
329  }  }
330    
331  # dummy function, used if that not exist in smage file  # dummy function, used if that does not exist in smage file
332  src_compile() {  src_compile()
333    {
334   echo "no src_compile defined"   echo "no src_compile defined"
  sleep 2  
335   return 0   return 0
336  }  }
337    
338  # dummy function, used if that not exist in smage file  # dummy function, used if that does not exist in smage file
339  src_install() {  src_install()
340    {
341   echo "no src_install defined"   echo "no src_install defined"
  sleep 2  
342   return 0   return 0
343  }  }
344    
345    mlibdir()
346    {
347     local libdir=lib
348     [[ ${ARCH} = x86_64 ]] && libdir=lib64
349    
350  build_mage_script() {   echo "${libdir}"
  return 0  
351  }  }
352    
353  mconfigure() {  mconfigure()
354    {
355   if [ -x ./configure ]   if [ -x ./configure ]
356   then   then
357   ./configure \   ./configure \
358   --prefix=/usr \   --prefix=/usr \
359   --host=${CHOST} \   --host=${CHOST} \
360   --mandir=/usr/share/man \   --build=${CHOST} \
361   --infodir=/usr/share/info \   --mandir=/usr/share/man \
362   --datadir=/usr/share \   --infodir=/usr/share/info \
363   --sysconfdir=/etc \   --datadir=/usr/share \
364   --localstatedir=/var/lib \   --sysconfdir=/etc \
365   "$@" || die "mconfigure failed"   --localstatedir=/var/lib \
366     --libdir=/usr/$(mlibdir) \
367     "$@" || die "mconfigure failed"
368   else   else
369   echo "configure is not an executable ..."   echo "configure is not an executable ..."
370   exit 1   exit 1
371   fi   fi
372  }  }
373    
374  minstall() {  minstall()
375   if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then  {
376     if [ -f ./[mM]akefile -o -f ./GNUmakefile ]
377     then
378   make prefix=${BINDIR}/usr \   make prefix=${BINDIR}/usr \
379   datadir=${BINDIR}/usr/share \   datadir=${BINDIR}/usr/share \
380   infodir=${BINDIR}/usr/share/info \   infodir=${BINDIR}/usr/share/info \
381   localstatedir=${BINDIR}/var/lib \   localstatedir=${BINDIR}/var/lib \
382   mandir=${BINDIR}/usr/share/man \   mandir=${BINDIR}/usr/share/man \
383   sysconfdir=${BINDIR}/etc \   sysconfdir=${BINDIR}/etc \
384     libdir=${BINDIR}/usr/$(mlibdir) \
385   "$@" install || die "minstall failed"   "$@" install || die "minstall failed"
386          else          else
387                  die "no Makefile found"                  die "no Makefile found"
388          fi          fi
389  }  }
390    
391  mmake() {  mmake()
392    {
393   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"
394  }  }
395    
396  munpack() {  munpack()
397    {
398   local SRCFILE   local SRCFILE
399   local IFTAR   local IFTAR
400   local DEST   local DEST
401    
402   SRCFILE=$1   SRCFILE=$1
403    
404   if [ -z "$2" ]   if [[ -z $2 ]]
405   then   then
406   DEST=${BUILDDIR}   DEST=${BUILDDIR}
407   else   else
408   DEST=$2   DEST=$2
409   fi   fi
410    
411     [[ ! -d ${DEST} ]] && install -d ${DEST}
412    
413   case "${SRCFILE##*.}" in   case "${SRCFILE##*.}" in
414   bz2)   bz2)
415   IFTAR="$(basename $SRCFILE .bz2)"   IFTAR="$(basename $SRCFILE .bz2)"
416   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
417   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
418   then   then
419   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tar.bz2 unpack failed."
420     else
421     pushd ${DEST} > /dev/null
422     bzcat ${SOURCEDIR}/${PNAME}/${SRCFILE} > ${DEST}/$(basename ${SRCFILE} .bz2) || die ".bz2 unpack failed."
423     popd > /dev/null
424   fi   fi
425   ;;   ;;
426   gz)   gz)
427   IFTAR="$(basename $SRCFILE .gz)"   IFTAR="$(basename $SRCFILE .gz)"
428   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
429   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
430     then
431     tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tar.gz unpack failed."
432     else
433     pushd ${DEST} > /dev/null
434     zcat ${SOURCEDIR}/${PNAME}/${SRCFILE} > ${DEST}/$(basename ${SRCFILE} .gz) || die ".gz unpack failed."
435     popd > /dev/null
436     fi
437     ;;
438     xz)
439     IFTAR="$(basename $SRCFILE .xz)"
440     IFTAR="${IFTAR##*.}"
441     if [[ ${IFTAR} = tar ]]
442   then   then
443   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvJf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tar.xz unpack failed."
444     else
445     pushd ${DEST} > /dev/null
446     xzcat ${SOURCEDIR}/${PNAME}/${SRCFILE} > ${DEST}/$(basename ${SRCFILE} .xz) || die ".xz unpack failed."
447     popd > /dev/null
448   fi   fi
449   ;;   ;;
450   tbz2)   tbz2|mpks|mpk)
451   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tbz2 unpack failed."
452   ;;   ;;
453   tgz)   tgz)
454   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".tgz unpack failed."
455     ;;
456     txz|mpkzs|mpkz)
457     tar --no-same-owner -xvJf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST} || die ".txz unpack failed."
458     ;;
459     rar)
460     unrar x ${SOURCEDIR}/${PNAME}/${SRCFILE} ${DEST}  || die ".rar unpack failed."
461     ;;
462     zip|xpi)
463     unzip ${SOURCEDIR}/${PNAME}/${SRCFILE} -d ${DEST} || die ".zip unpack failed."
464     ;;
465     rpm)
466     pushd ${DEST} > /dev/null
467     rpm2targz ${SOURCEDIR}/${PNAME}/${SRCFILE} || die "rpm2targz: .rpm unpack failed."
468     tar --no-same-owner -xvzf ${SRCFILE/.rpm/.tar.gz} || die "tar: .rpm unpack failed."
469     if [[ -f ${DEST}/${SRCFILE/.rpm/.tar.gz} ]]
470     then
471     rm ${DEST}/${SRCFILE/.rpm/.tar.gz}
472     fi
473   ;;   ;;
474   *)   *)
475   die "munpack failed"   die "munpack failed"
# Line 310  munpack() { Line 477  munpack() {
477   esac   esac
478  }  }
479    
480  mpatch() {  mpatch()
481    {
482   local PATCHOPTS   local PATCHOPTS
483   local PATCHFILE   local PATCHFILE
484     local i
485    
486   PATCHOPTS=$1   PATCHOPTS=$1
487   PATCHFILE=$2   PATCHFILE=$2
488    
489     if [[ -z $2 ]]
490     then
491     PATCHFILE=$1
492    
493     ## patch level auto-detection, get patch level
494     for ((i=0; i < 10; i++))
495     do
496     patch --dry-run -Np${i} -i ${SOURCEDIR}/${PNAME}/${PATCHFILE} > /dev/null
497     if [[ $? = 0 ]]
498     then
499     PATCHOPTS="-Np${i}"
500     break
501     fi
502     done
503     fi
504    
505     echo -e "${COLBLUE}*** ${COLGREEN}Applying patch '${PATCHFILE}'${COLDEFAULT}"
506   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}
507  }  }
508    
509    mlibtoolize()
510    {
511     local opts="$@"
512     [[ -z ${opts} ]] && opts="--verbose --install --force"
513    
514     libtoolize ${opts} || die "running: mlibtoolize ${opts}"
515    }
516    
517    mautoreconf()
518    {
519     local opts="$@"
520     [[ -z ${opts} ]] && opts="--verbose --install --force"
521    
522  minstalldocs() {   autoreconf ${opts} || die "running: mautoreconf ${opts}"
523    }
524    
525    minstalldocs()
526    {
527   local docfiles   local docfiles
   
528   docfiles="$@"   docfiles="$@"
529    
530   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]
531   then   then
532   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."
533   fi   fi
534    
535     local i
536   for i in ${docfiles}   for i in ${docfiles}
537   do   do
538   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."   if [ -f ${i} ]
539   install -m 0644 ${SRCDIR}/${i}.gz \   then
540   ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "coping docs."   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."
541     install -m 0644 ${SRCDIR}/${i}.gz \
542     ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "coping docs."
543     fi
544   done   done
545  }  }
546    
547  setup_distcc_environment(){  mstriplibs()
548   if [ -x /usr/bin/distcc ]  {
549     local stripdir="$@"
550    
551     [ -z "${stripdir}" ] && stripdir=${BINDIR}
552     find ${stripdir} | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip ${STRIP_DYN_LIB} 2> /dev/null
553    }
554    
555    mstripbins()
556    {
557     local stripdir="$@"
558    
559     [ -z "${stripdir}" ] && stripdir=${BINDIR}
560     find ${stripdir} | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip ${STRIP_DYN_BIN} 2> /dev/null
561    }
562    
563    mstripstatic()
564    {
565     local stripdir="$@"
566    
567     [ -z "${stripdir}" ] && stripdir=${BINDIR}
568     find ${stripdir} | xargs file | grep "ar archive" | cut -f 1 -d : | xargs strip ${STRIP_STATIC_LIB} 2> /dev/null
569    }
570    
571    mcompressdocs()
572    {
573     local bindir="$@"
574    
575     if [ -d ${bindir}/usr/share/man ]
576     then
577     echo -e "${COLBLUE}===${COLGREEN} compressing man-pages ...${COLDEFAULT}"
578     ${MLIBDIR}/compressdoc -g -9 ${bindir}/usr/share/man
579     fi
580    
581     if [ -d ${bindir}/usr/share/info ]
582   then   then
583   echo "Using DistCC for compilation ..."   echo -e "${COLBLUE}===${COLGREEN} compressing info-pages ...${COLDEFAULT}"
584   export PATH=/usr/lib/distcc/bin:${PATH} || die "distcc: could not export new $PATH"   ${MLIBDIR}/compressdoc -g -9 ${bindir}/usr/share/info
585     fi
586    }
587    
588    sminclude()
589    {
590     local i
591    
592     if [[ -n "$@" ]]
593     then
594     for i in $@
595     do
596     echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"
597     source ${SMAGESCRIPTSDIR}/include/${i}.sminc
598     done
599     echo
600     fi
601    }
602    
603   #export distcc as compiler  setup_distcc_environment()
604  # export CC="distcc"  {
605  # export CXX=distcc   if [ -x /usr/bin/distcc ]
606     then
607     echo -e "${COLBLUE}---${COLGREEN} Using DistCC for compilation ...${COLDEFAULT}"
608     export PATH=/usr/$(mlibdir)/distcc/bin:${PATH} || die "distcc: could not export new $PATH"
609    
610   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"
611    
612     # creating distcc tempdir
613     install -o distcc -g daemon -d ${DISTCC_DIR}
614     chmod 1777 ${DISTCC_DIR}
615     fi
616    }
617    
618   #ccache + distcc together  setup_ccache_environment()
619   if [ "${SMAGE_USE_CCACHE}" == "true" ]  {
620   then   if [ -x /usr/bin/ccache ]
621   if [ -x /usr/bin/ccache ]   then
622     echo -e "${COLBLUE}---${COLGREEN} Using CCache for compilation ...${COLDEFAULT}"
623     export PATH=/usr/$(mlibdir)/ccache/bin:${PATH} || die "ccache: could not export new $PATH"
624     fi
625    }
626    
627    
628    # fixes given dependencies to match a MAGE_TARGET
629    # fix_mage_deps -target s/depend # <-- note -target !
630    fix_mage_deps()
631    {
632     local target="$1"
633     local depend="$2"
634     local NDEPEND
635     local sym dep cat pver pname
636    
637     # deps and provides are special
638     # they must be fixed to match the target
639    
640     # run this only if target and depend is not empty
641     if [ -n "${target}" ] && [ -n "${depend}" ]
642     then
643     # fix DEPEND
644     while read sym dep
645     do
646     # ignore empty lines
647     [[ -z ${dep} ]] && continue
648    
649     cat="$(dirname ${dep})"
650     # change if not virtual
651     if [[ ${cat} = virtual ]]
652     then
653     pname="$(basename ${dep})"
654     else
655     # fix pver to target-pver
656     # to get pname-target-pver
657    
658     # doing it backwards !
659     pver="${dep##*-}"
660     # full pver
661     pname="$(basename ${dep/-${pver}/})${target}-${pver}"
662     fi
663    
664     # do not add empty lines
665     if [ -z "${NDEPEND}" ]
666   then   then
667   echo "Preparing DistCC to work together with CCache ..."   NDEPEND="${sym} ${cat}/${pname}"
668   #export CCACHE_PREFIX="distcc" || die "distcc: could not set ccach_prefix"   else
669  # export CC="ccache distcc"   NDEPEND="${NDEPEND}
670  # export CXX="ccache distcc"   ${sym} ${cat}/${pname}"
671   fi   fi
672    
673     unset cat pname pver
674     done << EOF
675    ${depend}
676    EOF
677     # set NDEPEND to DEPEND
678     depend="${NDEPEND}"
679     fi
680    
681     echo "${depend}"
682    }
683    
684    # build_mage_script(): helper functions for regen_mage_tree()
685    # generates an mage file with given information in smage file
686    # needs at least:
687    #   PNAME                 name of pkg
688    #   PVER                  version
689    #   PBUILD                revision
690    #   PCATEGORIE            categorie of the pkg
691    #   STATE                 state of pkg stable|unstable|old
692    #   DESCRIPTION           va short description (opt)
693    #   HOMEPAGE              homepage (opt)
694    #   DEPEND                runtime dependencies (opt)
695    #   SDEPEND               add. needed deps to build the pkg (opt)
696    #   PROVIDE               provides a virtual (opt)
697    #
698    # special tags:
699    #   PKGTYPE               type of pkg
700    #   INHERITS              which functions get included
701    #   SPECIAL_FUNCTIONS     special functions which should also be added
702    #                         warning: they get killed before the build starts !
703    #   SPLIT_PACKAGES        names of all subpackages which are splitted from parent
704    #   SPLIT_PACKAGE_BASE    base package name for splitpackages
705    #                         (only in the resulting magefile}
706    #
707    #   MAGE_TREE_DEST        target destination of the generated tree
708    #   REGEN_MAGE_TREE       set to 'true' to enable this
709    #
710    # gets called with build_mage_script target
711    build_mage_script()
712    {
713     local magefile
714     local dest
715     local target
716     local split_pkg_base
717     local sym
718     local depname
719    
720     # if MAGE_TREE_DEST not set use BUILDDIR
721     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
722    
723     # determinate which suffix this mage file should get, if any
724     [[ $1 = --target ]] && shift && target="-$1"
725    
726     # mark package as splitpackage
727     [[ $1 = --split-pkg-base ]] && shift && split_pkg_base="$1"
728    
729     # name of magefile
730     magefile="${PNAME}${target}-${PVER}-${PBUILD}.mage"
731    
732     # destination to magefile
733     dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${target}/${magefile}"
734    
735     # show what we are doing
736     echo -e "${COLBLUE}===${COLGREEN} generating mage file:${COLDEFAULT}"
737     echo "${dest}"
738    
739     install -d "$(dirname ${dest})"
740     # now build the mage file
741     > ${dest}
742    
743     # pgkname and state
744     echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}
745     echo "STATE=\"${STATE}\"" >> ${dest}
746    
747     # description and homepage
748     echo "DESCRIPTION=\"${DESCRIPTION}\"" >> ${dest}
749     echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}
750    
751     # special tags and vars
752     echo "PKGTYPE=\"${PKGTYPE}\""  >> ${dest}
753    
754     # echo MAGE_TARGETS ## note -target is needed !
755     echo "MAGE_TARGETS=\"${target}\"" >> ${dest}
756    
757     # split package base
758     echo "SPLIT_PACKAGE_BASE=\"${split_pkg_base}\"" >> ${dest}
759    
760     # add special vars
761     if [ -n "${SPECIAL_VARS}" ]
762     then
763     local i
764     for i in ${SPECIAL_VARS}
765     do
766     # being tricky here :)
767     echo "${i}=\"$(eval echo \$${i})\"" >> ${dest}
768     done
769     fi
770    
771     # add at least all includes
772     if [ -n "${INHERITS}" ]
773     then
774     echo -n "minclude"  >> ${dest}
775     local i
776     for i in ${INHERITS}
777     do
778     echo -n " ${i}"  >> ${dest}
779     done
780     # a CRLF is needed here!
781     echo >> ${dest}
782     fi
783    
784     # deps and provides
785     echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}
786     echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest}
787     echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}
788    
789     # add special functions
790     if [ -n "${SPECIAL_FUNCTIONS}" ]
791     then
792     local i
793     for i in ${SPECIAL_FUNCTIONS}
794     do
795     # add to mage (quotes needed !)
796     typeset -f "${i}" >> ${dest}
797     # unset to be safe (quotes needed !)
798     #unset "${i}" <-- later to get every target built
799     done
800     fi
801    
802     # pre|post-install|removes
803     typeset -f preinstall >> ${dest}
804     typeset -f postinstall >> ${dest}
805     typeset -f preremove >> ${dest}
806     typeset -f postremove >> ${dest}
807    }
808    
809    regen_mage_tree()
810    {
811     local subpackage
812    
813     # build them only if requested
814     if [[ ${REGEN_MAGE_TREE} = true ]]
815     then
816     # run it without targets
817     if [[ -n ${MAGE_TARGETS} ]]
818     then
819     # build for each target a mage file
820     # run it with several targets
821     echo
822     for subpackage in ${MAGE_TARGETS}
823     do
824     build_mage_script --target "${subpackage}"
825     done
826     echo
827    
828     # run it for splitpackages
829     elif [[ -n ${SPLIT_PACKAGES} ]]
830     then
831     local split_pkg_base="${PNAME}"
832     # save smage environment
833     split_save_variables
834     # build for each subpackage a mage file
835     # run it with several targets
836     echo
837     for subpackage in ${SPLIT_PACKAGES}
838     do
839     # get the right variables for the split
840     export PNAME="${subpackage}"
841     split_info_${subpackage}
842     # get the preinstall etc
843     split_export_inherits ${subpackage}
844     build_mage_script --split-pkg-base "${split_pkg_base}"
845     # delete split preinstall etc
846     split_delete_inherits ${subpackage}
847     # restore smage environment
848     split_restore_variables
849     done
850     echo
851     # unset all saved smage variables
852     split_unset_variables
853    
854     else
855     echo
856     build_mage_script
857     echo
858   fi   fi
859     fi
860    
861   #creating distcc tempdir   # now unset all uneeded vars to be safe
862   install -o distcc -g daemon -d ${DISTCC_DIR}   # unset PKGNAME <-- don't do that; smage needs this var
863   chmod 1777 ${DISTCC_DIR}   # unset to be safe (quotes needed !)
864    # for i in ${SPECIAL_FUNCTIONS}
865    # do
866    # unset "${i}"
867    # done
868     unset SPECIAL_FUNCTIONS
869    # for i in ${SPECIAL_VARS}
870    # do
871    # unset "${i}"
872    # done
873     unset SPECIAL_VARS
874     unset STATE
875     unset DESCRIPTION
876     unset HOMEPAGE
877     unset PKGTYPE
878     unset INHERITS
879     unset DEPEND
880     unset SDEPEND
881     unset PROVIDE
882     unset preinstall
883     unset postinstall
884     unset preremove
885     unset postremove
886    }
887    
888    split_save_variables()
889    {
890     export SAVED_PNAME="${PNAME}"
891     export SAVED_PVER="${PVER}"
892     export SAVED_PBUILD="${PBUILD}"
893     export SAVED_PCATEGORIE="${PCATEGORIE}"
894     export SAVED_DESCRIPTION="${DESCRIPTION}"
895     export SAVED_HOMEPAGE="${HOMEPAGE}"
896     export SAVED_SPECIAL_VARS="${SPECIAL_VARS}"
897     export SAVED_STATE="${STATE}"
898     export SAVED_PKGTYPE="${PKGTYPE}"
899     export SAVED_INHERITS="${INHERITS}"
900     export SAVED_DEPEND="${DEPEND}"
901     export SAVED_SDEPEND="${SDEPEND}"
902     export SAVED_PROVIDE="${PROVIDE}"
903     export SAVED_NOPKGBUILD="${NOPKGBUILD}"
904    
905     # bindir too
906     export SAVED_BINDIR="${BINDIR}"
907    
908     # export the SPLIT_PACKAGE_BASE
909     export SPLIT_PACKAGE_BASE="${SAVED_PNAME}"
910    
911     # functions
912     if [[ ! -z $(typeset -f preinstall) ]]
913     then
914     # rename the old one
915     local saved_preinstall
916     saved_preinstall=SAVED_$(typeset -f preinstall)
917     eval "${saved_preinstall}"
918     export -f SAVED_preinstall
919     fi
920    
921     if [[ ! -z $(typeset -f postinstall) ]]
922     then
923     # rename the old one
924     local saved_postinstall
925     saved_postinstall=SAVED_$(typeset -f postinstall)
926     eval "${saved_postinstall}"
927     export -f SAVED_postinstall
928     fi
929    
930     if [[ ! -z $(typeset -f preremove) ]]
931     then
932     # rename the old one
933     local saved_preremove
934     saved_preremove=SAVED_$(typeset -f preremove)
935     eval "${saved_preremove}"
936     export -f SAVED_preremove
937     fi
938    
939     if [[ ! -z $(typeset -f postremove) ]]
940     then
941     # rename the old one
942     local saved_postremove
943     saved_postremove=SAVED_$(typeset -f postremove)
944     eval "${saved_postremove}"
945     export -f SAVED_postremove
946   fi   fi
947  }  }
948    
949  setup_ccache_environment(){  split_restore_variables()
950   if [ -x /usr/bin/ccache ]  {
951     export PNAME="${SAVED_PNAME}"
952     export PVER="${SAVED_PVER}"
953     export PBUILD="${SAVED_PBUILD}"
954     export PCATEGORIE="${SAVED_PCATEGORIE}"
955     export DESCRIPTION="${SAVED_DESCRIPTION}"
956     export HOMEPAGE="${SAVED_HOMEPAGE}"
957     export SPECIAL_VARS="${SAVED_SPECIAL_VARS}"
958     export STATE="${SAVED_STATE}"
959     export PKGTYPE="${SAVED_PKGTYPE}"
960     export INHERITS="${SAVED_INHERITS}"
961     export DEPEND="${SAVED_DEPEND}"
962     export SDEPEND="${SAVED_SDEPEND}"
963     export PROVIDE="${SAVED_PROVIDE}"
964     export NOPKGBUILD="${SAVED_NOPKGBUILD}"
965    
966     # bindir too
967     export BINDIR="${SAVED_BINDIR}"
968    
969     # functions
970     if [[ ! -z $(typeset -f SAVED_preinstall) ]]
971     then
972     # rename the old one
973     local saved_preinstall
974     saved_preinstall=$(typeset -f SAVED_preinstall)
975     eval "${saved_preinstall/SAVED_/}"
976     export -f preinstall
977     fi
978    
979     if [[ ! -z $(typeset -f SAVED_postinstall) ]]
980     then
981     # rename the old one
982     local saved_postinstall
983     saved_postinstall=$(typeset -f SAVED_postinstall)
984     eval "${saved_postinstall/SAVED_/}"
985     export -f postinstall
986     fi
987    
988     if [[ ! -z $(typeset -f SAVED_preremove) ]]
989     then
990     # rename the old one
991     local saved_preremove
992     saved_preremove=$(typeset -f SAVED_preremove)
993     eval "${saved_preremove/SAVED_/}"
994     export -f preremove
995     fi
996    
997     if [[ ! -z $(typeset -f SAVED_postremove) ]]
998     then
999     # rename the old one
1000     local saved_postremove
1001     saved_postremove=$(typeset -f SAVED_postremove)
1002     eval "${saved_postremove/SAVED_/}"
1003     export -f postremove
1004     fi
1005    }
1006    
1007    split_unset_variables()
1008    {
1009     # unset saved vars; not needed anymore
1010     unset SAVED_PNAME
1011     unset SAVED_PVER
1012     unset SAVED_PBUILD
1013     unset SAVED_PCATEGORIE
1014     unset SAVED_DESCRIPTION
1015     unset SAVED_HOMEPAGE
1016     unset SAVED_SPECIAL_VARS
1017     unset SAVED_STATE
1018     unset SAVED_PKGTYPE
1019     unset SAVED_INHERITS
1020     unset SAVED_DEPEND
1021     unset SAVED_SDEPEND
1022     unset SAVED_PROVIDE
1023     unset SAVED_BINDIR
1024     unset SAVED_NOPKGBUILD
1025     unset SPLIT_PACKAGE_BASE
1026     unset -f SAVED_preinstall
1027     unset -f SAVED_postinstall
1028     unset -f SAVED_preremove
1029     unset -f SAVED_postremove
1030    }
1031    
1032    split_export_inherits()
1033    {
1034     local subpackage="$1"
1035     local func
1036     local newfunc
1037    
1038     for func in preinstall postinstall preremove postremove
1039     do
1040     if [[ ! -z $(typeset -f ${func}_${subpackage}) ]]
1041     then
1042     newfunc=$(typeset -f ${func}_${subpackage})
1043     newfunc="${newfunc/_${subpackage} (/ (}"
1044     eval "${newfunc}"
1045     fi
1046     done
1047    }
1048    
1049    split_delete_inherits()
1050    {
1051     local subpackage="$1"
1052     local func
1053    
1054     for func in preinstall postinstall preremove postremove
1055     do
1056     if [[ ! -z $(typeset -f ${func}_${subpackage}) ]]
1057     then
1058     unset -f ${func}
1059     fi
1060     done
1061     }
1062    
1063    export_inherits()
1064    {
1065     local include="$1"
1066     shift
1067    
1068     while [ "$1" ]
1069     do
1070     local functions="$1"
1071    
1072     # sanity checks
1073     [ -z "${include}" ] && die "export_inherits(): \$include not given."
1074     [ -z "${functions}" ] && die "export_inherits(): \$functions not given."
1075    
1076     eval "${functions}() { ${include}_${functions} ; }"
1077    
1078     # debug
1079     [[ ${MAGEDEBUG} = on ]] && typeset -f "${functions}"
1080    
1081     shift
1082     done
1083    }
1084    
1085    generate_package_md5sum()
1086    {
1087     local dest
1088     local pcat
1089     local pname
1090     local pver
1091     local pbuild
1092     local parch
1093     local target
1094     local pkgname
1095    
1096     # very basic getops
1097     for i in $*
1098     do
1099     case $1 in
1100     --pcat|-c) shift; pcat="$1" ;;
1101     --pname|-n) shift; pname="$1" ;;
1102     --pver|-v) shift; pver="$1" ;;
1103     --pbuild|-b) shift; pbuild="$1" ;;
1104     --parch|a) shift; parch="$1" ;;
1105     --target|t) shift; target="$1" ;;
1106     esac
1107     shift
1108     done
1109    
1110     # sanity checks; abort if not given
1111     [ -z "${pcat}" ] && die "generate_package_md5sum() \$pcat not given."
1112     [ -z "${pname}" ] && die "generate_package_md5sum() \$pname not given."
1113     [ -z "${pver}" ] && die "generate_package_md5sum() \$pver not given."
1114     [ -z "${pbuild}" ] && die "generate_package_md5sum() \$pbuild not given."
1115     [ -z "${parch}" ] && die "generate_package_md5sum() \$parch not given."
1116    
1117     # check needed global vars
1118     [ -z "${PKGDIR}" ] && die "generate_package_md5sum() \$PKGDIR not set."
1119     [ -z "${PKGSUFFIX}" ] && die "generate_package_md5sum() \$PKGSUFFIX not set."
1120    
1121     # fix target as it may be empty !
1122     [ -n "${target}" ] && target="-${target}"
1123    
1124    
1125     # build pkgname
1126     pkgname="${pname}${target}-${pver}-${parch}-${pbuild}"
1127    
1128     # build pkg-md5-sum only if requested
1129     if [[ ${REGEN_MAGE_TREE} = true ]]
1130     then
1131     echo -ne "${COLBLUE}===${COLGREEN} generating md5's for ${pkgname}.${PKGSUFFIX} ... ${COLDEFAULT}"
1132    
1133     # abort if not exist
1134     if [ ! -f ${PKGDIR}/${pkgname}.${PKGSUFFIX} ]
1135     then
1136     echo -e "${COLRED}! exists${COLDEFAULT}"
1137     return 0
1138     fi
1139    
1140     # if MAGE_TREE_DEST not set use BUILDDIR
1141     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
1142    
1143     # setup md5 dir
1144     dest="${MAGE_TREE_DEST}/${pcat}/${pname}${target}/md5"
1145     install -d ${dest}
1146    
1147     # gen md5sum
1148     ( cd ${PKGDIR}; md5sum "${pkgname}.${PKGSUFFIX}" ) \
1149     > ${dest}/${pkgname}.md5
1150     echo -e "${COLGREEN}done${COLDEFAULT}"
1151     fi
1152    }
1153    
1154    source_pkg_build()
1155    {
1156     if [[ ${PKGTYPE} = virtual ]]
1157     then
1158     echo "Virtual package detected; src-pkg-tarball not necessary ..."
1159     return 0
1160     fi
1161    
1162     if [[ ! -d ${SOURCEDIR}/${PNAME} ]]
1163   then   then
1164   echo "Using CCache for compilation ..."   echo "No SRC_URI defined; src-pkg-tarball not necessary ..."
1165   export PATH=/usr/lib/ccache/bin:${PATH} || die "ccache: could not export new $PATH"   return 0
1166   #unset CC CXX   fi
1167    
1168     [ -z "${SRCPKGDIR}" ] && die "\$SRCPKGDIR not found. Please setup your ${MAGERC} correctly."
1169    
1170     echo -e "${COLGREEN}Creating source package tarball ... ${COLDEFAULT}"
1171    
1172     # include the smage2 file
1173     cp ${SMAGENAME} ${SOURCEDIR}/${PNAME}
1174    
1175     ( cd ${SOURCEDIR}; tar cvjf ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${PNAME}; )
1176     [[ ! -d ${SRCPKGDIR} ]] && install -d ${SRCPKGDIR}
1177     mv ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${SRCPKGDIR}/${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX}
1178    
1179     echo -e "${COLGREEN}Source package ${COLBLUE}${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX} ${COLGREEN}successfully builded.${COLDEFAULT}"
1180    }
1181    
1182    step_by_step()
1183    {
1184     if [[ ${STEP_BY_STEP} = true ]]
1185     then
1186     echo -e "${COLRED}Step-by-step enabled! Paused after $1.${COLDEFAULT}"
1187     echo "Press [enter] to continue"
1188     read
1189   fi   fi
1190  }  }
1191    
1192    
1193  # print out our version  # print out our version
1194  showversion  showversion
1195  echo  echo
# Line 390  then Line 1201  then
1201   exit 1   exit 1
1202  fi  fi
1203    
1204  #updating smage2-scripts  # updating smage2-scripts
1205  if [ "$1" == "update" ]  if [[ $1 = update ]]
1206  then  then
1207   if [ ! -d ${SOURCEDIR} ]   if [ ! -d ${SOURCEDIR} ]
1208   then   then
# Line 401  then Line 1212  then
1212   exit 0   exit 0
1213  fi  fi
1214    
1215  #creates md5sums for smages to given dir  # creates md5sums for smages to given dir
1216  if [ "$1" == "calcmd5" ]  if [[ $1 = calcmd5 ]]
1217  then  then
1218   if [ $# -ge 3 ]   if [ $# -ge 2 ]
1219   then   then
1220   SMAGENAME="$2"   SMAGENAME="$2"
1221   MD5DIR="$3"   MD5DIR="$3"
1222   source ${SMAGENAME} || die "download source failed"   [[ -z ${MD5DIR} ]] && MD5DIR="$(dirname ${SMAGENAME})/md5"
1223    
1224     smagesource ${SMAGENAME} || die "download source failed"
1225    
1226   # overridable sourcedir; must be declared after source of the smage2   # overridable sourcedir; must be declared after source of the smage2
1227   CALC_SOURCEDIR="${CALC_SOURCEDIR:="${SOURCEDIR}/${PNAME}"}"   CALC_SOURCEDIR="${CALC_SOURCEDIR:="${SOURCEDIR}/${PNAME}"}"
# Line 454  then Line 1267  then
1267   unset my_SRC_URI_MIRROR   unset my_SRC_URI_MIRROR
1268   unset my_SOURCEDIR   unset my_SOURCEDIR
1269   done   done
1270    
1271   echo   echo
1272   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."   echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
1273   echo   echo
1274   else   else
1275   echo "Usage: Calculating MD5 Sums:"   echo "Usage: Calculating MD5 Sums:"
1276   echo "    $(basename $0) calcmd5 /path/to/SMAGENAME /path/to/MD5DIR"   echo "    $(basename $0) calcmd5 /path/to/SMAGENAME [/path/to/MD5DIR]"
1277   echo   echo
1278   echo   echo
1279   echo "Export the CALC_SOURCEDIR variable to override current SOURCEDIRs."   echo "Export the CALC_SOURCEDIR variable to override current SOURCEDIRs."
1280   echo   echo
1281   exit 1   exit 1
1282   fi   fi
1283    
1284   exit 0   exit 0
1285  fi  fi
1286    
1287  #download sources  # download sources
1288  if [ "$1" == "download" -a -n "$2" ]  if [ "$1" == "download" -a -n "$2" ]
1289  then  then
  showversion  
1290   if [ ! -d ${SMAGESCRIPTSDIR} ]   if [ ! -d ${SMAGESCRIPTSDIR} ]
1291   then   then
1292   install -d ${SMAGESCRIPTSDIR}   install -d ${SMAGESCRIPTSDIR}
# Line 483  then Line 1295  then
1295   # get smage   # get smage
1296   SMAGENAME="$2"   SMAGENAME="$2"
1297   MD5DIR="$(dirname ${SMAGENAME})/md5"   MD5DIR="$(dirname ${SMAGENAME})/md5"
1298   source ${SMAGENAME} || die "download source failed"   smagesource ${SMAGENAME} || die "download source failed"
1299    
1300   download_sources   download_sources
1301   exit 0   exit 0
1302  fi  fi
1303    
1304  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]  # regen-mage-tree
1305    if [ "$1" == "only-regen-tree" -a -n "$2" ]
1306  then  then
1307   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."   # set correct SMAGENAME
1308  fi   SMAGENAME="$2"
1309     MD5DIR="$(dirname ${SMAGENAME})/md5"
1310     smagesource ${SMAGENAME} || die "regen: smage2 not found"
1311    
1312  if [ -z "`basename ${SMAGENAME}|grep .${SMAGESUFFIX}`" ]   regen_mage_tree
 then  
  die "File '`basename ${SMAGENAME}`' is not a sMage v${SMAGEVERSION} file. Aborting."  
 fi  
1313    
1314  if [ -z "${SOURCEDIR}" ]   # build several targets
1315  then   if [[ -n ${MAGE_TARGETS} ]]
1316   die "\$SOURCEDIR not found. Please setup your mage.rc correctly."   then
1317  fi   for target in ${MAGE_TARGETS}
1318     do
1319     # build md5sum for existing packages
1320     generate_package_md5sum \
1321     --pcat "${PCATEGORIE}" \
1322     --pname "${PNAME}" \
1323     --pver "${PVER}" \
1324     --pbuild "${PBUILD}" \
1325     --parch "${ARCH}" \
1326     --target "${target}"
1327     done
1328    
1329  if [ -z "${SMAGESCRIPTSDIR}" ]   # build several subpackages
1330  then   elif [[ -n ${SPLIT_PACKAGES} ]]
1331   die "\$SMAGESCRIPTSDIR not found. Please setup your mage.rc correctly."   then
1332  fi   split_save_variables
1333     for subpackage in ${SPLIT_PACKAGES}
1334     do
1335     # get the right variables for the split
1336     export PNAME="${subpackage}"
1337     split_info_${subpackage}
1338     # build md5sum for existing packages
1339     generate_package_md5sum \
1340     --pcat "${PCATEGORIE}" \
1341     --pname "${PNAME}" \
1342     --pver "${PVER}" \
1343     --pbuild "${PBUILD}" \
1344     --parch "${ARCH}"
1345     # restore smage environment
1346     split_restore_variables
1347     done
1348     # unset all saved smage variables
1349     split_unset_variables
1350    
1351  if [ -z "${SMAGE2RSYNC}" ]   else
1352  then   # build md5sum for existing packages
1353   echo "\$SMAGE2RSYNC not found. Please setup your mage.rc correctly."   generate_package_md5sum \
1354   exit 1   --pcat "${PCATEGORIE}" \
1355  fi   --pname "${PNAME}" \
1356     --pver "${PVER}" \
1357     --pbuild "${PBUILD}" \
1358     --parch "${ARCH}"
1359     fi
1360    
1361  if [ -z "${BINDIR}" ]   exit 0
 then  
  die "no BINDIR variable found in /etc/mage.rc"  
1362  fi  fi
1363    
1364  if [ -z "${CHOST}" ]  if [ "$1" == "--create-src-tarball" -a -n "$2" ]
1365  then  then
1366   die "no CHOST variable found in /etc/mage.rc"   # set correct SMAGENAME
1367  fi   SMAGENAME="$2"
1368     MD5DIR="$(dirname ${SMAGENAME})/md5"
1369    
1370  if [ -z "${CFLAGS}" ]   echo -e "${COLGREEN}create-src-tarball called for ${COLBLUE}${SMAGENAME}${COLGREEN} ...${COLDEFAULT}"
1371  then  
1372   die "no CFLAGS variable found in /etc/mage.rc"   smagesource ${SMAGENAME} || die "regen: smage2 not found"
1373    
1374     if [[ -d ${SOURCEDIR}/${PNAME} ]]
1375     then
1376     echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1377     rm -rf ${SOURCEDIR}/${PKGNAME}
1378     fi
1379    
1380     download_sources
1381     source_pkg_build ${SMAGENAME}
1382     exit 0
1383  fi  fi
1384    
1385  if [ -z "${CXXFLAGS}" ]  if [ "$1" == "--src-tarball" -a -n "$2" ] || [ "$1" == "-st" -a -n "$2" ]
1386  then  then
1387   die "no CXXFLAGS variable found in /etc/mage.rc"   SRCPKGTARBALL="${2}"
1388     USE_SRC_PKG_TARBALL=true
1389    
1390     # abort if given file is not a source pkg
1391     [[ ${SRCPKGTARBALL##*.} != ${SRCPKGSUFFIX} ]] && die "${SRCPKGTARBALL} is not a valid src-pkg file."
1392    
1393     # set correct SMAGENAME; use the one that the src_pkg provide
1394     # /path/to/SOURCEDIR/PNAME/SMAGENAME
1395     SMAGENAME="${SOURCEDIR}/$(basename ${SRCPKGTARBALL%-*-*})/$(basename ${SRCPKGTARBALL} .${SRCPKGSUFFIX}).${SMAGESUFFIX}"
1396    
1397     echo -e "${COLGREEN}Using src-tarball ${COLBLUE}${SRCPKGTARBALL}${COLGREEN} ...${COLDEFAULT}"
1398    
1399     [[ ! -d ${SOURCEDIR} ]] && install -d ${SOURCEDIR}
1400    
1401     # unpack srctarball
1402     [[ ! -f ${SRCPKGTARBALL} ]] && die "Error: ${SRCPKGTARBALL} does not exist. Aborting."
1403    
1404     tar xvjf ${SRCPKGTARBALL} -C ${SOURCEDIR} || die  "Error unpackung src-tarball ${SRCPKGTARBALL}"
1405    
1406     [[ ! -f ${SMAGENAME} ]] && die "Included smage2 file in src-tarball not found: ${SMAGENAME}"
1407  fi  fi
1408    
1409    
1410  source ${SMAGENAME} || die "source failed"  [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ] && die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
1411  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"  [ -z "$(basename ${SMAGENAME} | grep .${SMAGESUFFIX})" ] &&
1412     die "File '$(basename ${SMAGENAME})' is not a sMage v${SMAGEVERSION} file. Aborting."
1413    [ -z "${SOURCEDIR}" ] && die "\$SOURCEDIR not found. Please setup your ${MAGERC} correctly."
1414    [ -z "${SMAGESCRIPTSDIR}" ] && die "\$SMAGESCRIPTSDIR not found. Please setup your ${MAGERC} correctly."
1415    [ -z "${SMAGE2RSYNC}" ] && die "\$SMAGE2RSYNC not found. Please setup your ${MAGERC} correctly."
1416    [ -z "${BINDIR}" ] && die "no BINDIR variable found in ${MAGERC}"
1417    [ -z "${CHOST}" ] && die "no CHOST variable found in ${MAGERC}"
1418    [ -z "${CFLAGS}" ] && die "no CFLAGS variable found in ${MAGERC}"
1419    [ -z "${CXXFLAGS}" ] && die "no CXXFLAGS variable found in ${MAGERC}"
1420    
1421    smagesource ${SMAGENAME} || die "source failed"
1422    PKGNAME="${PNAME}-${PVER}-${ARCH}-${PBUILD}"
1423  MD5DIR="$(dirname ${SMAGENAME})/md5"  MD5DIR="$(dirname ${SMAGENAME})/md5"
1424    SMAGE_LOG_CMD="tee -a /var/log/smage/${PKGNAME}.log"
1425    
1426  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
1427  echo "Compiling ${PKGNAME}"  echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
1428    
1429    # auto regen mage tree if requested
1430    regen_mage_tree
1431    
1432    if [[ ${CREATE_SRC_PKG_TARBALL} = true ]]
1433    then
1434     if [[ -d ${SOURCEDIR}/${PNAME} ]]
1435     then
1436     echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1437     rm -rf ${SOURCEDIR}/${PNAME}
1438     fi
1439    fi
1440    
1441  #download sources  # download sources
1442  download_sources  [[ ${USE_SRC_PKG_TARBALL} != true ]] && download_sources
1443    
1444  #fixes some issues with these functions  # fixes some issues with these functions
1445  export -f src_prepare || die "src_prepare export failed"  export -f src_prepare || die "src_prepare export failed"
1446  export -f src_compile || die "src_compile export failed"  export -f src_compile || die "src_compile export failed"
1447  export -f src_install || die "src_install export failed"  export -f src_install || die "src_install export failed"
1448    
1449  #fixes some compile issues  # fixes some compile issues
1450  export CHOST="${CHOST}" || die "CHOST export failed"  export CHOST="${CHOST}" || die "CHOST export failed"
1451  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
1452  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
# Line 559  export BINDIR="${BINDIR}" || die "BINDIR Line 1454  export BINDIR="${BINDIR}" || die "BINDIR
1454  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
1455    
1456    
1457  #setup distcc  # setup distcc
1458  #distcc mus be setup *before* ccache, as ccache need to be before distcc in path  # setup for distcc goes *before* ccache, so ccache comes before distcc in path
1459  if [ "${SMAGE_USE_DISTCC}" == "true" ]  [[ ${SMAGE_USE_DISTCC} = true ]] && setup_distcc_environment
 then  
  setup_distcc_environment  
 fi  
1460    
1461  #setup ccache  # setup ccache
1462  if [ "${SMAGE_USE_CCACHE}" == "true" ]  [[ ${SMAGE_USE_CCACHE} = true ]] && setup_ccache_environment
 then  
  setup_ccache_environment  
 fi  
   
   
 # small sleep to show our settings  
 sleep 1  
   
 #debug  
 #echo "CC=${CC}"  
 #echo "CXX=${CXX}"  
 #echo "DISTCC_DIR=${DISTCC_DIR}"  
 #echo "PATH: ${PATH}"  
 #echo "--------------------------------------"  
 #env  
 #echo "--------------------------------------"  
 #read  
 #debug end  
1463    
1464  #cleans up build if a previously one exists  # clean up builddir if a previously one exist
1465  if [ -d ${BUILDDIR} ]  if [ -d ${BUILDDIR} ]
1466  then  then
1467   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
1468  fi  fi
1469  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
1470    
1471  #cleans up srcdir if a previously unpacked one exists  # clean up srcdir if a previously unpacked one exist
1472  if [ -d ${SRCDIR} ]  if [ -d ${SRCDIR} ]
1473  then  then
1474   rm -rf ${SRCDIR}   rm -rf ${SRCDIR}
1475  fi  fi
1476    
1477  #cleans up bindir if a previous build exists or creates a new one  # clean up bindir if a previous build exist or create a new one
1478  if [ -d ${BINDIR} ]  if [ -d ${BINDIR} ]
1479  then  then
1480   rm -rf ${BINDIR}   rm -rf ${BINDIR}
1481  fi  fi
1482  install -d ${BINDIR} || die "couldn't create \$BINDIR."  install -d ${BINDIR} || die "couldn't create \$BINDIR."
1483    
1484  #cleans up package temp dir if a previous build exists  # cleans up package temp dir if a previous build exists
1485  if [ -d ${BUILDDIR}/${PKGNAME} ]  if [ -d ${BUILDDIR}/${PKGNAME} ]
1486  then  then
1487   rm -rf ${BUILDDIR}/${PKGNAME}   rm -rf ${BUILDDIR}/${PKGNAME}
1488  fi  fi
1489    
1490  #cleans up timestamp if one exists  # cleans up timestamp if one exists
1491  if [ -f /var/tmp/timestamp ]  if [ -f /var/tmp/timestamp ]
1492  then  then
1493   mage rmstamp   mage rmstamp
1494  fi  fi
1495    
1496  src_prepare || die "src_prepare failed"  # setup build logging
1497  src_compile || die "src_compile failed"  [[ ! -d /var/log/smage ]] && install -d /var/log/smage
1498  src_install || die "src_install failed"  echo -e "### Build started on $(date) ###\n" > /var/log/smage/${PKGNAME}.log
1499    
1500    src_prepare | ${SMAGE_LOG_CMD}
1501  #compressing doc, info & man files  die_pipestatus 0 "src_prepare failed"
1502  echo -e "Compressing man-pages ..."  step_by_step $_
1503  if [ -d ${BUILDDIR}/builded/usr/share/man ]  
1504  then  src_compile | ${SMAGE_LOG_CMD}
1505   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man  die_pipestatus 0 "src_compile failed"
1506    step_by_step $_
1507    
1508    # build several subpackages
1509    if [[ -n ${SPLIT_PACKAGES} ]]
1510    then
1511     # save bindir & pname
1512     split_save_variables
1513     export SAVED_BINDIR="${BINDIR}"
1514     for subpackage in ${SPLIT_PACKAGES}
1515     do
1516     if typeset -f src_install_${subpackage} > /dev/null
1517     then
1518     # export subpackage bindir
1519     export BINDIR="${SAVED_BINDIR}_${subpackage}"
1520     # export PNAME, several internal function and include
1521     # rely on this variable
1522     export PNAME="${subpackage}"
1523    
1524     echo
1525     echo -en "${COLBLUE}*** ${COLDEFAULT}"
1526     echo -en "  Running ${COLGREEN}split src_install()${COLDEFAULT}"
1527     echo -en " for subpkg: ${COLBLUE}${PNAME}${COLDEFAULT}"
1528     echo -e " - basepkg: ${COLBLUE}${SPLIT_PACKAGE_BASE}${COLDEFAULT} ..."
1529    
1530     src_install_${subpackage} | ${SMAGE_LOG_CMD}
1531     die_pipestatus 0 "src_install_${subpackage} failed"
1532     step_by_step $_
1533     fi
1534     done
1535     # restore bindir & pname
1536     split_restore_variables
1537     # unset all saved smage variables
1538     split_unset_variables
1539    else
1540     src_install | ${SMAGE_LOG_CMD}
1541     die_pipestatus 0 "src_install failed"
1542     step_by_step $_
1543  fi  fi
1544    
1545  echo -e "Compressing info-pages ..."  # compressing doc, info & man files
1546  if [ -d ${BUILDDIR}/builded/usr/share/info ]  if [[ -n ${SPLIT_PACKAGES} ]]
1547  then  then
1548   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info   for subpackage in ${SPLIT_PACKAGES}
1549     do
1550     mcompressdocs ${BINDIR}_${subpackage}
1551     done
1552    else
1553     mcompressdocs ${BINDIR}
1554  fi  fi
1555    
1556  #the new buildpkg command  
1557    # stripping all bins and libs
1558    case ${NOSTRIP} in
1559     true|TRUE|yes|y)
1560     echo -e "NOSTRIP=true detected; Package will not be stripped ..."
1561     ;;
1562     *)
1563     if [[ -n ${SPLIT_PACKAGES} ]]
1564     then
1565     for subpackage in ${SPLIT_PACKAGES}
1566     do
1567     echo -e "${COLBLUE}===${COLGREEN} stripping binaries for '${subpackage}' ...${COLDEFAULT}"
1568     mstripbins ${BINDIR}_${subpackage}
1569     echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries for '${subpackage}' ...${COLDEFAULT}"
1570     mstriplibs ${BINDIR}_${subpackage}
1571     echo -e "${COLBLUE}===${COLGREEN} stripping static libraries for '${subpackage}' ...${COLDEFAULT}"
1572     mstripstatic ${BINDIR}_${subpackage}
1573     done
1574     else
1575     echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
1576     mstripbins ${BINDIR}
1577     echo -e "${COLBLUE}===${COLGREEN} stripping dynamic libraries ...${COLDEFAULT}"
1578     mstriplibs ${BINDIR}
1579     echo -e "${COLBLUE}===${COLGREEN} stripping static libraries ...${COLDEFAULT}"
1580     mstripstatic ${BINDIR}
1581     fi
1582     ;;
1583    esac
1584    
1585    # the new buildpkg command
1586  case ${NOPKGBUILD} in  case ${NOPKGBUILD} in
1587   true|TRUE|yes|y)   true|TRUE|yes|y)
1588   echo -e "NOPGKBUILD=true detected; Package will not be build ..."   echo -e "NOPGKBUILD=true detected; Package will not be build ..."
1589   ;;   ;;
1590   *)   *)
1591   ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"   # build several targets
1592   echo -e "\nPackage ${PKGNAME} successfully builded.\n"   if [[ -n ${MAGE_TARGETS} ]]
1593     then
1594     for target in ${MAGE_TARGETS}
1595     do
1596     # check if a special target_pkgbuild exists
1597     if typeset -f ${target}_pkgbuild > /dev/null
1598     then
1599     # run it
1600     ${target}_pkgbuild
1601     fi
1602     # now create the target package
1603     ${MLIBDIR}/pkgbuild_dir.sh \
1604     "${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD}" \
1605     ${BINDIR} || die "target: ${target} package-build failed"
1606    
1607     # build pkg-md5-sum if requested
1608     generate_package_md5sum \
1609     --pcat "${PCATEGORIE}" \
1610     --pname "${PNAME}" \
1611     --pver "${PVER}" \
1612     --pbuild "${PBUILD}" \
1613     --parch "${ARCH}" \
1614     --target "${target}"
1615    
1616     echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD} successfully builded.\n${COLDEFAULT}"
1617     done
1618    
1619     # build several subpackages
1620     elif [[ -n ${SPLIT_PACKAGES} ]]
1621     then
1622     split_save_variables
1623     for subpackage in ${SPLIT_PACKAGES}
1624     do
1625     # get the right variables for the split
1626     export PNAME="${subpackage}"
1627     split_info_${PNAME}
1628    
1629     # jump to next one if NOPKGBUILD is set in split_info
1630     case ${NOPKGBUILD} in
1631     true|TRUE|yes|y) continue ;;
1632     esac
1633    
1634     # check if an special subpackage_pkgbuild exists
1635     if typeset -f ${PNAME}_pkgbuild > /dev/null
1636     then
1637     # run it
1638     ${PNAME}_pkgbuild
1639     fi
1640     # now create the target package
1641     ${MLIBDIR}/pkgbuild_dir.sh \
1642     "${PNAME}-${PVER}-${ARCH}-${PBUILD}" \
1643     "${BINDIR}_${PNAME}" || die "split_package: ${PNAME} package-build failed"
1644    
1645     # build pkg-md5-sum if requested
1646     generate_package_md5sum \
1647     --pcat "${PCATEGORIE}" \
1648     --pname "${PNAME}" \
1649     --pver "${PVER}" \
1650     --pbuild "${PBUILD}" \
1651     --parch "${ARCH}"
1652    
1653     echo -e "${COLGREEN}\nPackage ${PNAME}-${PVER}-${ARCH}-${PBUILD} successfully builded.\n${COLDEFAULT}"
1654    
1655     # restore smage environment
1656     split_restore_variables
1657     done
1658     # unset all saved smage variables
1659     split_unset_variables
1660    
1661     else
1662     ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
1663    
1664     # build pkg-md5-sum if requested
1665     generate_package_md5sum \
1666     --pcat "${PCATEGORIE}" \
1667     --pname "${PNAME}" \
1668     --pver "${PVER}" \
1669     --pbuild "${PBUILD}" \
1670     --parch "${ARCH}"
1671    
1672     echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}"
1673     fi
1674    
1675     # build src-pkg-tarball if requested
1676     [[ ${CREATE_SRC_PKG_TARBALL} = true ]] && source_pkg_build ${SMAGENAME}
1677   ;;   ;;
1678  esac  esac
1679    
1680  #for sure  if [[ ${SMAGE_BUILD_LOGGING} != false ]]
1681    then
1682     bzip2 -9f /var/log/smage/${PKGNAME}.log
1683    else
1684     [[ -f /var/log/smage/${PKGNAME}.log ]] && rm /var/log/smage/${PKGNAME}.log
1685    fi
1686    
1687    # for sure
1688  unset NOPKGBUILD  unset NOPKGBUILD
1689    unset NOSTRIP
1690    
1691  xtitleclean  xtitleclean
 #echo -e "\nPackage ${PKGNAME} successfully builded.\n"  

Legend:
Removed from v.66  
changed lines
  Added in v.1574