Magellan Linux

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

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

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

Legend:
Removed from v.167  
changed lines
  Added in v.1349