shadow-securetty: change to handle SERIAL_CONSOLES
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Tue, 30 Apr 2013 14:32:06 +0000 (15:32 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 2 May 2013 16:41:54 +0000 (17:41 +0100)
SERIAL_CONSOLES is now set from SERIAL_CONSOLE if not already set. This
change also installs the file before modifying it in place, allowing
do_install to re-execute properly.

(From OE-Core rev: 013a1e304e6845eda97b94d133ad75bbccff0b9a)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-extended/shadow/shadow-securetty_4.1.4.3.bb

index 86b5c89..4a1f79f 100644 (file)
@@ -10,22 +10,28 @@ PR = "r2"
 
 SRC_URI = "file://securetty"
 
-# Since we deduce our arch from ${SERIAL_CONSOLE}
+# Since SERIAL_CONSOLES is likely to be set from the machine configuration
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 do_install () {
        # Ensure we add a suitable securetty file to the package that has
        # most common embedded TTYs defined.
-       if [ ! -z "${SERIAL_CONSOLE}" ]; then
-               # Our SERIAL_CONSOLE contains a baud rate and sometimes a -L
-               # option as well. The following pearl :) takes that and converts
+       install -d ${D}${sysconfdir}
+       install -m 0400 ${WORKDIR}/securetty ${D}${sysconfdir}/securetty
+       if [ ! -z "${SERIAL_CONSOLES}" ]; then
+               # Our SERIAL_CONSOLES contains a baud rate and sometimes extra
+               # options as well. The following pearl :) takes that and converts
                # it into newline-separated tty's and appends them into
                # securetty. So if a machine has a weird looking console device
                # node (e.g. ttyAMA0) that securetty does not know, it will get
                # appended to securetty and root logins will be allowed on that
                # console.
-               echo "${SERIAL_CONSOLE}" | sed -e 's/[0-9][0-9]\|\-L//g'|tr "[ ]" "[\n]"  >> ${WORKDIR}/securetty
+               tmp="${SERIAL_CONSOLES}"
+               for entry in $tmp ; do
+                       ttydev=`echo "$entry" | sed -e 's/^[0-9]*\;//' -e 's/\;.*//'`
+                       if ! grep -q $ttydev ${D}${sysconfdir}/securetty; then
+                               echo $ttydev >> ${D}${sysconfdir}/securetty
+                       fi
+               done
        fi
-       install -d ${D}${sysconfdir}
-       install -m 0400 ${WORKDIR}/securetty ${D}${sysconfdir}/securetty 
 }