From: Michael Prokop Date: Tue, 28 Jun 2016 08:42:17 +0000 (+0200) Subject: Merge remote-tracking branch 'upstream/master' X-Git-Tag: debian/1%20160511+grml.1~8 X-Git-Url: http://git.grml.org/?a=commitdiff_plain;h=refs%2Fheads%2Fmika%2Fdebian;hp=b98d289f42df126760c84957f69e5fdc7807d159;p=live-boot-grml.git Merge remote-tracking branch 'upstream/master' git://anonscm.debian.org/debian-live/live-boot.git Conflicts: backend/initramfs-tools/live.hook components/0020-read-only components/9990-aaa-fixme.sh components/9990-cmdline-old debian/changelog --- diff --git a/Makefile b/Makefile index 082bf1e..7be7e68 100644 --- a/Makefile +++ b/Makefile @@ -59,8 +59,8 @@ install: cp frontend/* $(DESTDIR)/bin # Installing docs - mkdir -p $(DESTDIR)/usr/share/doc/live-boot - cp -r COPYING $(DESTDIR)/usr/share/doc/live-boot + mkdir -p $(DESTDIR)/usr/share/doc/live-boot-grml + cp -r COPYING $(DESTDIR)/usr/share/doc/live-boot-grml # Installing manpages for MANPAGE in manpages/en/*; \ @@ -94,7 +94,7 @@ uninstall: rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr > /dev/null 2>&1 || true # Uninstalling docs - rm -rf $(DESTDIR)/usr/share/doc/live-boot + rm -rf $(DESTDIR)/usr/share/doc/live-boot-grml rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share/doc > /dev/null 2>&1 || true rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr/share > /dev/null 2>&1 || true rmdir --ignore-fail-on-non-empty $(DESTDIR)/usr > /dev/null 2>&1 || true diff --git a/backend/initramfs-tools/live.hook b/backend/initramfs-tools/live.hook index 8337a64..ab843a7 100755 --- a/backend/initramfs-tools/live.hook +++ b/backend/initramfs-tools/live.hook @@ -16,6 +16,12 @@ do fi done +# Grml version information: +if [ -r /etc/grml_version ] +then + cp /etc/grml_version "${DESTDIR}"/etc +fi + # Checking live-boot if [ ! -e /bin/live-boot ] then @@ -233,4 +239,11 @@ done #mkdir -p "${DESTDIR}/etc" #cp -p /etc/nsswitch.conf "${DESTDIR}/etc" +# vlan support +if [ -x /sbin/vconfig ] +then + copy_exec /sbin/vconfig + manual_add_modules 8021q +fi + [ "${QUIET}" ] || echo . diff --git a/components/9990-cmdline-old b/components/9990-cmdline-old index 1549bb4..f04c0ff 100755 --- a/components/9990-cmdline-old +++ b/components/9990-cmdline-old @@ -23,6 +23,12 @@ Cmdline_old () export DNSSERVERS unset DNS ;; + + bootid=*) + BOOTID="${_PARAMETER#bootid=}" + export BOOTID + ;; + dhcp) # Force dhcp even while netbooting # Use for debugging in case somebody works on fixing dhclient @@ -33,12 +39,13 @@ Cmdline_old () nodhcp) DHCP="" export DHCP + NODHCP="Yes" + export NODHCP ;; ethdevice=*) - DEVICE="${_PARAMETER#ethdevice=}" - ETHDEVICE="${DEVICE}" - export DEVICE ETHDEVICE + ETHDEVICE="${_PARAMETER#ethdevice=}" + export ETHDEVICE ;; ethdevice-timeout=*) @@ -84,19 +91,20 @@ Cmdline_old () export FROMISO ;; + ignore_bootid) + IGNORE_BOOTID="Yes" + export IGNORE_BOOTID + ;; + ignore_uuid) IGNORE_UUID="true" export IGNORE_UUID ;; ip=*) - STATICIP="${_PARAMETER#ip=}" - - if [ -z "${STATICIP}" ] - then - STATICIP="frommedia" - fi - + # copy complete ip=args into staticip, and + # keep multiple uses. + STATICIP="${STATICIP} ${_PARAMETER}" export STATICIP ;; @@ -145,6 +153,11 @@ Cmdline_old () export NFS_COW ;; + nodhcphostname) + NODHCPHOSTNAME="Yes" + export NODHCPHOSTNAME + ;; + nofstab) NOFSTAB="true" export NOFSTAB @@ -246,6 +259,11 @@ Cmdline_old () UNIONTYPE="${_PARAMETER#union=}" export UNIONTYPE ;; + + vlan=*) + VLANS="${VLANS} ${_PARAMETER#vlan=}" + export VLANS + ;; esac done diff --git a/components/9990-grml-networking.sh b/components/9990-grml-networking.sh new file mode 100644 index 0000000..394d011 --- /dev/null +++ b/components/9990-grml-networking.sh @@ -0,0 +1,149 @@ +#!/bin/sh + +#set -e + +Grml_Networking () { + +if [ -n "${NONETWORKING}" ]; then + return 0 +fi + +modprobe af_packet # req'd for DHCP + +# initialize udev +# (this /might/ be required for firmware loading to complete) +if grep -q noudev /proc/cmdline; then + log_begin_msg "Networking: Skipping udev as requested via bootoption noudev." +else + udevadm trigger + udevadm settle +fi + +if [ -n "${IP}" ]; then + # call into initramfs-tools provided network setup functions, so basic + # networking is fine. + log_begin_msg "Networking: Waiting for basic network to come up..." + configure_networking +fi + +# prepare a new /etc/network/interfaces file (and, possibly, a new /etc/resolv.conf) +IFFILE="/root/etc/network/interfaces" +if [ -L /root/etc/resolv.conf ] ; then + # assume we have resolvconf + RESOLVCONF=/root/etc/resolvconf/resolv.conf.d/base +else + RESOLVCONF="/root/etc/resolv.conf" +fi + +# config for loopback networking +cat > $IFFILE << EOF +# Initially generated on boot by initramfs' 23networking. + +auto lo +iface lo inet loopback + +EOF + +unset HOSTNAME + +# generate config for each present network device +for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan*; do + [ -e ${interface} ] || continue + interface=$(basename ${interface}) + method="dhcp" + + # NODHCP or a previously run ipconfig mean that ifupdown should never + # touch this interface (IP-stack wise). + netconfig=/run/net-${interface}.conf + if [ -n "$NODHCP" ] || [ -e "${netconfig}" ]; then + method="manual" + fi + + # if boot option "nodhcp" is set but also boot option "dhcp" is + # set, then dhcp should win over it as we default to dhcp and if + # nodhcp is used as default boot option but "dhcp" is added then it + # would be confusing to not get a working network setup + if [ "$DHCP" = "true" ] ; then + method="dhcp" + fi + + if [ -n "$VLANS" ] ; then + modprobe 8021q + + # vlan=: + for line in $(echo $VLANS | sed 's/ /\n'/) ; do + vlandev=${line#*:} + vlanid=${line%:*} + + if [ -n "$vlandev" ] && [ -n "$vlanid" ] ; then + case "$vlandev" in + "$interface") + vlan_raw_dev=$interface + interface="${vlandev}.${vlanid}" + ;; + esac + fi + done + fi + + if [ -n "$vlan_raw_dev" ] ; then + cat >> $IFFILE << EOF +auto ${interface} +iface ${interface} inet ${method} + vlan-raw-device $vlan_raw_dev +EOF + else + cat >> $IFFILE << EOF +allow-hotplug ${interface} +iface ${interface} inet ${method} +EOF + fi + + unset vlandev vlanid vlan_raw_dev # unset variables to have clean state for next device + + # DNS for resolvconf and /etc/resolv.conf + if [ -e "${netconfig}" ]; then + . "${netconfig}" + if [ -n "${DNSDOMAIN}" ]; then + echo " dns-search ${DNSDOMAIN}" >> $IFFILE + fi + # make sure we don't have any 0.0.0.0 nameservers + IPV4DNSLIST="" + for IPV4DNS in ${IPV4DNS0} ${IPV4DNS1}; do + [ -n "${IPV4DNS}" ] || continue + [ "${IPV4DNS}" != "0.0.0.0" ] || continue + IPV4DNSLIST="${IPV4DNSLIST}${IPV4DNS} " + done + if [ -n "${IPV4DNSLIST}" ]; then + echo " dns-nameservers ${IPV4DNSLIST}" >> $IFFILE + for IPV4DNS in ${IPV4DNSLIST}; do + echo "nameserver ${IPV4DNS}" >> $RESOLVCONF + done + fi + fi + + if [ -z "$NODHCPHOSTNAME" -a -n "$HOSTNAME" ]; then + echo $HOSTNAME > /root/etc/hostname + fi + + unset DEVICE IPV4ADDR IPV4BROADCAST IPV4NETMASK IPV4GATEWAY IPV4DNS0 IPV4DNS1 HOSTNAME DNSDOMAIN NISDOMAIN ROOTSERVER ROOTPATH filename + unset IPV4DNS IPV4DNSLIST + + echo>> $IFFILE +done + +# dns bootoption +if [ -n "$DNSSERVERS" ] +then + # disable any existing entries + if [ -r $RESOLVCONF ] + then + sed -i 's/nameserver/# nameserver/' $RESOLVCONF + fi + for i in $DNSSERVERS + do + echo "nameserver $i" >> $RESOLVCONF + done +fi + +} diff --git a/components/9990-initramfs-tools.sh b/components/9990-initramfs-tools.sh index eb11d23..cdb00db 100755 --- a/components/9990-initramfs-tools.sh +++ b/components/9990-initramfs-tools.sh @@ -2,6 +2,17 @@ #set -e +# we definitely want this stuff visible +log_failure_msg() +{ + printf "Failure: $@\n" +} + +log_warning_msg() +{ + printf "Warning: $@\n" +} + log_wait_msg () { # Print a message and wait for enter @@ -52,14 +63,20 @@ panic() printf "\n\n" printf " \033[1;37mBOOT FAILED!\033[0m\n" printf "\n" - printf " This Live System image failed to boot.\n\n" + printf " This image failed to boot.\n\n" + + printf " Please file a bug at your distributors bug tracking system, making\n" + printf " sure to note the exact version, name and distribution of the image\n" + printf " you were attempting to boot.\n\n" - printf " Please file a bug against the 'live-boot' package or email the Live Systems\n" - printf " mailing list at , making sure to note the\n" - printf " exact version, name and distribution of the image you were attempting to boot.\n\n" + if [ -r /etc/grml_version ] + then + GRML_VERSION="$(cat /etc/grml_version)" + printf " $GRML_VERSION\n\n" + fi printf " The file ${LIVELOG} contains some debugging information but booting with the\n" - printf " ${DEBUG} command-line parameter will greatly increase its verbosity which is\n" + printf " ${DEBUG}=1 command-line parameter will greatly increase its verbosity which is\n" printf " extremely useful when diagnosing issues.\n\n" if [ -n "${panic}" ]; then diff --git a/components/9990-main.sh b/components/9990-main.sh index e5884f9..0c0bd68 100755 --- a/components/9990-main.sh +++ b/components/9990-main.sh @@ -193,6 +193,8 @@ Live () Swap + Grml_Networking + exec 1>&6 6>&- exec 2>&7 7>&- kill ${tailpid} diff --git a/components/9990-misc-helpers.sh b/components/9990-misc-helpers.sh index 1a06ccf..f3e4d72 100755 --- a/components/9990-misc-helpers.sh +++ b/components/9990-misc-helpers.sh @@ -15,6 +15,42 @@ is_live_path() return 1 } +grml_match_bootid() +{ + path="$1" + + if [ -n "$IGNORE_BOOTID" ] ; then + echo " * Ignoring verification of bootid.txt as requested via ignore_bootid.">>/boot.log + return 0 + fi + + if [ -n "$BOOTID" ] && ! [ -r "${path}/conf/bootid.txt" ] ; then + echo " * Warning: bootid=... specified but no bootid.txt found on currently requested device.">>/boot.log + return 1 + fi + + [ -r "${path}/conf/bootid.txt" ] || return 0 + + bootid_conf=$(cat "${path}/conf/bootid.txt") + + if [ -z "$BOOTID" -a -z "$IGNORE_BOOTID" ] + then + echo " * Warning: bootid.txt found but ignore_bootid / bootid=.. bootoption missing...">>/boot.log + return 1 + fi + + if [ "$BOOTID" = "$bootid_conf" ] + then + echo " * Successfully verified /conf/bootid.txt from ISO, continuing... ">>/boot.log + else + echo " * Warning: BOOTID of ISO does not match. Retrying and continuing search...">>/boot.log + return 1 + fi + + return 0 +} + + matches_uuid () { if [ "${IGNORE_UUID}" ] || [ ! -e /conf/uuid.conf ] @@ -214,7 +250,7 @@ check_dev () fi if is_live_path ${mountpoint} && \ - ([ "${skip_uuid_check}" ] || matches_uuid ${mountpoint}) + ([ "${skip_uuid_check}" ] || grml_match_bootid ${mountpoint}) then echo ${mountpoint} return 0 @@ -310,19 +346,6 @@ find_livefs () return 0 fi done - elif [ "${fstype}" = "squashfs" -o \ - "${fstype}" = "btrfs" -o \ - "${fstype}" = "ext2" -o \ - "${fstype}" = "ext3" -o \ - "${fstype}" = "ext4" -o \ - "${fstype}" = "jffs2" ] - then - # This is an ugly hack situation, the block device has - # an image directly on it. It's hopefully - # live-boot, so take it and run with it. - ln -s "${devname}" "${devname}.${fstype}" - echo "${devname}.${fstype}" - return 0 fi done diff --git a/components/9990-netbase.sh b/components/9990-netbase.sh index 70f97b8..df8d080 100755 --- a/components/9990-netbase.sh +++ b/components/9990-netbase.sh @@ -49,7 +49,6 @@ EOF ifaddress="$(echo ${ifline} | cut -f2 -d ':')" ifnetmask="$(echo ${ifline} | cut -f3 -d ':')" ifgateway="$(echo ${ifline} | cut -f4 -d ':')" - nameserver="$(echo ${ifline} | cut -f5 -d ':')" cat >> "${IFFILE}" << EOF allow-hotplug ${ifname} @@ -67,17 +66,6 @@ cat >> "${IFFILE}" << EOF EOF fi - - if [ -n "${nameserver}" ] - then - if [ -e "${DNSFILE}" ] - then - grep -v ^nameserver "${DNSFILE}" > "${DNSFILE}.tmp" - mv "${DNSFILE}.tmp" "${DNSFILE}" - fi - - echo "nameserver ${nameserver}" >> "${DNSFILE}" - fi done else if [ -z "${NETBOOT}" ] || [ -n "${DHCP}" ] diff --git a/components/9990-networking.sh b/components/9990-networking.sh index 9613364..d5ed0fe 100755 --- a/components/9990-networking.sh +++ b/components/9990-networking.sh @@ -44,7 +44,7 @@ Device_from_bootif () if [ "$bootif_mac" = "$current_mac" ] then - DEVICE=${device##*/} + ETHDEVICE="${device##*/},$ETHDEVICE" # use ethdevice break fi fi @@ -52,6 +52,24 @@ Device_from_bootif () fi } +get_ipconfig_para() +{ + if [ $# != 1 ] ; then + echo "Missin parameter for $0" + return + fi + devname=$1 + for ip in ${STATICIP} ; do + case $ip in + *:$devname:*) + echo $ip + return + ;; + esac + done + echo $devname +} + do_netsetup () { modprobe -q af_packet # For DHCP @@ -62,8 +80,20 @@ do_netsetup () [ -n "$ETHDEV_TIMEOUT" ] || ETHDEV_TIMEOUT=15 echo "Using timeout of $ETHDEV_TIMEOUT seconds for network configuration." - if [ -z "${NETBOOT}" ] && [ -z "${FETCH}" ] && [ -z "${HTTPFS}" ] && [ -z "${FTPFS}" ] - then + # Our modus operandi for getting a working network setup is this: + # * If ip=* is set, pass that to ipconfig and be done + # * Else, try dhcp on all devices in this order: + # ethdevice= bootif= + + ALLDEVICES="$(cd /sys/class/net/ && ls -1 2>/dev/null | grep -v '^lo$' )" + + # Turn on all interfaces before doing anything, to avoid timing problems + # during link negotiation. + echo "Net: Turning on all device links..." + for device in ${ALLDEVICES}; do + ipconfig -c none -d $device -t 1 2>/dev/null >/dev/null + done + # See if we can select the device from BOOTIF Device_from_bootif @@ -73,14 +103,7 @@ do_netsetup () if [ -z "$ETHDEVICE" ] then echo "If you want to boot from a specific device use bootoption ethdevice=..." - for device in /sys/class/net/* - do - dev=${device##*/} - if [ "$dev" != "lo" ] - then - ETHDEVICE="$ETHDEVICE $dev" - fi - done + ETHDEVICE="$ALLDEVICES" fi # split args of ethdevice=eth0,eth1 into "eth0 eth1" @@ -89,42 +112,29 @@ do_netsetup () devlist="$devlist $device" done - # this is tricky (and ugly) because ipconfig sometimes just hangs/runs into - # an endless loop; if execution fails give it two further tries, that's - # why we use '$devlist $devlist $devlist' for the other for loop - for dev in $devlist $devlist $devlist - do - echo "Executing ipconfig -t $ETHDEV_TIMEOUT $dev" - ipconfig -t "$ETHDEV_TIMEOUT" $dev | tee -a /netboot.config & - jobid=$! - sleep "$ETHDEV_TIMEOUT" ; sleep 1 - if [ -r /proc/"$jobid"/status ] - then - echo "Killing job $jobid for device $dev as ipconfig ran into recursion..." - kill -9 $jobid + for dev in $devlist ; do + param="$(get_ipconfig_para $dev)" + if [ -n "$NODHCP" ] && [ "$param" = "$dev" ] ; then + echo "Ignoring network device $dev due to nodhcp." | tee -a /boot.log + continue fi + echo "Executing ipconfig -t $ETHDEV_TIMEOUT $param" + ipconfig -t "$ETHDEV_TIMEOUT" "$param" | tee -a /netboot.config # if configuration of device worked we should have an assigned # IP address, if so let's use the device as $DEVICE for later usage. # simple and primitive approach which seems to work fine - if ifconfig $dev | grep -q 'inet.*addr:' - then - export DEVICE="$dev" - break - fi - done - else - for interface in ${DEVICE}; do - ipconfig -t "$ETHDEV_TIMEOUT" ${interface} | tee /netboot-${interface}.config - - [ -e /run/net-${interface}.conf ] && . /run/net-${interface}.conf - if [ "$IPV4ADDR" != "0.0.0.0" ] - then - break + IPV4ADDR="0.0.0.0" + if [ -e "/run/net-${device}.conf" ]; then + . /run/net-${device}.conf + fi + if [ "${IPV4ADDR}" != "0.0.0.0" ]; then + export DEVICE="$dev $DEVICE" + # break # exit loop as we just use the irst fi done - fi + unset devlist for interface in ${DEVICE} do diff --git a/components/9990-select-eth-device.sh b/components/9990-select-eth-device.sh index c8f36b0..133d4b1 100755 --- a/components/9990-select-eth-device.sh +++ b/components/9990-select-eth-device.sh @@ -49,21 +49,32 @@ Select_eth_device () return fi - # If user force to use specific device, write it - for ARGUMENT in ${LIVE_BOOT_CMDLINE} - do - case "${ARGUMENT}" in - live-netdev=*) - NETDEV="${ARGUMENT#live-netdev=}" - echo "DEVICE=$NETDEV" >> /conf/param.conf - echo "Found live-netdev parameter, forcing to to use network device $NETDEV." - return - ;; - esac - done - else - l_interfaces="$DEVICE" - fi + # If user force to use specific device, write it + for ARGUMENT in ${LIVE_BOOT_CMDLINE} + do + case "${ARGUMENT}" in + live-netdev=*) + NETDEV="${ARGUMENT#live-netdev=}" + # net device could be specified by MAC address + hex="[0-9A-Fa-f][0-9A-Fa-f]" + case "${NETDEV}" in + ${hex}:${hex}:${hex}:${hex}:${hex}:${hex}) + # MAC address; record it and select later + netdev_mac_addr="${NETDEV}" + ;; + *) + # interface name + echo "DEVICE=$NETDEV" >> /conf/param.conf + echo "Found live-netdev parameter, forcing to to use network device $NETDEV." + return + ;; + esac + ;; + esac + done + else + l_interfaces="$DEVICE" + fi found_eth_dev="" while true @@ -79,30 +90,40 @@ Select_eth_device () echo '' - for step in 1 2 3 4 5 - do - for interface in $l_interfaces - do - carrier=$(cat /sys/class/net/$interface/carrier \ - 2>/dev/null) - # link detected + for step in 1 2 3 4 5 + do + for interface in $l_interfaces + do + if [ -z "$netdev_mac_addr" ]; then + carrier=$(cat /sys/class/net/$interface/carrier \ + 2>/dev/null) + # link detected - case "${carrier}" in - 1) - echo "Connected $interface found" - # inform initrd's init script : - found_eth_dev="$found_eth_dev $interface" - ;; - esac - done - if [ -n "$found_eth_dev" ] - then - echo "DEVICE='$found_eth_dev'" >> /conf/param.conf - return - else - # wait a bit - sleep 1 - fi - done - done + case "${carrier}" in + 1) + echo "Connected $interface found" + # inform initrd's init script : + found_eth_dev="$found_eth_dev $interface" + ;; + esac + else + # MAC addr given, check for that + mac_addr=$(ifconfig "$interface" \ + | grep HWaddr \ + | { read _ _ _ _ mac_addr; echo $mac_addr; }) + if [ "$mac_addr" = "$netdev_mac_addr" ]; then + found_eth_dev="$interface" + fi + fi + done + if [ -n "$found_eth_dev" ] + then + echo "DEVICE='$found_eth_dev'" >> /conf/param.conf + return + else + # wait a bit + sleep 1 + fi + done + done } diff --git a/debian/changelog b/debian/changelog index c0382ab..29fe1fb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,22 @@ live-boot (1:20160511) unstable; urgency=medium -- Raphaël Hertzog Wed, 11 May 2016 11:40:37 +0200 +live-boot (1:20151213+grml.1) unstable; urgency=medium + + [ Evgeni Golov ] + * Merge latest Debian changes. + * [aea94ce] add gbp.conf + * [9f0266a] fix "unexpected operator" error when stopping live-boot + * [83abdd6] Revert "restore support for old persistence media" + * [09d8468] remove debian/patches + * [0c43d97] make package native as in Debian + * [1a226f4] Revert "use auto instead of allow-hotplug in generated /e/n/interfaces" + + [ Riccardo Murri ] + * [3f6c7f2] Allow selecting boot eth dev by MAC address + + -- Evgeni Golov Thu, 07 Jan 2016 08:47:27 +0100 + live-boot (1:20151213) unstable; urgency=medium [ Iain R. Learmonth ] @@ -50,6 +66,27 @@ live-boot (5.0~a5-1) unstable; urgency=low -- Daniel Baumann Sun, 23 Aug 2015 10:55:32 +0200 +live-boot (5.0~a4-1+grml.1) unstable; urgency=medium + + [ Evgeni Golov ] + * Import 5.0~a4-1 from Debian. + * [3a7cc5f] drop stop-using-etc-fstab.d.patch, applied upstream + * [ee5831d] Drop genext2fs from Depends, live-snapshot is long gone + * [8e37c83] update 15_networking_grml.patch against live-boot 5.0 + * [600ec8b] do not run dh with quilt, we have source format 3.0 + * [26c670d] drop patches, we have everything in git now + * [5f1c62a] create a single debian patch :/ + * [214cc03] use auto instead of allow-hotplug in generated /e/n/interfaces + (Closes: issue1568) + * [6795067] backport Allow-selecting-boot-eth-dev-by-MAC-address.patch + from upstream + + [ Laurens Vanderhoven ] + * [5eb34d4] Allow +2 nameserver entries for dns= boot option + (Closes: issue1234) + + -- Evgeni Golov Tue, 18 Aug 2015 14:14:10 +0200 + live-boot (5.0~a4-1) unstable; urgency=low [ Tails developers ] @@ -131,6 +168,26 @@ live-boot (4.0.2-1) unstable; urgency=low -- Daniel Baumann Wed, 10 Dec 2014 10:36:04 +0100 +live-boot (4.0.1-1+grml.3) unstable; urgency=medium + + [ Evgeni Golov ] + * [ca03a16] update stop-using-etc-fstab.d.patch to latest upstream + version + + -- Michael Prokop Thu, 13 Nov 2014 09:56:07 +0100 + +live-boot (4.0.1-1+grml.2) unstable; urgency=medium + + * stop using /etc/fstab.d + + -- Evgeni Golov Thu, 30 Oct 2014 07:31:08 +0100 + +live-boot (4.0.1-1+grml.1) unstable; urgency=medium + + * Import 4.0.1-1 from Debian. + + -- Evgeni Golov Sun, 26 Oct 2014 11:31:59 +0100 + live-boot (4.0.1-1) unstable; urgency=low [ victory ] @@ -148,6 +205,12 @@ live-boot (4.0.1-1) unstable; urgency=low -- Daniel Baumann Sat, 25 Oct 2014 14:26:22 +0200 +live-boot (4.0.0-1+grml.1) unstable; urgency=medium + + * Import 4.0.0-1 from Debian. + + -- Evgeni Golov Thu, 28 Aug 2014 17:55:20 +0200 + live-boot (4.0.0-1) unstable; urgency=low [ Carlos Zuferri ] @@ -161,6 +224,12 @@ live-boot (4.0.0-1) unstable; urgency=low -- Daniel Baumann Wed, 27 Aug 2014 19:52:09 +0200 +live-boot (4.0~alpha21-1+grml.1) UNRELEASED; urgency=medium + + * Import 4.0~alpha21 from Debian. + + -- Evgeni Golov Thu, 10 Apr 2014 08:29:49 +0200 + live-boot (4.0~alpha21-1) unstable; urgency=low * Building with dh --parallel. @@ -179,6 +248,32 @@ live-boot (4.0~alpha20-1) unstable; urgency=low -- Daniel Baumann Mon, 31 Mar 2014 21:38:22 +0200 +live-boot (4.0~alpha19-1+grml.3) unstable; urgency=medium + + * [8acc928] try to be smarter when booting a squashfs image from + the network and using resolvconf in it. + + -- Evgeni Golov Tue, 25 Mar 2014 17:49:22 +0100 + +live-boot (4.0~alpha19-1+grml.2) unstable; urgency=medium + + * [805c218] VLAN support via boot option "vlan=:" + + -- Michael Prokop Mon, 17 Mar 2014 23:43:24 +0100 + +live-boot (4.0~alpha19-1+grml.1) unstable; urgency=medium + + * Sync Debian's 4.0~alpha19-1. + * update our patches on top of Debian's 4.0~alpha19 + Droped patches: + - 43_fix_udev_usage_in_is_nice_device.patch + - 44_fix_mdadm_usage_for_findiso.patch + * move Grml-specific patches to a separate subfolder + * move reverts/restores of old upstream behaviour to an own subdir + * consolidate Grml network related patches into 15_networking_grml.patch + + -- Evgeni Golov Sat, 08 Mar 2014 13:59:28 +0100 + live-boot (4.0~alpha19-1) experimental; urgency=low * Updating copyright notices for 2014. @@ -298,6 +393,49 @@ live-boot (4.0~a14-1) experimental; urgency=low -- Daniel Baumann Fri, 13 Sep 2013 14:17:30 +0200 +live-boot (4.0~a13-1+grml.5) unstable; urgency=medium + + * [3b54472] Add support for label "persistence" to forensic mode + + -- Michael Prokop Sat, 25 Jan 2014 11:45:16 +0100 + +live-boot (4.0~a13-1+grml.4) unstable; urgency=low + + * [3d46167] Add patch to properly boot from mdadm via findiso boot + option [Closes: issue1270] Thanks to thinkgear for the bug report + and providing a test VM + + -- Michael Prokop Tue, 15 Oct 2013 16:58:17 +0200 + +live-boot (4.0~a13-1+grml.3) unstable; urgency=low + + * [79dceec] Update 9990-misc-helpers.sh to support latest udev version + [Closes: issue1278] Thanks to Michael Biebl for + helping in resolve this issue and Ulrich Dangel + for the initial patch + + -- Michael Prokop Sat, 28 Sep 2013 11:44:52 +0200 + +live-boot (4.0~a13-1+grml.2) unstable; urgency=low + + * [61895ec] Do not "exit" if boot option nonetworking is set but + "return" instead [Closes: issue1276] + * [85bddc0] Refresh debian/patches/ + + -- Michael Prokop Fri, 20 Sep 2013 16:38:53 +0200 + +live-boot (4.0~a13-1+grml.1) unstable; urgency=low + + * Sync Debian's 4.0~a13. + * [ba11a22] drop patches that were previously backported from + the 4.x upstream branch + * [5eca029, 3a80a92, eae4296, e6023f8] refresh patches against + new upstream + * [2130827] more forwardporting of deprecated persistence options + * [c06cdf4] log to boot.log, not live-boot.log + + -- Evgeni Golov Sun, 18 Aug 2013 10:53:12 +0200 + live-boot (4.0~a13-1) experimental; urgency=low * Increasing tftp blocksize to maximum value per RFC 2348, thanks to @@ -490,6 +628,13 @@ live-boot (4.0~a1-1) experimental; urgency=low -- Daniel Baumann Fri, 30 Nov 2012 14:58:46 +0100 +live-boot (3.0.1-1+grml.1) unstable; urgency=low + + * Sync Debian's 3.0.1. + * Backport some patches from Debian's debian-next (4.x) branch. + + -- Evgeni Golov Wed, 06 Mar 2013 08:07:07 +0100 + live-boot (3.0.1-1) unstable; urgency=low [ chals ] @@ -547,6 +692,16 @@ live-boot (3.0~b11-1) unstable; urgency=low -- Daniel Baumann Wed, 02 Jan 2013 11:32:21 +0100 +live-boot (3.0~b10-1+grml.1) unstable; urgency=low + + [ Evgeni Golov ] + * [795263e] refresh 29_support_dns_in_initramfs.patch against + current upstream + * [2045fef] drop 43_do_not_fix_mountpoints_with_live-persistence.patch, + applied upstream + + -- Michael Prokop Tue, 18 Dec 2012 01:41:16 +0100 + live-boot (3.0~b10-1) unstable; urgency=low [ Daniel Baumann ] @@ -572,6 +727,23 @@ live-boot (3.0~b10-1) unstable; urgency=low -- Daniel Baumann Mon, 17 Dec 2012 20:22:50 +0100 +live-boot (3.0~b9-1+grml.1) unstable; urgency=low + + [ Evgeni Golov ] + * [bdc44cd] drop 37_fix_legacy_persistence_handling.patch, applied + upstream + + [ Michael Prokop ] + * [1aa780a] Refresh patches against current master + * [a133107] Add patch to drop nameserver handling from ip= boot + parameter + * [7782d4f] Add patch to restore support for persistence media with + LABEL=custom-ov (credits to Evgeni) + * [b7de9b2] Do not fix mountpoints with live-persistence.conf as + home-rw/live-rw (credits to Evgeni) + + -- Michael Prokop Mon, 17 Dec 2012 18:22:27 +0100 + live-boot (3.0~b9-1) unstable; urgency=low [ Tails developers ] @@ -582,6 +754,16 @@ live-boot (3.0~b9-1) unstable; urgency=low -- Daniel Baumann Mon, 10 Dec 2012 20:01:21 +0100 +live-boot (3.0~b8-1+grml.1) unstable; urgency=low + + The "sync with Debian's 3.0~b8-1 version" release + + [ Evgeni Golov ] + * [ce765d3] refresh patches against Debian's 3.0~b8-1 + * [b484d6d] allow the use of multiple initramfs hooks and scripts again + + -- Michael Prokop Thu, 06 Dec 2012 12:51:50 +0100 + live-boot (3.0~b8-1) unstable; urgency=low * Removing eject from recommends, the script that ejects the live medium @@ -916,6 +1098,76 @@ live-boot (3.0~a28-1) experimental; urgency=low -- Daniel Baumann Mon, 04 Jun 2012 17:31:32 +0200 +live-boot (3.0~a27-1+grml.7) grml-testing; urgency=low + + * [a488db6] Enable write-mode for persistency related devices in + readonly/forensic mode + + -- Michael Prokop Fri, 14 Sep 2012 17:01:39 +0200 + +live-boot (3.0~a27-1+grml.6) grml-testing; urgency=low + + [ Lukas Schwaighofer ] + * [95fb70f] fixed legacy persistence handling + + [ Michael Prokop ] + * [ed79f48] readonly: do not check for "forensic" boot option + * [72aebf1] Move changes to scripts/live-premount/readonly into debian + patch file + + -- Michael Prokop Fri, 07 Sep 2012 13:43:08 +0200 + +live-boot (3.0~a27-1+grml.5) grml-testing; urgency=low + + * [8b51f69] Adjust 15_networking_grml.patch + 27_support_static_ip.patch + for klibc's ipconfig /run switch + * [bbeb928] Add "Breaks: klibc-utils (<< 2.0-2)" to live-boot-grml- + initramfs-tools for /run switch + * [cad0077] Refresh debian/patches/35_fix_findiso_umount.patch + * [7f450c2] Support overriding "nodhcp" boot option via "dhcp" + * [2b065a0] Adjust file permissions also of files that are added during + dh_quilt_patch stage + + -- Michael Prokop Fri, 27 Jul 2012 15:06:38 +0200 + +live-boot (3.0~a27-1+grml.4) grml-testing; urgency=low + + * [6d32dfe] Check for presence of /tmp/net-${device}.conf before + sourcing it [Closes: issue1196] Thanks to Marc 'Zugschlus' Haber for + the bugreport and debugging this issue + + -- Michael Prokop Mon, 23 Jul 2012 17:13:42 +0200 + +live-boot (3.0~a27-1+grml.3) grml-testing; urgency=low + + * [d978027] 35_fix_findiso_umount.patch: make sure ISO gets unmounted + correctly when using findiso/toram. Thanks to Christoph Biedl for the + bugreport and the patch + * [d621ee2] 34_ignore_unknown_filesystems.patch: also ignore fstype swap + + -- Michael Prokop Mon, 28 May 2012 12:27:08 +0200 + +live-boot (3.0~a27-1+grml.2) grml-testing; urgency=low + + * [e161c2c] New patch to ignore "unknown" filesystems in + is_supported_fs() [Testing: issue1170] + + -- Michael Prokop Sun, 20 May 2012 18:54:58 +0200 + +live-boot (3.0~a27-1+grml.1) grml-testing; urgency=low + + * [3039c63] Sync with Debian's upstream/3.0_a27 (new log file name, + persistency reworked,...) + * [06185b3] Bump Standards-Version, raise Build-Depends from dh 8 to dh + 9 + raise compat version to 9 + * [2998c28] Drop debian/patches/07_support_findiso.patch which is in + upstream nowadays + * [3967979] Drop deprecated debian/patches/14_no_blkid_on_lenny.patch + * [91460b9] Refresh debian/patches/ against new upstream code + * [7116647] Drop deprecated debian/patches/28_remove_localized_manpages.patch + + -- Michael Prokop Wed, 09 May 2012 14:10:37 +0200 + live-boot (3.0~a27-1) experimental; urgency=low [ Daniel Baumann ] @@ -1089,6 +1341,39 @@ live-boot (3.0~a25-1) unstable; urgency=low -- Daniel Baumann Mon, 06 Feb 2012 23:27:38 +0100 +live-boot (3.0~a24-1+grml.2) grml-testing; urgency=low + + [ Ulrich Dangel ] + * [87a8e76] Append nameservers provided via dns bootoption into + initramfs resolv.conf + + [ Michael Prokop ] + * [1d25495] Add genext2fs to depends [Closes: issue1126] Thanks to + Charles A. Hewson for the bugreport + + -- Michael Prokop Wed, 04 Jan 2012 16:48:38 +0100 + +live-boot (3.0~a24-1+grml.1) grml-testing; urgency=low + + * Resynchronized with Debian. + + [ Christian Hofstaedtler ] + * Resynchronized with Debian. + * Drop upstream-applied patch: 01_fix_output_file + * Drop upstream-applied patch: 10_validateroot + * Drop upstream-applied patch: 25_support_lvm_for_live-media + * 07_support_findiso: remove upstream-applied parts + * Manually refreshd patch 31_package_rename + + [ Ulrich Dangel ] + * Add kms modules to initramfs + * Install hook instead of specifying modules.d + + [ Michael Prokop ] + * Try loading phram module twice to fix loading issue. + + -- Christian Hofstaedtler Tue, 06 Dec 2011 22:26:32 +0100 + live-boot (3.0~a24-1) unstable; urgency=low * Removing quotes from udev path_id command to actually execute the @@ -1195,6 +1480,38 @@ live-boot (3.0~a20-1) unstable; urgency=low -- Daniel Baumann Thu, 04 Aug 2011 21:20:47 +0200 +live-boot (3.0~a19-1+grml.01) grml-testing; urgency=low + + * Depend on quilt with a version to quiet lintian + * Add debian/control headers Origin, Bugs + + -- Christian Hofstaedtler Wed, 30 Nov 2011 13:24:41 +0100 + +live-boot (3.0~a19-1+grml.00) unstable; urgency=low + + * Resync with Debian. This brings in: + [ Daniel Baumann ] + * Updating and correcting sendsigs.omit support for /run (Closes: #628188). + * Removing accidentally twice included English files when installing manpages. + * Correct rmdir call in top-level Makefiles uninstall target to not fail if there was no prior live-boot installation. + * Making references to debian more distribution neutral. + * Replacing reference to old alioth page in live-snapshot. + * Splitting out documentation so that it can be accesses separately from the initramfs code. + * Adding conflicts/replaces for live-boot to live-boot-doc to not break upgrades. + + * Grml changes: + [ Ulrich Dangel ] + * [8424e93] Use quilt instead of dpatch + * [86ca4d5] Remove old manpage live-snapshot.it.1.txt + * [7fb9e91] Support comma delimited devices in live-media-path + * [6b21c57] Depend on the same live-boot-initramfs-tools/live-boot-backend version. + + [ Christian Hofstaedtler ] + * Rename packages to not clash with Debian. + * Resynced with Debian. + + -- Christian Hofstaedtler Mon, 25 Jul 2011 02:26:40 +0200 + live-boot (3.0~a19-1) unstable; urgency=low * Correct rmdir call in top-level Makefiles uninstall target to not @@ -1217,6 +1534,51 @@ live-boot (3.0~a18-1) unstable; urgency=low -- Daniel Baumann Sat, 11 Jun 2011 11:24:15 +0200 +live-boot (3.0~a17-1+grml.01) unstable; urgency=low + + * [6666658] Do not fail in multiarch environment when + installing libnss_dns.so. + * [ebdefd9] Drop installation of localized manpages + from upstream Makefile. + + -- Michael Prokop Wed, 08 Jun 2011 12:15:23 +0200 + +live-boot (3.0~a17-1+grml.00) unstable; urgency=low + + [ Christian Hofstaedtler ] + * [c9a70fd] Add dpatch support to build process. + * [a9ddc0a] Readd Grml patches. + * [675f2b2] Remove unused boot scripts. + * [c4993d4] Update debian/control for Grml. + * [0716b66] Ensure 10validateroot is executable. + * [b5b937f] Always honor the "nodhcp" boot option. + * [10cf847] Don't mess around with kernel/initramfs-tools' ip=. + * [aa93321] Networking_grml: DNS for systems without resolvconf. + * [2a859b8] Merge dhcphostname support into 23networking-grml. + * [10caf0b] Support DNS in boot environment. + + [ Michael Prokop ] + * [6cd3977] Add patch number 19 to revert the toram bootoption + to expected behaviour. + * [65fa11b] Support dns bootoption. + + [ Ulrich Dangel ] + * [df17b43] Support lvm devices for live-media. + * [8ff045c] Support raid devices as well. + * [2ad3c30] Change output to live-boot.log. + * [34b4518] Explicit specify offset parameter for setup_loop. + [Closes: issue1003] + * [3ac64e5] Remove dba from uploader as this is a Grml project. + * [b289379] Support static ip configuration. + * [1371673] Improve static version. + * [9487c5d] Change nodhcp patch to unset the DHCP option as well. + * [1662374] Support nodhcp bootoption. + * [7847abd] Ignore devices with no file matching the findiso parameter. + * [7158e84] Don't show an error message if /live/image is already + unmounted. + + -- Michael Prokop Sun, 05 Jun 2011 21:29:14 +0200 + live-boot (3.0~a17-1) unstable; urgency=low [ Daniel Baumann ] diff --git a/debian/control b/debian/control index 96fee1b..8140c5a 100644 --- a/debian/control +++ b/debian/control @@ -1,23 +1,26 @@ Source: live-boot Section: misc Priority: optional -Maintainer: Live Systems Maintainers -Uploaders: Iain R. Learmonth +Maintainer: Grml Team Build-Depends: debhelper (>= 9), Standards-Version: 3.9.6 -Homepage: https://debian-live.alioth.debian.org/live-boot/ -Vcs-Browser: https://anonscm.debian.org/cgit/debian-live/live-boot.git -Vcs-Git: https://anonscm.debian.org/git/debian-live/live-boot.git +Homepage: http://live.debian.net/devel/live-boot/ +Vcs-Browser: http://git.grml.org/?p=live-boot-grml.git +Vcs-Git: git://git.grml.org/live-boot-grml.git +Origin: Grml +Bugs: mailto:bugs@grml.org -Package: live-boot +Package: live-boot-grml Architecture: all Depends: - live-boot-initramfs-tools | live-boot-backend, + live-boot-grml-initramfs-tools | live-boot-backend, ${misc:Depends}, Recommends: - live-boot-doc, + live-boot-grml-doc, live-tools, + eject, + file, rsync, uuid-runtime, Suggests: @@ -25,17 +28,21 @@ Suggests: curlftpfs, httpfs2, wget, +Conflicts: live-boot +Replaces: live-boot +Provides: live-boot Description: Live System Boot Components - The Live Systems project maintains the components to build Debian based Live - systems and the official Debian Live images themselves. - . live-boot contains the components to configure a live system during the boot process (early userspace). . In addition to live-boot, a backend for the initrd generation is required, such as live-boot-initramfs-tools. + . + Please notice that this package is maintained by the grml.org team. + This is NOT a fork of Debian's live-boot, it's just a customized + version to better fit Grml's needs. -Package: live-boot-doc +Package: live-boot-grml-doc Section: doc Architecture: all Depends: @@ -48,8 +55,12 @@ Description: Live System Boot Components (documentation) process (early userspace). . This package contains the documentation. + . + Please notice that this package is maintained by the grml.org team. + This is NOT a fork of Debian's live-boot, it's just a customized + version to better fit Grml's needs. -Package: live-boot-initramfs-tools +Package: live-boot-grml-initramfs-tools Architecture: all Depends: busybox | busybox-initramfs, @@ -70,3 +81,7 @@ Description: Live System Boot Components (initramfs-tools backend) process (early userspace). . This package contains the initramfs-tools backend. + . + Please notice that this package is maintained by the grml.org team. + This is NOT a fork of Debian's live-boot, it's just a customized + version to better fit Grml's needs. diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 0000000..e2232b4 --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,2 @@ +[DEFAULT] +compression=xz diff --git a/debian/live-boot-doc.install b/debian/live-boot-grml-doc.install similarity index 100% rename from debian/live-boot-doc.install rename to debian/live-boot-grml-doc.install diff --git a/debian/live-boot-initramfs-tools.postinst b/debian/live-boot-grml-initramfs-tools.postinst similarity index 100% rename from debian/live-boot-initramfs-tools.postinst rename to debian/live-boot-grml-initramfs-tools.postinst diff --git a/debian/live-boot-grml-initramfs-tools.triggers b/debian/live-boot-grml-initramfs-tools.triggers new file mode 100644 index 0000000..6c9f454 --- /dev/null +++ b/debian/live-boot-grml-initramfs-tools.triggers @@ -0,0 +1 @@ +activate update-initramfs diff --git a/debian/live-boot.bug-presubj b/debian/live-boot-grml.bug-presubj similarity index 100% rename from debian/live-boot.bug-presubj rename to debian/live-boot-grml.bug-presubj diff --git a/debian/live-boot.bug-script b/debian/live-boot-grml.bug-script similarity index 100% rename from debian/live-boot.bug-script rename to debian/live-boot-grml.bug-script diff --git a/debian/live-boot-grml.init b/debian/live-boot-grml.init new file mode 100644 index 0000000..ab09d2a --- /dev/null +++ b/debian/live-boot-grml.init @@ -0,0 +1,250 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides: live-boot +# Required-Start: $syslog bootmisc +# Required-Stop: +# Should-Start: $local_fs +# Should-Stop: halt reboot +# X-Stop-After: umountroot +# Default-Start: S +# Default-Stop: 0 6 +# Short-Description: live-boot init script +# Description: Resyncs snapshots, evantually caches files in order to +# let remove the media. +### END INIT INFO + +# Authors: Tollef Fog Heen +# Marco Amadori + +PATH=/usr/sbin:/usr/bin:/sbin:/bin +NAME=live-boot +SCRIPTNAME=/etc/init.d/${NAME} +DO_SNAPSHOT=/sbin/live-snapshot +SNAPSHOT_CONF="/etc/live/boot.d/snapshot.conf" + +# Exit if system was not booted by live-boot +grep -qs boot=live /proc/cmdline || exit 0 + +# Read snapshot configuration variables +[ -r ${SNAPSHOT_CONF} ] && . ${SNAPSHOT_CONF} + +# Load the VERBOSE setting and other rcS variables +[ -f /etc/default/rcS ] && . /etc/default/rcS + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. +. /lib/lsb/init-functions + +# Try to cache everything we're likely to need after ejecting. This +# is fragile and simple-minded, but our options are limited. +cache_path() +{ + path="${1}" + + if [ -d "${path}" ] + then + find "${path}" -type f | xargs cat > /dev/null 2>&1 + elif [ -f "${path}" ] + then + if file -L "${path}" | grep -q 'dynamically linked' + then + # ldd output can be of three forms: + # 1. linux-vdso.so.1 => (0x00007fffe3fb4000) + # This is a virtual, kernel shared library and we want to skip it + # 2. libc.so.6 => /lib/libc.so.6 (0x00007f5e9dc0c000) + # We want to cache the third word. + # 3. /lib64/ld-linux-x86-64.so.2 (0x00007f5e9df8b000) + # We want to cache the first word. + ldd "${path}" | while read line + do + if echo "$line" | grep -qs ' => ' + then + continue + elif echo "$line" | grep -qs ' => ' + then + lib=$(echo "${line}" | awk '{ print $3 }') + else + lib=$(echo "${line}" | awk '{ print $1 }') + fi + cache_path "${lib}" + done + fi + + cat "${path}" >/dev/null 2>&1 + fi +} + +get_boot_device() +{ + # search in /proc/mounts for the device that is mounted at /live/image + while read DEVICE MOUNT REST + do + if [ "${MOUNT}" = "/live/image" ] + then + echo "${DEVICE}" + exit 0 + fi + done < /proc/mounts +} + +device_is_USB_flash_drive() +{ + # remove leading "/dev/" and all trailing numbers from input + DEVICE=$(expr substr ${1} 6 3) + + # check that device starts with "sd" + [ "$(expr substr ${DEVICE} 1 2)" != "sd" ] && return 1 + + # check that the device is an USB device + if readlink /sys/block/${DEVICE} | grep -q usb + then + return 0 + fi + + return 1 +} + +do_stop () +{ + if ! grep -qs nopersistent /proc/cmdline && grep -qs persistent /proc/cmdline + then + # ROOTSNAP and HOMESNAP are defined in ${SNAPSHOT_CONF} file + if [ ! -z "${ROOTSNAP}" ] + then + ${DO_SNAPSHOT} --resync-string="${ROOTSNAP}" + fi + + if [ ! -z "${HOMESNAP}" ] + then + ${DO_SNAPSHOT} --resync-string="${HOMESNAP}" + fi + fi + + # check for netboot + if [ ! -z "${NETBOOT}" ] || grep -qs netboot /proc/cmdline || grep -qsi root=/dev/nfs /proc/cmdline || grep -qsi root=/dev/cifs /proc/cmdline + then + return 0 + fi + + # check for toram + if grep -qs toram /proc/cmdline + then + return 0 + fi + + # Don't prompt to eject the SD card on Babbage board, where we reuse it + # as a quasi-boot-floppy. Technically this uses a bit of ubiquity + # (archdetect), but since this is mostly only relevant for + # installations, who cares ... + if type archdetect >/dev/null 2>&1 + then + subarch="$(archdetect)" + + case $subarch in + arm*/imx51) + return 0 + ;; + esac + fi + + prompt=1 + if [ "${NOPROMPT}" = "Yes" ] + then + prompt= + fi + + for path in $(which halt) $(which reboot) /etc/rc?.d /etc/default $(which stty) /bin/plymouth + do + cache_path "${path}" + done + + for x in $(cat /proc/cmdline) + do + case ${x} in + quickreboot) + QUICKREBOOT="Yes" + ;; + esac + done + + mount -o remount,ro /live/cow + + if [ -z ${QUICKREBOOT} ] + then + + # Exit if the system was booted from an ISO image rather than a physical CD + grep -qs find_iso= /proc/cmdline && return 0 + # TODO: i18n + BOOT_DEVICE="$(get_boot_device)" + + if device_is_USB_flash_drive ${BOOT_DEVICE} + then + # do NOT eject USB flash drives! + # otherwise rebooting with most USB flash drives + # failes because they actually remember the + # "ejected" state even after reboot + MESSAGE="Please remove the USB flash drive" + + if [ "${NOPROMPT}" = "usb" ] + then + prompt= + fi + + else + # ejecting is a very good idea here + MESSAGE="Please remove the disc, close the tray (if any)" + + if [ -x /usr/bin/eject ] + then + eject -p -m /live/image >/dev/null 2>&1 + fi + + if [ "${NOPROMPT}" = "cd" ] + then + prompt= + fi + + fi + + [ "$prompt" ] || return 0 + + if [ -x /bin/plymouth ] && plymouth --ping + then + plymouth message --text="${MESSAGE} and press ENTER to continue:" + plymouth watch-keystroke > /dev/null + else + stty sane < /dev/console + + printf "\n\n${MESSAGE} and press ENTER to continue:" > /dev/console + + read x < /dev/console + fi + fi +} + +case "${1}" in + start|restart|reload|force-reload|status) + [ "${VERBOSE}" != no ] && log_end_msg 0 + ;; + + stop) + log_begin_msg "${NAME} is resyncing snapshots and caching reboot files..." + do_stop + + case "${?}" in + 0|1) + [ "${VERBOSE}" != no ] && log_end_msg 0 + ;; + + 2) + [ "${VERBOSE}" != no ] && log_end_msg 1 + ;; + esac + ;; + + *) + log_success_msg "Usage: ${SCRIPTNAME} {start|stop|restart|force-reload}" >&2 + exit 3 + ;; +esac diff --git a/debian/live-boot.install b/debian/live-boot-grml.install similarity index 100% rename from debian/live-boot.install rename to debian/live-boot-grml.install diff --git a/debian/live-boot-grml.lintian-overrides b/debian/live-boot-grml.lintian-overrides new file mode 100644 index 0000000..001198f --- /dev/null +++ b/debian/live-boot-grml.lintian-overrides @@ -0,0 +1,4 @@ +# false positives, not applicable to live systems +live-boot-grml: init.d-script-missing-dependency-on-remote_fs /etc/init.d/live-boot-grml: required-start +live-boot-grml: init.d-script-missing-dependency-on-remote_fs /etc/init.d/live-boot-grml: required-stop +live-boot-grml: init.d-script-possible-missing-stop /etc/init.d/live-boot-grml 1 diff --git a/debian/rules b/debian/rules index 0ed4818..c7f8b71 100755 --- a/debian/rules +++ b/debian/rules @@ -1,5 +1,9 @@ #!/usr/bin/make -f +build: + # regular build. + dh build + %: dh ${@} --parallel @@ -7,11 +11,21 @@ override_dh_auto_install: dh_auto_install -- DESTDIR=debian/tmp # Removing useless files - rm -f debian/tmp/usr/share/doc/live-boot/COPYING + rm -f debian/tmp/usr/share/doc/live-boot-grml/COPYING + rm -f debian/lib/live/boot/FIXME # live-boot-initramfs-tools - mkdir -p debian/live-boot-initramfs-tools/usr/share - mv debian/tmp/usr/share/initramfs-tools debian/live-boot-initramfs-tools/usr/share + mkdir -p debian/live-boot-grml-initramfs-tools/usr/share + mv debian/tmp/usr/share/initramfs-tools debian/live-boot-grml-initramfs-tools/usr/share + + # this is needed because dpatch doesn't do file modes on diffs + # and we can't execute this fix during build stage as new files + # might be installed during dh_quilt_patch + chmod a+rx debian/live-boot-grml-initramfs-tools/usr/share/initramfs-tools/scripts/* + chmod a+rx debian/live-boot-grml-initramfs-tools/usr/share/initramfs-tools/hooks/* override_dh_install: dh_install --fail-missing + +override_dh_installinit: + dh_installinit -p live-boot-grml --no-restart-on-upgrade --no-start --update-rcd-params='start 89 0 6 .'