2.24-0.1: upgrade

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2013-09-27 15:09:27 +02:00
parent f16c031219
commit 636ae6f91d
9 changed files with 44 additions and 381 deletions

1
.gitignore vendored
View File

@ -27,3 +27,4 @@
/util-linux-2.23.tar.xz
/util-linux-2.23.1.tar.xz
/util-linux-2.23.2.tar.xz
/util-linux-2.24-rc1.tar.xz

View File

@ -1,149 +0,0 @@
diff -up util-linux-2.23.2/term-utils/agetty.c.kzak util-linux-2.23.2/term-utils/agetty.c
--- util-linux-2.23.2/term-utils/agetty.c.kzak 2013-07-30 11:14:18.124912322 +0200
+++ util-linux-2.23.2/term-utils/agetty.c 2013-09-09 09:07:46.406689270 +0200
@@ -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 */
@@ -235,10 +242,13 @@ static void login_options_to_argv(char *
static char *fakehost;
#ifdef DEBUGGING
-#define debug(s) do { fprintf(dbf,s); fflush(dbf); } while (0)
+# ifndef DEBUG_OUTPUT
+# define DEBUG_OUTPUT "/dev/ttyp0"
+# endif
+# define debug(s) do { fprintf(dbf,s); fflush(dbf); } while (0)
FILE *dbf;
#else
-#define debug(s) do { ; } while (0)
+# define debug(s) do { ; } while (0)
#endif
int main(int argc, char **argv)
@@ -270,7 +280,7 @@ int main(int argc, char **argv)
sigaction(SIGINT, &sa, &sa_int);
#ifdef DEBUGGING
- dbf = fopen("/dev/ttyp0", "w");
+ dbf = fopen(DEBUG_OUTPUT, "w");
for (int i = 1; i < argc; i++)
debug(argv[i]);
#endif /* DEBUGGING */
@@ -311,8 +321,10 @@ int main(int argc, char **argv)
strlen(options.initstring));
}
- if (!serial_tty_option(&options, F_LOCAL))
- /* Go to blocking write mode unless -L is specified. */
+ if (options.flags & F_VCONSOLE || options.clocal != CLOCAL_MODE_ALWAYS)
+ /* Go to blocking mode unless -L is specified, this change
+ * affects stdout, stdin and stderr as all the file descriptors
+ * are created by dup(). */
fcntl(STDOUT_FILENO, F_SETFL,
fcntl(STDOUT_FILENO, F_GETFL, 0) & ~O_NONBLOCK);
@@ -420,6 +432,12 @@ int main(int argc, char **argv)
options.tty);
}
+#ifdef DEBUGGING
+ fprintf(dbf, "read %c\n", ch);
+ if (close_stream(dbf) != 0)
+ log_err("write failed: %s", DEBUG_OUTPUT);
+#endif
+
/* Let the login program take care of password validation. */
execv(options.login, login_argv);
log_err(_("%s: can't exec %s: %m"), options.tty, login_argv[0]);
@@ -534,7 +552,7 @@ static void parse_args(int argc, char **
{ "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' },
@@ -603,7 +621,18 @@ static void parse_args(int argc, char **
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;
@@ -1090,8 +1119,19 @@ static void termio_init(struct options *
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
@@ -1412,9 +1452,10 @@ static char *get_logname(struct options
if (read(STDIN_FILENO, &c, 1) < 1) {
- /* Do not report trivial like EINTR/EIO errors. */
+ /* The terminal could be open with O_NONBLOCK when
+ * -L (force CLOCAL) is specified... */
if (errno == EINTR || errno == EAGAIN) {
- usleep(1000);
+ usleep(250000);
continue;
}
switch (errno) {
@@ -1648,7 +1689,7 @@ static void __attribute__ ((__noreturn__
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);

View File

@ -1,39 +0,0 @@
From 44baaedaffee029dca76796b933412d97a19dff6 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 9 Sep 2013 10:57:50 +0200
Subject: [PATCH] libfdisk: fix SIGFPE
#0 recount_geometry at libfdisk/src/alignment.c:143
#1 fdisk_discover_geometry at libfdisk/src/alignment.c:205
#2 fdisk_context_assign_device at libfdisk/src/context.c:173
#3 print_partition_table_from_option at fdisks/fdisk.c:924
References: https://bugzilla.redhat.com/show_bug.cgi?id=1005566
Signed-off-by: Karel Zak <kzak@redhat.com>
---
libfdisk/src/alignment.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/libfdisk/src/alignment.c b/libfdisk/src/alignment.c
index ac44e73..4d4ab48 100644
--- a/libfdisk/src/alignment.c
+++ b/libfdisk/src/alignment.c
@@ -193,11 +193,12 @@ int fdisk_discover_geometry(struct fdisk_context *cxt)
/* what the kernel/bios thinks the geometry is */
blkdev_get_geometry(cxt->dev_fd, &h, &s);
- if (!h && !s) {
- /* unable to discover geometry, use default values */
- s = 63;
+
+ /* defaults */
+ if (!h)
h = 255;
- }
+ if (!s)
+ s = 63;
/* obtained heads and sectors */
cxt->geom.heads = h;
--
1.8.1.4

View File

@ -1,39 +0,0 @@
From 3f420a49dd4d0c413b635dd621aa34eebce2d3d2 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 5 Aug 2013 13:58:01 +0200
Subject: [PATCH] libmount: canonicalize for conversion from loopdev backing
file
# mount foo.img /mnt
# umount foo.img
umount: foo.img: not mounted
The loopdev code (and sysfs backing_file) uses absolute paths, but
libmount does not canonicalize the path before lookup for the backing file.
References: https://bugzilla.redhat.com/show_bug.cgi?id=950497
Signed-off-by: Karel Zak <kzak@redhat.com>
---
libmount/src/context_umount.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/libmount/src/context_umount.c b/libmount/src/context_umount.c
index 2b791c4..b02902c 100644
--- a/libmount/src/context_umount.c
+++ b/libmount/src/context_umount.c
@@ -161,7 +161,12 @@ try_loopdev:
struct stat st;
if (stat(tgt, &st) == 0 && S_ISREG(st.st_mode)) {
- int count = loopdev_count_by_backing_file(tgt, &loopdev);
+ int count;
+
+ cn_tgt = mnt_resolve_path(tgt, cache);
+ count = loopdev_count_by_backing_file(cn_tgt, &loopdev);
+ if (!cache)
+ free(cn_tgt);
if (count == 1) {
DBG(CXT, mnt_debug_h(cxt,
"umount: %s --> %s (retry)", tgt, loopdev));
--
1.8.1.4

View File

@ -1,47 +0,0 @@
From 9b5dc4cb8d5d82c31c0cda898832998c21afc303 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 9 Sep 2013 12:24:01 +0200
Subject: [PATCH] su: fix lastlog and btmp logging
The su(1) logging code mix ups "old" and "new" passwd structs. The
result is things like
Sep 9 11:50:45 x2 su: (to kzak) kzak on none
in /var/log/messages. The right log entry is
Sep 9 11:50:45 x2 su: (to root) kzak on pts/3
The bug has been introduced by commit c74a7af17c7a176c358dfaa8e1814786c89ebc14.
References: https://bugzilla.redhat.com/show_bug.cgi?id=1005194
Signed-off-by: Karel Zak <kzak@redhat.com>
---
login-utils/su-common.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/login-utils/su-common.c b/login-utils/su-common.c
index ade5c92..858af01 100644
--- a/login-utils/su-common.c
+++ b/login-utils/su-common.c
@@ -161,7 +161,7 @@ log_syslog(struct passwd const *pw, bool successful)
old_user = pwd ? pwd->pw_name : "";
}
- if (get_terminal_name(STDERR_FILENO, NULL, &tty, NULL) == 0 && tty)
+ if (get_terminal_name(STDERR_FILENO, NULL, &tty, NULL) != 0 || !tty)
tty = "none";
openlog (program_invocation_short_name, 0 , LOG_AUTH);
@@ -483,9 +483,6 @@ authenticate (const struct passwd *pw)
done:
- if (lpw && lpw->pw_name)
- pw = lpw;
-
log_syslog(pw, !is_pam_failure(retval));
if (is_pam_failure(retval))
--
1.8.1.4

View File

@ -1,48 +0,0 @@
diff -up util-linux-2.23.2/login-utils/su-common.c.kzak util-linux-2.23.2/login-utils/su-common.c
--- util-linux-2.23.2/login-utils/su-common.c.kzak 2013-07-30 10:39:26.223738407 +0200
+++ util-linux-2.23.2/login-utils/su-common.c 2013-09-09 09:32:05.497238691 +0200
@@ -111,6 +111,9 @@ static int same_session = 0;
/* SU_MODE_{RUNUSER,SU} */
static int su_mode;
+/* Don't print PAM info messages (Last login, etc.). */
+static int suppress_pam_info;
+
static bool _pam_session_opened;
static bool _pam_cred_established;
static sig_atomic_t volatile caught_signal = false;
@@ -208,10 +211,23 @@ static void log_btmp(struct passwd const
updwtmp(_PATH_BTMP, &ut);
}
+
+static int su_pam_conv(int num_msg, const struct pam_message **msg,
+ struct pam_response **resp, void *appdata_ptr)
+{
+ if (suppress_pam_info
+ && num_msg == 1
+ && msg
+ && msg[0]->msg_style == PAM_TEXT_INFO)
+ return PAM_SUCCESS;
+
+ return misc_conv(num_msg, msg, resp, appdata_ptr);
+}
+
static struct pam_conv conv =
{
- misc_conv,
- NULL
+ su_pam_conv,
+ NULL
};
static void
@@ -902,6 +918,9 @@ su_main (int argc, char **argv, int mode
init_groups (pw, groups, num_supp_groups);
+ if (!simulate_login || command)
+ suppress_pam_info = 1; /* don't print PAM info messages */
+
create_watching_parent ();
/* Now we're in the child. */

View File

@ -1,37 +0,0 @@
diff -up util-linux-2.23.2/tests/functions.sh.kzak util-linux-2.23.2/tests/functions.sh
--- util-linux-2.23.2/tests/functions.sh.kzak 2013-06-13 09:46:10.554651768 +0200
+++ util-linux-2.23.2/tests/functions.sh 2013-09-09 10:01:23.355469268 +0200
@@ -483,7 +483,7 @@ function ts_scsi_debug_init {
modprobe scsi_debug $*
[ "$?" == 0 ] || ts_die "Cannot init device"
- DEVNAME=$(grep scsi_debug /sys/block/*/device/model | awk -F '/' '{print $4}')
+ DEVNAME=$(grep --with-filename scsi_debug /sys/block/*/device/model | awk -F '/' '{print $4}')
[ "x${DEVNAME}" == "x" ] && ts_die "Cannot find device"
DEVICE="/dev/${DEVNAME}"
diff -up util-linux-2.23.2/tests/ts/cramfs/mkfs.kzak util-linux-2.23.2/tests/ts/cramfs/mkfs
--- util-linux-2.23.2/tests/ts/cramfs/mkfs.kzak 2013-06-13 09:46:10.557651793 +0200
+++ util-linux-2.23.2/tests/ts/cramfs/mkfs 2013-09-09 10:01:23.355469268 +0200
@@ -80,7 +80,7 @@ cd $TS_MOUNTPOINT
ts_log "list the image"
export TZ='GMT-1'
-ls -laR --time-style=long-iso . >> $TS_OUTPUT
+ls -laR --time-style=long-iso . | sed 's:\. : :g' >> $TS_OUTPUT
echo >> $TS_OUTPUT
ts_log "list checksums from new data"
diff -up util-linux-2.23.2/tests/ts/libmount/context-utab.kzak util-linux-2.23.2/tests/ts/libmount/context-utab
--- util-linux-2.23.2/tests/ts/libmount/context-utab.kzak 2013-06-13 09:46:10.561651827 +0200
+++ util-linux-2.23.2/tests/ts/libmount/context-utab 2013-09-09 10:01:23.355469268 +0200
@@ -85,7 +85,9 @@ grep -q $DEVICE $LIBMOUNT_UTAB && \
echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
ts_finalize_subtest
+
if [ -x "/sbin/mkfs.btrfs" ]; then
+ $TS_CMD_WIPEFS -a $DEVICE &> /dev/null
ts_log "Create filesystem [btrfs]"
/sbin/mkfs.btrfs -L "$LABEL" $DEVICE &> /dev/null
udevadm settle

View File

@ -1 +1 @@
b39fde897334a4858bb2098edcce5b3f util-linux-2.23.2.tar.xz
cd484c6c03d8c1242cc1eae9ea1f040e util-linux-2.24-rc1.tar.xz

View File

@ -1,13 +1,13 @@
### Header
Summary: A collection of basic system utilities
Name: util-linux
Version: 2.23.2
Release: 4%{?dist}
Version: 2.24
Release: 0.1%{?dist}
License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain
Group: System Environment/Base
URL: http://en.wikipedia.org/wiki/Util-linux
%define upstream_version %{version}
%define upstream_version %{version}-rc1
### Macros
%define cytune_archs %{ix86} alpha %{arm}
@ -25,9 +25,10 @@ BuildRequires: libutempter-devel
Buildrequires: systemd-devel
Buildrequires: libuser-devel
BuildRequires: libcap-ng-devel
BuildRequires: python3-devel
### Sources
Source0: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.23/util-linux-%{upstream_version}.tar.xz
Source0: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-%{upstream_version}.tar.xz
Source1: util-linux-login.pamd
Source2: util-linux-remote.pamd
Source3: util-linux-chsh-chfn.pamd
@ -46,8 +47,9 @@ Conflicts: coreutils < 8.20
# eject has been merged into util-linux v2.22
Obsoletes: eject <= 2.1.5
Provides: eject = 2.1.6
# sulogin, utmpdump merged into util-linux v2.22
Conflicts: sysvinit-tools < 2.88-8
# sulogin, utmpdump merged into util-linux v2.22;
# last, lastb merged into util-linux v2.24
Conflicts: sysvinit-tools < 2.88-14
# old versions of e2fsprogs contain fsck, uuidgen
Conflicts: e2fsprogs < 1.41.8-5
# rename from util-linux-ng back to util-linux
@ -77,20 +79,6 @@ Requires: libmount = %{version}-%{release}
# 151635 - makeing /var/log/lastlog
Patch0: 2.23-login-lastlog-create.patch
# v2.24 backport: #972457
Patch1: 2.24-agetty-clocal.patch
# v2.24 backport: #987787 - Remove lastlogin from su
Patch2: 2.24-su-suppress-PAM-info-messages.patch
# v2.24 backport: #950497 - problem umounting loop device
Patch3: 2.24-libmount-canonicalize-for-conversion-from-loopdev.patch
# v2.24 backport: #921498 - multiple internal testsuite failures
Patch4: 2.24-tests-portability.patch
# v2.24 backport: #1005566 - recount_geometry: Process /usr/sbin/fdisk was killed by signal 8 (SIGFPE)
Patch5: 2.24-libfdisk-fix-SIGFPE.patch
# v2.24 backport: #1005194 - su generates incorrect log entries
Patch6: 2.24-su-fix-lastlog-and-btmp-logging.patch
%description
The util-linux package contains a large variety of low-level system
utilities that are necessary for a Linux system to function. Among
@ -201,6 +189,18 @@ uniqueness of time-based UUID generation even at very high rates on
SMP systems.
%package -n python3-libmount
Summary: Python bindings for the libmount library
Group: Development/Libraries
Requires: libmount = %{version}-%{release}
%description -n python3-libmount
The libmount-python package contains a module that permits applications
written in the Python programming language to use the interface
supplied by the libmount library to work with mount tables (fstab,
mountinfo, etc) and mount filesystems.
%prep
%setup -q -n %{name}-%{upstream_version}
cp %{SOURCE8} %{SOURCE9} .
@ -218,13 +218,13 @@ export SUID_LDFLAGS="-pie -Wl,-z,relro -Wl,-z,now"
%configure \
--with-systemdsystemunitdir=%{_unitdir} \
--disable-silent-rules \
--disable-wall \
--disable-bfs \
--disable-pg \
--enable-socket-activation \
--enable-chfn-chsh \
--enable-write \
--enable-raw \
--with-python=3 \
--with-udev \
--with-selinux \
--with-audit \
@ -288,6 +288,8 @@ install -d ${RPM_BUILD_ROOT}/var/lib/libuuid
# libtool junk
rm -rf ${RPM_BUILD_ROOT}%{_libdir}/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.a
%ifarch %{sparc}
rm -rf ${RPM_BUILD_ROOT}%{_bindir}/sunhostid
@ -477,12 +479,15 @@ fi
%{_bindir}/ipcs
%{_bindir}/isosize
%{_bindir}/kill
%{_bindir}/last
%{_bindir}/lastb
%{_bindir}/logger
%{_bindir}/look
%{_bindir}/lsblk
%{_bindir}/lscpu
%{_bindir}/lslocks
%{_bindir}/mcookie
%{_bindir}/mesg
%{_bindir}/more
%{_bindir}/mountpoint
%{_bindir}/namei
@ -504,6 +509,7 @@ fi
%{_bindir}/unshare
%{_bindir}/utmpdump
%{_bindir}/uuidgen
%{_bindir}/wall
%{_bindir}/wdctl
%{_bindir}/whereis
%{_mandir}/man1/cal.1*
@ -525,11 +531,14 @@ fi
%{_mandir}/man1/ipcrm.1*
%{_mandir}/man1/ipcs.1*
%{_mandir}/man1/kill.1*
%{_mandir}/man1/last.1*
%{_mandir}/man1/lastb.1*
%{_mandir}/man1/logger.1*
%{_mandir}/man1/login.1*
%{_mandir}/man1/look.1*
%{_mandir}/man1/lscpu.1*
%{_mandir}/man1/mcookie.1*
%{_mandir}/man1/mesg.1*
%{_mandir}/man1/more.1*
%{_mandir}/man1/mountpoint.1*
%{_mandir}/man1/namei.1*
@ -551,6 +560,7 @@ fi
%{_mandir}/man1/unshare.1*
%{_mandir}/man1/utmpdump.1.gz
%{_mandir}/man1/uuidgen.1*
%{_mandir}/man1/wall.1*
%{_mandir}/man1/whereis.1*
%{_mandir}/man1/write.1*
%{_mandir}/man5/fstab.5*
@ -672,6 +682,7 @@ fi
%{compldir}/lscpu
%{compldir}/lslocks
%{compldir}/mcookie
%{compldir}/mesg
%{compldir}/mkfs
%{compldir}/mkfs.cramfs
%{compldir}/mkfs.minix
@ -706,6 +717,7 @@ fi
%{compldir}/unshare
%{compldir}/utmpdump
%{compldir}/uuidgen
%{compldir}/wall
%{compldir}/wdctl
%{compldir}/whereis
%{compldir}/wipefs
@ -805,7 +817,16 @@ fi
%{_mandir}/man3/uuid_unparse.3*
%{_libdir}/pkgconfig/uuid.pc
%files -n python3-libmount
%defattr(-, root, root)
%doc libmount/COPYING
%{_libdir}/python*/site-packages/libmount/*
%changelog
* Fri Sep 27 2013 Karel Zak <kzak@redhat.com> 2.24-0.1
- upgrade to upstream release v2.24-rc1
- add python3 libmount binding
* Mon Sep 9 2013 Karel Zak <kzak@redhat.com> 2.23.2-4
- fix #1005566 - recount_geometry: Process /usr/sbin/fdisk was killed by signal 8 (SIGFPE)
- fix #1005194 - su generates incorrect log entries