Magellan Linux

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

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

revision 57 by niro, Tue Feb 15 00:37:07 2005 UTC revision 59 by niro, Tue Feb 15 22:58:43 2005 UTC
# Line 4  Line 4 
4  # needs pkgbuild_dir (mage)  # needs pkgbuild_dir (mage)
5    
6  # SMAGE2  # SMAGE2
7  # version: 0.3.6-r12  # version: 0.3.6-r13
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.6-r13
15  PKGSUFFIX="mpk"  PKGSUFFIX="mpk"
16  SMAGENAME="$1"  SMAGENAME="$1"
17  SMAGESUFFIX="smage2"  SMAGESUFFIX="smage2"
# Line 84  syncsmage2() { Line 84  syncsmage2() {
84   xtitleclean   xtitleclean
85  }  }
86    
87    # $1 filename
88    get_db_md5_sum() {
89     local DB_FILE
90     local MD5_FILE
91     local i
92    
93     DB_ENTRY="$(basename $1)"
94     MD5_FILE="${MD5DIR}/$(basename ${SMAGENAME} ${SMAGESUFFIX})"
95    
96     i="$(cat ${MD5_FILE}| grep ${DB_ENTRY} | cut -d' ' -f1)"
97    
98     echo "${i}"
99    }
100    
101    download_sources() {
102    
103     [ -z "${SRC_URI}" ] && echo "Nothing declared to download." && return 0
104    
105     local EOA=${#SRC_URI[*]}
106     local MY_SRC_URI
107     local DB_MD5_SUM_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
108     local FETCHING
109     local i mirror
110    
111    
112     #install SRCDIR/PNAME if not exist
113     [ ! -d ${SOURCEDIR}/${PNAME} ] && install -d ${SOURCEDIR}/${PNAME}
114    
115     # check if FETCHING is needed
116     ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} > /dev/null )
117     if [[ $? == 0 ]]
118     then
119     # md5's ok, not fetching needed
120     FETCHING=false
121     else
122     FETCHING=true
123     fi
124    
125     for ((i=0; i < EOA; i++))
126     do
127     # get MD5 sum from database
128    
129    
130     # if an mirrored file than replace first the mirror uri
131     if [ -n "$(echo ${SRC_URI[${i}]} | grep 'mirror://')" ]
132     then
133     for mirror in ${MIRRORS}
134     do
135     MY_SRC_URI="$(echo ${SRC_URI[${i}]} | sed "s|mirror:/|${mirror}/sources|g")"
136    
137     #echo "DEBUG: ${MY_SRC_URI}"
138     if [[ ${FETCHING} == true ]]
139     then
140     echo "==> fetching ${MY_SRC_URI}"
141     wget \
142     --passive-ftp \
143     --tries 3 \
144     --continue \
145     --progress bar \
146     --directory-prefix="${SOURCEDIR}/${PNAME}" \
147     "${MY_SRC_URI}"
148     if [ "$?" == "0" ]
149     then
150     break
151     else
152     continue
153     fi
154     fi
155     done
156     else
157     #echo "DEBUG: ${SRC_URI[${i}]}"
158     if [[ ${FETCHING} == true ]]
159     then
160     echo "==> fetching ${SRC_URI[${i}]}"
161     wget \
162     --passive-ftp \
163     --tries 3 \
164     --continue \
165     --progress bar \
166     --directory-prefix="${SOURCEDIR}/${PNAME}" \
167     "${MY_SRC_URI}"
168     if [ "$?" == "0" ]
169     then
170     break
171     else
172     continue
173     fi
174     fi
175     fi
176    
177     done
178    
179     # recheck md5 sums
180     echo
181     echo ">== Checking MD5 sums:"
182     ( cd ${SOURCEDIR}/${PNAME}; md5sum --check ${DB_MD5_SUM_FILE} || die "md5 failed")
183     echo
184    
185     # not needed anymore
186     unset SRC_URI
187    }
188    
189  # dummy function, used if that not exist in smage file  # dummy function, used if that not exist in smage file
190  src_prepare() {  src_prepare() {
191   echo "no src_prepare defined"   echo "no src_prepare defined"
# Line 258  setup_ccache_environment(){ Line 360  setup_ccache_environment(){
360   fi   fi
361  }  }
362    
363    # print out our version
364    showversion
365    echo
366    
367  if [ -z "$1" ]  if [ -z "$1" ]
368  then  then
  showversion  
  echo  
