Magellan Linux

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

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

revision 33 by niro, Thu Jan 6 02:57:12 2005 UTC revision 441 by niro, Mon Mar 19 19:21:40 2007 UTC
# Line 4  Line 4 
4  # needs pkgbuild_dir (mage)  # needs pkgbuild_dir (mage)
5    
6  # SMAGE2  # SMAGE2
7  # version: 0.3.6-r9  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.54 2007-03-19 19:21:40 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-r8  
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  source /etc/mage.rc.global
52    source ${MAGERC}
53    
54  showversion() {  # set PKGDIR and BUILDDIR and BINDIR to MROOT
55    if [[ -n ${MROOT} ]]
56    then
57     export PKGDIR=${MROOT}/${PKGDIR}
58     export BUILDDIR=${MROOT}/${BUILDDIR}
59     export BINDIR=${MROOT}/${BINDIR}
60    fi
61    
62    showversion()
63    {
64   echo -en "Magellan Source Install v${SMAGEVERSION} "   echo -en "Magellan Source Install v${SMAGEVERSION} "
65   echo -e  "-- Niels Rogalla (niro@magellan-linux.de)"   echo -e  "-- Niels Rogalla (niro@magellan-linux.de)"
66  }  }
67    
68  die() {  die()
69    {
70   xtitleclean   xtitleclean
71     echo -e ${COLRED}"Exited ${BASH_SOURCE} at line no ${BASH_LINENO}."${COLDEFAULT}
72   echo "SMAGE failed: $@"   echo "SMAGE failed: $@"
73   exit 1   exit 1
74  }  }
75    
76  xtitle() {  xtitle()
77   if [ ${TERM} == "xterm" ]  {
78     if [[ ${TERM} = xterm ]]
79   then   then
80   echo -ne "\033]0;[sMage: $@]\007"   echo -ne "\033]0;[sMage: $@]\007"
81   fi   fi
82   return 0   return 0
83  }  }
84    
85  xtitleclean() {  xtitleclean()
86   if [ ${TERM} == "xterm" ]  {
87     if [[ ${TERM} = xterm ]]
88   then   then
89   echo -ne "\033]0;\007"   echo -ne "\033]0;\007"
90   fi   fi
91   return 0   return 0
92  }  }
93    
94  syncsmage2() {  syncsmage2()
95    {
96   xtitle "Updating smage2-script tree ..."   xtitle "Updating smage2-script tree ..."
97   local i   local i
98   for i in ${SMAGE2RSYNC}   for i in ${SMAGE2RSYNC}
99   do   do
100   rsync \   rsync ${RSYNC_FETCH_OPTIONS} ${i} ${SMAGESCRIPTSDIR}
101   --recursive \   if [[ $? = 0 ]]
  --links \  
  --perms \  
  --times \  
  --devices \  
  --timeout=600 \  
  --verbose \  
  --compress \  
  --progress \  
  --stats \  
  --delete \  
  --delete-after \  
  ${i} ${SMAGESCRIPTSDIR}  
   
  if [ "$?" == "0" ]  
102   then   then
103   break   break
104   else   else
105   continue   continue
106   fi   fi
   
107   done   done
108    
109   #clean up backup files (foo~)   # clean up backup files (foo~)
110   find ${SMAGESCRIPTSDIR} -name *~ -exec rm '{}' ';'   find ${SMAGESCRIPTSDIR} -name *~ -exec rm '{}' ';'
111    
112   xtitleclean   xtitleclean
113  }  }
114    
115    # $1 filename
116    get_db_md5_sum()
117    {
118     local DB_FILE
119     local MD5_FILE
120     local i
121    
122     DB_ENTRY="$(basename $1)"
123     MD5_FILE="${MD5DIR}/$(basename ${SMAGENAME} ${SMAGESUFFIX})"
124    
125     i="$(cat ${MD5_FILE}| grep ${DB_ENTRY} | cut -d' ' -f1)"
126    
127     echo "${i}"
128    }
129    
130    download_sources()
131    {
132    
133     [ -z "${SRC_URI}" ] && echo -e "\nNothing declared to download.\n" && return 0
134    
135     local EOA=${#SRC_URI[*]}
136     local my_SRC_URI
137     local my_SRC_URI_DEST
138     local my_SRC_URI_MIRROR
139     local my_SOURCEDIR
140     local DB_MD5_SUM_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
141     local FETCHING
142     local i mirror
143    
144    
145     # install SRCDIR/PNAME if not exist
146     [ ! -d ${SOURCEDIR}/${PNAME} ] && install -d ${SOURCEDIR}/${PNAME}
147    
148     # check if FETCHING is needed
149     ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} &> /dev/null )
150     if [[ $? = 0 ]]
151     then
152     # md5's ok, no fetching needed
153     FETCHING=false
154     else
155     FETCHING=true
156     fi
157    
158     for ((i=0; i < EOA; i++))
159     do
160     # url to file
161     my_SRC_URI="$(echo ${SRC_URI[${i}]} | cut -d' ' -f1)"
162    
163     # subdir in sources dir; the my_SRCI_URI file goes to there
164     my_SRC_URI_DEST="$(echo ${SRC_URI[${i}]} | cut -d' ' -f2)"
165    
166     # if my_src_uri_dest is not equal my_src_uri; than an other dir is used
167     if [[ ${my_SRC_URI_DEST} != ${my_SRC_URI} ]]
168     then
169     my_SOURCEDIR="${SOURCEDIR}/${PNAME}/${my_SRC_URI_DEST}"
170     else
171     my_SOURCEDIR="${SOURCEDIR}/${PNAME}"
172     fi
173    
174     # if an mirrored file than replace first the mirror uri
175     if [[ -n $(echo ${my_SRC_URI} | grep 'mirror://') ]]
176     then
177     for mirror in ${MIRRORS}
178     do
179     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|mirror:/|${mirror}/sources|g")"
180    
181     if [[ ${FETCHING} = true ]]
182     then
183     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
184     wget \
185     --passive-ftp \
186     --tries 3 \
187     --continue \
188     --progress bar \
189     --directory-prefix="${my_SOURCEDIR}" \
190     "${my_SRC_URI_MIRROR}"
191     if [[ $? = 0 ]]
192     then
193     break
194     else
195     continue
196     fi
197     fi
198     done
199     elif [[ -n $(echo ${my_SRC_URI} | grep 'sourceforge://') ]]
200     then
201     for mirror in ${SOURCEFORGE_MIRRORS}
202     do
203     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|sourceforge:/|${mirror}|g")"
204    
205     if [[ ${FETCHING} = true ]]
206     then
207     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
208     wget \
209     --passive-ftp \
210     --tries 3 \
211     --continue \
212     --progress bar \
213     --directory-prefix="${my_SOURCEDIR}" \
214     "${my_SRC_URI_MIRROR}"
215     if [[ $? = 0 ]]
216     then
217     break
218     else
219     continue
220     fi
221     fi
222     done
223     elif [[ -n $(echo ${my_SRC_URI} | grep 'gnu://') ]]
224     then
225     for mirror in ${GNU_MIRRORS}
226     do
227     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|gnu:/|${mirror}|g")"
228    
229     if [[ ${FETCHING} = true ]]
230     then
231     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI_MIRROR}${COLDEFAULT}"
232     wget \
233     --passive-ftp \
234     --tries 3 \
235     --continue \
236     --progress bar \
237     --directory-prefix="${my_SOURCEDIR}" \
238     "${my_SRC_URI_MIRROR}"
239     if [[ $? = 0 ]]
240     then
241     break
242     else
243     continue
244     fi
245     fi
246     done
247     else
248     if [[ ${FETCHING} = true ]]
249     then
250     echo -e "${COLBLUE}==>${COLGREEN} fetching ${my_SRC_URI}${COLDEFAULT}"
251     wget \
252     --passive-ftp \
253     --tries 3 \
254     --continue \
255     --progress bar \
256     --directory-prefix="${my_SOURCEDIR}" \
257     "${my_SRC_URI}"
258     fi
259     fi
260    
261     # unset them to be shure
262     unset my_SRC_URI
263     unset my_SRC_URI_DEST
264     unset my_SRC_URI_MIRROR
265     unset my_SOURCEDIR
266     done
267    
268     # recheck md5 sums
269     echo
270     echo -e "${COLBLUE}===${COLGREEN} Checking MD5 sums:${COLDEFAULT}"
271     ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} ) || die "md5 failed"
272     echo
273    
274     # not needed anymore
275     unset SRC_URI
276    }
277    
278  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
279  src_prepare() {  src_prepare()
280    {
281   echo "no src_prepare defined"   echo "no src_prepare defined"
282   sleep 2   sleep 2
283   return 0   return 0
284  }  }
285    
286  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
287  src_compile() {  src_compile()
288    {
289   echo "no src_compile defined"   echo "no src_compile defined"
290   sleep 2   sleep 2
291   return 0   return 0
292  }  }
293    
294  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
295  src_install() {  src_install()
296    {
297   echo "no src_install defined"   echo "no src_install defined"
298   sleep 2   sleep 2
299   return 0   return 0
300  }  }
301    
302    mlibdir()
303    {
304     local libdir=lib
305     [[ ${ARCH} = x86_64 ]] && libdir=lib64
306    
307  build_mage_script() {   echo "${libdir}"
  return 0  
308  }  }
309    
310  mconfigure() {  mconfigure()
311    {
312   if [ -x ./configure ]   if [ -x ./configure ]
313   then   then
314   ./configure \   ./configure \
315   --prefix=/usr \   --prefix=/usr \
316   --host=${CHOST} \   --host=${CHOST} \
317   --mandir=/usr/share/man \   --mandir=/usr/share/man \
318   --infodir=/usr/share/info \   --infodir=/usr/share/info \
319   --datadir=/usr/share \   --datadir=/usr/share \
320   --sysconfdir=/etc \   --sysconfdir=/etc \
321   --localstatedir=/var/lib \   --localstatedir=/var/lib \
322   "$@" || die "mconfigure failed"   --libdir=/usr/$(mlibdir) \
323     "$@" || die "mconfigure failed"
324   else   else
325   echo "configure is not an executable ..."   echo "configure is not an executable ..."
326   exit 1   exit 1
327   fi   fi
328  }  }
329    
330  minstall() {  minstall()
331   if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then  {
332     if [ -f ./[mM]akefile -o -f ./GNUmakefile ]
333     then
334   make prefix=${BINDIR}/usr \   make prefix=${BINDIR}/usr \
335   datadir=${BINDIR}/usr/share \   datadir=${BINDIR}/usr/share \
336   infodir=${BINDIR}/usr/share/info \   infodir=${BINDIR}/usr/share/info \
337   localstatedir=${BINDIR}/var/lib \   localstatedir=${BINDIR}/var/lib \
338   mandir=${BINDIR}/usr/share/man \   mandir=${BINDIR}/usr/share/man \
339   sysconfdir=${BINDIR}/etc \   sysconfdir=${BINDIR}/etc \
340     libdir=${BINDIR}/usr/$(mlibdir) \
341   "$@" install || die "minstall failed"   "$@" install || die "minstall failed"
342          else          else
343                  die "no Makefile found"                  die "no Makefile found"
344          fi          fi
345  }  }
346    
347  mmake() {  mmake()
348    {
349   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"   make ${MAKEOPTS} ${EXTRA_EMAKE} "$@"
350  }  }
351    
352  munpack() {  munpack()
353    {
354   local SRCFILE   local SRCFILE
355   local IFTAR   local IFTAR
356   local DEST   local DEST
357    
358   SRCFILE=$1   SRCFILE=$1
359    
360   if [ -z "$2" ]   if [ -z "$2" ]
361   then   then
362   DEST=${BUILDDIR}   DEST=${BUILDDIR}
363   else   else
364   DEST=$2   DEST=$2
365   fi   fi
366    
367     [[ ! -d ${DEST} ]] && install -d ${DEST}
368    
369   case "${SRCFILE##*.}" in   case "${SRCFILE##*.}" in
370   bz2)   bz2)
371   IFTAR="$(basename $SRCFILE .bz2)"   IFTAR="$(basename $SRCFILE .bz2)"
372   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
373   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
374   then   then
375   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvjf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
376   fi   fi
# Line 172  munpack() { Line 378  munpack() {
378   gz)   gz)
379   IFTAR="$(basename $SRCFILE .gz)"   IFTAR="$(basename $SRCFILE .gz)"
380   IFTAR="${IFTAR##*.}"   IFTAR="${IFTAR##*.}"
381   if [ "${IFTAR}" == "tar" ]   if [[ ${IFTAR} = tar ]]
382   then   then
383   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}   tar --no-same-owner -xvzf ${SOURCEDIR}/${PNAME}/${SRCFILE} -C ${DEST}
384   fi   fi
# Line 189  munpack() { Line 395  munpack() {
395   esac   esac
396  }  }
397    
398  mpatch() {  mpatch()
399    {
400   local PATCHOPTS   local PATCHOPTS
401   local PATCHFILE   local PATCHFILE
402    
403   PATCHOPTS=$1   PATCHOPTS=$1
404   PATCHFILE=$2   PATCHFILE=$2
405    
406     echo -e "${COLBLUE}*** ${COLGREEN}Applying patch '${PATCHFILE}'${COLDEFAULT}"
407   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}   patch "${PATCHOPTS}" -i ${SOURCEDIR}/${PNAME}/${PATCHFILE}
408  }  }
409    
410    
411  minstalldocs() {  minstalldocs()
412    {
413   local docfiles   local docfiles
   
414   docfiles="$@"   docfiles="$@"
415    
416   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]
417   then   then
418   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."
419   fi   fi
420    
421   for i in ${docfiles}   for i in ${docfiles}
422   do   do
423   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."   cat ${i} | gzip -9c > ${i}.gz || die "gzipping docs."
# Line 218  minstalldocs() { Line 426  minstalldocs() {
426   done   done
427  }  }
428    
429  setup_distcc_environment(){  mstriplibs()
430   if [ -x /usr/bin/distcc ]  {
431     local stripdir="$@"
432    
433     [ -z "${stripdir}" ] && stripdir=${BINDIR}
434     find ${stripdir} | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
435    }
436    
437    mstripbins()
438    {
439     local stripdir="$@"
440    
441     [ -z "${stripdir}" ] && stripdir=${BINDIR}
442     find ${stripdir} | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
443    }
444    
445    sminclude()
446    {
447     local i
448    
449     if [[ -n "$@" ]]
450   then   then
451   echo "Using DistCC for compilation ..."   for i in $@
452   export PATH=/usr/lib/distcc/bin:${PATH} || die "distcc: could not export new $PATH"   do
453     echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"
454     source ${SMAGESCRIPTSDIR}/include/${i}.sminc
455     done
456     echo
457     fi
458    }
459    
460   #export distcc as compiler  setup_distcc_environment()
461  # export CC="distcc"  {
462  # export CXX=distcc   if [ -x /usr/bin/distcc ]
463     then
464     echo -e "${COLBLUE}---${COLGREEN} Using DistCC for compilation ...${COLDEFAULT}"
465     export PATH=/usr/$(mlibdir)/distcc/bin:${PATH} || die "distcc: could not export new $PATH"
466    
467   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"   export DISTCC_DIR="${DISTCC_DIR}" || die "distcc_dir export failed"
468    
469     # creating distcc tempdir
470     install -o distcc -g daemon -d ${DISTCC_DIR}
471     chmod 1777 ${DISTCC_DIR}
472     fi
473    }
474    
475    setup_ccache_environment()
476    {
477     if [ -x /usr/bin/ccache ]
478     then
479     echo -e "${COLBLUE}---${COLGREEN} Using CCache for compilation ...${COLDEFAULT}"
480     export PATH=/usr/$(mlibdir)/ccache/bin:${PATH} || die "ccache: could not export new $PATH"
481     fi
482    }
483    
484   #ccache + distcc together  
485   if [ "${SMAGE_USE_CCACHE}" == "true" ]  # fixes given dependencies to match a MAGE_TARGET
486   then  # fix_mage_deps -target s/depend # <-- note -target !
487   if [ -x /usr/bin/ccache ]  fix_mage_deps()
488    {
489     local target="$1"
490     local depend="$2"
491     local NDEPEND
492     local sym dep cat pver pname
493    
494     # deps and provides are special
495     # they must be fixed to match the target
496    
497     # run this only if target and depend is not empty
498     if [ -n "${target}" ] && [ -n "${depend}" ]
499     then
500     # fix DEPEND
501     while read sym dep
502     do
503     # ignore empty lines
504     [[ -z ${dep} ]] && continue
505    
506     cat="$(dirname ${dep})"
507     # change if not virtual
508     if [[ ${cat} = virtual ]]
509   then   then
510   echo "Preparing DistCC to work together with CCache ..."   pname="$(basename ${dep})"
511   #export CCACHE_PREFIX="distcc" || die "distcc: could not set ccach_prefix"   else
512  # export CC="ccache distcc"   # fix pver to target-pver
513  # export CXX="ccache distcc"   # to get pname-target-pver
514    
515     # doing it backwards !
516     pver="${dep##*-}"
517     # full pver
518     pname="$(basename ${dep/-${pver}/})${target}-${pver}"
519   fi   fi
520    
521     # do not add empty lines
522     if [ -z "${NDEPEND}" ]
523     then
524     NDEPEND="${sym} ${cat}/${pname}"
525     else
526     NDEPEND="${NDEPEND}
527     ${sym} ${cat}/${pname}"
528     fi
529    
530     unset cat pname pver
531     done << EOF
532    ${depend}
533    EOF
534     # set NDEPEND to DEPEND
535     depend="${NDEPEND}"
536     fi
537    
538     echo "${depend}"
539    }
540    
541    # build_mage_script(): helper functions for regen_mage_tree()
542    # generates an mage file with given information in smage file
543    # needs at least:
544    #   PNAME                 name of pkg
545    #   PVER                  version
546    #   PBUILD                revision
547    #   PCATEGORIE            categorie of the pkg
548    #   STATE                 state of pkg stable|unstable|old
549    #   DESCRIPTION           va short description (opt)
550    #   HOMEPAGE              homepage (opt)
551    #   DEPEND                runtime dependencies (opt)
552    #   SDEPEND               add. needed deps to build the pkg (opt)
553    #   PROVIDE               provides a virtual (opt)
554    #
555    # special tags:
556    #   PKGTYPE               type of pkg
557    #   INHERITS              which functions get included
558    #   SPECIAL_FUNCTIONS     special functions wich should also be added
559    #                         warning: they get killed before the build starts !
560    #
561    #   MAGE_TREE_DEST        target destination of the generated tree
562    #   REGEN_MAGE_TREE       set to 'true' to enable this
563    #
564    # gets called with build_mage_script target
565    build_mage_script()
566    {
567     local magefile
568     local dest
569     local target
570     local sym
571     local depname
572    
573     # if MAGE_TREE_DEST not set use BUILDDIR
574     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
575    
576     # determinate which suffix this mage file should get, if any
577     [ -n "$1" ] && target="-$1"
578    
579     # name of magefile
580     magefile="${PNAME}${target}-${PVER}-${PBUILD}.mage"
581    
582     # destination to magefile
583     dest="${MAGE_TREE_DEST}/${PCATEGORIE}/${PNAME}${target}/${magefile}"
584    
585     # show what we are doing
586     echo -e "${COLBLUE}===${COLGREEN} generating mage file:${COLDEFAULT}"
587     echo "${dest}"
588    
589     install -d "$(dirname ${dest})"
590     # now build the mage file
591     > ${dest}
592    
593     # header
594     echo '# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.54 2007-03-19 19:21:40 niro Exp $' >> ${dest}
595     echo  >> ${dest}
596    
597     # pgkname and state
598     echo "PKGNAME=\"${PNAME}${target}-${PVER}-\${ARCH}-${PBUILD}\"" >> ${dest}
599     echo "STATE=\"${STATE}\"" >> ${dest}
600     echo >> ${dest}
601    
602     # description and homepage
603     echo "DESCRIPTION=\"${DESCRIPTION}\"" >> ${dest}
604     echo "HOMEPAGE=\"${HOMEPAGE}\"" >> ${dest}
605     echo >> ${dest}
606    
607     # special tags and vars
608     echo "PKGTYPE=\"${PKGTYPE}\""  >> ${dest}
609    
610     # echo MAGE_TARGETS ## note -target is needed !
611     echo "MAGE_TARGETS=\"${target}\"" >> ${dest}
612     echo >> ${dest}
613    
614     # add special vars
615     if [ -n "${SPECIAL_VARS}" ]
616     then
617     local i
618     for i in ${SPECIAL_VARS}
619     do
620     # being tricky here :)
621     echo "${i}=\"$(eval echo \$${i})\"" >> ${dest}
622     done
623     echo  >> ${dest}
624     fi
625    
626     # add at least all includes
627     if [ -n "${INHERITS}" ]
628     then
629     echo -n "minclude"  >> ${dest}
630     local i
631     for i in ${INHERITS}
632     do
633     echo -n " ${i}"  >> ${dest}
634     done
635     echo  >> ${dest}
636     fi
637     echo >> ${dest}
638    
639     # deps and provides
640     echo "DEPEND=\"$(fix_mage_deps "${target}" "${DEPEND}")\"" >> ${dest}
641     echo >> ${dest}
642     echo "SDEPEND=\"$(fix_mage_deps "${target}" "${SDEPEND}")\"" >> ${dest}
643     echo >> ${dest}
644     echo "PROVIDE=\"${PROVIDE}\"" >> ${dest}
645     echo >> ${dest}
646    
647     # add special functions
648     if [ -n "${SPECIAL_FUNCTIONS}" ]
649     then
650     local i
651     for i in ${SPECIAL_FUNCTIONS}
652     do
653     # add to mage (quotes needed !)
654     typeset -f "${i}" >> ${dest}
655     echo >> ${dest}
656     # unset to be safe (quotes needed !)
657     #unset "${i}" <-- later to get every target built
658     done
659     echo  >> ${dest}
660     fi
661    
662     # pre|post-install|removes
663     typeset -f preinstall >> ${dest}
664     echo  >> ${dest}
665     typeset -f postinstall >> ${dest}
666     echo  >> ${dest}
667     typeset -f preremove >> ${dest}
668     echo  >> ${dest}
669     typeset -f postremove >> ${dest}
670     echo  >> ${dest}
671    }
672    
673    regen_mage_tree()
674    {
675     local i
676    
677     # build them only if requested
678     if [[ ${REGEN_MAGE_TREE} = true ]]
679     then
680     # run it without targets
681     if [ -z "${MAGE_TARGETS}" ]
682     then
683     echo
684     build_mage_script
685     echo
686     else
687    
688     # build for each target an mage file
689     # run it with several targets
690     for i in ${MAGE_TARGETS}
691     do
692     echo
693     build_mage_script "${i}"
694     echo
695     done
696   fi   fi
697     fi
698    
699   #creating distcc tempdir   # now unset all uneeded vars to be safe
700   install -o distcc -g daemon -d ${DISTCC_DIR}   # unset PKGNAME <-- don't do that; smage needs this var
701   chmod 1777 ${DISTCC_DIR}   # unset to be safe (quotes needed !)
702     for i in ${SPECIAL_FUNCTIONS}
703     do
704     unset "${i}"
705     done
706     unset SPECIAL_FUNCTIONS
707     for i in ${SPECIAL_VARS}
708     do
709     unset "${i}"
710     done
711     unset SPECIAL_VARS
712     unset STATE
713     unset DESCRIPTION
714     unset HOMEPAGE
715     unset PKGTYPE
716     unset INHERITS
717     unset DEPEND
718     unset SDEPEND
719     unset PROVIDE
720     unset preinstall
721     unset postinstall
722     unset preremove
723     unset postremove
724    }
725    
726    export_inherits()
727    {
728     local include="$1"
729     shift
730    
731     while [ "$1" ]
732     do
733     local functions="$1"
734    
735     # sanity checks
736     [ -z "${include}" ] && die "export_inherits(): \$include not given."
737     [ -z "${functions}" ] && die "export_inherits(): \$functions not given."
738    
739     eval "${functions}() { ${include}_${functions} ; }"
740    
741     # debug
742     [[ ${MAGEDEBUG} = on ]] && typeset -f "${functions}"
743    
744     shift
745     done
746    }
747    
748    generate_package_md5sum()
749    {
750     local dest
751     local pcat
752     local pname
753     local pver
754     local pbuild
755     local parch
756     local target
757     local pkgname
758    
759     # very basic getops
760     for i in $*
761     do
762     case $1 in
763     --pcat|-c) shift; pcat="$1" ;;
764     --pname|-n) shift; pname="$1" ;;
765     --pver|-v) shift; pver="$1" ;;
766     --pbuild|-b) shift; pbuild="$1" ;;
767     --parch|a) shift; parch="$1" ;;
768     --target|t) shift; target="$1" ;;
769     esac
770     shift
771     done
772    
773     # sanity checks; abort if not given
774     [ -z "${pcat}" ] && die "generate_package_md5sum() \$pcat not given."
775     [ -z "${pname}" ] && die "generate_package_md5sum() \$pname not given."
776     [ -z "${pver}" ] && die "generate_package_md5sum() \$pver not given."
777     [ -z "${pbuild}" ] && die "generate_package_md5sum() \$pbuild not given."
778     [ -z "${parch}" ] && die "generate_package_md5sum() \$parch not given."
779    
780     # check needed global vars
781     [ -z "${PKGDIR}" ] && die "generate_package_md5sum() \$PKGDIR not set."
782     [ -z "${PKGSUFFIX}" ] && die "generate_package_md5sum() \$PKGSUFFIX not set."
783    
784     # fix target as it may be empty !
785     [ -n "${target}" ] && target="-${target}"
786    
787     # build pkgname
788     pkgname="${pname}${target}-${pver}-${parch}-${pbuild}"
789    
790     # build pkg-md5-sum only if requested
791     if [[ ${REGEN_MAGE_TREE} = true ]]
792     then
793     echo -ne "${COLBLUE}===${COLGREEN} generating md5's for ${pkgname}.${PKGSUFFIX} ... ${COLDEFAULT}"
794    
795     # abort if not exist
796     if [ ! -f ${PKGDIR}/${pkgname}.${PKGSUFFIX} ]
797     then
798     echo -e "${COLRED}! exists${COLDEFAULT}"
799     return 0
800     fi
801    
802     # if MAGE_TREE_DEST not set use BUILDDIR
803     : ${MAGE_TREE_DEST=${BUILDDIR}/mage-tree}
804    
805     # setup md5 dir
806     dest="${MAGE_TREE_DEST}/${pcat}/${pname}/md5"
807     install -d ${dest}
808    
809     # gen md5sum
810     ( cd ${PKGDIR}; md5sum "${pkgname}.${PKGSUFFIX}" ) \
811     > ${dest}/${pkgname}.md5
812     echo -e "${COLGREEN}done${COLDEFAULT}"
813   fi   fi
814  }  }
815    
816  setup_ccache_environment(){  source_pkg_build()
817   if [ -x /usr/bin/ccache ]  {
818     if [[ ${PKGTYPE} = virtual ]]
819   then   then
820   echo "Using CCache for compilation ..."   echo "Virtual package detected; src-pkg-tarball not necessary ..."
821   export PATH=/usr/lib/ccache/bin:${PATH} || die "ccache: could not export new $PATH"   return 0
  #unset CC CXX  
822   fi   fi
823    
824     if [[ ! -d ${SOURCEDIR}/${PNAME} ]]
825     then
826     echo "No SRC_URI defined; src-pkg-tarball not necessary ..."
827     return 0
828     fi
829    
830     [ -z "${SRCPKGDIR}" ] && die "\$SRCPKGDIR not found. Please setup your ${MAGERC} correctly."
831    
832     echo -e "${COLGREEN}Creating source package tarball ... ${COLDEFAULT}"
833    
834     # include the smage2 file
835     cp ${SMAGENAME} ${SOURCEDIR}/${PNAME}
836    
837     ( cd ${SOURCEDIR}; tar cvjf ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${PNAME}; )
838     [[ ! -d ${SRCPKGDIR} ]] && install -d ${SRCPKGDIR}
839     mv ${BUILDDIR}/${PNAME}-${PVER}-${PBUILD}.tar.bz2 ${SRCPKGDIR}/${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX}
840    
841     echo -e "${COLGREEN}Source package ${COLBLUE}${PNAME}-${PVER}-${PBUILD}.${SRCPKGSUFFIX} ${COLGREEN}successfully builded.${COLDEFAULT}"
842  }  }
843    
844    
845    # print out our version
846    showversion
847    echo
848    
849  if [ -z "$1" ]  if [ -z "$1" ]
850  then  then
  showversion  
  echo  
