- rebuild F7 package to F8

This commit is contained in:
kzak 2007-08-13 21:08:43 +00:00
parent 7c423cb1a8
commit e87645308f
12 changed files with 460 additions and 9 deletions

View File

@ -0,0 +1,21 @@
From: Flávio Leitner <fleitner@redhat.com>
Subject: mount should set proper permissions on locktime
When creating the "/etc/mtab~" lockfile (specifically 'linktargetfile' in the
lock_mtab function), the file is created with incorrect permissions ('000')
which necessitates root to leverage CAP_DAC_OVERRIDE. If proper file modes (it
would appear 0600 would be sufficient) were used in the open this would
function properly with CAP_DAC_OVERRIDE revoked.
--- util-linux-2.12a/mount/fstab.c.kzak 2007-07-31 12:13:26.000000000 +0200
+++ util-linux-2.12a/mount/fstab.c 2007-07-31 12:13:11.000000000 +0200
@@ -433,7 +433,7 @@
linktargetfile = xmalloc(strlen(MOUNTLOCK_LINKTARGET) + 20);
sprintf(linktargetfile, MOUNTLOCK_LINKTARGET, getpid ());
- i = open (linktargetfile, O_WRONLY|O_CREAT, 0);
+ i = open (linktargetfile, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR);
if (i < 0) {
int errsv = errno;
/* linktargetfile does not exist (as a file)

View File

@ -0,0 +1,36 @@
commit 3281d4268a192cbd1951347a4a857b94428dc958
Author: Karel Zak <kzak@redhat.com>
Date: Wed Aug 1 15:06:18 2007 +0200
blockdev: fix "blockdev --getsz" for large devices
The "blockdev --getsz" command doesn't try to use BLKGETSIZE64 when
previous BLKGETSIZE failed with EFBIG. This patch fixes this problem.
Signed-off-by: Karel Zak <kzak@redhat.com>
diff --git a/disk-utils/blockdev.c b/disk-utils/blockdev.c
index 46b7fa7..0dd531c 100644
--- a/disk-utils/blockdev.c
+++ b/disk-utils/blockdev.c
@@ -9,6 +9,7 @@
#include <string.h>
#include <unistd.h>
#include <sys/ioctl.h>
+#include <errno.h>
#include "nls.h"
@@ -148,8 +149,10 @@ getsize(int fd, long long *sectors) {
long long b;
err = ioctl (fd, BLKGETSIZE, &sz);
- if (err)
- return err;
+ if (err) {
+ if (errno != EFBIG)
+ return err;
+ }
err = ioctl(fd, BLKGETSIZE64, &b);
if (err || b == 0 || b == sz)
*sectors = sz;

View File

@ -0,0 +1,69 @@
--- util-linux-2.13-pre7/disk-utils/blockdev.c.kzak 2007-08-02 13:24:45.000000000 +0200
+++ util-linux-2.13-pre7/disk-utils/blockdev.c 2007-08-02 13:24:45.000000000 +0200
@@ -77,6 +77,8 @@
#define ARGINTG 4
#define ARGLINTG 5
#define ARGLLINTG 6
+#define ARGLU 7
+#define ARGLLU 8
long argval;
char *argname;
char *help;
@@ -98,10 +100,10 @@
{ "--setbsz", "BLKBSZSET", BLKBSZSET, ARGINTAP, 0, "BLOCKSIZE", N_("set blocksize") },
#endif
#ifdef BLKGETSIZE
- { "--getsize", "BLKGETSIZE", BLKGETSIZE, ARGLINTG, -1, NULL, N_("get 32-bit sector count") },
+ { "--getsize", "BLKGETSIZE", BLKGETSIZE, ARGLU, -1, NULL, N_("get 32-bit sector count") },
#endif
#ifdef BLKGETSIZE64
- { "--getsize64", "BLKGETSIZE64", BLKGETSIZE64, ARGLLINTG, -1, NULL, N_("get size in bytes") },
+ { "--getsize64", "BLKGETSIZE64", BLKGETSIZE64, ARGLLU, -1, NULL, N_("get size in bytes") },
#endif
#ifdef BLKRASET
{ "--setra", "BLKRASET", BLKRASET, ARGINTA, 0, "READAHEAD", N_("set readahead") },
@@ -286,6 +288,8 @@
int iarg;
long larg;
long long llarg;
+ unsigned long lu;
+ unsigned long long llu;
int verbose = 0;
for (i = 1; i < d; i++) {
@@ -363,6 +367,15 @@
llarg = bdcms[j].argval;
res = ioctl(fd, bdcms[j].ioc, &llarg);
break;
+ case ARGLU:
+ lu = bdcms[j].argval;
+ res = ioctl(fd, bdcms[j].ioc, &lu);
+ break;
+ case ARGLLU:
+ llu = bdcms[j].argval;
+ res = ioctl(fd, bdcms[j].ioc, &llu);
+ break;
+
}
if (res == -1) {
perror(bdcms[j].iocname);
@@ -389,6 +402,19 @@
else
printf("%lld\n", llarg);
break;
+ case ARGLU:
+ if (verbose)
+ printf("%s: %lu\n", _(bdcms[j].help), lu);
+ else
+ printf("%lu\n", lu);
+ break;
+ case ARGLLU:
+ if (verbose)
+ printf("%s: %llu\n", _(bdcms[j].help), llu);
+ else
+ printf("%llu\n", llu);
+ break;
+
default:
if (verbose)
printf(_("%s succeeded.\n"), _(bdcms[j].help));

109
util-linux-2.13-cal-3.patch Normal file
View File

@ -0,0 +1,109 @@
--- util-linux-2.13-pre7/misc-utils/cal.c.kzak 2007-07-09 14:54:39.000000000 +0200
+++ util-linux-2.13-pre7/misc-utils/cal.c 2007-07-09 14:54:39.000000000 +0200
@@ -87,9 +87,13 @@
putp(s);
}
-static char *
+static const char *
my_tgetstr(char *s, char *ss) {
- return tigetstr(ss);
+ const char* ret = tigetstr(ss);
+ if (!ret || ret==(char*)-1)
+ return "";
+ else
+ return ret;
}
#elif defined(HAVE_LIBTERMCAP)
@@ -110,14 +114,20 @@
tputs (s, 1, putchar);
}
-static char *
+static const char *
my_tgetstr(char *s, char *ss) {
- return tgetstr(s, &strbuf);
+ const char* ret = tgetstr(s, &strbuf);
+ if (!ret)
+ return "";
+ else
+ return ret;
}
#endif
const char *term="";
const char *Senter="", *Sexit="";/* enter and exit standout mode */
+int Slen; /* strlen of Senter+Sexit */
+char *Hrow; /* pointer to highlighted row in month */
#ifdef HAVE_LANGINFO_H
# include <langinfo.h>
@@ -262,6 +272,7 @@
if (ret > 0) {
Senter = my_tgetstr("so","smso");
Sexit = my_tgetstr("se","rmso");
+ Slen = strlen(Senter) + strlen(Sexit);
}
}
#endif
@@ -437,11 +448,18 @@
sprintf(out->s[1],"%s",
julian ? j_day_headings : day_headings);
for (row = 0; row < 6; row++) {
- for (col = 0, p = lineout; col < 7; col++)
- p = ascii_day(p, days[row * 7 + col]);
+ int has_hl = 0;
+ for (col = 0, p = lineout; col < 7; col++) {
+ int xd = days[row * 7 + col];
+ if (xd != SPACE && (xd & TODAY_FLAG))
+ has_hl = 1;
+ p = ascii_day(p, xd);
+ }
*p = '\0';
trim_trailing_spaces(lineout);
sprintf(out->s[row+2], "%s", lineout);
+ if (has_hl)
+ Hrow = out->s[row+2];
}
}
@@ -489,14 +507,25 @@
do_monthly(day, prev_month, prev_year, &out_prev);
do_monthly(day, month, year, &out_curm);
do_monthly(day, next_month, next_year, &out_next);
+
width = (julian ? J_WEEK_LEN : WEEK_LEN) -1;
for (i = 0; i < 2; i++)
printf("%s %s %s\n", out_prev.s[i], out_curm.s[i], out_next.s[i]);
for (i = 2; i < FMT_ST_LINES; i++) {
+ int w1, w2, w3;
+ w1 = w2 = w3 = width;
+
+#if defined(HAVE_NCURSES) || defined(HAVE_LIBTERMCAP)
+ /* adjust width to allow for non printable characters */
+ w1 += (out_prev.s[i] == Hrow ? Slen : 0);
+ w2 += (out_curm.s[i] == Hrow ? Slen : 0);
+ w3 += (out_next.s[i] == Hrow ? Slen : 0);
+#endif
snprintf(lineout, SIZE(lineout), "%-*s %-*s %-*s\n",
- width, out_prev.s[i],
- width, out_curm.s[i],
- width, out_next.s[i]);
+ w1, out_prev.s[i],
+ w2, out_curm.s[i],
+ w3, out_next.s[i]);
+
#if defined(HAVE_NCURSES) || defined(HAVE_LIBTERMCAP)
my_putstring(lineout);
#else
--- util-linux-2.13-pre7/configure.ac.kzak 2007-07-09 14:54:48.000000000 +0200
+++ util-linux-2.13-pre7/configure.ac 2007-07-09 14:55:11.000000000 +0200
@@ -71,6 +71,7 @@
if test x$ac_cv_header_ncurses_h = xyes || test x$ac_cv_header_ncurses_ncurses_h = xyes; then
have_ncurses=yes
AC_MSG_NOTICE([you have ncurses])
+ AC_DEFINE(HAVE_NCURSES, 1, [Do we have -lncurses?])
else
AC_MSG_NOTICE([you do not have ncurses])
fi

