Magellan Linux

Diff of /trunk/mage/usr/lib/mage/mage4.functions.sh

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

revision 294 by niro, Sun Dec 4 11:54:15 2005 UTC revision 373 by niro, Thu Apr 27 17:15:23 2006 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2  # Magellan Linux Installer Functions (mage.functions.sh)  # Magellan Linux Installer Functions (mage.functions.sh)
3  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mage4.functions.sh,v 1.11 2005-12-04 11:54:15 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mage4.functions.sh,v 1.19 2006-04-27 17:15:23 niro Exp $
4    
5  mage_setup()  mage_setup()
6  {  {
# Line 361  install_characterdevices() Line 361  install_characterdevices()
361   local pkgname="$1"   local pkgname="$1"
362   local pathto   local pathto
363   local posix   local posix
364     local major
365     local minor
366   local IFS   local IFS
367    
368   # sanity checks; abort if not given   # sanity checks; abort if not given
# Line 374  install_characterdevices() Line 376  install_characterdevices()
376   # sets fieldseperator to "§" instead of " "   # sets fieldseperator to "§" instead of " "
377   IFS=§   IFS=§
378    
379   while read pathto posix   while read pathto posix major minor
380   do   do
381   [ -z "${pathto}" ] && continue   [ -z "${pathto}" ] && continue
382   [[ ${VERBOSE} = on ]] && echo -e "\t>>> CHAR: ${MROOT}${pathto}"   [[ ${VERBOSE} = on ]] && echo -e "\t>>> CHAR: ${MROOT}${pathto}"
383    
384   mknode -m ${posix} -c "${MROOT}${pathto}"   mknod -m ${posix} "${MROOT}${pathto}" c ${major} ${minor}
385   done < ${BUILDDIR}/${pkgname}/.char   done < ${BUILDDIR}/${pkgname}/.char
386    
387   # very important: unsetting the '§' fieldseperator   # very important: unsetting the '§' fieldseperator
# Line 1284  pname2pcat() Line 1286  pname2pcat()
1286  # returns 0=stable 1=unstable  # returns 0=stable 1=unstable
1287  check_stable_package()  check_stable_package()
1288  {  {
1289     # first check if this magefile is not blacklisted
1290     blacklisted "$1" || return 1
1291    
1292   local STATE   local STATE
1293   STATE="$(get_value_from_magefile STATE "$1")"   STATE="$(get_value_from_magefile STATE "$1")"
1294    
# Line 1335  get_highest_magefile() Line 1340  get_highest_magefile()
1340   fi   fi
1341   done   done
1342    
1343   # stop here if HIGHEST_MAGEFILE is zero  # do not so anything
1344   # this package must be unstable or old  # # stop here if HIGHEST_MAGEFILE is zero
1345   if [ -z "${HIGHEST_MAGEFILE}" ]  # # this package must be unstable or old
1346   then  # if [ -z "${HIGHEST_MAGEFILE}" ]
1347   echo  # then
1348   echo -n "All packages named "  # echo
1349   echo -en ${COLRED}\""${PKGNAME%-*-*-*}\""${COLDEFAULT}  # echo -n "All packages named "
1350   echo -n " are marked "  # echo -en ${COLRED}\""${PKGNAME%-*-*-*}\""${COLDEFAULT}
1351   echo -en ${COLRED}"*UNSTABLE*"${COLDEFAULT}  # echo -n " are marked "
1352   echo "."  # echo -en ${COLRED}"*UNSTABLE*"${COLDEFAULT}
1353   echo "You need to declare USE_UNSTABLE=true to install this."  # echo "."
1354   echo  # echo "You need to declare USE_UNSTABLE=true to install this."
1355   echo "Example:"  # echo
1356   echo "         USE_UNSTABLE=true mage install ${PKGNAME%-*-*-*}"  # echo "Example:"
1357   echo  # echo "         USE_UNSTABLE=true mage install ${PKGNAME%-*-*-*}"
1358   echo "Be warned that these packages are not stable and may cause serious problems."  # echo
1359   echo "You should know what you are doing, so don't complain about any damage."  # echo "Be warned that these packages are not stable and may cause serious problems."
1360   echo  # echo "You should know what you are doing, so don't complain about any damage."
1361   return 1  # echo
1362   fi  # return 1
1363    # fi
1364    
1365   echo "${HIGHEST_MAGEFILE}"   echo "${HIGHEST_MAGEFILE}"
1366   return 0   return 0
# Line 1466  get_uninstall_candidates() Line 1472  get_uninstall_candidates()
1472   shift   shift
1473   done   done
1474    
1475   # sanity checks; abort if not given  # it's not good to complain here about empty pnames; better to continue later anyway
1476   [ -z "${search_pname}" ] && die "get_uninstall_candidates() \$search_pname not given."  # # sanity checks; abort if not given
1477    # [ -z "${search_pname}" ] && die "get_uninstall_candidates() \$search_pname not given."
1478    
1479    
1480   # check needed global vars   # check needed global vars
1481   [ -z "${INSTALLDB}" ] && die "get_uninstall_candidates() \$INSTALLDB not set."   [ -z "${INSTALLDB}" ] && die "get_uninstall_candidates() \$INSTALLDB not set."
1482    
1483   # set pcatdir to '*' if empty   # set pcatdir to '*' if empty
1484   [ -z "${pcatdir}" ] && pcatdir=*   [ -z "${pcatdir}" ] && pcatdir='*'
1485    
1486   for pkg in ${MROOT}${INSTALLDB}/${pcatdir}/*   for pkg in ${MROOT}${INSTALLDB}/${pcatdir}/*
1487   do   do
# Line 1563  virtuals_add() Line 1570  virtuals_add()
1570    
1571   if virtuals_read ${virtualname}   if virtuals_read ${virtualname}
1572   then   then
1573   # make shure ${PKG_NAME} is *not* in ${VIRTUAL_NAME} already   # make sure ${PKG_NAME} is *not* in ${VIRTUAL_NAME} already
1574   for i in $(virtuals_read ${virtualname} showpkgs)   for i in $(virtuals_read ${virtualname} showpkgs)
1575   do   do
1576   if [[ ${i} = ${pkgname} ]]   if [[ ${i} = ${pkgname} ]]
# Line 1756  is_newer_mage_version_available() Line 1763  is_newer_mage_version_available()
1763   echo -en ${COLRED}"An update for your packetmanager is available. "${COLDEFAULT}   echo -en ${COLRED}"An update for your packetmanager is available. "${COLDEFAULT}
1764   echo -e ${COLBLUE}"[ ${newest_mage} ]"${COLDEFAULT}   echo -e ${COLBLUE}"[ ${newest_mage} ]"${COLDEFAULT}
1765   echo "It is recommened to install this newer version"   echo "It is recommened to install this newer version"
1766   echo "or your current system installation may brake."   echo "or your current system installation may break."
1767   echo   echo
1768   echo -en "Please update mage by running "   echo -en "Please update mage by running "
1769   echo -e ${COLGREEN}"'mage install mage'"${COLDEFAULT}   echo -e ${COLGREEN}"'mage install mage'"${COLDEFAULT}
# Line 2028  get_value_from_magefile() Line 2035  get_value_from_magefile()
2035   local magefile="$2"   local magefile="$2"
2036   local value   local value
2037    
2038     [[ -z ${var} ]] && return 1
2039     [[ -z ${magefile} ]] && return 1
2040    
2041   # local all possible vars of a mage file   # local all possible vars of a mage file
2042   # to prevent bad issues   # to prevent bad issues
2043   local PKGNAME   local PKGNAME
# Line 2539  pkgsearch() Line 2549  pkgsearch()
2549   local ipbuild   local ipbuild
2550    
2551   # only names no versions   # only names no versions
2552   result="$(find ${MAGEDIR} -mindepth 2 -maxdepth 2 -type d -name *${string}*)"   result="$(find ${MAGEDIR} -mindepth 2 -maxdepth 2 -type d -name '*'${string}'*')"
2553   #result="$(find ${MAGEDIR} -type f -name *${string}*.mage | sort)"   #result="$(find ${MAGEDIR} -type f -name '*'${string}'*'.mage | sort)"
2554    
2555   # nothing found   # nothing found
2556   [[ -z ${result} ]] && die "No package found containing '${string}' in the name."   [[ -z ${result} ]] && die "No package found containing '${string}' in the name."
# Line 2625  export_inherits() Line 2635  export_inherits()
2635   shift   shift
2636   done   done
2637  }  }
2638    
2639    mlibdir()
2640    {
2641     local libdir=lib
2642     [[ ${ARCH} = x86_64 ]] && libdir=lib64
2643    
2644     echo "${libdir}"
2645    }
2646    
2647    ## blacklisted ${magefile}
2648    blacklisted()
2649    {
2650     [[ -z ${MAGE_DISTRIBUTION} ]] && local MAGE_DISTRIBUTION=stable
2651    
2652     # compat
2653     [[ ${USE_UNSTABLE} = true ]] && local MAGE_DISTRIBUTION=unstable
2654     [[ ${USE_TESTING} = true ]] && local MAGE_DISTRIBUTION=testing
2655    
2656     local EXCLUDED="${MROOT}/etc/mage-profile/package.blacklist-${ARCH}-${MAGE_DISTRIBUTION}"
2657    
2658     # return 0 if the list not exist; nothin is masked
2659     [[ ! -f ${EXCLUDED} ]] && return 0
2660    
2661     local MAGEFILE="$1"
2662    
2663     local PCAT="$(magename2pcat ${MAGEFILE})"
2664     local PNAME="$(magename2pname ${MAGEFILE})"
2665     local PVER="$(magename2pver ${MAGEFILE})"
2666     local PBUILD="$(magename2pbuild ${MAGEFILE})"
2667    
2668     local EXPCAT EXPNAME EXPVER EXPBUILD
2669     while read EXPCAT EXPNAME EXPVER EXPBUILD
2670     do
2671     # ignore spaces and comments
2672             case "${EXPCAT}" in
2673                     \#*|"") continue ;;
2674             esac
2675    
2676     # exclude full pver
2677     if [[ -n ${PCAT} ]] && [[ -n ${PNAME} ]] &&
2678     [[ -n ${EXPCAT} ]] && [[ -n ${EXPNAME} ]] &&
2679     [[ -n ${PVER} ]] && [[ -n ${PBUILD} ]] &&
2680     [[ -n ${EXPVER} ]] && [[ -n ${EXPBUILD} ]]
2681     then
2682     [[ ${EXPCAT}/${EXPNAME}-${EXPVER}-${EXPBUILD} = ${PCAT}/${PNAME}-${PVER}-${PBUILD} ]] && return 1
2683     fi
2684    
2685     # exclude pcat/pname only
2686     if [[ -n ${PCAT} ]] && [[ -n ${PNAME} ]] &&
2687     [[ -n ${EXPCAT} ]] && [[ -n ${EXPNAME} ]] &&
2688     [[ -z ${EXPVER} ]] && [[ -z ${EXPBUILD} ]]
2689     then
2690     [[ ${EXPCAT}/${EXPNAME} = ${PCAT}/${PNAME} ]] && return 1
2691     fi
2692     done << EOF
2693    $( cat ${EXCLUDED}; echo)
2694    EOF
2695    
2696     return 0
2697    }
2698    

Legend:
Removed from v.294  
changed lines
  Added in v.373