851   echo "No .smage2 file given. Exiting."   echo "No .smage2 file given. Exiting."
852   echo   echo
853   exit 1   exit 1
854  fi  fi
855    
856  #updating smage2-scripts  # updating smage2-scripts
857  if [ "$1" == "update" ]  if [[ $1 = update ]]
858  then  then
859   showversion   if [ ! -d ${SOURCEDIR} ]
  if [ ! -d ${SMAGESCRIPTSDIR} ]  
860   then   then
861   install -d ${SMAGESCRIPTSDIR}   install -d ${SOURCEDIR}
862   fi   fi
863   syncsmage2   syncsmage2
864   exit 0   exit 0
865  fi  fi
866    
867    # creates md5sums for smages to given dir
868  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]  if [[ $1 = calcmd5 ]]
869  then  then
870   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."   if [ $# -ge 3 ]
871  fi   then
872     SMAGENAME="$2"
873     MD5DIR="$3"
874     source ${SMAGENAME} || die "download source failed"
875    
876  if [ -z "`basename ${SMAGENAME}|grep .${SMAGESUFFIX}`" ]   # overridable sourcedir; must be declared after source of the smage2
877  then   CALC_SOURCEDIR="${CALC_SOURCEDIR:="${SOURCEDIR}/${PNAME}"}"
  die "File '`basename ${SMAGENAME}`' is not a sMage v${SMAGEVERSION} file. Aborting."  
 fi  
