Making the /live to /lib/live move for the persistence code.
[live-boot-grml.git] / scripts / boot / 9990-misc-helpers.sh
index 06fef87..c080d15 100755 (executable)
@@ -99,16 +99,7 @@ is_nice_device ()
 {
        sysfs_path="${1#/sys}"
 
-       if [ -e /lib/udev/path_id ]
-       then
-               # squeeze
-               PATH_ID="/lib/udev/path_id"
-       else
-               # wheezy/sid (udev >= 174)
-               PATH_ID="/sbin/udevadm test-builtin path_id"
-       fi
-
-       if ${PATH_ID} "${sysfs_path}" | egrep -q "ID_PATH=(usb|pci-[^-]*-(ide|sas|scsi|usb|virtio)|platform-sata_mv|platform-orion-ehci|platform-mmc|platform-mxsdhci)"
+       if /sbin/udevadm test-builtin path_id "${sysfs_path}" | egrep -q "ID_PATH=(usb|pci-[^-]*-(ide|sas|scsi|usb|virtio)|platform-sata_mv|platform-orion-ehci|platform-mmc|platform-mxsdhci)"
        then
                return 0
        elif echo "${sysfs_path}" | grep -q '^/block/vd[a-z]$'
@@ -728,7 +719,7 @@ mount_persistence_media ()
        local device=${1}
        local probe=${2}
 
-       local backing="/live/persistence/$(basename ${device})"
+       local backing="${rootmnt}/lib/live/mount/persistence/$(basename ${device})"
 
        mkdir -p "${backing}"
        local old_backing="$(where_is_mounted ${device})"
@@ -940,7 +931,7 @@ find_persistence_media ()
        local white_listed_devices="${2}"
        local ret=""
 
-       local black_listed_devices="$(what_is_mounted_on /live/medium)"
+       local black_listed_devices="$(what_is_mounted_on ${rootmnt}/lib/live/medium)"
 
        for dev in $(storage_devices "${black_listed_devices}" "${white_listed_devices}")
        do
@@ -1233,7 +1224,7 @@ do_union ()
 
 get_custom_mounts ()
 {
-       # Side-effect: leaves $devices with persistence.conf mounted in /live/persistence
+       # Side-effect: leaves $devices with persistence.conf mounted in ${rootmnt}/lib/live/mount/persistence
        # Side-effect: prints info to file $custom_mounts
 
        local custom_mounts=${1}
@@ -1258,15 +1249,20 @@ get_custom_mounts ()
                        continue
                fi
 
-               local include_list="${backing}/${persistence_list}"
-               if [ ! -r "${include_list}" ]
+               local include_list
+               if [ -r "${backing}/${persistence_list}" ]
                then
+                       include_list="${backing}/${persistence_list}"
+               elif [ -r "${backing}/${old_persistence_list}" ]
+               then
+                       include_list="${backing}/${old_persistence_list}"
+               else
                        continue
                fi
 
                if [ -n "${DEBUG}" ] && [ -e "${include_list}" ]
                then
-                       cp ${include_list} /live/persistence/${persistence_list}.${device_name}
+                       cp ${include_list} ${rootmnt}/lib/live/mount/persistence/${persistence_list}.${device_name}
                fi
 
                while read dir options # < ${include_list}
@@ -1277,9 +1273,9 @@ get_custom_mounts ()
                                continue
                        fi
 
-                       if trim_path ${dir} | grep -q -e "^[^/]" -e "^/live\(/.*\)\?$" -e "^/\(.*/\)\?\.\.\?\(/.*\)\?$"
+                       if trim_path ${dir} | grep -q -e "^[^/]" -e "^/lib" -e "^/lib/live\(/.*\)\?$" -e "^/\(.*/\)\?\.\.\?\(/.*\)\?$"
                        then
-                               log_warning_msg "Skipping unsafe custom mount ${dir}: must be an absolute path containing neither the \".\" nor \"..\" special dirs, and cannot be \"/live\" or any sub-directory therein."
+                               log_warning_msg "Skipping unsafe custom mount ${dir}: must be an absolute path containing neither the \".\" nor \"..\" special dirs, and cannot be \"/lib\", or \"/lib/live\" or any of its sub-directories."
                                continue
                        fi
 
@@ -1446,7 +1442,7 @@ activate_custom_mounts ()
                local rootfs_dest_backing=""
                if [ -n "${opt_link}"]
                then
-                       for d in /live/rootfs/*
+                       for d in ${rootmnt}/lib/live/mount/rootfs/*
                        do
                                if [ -n "${rootmnt}" ]
                                then
@@ -1468,8 +1464,8 @@ activate_custom_mounts ()
                        link_files ${source} ${dest} ${rootmnt}
                elif [ -n "${opt_link}" ] && [ -n "${PERSISTENCE_READONLY}" ]
                then
-                       mkdir -p /live/persistence
-                       local links_source=$(mktemp -d /live/persistence/links-source-XXXXXX)
+                       mkdir -p ${rootmnt}/lib/live/mount/persistence
+                       local links_source=$(mktemp -d ${rootmnt}/lib/live/mount/persistence/links-source-XXXXXX)
                        chown_ref ${source} ${links_source}
                        chmod_ref ${source} ${links_source}
                        # We put the cow dir in the below strange place to
@@ -1477,7 +1473,7 @@ activate_custom_mounts ()
                        # has its own directory and isn't nested with some
                        # other custom mount (if so that mount's files would
                        # be linked, causing breakage.
-                       local cow_dir="/live/overlay/live/persistence/$(basename ${links_source})"
+                       local cow_dir="${rootmnt}/lib/live/mount/overlay/lib/live/mount/persistence/$(basename ${links_source})"
                        mkdir -p ${cow_dir}
                        chown_ref "${source}" "${cow_dir}"
                        chmod_ref "${source}" "${cow_dir}"
@@ -1494,14 +1490,7 @@ activate_custom_mounts ()
                        # bind-mount and union mount are handled the same
                        # in read-only mode, but note that rootfs_dest_backing
                        # is non-empty (and necessary) only for unions
-                       if [ -n "${rootmnt}" ]
-                       then
-                               local cow_dir="$(echo ${dest} | sed -e "s|^${rootmnt}|/live/overlay/|")"
-                       else
-                               # This is happens if persistence is activated
-                               # post boot
-                               local cow_dir="/live/overlay/${dest}"
-                       fi
+                       local cow_dir="${rootmnt}/lib/live/mount/overlay/${dest}"
                        if [ -e "${cow_dir}" ] && [ -z "${opt_link}" ]
                        then
                                # If an earlier custom mount has files here
@@ -1527,31 +1516,6 @@ activate_custom_mounts ()
        echo ${used_devices}
 }
 
-fix_backwards_compatibility ()
-{
-       local device=${1}
-       local dir=${2}
-       local opt=${3}
-
-       if [ -n "${PERSISTENCE_READONLY}" ]
-       then
-               return
-       fi
-
-       local backing="$(mount_persistence_media ${device})"
-       if [ -z "${backing}" ]
-       then
-               return
-       fi
-
-       local include_list="${backing}/${persistence_list}"
-       if [ ! -r "${include_list}" ]
-       then
-               echo "# persistence backwards compatibility:
-${dir} ${opt},source=." > "${include_list}"
-       fi
-}
-
 is_mountpoint ()
 {
        directory="$1"