[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