Magellan Linux

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

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

revision 449 by niro, Tue Mar 27 16:35:57 2007 UTC revision 858 by niro, Fri May 8 07:05:45 2009 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.29 2007-03-27 16:35:57 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mage4.functions.sh,v 1.38 2008-10-05 10:32:24 niro Exp $
4    
5  mage_setup()  mage_setup()
6  {  {
# Line 298  install_symlinks() Line 298  install_symlinks()
298    
299   ln -snf "${link}" "${MROOT}${pathto}"   ln -snf "${link}" "${MROOT}${pathto}"
300    
301   # fix mtime and db  # # fix mtime and db
302   fix_descriptor ${pkgname}/.symlinks \  # fix_descriptor ${pkgname}/.symlinks \
303   "${pathto}" \  # "${pathto}" \
304   "${posix}" \  # "${posix}" \
305   "${link}" \  # "${link}" \
306   "$(fix_mtime "${BUILDDIR}/${pkgname}"/.mtime \  # "$(fix_mtime "${BUILDDIR}/${pkgname}"/.mtime \
307   "${MROOT}${pathto}")"  # "${MROOT}${pathto}")"
308    
309   done < ${BUILDDIR}/${pkgname}/.symlinks   done < ${BUILDDIR}/${pkgname}/.symlinks
310    
311   # now copy the fixed file over the old one  # # now copy the fixed file over the old one
312   [ -f ${BUILDDIR}/${pkgname}/.symlinks_fixed ] && \  # [ -f ${BUILDDIR}/${pkgname}/.symlinks_fixed ] && \
313   cp -f ${BUILDDIR}/${pkgname}/.symlinks{_fixed,}  # cp -f ${BUILDDIR}/${pkgname}/.symlinks{_fixed,}
314    
315   # very important: unsetting the '§' fieldseperator   # very important: unsetting the '§' fieldseperator
316   IFS=$'\n'   IFS=$'\n'
# Line 1203  syncmage() Line 1203  syncmage()
1203   is_newer_mage_version_available   is_newer_mage_version_available
1204  }  }
1205    
1206    syncmage_tarball()
1207    {
1208     local latest_tarball
1209     local temp="$(mktemp -d)"
1210     local mirr mymirr
1211    
1212     # try to get the tarball marked as latest on the server
1213     latest_tarball="mage-latest.tar.bz2"
1214    
1215     for mirr in ${MIRRORS}
1216     do
1217     # path without distribution
1218     mymirr="${mirr%/*}"
1219    
1220     echo -ne "${COLBLUE} --- ${COLDEFAULT}"
1221     echo "fetching latest tarball from ${mymirr} ..."
1222    
1223     wget \
1224     --passive-ftp \
1225     --tries 3 \
1226     --continue \
1227     --progress bar \
1228     --directory-prefix=${temp} \
1229     ${mymirr}/rsync/tarballs/${latest_tarball}
1230     if [[ $? = 0 ]]
1231     then
1232     break
1233     else
1234     continue
1235     fi
1236     done
1237    
1238     if [[ -f ${temp}/${latest_tarball} ]]
1239     then
1240     if [[ -d ${MAGEDIR} ]]
1241     then
1242     echo -ne "${COLBLUE} --- ${COLDEFAULT}"
1243     echo "cleaning old mage-tree ${MAGEDIR}..."
1244     rm -rf ${MAGEDIR}
1245     fi
1246    
1247     echo -ne "${COLBLUE} --- ${COLDEFAULT}"
1248     echo "updating mage-tree from tarball ..."
1249     # unpack in dirname of MAGEDIR, as the tarball has already the mage
1250     tar xjmf ${temp}/${latest_tarball} -C ${MAGEDIR%/*} || die "Unpacking tarball"
1251    
1252     if [[ -d ${temp} ]]
1253     then
1254     echo -ne "${COLBLUE} --- ${COLDEFAULT}"
1255     echo "clenaing temp-files ..."
1256     rm -rf ${temp}
1257     fi
1258     else
1259     die "Could not fetch the latest tarball ... aborting"
1260     fi
1261    }
1262    
1263  cleanpkg()  cleanpkg()
1264  {  {
1265   if [ -d "${PKGDIR}" ]   if [ -d "${PKGDIR}" ]
# Line 1315  get_highest_magefile() Line 1372  get_highest_magefile()
1372   local PNAME="$2"   local PNAME="$2"
1373   local magefile   local magefile
1374    
1375   for magefile in $(ls --format=single-column -v ${MAGEDIR}/${PCAT}/${PNAME}/*)   # do not list the content of a directory, only the name (-d)
1376     for magefile in $(ls --format=single-column -v -d ${MAGEDIR}/${PCAT}/${PNAME}/*)
1377   do   do
1378     [[ -z ${magefile} ]] && continue
1379   # we exclude subdirs (for stuff like a md5sum dir)   # we exclude subdirs (for stuff like a md5sum dir)
1380   [ -d ${magefile} ] && continue   [[ -d ${magefile} ]] && continue
1381   if check_stable_package ${magefile}   if check_stable_package ${magefile}
1382   then   then
1383   HIGHEST_MAGEFILE=${magefile}   HIGHEST_MAGEFILE=${magefile}
# Line 1375  is_config_protected() Line 1434  is_config_protected()
1434   EXPFILE="${MROOT}$1"   EXPFILE="${MROOT}$1"
1435    
1436   # file does not exist; it can be written   # file does not exist; it can be written
1437   [ ! -e ${EXPFILE} ] && return 0   [[ ! -e ${EXPFILE} ]] && return 0
1438    
1439   # to be safe; it may be '§'   # to be safe; it may be '§'
1440   IFS=' '   IFS=' '
# Line 1385  is_config_protected() Line 1444  is_config_protected()
1444   do   do
1445   # ersetzen von $i nur wenn am anfang der variable   # ersetzen von $i nur wenn am anfang der variable
1446   TEST="${EXPFILE/#${MROOT}${i}/Protected}"   TEST="${EXPFILE/#${MROOT}${i}/Protected}"
1447   if [ "${TEST}" != "${EXPFILE}" ]   if [[ ${TEST} != ${EXPFILE} ]]
1448   then   then
1449   # setzen das es protected ist   # setzen das es protected ist
1450   PROTECTED=TRUE   PROTECTED=TRUE
# Line 1394  is_config_protected() Line 1453  is_config_protected()
1453   for x in ${CONFIG_PROTECT_MASK}   for x in ${CONFIG_PROTECT_MASK}
1454   do   do
1455   TEST="${EXPFILE/#${MROOT}${x}/Protect_Masked}"   TEST="${EXPFILE/#${MROOT}${x}/Protect_Masked}"
1456   if [ "${TEST}" != "${EXPFILE}" ]   if [[ ${TEST} != ${EXPFILE} ]]
1457   then   then
1458   PROTECTED=MASKED   PROTECTED=MASKED
1459   fi   fi
# Line 1430  is_config_protected() Line 1489  is_config_protected()
1489  ###################################################  ###################################################
1490  count_protected_files()  count_protected_files()
1491  {  {
1492   ${MLIBDIR}/writeprotected "$1"   local file="$1"
1493     local dirname="${file%/*}"
1494     local filename="${file##*/}"
1495     local count
1496     local output
1497     local i
1498    
1499     declare -i count=0
1500    
1501     # check if there are already protected files
1502     for oldpretected in $(find ${dirname} -iname "._cfg????_${filename}" |
1503     sed -e "s:\(^.*/\)\(._cfg*_\)\(/.*$\):\1\2\3\%\2\%\3:" |
1504     sort -t'%' -k3 -k2 | cut -f1 -d'%')
1505     do
1506     count=$(echo ${oldpretected} | cut -d_ -f2 | sed -e "s:cfg::")
1507     done
1508     (( count ++ ))
1509    
1510     # fill output up with zeros
1511     for (( i=${#count}; i < 4; i++ )); do output="${output}0"; done
1512     output="${output}${count}"
1513    
1514     echo "${output}"
1515  }  }
1516    
1517  # call with  # call with
# Line 2155  mage_install() Line 2236  mage_install()
2236   echo B:${pbuild}   echo B:${pbuild}
2237   fi   fi
2238    
2239   smage2file=${SMAGESCRIPTSDIR}/${pname}/${pname}-${pver}-${pbuild}.smage2   if [[ -z ${MAGE_TARGETS} ]]
2240     then
2241     smage2file=${SMAGESCRIPTSDIR}/${pname}/${pname}-${pver}-${pbuild}.smage2
2242     else
2243     smage2file=${SMAGESCRIPTSDIR}/${pname/${MAGE_TARGETS}/}/${pname/${MAGE_TARGETS}/}-${pver}-${pbuild}.smage2
2244     fi
2245   if [ -f "${smage2file}" ]   if [ -f "${smage2file}" ]
2246   then   then
2247   echo -e " ${COLBLUE}***${COLDEFAULT} building package from source ... "   echo -e " ${COLBLUE}***${COLDEFAULT} building package from source ... "
# Line 2431  mage_uninstall() Line 2517  mage_uninstall()
2517   echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}"   echo -ne "${COLBLUE}${pcat}/${COLDEFAULT}"
2518   echo -e "${COLRED}${pname}-${pver}-${pbuild}${COLDEFAULT}"   echo -e "${COLRED}${pname}-${pver}-${pbuild}${COLDEFAULT}"
2519    
2520   magefile="${INSTALLDB}/${pcat}/${pname}-${pver}-${pbuild}/${pname}-${pver}-${pbuild}.mage"   magefile="${MROOT}${INSTALLDB}/${pcat}/${pname}-${pver}-${pbuild}/${pname}-${pver}-${pbuild}.mage"
2521   source ${magefile}   source ${magefile}
2522    
2523   ## preremove scripts   ## preremove scripts
# Line 2530  pkgsearch() Line 2616  pkgsearch()
2616   local ipver   local ipver
2617   local ipbuild   local ipbuild
2618   local latest_available   local latest_available
2619     local depsfull
2620     local sdepsfull
2621     local deps
2622     local sdeps
2623     local dep
2624     local sign
2625    
2626   # only names no versions   # only names no versions
2627   result="$(find ${MAGEDIR} -mindepth 2 -maxdepth 2 -type d -name '*'${string}'*'| sed '/profiles/d' | sed '/includes/d')"   result="$(find ${MAGEDIR} -mindepth 2 -maxdepth 2 -type d -name '*'${string}'*'| sed '/profiles/d' | sed '/includes/d')"
# Line 2585  pkgsearch() Line 2677  pkgsearch()
2677   latest_available="${COLRED}masked for this distribution.${COLDEFAULT}"   latest_available="${COLRED}masked for this distribution.${COLDEFAULT}"
2678   fi   fi
2679    
2680     depsfull="$(get_value_from_magefile DEPEND ${magefile})"
2681     sdepsfull="$(get_value_from_magefile SDEPEND ${magefile})"
2682    
2683     while read sign dep
2684     do
2685     case ${dep} in
2686     "") continue;;
2687     esac
2688    
2689     deps="${deps} $(basename ${dep%-*})"
2690     done << EOF
2691    ${depsfull}
2692    EOF
2693    
2694     while read sign dep
2695     do
2696     case ${dep} in
2697     "") continue;;
2698     esac
2699    
2700     sdeps="${sdeps} $(basename ${dep%-*})"
2701     done << EOF
2702    ${sdepsfull}
2703    EOF
2704    
2705   echo -e "${state}${pcat}/${pname}"${COLDEFAULT}   echo -e "${state}${pcat}/${pname}"${COLDEFAULT}
2706   echo -e "      Latest available:   ${latest_available}"   echo -e "      Latest available:   ${latest_available}"
2707   echo "      Installed versions: ${all_installed}"   echo "      Installed versions: ${all_installed}"
2708   echo "      Description: ${description}"   echo "      Description: ${description}"
2709   echo "      Homepage: ${homepage}"   echo "      Homepage: ${homepage}"
2710     echo "      Depends: ${deps}"
2711     echo "      SDepends: ${sdeps}"
2712   echo   echo
2713    
2714   unset pcat   unset pcat
# Line 2603  pkgsearch() Line 2722  pkgsearch()
2722   unset all_installed   unset all_installed
2723   unset ipver   unset ipver
2724   unset ipbuild   unset ipbuild
2725     unset depsfull
2726     unset sdepsfull
2727     unset deps
2728     unset sdeps
2729     unset dep
2730     unset sign
2731   done   done
2732  }  }
2733    
# Line 2645  blacklisted() Line 2770  blacklisted()
2770   [[ ${USE_UNSTABLE} = true ]] && local MAGE_DISTRIBUTION=unstable   [[ ${USE_UNSTABLE} = true ]] && local MAGE_DISTRIBUTION=unstable
2771   [[ ${USE_TESTING} = true ]] && local MAGE_DISTRIBUTION=testing   [[ ${USE_TESTING} = true ]] && local MAGE_DISTRIBUTION=testing
2772    
2773   local EXCLUDED="${MROOT}/etc/mage-profile/package.blacklist-${ARCH}-${MAGE_DISTRIBUTION}"   local EXCLUDED="/etc/mage-profile/package.blacklist-${ARCH}-${MAGE_DISTRIBUTION}"
2774    
2775   # return 0 if the list not exist; nothin is masked   # return 0 if the list not exist; nothin is masked
2776   [[ ! -f ${EXCLUDED} ]] && return 0   [[ ! -f ${EXCLUDED} ]] && return 0

Legend:
Removed from v.449  
changed lines
  Added in v.858