Magellan Linux

Diff of /branches/mage-next/src/smage2.in

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

revision 43 by niro, Mon Jan 10 01:59:03 2005 UTC revision 175 by niro, Sun Jul 31 14:47:55 2005 UTC
# Line 4  Line 4 
4  # needs pkgbuild_dir (mage)  # needs pkgbuild_dir (mage)
5    
6  # SMAGE2  # SMAGE2
7  # version: 0.3.6-r11  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/smage2.sh,v 1.18 2005-07-31 14:47:55 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  ## setup ##  ## setup ##
14  SMAGEVERSION=0.3.6-r11  SMAGEVERSION=0.3.7-r1
15  PKGSUFFIX="mpk"  PKGSUFFIX="mpk"
16  SMAGENAME="$1"  SMAGENAME="$1"
17  SMAGESUFFIX="smage2"  SMAGESUFFIX="smage2"
# Line 20  SMAGESUFFIX="smage2" Line 20  SMAGESUFFIX="smage2"
20  #SMAGE2RSYNC="rsync://192.168.0.2/smage2-scripts"  #SMAGE2RSYNC="rsync://192.168.0.2/smage2-scripts"
21  MLIBDIR=/usr/lib/mage  MLIBDIR=/usr/lib/mage
22    
23    # export default C locale
24    export LC_ALL=C
25    
26  source /etc/mage.rc  source /etc/mage.rc
27    
28  showversion() {  showversion() {
# Line 84  syncsmage2() { Line 87  syncsmage2() {
87   xtitleclean   xtitleclean
88  }  }
89    
90    # $1 filename
91    get_db_md5_sum() {
92     local DB_FILE
93     local MD5_FILE
94     local i
95    
96     DB_ENTRY="$(basename $1)"
97     MD5_FILE="${MD5DIR}/$(basename ${SMAGENAME} ${SMAGESUFFIX})"
98    
99     i="$(cat ${MD5_FILE}| grep ${DB_ENTRY} | cut -d' ' -f1)"
100    
101     echo "${i}"
102    }
103    
104    download_sources() {
105    
106     [ -z "${SRC_URI}" ] && echo -e "\nNothing declared to download.\n" && return 0
107    
108     local EOA=${#SRC_URI[*]}
109     local my_SRC_URI
110     local my_SRC_URI_DEST
111     local my_SRC_URI_MIRROR
112     local my_SOURCEDIR
113     local DB_MD5_SUM_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
114     local FETCHING
115     local i mirror
116    
117    
118     #install SRCDIR/PNAME if not exist
119     [ ! -d ${SOURCEDIR}/${PNAME} ] && install -d ${SOURCEDIR}/${PNAME}
120    
121     # check if FETCHING is needed
122     ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} &> /dev/null )
123     if [[ $? == 0 ]]
124     then
125     # md5's ok, not fetching needed
126     FETCHING=false
127     else
128     FETCHING=true
129     fi
130    
131     for ((i=0; i < EOA; i++))
132     do
133     # url to file
134     my_SRC_URI="$(echo ${SRC_URI[${i}]} | cut -d' ' -f1)"
135    
136     # subdir in sources dir; the my_SRCI_URI file goes to there
137     my_SRC_URI_DEST="$(echo ${SRC_URI[${i}]} | cut -d' ' -f2)"
138    
139     # if my_src_uri_dest is not equal my_src_uri; than an other dir is used
140     if [[ ${my_SRC_URI_DEST} != ${my_SRC_URI} ]]
141     then
142     my_SOURCEDIR="${SOURCEDIR}/${PNAME}/${my_SRC_URI_DEST}"
143     else
144     my_SOURCEDIR="${SOURCEDIR}/${PNAME}"
145     fi
146    
147     # if an mirrored file than replace first the mirror uri
148     if [ -n "$(echo ${my_SRC_URI} | grep 'mirror://')" ]
149     then
150     for mirror in ${MIRRORS}
151     do
152     my_SRC_URI_MIRROR="$(echo ${my_SRC_URI} | sed "s|mirror:/|${mirror}/sources|g")"
153    
154     #echo "DEBUG: ${MY_SRC_URI}"
155     if [[ ${FETCHING} == true ]]
156     then
157     echo "==> fetching ${my_SRC_URI_MIRROR}"
158     wget \
159     --passive-ftp \
160     --tries 3 \
161     --continue \
162     --progress bar \
163     --directory-prefix="${my_SOURCEDIR}" \
164     "${my_SRC_URI_MIRROR}"
165     if [ "$?" == "0" ]
166     then
167     break
168     else
169     continue
170     fi
171     fi
172     done
173     else
174     #echo "DEBUG: ${SRC_URI[${i}]}"
175     if [[ ${FETCHING} == true ]]
176     then
177     echo "==> fetching ${my_SRC_URI}"
178     wget \
179     --passive-ftp \
180     --tries 3 \
181     --continue \
182     --progress bar \
183     --directory-prefix="${my_SOURCEDIR}" \
184     "${my_SRC_URI}"
185    # only needed to run through a list of mirrors
186    # if [ "$?" == "0" ]
187    # then
188    # break
189    # else
190    # continue
191    # fi
192     fi
193     fi
194    
195     # unset them to be shure
196     unset my_SRC_URI
197     unset my_SRC_URI_DEST
198     unset my_SRC_URI_MIRROR
199     unset my_SOURCEDIR
200     done
201    
202     # recheck md5 sums
203     echo
204     echo ">== Checking MD5 sums:"
205     ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} ) || die "md5 failed"
206     echo
207    
208     # not needed anymore
209     unset SRC_URI
210    }
211    
212  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
213  src_prepare() {  src_prepare() {
214   echo "no src_prepare defined"   echo "no src_prepare defined"
# Line 218  minstalldocs() { Line 343  minstalldocs() {
343   done   done
344  }  }
345    
346    mstriplibs() {
347     local stripdir="$@"
348    
349     [ -z "${stripdir}" ] && stripdir=${BINDIR}
350     find ${stripdir} | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
351    }
352    
353    mstripbins() {
354     local stripdir="$@"
355    
356     [ -z "${stripdir}" ] && stripdir=${BINDIR}
357     find ${stripdir} | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
358    }
359    
360    sminclude() {
361     local i
362    
363     if [ -n "$@" ]
364     then
365     for i in $@
366     do
367     echo "--- Including ${SMAGESCRIPTSDIR}/include/${i}.sminc"
368     source ${SMAGESCRIPTSDIR}/include/${i}.sminc
369     done
370     fi
371    }
372    
373  setup_distcc_environment(){  setup_distcc_environment(){
374   if [ -x /usr/bin/distcc ]   if [ -x /usr/bin/distcc ]
375   then   then
# Line 258  setup_ccache_environment(){ Line 410  setup_ccache_environment(){
410   fi   fi
411  }  }
412    
413    # print out our version
414    showversion
415    echo
416    
417  if [ -z "$1" ]  if [ -z "$1" ]
418  then  then
  showversion  
  echo  
