Magellan Linux

Diff of /branches/mage-sql/usr/lib/mage/sql_functions.sh

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

revision 1114 by niro, Sat Jul 17 10:45:30 2010 UTC revision 1115 by niro, Sat Jul 17 10:48:23 2010 UTC
# Line 260  default_virtualname_to_pkgname() Line 260  default_virtualname_to_pkgname()
260   sql "select pcat,pname from virtual_defaults where vcat='${vcat}' and vname='${vname}'"   sql "select pcat,pname from virtual_defaults where vcat='${vcat}' and vname='${vname}'"
261  }  }
262    
 ALLDEPS=""  
 #ALREADY_PROCESSED=""  
 resolv_pkgs()  
 {  
  local method="$1"  
  local pname="$2"  
  local state="$3"  
  local depcat  
  local depname  
  local depver  
  local depbuild  
  local highest  
  local fullname  
  local searchcmd  
  local searchcmd2  
  local pkgid  
  #local ALL_DEPS  
   
  case ${method} in  
  --install)  
  searchcmd="all_depends ${pname} ${state}"  
  searchcmd2=""  
  ;;  
  --src-install)  
  searchcmd="all_depends ${pname} ${state}"  
  searchcmd2="all_sdepends ${pname} ${state}"  
  ;;  
  esac  
   
  [[ -z ${pname} ]] && return 1  
   
  echo  
  echo "processing pname=${pname}"  
  echo "before ALL_DEPS=${ALL_DEPS[*]}"  
  read  
   
  ALL_DEPS+=($(${searchcmd}))  
  ALL_DEPS+=($(${searchcmd2}))  
   
  echo "after ALL_DEPS=${ALL_DEPS[*]}"  
  read  
   
  for line in ${ALL_DEPS[${i}]}  
  do  
 # for (( i=0; i<count; i++))  
 # do  
 # echo "i=${i}"  
 # read  
   
  line="${ALL_DEPS[${i}]}"  
 # while read line  
 # do  
  [[ -z ${line} ]] && continue  
   
  depcat="${line%%|*}"  
  depname="${line#*|}"  
  depname="${depname%%|*}"  
   
  # check processed pnames, to speed things up  
 # local i  
 # for i in ${ALREADY_PROCESSED}  
 # do  
 # [[ ${depname} = ${i} ]] && continue  
 # done  
   
  # hotfix  
  if [[ ${depcat} = virtual ]]  
  then  
  case ${depname} in  
  x11)  
  depcat=x11-base  
  depname=xorg  
  ;;  
  glibc)  
  depcat=sys-libs  
  depname=glibc-nptl  
  ;;  
  kernel)  
  depcat=sys-kernel  
  depname=kernel26-magellan  
  ;;  
  kernel-headers)  
  depcat=sys-kernel  
  depname=linux-libc-headers  
  ;;  
  kernel-sources)  
  depcat=sys-kernel  
  depname=kernel26-sources-magellan  
  ;;  
  java)  
  depcat=dev-java  
  depname=sun-jdk  
  ;;  
  mta)  
  depcat=net-mail  
  depname=ssmtp  
  ;;  
  editor)  
  depcat=app-editors  
  depname=nano  
  ;;  
  cron)  
  depcat=sys-apps  
  depname=fcron  
  ;;  
  syslog)  
  depcat=app-admin  
  depname=syslog-ng  
  ;;  
  alsa-drivers)  
  depcat=sys-kernel  
  depname=kernel26-magellan  
  ;;  
  nvidia-drivers)  
  depcat=sys-kernel  
  depname=kernel26-magellan  
  ;;  
  ati-drivers)  
  depcat=sys-kernel  
  depname=kernel26-magellan  
  ;;  
  opengl)  
  depcat=media-libs  
  depname=mesa  
  ;;  
  esac  
  fi  
   
  highest=$(highest_pkg ${depname} ${state})  
  depver="${highest%|*}"  
  depbuild="${highest##*|}"  
   
  fullname="${depcat}/${depname}-${depver}-${depbuild}"  
   
  echo "DEBUG: depcat='${depcat}'"  
  echo "DEBUG: depname='${depname}'"  
  echo "DEBUG: fullname='${fullname}'"  
   
  #### check ob DFILE schon installiert ist ####  
  is_installed --pcat "${depcat}" --pname "${depname}" --pver "${depver}" --pbuild "${depbuild}" && continue  
   
  ## check ob schon in ALLDEPS enthalten dann mach weiter  
  if [[ -z $(echo ${ALLDEPS} | fgrep "${fullname}") ]]  
  then  
  echo "DEBUG: next loop! -> ${depname}"  
  resolv_pkgs "${method}" "${depname}" "${state}"  
  ALLDEPS="${ALLDEPS} ${fullname}"  
  fi  
   
  # list of all processed pnames, to speed things up  
 # ALREADY_PROCESSED="${ALREADY_PROCESSED} ${depname}"  
   
  # unset all vars  
  unset depname  
  unset depcat  
  unset depver  
  unset depbuild  
  unset fullname  
  unset shighest  
 # done << EOF  
 #$(${searchcmd})  
 #$(${searchcmd2})  
 #EOF  
 # done  
  done  
 }  
   
 # start_depwanderer pname state  
 start_depwanderer()  
 {  
  local highest  
  local method="$1"  
  local pname="$2"  
  local pver  
  local pbuild  
  local pcat  
  local state="$3"  
  local x i  
   
  # get some suitable pkg info  
  highest=$(highest_pkg "${pname}" "${state}")  
  pver="${highest%|*}"  
  pbuild="${highest##*|}"  
  pcat=$(sql "select categories.pcat  
  from packages  
  inner join categories  
  on packages.pcat_id=categories.id  
  where packages.pname='${pname}'  
  and packages.pver='${pver}'  
  and packages.pbuild='${pbuild}'")  
   
  # already installed ??  
  if is_installed --pcat "${pcat}" --pname "${pname}" --pver "${pver}" --pbuild "${pbuild}"  
  then  
  echo "Package ${pcat}/${pname}-${pver}-${pbuild} already installed."  
  return 2  
  fi  
   
  resolv_pkgs "${method}" "${pname}" "${state}"  
  declare -i x=1  
  for i in ${ALLDEPS}  
  do  
  #echo "${x}: ${i}"  
  echo "${i}"  
  ((x++))  
  done  
   
  # add the package itself to the dependencies  
  #echo "$((x++)): ${pcat}/${pname}-${pver}-${pbuild}"  
  echo "${pcat}/${pname}-${pver}-${pbuild}"  
 }  
   
   
263  # fetch_packages /path/to/mage/file1 /path/to/mage/file2  # fetch_packages /path/to/mage/file1 /path/to/mage/file2
264  fetch_packages()  fetch_packages()
265  {  {

Legend:
Removed from v.1114  
changed lines
  Added in v.1115