Hello community,

here is the log from the commit of package util-linux for openSUSE:Factory 
checked in at 2014-02-09 13:18:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/util-linux (Old)
 and      /work/SRC/openSUSE:Factory/.util-linux.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "util-linux"

Changes:
--------
--- /work/SRC/openSUSE:Factory/util-linux/util-linux.changes    2014-02-06 
07:06:47.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.util-linux.new/util-linux.changes       
2014-02-09 13:18:03.000000000 +0100
@@ -1,0 +2,14 @@
+Fri Feb  7 15:59:20 UTC 2014 - [email protected]
+
+- Add patch sulogin-does-not-find-any-console.patch to enable sulogin
+  to find suitable console device even if first is not usable (bnc#862078)
+
+-------------------------------------------------------------------
+Thu Feb  6 10:03:30 UTC 2014 - [email protected]
+
+- Avoid that hanging plymouth locks terminal lines that is
+  add patch sulogin-fooled-on-tty-line-due-plymouth.patch and
+  modify patch agetty-fooled-on-serial-line-due-plymouth.patch
+  to remove any lock which had been left over.
+
+-------------------------------------------------------------------

New:
----
  sulogin-does-not-find-any-console.patch
  sulogin-fooled-on-tty-line-due-plymouth.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ util-linux.spec ++++++
--- /var/tmp/diff_new_pack.akSBLp/_old  2014-02-09 13:18:04.000000000 +0100
+++ /var/tmp/diff_new_pack.akSBLp/_new  2014-02-09 13:18:04.000000000 +0100
@@ -112,6 +112,10 @@
 Patch15:        agetty-fooled-on-serial-line-due-plymouth.patch
 # PATCH-FIX-SUSE -- Let agetty detect /dev/3270/tty1 as device not as baud rate
 Patch16:        agetty-on-s390-on-dev-3270-tty1-line.patch
+# PATCH-FIX-SUSE -- Make sure that plymouth does not break sulogin
+Patch17:        sulogin-fooled-on-tty-line-due-plymouth.patch
+# PATCH-FIX-SUSE -- sulogin: find suitable console device even if first is not 
usable
+Patch18:        sulogin-does-not-find-any-console.patch
 
 # hack for boot.localfs
 Patch20:        util-linux-HACK-boot.localfs.diff
@@ -232,6 +236,8 @@
 %patch14 -p0
 %patch15 -p0
 %patch16 -p0
+%patch17 -p0
+%patch18 -p0
 #
 %patch20 -p1
 #

++++++ agetty-fooled-on-serial-line-due-plymouth.patch ++++++
--- /var/tmp/diff_new_pack.akSBLp/_old  2014-02-09 13:18:04.000000000 +0100
+++ /var/tmp/diff_new_pack.akSBLp/_new  2014-02-09 13:18:04.000000000 +0100
@@ -41,10 +41,11 @@
        if (close_stream(dbf) != 0)
                log_err("write failed: %s", DEBUG_OUTPUT);
  #endif
-@@ -1090,6 +1094,23 @@ static void termio_init(struct options *
+@@ -1090,6 +1094,25 @@ static void termio_init(struct options *
  {
        speed_t ispeed, ospeed;
        struct winsize ws;
++      struct termios lock;
 +      int i;
 +
 +      for (i = 0; i < 20; i++) {
@@ -53,7 +54,6 @@
 +               * the termios flags become changed from under the first
 +               * agetty on a serial system console as the flags are locked.
 +               */
-+              struct termios lock;
 +              memset(&lock, 0, sizeof(struct termios));
 +              if (ioctl(STDIN_FILENO, TIOCGLCKTRMIOS, &lock) < 0)
 +                      break;
@@ -62,10 +62,12 @@
 +              debug("termios locked\n");
 +              sleep(1);
 +      }
++       memset(&lock, 0, sizeof(struct termios));
++       ioctl(STDIN_FILENO, TIOCSLCKTRMIOS, &lock);
  
        if (op->flags & F_VCONSOLE) {
  #if defined(IUTF8) && defined(KDGKBMODE)
-@@ -1154,9 +1175,6 @@ static void termio_init(struct options *
+@@ -1154,9 +1177,6 @@ static void termio_init(struct options *
         * later on.
         */
  
@@ -75,7 +77,7 @@
  #ifdef IUTF8
        tp->c_iflag = tp->c_iflag & IUTF8;
        if (tp->c_iflag & IUTF8)
-@@ -1216,8 +1234,11 @@ static void termio_init(struct options *
+@@ -1216,8 +1236,11 @@ static void termio_init(struct options *
        if (op->flags & F_RTSCTS)
                tp->c_cflag |= CRTSCTS;
  #endif
@@ -88,7 +90,7 @@
  
        /* Go to blocking input even in local mode. */
        fcntl(STDIN_FILENO, F_SETFL,
-@@ -1238,6 +1259,10 @@ static void reset_vc(const struct option
+@@ -1238,6 +1261,10 @@ static void reset_vc(const struct option
  
        if (tcsetattr(STDIN_FILENO, TCSADRAIN, tp))
                log_warn(_("setting terminal attributes failed: %m"));

++++++ sulogin-does-not-find-any-console.patch ++++++
Enable sulogin to find a suitable console device even if the first line
in /proc/consoles does not have any major and minor number (bnc#862078)

---
 sulogin-consoles.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- login-utils/sulogin-consoles.c
+++ login-utils/sulogin-consoles.c      2014-02-07 15:47:14.246235487 +0000
@@ -319,7 +319,7 @@ static int detect_consoles_from_proc(str
        char fbuf[16 + 1];
        DIR *dir = NULL;
        FILE *fc = NULL;
-       int maj, min, rc = 1;
+       int maj, min, rc = 1, matches;
 
        DBG(dbgprint("trying /proc"));
 
@@ -332,10 +332,12 @@ static int detect_consoles_from_proc(str
        if (!dir)
                goto done;
 
-       while (fscanf(fc, "%*s %*s (%16[^)]) %d:%d", fbuf, &maj, &min) == 3) {
+       while ((matches = fscanf(fc, "%*s %*s (%16[^)]) %d:%d", fbuf, &maj, 
&min)) >= 1) {
                char *name;
                dev_t comparedev;
 
+               if (matches != 3)
+                       continue;
                if (!strchr(fbuf, 'E'))
                        continue;
                comparedev = makedev(maj, min);
++++++ sulogin-fooled-on-tty-line-due-plymouth.patch ++++++
Make sure that plymouth does not break sulogin.

---
 sulogin.c |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

--- login-utils/sulogin.c
+++ login-utils/sulogin.c       2014-02-06 09:39:57.726236116 +0000
@@ -83,7 +83,23 @@ static void tcinit(struct console *con)
 {
        int mode = 0, flags = 0;
        struct termios *tio = &con->tio;
-       int fd = con->fd;
+       struct termios lock;
+       int i, fd = con->fd;
+
+       for (i = 0; i < 5; i++) {
+               /*
+                * With plymouth the termios flags become changed after this
+                * function had changed the termios.
+                */
+               memset(&lock, 0, sizeof(struct termios));
+               if (ioctl(fd, TIOCGLCKTRMIOS, &lock) < 0)
+                       break;
+               if (!lock.c_iflag && !lock.c_oflag && !lock.c_cflag && 
!lock.c_lflag)
+                       break;
+               sleep(1);
+       }
+       memset(&lock, 0, sizeof(struct termios));
+       ioctl(fd, TIOCSLCKTRMIOS, &lock);
 
        errno = 0;
 

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to