Changeset 6653818


Ignore:
Timestamp:
11/25/13 11:27:39 (12 months ago)
Author:
Kris Moore <kris@…>
Branches:
master, releng/10.0, releng/10.0.1, releng/10.0.2, releng/10.0.3, releng/10.1
Children:
d5eaa4d
Parents:
ecb2411
Message:

Start the updating of pc-sysinstall for better PKGNG support

Now when we install, we expect the local media to have either a full repo,
with the various packagesite.txz dists.txz and repo.txz files.

Location:
src-sh/pc-sysinstall/backend
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src-sh/pc-sysinstall/backend/functions-installpackages.sh

    r893388a5 r6653818  
    3131. ${BACKEND}/functions-parse.sh 
    3232 
    33 # Recursively determine all dependencies for this package 
    34 determine_package_dependencies() 
    35 { 
    36   local PKGNAME="${1}" 
    37   local DEPFILE="${2}" 
    38  
    39   grep -q "${PKGNAME}" "${DEPFILE}" 
    40   if [ $? -ne 0 ] 
    41   then 
    42     echo "${PKGNAME}" >> "${DEPFILE}" 
    43     get_package_dependencies "${PKGNAME}" "1" 
    44  
    45     local DEPS="${VAL}" 
    46     for d in ${DEPS} 
    47     do 
    48       determine_package_dependencies "${d}" "${DEPFILE}" 
    49     done 
    50   fi 
    51 }; 
    52  
    53 # Fetch packages dependencies from a file 
    54 fetch_package_dependencies() 
    55 { 
    56   local DEPFILE 
    57   local DEPS 
    58   local SAVEDIR 
    59  
    60   DEPFILE="${1}" 
    61   DEPS=`cat "${DEPFILE}"` 
    62   SAVEDIR="${2}" 
    63  
    64   for d in ${DEPS} 
    65   do 
    66     get_package_short_name "${d}" 
    67     SNAME="${VAL}" 
    68  
    69     get_package_category "${SNAME}" 
    70     CATEGORY="${VAL}" 
    71  
    72     fetch_package "${CATEGORY}" "${d}" "${SAVEDIR}" 
    73   done 
    74 }; 
    75  
    7633# Check for any packages specified, and begin loading them 
    7734install_packages() 
     
    9855  rc_halt "cd ${PKGDLDIR}" 
    9956 
    100   # Set the location of the INDEXFILE 
    101   INDEXFILE="${TMPDIR}/INDEX" 
    102  
    103   if [ ! -f "${INDEXFILE}" ]; then 
    104     get_package_index 
    105   fi 
    106  
    107   if [ ! -f "${TMPDIR}/INDEX.parsed" -a "$INSTALLMEDIUM" = "ftp" ]; then 
    108     parse_package_index 
    109   fi 
    110  
    111   # What extension are we using for pkgs? 
    112   PKGEXT="txz" 
    113   get_value_from_cfg pkgExt 
    114   if [ -n "${VAL}" ]; then  
    115      strip_white_space ${VAL} 
    116      PKGEXT="$VAL" 
    117   fi 
    118   export PKGEXT 
    119    
    12057  # We dont want to be bothered with scripts asking questions 
    12158  PACKAGE_BUILDING=yes 
    12259  export PACKAGE_BUILDING 
     60 
     61  # Install PKGNG into the chroot 
     62  bootstrap_pkgng 
    12363 
    12464  # Lets start by cleaning up the string and getting it ready to parse 
     
    12868  for i in $PACKAGES 
    12969  do 
    130     if ! get_package_name "${i}" 
    131     then 
    132       echo_log "Unable to locate package ${i}" 
    133       continue 
    134     fi 
    135  
    136     PKGNAME="${VAL}" 
    137  
    138     # Fetch package + deps, but skip if installing from local media 
    139     if [ "${INSTALLMEDIUM}" = "ftp" ] ; then 
    140       DEPFILE="${FSMNT}/${PKGTMPDIR}/.${PKGNAME}.deps" 
    141       rc_nohalt "touch ${DEPFILE}" 
    142       determine_package_dependencies "${PKGNAME}" "${DEPFILE}" 
    143       fetch_package_dependencies "${DEPFILE}" "${FSMNT}/${PKGTMPDIR}" 
    144     fi 
    145  
    146     # Set package location 
    147     case "${INSTALLMEDIUM}" in 
    148       usb|dvd|local) PKGPTH="${PKGTMPDIR}/All/${PKGNAME}" ;; 
    149                   *) PKGPTH="${PKGTMPDIR}/${PKGNAME}" ;; 
    150     esac 
     70    PKGNAME="${i}" 
    15171 
    15272    # See if we need to determine the package format we are working with 
    153     if [ -z "${PKGINFO}" ] ; then 
    154       tar tqf "${FSMNT}${PKGPTH}" '+MANIFEST' >/dev/null 2>/dev/null     
    155       if [ $? -ne 0 ] ; then 
    156         PKGADD="pkg_add -C ${FSMNT}"  
    157         PKGINFO="pkg_info"  
    158       else 
    159         PKGADD="pkg -c ${FSMNT} add" 
    160         PKGINFO="pkg info" 
    161         bootstrap_pkgng 
    162       fi 
    163     fi 
     73    PKGADD="pkg -C /mnt/pkg.conf install -y ${PKGNAME}" 
     74    PKGINFO="pkg info" 
    16475 
    16576    # If the package is not already installed, install it! 
     
    16778    then 
    16879      echo_log "Installing package: ${PKGNAME}" 
    169       ${PKGADD} ${PKGPTH} | tee -a ${LOGOUT} 
     80      run_chroot_cmd "$PKGADD" | tee -a ${LOGOUT} 
     81      run_chroot_cmd "rm -rf /usr/local/tmp/All" 
    17082    fi 
    171  
    172     if [ "${INSTALLMEDIUM}" = "ftp" ] ; then 
    173       rc_nohalt "rm ${DEPFILE}" 
    174     fi 
    175  
    17683  done 
    17784 
     
    18087  # Cleanup after ourselves 
    18188  echo_log "Cleaning up: ${FSMNT}${PKGTMPDIR}" 
    182   sleep 10  
     89  sleep 1 
    18390  rc_halt "cd ${HERE}" 
    184   if [ "${INSTALLMEDIUM}" = "ftp" ] ; then 
    185     rc_halt "rm -rf ${FSMNT}${PKGTMPDIR}" >/dev/null 2>/dev/null 
    186   else 
    187     rc_halt "umount ${FSMNT}${PKGTMPDIR}" >/dev/null 2>/dev/null 
     91  if [ "${INSTALLMEDIUM}" != "ftp" ] ; then 
     92    rc_halt "umount ${FSMNT}/mnt" >/dev/null 2>/dev/null 
    18893    rc_halt "rmdir ${FSMNT}${PKGTMPDIR}" >/dev/null 2>/dev/null 
    18994  fi 
  • src-sh/pc-sysinstall/backend/functions-packages.sh

    r8245770 r6653818  
    3232. ${BACKEND}/functions-ftp.sh 
    3333 
    34  
    35 get_package_index_by_ftp() 
    36 { 
    37   local INDEX_FILE 
    38   local FTP_SERVER 
    39  
    40   FTP_SERVER="${1}" 
    41   INDEX_FILE="INDEX" 
    42   USE_BZIP2=0 
    43  
    44   if [ -f "/usr/bin/bzip2" ] 
    45   then 
    46     INDEX_FILE="${INDEX_FILE}.bz2" 
    47     USE_BZIP2=1 
    48     INDEX_PATH="${INDEXFILE}.bz2" 
    49   else 
    50     INDEX_PATH="${INDEXFILE}" 
    51   fi 
    52  
    53   fetch_file "${FTP_SERVER}/${INDEX_FILE}" "${INDEX_PATH}" "1" 
    54   if [ -f "${INDEX_PATH}" ] && [ "${USE_BZIP2}" -eq "1" ] 
    55   then 
    56     bzip2 -d "${INDEX_PATH}" 
    57   fi 
    58 }; 
    59  
    60 get_package_index_by_fs() 
    61 { 
    62   if [ "$INSTALLMEDIUM" = "local" ] ; then 
    63     INDEXFILE="${LOCALPATH}/packages/INDEX" 
    64   else 
    65     INDEXFILE="${CDMNT}/packages/INDEX" 
    66   fi 
    67 }; 
    68  
    69 get_package_index_size() 
    70 { 
    71   if [ -f "${INDEXFILE}" ] 
    72   then 
    73     SIZE=`ls -l ${INDEXFILE} | awk '{ print $5 }'` 
    74   else 
    75     get_ftp_mirror 
    76     FTPHOST="${VAL}" 
    77  
    78     FTPDIR="/pub/FreeBSD/releases/${FBSD_ARCH}/${FBSD_BRANCH}" 
    79     FTPPATH="ftp://${FTPHOST}${FTPDIR}/packages" 
    80  
    81     fetch -s "${FTPPATH}/INDEX.bz2" 
    82   fi 
    83 }; 
    84  
    85 get_package_index() 
    86 { 
    87   RES=0 
    88  
    89   if [ -z "${INSTALLMODE}" ] 
    90   then 
    91     get_ftp_mirror 
    92     FTPHOST="${VAL}" 
    93  
    94     FTPDIR="/pub/FreeBSD/releases/${FBSD_ARCH}/${FBSD_BRANCH}" 
    95     FTPPATH="ftp://${FTPHOST}${FTPDIR}/packages" 
    96  
    97     get_package_index_by_ftp "${FTPPATH}" 
    98  
    99   else 
    100  
    101     case "${INSTALLMEDIUM}" in 
    102     usb|dvd|local) get_package_index_by_fs ;; 
    103               ftp) get_value_from_cfg ftpHost 
    104                    if [ -z "$VAL" ]; then 
    105                      exit_err "ERROR: Install medium was set to ftp, but no ftpHost was provided!"  
    106                    fi 
    107                    FTPHOST="${VAL}" 
    108  
    109                    get_value_from_cfg ftpDir 
    110                    if [ -z "$VAL" ]; then 
    111                      exit_err "ERROR: Install medium was set to ftp, but no ftpDir was provided!"  
    112                    fi 
    113                    FTPDIR="${VAL}" 
    114                    FTPPATH="ftp://${FTPHOST}${FTPDIR}" 
    115                    get_package_index_by_ftp "${FTPPATH}" ;; 
    116              sftp) ;; 
    117                 *) RES=1 ;; 
    118     esac 
    119  
    120   fi 
    121  
    122   return ${RES} 
    123 }; 
    124  
    125 parse_package_index() 
    126 { 
    127   echo_log "Building package dep list.. Please wait.." 
    128   INDEX_FILE="${PKGDIR}/INDEX" 
    129  
    130   exec 3<&0 
    131   exec 0<"${INDEXFILE}" 
    132  
    133   while read -r line 
    134   do 
    135     PKGNAME="" 
    136     CATEGORY="" 
    137     PACKAGE="" 
    138     DESC="" 
    139     DEPS="" 
    140     i=0 
    141  
    142     SAVE_IFS="${IFS}" 
    143     IFS="|" 
    144  
    145     for part in ${line} 
    146     do 
    147       if [ ${i} -eq 0 ] 
    148       then 
    149         PKGNAME="${part}" 
    150  
    151       elif [ ${i} -eq 1 ] 
    152       then 
    153         PACKAGE=`basename "${part}"` 
    154  
    155       elif [ ${i} -eq 3 ] 
    156       then 
    157         DESC="${part}" 
    158  
    159       elif [ ${i} -eq 6 ] 
    160       then 
    161         CATEGORY=`echo "${part}" | cut -f1 -d' '` 
    162  
    163       elif [ ${i} -eq 8 ] 
    164       then 
    165         DEPS="${part}" 
    166       fi 
    167  
    168       i=$((i+1)) 
    169     done 
    170  
    171     echo "${CATEGORY}|${PACKAGE}|${DESC}" >> "${INDEX_FILE}.parsed" 
    172     echo "${PACKAGE}|${PKGNAME}|${DEPS}" >> "${INDEX_FILE}.deps" 
    173  
    174     IFS="${SAVE_IFS}" 
    175   done 
    176  
    177   exec 0<&3 
    178 }; 
    179  
    180 show_package_file() 
    181 { 
    182   PKGFILE="${1}" 
    183  
    184   echo "Available Packages:" 
    185  
    186   exec 3<&0 
    187   exec 0<"${PKGFILE}" 
    188  
    189   while read -r line 
    190   do 
    191     CATEGORY=`echo "${line}" | cut -f1 -d'|'` 
    192     PACKAGE=`echo "${line}" | cut -f2 -d'|'` 
    193     DESC=`echo "${line}" | cut -f3 -d'|'` 
    194  
    195     echo "${CATEGORY}/${PACKAGE}:${DESC}" 
    196   done 
    197  
    198   exec 0<&3 
    199 }; 
    200  
    201 show_packages_by_category() 
    202 { 
    203   CATEGORY="${1}" 
    204   INDEX_FILE="${PKGDIR}/INDEX.parsed" 
    205   TMPFILE="/tmp/.pkg.cat" 
    206  
    207   grep "^${CATEGORY}|" "${INDEX_FILE}" > "${TMPFILE}" 
    208   show_package_file "${TMPFILE}" 
    209   rm "${TMPFILE}" 
    210 }; 
    211  
    212 show_package_by_name() 
    213 { 
    214   CATEGORY="${1}" 
    215   PACKAGE="${2}" 
    216   INDEX_FILE="${PKGDIR}/INDEX.parsed" 
    217   TMPFILE="/tmp/.pkg.cat.pak" 
    218  
    219   grep "^${CATEGORY}|${PACKAGE}" "${INDEX_FILE}" > "${TMPFILE}" 
    220   show_package_file "${TMPFILE}" 
    221   rm "${TMPFILE}" 
    222 }; 
    223  
    224 show_packages() 
    225 { 
    226   show_package_file "${PKGDIR}/INDEX.parsed" 
    227 }; 
    228  
    229 get_package_dependencies() 
    230 { 
    231   PACKAGE="${1}" 
    232   LONG="${2:-0}" 
    233   RES=0 
    234  
    235   INDEX_FILE="${PKGDIR}/INDEX.deps" 
    236   REGEX="^${PACKAGE}|" 
    237  
    238   if [ ${LONG} -ne 0 ] 
    239   then 
    240     REGEX="^.*|${PACKAGE}|" 
    241   fi 
    242  
    243   LINE=`grep "${REGEX}" "${INDEX_FILE}" 2>/dev/null` 
    244   DEPS=`echo "${LINE}"|cut -f3 -d'|'` 
    245  
    246   export VAL="${DEPS}" 
    247  
    248   if [ -z "${VAL}" ] 
    249   then 
    250     RES=1 
    251   fi 
    252  
    253   return ${RES} 
    254 }; 
    255  
    256 get_package_name() 
    257 { 
    258   PACKAGE="${1}" 
    259   RES=0 
    260   local PKGPTH 
    261  
    262   # If we are on a local medium, we can parse the Latest/ directory 
    263   if [ "${INSTALLMEDIUM}" != "ftp" ] ; then 
    264     case "${INSTALLMEDIUM}" in 
    265       usb|dvd) PKGPTH="${CDMNT}/packages" ;;  
    266         *) PKGPTH="${LOCALPATH}/packages" ;; 
    267     esac 
    268      
    269     # Check the /Latest dir for generic names, then look for specific version in All/ 
    270     if [ -e "${PKGPTH}/Latest/${PACKAGE}.${PKGEXT}" ] ; then 
    271        NAME=`ls -al ${PKGPTH}/Latest/${PACKAGE}.${PKGEXT} 2>/dev/null | cut -d '>' -f 2 | rev | cut -f1 -d'/' | rev | tr -s ' '` 
    272     else 
    273        NAME=`ls -al ${PKGPTH}/All/${PACKAGE}.${PKGEXT} 2>/dev/null | cut -d '>' -f 2 | rev | cut -f1 -d'/' | rev | tr -s ' '` 
    274     fi 
    275     export VAL="${NAME}" 
    276   else 
    277     # Doing remote fetch, we we will look up, but some generic names like 
    278     # "perl" wont work, since we don't know the default version 
    279     INDEX_FILE="${PKGDIR}/INDEX.deps" 
    280     REGEX="^${PACKAGE}|" 
    281          
    282     LINE=`grep "${REGEX}" "${INDEX_FILE}" 2>/dev/null` 
    283     NAME=`echo "${LINE}"|cut -f2 -d'|'` 
    284  
    285     export VAL="${NAME}" 
    286   fi 
    287  
    288   if [ -z "${VAL}" ] 
    289   then 
    290     RES=1 
    291   fi 
    292   return ${RES} 
    293 }; 
    294  
    295 get_package_short_name() 
    296 { 
    297   PACKAGE="${1}" 
    298   RES=0 
    299  
    300   INDEX_FILE="${PKGDIR}/INDEX.deps" 
    301   REGEX="^.*|${PACKAGE}|" 
    302          
    303   LINE=`grep "${REGEX}" "${INDEX_FILE}" 2>/dev/null` 
    304   NAME=`echo "${LINE}"|cut -f1 -d'|'` 
    305  
    306   export VAL="${NAME}" 
    307  
    308   if [ -z "${VAL}" ] 
    309   then 
    310     RES=1 
    311   fi 
    312  
    313   return ${RES} 
    314 }; 
    315  
    316 get_package_category() 
    317 { 
    318   PACKAGE="${1}" 
    319   INDEX_FILE="${PKGDIR}/INDEX.parsed" 
    320   RES=0 
    321  
    322   LINE=`grep "|${PACKAGE}|" "${INDEX_FILE}" 2>/dev/null` 
    323   NAME=`echo "${LINE}"|cut -f1 -d'|'` 
    324  
    325   export VAL="${NAME}" 
    326  
    327   if [ -z "${VAL}" ] 
    328   then 
    329     RES=1 
    330   fi 
    331  
    332   return ${RES} 
    333 }; 
    334  
    335 fetch_package_by_ftp() 
    336 { 
    337   CATEGORY="${1}" 
    338   PACKAGE="${2}" 
    339   SAVEDIR="${3}" 
    340  
    341   get_value_from_cfg ftpHost 
    342   if [ -z "$VAL" ] 
    343   then 
    344     exit_err "ERROR: Install medium was set to ftp, but no ftpHost was provided!"  
    345   fi 
    346   FTPHOST="${VAL}" 
    347  
    348   get_value_from_cfg ftpDir 
    349   if [ -z "$VAL" ] 
    350   then 
    351     exit_err "ERROR: Install medium was set to ftp, but no ftpDir was provided!"  
    352   fi 
    353   FTPDIR="${VAL}" 
    354  
    355   PACKAGE="${PACKAGE}.${PKGEXT}" 
    356   FTP_SERVER="ftp://${FTPHOST}${FTPDIR}" 
    357  
    358   if [ ! -f "${SAVEDIR}/${PACKAGE}" ] 
    359   then 
    360     PKGPATH="${CATEGORY}/${PACKAGE}" 
    361     FTP_PATH="${FTP_HOST}/packages/${PKGPATH}" 
    362     fetch_file "${FTP_PATH}" "${SAVEDIR}/" "0" 
    363   fi 
    364 }; 
    365  
    366 fetch_package() 
    367 { 
    368   CATEGORY="${1}" 
    369   PACKAGE="${2}" 
    370   SAVEDIR="${3}" 
    371  
    372   # Fetch package, but skip if installing from local media 
    373   case "${INSTALLMEDIUM}" in 
    374   usb|dvd|local) return ;; 
    375     ftp) fetch_package_by_ftp "${CATEGORY}" "${PACKAGE}" "${SAVEDIR}" ;; 
    376     sftp) ;; 
    377   esac 
    378 }; 
    379  
    38034bootstrap_pkgng() 
    38135{ 
     
    38943  # Ok, lets boot-strap this sucker 
    39044  echo_log "Bootstraping pkgng.." 
    391   fetch_package "Latest" "pkg" "${PKGDLDIR}" 
    39245 
    39346  # Figure out real location of "pkg" package 
    39447  case "${INSTALLMEDIUM}" in 
    395     usb|dvd|local) PKGPTH="${PKGTMPDIR}/Latest/pkg.${PKGEXT}" ;; 
    396           *) PKGPTH="${PKGTMPDIR}/pkg.${PKGEXT}" ;; 
     48    usb|dvd|local) rc_halt "cd ${LOCALPATH}/packages" 
     49                   PKGPTH="/mnt/`ls All/pkg-[0-9]*.txz`"  
     50                   ;; 
     51          *) PKGPTH="pkg" ;; 
    39752  esac 
    39853  rc_halt "pkg -c ${FSMNT} add ${PKGPTH}" 
     
    40257{ 
    40358  case "${INSTALLMEDIUM}" in 
    404   usb|dvd) rc_halt "mount_nullfs ${CDMNT}/packages ${FSMNT}${PKGTMPDIR}" 
    405            PKGDLDIR="${FSMNT}${PKGTMPDIR}/All" ;; 
    406     local) rc_halt "mount_nullfs ${LOCALPATH}/packages ${FSMNT}${PKGTMPDIR}" 
    407            PKGDLDIR="${FSMNT}${PKGTMPDIR}/All" ;; 
     59  usb|dvd) rc_halt "mount_nullfs ${CDMNT}/packages ${FSMNT}/mnt" 
     60           PKGDLDIR="${FSMNT}/mnt" ;; 
     61    local) rc_halt "mount_nullfs ${LOCALPATH}/packages ${FSMNT}/mnt" 
     62           PKGDLDIR="${FSMNT}/mnt" ;; 
    40863        *) PKGDLDIR="${FSMNT}${PKGTMPDIR}" ;; 
    40964  esac 
  • src-sh/pc-sysinstall/backend/functions-unmount.sh

    rdfe938d r6653818  
    172172  cd / 
    173173 
    174   # if we did a fresh install, start unmounting 
    175   if [ "${INSTALLMODE}" = "fresh" ] 
    176   then 
    177  
    178     # Lets read our partition list, and unmount each 
    179     ################################################################## 
    180     if [ -d "${PARTDIR}" ] 
    181     then 
    182     for PART in `ls ${PARTDIR}` 
    183     do 
    184       PARTDEV=`echo $PART | sed 's|-|/|g'`  
    185       PARTFS="`cat ${PARTDIR}/${PART} | cut -d '#' -f 1`" 
    186       PARTMNT="`cat ${PARTDIR}/${PART} | cut -d '#' -f 2`" 
    187       PARTENC="`cat ${PARTDIR}/${PART} | cut -d '#' -f 3`" 
    188  
    189       if [ "${PARTFS}" = "SWAP" ] 
    190       then 
    191         if [ "${PARTENC}" = "ON" ] 
    192         then 
    193           swapoff ${PARTDEV}.eli >/dev/null 2>/dev/null 
    194         else 
    195           swapoff ${PARTDEV} >/dev/null 2>/dev/null 
    196         fi 
    197       fi 
    198  
    199       # Check if we've found "/" again, don't need to mount it twice 
    200       if [ "$PARTMNT" != "/" -a "${PARTMNT}" != "none" -a "${PARTFS}" != "ZFS" ] 
    201       then 
    202         umount -f ${PARTDEV} >/dev/null 2>/dev/null 
    203         umount -f ${FSMNT}${PARTMNT} >/dev/null 2>/dev/null 
    204       fi 
    205     done 
    206  
    207     # Last lets the /mnt partition 
    208     ######################################################### 
    209     umount -f ${FSMNT} >/dev/null 2>/dev/null 
    210  
    211    fi 
    212   else 
    213     # We are doing a upgrade, try unmounting any of these filesystems 
    214     chroot ${FSMNT} /sbin/umount -a >/dev/null 2>/dev/null 
    215     umount -f ${FSMNT}/usr >/dev/null 2>/dev/null 
    216     umount -f ${FSMNT}/dev >/dev/null 2>/dev/null 
    217     umount -f ${FSMNT} >/dev/null 2>/dev/null  
    218     sh ${TMPDIR}/.upgrade-unmount >/dev/null 2>/dev/null 
    219   fi 
    220     
    221   # Unmount our CDMNT 
    222   umount ${CDMNT} >/dev/null 2>/dev/null 
     174  # Start by unmounting any ZFS partitions 
     175  zfs_cleanup_unmount 
     176 
     177  # Lets read our partition list, and unmount each 
     178  ################################################################## 
     179  for PART in `ls ${PARTDIR}` 
     180  do 
     181    PARTDEV=`echo $PART | sed 's|-|/|g'`     
     182    PARTFS="`cat ${PARTDIR}/${PART} | cut -d '#' -f 1`" 
     183    PARTMNT="`cat ${PARTDIR}/${PART} | cut -d '#' -f 2`" 
     184    PARTENC="`cat ${PARTDIR}/${PART} | cut -d '#' -f 3`" 
     185    PARTLABEL="`cat ${PARTDIR}/${PART} | cut -d '#' -f 4`" 
     186 
     187    if [ "${PARTENC}" = "ON" ] 
     188    then 
     189      EXT=".eli" 
     190    else 
     191      EXT="" 
     192    fi 
     193 
     194    if [ "${PARTFS}" = "SWAP" ] 
     195    then 
     196      rc_nohalt "swapoff ${PARTDEV}${EXT}" 
     197    fi 
     198 
     199    # Check if we've found "/", and unmount that last 
     200    if [ "$PARTMNT" != "/" -a "${PARTMNT}" != "none" -a "${PARTFS}" != "ZFS" ] 
     201    then 
     202      echo_log "Unmounting: ${PARTDEV}${EXT}" 
     203      rc_halt "umount -f ${PARTDEV}${EXT}" 
     204    fi 
     205  done 
     206 
     207  # Last lets the /mnt partition 
     208  ######################################################### 
     209  echo_log "Unmounting: ${FSMNT}" 
     210  rc_nohalt "umount -f ${FSMNT}" 
     211 
     212  # Check if we need to unmount a media 
     213  case $INSTALLMEDIUM in 
     214     dvd|usb) echo_log "Unmounting DVD/USB media: ${CDMNT}" 
     215              sleep 5 
     216              rc_nohalt "umount -f ${CDMNT}" >/dev/null 2>/dev/null 
     217              ;; 
     218           *) ;; 
     219  esac 
    223220 
    224221}; 
Note: See TracChangeset for help on using the changeset viewer.