Magellan Linux

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

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

trunk/mage/usr/lib/mage/depwalker.sh revision 2286 by niro, Mon Dec 2 10:12:35 2013 UTC branches/mage-next/src/depwalker.in revision 2829 by niro, Wed Sep 17 11:20:37 2014 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2  # $Id$  # $Id$
3  # dependeny walker  # dependency walker
4    
5  # default die function  # set default variables
6  die()  : ${MAGERC="@@SYSCONFDIR@@/mage.rc"}
7  {  : ${MLIBDIR="@@MAGELIBDIR@@"}
8   echo ${COLRED}"$@"${COLDEFAULT}  
9   exit 1  # first of all include common functions
10  }  source ${MLIBDIR}/common.functions.sh || exit 1
11    source @@SYSCONFDIR@@/mage.rc.global || die "@@SYSCONFDIR@@/mage.rc.global missing"
12    source ${MAGERC} || die "Your ${MAGERC} is missing. Aborting."
13    source ${MLIBDIR}/mage4.functions.sh || die "mage functions missing"
14    source ${MLIBDIR}/smage2.functions.sh || die "smage functions missing"
15    
16  decho()  decho()
17  {  {
# Line 17  decho() Line 21  decho()
21   fi   fi
22  }  }
23    
 # include all needed files  
 [ -f /etc/mage.rc.global ] &&  \  
  source /etc/mage.rc.global || \  
  die "/etc/mage.rc.global missing"  
   
 [ -f ${MAGERC} ] && source ${MAGERC} || \  
  die "Your ${MAGERC} is missing. Aborting."  
   
 [ -f ${MLIBDIR}/mage4.functions.sh ] && \  
  source ${MLIBDIR}/mage4.functions.sh || \  
  die "mage functions missing"  
   
24  usage()  usage()
25  {  {
26   echo   echo
# Line 40  usage() Line 32  usage()
32   echo "  -v     --pver          version number of the package"   echo "  -v     --pver          version number of the package"
33   echo "  -b     --pbuild        build number of the package"   echo "  -b     --pbuild        build number of the package"
34   echo "  -m     --method        which calc method should be used:"   echo "  -m     --method        which calc method should be used:"
35   echo "                         install, srcinstall, depend, srcdepend"   echo "                         install, srcinstall, pretend, srcpretend"
36   echo "                         upgrade, srcupgrade,"   echo "                         upgrade, srcupgrade,"
37   echo "                         install-build-prerequisites,"   echo "                         install-build-prerequisites,"
38   echo "                         pretend-build-prerequisites"   echo "                         pretend-build-prerequisites"
39   echo "  -d     --debug         enable debug mode"   echo "  -d     --debug         enable debug mode"
40     echo "  -s     --smage         use a smage to calculate dependencies"
41   echo   echo
42   echo "method, category, name, version and build must be given !"   echo "method, category, name, version and build must be given !"
43   echo   echo
# Line 64  do Line 57  do
57   --pbuild|-b) shift; PBUILD="$1" ;;   --pbuild|-b) shift; PBUILD="$1" ;;
58   --method|-m) shift; METHOD="$1" ;;   --method|-m) shift; METHOD="$1" ;;
59   --debug|-d) shift; DEBUG=1 ;;   --debug|-d) shift; DEBUG=1 ;;
60     --smage|-s) shift; SMAGEFILE="$1"; SILENT=1; FVERBOSE=off ;;
61   --help|-h) usage ;;   --help|-h) usage ;;
62   esac   esac
63   shift   shift
64  done  done
65    
66  # sanity checks; abort if not given  # sanity checks; abort if not given
67  [ -z "${PCAT}" ] && usage  if [[ -z ${SMAGEFILE} ]]
68  [ -z "${PNAME}" ] && usage  then
69  [ -z "${PVER}" ] && usage   [ -z "${PCAT}" ] && usage
70  [ -z "${PBUILD}" ] && usage   [ -z "${PNAME}" ] && usage
71     [ -z "${PVER}" ] && usage
72     [ -z "${PBUILD}" ] && usage
73    fi
74  [ -z "${METHOD}" ] && usage  [ -z "${METHOD}" ] && usage
75    
76  # check needed global vars  # check needed global vars
# Line 83  done Line 80  done
80    
81  # other needed vars  # other needed vars
82  ALLDEPS=""  ALLDEPS=""
83    if [[ -n ${SMAGEFILE} ]]
84    then
85     if [[ -e ${SMAGEFILE} ]]
86     then
87     smagesource "${SMAGEFILE}"
88     else
89     die "Smage file '${SMAGEFILE}' does not exist!"
90     fi
91    fi
92  MAGEFILE="${MAGEDIR}/${PCAT}/${PNAME}/${PNAME}-${PVER}-${PBUILD}.mage"  MAGEFILE="${MAGEDIR}/${PCAT}/${PNAME}/${PNAME}-${PVER}-${PBUILD}.mage"
93    
94  # much faster than fgrep  # much faster than fgrep
# Line 197  depwalking() Line 203  depwalking()
203    
204   # mark depfile as processed to prevent double runs -without version   # mark depfile as processed to prevent double runs -without version
205   # but do not add any virtuals to PROCESSEDDEPS or their resolved   # but do not add any virtuals to PROCESSEDDEPS or their resolved
206   # pkgnames will be ignored and they are missing on the dependecy-list   # pkgnames will be ignored and they are missing on the dependency-list
207   if [[ ${DEPNAME/virtual\//} = ${DEPNAME} ]]   if [[ ${DEPNAME/virtual\//} = ${DEPNAME} ]]
208   then   then
209   PROCESSEDDEPS="${PROCESSEDDEPS} ${DEPNAME%-*}"   PROCESSEDDEPS="${PROCESSEDDEPS} ${DEPNAME%-*}"
# Line 224  depwalking() Line 230  depwalking()
230   ### check if the dependency is already installed ###   ### check if the dependency is already installed ###
231   if [ ! -d ${MROOT}${INSTALLDB}/${PCAT}/${PNAME}-${PVER}-${PBUILD} ]   if [ ! -d ${MROOT}${INSTALLDB}/${PCAT}/${PNAME}-${PVER}-${PBUILD} ]
232   then   then
233     # but first get all deps of highest_depfile to catch all dependencies of it
234   depwalking ${HIGHEST_DEPFILE}   depwalking ${HIGHEST_DEPFILE}
235   ALLDEPS="${ALLDEPS} ${HIGHEST_DEPFILE}"   ALLDEPS="${ALLDEPS} ${HIGHEST_DEPFILE}"
236   decho "added '${HIGHEST_DEPFILE}' to ALLDEPS"   decho "added '${HIGHEST_DEPFILE}' to ALLDEPS"
# Line 294  then Line 301  then
301   ALLDEPS="${ALLDEPS} ${MAGEFILE}"   ALLDEPS="${ALLDEPS} ${MAGEFILE}"
302   fi   fi
303   else   else
304   # debug info   # debug info
305   decho "ignored package"   decho "ignored package"
306   decho   decho
  fi  
307   fi   fi
308   done   done
309  else  else
  LOOP_COUNTER=0  
310   # get all dependencies of the package   # get all dependencies of the package
311   depwalking ${MAGEFILE}   if [[ -n ${SMAGEFILE} ]]
312     then
313     depwalking "${SMAGEFILE}"
314     else
315     depwalking "${MAGEFILE}"
316     fi
317  fi  fi
318    
319  if [[ ${METHOD} != install-build-prerequisites ]] &&  if [[ ${METHOD} != install-build-prerequisites ]] &&

Legend:
Removed from v.2286  
changed lines
  Added in v.2829