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

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