Magellan Linux

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

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

revision 2360 by niro, Mon Jan 6 12:36:37 2014 UTC revision 2840 by niro, Fri Oct 24 08:23:22 2014 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2  # $Id$  # $Id$
3  # dependeny walker  # dependency walker
4    
5  # default die function  # default die function
6  die()  die()
# Line 48  usage() Line 48  usage()
48   echo "                         upgrade, srcupgrade,"   echo "                         upgrade, srcupgrade,"
49   echo "                         install-build-prerequisites,"   echo "                         install-build-prerequisites,"
50   echo "                         pretend-build-prerequisites"   echo "                         pretend-build-prerequisites"
51     echo "                         install-deep-build-prerequisites,"
52     echo "                         pretend-deep-build-prerequisites"
53   echo "  -d     --debug         enable debug mode"   echo "  -d     --debug         enable debug mode"
54   echo "  -s     --smage         use a smage to calculate dependencies"   echo "  -s     --smage         use a smage to calculate dependencies"
55   echo   echo
# Line 56  usage() Line 58  usage()
58   exit 1   exit 1
59  }  }
60    
61  # always default debug=0  # set some sane defaults
62  DEBUG=0  DEBUG=0
63    SMAGE_DEPEND=0
64    SDEPEND_ONETIME=0
65    
66  # very basic getops  # very basic getops
67  for i in $*  for i in $*
# Line 69  do Line 73  do
73   --pbuild|-b) shift; PBUILD="$1" ;;   --pbuild|-b) shift; PBUILD="$1" ;;
74   --method|-m) shift; METHOD="$1" ;;   --method|-m) shift; METHOD="$1" ;;
75   --debug|-d) shift; DEBUG=1 ;;   --debug|-d) shift; DEBUG=1 ;;
76   --smage|-s) shift; SMAGEFILE="$1"; SILENT=1; FVERBOSE=off ;;   --smage|-s) shift; SMAGEFILE="$1"; SMAGE_DEPEND=1; SILENT=1; FVERBOSE=off ;;
77   --help|-h) usage ;;   --help|-h) usage ;;
78   esac   esac
79   shift   shift
# Line 90  fi Line 94  fi
94  [ -z "${INSTALLDB}" ] && die "\$INSTALLDB not set."  [ -z "${INSTALLDB}" ] && die "\$INSTALLDB not set."
95  [ -z "${BUILDDIR}" ] && die "\$BUILDDIR not set."  [ -z "${BUILDDIR}" ] && die "\$BUILDDIR not set."
96    
97    # load mage-features to support them with smagesource()
98    load_mage_features
99    
100  # other needed vars  # other needed vars
101  ALLDEPS=""  ALLDEPS=""
102  if [[ -n ${SMAGEFILE} ]]  if [[ -n ${SMAGEFILE} ]]
# Line 173  depwalking() Line 180  depwalking()
180   [[ ${METHOD} = srcpretend ]] ||   [[ ${METHOD} = srcpretend ]] ||
181   [[ ${METHOD} = srcupgrade ]] ||   [[ ${METHOD} = srcupgrade ]] ||
182   [[ ${METHOD} = srcuppretend ]] ||   [[ ${METHOD} = srcuppretend ]] ||
183   [[ ${METHOD} = install-build-prerequisites ]] ||   [[ ${METHOD} = install-deep-build-prerequisites ]] ||
184   [[ ${METHOD} = pretend-build-prerequisites ]]   [[ ${METHOD} = pretend-deep-build-prerequisites ]]
185   then   then
186   # only if SDEPEND is not zero   # only if SDEPEND is not zero
187   if [ -n "${SDEPEND}" ]   if [ -n "${SDEPEND}" ]
# Line 190  depwalking() Line 197  depwalking()
197   fi   fi
198   fi   fi
199    
200     # add sdepend for the smage/mage file only for the first time
201     # to catch sdepend only from the target
202     if [[ ${METHOD} = install-build-prerequisites ]] ||
203     [[ ${METHOD} = pretend-build-prerequisites ]]
204     then
205     if [[ ${SDEPEND_ONETIME} = 0 ]]
206     then
207     # only if SDEPEND is not zero
208     if [ -n "${SDEPEND}" ]
209     then
210     # crlf is substantly needed !!
211     if [ -n "${MY_DEPEND}" ]
212     then
213     MY_DEPEND="${MY_DEPEND}
214     ${SDEPEND}"
215     else
216     MY_DEPEND="${SDEPEND}"
217     fi
218     fi
219     SDEPEND_ONETIME=1
220     fi
221     fi
222    
223   unset DEPEND   unset DEPEND
224   unset SDEPEND   unset SDEPEND
225    
# Line 215  depwalking() Line 245  depwalking()
245    
246   # mark depfile as processed to prevent double runs -without version   # mark depfile as processed to prevent double runs -without version
247   # but do not add any virtuals to PROCESSEDDEPS or their resolved   # but do not add any virtuals to PROCESSEDDEPS or their resolved
248   # pkgnames will be ignored and they are missing on the dependecy-list   # pkgnames will be ignored and they are missing on the dependency-list
249   if [[ ${DEPNAME/virtual\//} = ${DEPNAME} ]]   if [[ ${DEPNAME/virtual\//} = ${DEPNAME} ]]
250   then   then
251   PROCESSEDDEPS="${PROCESSEDDEPS} ${DEPNAME%-*}"   PROCESSEDDEPS="${PROCESSEDDEPS} ${DEPNAME%-*}"
# Line 242  depwalking() Line 272  depwalking()
272   ### check if the dependency is already installed ###   ### check if the dependency is already installed ###
273   if [ ! -d ${MROOT}${INSTALLDB}/${PCAT}/${PNAME}-${PVER}-${PBUILD} ]   if [ ! -d ${MROOT}${INSTALLDB}/${PCAT}/${PNAME}-${PVER}-${PBUILD} ]
274   then   then
275     # but first get all deps of highest_depfile to catch all dependencies of it
276   depwalking ${HIGHEST_DEPFILE}   depwalking ${HIGHEST_DEPFILE}
277   ALLDEPS="${ALLDEPS} ${HIGHEST_DEPFILE}"   ALLDEPS="${ALLDEPS} ${HIGHEST_DEPFILE}"
278   decho "added '${HIGHEST_DEPFILE}' to ALLDEPS"   decho "added '${HIGHEST_DEPFILE}' to ALLDEPS"
# Line 312  then Line 343  then
343   ALLDEPS="${ALLDEPS} ${MAGEFILE}"   ALLDEPS="${ALLDEPS} ${MAGEFILE}"
344   fi   fi
345   else   else
346   # debug info   # debug info
347   decho "ignored package"   decho "ignored package"
348   decho   decho
  fi  
349   fi   fi
350   done   done
351  else  else
# Line 330  fi Line 360  fi
360    
361  if [[ ${METHOD} != install-build-prerequisites ]] &&  if [[ ${METHOD} != install-build-prerequisites ]] &&
362   [[ ${METHOD} != pretend-build-prerequisites ]] &&   [[ ${METHOD} != pretend-build-prerequisites ]] &&
363     [[ ${METHOD} != install-deep-build-prerequisites ]] &&
364     [[ ${METHOD} != pretend-deep-build-prerequisites ]] &&
365   [[ ${METHOD} != upgrade ]] &&   [[ ${METHOD} != upgrade ]] &&
366   [[ ${METHOD} != uppretend ]] &&   [[ ${METHOD} != uppretend ]] &&
367   [[ ${METHOD} != srcupgrade ]] &&   [[ ${METHOD} != srcupgrade ]] &&
# Line 348  fi Line 380  fi
380   [[ ${METHOD} = srcpretend ]] || \   [[ ${METHOD} = srcpretend ]] || \
381   [[ ${METHOD} = uppretend ]] || \   [[ ${METHOD} = uppretend ]] || \
382   [[ ${METHOD} = srcuppretend ]] || \   [[ ${METHOD} = srcuppretend ]] || \
383   [[ ${METHOD} = pretend-build-prerequisites ]] && \   [[ ${METHOD} = pretend-build-prerequisites ]] || \
384     [[ ${METHOD} = pretend-deep-build-prerequisites ]] && \
385   echo "done"   echo "done"
386    
387    
# Line 357  if [[ ${METHOD} = pretend ]] || \ Line 390  if [[ ${METHOD} = pretend ]] || \
390   [[ ${METHOD} = srcpretend ]] || \   [[ ${METHOD} = srcpretend ]] || \
391   [[ ${METHOD} = uppretend ]] || \   [[ ${METHOD} = uppretend ]] || \
392   [[ ${METHOD} = srcuppretend ]] || \   [[ ${METHOD} = srcuppretend ]] || \
393   [[ ${METHOD} = pretend-build-prerequisites ]]   [[ ${METHOD} = pretend-build-prerequisites ]] || \
394     [[ ${METHOD} = pretend-deep-build-prerequisites ]]
395  then  then
396   # this is a little bit faster   # this is a little bit faster
397   declare -i x=0   declare -i x=0
# Line 417  fi Line 451  fi
451   [[ ${METHOD} = srcinstall ]] || \   [[ ${METHOD} = srcinstall ]] || \
452   [[ ${METHOD} = upgrade ]] || \   [[ ${METHOD} = upgrade ]] || \
453   [[ ${METHOD} = srcupgrade ]] || \   [[ ${METHOD} = srcupgrade ]] || \
454   [[ ${METHOD} = install-build-prerequisites ]] && \   [[ ${METHOD} = install-build-prerequisites ]] || \
455     [[ ${METHOD} = install-deep-build-prerequisites ]] && \
456   echo "${ALLDEPS}"   echo "${ALLDEPS}"

Legend:
Removed from v.2360  
changed lines
  Added in v.2840