369   echo "No .smage2 file given. Exiting."   echo "No .smage2 file given. Exiting."
370   echo   echo
371   exit 1   exit 1
# Line 270  fi Line 374  fi
374  #updating smage2-scripts  #updating smage2-scripts
375  if [ "$1" == "update" ]  if [ "$1" == "update" ]
376  then  then
377     if [ ! -d ${SOURCEDIR} ]
378     then
379     install -d ${SOURCEDIR}
380     fi
381     syncsmage2
382     exit 0
383    fi
384    
385    #creates md5sums for smages to given dir
386    if [ "$1" == "calcmd5" ]
387    then
388     if [ $# -ge 3 ]
389     then
390     # overridable sourcedir
391     CALC_SOURCEDIR="${CALC_SOURCEDIR:="${SOURCEDIR}/${PNAME}"}"
392    
393     SMAGENAME="$2"
394     MD5DIR="$3"
395     source ${SMAGENAME} || die "download source failed"
396    
397     [ -z "${SRC_URI}" ] && die "Nothing declared to calculate."
398    
399     # end of array
400     EOA=${#SRC_URI[*]}
401    
402     [ ! -d ${MD5DIR} ] && install -d ${MD5DIR}
403    
404     # clear md5sum file
405     MY_MD5_FILE="${MD5DIR}/$(basename ${SMAGENAME} .${SMAGESUFFIX}).md5"
406     echo -n > ${MY_MD5_FILE}
407    
408     for ((i=0; i < EOA; i++))
409     do
410     MY_SRC_FILE="$(basename ${SRC_URI[${i}]})"
411     if [ -e "${CALC_SOURCEDIR}/${MY_SRC_FILE}" ]
412     then
413     echo "calculating $(basename ${MY_SRC_FILE}) ..."
414     ( cd ${CALC_SOURCEDIR}; md5sum "${MY_SRC_FILE}" ) >> ${MY_MD5_FILE}
415     else
416     echo "WARNING: File '$(basename ${MY_SRC_FILE}) not found in ${CALC_SOURCEDIR}."
417     fi
418     done
419    
420     echo
421     echo "Calculating of md5 sums for '$(basename ${SMAGENAME} .${SMAGESUFFIX})' done."
422     echo
423     else
424     echo "Usage: Calculating MD5 Sums:"
425     echo "    $(basename $0) calcmd5 /path/to/SMAGENAME /path/to/MD5DIR"
426     echo
427     echo
428     echo "Export the CALC_SOURCEDIR variable to override current SOURCEDIRs."
429     echo
430     exit 1
431     fi
432    
433     exit 0
434    fi
435    
436    #download sources
437    if [ "$1" == "download" -a -n "$2" ]
438    then
439   showversion   showversion
440   if [ ! -d ${SMAGESCRIPTSDIR} ]   if [ ! -d ${SMAGESCRIPTSDIR} ]
441   then   then
442   install -d ${SMAGESCRIPTSDIR}   install -d ${SMAGESCRIPTSDIR}
443   fi   fi
444   syncsmage2  
445     # get smage
446     SMAGENAME="$2"
447     MD5DIR="$(dirname ${SMAGENAME})/md5"
448     source ${SMAGENAME} || die "download source failed"
449    
450     download_sources
451   exit 0   exit 0
452  fi  fi
453    
   
454  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]  if [ ! -e ${MLIBDIR}/pkgbuild_dir.sh ]
455  then  then
456   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."   die "Error: ${MLIBDIR}/pkgbuild_dir.sh not found. Aborting."
# Line 329  fi Line 500  fi
500    
501  source ${SMAGENAME} || die "source failed"  source ${SMAGENAME} || die "source failed"
502  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"  PKGNAME="${PNAME}-${PVER}-${CHOST%%-*}-${PBUILD}"
503    MD5DIR="$(dirname ${SMAGENAME})/md5"
504    
505  xtitle "Compiling ${PKGNAME}"  xtitle "Compiling ${PKGNAME}"
506    echo "Compiling ${PKGNAME}"
507    
508    #download sources
509    download_sources
510    
511  #fixes some issues with these functions  #fixes some issues with these functions
512  export -f src_prepare || die "src_prepare export failed"  export -f src_prepare || die "src_prepare export failed"
513  export -f src_compile || die "src_compile export failed"  export -f src_compile || die "src_compile export failed"

Legend:
Removed from v.57  
changed lines
  Added in v.59