diff -Nru initramfs-tools-0.122ubuntu8.3/debian/changelog initramfs-tools-0.122ubuntu8.4/debian/changelog --- initramfs-tools-0.122ubuntu8.3/debian/changelog 2016-09-27 15:27:38.000000000 -0500 +++ initramfs-tools-0.122ubuntu8.4/debian/changelog 2016-10-07 20:58:25.000000000 -0500 @@ -1,3 +1,13 @@ +initramfs-tools (0.122ubuntu8.4) xenial; urgency=medium + + * Fix case where ip=dhcp and ip=eth0 and other ip= instances exists on + the kernel command line (LP: #1631474) + * Also fixed an error discovered by the shellcheck static code analyzer + where "$DEVICES" would be processed as a single device where-as removing + the quotes allows the list to be correctly processed by the for loop. + + -- Dave Chiluk Fri, 07 Oct 2016 16:21:50 -0500 + initramfs-tools (0.122ubuntu8.3) xenial; urgency=medium * scripts/functions: make sure we can try to start all available and suitable diff -Nru initramfs-tools-0.122ubuntu8.3/scripts/functions initramfs-tools-0.122ubuntu8.4/scripts/functions --- initramfs-tools-0.122ubuntu8.3/scripts/functions 2016-09-27 15:25:48.000000000 -0500 +++ initramfs-tools-0.122ubuntu8.4/scripts/functions 2016-10-12 11:12:55.000000000 -0500 @@ -283,10 +283,11 @@ # Do nothing ;; ""|::::*|on|any|dhcp) - # if IP contains something other than BOOTIF; use that + # if IP is of the form ::::*, and does not contain bootif use that # interface to bring up the network. - if ! echo "${IP}" | grep -qc 'BOOTIF'; then - DEVICE="${IP#*:*:*:*:*:*}"; + if echo "${IP}"| grep -vi bootif | grep -qe ".*:.*:.*:.*:.*:.*" ; then + DEVICE="${IP#*:*:*:*:*:}"; + DEVICE="${DEVICE%%:*}"; fi # if we don't have a device specified, try to bring up @@ -296,7 +297,7 @@ fi # Bring up device - for dev in "${DEVICE}"; do + for dev in ${DEVICE} ; do dhclient -4 -1 -v "${dev}" dhclient -6 -1 -v "${dev}"