[util-linux/f19] 2.23.1: upgrade 2.23 -> 2.23.1

kzak kzak at fedoraproject.org
Tue May 28 10:25:14 UTC 2013


commit 067da383fc428ee5acb944ec204d5d06b59ff217
Author: Karel Zak <kzak at redhat.com>
Date:   Tue May 28 12:24:56 2013 +0200

    2.23.1: upgrade 2.23 -> 2.23.1
    
    Signed-off-by: Karel Zak <kzak at redhat.com>

 .gitignore                          |    1 +
 sources                             |    2 +-
 util-linux-2.23-agetty-clocal.patch |  144 +++++++++++++++++++++++++++++++++++
 util-linux.spec                     |   11 ++-
 4 files changed, 155 insertions(+), 3 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 3c0a5a5..1a70c4c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@
 /util-linux-2.23-rc1.tar.xz
 /util-linux-2.23-rc2.tar.xz
 /util-linux-2.23.tar.xz
+/util-linux-2.23.1.tar.xz
diff --git a/sources b/sources
index 8f64420..c5f8a87 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-cf5e9bb402371beaaffc3a5f276d5783  util-linux-2.23.tar.xz
+33ba55ce82f8e3b8d7a38fac0f62779a  util-linux-2.23.1.tar.xz
diff --git a/util-linux-2.23-agetty-clocal.patch b/util-linux-2.23-agetty-clocal.patch
new file mode 100644
index 0000000..f48541a
--- /dev/null
+++ b/util-linux-2.23-agetty-clocal.patch
@@ -0,0 +1,144 @@
+From ef264c830effc91add6da334204215f61eb8515e Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak at redhat.com>
+Date: Thu, 23 May 2013 09:25:06 +0200
+Subject: [PATCH] agetty: allow full control on CLOCAL flag
+
+Now the -L option allows to explicitly enable CLOCAL flag.
+
+Unfortunately sometimes it's necessary to clear the flag. This patch
+add optional argument =<mode> to specify 'auto', 'always' and 'never'
+to control CLOCAL flag.
+
+Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=816342
+Signed-off-by: Karel Zak <kzak at redhat.com>
+---
+ term-utils/agetty.8 | 14 ++++++++++++--
+ term-utils/agetty.c | 44 +++++++++++++++++++++++++++++++++++++-------
+ 2 files changed, 49 insertions(+), 9 deletions(-)
+
+diff --git a/term-utils/agetty.8 b/term-utils/agetty.8
+index 64a1dd2..8d5286c 100644
+--- a/term-utils/agetty.8
++++ b/term-utils/agetty.8
+@@ -138,10 +138,20 @@ This allows the use of a non-standard login program (for example,
+ one that asks for a dial-up password or that uses a different
+ password file).
+ .TP
+-\-L, \-\-local\-line
+-Force the line to be a local line with no need for carrier detect. This can
++\-L, \-\-local\-line [=\fImode\fP]
++Control CLOCAL line flag, the optional argument \fImode\fP is 'auto', 'always' or 'never'.
++If the \fImode\fP argument is omitted then the default is 'always'. If the
++\-\-local\-line option is ommitted at all then the default is 'auto'.
++
++The \fImode\fP 'always' forces the line to be a local line with no need for carrier detect. This can
+ be useful when you have a locally attached terminal where the serial line
+ does not set the carrier detect signal.
++
++The \fImode\fP 'never' explicitly clears CLOCAL flags from line setting and
++the carrier detect signal is expected on the line.
++
++The \fImode\fP 'auto' (agetty default) does not modify CLOCAL setting
++and follows the setting enabled by kernel.
+ .TP
+ \-m, \-\-extract\-baud
+ Try to extract the baud rate the CONNECT status message
+diff --git a/term-utils/agetty.c b/term-utils/agetty.c
+index dd52f70..0d01e7e 100644
+--- a/term-utils/agetty.c
++++ b/term-utils/agetty.c
+@@ -132,13 +132,20 @@ struct options {
+ 	int delay;			/* Sleep seconds before prompt */
+ 	int nice;			/* Run login with this priority */
+ 	int numspeed;			/* number of baud rates to try */
++	int clocal;			/* CLOCAL_MODE_* */
+ 	speed_t speeds[MAX_SPEED];	/* baud rates to be tried */
+ };
+ 
++enum {
++	CLOCAL_MODE_AUTO = 0,
++	CLOCAL_MODE_ALWAYS,
++	CLOCAL_MODE_NEVER
++};
++
+ #define	F_PARSE		(1<<0)	/* process modem status messages */
+ #define	F_ISSUE		(1<<1)	/* display /etc/issue */
+ #define	F_RTSCTS	(1<<2)	/* enable RTS/CTS flow control */
+-#define F_LOCAL		(1<<3)	/* force local */
++
+ #define F_INITSTRING    (1<<4)	/* initstring is set */
+ #define F_WAITCRLF	(1<<5)	/* wait for CR or LF */
+ #define F_CUSTISSUE	(1<<6)	/* give alternative issue file */
+@@ -314,7 +321,8 @@ int main(int argc, char **argv)
+ 			   strlen(options.initstring));
+ 	}
+ 
+-	if (!serial_tty_option(&options, F_LOCAL))
++	if ((options.flags & F_VCONSOLE) == 0 &&
++	    options.clocal == CLOCAL_MODE_ALWAYS)
+ 		/* Go to blocking write mode unless -L is specified. */
+ 		fcntl(STDOUT_FILENO, F_SETFL,
+ 		      fcntl(STDOUT_FILENO, F_GETFL, 0) & ~O_NONBLOCK);
+@@ -541,7 +549,7 @@ static void parse_args(int argc, char **argv, struct options *op)
+ 		{  "init-string",    required_argument,  0,  'I'  },
+ 		{  "noclear",	     no_argument,	 0,  'J'  },
+ 		{  "login-program",  required_argument,  0,  'l'  },
+-		{  "local-line",     no_argument,	 0,  'L'  },
++		{  "local-line",     optional_argument,	 0,  'L'  },
+ 		{  "extract-baud",   no_argument,	 0,  'm'  },
+ 		{  "skip-login",     no_argument,	 0,  'n'  },
+ 		{  "nonewline",	     no_argument,	 0,  'N'  },
+@@ -610,7 +618,18 @@ static void parse_args(int argc, char **argv, struct options *op)
+ 			op->login = optarg;
+ 			break;
+ 		case 'L':
+-			op->flags |= F_LOCAL;
++			/* -L and -L=always have the same meaning */
++			op->clocal = CLOCAL_MODE_ALWAYS;
++			if (optarg) {
++				if (strcmp(optarg, "=always") == 0)
++					op->clocal = CLOCAL_MODE_ALWAYS;
++				else if (strcmp(optarg, "=never") == 0)
++					op->clocal = CLOCAL_MODE_NEVER;
++				else if (strcmp(optarg, "=auto") == 0)
++					op->clocal = CLOCAL_MODE_AUTO;
++				else
++					log_err(_("unssuported --local-line mode argument"));
++			}
+ 			break;
+ 		case 'm':
+ 			op->flags |= F_PARSE;
+@@ -1097,8 +1116,19 @@ static void termio_init(struct options *op, struct termios *tp)
+ 	cfsetispeed(tp, ispeed);
+ 	cfsetospeed(tp, ospeed);
+ 
+-	if (op->flags & F_LOCAL)
+-		tp->c_cflag |= CLOCAL;
++	/* The default is to follow setting from kernel, but it's possible
++	 * to explicitly remove/add CLOCAL flag by -L[=<mode>]*/
++	switch (op->clocal) {
++	case CLOCAL_MODE_ALWAYS:
++		tp->c_cflag |= CLOCAL;		/* -L or -L=always */
++		break;
++	case CLOCAL_MODE_NEVER:
++		tp->c_cflag &= ~CLOCAL;		/* -L=never */
++		break;
++	case CLOCAL_MODE_AUTO:			/* -L=auto */
++		break;
++	}
++
+ #ifdef HAVE_STRUCT_TERMIOS_C_LINE
+ 	tp->c_line = 0;
+ #endif
+@@ -1655,7 +1685,7 @@ static void __attribute__ ((__noreturn__)) usage(FILE *out)
+ 	fputs(_(" -i, --noissue              do not display issue file\n"), out);
+ 	fputs(_(" -I, --init-string <string> set init string\n"), out);
+ 	fputs(_(" -l, --login-program <file> specify login program\n"), out);
+-	fputs(_(" -L, --local-line           force local line\n"), out);
++	fputs(_(" -L, --local-line[=<mode>]  cotrol local line flag\n"), out);
+ 	fputs(_(" -m, --extract-baud         extract baud rate during connect\n"), out);
+ 	fputs(_(" -n, --skip-login           do not prompt for login\n"), out);
+ 	fputs(_(" -o, --login-options <opts> options that are passed to login\n"), out);
+-- 
+1.8.1.4
+
diff --git a/util-linux.spec b/util-linux.spec
index 4472484..065c8cd 100644
--- a/util-linux.spec
+++ b/util-linux.spec
@@ -1,7 +1,7 @@
 ### Header
 Summary: A collection of basic system utilities
 Name: util-linux
-Version: 2.23
+Version: 2.23.1
 Release: 1%{?dist}
 License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain
 Group: System Environment/Base
@@ -75,7 +75,10 @@ Requires: libmount = %{version}-%{release}
 ### Ready for upstream?
 ###
 # 151635 - makeing /var/log/lastlog
-Patch3: util-linux-ng-2.22-login-lastlog.patch
+Patch0: util-linux-ng-2.22-login-lastlog.patch
+
+### Backport from v2.24
+Patch1: util-linux-2.23-agetty-clocal.patch
 
 %description
 The util-linux package contains a large variety of low-level system
@@ -792,6 +795,10 @@ fi
 %{_libdir}/pkgconfig/uuid.pc
 
 %changelog
+* Tue May 28 2013 Karel Zak <kzak at redhat.com> 2.23.1-1
+- upgrade to 2.23.1
+- backport agetty --local-line path
+
 * Thu Apr 25 2013 Karel Zak <kzak at redhat.com> 2.23-1
 - upgrade to 2.23
 - add --with check to call make check


More information about the scm-commits mailing list