Magellan Linux

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

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

revision 1087 by niro, Mon Jun 28 18:46:57 2010 UTC revision 1211 by niro, Fri Jan 28 21:39:01 2011 UTC
# Line 339  install_blockdevices() Line 339  install_blockdevices()
339   local pkgname="$1"   local pkgname="$1"
340   local pathto   local pathto
341   local posix   local posix
342     local user
343     local group
344   local IFS   local IFS
345    
346   # sanity checks; abort if not given   # sanity checks; abort if not given
# Line 352  install_blockdevices() Line 354  install_blockdevices()
354   # sets fieldseperator to "§" instead of " "   # sets fieldseperator to "§" instead of " "
355   IFS=§   IFS=§
356    
357   while read pathto posix   while read pathto posix user group
358   do   do
359   [ -z "${pathto}" ] && continue   [ -z "${pathto}" ] && continue
360   [[ ${VERBOSE} = on ]] && echo -e "\t>>> PIPE: ${MROOT}${pathto}"   [[ ${VERBOSE} = on ]] && echo -e "\t>>> PIPE: ${MROOT}${pathto}"
361    
362   mkfifo -m "${posix}" "${MROOT}$pathto"   mkfifo -m "${posix}" "${MROOT}${pathto}"
363     # make it optional atm !!
364     if [[ ! -z ${user} ]] && [[ ! -z ${group} ]]
365     then
366     chown "${user}:${group}" "${MROOT}${pathto}"
367     fi
368   done < ${BUILDDIR}/${pkgname}/.pipes   done < ${BUILDDIR}/${pkgname}/.pipes
369    
370   # very important: unsetting the '§' fieldseperator   # very important: unsetting the '§' fieldseperator
# Line 376  install_characterdevices() Line 383  install_characterdevices()
383   local posix   local posix
384   local major   local major
385   local minor   local minor
386     local user
387     local group
388   local IFS   local IFS
389    
390   # sanity checks; abort if not given   # sanity checks; abort if not given
# Line 389  install_characterdevices() Line 398  install_characterdevices()
398   # sets fieldseperator to "§" instead of " "   # sets fieldseperator to "§" instead of " "
399   IFS=§   IFS=§
400    
401   while read pathto posix major minor   while read pathto posix major minor user group
402   do   do
403   [ -z "${pathto}" ] && continue   [ -z "${pathto}" ] && continue
404   [[ ${VERBOSE} = on ]] && echo -e "\t>>> CHAR: ${MROOT}${pathto}"   [[ ${VERBOSE} = on ]] && echo -e "\t>>> CHAR: ${MROOT}${pathto}"
405    
406   mknod -m ${posix} "${MROOT}${pathto}" c ${major} ${minor}   mknod -m ${posix} "${MROOT}${pathto}" c ${major} ${minor}
407    
408     # make it optional atm !!
409     if [[ ! -z ${user} ]] && [[ ! -z ${group} ]]
410     then
411     chown "${user}:${group}" "${MROOT}${pathto}"
412     fi
413   done < ${BUILDDIR}/${pkgname}/.char   done < ${BUILDDIR}/${pkgname}/.char
414    
415   # very important: unsetting the '§' fieldseperator   # very important: unsetting the '§' fieldseperator
416   IFS=$'\n'   IFS=$'\n'
417  }  }
418    
419    ###################################################
420    # function install_fifos                          #
421    # install_fifos $PKGNAME                    #
422    ###################################################
423    install_fifos()
424    {
425     local pkgname="$1"
426     local pathto
427     local posix
428     local user
429     local group
430     local IFS
431    
432     # sanity checks; abort if not given
433     [ -z "${pkgname}" ] && die "install_fifos() \$pkgname not given."
434    
435     # check needed global vars
436     [ -z "${BUILDDIR}" ] && die "install_fifos() \$BUILDDIR not set."
437    
438     # make it optional atm !!
439     #[ ! -f ${BUILDDIR}/${pkgname}/.fifo ] && die "install_fifos() .fifo not found"
440     [ ! -f ${BUILDDIR}/${pkgname}/.fifo ] && return
441    
442     # sets fieldseperator to "§" instead of " "
443     IFS=§
444    
445     while read pathto posix user group
446     do
447     [ -z "${pathto}" ] && continue
448     [[ ${VERBOSE} = on ]] && echo -e "\t>>> FIFO: ${MROOT}${pathto}"
449    
450     mkfifo -m "${posix}" "${MROOT}${pathto}"
451     chown "${user}:${group}" "${MROOT}${pathto}"
452     done < ${BUILDDIR}/${pkgname}/.fifo
453    
454     # very important: unsetting the '§' fieldseperator
455     IFS=$'\n'
456    }
457    
458    
459  ###################################################  ###################################################
460  # function build_doinstall                        #  # function build_doinstall                        #
461  # build_doinstall $PKGNAME                  #  # build_doinstall $PKGNAME                  #
462  # NOTE: this is an wrapper do install packages    #  # NOTE: this is an wrapper to install packages    #
463  ###################################################  ###################################################
464  build_doinstall()  build_doinstall()
465  {  {
# Line 428  build_doinstall() Line 482  build_doinstall()
482   install_symlinks ${pkgname} || die "install symlinks ${pkgname}"   install_symlinks ${pkgname} || die "install symlinks ${pkgname}"
483   install_blockdevices ${pkgname} || die "install blockdevices ${pkgname}"   install_blockdevices ${pkgname} || die "install blockdevices ${pkgname}"
484   install_characterdevices ${pkgname} || die "install chardevices ${pkgname}"   install_characterdevices ${pkgname} || die "install chardevices ${pkgname}"
485     install_fifos ${pkgname} || die "install fifos ${pkgname}"
486  }  }
487    
488    
# Line 489  install_database_entry() Line 544  install_database_entry()
544    
545   # create fake file descriptors   # create fake file descriptors
546   # used by virtual and source packages   # used by virtual and source packages
547   for i in .dirs .symlinks .files .pipes .char   for i in .dirs .symlinks .files .pipes .char .fifo
548   do   do
549   touch ${dbrecorddir}/${i}   touch ${dbrecorddir}/${i}
550   done   done
# Line 507  install_database_entry() Line 562  install_database_entry()
562    
563   # normal packages needs these files   # normal packages needs these files
564   local i   local i
565   for i in .char .dirs .files .pipes .symlinks   for i in .char .dirs .files .pipes .symlinks .fifo
566   do   do
567   install -m 0644 ${BUILDDIR}/${pkgname}/${i} \   install -m 0644 ${BUILDDIR}/${pkgname}/${i} \
568   ${dbrecorddir}/${i}   ${dbrecorddir}/${i}
# Line 785  remove_files() Line 840  remove_files()
840   done   done
841    
842   # sanity checks; abort if not given   # sanity checks; abort if not given
843   [ -z "${pcat}" ] && die "remove_symlinks() \$pcat not given."   [ -z "${pcat}" ] && die "remove_files() \$pcat not given."
844   [ -z "${pname}" ] && die "remove_symlinks() \$pname not given."   [ -z "${pname}" ] && die "remove_files() \$pname not given."
845   [ -z "${pver}" ] && die "remove_symlinks() \$pver not given."   [ -z "${pver}" ] && die "remove_files() \$pver not given."
846   [ -z "${pbuild}" ] && die "remove_symlinks() \$pbuild not given."   [ -z "${pbuild}" ] && die "remove_files() \$pbuild not given."
847   pfull="${pcat}/${pname}-${pver}-${pbuild}"   pfull="${pcat}/${pname}-${pver}-${pbuild}"
848    
849   # check needed global vars   # check needed global vars
# Line 879  remove_blockdevices() Line 934  remove_blockdevices()
934  {  {
935   local pathto   local pathto
936   local posix   local posix
937     local user
938     local group
939   local IFS   local IFS
940   local pcat   local pcat
941   local pname   local pname
# Line 902  remove_blockdevices() Line 959  remove_blockdevices()
959   done   done
960    
961   # sanity checks; abort if not given   # sanity checks; abort if not given
962   [ -z "${pcat}" ] && die "remove_symlinks() \$pcat not given."   [ -z "${pcat}" ] && die "remove_blockdevices() \$pcat not given."
963   [ -z "${pname}" ] && die "remove_symlinks() \$pname not given."   [ -z "${pname}" ] && die "remove_blockdevices() \$pname not given."
964   [ -z "${pver}" ] && die "remove_symlinks() \$pver not given."   [ -z "${pver}" ] && die "remove_blockdevices() \$pver not given."
965   [ -z "${pbuild}" ] && die "remove_symlinks() \$pbuild not given."   [ -z "${pbuild}" ] && die "remove_blockdevices() \$pbuild not given."
966   pfull="${pcat}/${pname}-${pver}-${pbuild}"   pfull="${pcat}/${pname}-${pver}-${pbuild}"
967    
968   # check needed global vars   # check needed global vars
# Line 916  remove_blockdevices() Line 973  remove_blockdevices()
973   # sets fieldseperator to "§" instead of " "   # sets fieldseperator to "§" instead of " "
974   IFS=§   IFS=§
975    
976   while read pathto posix   while read pathto posix user group
977   do   do
978   [ -z "${pathto}" ] && continue   [ -z "${pathto}" ] && continue
979    
# Line 937  remove_characterdevices() Line 994  remove_characterdevices()
994  {  {
995   local pathto   local pathto
996   local posix   local posix
997     local user
998     local group
999   local IFS   local IFS
1000   local pcat   local pcat
1001   local pname   local pname
# Line 960  remove_characterdevices() Line 1019  remove_characterdevices()
1019   done   done
1020    
1021   # sanity checks; abort if not given   # sanity checks; abort if not given
1022   [ -z "${pcat}" ] && die "remove_symlinks() \$pcat not given."   [ -z "${pcat}" ] && die "remove_characterdevices() \$pcat not given."
1023   [ -z "${pname}" ] && die "remove_symlinks() \$pname not given."   [ -z "${pname}" ] && die "remove_characterdevices() \$pname not given."
1024   [ -z "${pver}" ] && die "remove_symlinks() \$pver not given."   [ -z "${pver}" ] && die "remove_characterdevices() \$pver not given."
1025   [ -z "${pbuild}" ] && die "remove_symlinks() \$pbuild not given."   [ -z "${pbuild}" ] && die "remove_characterdevices() \$pbuild not given."
1026   pfull="${pcat}/${pname}-${pver}-${pbuild}"   pfull="${pcat}/${pname}-${pver}-${pbuild}"
1027    
1028   # check needed global vars   # check needed global vars
# Line 974  remove_characterdevices() Line 1033  remove_characterdevices()
1033   # sets fieldseperator to "§" instead of " "   # sets fieldseperator to "§" instead of " "
1034   IFS=§   IFS=§
1035    
1036   while read pathto posix   while read pathto posix user group
1037   do   do
1038   [ -z "${pathto}" ] && continue   [ -z "${pathto}" ] && continue
1039    
# Line 988  remove_characterdevices() Line 1047  remove_characterdevices()
1047    
1048    
1049  ###################################################  ###################################################
1050    # function remove_fifos                           #
1051    # remove_fifos $PKGNAME                     #
1052    ###################################################
1053    remove_fifos()
1054    {
1055     local pathto
1056     local posix
1057     local user
1058     local group
1059     local IFS
1060     local pcat
1061     local pname
1062     local pver
1063     local pbuild
1064     local i
1065     local pfull
1066    
1067     IFS=$'\n'
1068    
1069     # very basic getops
1070     for i in $*
1071     do
1072     case $1 in
1073     --pcat|-c) shift; pcat="$1" ;;
1074     --pname|-n) shift; pname="$1" ;;
1075     --pver|-v) shift; pver="$1" ;;
1076     --pbuild|-b) shift; pbuild="$1" ;;
1077     esac
1078     shift
1079     done
1080    
1081     # sanity checks; abort if not given
1082     [ -z "${pcat}" ] && die "remove_fifos() \$pcat not given."
1083     [ -z "${pname}" ] && die "remove_fifos() \$pname not given."
1084     [ -z "${pver}" ] && die "remove_fifos() \$pver not given."
1085     [ -z "${pbuild}" ] && die "remove_fifos() \$pbuild not given."
1086     pfull="${pcat}/${pname}-${pver}-${pbuild}"
1087    
1088     # check needed global vars
1089     [ -z "${BUILDDIR}" ] && die "remove_fifos() \$BUILDDIR not set."
1090    
1091     # make it optional atm !!
1092     #[ ! -f ${MROOT}${INSTALLDB}/${pfull}/.fifo ] && die "remove_fifos() .fifo not found"
1093     [ ! -f ${MROOT}${INSTALLDB}/${pfull}/.fifo ] && return
1094    
1095     # sets fieldseperator to "§" instead of " "
1096     IFS=§
1097    
1098     while read pathto posix user group
1099     do
1100     [ -z "${pathto}" ] && continue
1101    
1102     [[ ${VERBOSE} = on ]] && echo -e "\t<<< FIFO: ${MROOT}${pathto}"
1103     rm "${MROOT}${pathto}"
1104     done < ${MROOT}${INSTALLDB}/${pfull}/.fifo
1105    
1106     # very important: unsetting the '§' fieldseperator
1107     IFS=$'\n'
1108    }
1109    
1110    
1111    ###################################################
1112  # function remove_direcories                      #  # function remove_direcories                      #
1113  # remove_direcories $PKGNAME                #  # remove_direcories $PKGNAME                #
1114  ###################################################  ###################################################
# Line 1018  remove_directories() Line 1139  remove_directories()
1139   done   done
1140    
1141   # sanity checks; abort if not given   # sanity checks; abort if not given
1142   [ -z "${pcat}" ] && die "remove_symlinks() \$pcat not given."   [ -z "${pcat}" ] && die "remove_directories() \$pcat not given."
1143   [ -z "${pname}" ] && die "remove_symlinks() \$pname not given."   [ -z "${pname}" ] && die "remove_directories() \$pname not given."
1144   [ -z "${pver}" ] && die "remove_symlinks() \$pver not given."   [ -z "${pver}" ] && die "remove_directories() \$pver not given."
1145   [ -z "${pbuild}" ] && die "remove_symlinks() \$pbuild not given."   [ -z "${pbuild}" ] && die "remove_directories() \$pbuild not given."
1146   pfull="${pcat}/${pname}-${pver}-${pbuild}"   pfull="${pcat}/${pname}-${pver}-${pbuild}"
1147    
1148   # check needed global vars   # check needed global vars
# Line 1075  remove_directories() Line 1196  remove_directories()
1196  ###################################################  ###################################################
1197  # function build_douninstall                      #  # function build_douninstall                      #
1198  # build_douninstall $PKGNAME                #  # build_douninstall $PKGNAME                #
1199  # NOTE: this is an wrapper do remove packages     #  # NOTE: this is an wrapper to remove packages     #
1200  ###################################################  ###################################################
1201  build_douninstall()  build_douninstall()
1202  {  {
# Line 1109  build_douninstall() Line 1230  build_douninstall()
1230   # !! we use § as field seperator !!   # !! we use § as field seperator !!
1231   # doing so prevent us to get errors by filenames with spaces   # doing so prevent us to get errors by filenames with spaces
1232    
1233   for i in symlinks files blockdevices characterdevices directories   for i in symlinks files blockdevices characterdevices directories fifos
1234   do   do
1235   remove_${i} \   remove_${i} \
1236   --pcat "${pcat}" \   --pcat "${pcat}" \
# Line 1745  virtuals_add() Line 1866  virtuals_add()
1866    
1867  #deletes pakages from virtual database  #deletes pakages from virtual database
1868  #$1 virtualname; $2 pkgname  #$1 virtualname; $2 pkgname
1869  virtuals_del() {  virtuals_del()
1870    {
1871    
1872   local virtualname="$1"   local virtualname="$1"
1873   local pkgname="$2"   local pkgname="$2"
# Line 2683  mage_uninstall() Line 2805  mage_uninstall()
2805   unset -f postremove   unset -f postremove
2806  }  }
2807    
2808  show_etc_update_mesg() {  show_etc_update_mesg()
2809    {
2810   [ ${MAGE_PROTECT_COUNTER} -eq 0 ] && return 0   [ ${MAGE_PROTECT_COUNTER} -eq 0 ] && return 0
2811    
2812   echo   echo

Legend:
Removed from v.1087  
changed lines
  Added in v.1211