878    
879  if [ -z "${SOURCEDIR}" ]   [ -z "${SRC_URI}" ] && die "Nothing declared to calculate."
 then  
  die "\$SOURCEDIR not found. Please setup your mage.rc correctly."  
 fi  
880    
881  if [ -z "${SMAGESCRIPTSDIR}" ]   # end of array
882  then   EOA=${#SRC_URI[*]}
  die "\$SMAGESCRIPTSDIR not found. Please setup your mage.rc correctly."  
 fi  
883    
884  if [ -z "${SMAGE2RSYNC}" ]   [ ! -d ${MD5DIR} ] && install -d ${MD5DIR}
885  then  
886   echo "\$SMAGE2RSYNC not found. Please setup your mage.rc correctly."   # clear md5sum file
887   exit 1   MY_MD5_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
888     echo -n > ${MY_MD5_FILE}
889    
890     for ((i=0; i < EOA; i++))
891     do
892     # url to file
893     my_SRC_URI="$(echo ${SRC_URI[${i}]} | cut -d' ' -f1)"
894    
895     # subdir in sources dir; the my_SRCI_URI file goes to there
896     my_SRC_URI_DEST="$(echo ${SRC_URI[${i}]} | cut -d' ' -f2)"
897    
898     # if my_src_uri_dest is not equal my_src_uri; than an other dir is used
899     if [[ ${my_SRC_URI_DEST} != ${my_SRC_URI} ]]
900     then
901     MY_SRC_FILE="${my_SRC_URI_DEST}/$(basename ${SRC_URI[${i}]})"
902     else
903     MY_SRC_FILE="$(basename ${SRC_URI[${i}]})"
904     fi
905    
906     if [ -e "${CALC_SOURCEDIR}/${MY_SRC_FILE}" ]
907     then
908     echo "calculating $(basename ${MY_SRC_FILE}) ..."
909     ( cd ${CALC_SOURCEDIR}; md5sum "${MY_SRC_FILE}" ) >> ${MY_MD5_FILE}
910     else
911     echo "WARNING: File '$(basename ${MY_SRC_FILE}) not found in ${CALC_SOURCEDIR}."
912     fi
913    
914     # unset them to be shure
915     unset my_SRC_URI
916     unset my_SRC_URI_DEST
917     unset my_SRC_URI_MIRROR
918     unset my_SOURCEDIR
919     done
920    
921     echo
922     echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
923     echo
924     else
925     echo "Usage: Calculating MD5 Sums:"
926     echo "    $(basename $0) calcmd5 /path/to/SMAGENAME /path/to/MD5DIR"
927     echo
928     echo
929     echo "Export the CALC_SOURCEDIR variable to override current SOURCEDIRs."
930     echo
931     exit 1
932     fi
933    
934     exit 0
935  fi  fi
936    
937  if [ -z "${BINDIR}" ]  # download sources
938    if [ "$1" == "download" -a -n "$2" ]
939  then  then
940   die "no BINDIR variable found in /etc/mage.rc"   if [ ! -d ${SMAGESCRIPTSDIR} ]
941     then
942     install -d ${SMAGESCRIPTSDIR}
943     fi
944    
945     # get smage
946     SMAGENAME="$2"
947     MD5DIR="$(dirname ${SMAGENAME})/md5"
948     source ${SMAGENAME} || die "download source failed"
949    
950     download_sources
951     exit 0
952  fi  fi
953    
954  if [ -z "${CHOST}" ]  # regen-mage-tree
955    if [ "$1" == "only-regen-tree" -a -n "$2" ]
956  then  then
957   die "no CHOST variable found in /etc/mage.rc"   # set correct SMAGENAME
958     SMAGENAME="$2"
959     MD5DIR="$(dirname ${SMAGENAME})/md5"
960     source ${SMAGENAME} || die "regen: smage2 not found"
961    
962     regen_mage_tree
963    
964     # build md5sum for existing packages
965     generate_package_md5sum \
966     --pcat "${PCATEGORIE}" \
967     --pname "${PNAME}" \
968     --pver "${PVER}" \
969     --pbuild "${PBUILD}" \
970     --parch "${ARCH}" \
971     --target "${target}"
972    
973     exit 0
974  fi  fi
975    
976  if [ -z "${CFLAGS}" ]  if [ "$1" == "--create-src-tarball" -a -n "$2" ]
977  then  then
978   die "no CFLAGS variable found in /etc/mage.rc"   # set correct SMAGENAME
979     SMAGENAME="$2"
980     MD5DIR="$(dirname ${SMAGENAME})/md5"
981    
982     echo -e "${COLGREEN}create-src-tarball called for ${COLBLUE}${SMAGENAME}${COLGREEN} ...${COLDEFAULT}"
983    
984     source ${SMAGENAME} || die "regen: smage2 not found"
985    
986     if [[ -d ${SOURCEDIR}/${PNAME} ]]
987     then
988     echo -e "${COLGREEN}Deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
989     rm -rf ${SOURCEDIR}/${PKGNAME}
990     fi
991    
992     download_sources
993     source_pkg_build ${SMAGENAME}
994     exit 0
995  fi  fi
996    
997  if [ -z "${CXXFLAGS}" ]  if [ "$1" == "--src-tarball" -a -n "$2" ] || [ "$1" == "-st" -a -n "$2" ]
998  then  then
999   die "no CXXFLAGS variable found in /etc/mage.rc"   SRCPKGTARBALL="${2}"
1000     USE_SRC_PKG_TARBALL=true
1001    
1002     # abort if given file is not a source pkg
1003     [[ ${SRCPKGTARBALL##*.} != ${SRCPKGSUFFIX} ]] && die "${SRCPKGTARBALL} is not a valid src-pkg file."
1004    
1005     # set correct SMAGENAME; use the one that the src_pkg provide
1006     # /path/to/SOURCEDIR/PNAME/SMAGENAME
1007     SMAGENAME="${SOURCEDIR}/$(basename ${SRCPKGTARBALL%-*-*})/$(basename ${SRCPKGTARBALL} .${SRCPKGSUFFIX}).${SMAGESUFFIX}"
1008    
1009     echo -e "${COLGREEN}Using src-tarball ${COLBLUE}${SRCPKGTARBALL}${COLGREEN} ...${COLDEFAULT}"
1010    
1011     [[ ! -d ${SOURCEDIR} ]] && install -d ${SOURCEDIR}
1012    
1013     # unpack srctarball
1014     [[ ! -f ${SRCPKGTARBALL} ]] && die "Error: ${SRCPKGTARBALL} does not exist. Aborting."
1015    
1016     tar xvjf ${SRCPKGTARBALL} -C ${SOURCEDIR} || die  "Error unpackung src-tarball ${SRCPKGTARBALL}"
1017    
1018     [[ ! -f ${SMAGENAME} ]] && die "Included smage2 file in src-tarball not found: ${SMAGENAME}"
1019  fi  fi
1020    
1021    
1022    [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ] && die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
1023    [ -z "$(basename ${SMAGENAME} | grep .${SMAGESUFFIX})" ] &&
1024     die "File '$(basename ${SMAGENAME})' is not a sMage v${SMAGEVERSION} file. Aborting."
1025    [ -z "${SOURCEDIR}" ] && die "\$SOURCEDIR not found. Please setup your ${MAGERC} correctly."
1026    [ -z "${SMAGESCRIPTSDIR}" ] && die "\$SMAGESCRIPTSDIR not found. Please setup your ${MAGERC} correctly."
1027    [ -z "${SMAGE2RSYNC}" ] && die "\$SMAGE2RSYNC not found. Please setup your ${MAGERC} correctly."
1028    [ -z "${BINDIR}" ] && die "no BINDIR variable found in ${MAGERC}"
1029    [ -z "${CHOST}" ] && die "no CHOST variable found in ${MAGERC}"
1030    [ -z "${CFLAGS}" ] && die "no CFLAGS variable found in ${MAGERC}"
1031    [ -z "${CXXFLAGS}" ] && die "no CXXFLAGS variable found in ${MAGERC}"
1032    
1033  source ${SMAGENAME} || die "source failed"  source ${SMAGENAME} || die "source failed"
1034  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"  PKGNAME="${PNAME}-${PVER}-${ARCH}-${PBUILD}"
1035    MD5DIR="$(dirname ${SMAGENAME})/md5"
1036    
1037  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
1038  #fixes some issues with these functions  echo -e "${COLGREEN}Compiling ${PKGNAME}${COLDEFAULT}"
1039    
1040    # auto regen mage tree if requested
1041    regen_mage_tree
1042    
1043    if [[ ${CREATE_SRC_PKG_TARBALL} = true ]]
1044    then
1045     if [[ -d ${SOURCEDIR}/${PNAME} ]]
1046     then
1047     echo -e "${COLBLUE}===${COLGREEN} deleting old sourcefiles ${COLBLUE}${SOURCEDIR}/${PNAME}${COLGREEN} ...${COLDEFAULT}"
1048     rm -rf ${SOURCEDIR}/${PNAME}
1049     fi
1050    fi
1051    
1052    # download sources
1053    [[ ${USE_SRC_PKG_TARBALL} != true ]] && download_sources
1054    
1055    # fixes some issues with these functions
1056  export -f src_prepare || die "src_prepare export failed"  export -f src_prepare || die "src_prepare export failed"
1057  export -f src_compile || die "src_compile export failed"  export -f src_compile || die "src_compile export failed"
1058  export -f src_install || die "src_install export failed"  export -f src_install || die "src_install export failed"
1059    
1060  #fixes some compile issues  # fixes some compile issues
1061  export CHOST="${CHOST}" || die "CHOST export failed"  export CHOST="${CHOST}" || die "CHOST export failed"
1062  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"  export CFLAGS="${CFLAGS}" || die "CFLAGS export failed"
1063  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"  export CXXFLAGS="${CFLAGS}" || die "CXXFLAGS export failed"
# Line 344  export BINDIR="${BINDIR}" || die "BINDIR Line 1065  export BINDIR="${BINDIR}" || die "BINDIR
1065  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"  export MAKEOPTS="${MAKEOPTS}" || die "MAKEOPTS export failed"
1066    
1067    
1068  #setup distcc  # setup distcc
1069  #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
1070  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  
1071    
1072    # setup ccache
1073    [[ ${SMAGE_USE_CCACHE} = true ]] && setup_ccache_environment
1074    
1075  # small sleep to show our settings  # small sleep to show our settings
1076  sleep 1  sleep 1
1077    
1078  #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  
1079  if [ -d ${BUILDDIR} ]  if [ -d ${BUILDDIR} ]
1080  then  then
1081   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."   rm -rf ${BUILDDIR}/* || die "couldn't cleanup \$BUILDDIR."
1082  fi  fi
1083  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."  install -d ${BUILDDIR} || die "couldn't create \$BUILDDIR."
1084    
1085  #cleans up srcdir if a previously unpacked one exists  # cleans up srcdir if a previously unpacked one exists
1086  if [ -d ${SRCDIR} ]  if [ -d ${SRCDIR} ]
1087  then  then
1088   rm -rf ${SRCDIR}   rm -rf ${SRCDIR}
1089  fi  fi
1090    
1091  #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
1092  if [ -d ${BINDIR} ]  if [ -d ${BINDIR} ]
1093  then  then
1094   rm -rf ${BINDIR}   rm -rf ${BINDIR}
1095  fi  fi
1096  install -d ${BINDIR} || die "couldn't create \$BINDIR."  install -d ${BINDIR} || die "couldn't create \$BINDIR."
1097    
1098  #cleans up package temp dir if a previous build exists  # cleans up package temp dir if a previous build exists
1099  if [ -d ${BUILDDIR}/${PKGNAME} ]  if [ -d ${BUILDDIR}/${PKGNAME} ]
1100  then  then
1101   rm -rf ${BUILDDIR}/${PKGNAME}   rm -rf ${BUILDDIR}/${PKGNAME}
1102  fi  fi
1103    
1104  #cleans up timestamp if one exists  # cleans up timestamp if one exists
1105  if [ -f /var/tmp/timestamp ]  if [ -f /var/tmp/timestamp ]
1106  then  then
1107   mage rmstamp   mage rmstamp
# Line 409  src_compile || die "src_compile failed" Line 1112  src_compile || die "src_compile failed"
1112  src_install || die "src_install failed"  src_install || die "src_install failed"
1113    
1114    
1115  #compressing doc, info & man files  # compressing doc, info & man files
 echo -e "Compressing man-pages ..."  
1116  if [ -d ${BUILDDIR}/builded/usr/share/man ]  if [ -d ${BUILDDIR}/builded/usr/share/man ]
1117  then  then
1118     echo -e "${COLBLUE}===${COLGREEN} compressing man-pages ...${COLDEFAULT}"
1119   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/man
1120  fi  fi
1121    
 echo -e "Compressing info-pages ..."  
1122  if [ -d ${BUILDDIR}/builded/usr/share/info ]  if [ -d ${BUILDDIR}/builded/usr/share/info ]
1123  then  then
1124     echo -e "${COLBLUE}===${COLGREEN} compressing info-pages ...${COLDEFAULT}"
1125   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info
1126  fi  fi
1127    
1128  #the new buildpkg command  # stripping all bins and libs
1129    case ${NOSTRIP} in
1130     true|TRUE|yes|y)
1131     echo -e "NOSTRIP=true detected; Package will not be stripped ..."
1132     ;;
1133     *)
1134     echo -e "${COLBLUE}===${COLGREEN} stripping binaries ...${COLDEFAULT}"
1135     mstripbins ${BINDIR}
1136     echo -e "${COLBLUE}===${COLGREEN} stripping libraries ...${COLDEFAULT}"
1137     mstriplibs ${BINDIR}
1138     ;;
1139    esac
1140    
1141    # the new buildpkg command
1142  case ${NOPKGBUILD} in  case ${NOPKGBUILD} in
1143   true|TRUE|yes|y)   true|TRUE|yes|y)
1144   echo -e "NOPGKBUILD=true detected; Package will not be build ..."   echo -e "NOPGKBUILD=true detected; Package will not be build ..."
1145   ;;   ;;
1146   *)   *)
1147   ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"   # build several targets
1148   echo -e "\nPackage ${PKGNAME} successfully builded.\n"   if [ -n "${MAGE_TARGETS}" ]
1149     then
1150     for target in ${MAGE_TARGETS}
1151     do
1152     # check if an special target_pkgbuild exists
1153     if typeset -f ${target}_pkgbuild > /dev/null
1154     then
1155     # run it
1156     ${target}_pkgbuild
1157     fi
1158     # now create the target package
1159     ${MLIBDIR}/pkgbuild_dir.sh \
1160     "${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD}" \
1161     ${BINDIR} || die "target: ${target} package-build failed"
1162    
1163     # build pkg-md5-sum if requested
1164     generate_package_md5sum \
1165     --pcat "${PCATEGORIE}" \
1166     --pname "${PNAME}" \
1167     --pver "${PVER}" \
1168     --pbuild "${PBUILD}" \
1169     --parch "${ARCH}" \
1170     --target "${target}"
1171    
1172     echo -e "${COLGREEN}\nPackage ${PNAME}-${target}-${PVER}-${ARCH}-${PBUILD} successfully builded.\n${COLDEFAULT}"
1173     done
1174     else
1175     ${MLIBDIR}/pkgbuild_dir.sh ${PKGNAME} ${BINDIR} || die "package-build failed"
1176    
1177     # build pkg-md5-sum if requested
1178     generate_package_md5sum \
1179     --pcat "${PCATEGORIE}" \
1180     --pname "${PNAME}" \
1181     --pver "${PVER}" \
1182     --pbuild "${PBUILD}" \
1183     --parch "${ARCH}"
1184    
1185     echo -e "${COLGREEN}\nPackage ${PKGNAME} successfully builded.\n${COLDEFAULT}"
1186     fi
1187    
1188     # build src-pkg-tarball if requested
1189     [[ ${CREATE_SRC_PKG_TARBALL} = true ]] && source_pkg_build ${SMAGENAME}
1190   ;;   ;;
1191  esac  esac
1192    
1193  #for sure  # for sure
1194  unset NOPKGBUILD  unset NOPKGBUILD
1195    unset NOSTRIP
1196    
1197  xtitleclean  xtitleclean
 #echo -e "\nPackage ${PKGNAME} successfully builded.\n"  

Legend:
Removed from v.33  
changed lines
  Added in v.441