View File

@ -0,0 +1,68 @@
The compat (32bit) version of sys_shmctl on 64bit kernel returns incorrect
information. In this case is better to read data from /proc/sys/kernel/shm*.
--- util-linux-2.13-pre7/sys-utils/ipcs.c.kzak 2007-06-25 10:25:31.000000000 +0200
+++ util-linux-2.13-pre7/sys-utils/ipcs.c 2007-06-25 10:14:06.000000000 +0200
@@ -253,6 +253,26 @@
printf(" %-10d\n", ipcp->gid);
}
+static unsigned long long
+shminfo_from_proc(const char *name, unsigned long def)
+{
+ char path[256];
+ char buf[64];
+ FILE *f;
+ unsigned long long res = def;
+
+ if (!name)
+ return res;
+
+ snprintf(path, sizeof(path), "/proc/sys/kernel/%s", name);
+
+ if (!(f = fopen(path, "r")))
+ return res;
+ if (fgets(buf, sizeof(buf), f))
+ res = atoll(buf);
+ fclose(f);
+ return res;
+}
void do_shm (char format)
{
@@ -268,7 +288,7 @@
printf (_("kernel not configured for shared memory\n"));
return;
}
-
+
switch (format) {
case LIMITS:
printf (_("------ Shared Memory Limits --------\n"));
@@ -276,18 +296,15 @@
return;
/* glibc 2.1.3 and all earlier libc's have ints as fields
of struct shminfo; glibc 2.1.91 has unsigned long; ach */
- printf (_("max number of segments = %lu\n"),
- (unsigned long) shminfo.shmmni);
- printf (_("max seg size (kbytes) = %lu\n"),
- (unsigned long) (shminfo.shmmax >> 10));
-
+ printf (_("max number of segments = %llu\n"),
+ shminfo_from_proc("shmmni", shminfo.shmmni));
+ printf (_("max seg size (kbytes) = %llu\n"),
+ (shminfo_from_proc("shmmax", shminfo.shmmax) >> 10));
+
/* max shmem = pagesize * shminfo.shmall / 1024
- *
- * note: that "shminfo.shmall * getpagesize()" is greater than ULONG_MAX (32bit)
- * it means that better is "/" before "*" or use "long long"
*/
- printf (_("max total shared memory (kbytes) = %lu\n"),
- getpagesize()/1024 * (unsigned long) shminfo.shmall);
+ printf (_("max total shared memory (kbytes) = %llu\n"),
+ getpagesize()/1024 * shminfo_from_proc("shmall", shminfo.shmall));
printf (_("min seg size (bytes) = %lu\n"),
(unsigned long) shminfo.shmmin);
return;

View File

@ -0,0 +1,16 @@
--- util-linux-2.13-pre7/config/include-Makefile.am.kzak 2007-06-25 11:15:40.000000000 +0200
+++ util-linux-2.13-pre7/config/include-Makefile.am 2007-06-25 11:16:39.000000000 +0200
@@ -3,10 +3,10 @@
datadir = $(prefix)/usr/share
infodir = $(datadir)/info
mandir = $(datadir)/man
+localedir = $(datadir)/locale
-AM_CPPFLAGS = -include $(top_builddir)/config.h -I$(top_srcdir)/include
+AM_CPPFLAGS = -include $(top_builddir)/config.h -I$(top_srcdir)/include \
+ -DLOCALEDIR=\"$(localedir)\"
DEFAULT_INCLUDES =
-DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
-

View File

@ -0,0 +1,34 @@
commit 2e039577c5eb895fab35aed136345a0c07d7a587
Author: Karel Zak <kzak@redhat.com>
Date: Mon Jul 2 23:35:08 2007 +0200
mount: use loop= option when mounting by /sbin/mount.<type>
The mount(8) calls external mount programs (/sbin/mount.<type>)
without the loop=/dev/loopN option. This patch fix this bug.
Signed-off-by: Karel Zak <kzak@redhat.com>
diff --git a/mount/mount.c b/mount/mount.c
index c27c5e5..50089a9 100644
--- a/mount/mount.c
+++ b/mount/mount.c
@@ -1057,6 +1057,9 @@ try_mount_one (const char *spec0, const char *node0, const char *types0,
goto out;
}
+ if (loop)
+ opt_loopdev = loopdev;
+
/*
* Call mount.TYPE for types that require a separate mount program.
* For the moment these types are ncpfs and smbfs. Maybe also vxfs.
@@ -1082,8 +1085,6 @@ try_mount_one (const char *spec0, const char *node0, const char *types0,
if (fake || mnt5_res == 0) {
/* Mount succeeded, report this (if verbose) and write mtab entry. */
- if (loop)
- opt_loopdev = loopdev;
if (!(mounttype & MS_PROPAGATION)) {
update_mtab_entry(loop ? loopfile : spec,

View File

@ -0,0 +1,44 @@
--- util-linux-2.13-pre7/mount/mount_constants.h.kzak 2007-08-08 16:48:29.000000000 +0200
+++ util-linux-2.13-pre7/mount/mount_constants.h 2007-08-08 16:48:30.000000000 +0200
@@ -57,6 +57,10 @@
#ifndef MS_VERBOSE
#define MS_VERBOSE 0x8000 /* 32768 */
#endif
+#ifndef MS_RELATIME
+#define MS_RELATIME 0x200000 /* 200000: Update access times relative
+ to mtime/ctime */
+#endif
#ifndef MS_UNBINDABLE
#define MS_UNBINDABLE (1<<17) /* 131072 unbindable*/
#endif
--- util-linux-2.13-pre7/mount/mount.8.kzak 2007-08-08 16:48:29.000000000 +0200
+++ util-linux-2.13-pre7/mount/mount.8 2007-08-08 16:48:30.000000000 +0200
@@ -623,6 +623,13 @@
.B nodiratime
Do not update directory inode access times on this filesystem.
.TP
+.B relatime
+Update inode access times relative to modify or change time. Access
+time is only updated if the previous access time was earlier than the
+current modify or change time. (Similar to noatime, but doesn't break
+mutt or other applications that need to know if a file has been read
+since the last time it was modified.)
+.TP
.B noauto
Can only be mounted explicitly (i.e., the
.B \-a
--- util-linux-2.13-pre7/mount/mount.c.kzak 2007-08-08 16:48:30.000000000 +0200
+++ util-linux-2.13-pre7/mount/mount.c 2007-08-08 16:53:02.000000000 +0200
@@ -177,6 +177,12 @@
{ "diratime", 0, 1, MS_NODIRATIME }, /* Update dir access times */
{ "nodiratime", 0, 0, MS_NODIRATIME },/* Do not update dir access times */
#endif
+#ifdef MS_RELATIME
+ { "relatime", 0, 0, MS_RELATIME }, /* Update access times relative to
+ mtime/ctime */
+ { "norelatime", 0, 1, MS_RELATIME }, /* Update access time without regard
+ to mtime/ctime */
+#endif
{ "kudzu", 0, 0, MS_COMMENT }, /* Silently remove this option (backwards compat use only - deprecated) */
{ "managed", 0, 0, MS_COMMENT }, /* Silently remove this option */
{ NULL, 0, 0, 0 }

View File

@ -0,0 +1,13 @@
--- util-linux-2.13-pre7/fdisk/sfdisk.c.kzak 2007-06-25 09:13:31.000000000 +0200
+++ util-linux-2.13-pre7/fdisk/sfdisk.c 2007-06-25 09:12:42.000000000 +0200
@@ -469,8 +469,8 @@
R = get_geometry(dev, fd, silent);
- B.heads = (U.heads ? U.heads : R.heads);
- B.sectors = (U.sectors ? U.sectors : R.sectors);
+ B.heads = (U.heads ? U.heads : (R.heads ? R.heads : 255));
+ B.sectors = (U.sectors ? U.sectors : (R.sectors ? R.sectors : 63));
B.cylinders = (U.cylinders ? U.cylinders : R.cylinders);
B.cylindersize = B.heads * B.sectors;

View File

@ -6,10 +6,10 @@ account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session optional pam_keyinit.so force revoke
session include system-auth
session required pam_loginuid.so
session optional pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session optional pam_keyinit.so force revoke
session optional pam_ck_connector.so

View File

@ -6,9 +6,10 @@ account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session optional pam_keyinit.so force revoke
session include system-auth
session required pam_loginuid.so
session optional pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session optional pam_keyinit.so force revoke

View File

@ -9,7 +9,7 @@
Summary: A collection of basic system utilities.
Name: util-linux
Version: 2.13
Release: 0.51%{?dist}
Release: 0.55%{?dist}
License: distributable
Group: System Environment/Base
@ -247,11 +247,23 @@ Patch262: util-linux-2.13-partx-man.patch
Patch263: util-linux-2.13-hwclock-systohc.patch
# 227903 - mount -f does not work with NFS-mounted
Patch264: util-linux-2.13-mount-fake.patch
# When adding patches, please make sure that it is easy to find out what bug # the
# patch fixes.
########### END upstreamable
# 243930 - Translation files exist, but are not being used
Patch265: util-linux-2.13-localedir.patch
# 228731 - sfdisk doesn't support DM-MP device (add default heads and sectors)
Patch266: util-linux-2.13-sfdisk-geo.patch
# 231192 - ipcs is not printing correct values on pLinux
Patch267: util-linux-2.13-ipcs-32bit.patch
# 245912 - mount doesn't write the 'loop=...' option in /etc/mtab when mounting a loop device
Patch268: util-linux-2.13-mount-loop.patch
# 213253 - "cal -3" generates improperly formatted output
Patch269: util-linux-2.13-cal-3.patch
# 236848 - mount/fstab.c:lock_mtab() should open with proper permissions
Patch270: util-linux-2.12a-mount-lockperm.patch
# 238918 - blockdev --getsize does not work properly on devices with more than 2^31 sectors
Patch271: util-linux-2.13-blockdev-errno.patch
Patch272: util-linux-2.13-blockdev-unsigned.patch
# backport MS_RELATIME
Patch273: util-linux-2.13-mount-relatime.patch
%description
The util-linux package contains a large variety of low-level system
@ -351,6 +363,15 @@ cp %{SOURCE8} %{SOURCE9} .
%patch262 -p1
%patch263 -p1
%patch264 -p1
%patch265 -p1
%patch266 -p1
%patch267 -p1
%patch268 -p1
%patch269 -p1
%patch270 -p1
%patch271 -p1
%patch272 -p1
%patch273 -p1
%build
unset LINGUAS || :
@ -764,6 +785,25 @@ exit 0
/sbin/losetup
%changelog
* Wed Aug 8 2007 Karel Zak <kzak@redhat.com> 2.13-0.55
- rebuild F7 package to F8
* Wed Aug 8 2007 Karel Zak <kzak@redhat.com> 2.13-0.54
- backport mount relatime patch
* Thu Aug 2 2007 Karel Zak <kzak@redhat.com> 2.13-0.53
- fix #236848 - mount/fstab.c:lock_mtab() should open with proper permissions
- fix #238918 - blockdev --getsize does not work properly on devices with more than 2^31 sectors
* Mon Jul 9 2007 Karel Zak <kzak@redhat.com> 2.13-0.52
- fix #245578 - login's PAM configuration inits the keyring at an inconvenient time
- fix #231532 - "pamconsole" not documented in mount(8)
- fix #243930 - translation files exist, but are not being used
- fix #228731 - sfdisk doesn't support DM-MP device (add default heads and sectors)
- fix #231192 - ipcs is not printing correct values on pLinux
- fix #245912 - mount doesn't write the 'loop=...' option in /etc/mtab when mounting a loop device
- fix #213253 - "cal -3" generates improperly formatted output
* Fri Apr 6 2007 Karel Zak <kzak@redhat.com> 2.13-0.51
- fix #150493 - hwclock --systohc sets clock 0.5 seconds slow
- fix #220873 - starting RPC idmapd: Error: RPC MTAB does not exist.