419   echo "No .smage2 file given. Exiting."   echo "No .smage2 file given. Exiting."
420   echo   echo
421   exit 1   exit 1
# Line 270  fi Line 424  fi
424  #updating smage2-scripts  #updating smage2-scripts
425  if [ "$1" == "update" ]  if [ "$1" == "update" ]
426  then  then
427   showversion   if [ ! -d ${SOURCEDIR} ]
  if [ ! -d ${SMAGESCRIPTSDIR} ]  
428   then   then
429   install -d ${SMAGESCRIPTSDIR}   install -d ${SOURCEDIR}
430   fi   fi
431   syncsmage2   syncsmage2
432   exit 0   exit 0
433  fi  fi
434    
435    #creates md5sums for smages to given dir
436    if [ "$1" == "calcmd5" ]
437    then
438     if [ $# -ge 3 ]
439     then
440     SMAGENAME="$2"
441     MD5DIR="$3"
442     source ${SMAGENAME} || die "download source failed"
443    
444     # overridable sourcedir; must be declared after source of the smage2
445     CALC_SOURCEDIR="${CALC_SOURCEDIR:="${SOURCEDIR}/${PNAME}"}"
446    
447     [ -z "${SRC_URI}" ] && die "Nothing declared to calculate."
448    
449     # end of array
450     EOA=${#SRC_URI[*]}
451    
452     [ ! -d ${MD5DIR} ] && install -d ${MD5DIR}
453    
454     # clear md5sum file
455     MY_MD5_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
456     echo -n > ${MY_MD5_FILE}
457    
458     for ((i=0; i < EOA; i++))
459     do
460     # url to file
461     my_SRC_URI="$(echo ${SRC_URI[${i}]} | cut -d' ' -f1)"
462    
463     # subdir in sources dir; the my_SRCI_URI file goes to there
464     my_SRC_URI_DEST="$(echo ${SRC_URI[${i}]} | cut -d' ' -f2)"
465    
466     # if my_src_uri_dest is not equal my_src_uri; than an other dir is used
467     if [[ ${my_SRC_URI_DEST} != ${my_SRC_URI} ]]
468     then
469     MY_SRC_FILE="${my_SRC_URI_DEST}/$(basename ${SRC_URI[${i}]})"
470     else
471     MY_SRC_FILE="$(basename ${SRC_URI[${i}]})"
472     fi
473    
474     if [ -e "${CALC_SOURCEDIR}/${MY_SRC_FILE}" ]
475     then
476     echo "calculating $(basename ${MY_SRC_FILE}) ..."
477     ( cd ${CALC_SOURCEDIR}; md5sum "${MY_SRC_FILE}" ) >> ${MY_MD5_FILE}
478     else
479     echo "WARNING: File '$(basename ${MY_SRC_FILE}) not found in ${CALC_SOURCEDIR}."
480     fi
481    
482     # unset them to be shure
483     unset my_SRC_URI
484     unset my_SRC_URI_DEST
485     unset my_SRC_URI_MIRROR
486     unset my_SOURCEDIR
487     done
488    
489     echo
490     echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
491     echo
492     else
493     echo "Usage: Calculating MD5 Sums:"
494     echo "    $(basename $0) calcmd5 /path/to/SMAGENAME /path/to/MD5DIR"
495     echo
496     echo
497     echo "Export the CALC_SOURCEDIR variable to override current SOURCEDIRs."
498     echo
499     exit 1
500     fi
501    
502     exit 0
503    fi
504    
505    #download sources
506    if [ "$1" == "download" -a -n "$2" ]
507    then
508     if [ ! -d ${SMAGESCRIPTSDIR} ]
509     then
510     install -d ${SMAGESCRIPTSDIR}
511     fi
512    
513     # get smage
514     SMAGENAME="$2"
515     MD5DIR="$(dirname ${SMAGENAME})/md5"
516     source ${SMAGENAME} || die "download source failed"
517    
518     download_sources
519     exit 0
520    fi
521    
522  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]
523  then  then
# Line 329  fi Line 568  fi
568    
569  source ${SMAGENAME} || die "source failed"  source ${SMAGENAME} || die "source failed"
570  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"
571    MD5DIR="$(dirname ${SMAGENAME})/md5"
572    
573  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
574    echo "Compiling ${PKGNAME}"
575    
576    #download sources
577    download_sources
578    
579  #fixes some issues with these functions  #fixes some issues with these functions
580  export -f src_prepare || die "src_prepare export failed"  export -f src_prepare || die "src_prepare export failed"
581  export -f src_compile || die "src_compile export failed"  export -f src_compile || die "src_compile export failed"
# Line 422  then Line 667  then
667   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info   ${MLIBDIR}/compressdoc -g -9 ${BUILDDIR}/builded/usr/share/info
668  fi  fi
669    
670    # stripping all bins and libs
671    case ${NOSTRIP} in
672     true|TRUE|yes|y)
673     echo -e "NOSTRIP=true detected; Package will not be stripped ..."
674     ;;
675     *)
676     echo -e "Stripping binaries ..."
677     mstripbins ${BINDIR}
678     echo -e "Stripping libraries ..."
679     mstriplibs ${BINDIR}
680     ;;
681    esac
682    
683  #the new buildpkg command  #the new buildpkg command
684  case ${NOPKGBUILD} in  case ${NOPKGBUILD} in
685   true|TRUE|yes|y)   true|TRUE|yes|y)
# Line 435  esac Line 693  esac
693    
694  #for sure  #for sure
695  unset NOPKGBUILD  unset NOPKGBUILD
696    unset NOSTRIP
697    
698  xtitleclean  xtitleclean
699  #echo -e "\nPackage ${PKGNAME} successfully builded.\n"  #echo -e "\nPackage ${PKGNAME} successfully builded.\n"

Legend:
Removed from v.43  
changed lines
  Added in v.175