From 72576b42dd3aa9792637d3a39b6debeea591a768 Mon Sep 17 00:00:00 2001 From: kzak Date: Mon, 20 Aug 2007 11:25:12 +0000 Subject: [PATCH] util-linux is dead.... use util-linux-ng --- floppy-0.12-locale.patch | 10 - raw-handle-nonpresent-devs.patch | 73 - sources | 2 - util-linux-2.11f-rawman.patch | 14 - util-linux-2.11y-chsh-103004.patch | 19 - util-linux-2.11y-fdisksegv-103954.patch | 31 - util-linux-2.11y-multibyte.patch | 26 - util-linux-2.11y-procpartitions-37436.patch | 70 - util-linux-2.11y-skipraid2.patch | 109 - util-linux-2.12a-126572-fdiskman.patch | 32 - util-linux-2.12a-16415-rdevman.patch | 55 - util-linux-2.12a-ipcs-84243-86285.patch | 21 - util-linux-2.12a-mount-lockperm.patch | 21 - util-linux-2.12a-mount-man-cifs.patch | 19 - util-linux-2.12a-mountbylabel-dm.patch | 63 - util-linux-2.12a-pamsession.patch | 12 - util-linux-2.12a-pamstart.patch | 11 - util-linux-2.12a-partlimit.patch | 22 - util-linux-2.12a-raw-man-dd.patch | 28 - util-linux-2.12j-113790-hotkeys.patch | 44 - util-linux-2.12j-managed.patch | 11 - util-linux-2.12j-pamconsole.patch | 139 -- util-linux-2.12p-cal-wide.patch | 53 - util-linux-2.12p-col-EILSEQ.patch | 38 - util-linux-2.12p-execl.patch | 25 - util-linux-2.12p-fdformat-ide.patch | 22 - util-linux-2.12p-floppy-generic.patch | 102 - util-linux-2.12p-fstab-man.patch | 25 - util-linux-2.12p-ipcs-typo.patch | 14 - util-linux-2.12p-login-lastlog.patch | 11 - util-linux-2.12p-look-separator.patch | 16 - util-linux-2.12p-lvm2dupes-76467.patch | 27 - util-linux-2.12p-mount-ocfs2.patch | 187 -- util-linux-2.12p-mtab-lock.patch | 150 -- util-linux-2.12p-swaponsymlink-57300.patch | 24 - util-linux-2.12p-vipw-perm.patch | 16 - util-linux-2.13-arch.patch | 94 - util-linux-2.13-audit-hwclock.patch | 314 --- util-linux-2.13-audit-login.patch | 101 - util-linux-2.13-blockdev-errno.patch | 36 - util-linux-2.13-blockdev-unsigned.patch | 69 - util-linux-2.13-cal-3.patch | 109 - util-linux-2.13-cal-wide.patch | 236 -- util-linux-2.13-cramfs-maxentries.patch | 47 - util-linux-2.13-cramfs-zerofiles.patch | 11 - util-linux-2.13-ctrlaltdel-man.patch | 10 - util-linux-2.13-ctty3.patch | 102 - util-linux-2.13-fdisk-b-4096.patch | 15 - util-linux-2.13-fdisk-gpt.patch | 493 ----- util-linux-2.13-fdisk-isfull.patch | 103 - util-linux-2.13-fdisk-sectors.patch | 345 --- util-linux-2.13-hexdump-gcc.patch | 17 - util-linux-2.13-hwclock-systohc.patch | 46 - util-linux-2.13-ipcs-32bit.patch | 68 - util-linux-2.13-ipcs-shmax.patch | 18 - util-linux-2.13-localedir.patch | 16 - util-linux-2.13-login-hang.patch | 20 - util-linux-2.13-login-ipv6.patch | 80 - util-linux-2.13-login-pam-acct.patch | 31 - util-linux-2.13-login-timeval.patch | 49 - util-linux-2.13-losetup-all.patch | 160 -- util-linux-2.13-losetup-deprecated.patch | 13 - util-linux-2.13-losetup-rdonly.patch | 47 - util-linux-2.13-mkdir_p.patch | 97 - util-linux-2.13-mkswap-mounted.patch | 62 - util-linux-2.13-mkswap-selinux.patch | 81 - util-linux-2.13-more-CLOEXEC.patch | 19 - util-linux-2.13-moretc.patch | 106 - util-linux-2.13-mount-comment.patch | 14 - util-linux-2.13-mount-context.patch | 218 -- util-linux-2.13-mount-fake.patch | 11 - util-linux-2.13-mount-loop.patch | 34 - util-linux-2.13-mount-man-bugs.patch | 26 - util-linux-2.13-mount-man-nfs.patch | 84 - util-linux-2.13-mount-man-nfs4.patch | 106 - util-linux-2.13-mount-move.patch | 28 - util-linux-2.13-mount-nonfs.patch | 196 -- util-linux-2.13-mount-relatime.patch | 44 - util-linux-2.13-mount-sloppy.patch | 20 - util-linux-2.13-mount-subtree.patch | 187 -- util-linux-2.13-mount-twiceloop.patch | 72 - util-linux-2.13-mount-uhelper.patch | 68 - util-linux-2.13-mount-uuid.patch | 60 - util-linux-2.13-namei-logic.patch | 129 -- util-linux-2.13-partx-man.patch | 129 -- util-linux-2.13-raw-raw0.patch | 45 - util-linux-2.13-rmparts.patch | 105 - util-linux-2.13-schedutils-SCHED_BATCH.patch | 102 - util-linux-2.13-schedutils-man.patch | 22 - util-linux-2.13-sfdisk-geo.patch | 13 - util-linux-2.13-swap-page.patch | 68 - util-linux-2.13-swapon-suspend.patch | 161 -- util-linux-2.13-umount-sysfs.patch | 11 - util-linux.spec | 2035 ------------------ 94 files changed, 8545 deletions(-) delete mode 100644 floppy-0.12-locale.patch delete mode 100644 raw-handle-nonpresent-devs.patch delete mode 100644 sources delete mode 100644 util-linux-2.11f-rawman.patch delete mode 100644 util-linux-2.11y-chsh-103004.patch delete mode 100644 util-linux-2.11y-fdisksegv-103954.patch delete mode 100644 util-linux-2.11y-multibyte.patch delete mode 100644 util-linux-2.11y-procpartitions-37436.patch delete mode 100644 util-linux-2.11y-skipraid2.patch delete mode 100644 util-linux-2.12a-126572-fdiskman.patch delete mode 100644 util-linux-2.12a-16415-rdevman.patch delete mode 100644 util-linux-2.12a-ipcs-84243-86285.patch delete mode 100644 util-linux-2.12a-mount-lockperm.patch delete mode 100644 util-linux-2.12a-mount-man-cifs.patch delete mode 100644 util-linux-2.12a-mountbylabel-dm.patch delete mode 100644 util-linux-2.12a-pamsession.patch delete mode 100644 util-linux-2.12a-pamstart.patch delete mode 100644 util-linux-2.12a-partlimit.patch delete mode 100644 util-linux-2.12a-raw-man-dd.patch delete mode 100644 util-linux-2.12j-113790-hotkeys.patch delete mode 100644 util-linux-2.12j-managed.patch delete mode 100644 util-linux-2.12j-pamconsole.patch delete mode 100644 util-linux-2.12p-cal-wide.patch delete mode 100644 util-linux-2.12p-col-EILSEQ.patch delete mode 100644 util-linux-2.12p-execl.patch delete mode 100644 util-linux-2.12p-fdformat-ide.patch delete mode 100644 util-linux-2.12p-floppy-generic.patch delete mode 100644 util-linux-2.12p-fstab-man.patch delete mode 100644 util-linux-2.12p-ipcs-typo.patch delete mode 100644 util-linux-2.12p-login-lastlog.patch delete mode 100644 util-linux-2.12p-look-separator.patch delete mode 100644 util-linux-2.12p-lvm2dupes-76467.patch delete mode 100644 util-linux-2.12p-mount-ocfs2.patch delete mode 100644 util-linux-2.12p-mtab-lock.patch delete mode 100644 util-linux-2.12p-swaponsymlink-57300.patch delete mode 100644 util-linux-2.12p-vipw-perm.patch delete mode 100644 util-linux-2.13-arch.patch delete mode 100644 util-linux-2.13-audit-hwclock.patch delete mode 100644 util-linux-2.13-audit-login.patch delete mode 100644 util-linux-2.13-blockdev-errno.patch delete mode 100644 util-linux-2.13-blockdev-unsigned.patch delete mode 100644 util-linux-2.13-cal-3.patch delete mode 100644 util-linux-2.13-cal-wide.patch delete mode 100644 util-linux-2.13-cramfs-maxentries.patch delete mode 100644 util-linux-2.13-cramfs-zerofiles.patch delete mode 100644 util-linux-2.13-ctrlaltdel-man.patch delete mode 100644 util-linux-2.13-ctty3.patch delete mode 100644 util-linux-2.13-fdisk-b-4096.patch delete mode 100644 util-linux-2.13-fdisk-gpt.patch delete mode 100644 util-linux-2.13-fdisk-isfull.patch delete mode 100644 util-linux-2.13-fdisk-sectors.patch delete mode 100644 util-linux-2.13-hexdump-gcc.patch delete mode 100644 util-linux-2.13-hwclock-systohc.patch delete mode 100644 util-linux-2.13-ipcs-32bit.patch delete mode 100644 util-linux-2.13-ipcs-shmax.patch delete mode 100644 util-linux-2.13-localedir.patch delete mode 100644 util-linux-2.13-login-hang.patch delete mode 100644 util-linux-2.13-login-ipv6.patch delete mode 100644 util-linux-2.13-login-pam-acct.patch delete mode 100644 util-linux-2.13-login-timeval.patch delete mode 100644 util-linux-2.13-losetup-all.patch delete mode 100644 util-linux-2.13-losetup-deprecated.patch delete mode 100644 util-linux-2.13-losetup-rdonly.patch delete mode 100644 util-linux-2.13-mkdir_p.patch delete mode 100644 util-linux-2.13-mkswap-mounted.patch delete mode 100644 util-linux-2.13-mkswap-selinux.patch delete mode 100644 util-linux-2.13-more-CLOEXEC.patch delete mode 100644 util-linux-2.13-moretc.patch delete mode 100644 util-linux-2.13-mount-comment.patch delete mode 100644 util-linux-2.13-mount-context.patch delete mode 100644 util-linux-2.13-mount-fake.patch delete mode 100644 util-linux-2.13-mount-loop.patch delete mode 100644 util-linux-2.13-mount-man-bugs.patch delete mode 100644 util-linux-2.13-mount-man-nfs.patch delete mode 100644 util-linux-2.13-mount-man-nfs4.patch delete mode 100644 util-linux-2.13-mount-move.patch delete mode 100644 util-linux-2.13-mount-nonfs.patch delete mode 100644 util-linux-2.13-mount-relatime.patch delete mode 100644 util-linux-2.13-mount-sloppy.patch delete mode 100644 util-linux-2.13-mount-subtree.patch delete mode 100644 util-linux-2.13-mount-twiceloop.patch delete mode 100644 util-linux-2.13-mount-uhelper.patch delete mode 100644 util-linux-2.13-mount-uuid.patch delete mode 100644 util-linux-2.13-namei-logic.patch delete mode 100644 util-linux-2.13-partx-man.patch delete mode 100644 util-linux-2.13-raw-raw0.patch delete mode 100644 util-linux-2.13-rmparts.patch delete mode 100644 util-linux-2.13-schedutils-SCHED_BATCH.patch delete mode 100644 util-linux-2.13-schedutils-man.patch delete mode 100644 util-linux-2.13-sfdisk-geo.patch delete mode 100644 util-linux-2.13-swap-page.patch delete mode 100644 util-linux-2.13-swapon-suspend.patch delete mode 100644 util-linux-2.13-umount-sysfs.patch delete mode 100644 util-linux.spec diff --git a/floppy-0.12-locale.patch b/floppy-0.12-locale.patch deleted file mode 100644 index 9c1aa53..0000000 --- a/floppy-0.12-locale.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- floppy-0.12/superfloppy.c.fixfail 2004-07-15 14:41:21.835145325 -0400 -+++ floppy-0.12/superfloppy.c 2004-07-15 14:41:32.385876513 -0400 -@@ -12,6 +12,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/raw-handle-nonpresent-devs.patch b/raw-handle-nonpresent-devs.patch deleted file mode 100644 index 1dd0b76..0000000 --- a/raw-handle-nonpresent-devs.patch +++ /dev/null @@ -1,73 +0,0 @@ ---- util-linux-2.12a/disk-utils/raw.c.=K0000=.orig -+++ util-linux-2.12a/disk-utils/raw.c -@@ -31,6 +31,7 @@ - #endif - #define DEVFS_RAWCTLDEV "/dev/raw/rawctl" - -+#define RAW_NR_MINORS 8192 - - char * progname; - int do_query = 0; -@@ -94,7 +95,7 @@ int main(int argc, char *argv[]) - if (do_query_all) { - if (optind < argc) - usage(1); -- for (i=1; i<255; i++) -+ for (i = 1; i < RAW_NR_MINORS; i++) - query(i, 1); - exit(0); - } -@@ -109,9 +110,16 @@ int main(int argc, char *argv[]) - - err = stat(raw_name, &statbuf); - if (err) { -- fprintf (stderr, "Cannot locate raw device '%s' (%s)\n", -- raw_name, strerror(errno)); -- exit(2); -+ int rc; -+ -+ rc = sscanf(raw_name, RAWDEVDIR "raw%d", &raw_minor); -+ if (rc != 1) { -+ fprintf (stderr, -+ "Cannot locate raw device '%s' (%s)\n", -+ raw_name, strerror(errno)); -+ exit(2); -+ } -+ goto skip_test_rawdev; - } - - if (!S_ISCHR(statbuf.st_mode)) { -@@ -127,6 +135,7 @@ int main(int argc, char *argv[]) - - raw_minor = minor(statbuf.st_rdev); - -+skip_test_rawdev: - if (do_query) - return query(raw_minor, 0); - -@@ -193,6 +202,7 @@ void open_raw_ctl(void) - int query(int minor, int quiet) - { - struct raw_config_request rq; -+ static int has_worked = 0; - int err; - - rq.raw_minor = minor; -@@ -200,11 +210,17 @@ int query(int minor, int quiet) - if (err < 0) { - if (quiet && errno == ENODEV) - return 3; -+ if (has_worked && errno == EINVAL) -+ return 0; - fprintf (stderr, - "Error querying raw device (%s)\n", - strerror(errno)); - exit(3); - } -+ /* If one query has worked, mark that fact so that we don't -+ * report spurious fatal errors if raw(8) has been built to -+ * support more raw minor numbers than the kernel has. */ -+ has_worked = 1; - if (quiet && !rq.block_major && !rq.block_minor) - return 0; - printf (RAWDEVDIR "raw%d: bound to major %d, minor %d\n", diff --git a/sources b/sources deleted file mode 100644 index dcc01f1..0000000 --- a/sources +++ /dev/null @@ -1,2 +0,0 @@ -7d3ac81855e26687dada6a31d2677875 floppy-0.12.tar.gz -13cdf4b76533e8421dc49de188f85291 util-linux-2.13-pre7.tar.bz2 diff --git a/util-linux-2.11f-rawman.patch b/util-linux-2.11f-rawman.patch deleted file mode 100644 index c891c2b..0000000 --- a/util-linux-2.11f-rawman.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- util-linux-2.11f/disk-utils/raw.8.sopwith Tue Feb 26 13:15:34 2002 -+++ util-linux-2.11f/disk-utils/raw.8 Tue Feb 26 13:16:28 2002 -@@ -58,6 +58,11 @@ - disk, they must be an exact number of sectors long, and the data buffer - in virtual memory must also be aligned to a multiple of the sector - size. The sector size is 512 bytes for most devices. -+.PP -+Use the /etc/sysconfig/rawdevices file to define the set of raw device -+mappings automatically created during the system startup sequence. The -+format of the file is the same used in the command line with the exception -+that the "raw" command itself is omitted. - .SH OPTIONS - .TP - .B -q diff --git a/util-linux-2.11y-chsh-103004.patch b/util-linux-2.11y-chsh-103004.patch deleted file mode 100644 index 2bafab1..0000000 --- a/util-linux-2.11y-chsh-103004.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- util-linux-2.11y/login-utils/chsh.c.sopwith Fri Sep 5 08:51:49 2003 -+++ util-linux-2.11y/login-utils/chsh.c Fri Sep 5 08:53:43 2003 -@@ -185,7 +185,6 @@ - printf (_("Shell not changed.\n")); - return 0; - } -- if (!strcmp(shell, "/bin/sh")) shell = ""; - pw->pw_shell = shell; - if (setpwnam (pw) < 0) { - perror ("setpwnam"); -@@ -299,6 +298,8 @@ - check_shell (char *shell) { - int i, c; - -+ if (! *shell) shell = "/bin/sh"; /* Fudge it */ -+ - if (*shell != '/') { - printf (_("%s: shell must be a full path name.\n"), whoami); - return (-1); diff --git a/util-linux-2.11y-fdisksegv-103954.patch b/util-linux-2.11y-fdisksegv-103954.patch deleted file mode 100644 index 367edb9..0000000 --- a/util-linux-2.11y-fdisksegv-103954.patch +++ /dev/null @@ -1,31 +0,0 @@ -*** util-linux-2.11y/fdisk/fdisk.c.000 2003-09-08 14:47:41.000000000 +0200 ---- util-linux-2.11y/fdisk/fdisk.c 2003-09-08 15:01:42.000000000 +0200 -*************** -*** 2020,2028 **** - for (i = 0; i < 4; i++) - free_primary += !ptes[i].part_table->sys_ind; - -! if (!free_primary && partitions >= MAXIMUM_PARTS) { -! printf(_("The maximum number of partitions has been created\n")); -! return; - } - - if (!free_primary) { ---- 2020,2036 ---- - for (i = 0; i < 4; i++) - free_primary += !ptes[i].part_table->sys_ind; - -! // Fix to only add primary partition if all logical partions are used -! if (partitions >= MAXIMUM_PARTS) { -! if (!free_primary) { -! printf(_("The maximum number of partitions has been created\n")); -! return; -! } -! else { -! add_partition(get_partition(0, 4), -! LINUX_NATIVE); -! return; -! } - } - - if (!free_primary) { diff --git a/util-linux-2.11y-multibyte.patch b/util-linux-2.11y-multibyte.patch deleted file mode 100644 index 46915e0..0000000 --- a/util-linux-2.11y-multibyte.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- util-linux-2.11y/text-utils/more.c.multibyte 2003-02-03 16:22:32.000000000 +0000 -+++ util-linux-2.11y/text-utils/more.c 2003-02-03 17:03:45.000000000 +0000 -@@ -1163,7 +1163,23 @@ - my_putstring(state ? ULenter : ULexit); - } - if (c != ' ' || pstate == 0 || state != 0 || ulglitch == 0) -+#ifdef ENABLE_WIDECHAR -+ { -+ wchar_t wc; -+ size_t mblength; -+ mbstate_t state; -+ memset (&state, '\0', sizeof (mbstate_t)); -+ s--; n++; -+ mblength = mbrtowc (&wc, s, n, &state); -+ if (mblength == (size_t) -2 || mblength == (size_t) -1) -+ mblength = 1; -+ while (mblength--) -+ putchar (*s++); -+ n += mblength; -+ } -+#else - putchar(c); -+#endif /* ENABLE_WIDECHAR */ - if (state && *chUL) { - pr(chBS); - my_putstring(chUL); diff --git a/util-linux-2.11y-procpartitions-37436.patch b/util-linux-2.11y-procpartitions-37436.patch deleted file mode 100644 index 978e906..0000000 --- a/util-linux-2.11y-procpartitions-37436.patch +++ /dev/null @@ -1,70 +0,0 @@ ---- util-linux-2.11y/disk-utils/blockdev.c.procpartitions 2002-03-08 17:57:02.000000000 -0500 -+++ util-linux-2.11y/disk-utils/blockdev.c 2003-01-13 14:28:41.000000000 -0500 -@@ -290,6 +290,7 @@ - char ptname[200]; - char device[210]; - int ma, mi, sz; -+ char iobuf[32*1024]; - - procpt = fopen(PROC_PARTITIONS, "r"); - if (!procpt) { -@@ -297,6 +298,7 @@ - progname, PROC_PARTITIONS); - exit(1); - } -+ setvbuf(procpt, iobuf, _IOFBF, sizeof(iobuf)); - - while (fgets(line, sizeof(line), procpt)) { - if (sscanf (line, " %d %d %d %[^\n ]", ---- util-linux-2.11y/fdisk/fdisk.c.procpartitions 2003-01-13 14:28:41.000000000 -0500 -+++ util-linux-2.11y/fdisk/fdisk.c 2003-01-13 14:28:41.000000000 -0500 -@@ -2371,12 +2371,14 @@ - FILE *procpt; - char line[100], ptname[100], devname[120], *s; - int ma, mi, sz; -+ char iobuf[32*1024]; - - procpt = fopen(PROC_PARTITIONS, "r"); - if (procpt == NULL) { - fprintf(stderr, _("cannot open %s\n"), PROC_PARTITIONS); - return; - } -+ setvbuf(procpt, iobuf, _IOFBF, sizeof(iobuf)); - - while (fgets(line, sizeof(line), procpt)) { - if (sscanf (line, " %d %d %d %[^\n ]", ---- util-linux-2.11y/mount/mount_by_label.c.procpartitions 2002-11-26 04:23:49.000000000 -0500 -+++ util-linux-2.11y/mount/mount_by_label.c 2003-01-13 14:31:53.000000000 -0500 -@@ -136,9 +136,7 @@ - char device[110]; - int firstPass; - int handleOnFirst; --#if 0 - char iobuf[32*1024]; /* For setvbuf */ --#endif - - if (uuidCache) - return; -@@ -155,7 +153,6 @@ - PROC_PARTITIONS); - return; - } --#if 0 - /* Ugly kludge - the contents of /proc/partitions change in time, - and this causes failures when the file is not read in one go. - In particular, one cannot use stdio on /proc/partitions. -@@ -166,9 +163,12 @@ - to keep statistics in /proc/partitions. Of course, statistics belong - in some /proc/diskstats, not in some /proc file that happened to - exist already. */ -- -+/* Until someone actually implements something else, /proc/partitions _IS_ -+ /proc/diskstats. And no matter what file we are reading, we will still -+ need to increase the buffer size, because 8k is just not Enough For -+ Everyone even if stats aren't in /proc/partitions. -+*/ - setvbuf(procpt, iobuf, _IOFBF, sizeof(iobuf)); --#endif - - for (firstPass = 1; firstPass >= 0; firstPass--) { - fseek(procpt, 0, SEEK_SET); diff --git a/util-linux-2.11y-skipraid2.patch b/util-linux-2.11y-skipraid2.patch deleted file mode 100644 index 4778706..0000000 --- a/util-linux-2.11y-skipraid2.patch +++ /dev/null @@ -1,109 +0,0 @@ ---- util-linux-2.11y/mount/linux_fs.h.skipraid2 2002-10-07 09:08:22.000000000 -0400 -+++ util-linux-2.11y/mount/linux_fs.h 2003-01-13 14:42:57.000000000 -0500 -@@ -13,6 +13,12 @@ - #endif - #endif - -+#include -+#ifndef BLKGETSIZE64 -+#include -+#define BLKGETSIZE64 _IOR(0x12,114,sizeof(uint64_t)) -+#endif -+ - #define MINIX_SUPER_MAGIC 0x137F /* minix v1, 14 char names */ - #define MINIX_SUPER_MAGIC2 0x138F /* minix v1, 30 char names */ - #define MINIX2_SUPER_MAGIC 0x2468 /* minix v2, 14 char names */ ---- util-linux-2.11y/mount/get_label_uuid.c.skipraid2 2003-01-13 14:44:04.000000000 -0500 -+++ util-linux-2.11y/mount/get_label_uuid.c 2003-01-13 14:46:34.000000000 -0500 -@@ -6,6 +6,8 @@ - #include - #include - #include -+#include -+#include - - #include "linux_fs.h" - #include "get_label_uuid.h" -@@ -19,28 +21,62 @@ - * not on the disks that form the raid array. This test causes a lot of - * problems when run on my striped promise fasttrak 100 array." - */ --static inline int --is_raid_partition(int fd) { --#if 0 -- struct mdp_super_block mdsb; -- int n; -- -- /* hardcode 4096 here in various places, because that's -- what it's defined to be. Note that even if we used -- the actual kernel headers, sizeof(mdp_super_t) is -- slightly larger in the 2.2 kernel on 64-bit archs, -- so using that wouldn't work. */ -- lseek(fd, -4096, SEEK_END); /* Ignore possible error -- about return value overflow */ -- n = 4096; -- if (sizeof(mdsb) < n) -- n = sizeof(mdsb); -- if (read(fd, &mdsb, n) != n) -- return 1; /* error */ -- return (mdsbmagic(mdsb) == MD_SB_MAGIC); -+ -+#if BYTE_ORDER == BIG_ENDIAN -+#define INT32_FROM_LE(val) ((unsigned int) ( \ -+ (((unsigned int) (val) & (unsigned int) 0x000000ffU) << 24) | \ -+ (((unsigned int) (val) & (unsigned int) 0x0000ff00U) << 8) | \ -+ (((unsigned int) (val) & (unsigned int) 0x00ff0000U) >> 8) | \ -+ (((unsigned int) (val) & (unsigned int) 0xff000000U) >> 24))) - #else -- return 0; -+#define INT32_FROM_LE(val) (val) -+#endif -+ -+typedef struct { -+ unsigned int md_magic; -+} mdp_super_t; -+#ifndef MD_SB_MAGIC -+#define MD_SB_MAGIC 0xa92b4efc -+#endif -+#ifndef MD_RESERVED_BYTES -+#define MD_RESERVED_BYTES 65536L - #endif -+#ifndef MD_NEW_SIZE_BYTES -+#define MD_NEW_SIZE_BYTES(x) ((x & ~(MD_RESERVED_BYTES - 1L)) - MD_RESERVED_BYTES) -+#endif -+ -+static int -+is_raid_partition(int fd) -+{ -+ mdp_super_t mdsb; -+ int n; -+ struct stat sbuf; -+ if(fstat(fd, &sbuf)) -+ return 2; -+ if(!sbuf.st_size) { -+ uint64_t bsize64; -+ unsigned int bsize32; -+ if(!ioctl(fd, BLKGETSIZE64, &bsize64)) -+ sbuf.st_size = bsize64; -+ else if(!ioctl(fd, BLKGETSIZE, &bsize32)) -+ sbuf.st_size = bsize32; -+ } -+ if(!sbuf.st_size) return 3; -+ /* hardcode 4096 here in various places, -+ because that's what it's defined to be. -+ Note that even if we used the actual kernel headers, -+ sizeof(mdp_super_t) is slightly larger in the 2.2 kernel on 64-bit -+ archs, so using that wouldn't work. */ -+ lseek(fd, MD_NEW_SIZE_BYTES(sbuf.st_size), SEEK_SET); -+ n = 4096; if(sizeof(mdsb) < n) n = sizeof(mdsb); -+ if(read(fd, &mdsb, n) != n) -+ return 4; /* error */ -+ mdsb.md_magic = INT32_FROM_LE(mdsb.md_magic); -+ return (mdsb.md_magic == MD_SB_MAGIC); /* If this device has a -+ RAID superblock at -+ the end, it must be -+ part of a RAID -+ array. */ - } - - /* for now, only ext2, ext3, xfs, ocfs are supported */ diff --git a/util-linux-2.12a-126572-fdiskman.patch b/util-linux-2.12a-126572-fdiskman.patch deleted file mode 100644 index 5142d1b..0000000 --- a/util-linux-2.12a-126572-fdiskman.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- util-linux-2.12a/fdisk/fdisk.8.sopwith 2004-07-09 17:49:08.522648265 -0400 -+++ util-linux-2.12a/fdisk/fdisk.8 2004-07-09 17:50:24.281128923 -0400 -@@ -213,28 +213,9 @@ - There are several *fdisk programs around. - Each has its problems and strengths. - Try them in the order --.BR cfdisk , -+.BR parted , - .BR fdisk , - .BR sfdisk . --(Indeed, --.B cfdisk --is a beautiful program that has strict requirements on --the partition tables it accepts, and produces high quality partition --tables. Use it if you can. --.B fdisk --is a buggy program that does fuzzy things - usually it happens to --produce reasonable results. Its single advantage is that it has --some support for BSD disk labels and other non-DOS partition tables. --Avoid it if you can. --.B sfdisk --is for hackers only - the user interface is terrible, but it is --more correct than fdisk and more powerful than both fdisk and cfdisk. --Moreover, it can be used noninteractively.) --.PP --These days there also is --.BR parted . --The cfdisk interface is nicer, but parted does much more: it not only --resizes partitions, but also the filesystems that live in them. - .PP - The IRIX/SGI type disklabel is currently not supported by the kernel. - Moreover, IRIX/SGI header directories are not fully supported yet. diff --git a/util-linux-2.12a-16415-rdevman.patch b/util-linux-2.12a-16415-rdevman.patch deleted file mode 100644 index 4003e43..0000000 --- a/util-linux-2.12a-16415-rdevman.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- util-linux-2.12a/fdisk/fdisk.8.sopwith 2004-08-20 14:46:47.062722632 -0400 -+++ util-linux-2.12a/fdisk/fdisk.8 2004-08-20 14:47:12.496816302 -0400 -@@ -149,12 +149,12 @@ - this extra information even if the /U flag is given -- we consider - this a bug in DOS FORMAT and DOS FDISK. - --The bottom line is that if you use cfdisk or fdisk to change the size of a -+The bottom line is that if you use fdisk to change the size of a - DOS partition table entry, then you must also use - .B dd - to zero the first 512 bytes of that partition before using DOS FORMAT to --format the partition. For example, if you were using cfdisk to make a DOS --partition table entry for /dev/hda1, then (after exiting fdisk or cfdisk -+format the partition. For example, if you were using disk to make a DOS -+partition table entry for /dev/hda1, then (after exiting fdisk - and rebooting Linux so that the partition table information is valid) you - would use the command "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" to zero - the first 512 bytes of the partition. -@@ -166,7 +166,7 @@ - - For best results, you should always use an OS-specific partition table - program. For example, you should make DOS partitions with the DOS FDISK --program and Linux partitions with the Linux fdisk or Linux cfdisk program. -+program and Linux partitions with the Linux fdisk program. - - .SH OPTIONS - .TP -@@ -228,7 +228,6 @@ - .\" Andreas Neuper (ANeuper@GUUG.de) - .\" and many others. - .SH "SEE ALSO" --.BR cfdisk (8), - .BR mkfs (8), - .BR parted (8), - .BR sfdisk (8) ---- util-linux-2.12a/sys-utils/rdev.8.sopwith 2004-08-20 11:35:56.740842004 -0400 -+++ util-linux-2.12a/sys-utils/rdev.8 2004-08-20 11:38:38.291622818 -0400 -@@ -79,7 +79,8 @@ - .B ramsize - command, the - .B size --parameter specifies the size of the RAM disk in kilobytes. -+parameter specifies the size of the RAM disk in kilobytes. 2.0.x kernels and newer dynamically allocate the ramdisk -+and do not need this setting. - - For the - .B rootflags -@@ -121,6 +122,7 @@ - .B rdev - to act like - .BR ramsize . -+(Not relevant for 2.0.x and newer kernels.) - .TP - .B \-R - Causes diff --git a/util-linux-2.12a-ipcs-84243-86285.patch b/util-linux-2.12a-ipcs-84243-86285.patch deleted file mode 100644 index c20e5ba..0000000 --- a/util-linux-2.12a-ipcs-84243-86285.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- util-linux-2.12a/sys-utils/ipcs.c.ipcs 2004-03-04 14:28:42.000000000 -0500 -+++ util-linux-2.12a/sys-utils/ipcs.c 2004-05-26 18:05:44.967792668 -0400 -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - #include "nls.h" - - /* X/OPEN tells us to use for semctl() */ -@@ -279,8 +280,8 @@ - (unsigned long) shminfo.shmmni); - printf (_("max seg size (kbytes) = %lu\n"), - (unsigned long) (shminfo.shmmax >> 10)); -- printf (_("max total shared memory (pages) = %lu\n"), -- (unsigned long) shminfo.shmall); -+ printf (_("max total shared memory (kbytes) = %lu\n"), -+ (getpagesize()*((unsigned long) shminfo.shmall))/1024UL); - printf (_("min seg size (bytes) = %lu\n"), - (unsigned long) shminfo.shmmin); - return; diff --git a/util-linux-2.12a-mount-lockperm.patch b/util-linux-2.12a-mount-lockperm.patch deleted file mode 100644 index d60538c..0000000 --- a/util-linux-2.12a-mount-lockperm.patch +++ /dev/null @@ -1,21 +0,0 @@ - -From: Flávio Leitner -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) diff --git a/util-linux-2.12a-mount-man-cifs.patch b/util-linux-2.12a-mount-man-cifs.patch deleted file mode 100644 index df673ef..0000000 --- a/util-linux-2.12a-mount-man-cifs.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- util-linux-2.12a/mount/mount.8.cifs 2005-11-23 16:34:34.000000000 +0100 -+++ util-linux-2.12a/mount/mount.8 2005-11-23 16:38:37.000000000 +0100 -@@ -720,6 +720,16 @@ - (However, quota utilities may react to such strings in - .IR /etc/fstab .) - -+.SH "Mount options for cifs" -+Just like -+.IR nfs " or " smbfs -+implementation expects a binary argument -+to the mount system call. This argument is constructed by -+.BR mount.cifs (8) -+and the current version of -+.B mount -+(2.12) does not know anything about cifs. -+ - .SH "Mount options for coherent" - None. - diff --git a/util-linux-2.12a-mountbylabel-dm.patch b/util-linux-2.12a-mountbylabel-dm.patch deleted file mode 100644 index fd8f567..0000000 --- a/util-linux-2.12a-mountbylabel-dm.patch +++ /dev/null @@ -1,63 +0,0 @@ ---- util-linux-2.12a/mount/mount_by_label.c.old 2004-08-11 22:25:06.000000000 +0100 -+++ util-linux-2.12a/mount/mount_by_label.c 2004-08-11 22:25:21.000000000 +0100 -@@ -17,6 +17,8 @@ - * - Added JFS v2 format support - * 2002-07-26 Luciano Chavez - * - Added EVMS support -+ * 2004-08-11 Alasdair Kergon -+ * - Added LVM2/device-mapper support - */ - - #include -@@ -38,6 +40,7 @@ - #define VG_DIR "/proc/lvm/VGs" - #define EVMS_VOLUME_NAME_SIZE 127 - #define PROC_EVMS_VOLUMES "/proc/evms/volumes" -+#define DEVICEMAPPERDIR "/dev/mapper" - - static struct uuidCache_s { - struct uuidCache_s *next; -@@ -101,6 +104,34 @@ - closedir(vg_dir); - } - -+/* LVM2/device-mapper support */ -+static void -+uuidcache_init_dm(void) { -+ char lvm_device[PATH_MAX]; -+ DIR *d; -+ struct dirent *lv_iter; -+ char uuid[16], *label; -+ -+ if (!(d = opendir(DEVICEMAPPERDIR))) { -+ if (errno != ENOENT) -+ perror("mount (init_dm)"); -+ return; -+ } -+ -+ while ((lv_iter = readdir(d))) { -+ if (!strcmp(lv_iter->d_name, "control") || -+ !strcmp(lv_iter->d_name, ".") || -+ !strcmp(lv_iter->d_name, "..")) -+ continue; -+ snprintf(lvm_device, sizeof(lvm_device), "%s/%s", -+ DEVICEMAPPERDIR, lv_iter->d_name); -+ if (!get_label_uuid(strdup(lvm_device), &label, uuid)) -+ uuidcache_addentry(strdup(lvm_device), -+ label, uuid); -+ } -+ closedir(d); -+} -+ - static int - uuidcache_init_evms(void) { - FILE *procvol; -@@ -250,6 +281,8 @@ - fclose(procpt); - - uuidcache_init_lvm(); -+ -+ uuidcache_init_dm(); - } - - #define UUID 1 diff --git a/util-linux-2.12a-pamsession.patch b/util-linux-2.12a-pamsession.patch deleted file mode 100644 index cace510..0000000 --- a/util-linux-2.12a-pamsession.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urb util-linux-2.12a.orig/login-utils/login.c util-linux-2.12a/login-utils/login.c ---- util-linux-2.12a.orig/login-utils/login.c 2005-04-08 09:43:37.000000000 -0400 -+++ util-linux-2.12a/login-utils/login.c 2005-04-08 11:14:37.850579656 -0400 -@@ -703,6 +703,8 @@ - PAM_FAIL_CHECK; - - retcode = pam_setcred(pamh, PAM_ESTABLISH_CRED); -+ if (retcode != PAM_SUCCESS) -+ pam_close_session(pamh, 0); - PAM_FAIL_CHECK; - - #else /* ! USE_PAM */ diff --git a/util-linux-2.12a-pamstart.patch b/util-linux-2.12a-pamstart.patch deleted file mode 100644 index 1ca73e2..0000000 --- a/util-linux-2.12a-pamstart.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- util-linux-2.12a/login-utils/login.c.pamstart 2004-09-15 16:13:36.462028734 +0200 -+++ util-linux-2.12a/login-utils/login.c 2004-09-15 16:13:50.790278325 +0200 -@@ -549,7 +549,7 @@ - * Therefore, we are safe not setting it to anything - */ - -- retcode = pam_start("login",username, &conv, &pamh); -+ retcode = pam_start(hflag?"remote":"login",username, &conv, &pamh); - if(retcode != PAM_SUCCESS) { - fprintf(stderr, _("login: PAM Failure, aborting: %s\n"), - pam_strerror(pamh, retcode)); diff --git a/util-linux-2.12a-partlimit.patch b/util-linux-2.12a-partlimit.patch deleted file mode 100644 index 6912547..0000000 --- a/util-linux-2.12a-partlimit.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- util-linux-2.12pre/fdisk/fdisk.8.miscfixes 2002-08-06 10:33:33.000000000 -0400 -+++ util-linux-2.12pre/fdisk/fdisk.8 2003-12-17 13:55:16.000000000 -0500 -@@ -65,7 +65,7 @@ - name followed by a partition number. For example, - .B /dev/hda1 - is the first partition on the first IDE hard disk in the system. --IDE disks can have up to 63 partitions, SCSI disks up to 15. -+Disks can have up to 15 partitions. - See also - .IR /usr/src/linux/Documentation/devices.txt . - ---- util-linux-2.12pre/fdisk/fdisk.h.miscfixes 2003-07-13 14:25:00.000000000 -0400 -+++ util-linux-2.12pre/fdisk/fdisk.h 2003-12-17 13:55:16.000000000 -0500 -@@ -5,7 +5,7 @@ - #define DEFAULT_SECTOR_SIZE 512 - #define MAX_SECTOR_SIZE 2048 - #define SECTOR_SIZE 512 /* still used in BSD code */ --#define MAXIMUM_PARTS 60 -+#define MAXIMUM_PARTS 15 - - #define ACTIVE_FLAG 0x80 - diff --git a/util-linux-2.12a-raw-man-dd.patch b/util-linux-2.12a-raw-man-dd.patch deleted file mode 100644 index 35f57eb..0000000 --- a/util-linux-2.12a-raw-man-dd.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- util-linux-2.12a/disk-utils/raw.8.dd 2006-04-24 15:27:39.000000000 +0200 -+++ util-linux-2.12a/disk-utils/raw.8 2006-04-24 15:53:46.000000000 +0200 -@@ -15,6 +15,12 @@ - .PP - .B raw - .B \-qa -+.SH WARNING -+Although Linux includes support for rawio, it is now a deprecated interface. If -+your application performs device access using this interface, Red Hat -+encourages you to modify your application to open the block device with the -+O_DIRECT flag. The rawio interface is a candidate for removal from future releases. -+ - .SH DESCRIPTION - .B raw - is used to bind a Linux raw character device to a block device. Any -@@ -82,8 +88,10 @@ - .SH BUGS - The Linux - .B dd --(1) command does not currently align its buffers correctly, and so --cannot be used on raw devices. -+(1) command should be used without bs= option or the blocksize needs to be a -+multiple of the sector size of the device (512 bytes usually) otherwise it -+will fail with "Invalid Argument" messages (EINVAL). -+ - .PP - Raw I/O devices do not maintain cache coherency with the Linux block - device buffer cache. If you use raw I/O to overwrite data already in diff --git a/util-linux-2.12j-113790-hotkeys.patch b/util-linux-2.12j-113790-hotkeys.patch deleted file mode 100644 index afd8956..0000000 --- a/util-linux-2.12j-113790-hotkeys.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- util-linux-2.12j/po/ca.po.sopwith 2004-12-05 14:08:08.000000000 -0500 -+++ util-linux-2.12j/po/ca.po 2004-12-10 13:10:52.411668785 -0500 -@@ -7183,7 +7183,7 @@ - #: login-utils/vipw.c:354 - #, c-format - msgid "Would you like to edit %s now [y/n]? " --msgstr "Desitgeu editar %s ara? [s/n] " -+msgstr "Desitgeu editar %s ara? [y/n] " - - #: login-utils/wall.c:104 - #, c-format ---- util-linux-2.12j/po/da.po.sopwith 2004-12-05 14:08:09.000000000 -0500 -+++ util-linux-2.12j/po/da.po 2004-12-10 13:09:50.382880759 -0500 -@@ -1470,7 +1470,7 @@ - - #: fdisk/cfdisk.c:1526 - msgid "Do you wish to start with a zero table [y/N] ?" --msgstr "Vil du starte med nulstillet tabel [j/N] ?" -+msgstr "Vil du starte med nulstillet tabel [y/N] ?" - - #: fdisk/cfdisk.c:1574 - msgid "You specified more cylinders than fit on disk" ---- util-linux-2.12j/po/nl.po.sopwith 2004-12-05 14:08:15.000000000 -0500 -+++ util-linux-2.12j/po/nl.po 2004-12-10 13:09:50.390878282 -0500 -@@ -1493,7 +1493,7 @@ - - #: fdisk/cfdisk.c:1526 - msgid "Do you wish to start with a zero table [y/N] ?" --msgstr "Wilt u met een lege tabel beginnen [j/N] ?" -+msgstr "Wilt u met een lege tabel beginnen [y/N] ?" - - #: fdisk/cfdisk.c:1574 - msgid "You specified more cylinders than fit on disk" ---- util-linux-2.12j/po/pt_BR.po.sopwith 2004-12-05 14:08:15.000000000 -0500 -+++ util-linux-2.12j/po/pt_BR.po 2004-12-10 13:11:47.560587674 -0500 -@@ -7161,7 +7161,7 @@ - #: login-utils/vipw.c:354 - #, c-format - msgid "Would you like to edit %s now [y/n]? " --msgstr "Você gostaria de editar %s agora [s/n]" -+msgstr "Você gostaria de editar %s agora [y/n]" - - #: login-utils/wall.c:104 - #, c-format diff --git a/util-linux-2.12j-managed.patch b/util-linux-2.12j-managed.patch deleted file mode 100644 index 48353d6..0000000 --- a/util-linux-2.12j-managed.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- util-linux-2.12a/mount/mount.c.sopwith 2004-03-04 20:28:22.000000000 -0500 -+++ util-linux-2.12a/mount/mount.c 2004-07-16 16:50:18.792814782 -0400 -@@ -191,6 +191,8 @@ - { "diratime", 0, 1, MS_NODIRATIME }, /* Update dir access times */ - { "nodiratime", 0, 0, MS_NODIRATIME },/* Do not update dir access times */ - #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 } - }; - diff --git a/util-linux-2.12j-pamconsole.patch b/util-linux-2.12j-pamconsole.patch deleted file mode 100644 index 8e02d1c..0000000 --- a/util-linux-2.12j-pamconsole.patch +++ /dev/null @@ -1,139 +0,0 @@ ---- util-linux-2.12j/mount/mount.c.console 2004-12-10 12:32:57.887137495 -0500 -+++ util-linux-2.12j/mount/mount.c 2004-12-10 12:43:06.136750656 -0500 -@@ -97,14 +97,16 @@ - #define MS_USER 0x20000000 - #define MS_OWNER 0x10000000 - #define MS_GROUP 0x08000000 -+#define MS_PAMCONSOLE 0x04000000 - #define MS_COMMENT 0x00020000 - #define MS_LOOP 0x00010000 - -+ - /* Options that we keep the mount system call from seeing. */ --#define MS_NOSYS (MS_NOAUTO|MS_USERS|MS_USER|MS_COMMENT|MS_LOOP) -+#define MS_NOSYS (MS_NOAUTO|MS_USERS|MS_USER|MS_COMMENT|MS_LOOP|MS_PAMCONSOLE) - - /* Options that we keep from appearing in the options field in the mtab. */ --#define MS_NOMTAB (MS_REMOUNT|MS_NOAUTO|MS_USERS|MS_USER) -+#define MS_NOMTAB (MS_REMOUNT|MS_NOAUTO|MS_USERS|MS_USER|MS_PAMCONSOLE) - - /* Options that we make ordinary users have by default. */ - #define MS_SECURE (MS_NOEXEC|MS_NOSUID|MS_NODEV) -@@ -142,6 +144,8 @@ - { "comment", 0, 0, MS_COMMENT}, /* fstab comment only (kudzu,_netdev)*/ - - /* add new options here */ -+ { "pamconsole", 0, 0, MS_PAMCONSOLE }, /* Allow users at console to mount */ -+ { "nopamconsole", 0, 1, MS_PAMCONSOLE }, /* Console user has no special privs */ - #ifdef MS_NOSUB - { "sub", 0, 1, MS_NOSUB }, /* allow submounts */ - { "nosub", 0, 0, MS_NOSUB }, /* don't allow submounts */ -@@ -265,7 +269,7 @@ - *mask &= ~om->mask; - else - *mask |= om->mask; -- if ((om->mask == MS_USER || om->mask == MS_USERS) -+ if ((om->mask == MS_USER || om->mask == MS_USERS || om->mask == MS_PAMCONSOLE) - && !om->inv) - *mask |= MS_SECURE; - if ((om->mask == MS_OWNER || om->mask == MS_GROUP) -@@ -554,7 +558,29 @@ - } - } - -- /* James Kehl came with a similar patch: -+ /* Red Hat patch: allow users at console to mount when fstab -+ contains the console option. This option should not be used -+ in a high security environment but is useful to give console -+ users the possibility of using locally attached devices -+ such as USB keychains and USB harddisks where it is now suitable -+ to give the console owner write access to the device node */ -+ if (*flags & MS_PAMCONSOLE) { -+ char *username; -+ char pamconsole_file_name[256]; -+ struct stat sb; -+ -+ username = getusername (); -+ -+ if (username != NULL) { -+ snprintf (pamconsole_file_name, sizeof (pamconsole_file_name), -+ "/var/run/console/%s", username); -+ if (stat (pamconsole_file_name, &sb) == 0) { -+ *flags |= MS_USER; -+ } -+ } -+ } -+ -+ /* James Kehl came with a similar patch: - allow an arbitrary user to mount when he is the owner of - the mount-point and has write-access to the device. - This is even less secure. Let me skip it for the time being; -@@ -570,7 +596,7 @@ - *user = getusername(); - } - -- *flags &= ~(MS_OWNER | MS_GROUP); -+ *flags &= ~(MS_OWNER | MS_GROUP | MS_PAMCONSOLE); - } - - static int ---- util-linux-2.12j/mount/umount.c.console 2004-12-10 12:32:57.885138115 -0500 -+++ util-linux-2.12j/mount/umount.c 2004-12-10 12:44:51.494119742 -0500 -@@ -546,7 +546,7 @@ - umount_file (char *arg) { - struct mntentchn *mc, *fs; - const char *file, *options; -- int fstab_has_user, fstab_has_users, fstab_has_owner, fstab_has_group; -+ int fstab_has_user, fstab_has_users, fstab_has_owner, fstab_has_group, fstab_has_pamconsole; - int ok; - - file = canonicalize(arg); /* mtab paths are canonicalized */ -@@ -608,13 +608,16 @@ - fstab_has_users = contains(options, "users"); - fstab_has_owner = contains(options, "owner"); - fstab_has_group = contains(options, "group"); -+ fstab_has_pamconsole = contains(options, "pamconsole"); - ok = 0; - - if (fstab_has_users) - ok = 1; - - if (!ok && (fstab_has_user || fstab_has_owner || -- fstab_has_group)) { -+ fstab_has_group || fstab_has_pamconsole)) { -+ char pamconsole_file_name[256]; -+ struct stat sb; - char *user = getusername(); - - options = mc->m.mnt_opts; -@@ -624,6 +627,14 @@ - - if (user && mtab_user && streq (user, mtab_user)) - ok = 1; -+ -+ /*pam_console user check*/ -+ if (user && fstab_has_pamconsole) { -+ snprintf (pamconsole_file_name, sizeof (pamconsole_file_name), "/var/run/console/%s", user); -+ if (stat (pamconsole_file_name, &sb) == 0) { -+ ok = 1; -+ } -+ } - } - if (!ok) - die (2, _("umount: only %s can unmount %s from %s"), ---- util-linux-2.12j/mount/fstab.5.console 2004-09-28 10:13:42.000000000 -0400 -+++ util-linux-2.12j/mount/fstab.5 2004-12-10 12:59:05.088744506 -0500 -@@ -156,10 +156,10 @@ - .BR nfs (5). - Common for all types of file system are the options ``noauto'' - (do not mount when "mount -a" is given, e.g., at boot time), ``user'' --(allow a user to mount), and ``owner'' --(allow device owner to mount), and ``comment'' -+(allow a user to mount), ``owner'' -+(allow device owner to mount), ``pamconsole'' (allow a user at the console to mount), and ``comment'' - (e.g., for use by fstab-maintaining programs). --The ``owner'' and ``comment'' options are Linux-specific. -+The ``owner'', ``pamconsole'' and ``comment'' options are Linux-specific. - For more details, see - .BR mount (8). - diff --git a/util-linux-2.12p-cal-wide.patch b/util-linux-2.12p-cal-wide.patch deleted file mode 100644 index 8440e53..0000000 --- a/util-linux-2.12p-cal-wide.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- util-linux-2.12p/misc-utils/cal.c.wide 2004-12-05 20:20:36.000000000 +0100 -+++ util-linux-2.12p/misc-utils/cal.c 2006-01-02 15:13:50.000000000 +0100 -@@ -368,7 +368,7 @@ - int i, wd; - #ifdef ENABLE_WIDECHAR - wchar_t day_headings_wc[22],j_day_headings_wc[29]; -- wchar_t wd_wc[10]; -+ char *cur_dh = day_headings, *cur_j_dh = j_day_headings; - #endif - - strcpy(day_headings,""); -@@ -385,30 +385,25 @@ - #endif - - for(i = 0 ; i < 7 ; i++ ) { -+ ssize_t space_left; - wd = (i + week1stday) % 7; - #ifdef ENABLE_WIDECHAR -- mbstowcs(wd_wc,weekday(wd),10); -- if (wcswidth(wd_wc,10) < 3) -- wcscat(j_day_headings_wc,L" "); -- if (wcswidth(wd_wc,10) < 2) { -- wcscat(day_headings_wc, L" "); -- wcscat(j_day_headings_wc, L" "); -- } -- wcsncat(day_headings_wc,wd_wc,2); -- wcsncat(j_day_headings_wc,wd_wc,3); -- wcscat(day_headings_wc, L" "); -- wcscat(j_day_headings_wc, L" "); -+ swprintf(day_headings_wc, sizeof(day_headings_wc)/sizeof(day_headings_wc[0]), -+ L"%1.2s ", weekday(wd)); -+ swprintf(j_day_headings_wc, sizeof(j_day_headings_wc)/sizeof(j_day_headings_wc[0]), -+ L"%3.3s ", weekday(wd)); -+ space_left = sizeof(day_headings)-(cur_dh-day_headings); -+ if(space_left <= 0) break; -+ cur_dh += wcstombs(cur_dh,day_headings_wc, space_left); -+ space_left = sizeof(j_day_headings)-(cur_j_dh-j_day_headings); -+ if(space_left <= 0) break; -+ cur_j_dh += wcstombs(cur_j_dh,j_day_headings_wc, space_left); - #else - sprintf(eos(day_headings), "%2.2s ", weekday(wd)); - sprintf(eos(j_day_headings), "%3.3s ", weekday(wd)); - #endif - } - --#ifdef ENABLE_WIDECHAR -- wcstombs(day_headings,day_headings_wc,sizeof(day_headings)); -- wcstombs(j_day_headings,j_day_headings_wc,sizeof(j_day_headings)); --#endif -- - trim_trailing_spaces(day_headings); - trim_trailing_spaces(j_day_headings); - #undef weekday diff --git a/util-linux-2.12p-col-EILSEQ.patch b/util-linux-2.12p-col-EILSEQ.patch deleted file mode 100644 index ef58ad4..0000000 --- a/util-linux-2.12p-col-EILSEQ.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- util-linux-2.13-pre6/text-utils/col.c.kzak 2002-03-09 00:05:12.000000000 +0100 -+++ util-linux-2.13-pre6/text-utils/col.c 2006-02-21 22:25:48.000000000 +0100 -@@ -128,6 +128,7 @@ - int this_line; /* line l points to */ - int nflushd_lines; /* number of lines that were flushed */ - int adjust, opt, warned; -+ int ret = 0; - - setlocale(LC_ALL, ""); - bindtextdomain(PACKAGE, LOCALEDIR); -@@ -175,8 +176,16 @@ - cur_line = max_line = nflushd_lines = this_line = 0; - cur_set = last_set = CS_NORMAL; - lines = l = alloc_line(); -- -- while ((ch = getwchar()) != WEOF) { -+ -+ while (feof(stdin)==0) { -+ errno = 0; -+ if ((ch = getwchar()) == WEOF) { -+ if (errno==EILSEQ) { -+ perror("col"); -+ ret = 1; -+ } -+ break; -+ } - if (!iswgraph(ch)) { - switch (ch) { - case BS: /* can't go back further */ -@@ -332,7 +341,7 @@ - flush_blanks(); - if (ferror(stdout) || fclose(stdout)) - return 1; -- return 0; -+ return ret; - } - - void flush_lines(int nflush) diff --git a/util-linux-2.12p-execl.patch b/util-linux-2.12p-execl.patch deleted file mode 100644 index 3d88c5e..0000000 --- a/util-linux-2.12p-execl.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- util-linux-2.12p/login-utils/agetty.c.execl 2005-07-12 15:53:25.000000000 +0200 -+++ util-linux-2.12p/login-utils/agetty.c 2005-07-12 15:53:49.000000000 +0200 -@@ -382,7 +382,7 @@ - - /* Let the login program take care of password validation. */ - -- (void) execl(options.login, options.login, "--", logname, (char *) 0); -+ (void) execl(options.login, options.login, "--", logname, NULL); - error(_("%s: can't exec %s: %m"), options.tty, options.login); - exit(0); /* quiet GCC */ - } ---- util-linux-2.12p/misc-utils/script.c.execl 2005-07-12 15:54:17.000000000 +0200 -+++ util-linux-2.12p/misc-utils/script.c 2005-07-12 15:54:28.000000000 +0200 -@@ -325,9 +325,9 @@ - shname = shell; - - if (cflg) -- execl(shell, shname, "-c", cflg, 0); -+ execl(shell, shname, "-c", cflg, NULL); - else -- execl(shell, shname, "-i", 0); -+ execl(shell, shname, "-i", NULL); - - perror(shell); - fail(); diff --git a/util-linux-2.12p-fdformat-ide.patch b/util-linux-2.12p-fdformat-ide.patch deleted file mode 100644 index 80ea0b6..0000000 --- a/util-linux-2.12p-fdformat-ide.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- util-linux-2.12p/disk-utils/fdformat.8.ide 2005-04-25 11:39:19.528340384 +0200 -+++ util-linux-2.12p/disk-utils/fdformat.8 2005-04-25 11:44:07.189609224 +0200 -@@ -45,6 +45,10 @@ - .BR setfdprm (8) - to load the disk parameters. - -+For ATAPI IDE floppy driver (also known as LS-120 drives or "Superdisk" -+drives) you have to use the -+.BR floppy (8). -+ - .SH OPTIONS - .TP - .B \-n -@@ -54,6 +58,7 @@ - .BR fd (4), - .BR setfdprm (8), - .BR mkfs (8), --.BR emkfs (8) -+.BR emkfs (8), -+.BR floppy (8) - .SH AUTHOR - Werner Almesberger (almesber@nessie.cs.id.ethz.ch) diff --git a/util-linux-2.12p-floppy-generic.patch b/util-linux-2.12p-floppy-generic.patch deleted file mode 100644 index ec33468..0000000 --- a/util-linux-2.12p-floppy-generic.patch +++ /dev/null @@ -1,102 +0,0 @@ ---- util-linux-2.12p/floppy-0.12/floppyfloppy.c.generic 2001-02-13 01:15:38.000000000 +0100 -+++ util-linux-2.12p/floppy-0.12/floppyfloppy.c 2005-09-30 15:38:08.000000000 +0200 -@@ -264,6 +264,33 @@ - #endif - } - -+/* -1=error, 1=true, 0=false */ -+static int check_generic(const char *dev, int n) -+{ -+ struct floppy_struct param; -+ int fd; -+ -+ if ((fd=open(dev, O_RDONLY)) < 0) -+ { -+ perror(dev); -+ return -1; -+ } -+ if (ioctl(fd,FDGETPRM,(long) ¶m) < 0) -+ { -+ perror(dev); -+ close(fd); -+ return -1; -+ } -+ close(fd); -+ -+ if (param.sect==floppy_type[n].sectors && -+ param.head==floppy_type[n].heads && -+ param.track==floppy_type[n].tracks) -+ /* generic device uses expected format */ -+ return 1; -+ -+ return 0; -+} - - static int do_format(const char *dev, int fmtnum, - int (*fmt_func)(const char *, int), int flags) -@@ -275,6 +302,7 @@ - struct format_descr curtrack; - int pct; - struct stat stat_buf; -+ int gen = 0; - - int i, j; - char *devname; -@@ -297,23 +325,52 @@ - - strcat(strcpy(devname, dev), floppy_type[fmtnum].dev); - -+ if (stat(devname, &stat_buf)==-1 && errno==ENOENT) -+ { -+ /* /dev/fd0xxxxx doesn't exist ...try to use generic device -+ * -+ * Note: we needn't size specific device if the generic device uses -+ * right floppy format (FDGETPRM). -- Karel Zak [30/09/2005] -+ */ -+ if ((gen = check_generic(dev, fmtnum))==1) /* true */ -+ { -+ fprintf(stderr, _("WARNING: size specific device %s doesn't exist, using generic device: %s\n"), -+ devname, dev); -+ strcpy(devname, dev); -+ } -+ else if (gen==0) /* false */ -+ { -+ fprintf(stderr, _("ERROR: size specific device %1$s doesn't exist. Use \"MAKEDEV %1$s\" and try it again.\n"), devname); -+ return (1); -+ } -+ else /* error -- no floppy medium or device? */ -+ return(1); -+ } - fd=open(devname, O_WRONLY); - if (fd < 0) - { - perror(devname); - return (1); - } -- -- if (fstat(fd, &stat_buf) || -- !S_ISBLK(stat_buf.st_mode) || -- MINOR_DEV(stat_buf.st_rdev) != fmtnum) -+ if (fstat(fd, &stat_buf) < 0) -+ { -+ perror(devname); -+ close(fd); -+ return (1); -+ } -+ if (!S_ISBLK(stat_buf.st_mode)) -+ { -+ fprintf(stderr,_("%s: not a block device\n"), devname); -+ close(fd); -+ return (1); -+ } -+ if (gen==0 && MINOR_DEV(stat_buf.st_rdev) != fmtnum) - { - errno=EINVAL; - perror(devname); - close(fd); - return (1); - } -- - if (ioctl(fd, FDGETPRM, &geo) < 0) - { - perror(devname); diff --git a/util-linux-2.12p-fstab-man.patch b/util-linux-2.12p-fstab-man.patch deleted file mode 100644 index 58075ea..0000000 --- a/util-linux-2.12p-fstab-man.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- util-linux-2.12p/mount/fstab.5.sync 2005-04-25 11:56:00.625150536 +0200 -+++ util-linux-2.12p/mount/fstab.5 2005-04-25 12:07:12.089072504 +0200 -@@ -49,10 +49,11 @@ - The file - .B fstab - contains descriptive information about the various file systems. -+It is the duty of the system administrator to properly create and maintain this file. - .B fstab --is only read by programs, and not written; it is the duty of the system --administrator to properly create and maintain this file. Each filesystem --is described on a separate line; fields on each line are separated by tabs -+can be modified by special utils (e.g. -+.BR fstab-sync (8)). -+Each filesystem is described on a separate line; fields on each line are separated by tabs - or spaces. Lines starting with '#' are comments. The order of records in - .B fstab - is important because -@@ -200,6 +201,7 @@ - .BR swapon (8), - .BR fs (5) - .BR nfs (5) -+.BR fstab-sync (8) - .SH HISTORY - The ancestor of this - .B fstab diff --git a/util-linux-2.12p-ipcs-typo.patch b/util-linux-2.12p-ipcs-typo.patch deleted file mode 100644 index 3e74ab7..0000000 --- a/util-linux-2.12p-ipcs-typo.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- util-linux-2.12p/sys-utils/ipcs.c.typo 2005-03-25 13:01:54.871752240 +0100 -+++ util-linux-2.12p/sys-utils/ipcs.c 2005-03-25 13:02:43.745322328 +0100 -@@ -423,9 +423,9 @@ - break; - - case TIME: -- printf (_("------ Shared Memory Operation/Change Times --------\n")); -+ printf (_("------ Semaphore Operation/Change Times --------\n")); - printf (_("%-8s %-10s %-26.24s %-26.24s\n"), -- _("shmid"),_("owner"),_("last-op"),_("last-changed")); -+ _("semid"),_("owner"),_("last-op"),_("last-changed")); - break; - - case PID: diff --git a/util-linux-2.12p-login-lastlog.patch b/util-linux-2.12p-login-lastlog.patch deleted file mode 100644 index cd1b4f7..0000000 --- a/util-linux-2.12p-login-lastlog.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- util-linux-2.12p/login-utils/login.c.login-lastlog 2005-03-24 13:26:06.516865128 +0100 -+++ util-linux-2.12p/login-utils/login.c 2005-03-24 13:26:58.136017824 +0100 -@@ -1397,7 +1397,7 @@ - struct lastlog ll; - int fd; - -- if ((fd = open(_PATH_LASTLOG, O_RDWR, 0)) >= 0) { -+ if ((fd = open(_PATH_LASTLOG, O_RDWR|O_CREAT, 0)) >= 0) { - lseek(fd, (off_t)pwd->pw_uid * sizeof(ll), SEEK_SET); - if (!quiet) { - if (read(fd, (char *)&ll, sizeof(ll)) == sizeof(ll) && diff --git a/util-linux-2.12p-look-separator.patch b/util-linux-2.12p-look-separator.patch deleted file mode 100644 index cd48b34..0000000 --- a/util-linux-2.12p-look-separator.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- util-linux-2.12p/misc-utils/look.c.sep 2005-05-02 12:51:17.808227240 +0200 -+++ util-linux-2.12p/misc-utils/look.c 2005-05-02 12:53:18.078943312 +0200 -@@ -327,9 +327,12 @@ - /* copy, ignoring things that should be ignored */ - p = comparbuf; - i = stringlen; -- while(s2 < s2end && *s2 != '\n' && i--) { -+ while(s2 < s2end && *s2 != '\n' && i) { - if (!dflag || isalnum(*s2)) -+ { - *p++ = *s2; -+ i--; -+ } - s2++; - } - *p = 0; diff --git a/util-linux-2.12p-lvm2dupes-76467.patch b/util-linux-2.12p-lvm2dupes-76467.patch deleted file mode 100644 index 3d74b33..0000000 --- a/util-linux-2.12p-lvm2dupes-76467.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- util-linux-2.12p/mount/mount_by_label.c.lvm2dupes 2005-04-25 11:33:53.657880224 +0200 -+++ util-linux-2.12p/mount/mount_by_label.c 2005-04-25 11:36:32.075797040 +0200 -@@ -195,6 +195,15 @@ - return 1; - } - -+/* We need to avoid listing /dev/dm-X devices, because they are added to the uuidcache separately by the -+ uuidcache_init_dm routine. Duplicate entries cause mount-by-label to fail. -+ */ -+static int -+is_lvm2(char *ptname) -+{ -+ return !strncmp(ptname, "dm-", 3); -+} -+ - static void - uuidcache_init(void) { - char line[100]; -@@ -266,7 +275,7 @@ - /* devfs has .../disc and .../part1 etc. */ - - for (s = ptname; *s; s++); -- if (isdigit(s[-1]) || is_xvm(ptname)) { -+ if ((isdigit(s[-1]) || is_xvm(ptname)) && !is_lvm2(ptname)) { - - /* - * Note: this is a heuristic only - there is no reason diff --git a/util-linux-2.12p-mount-ocfs2.patch b/util-linux-2.12p-mount-ocfs2.patch deleted file mode 100644 index 37ddb1c..0000000 --- a/util-linux-2.12p-mount-ocfs2.patch +++ /dev/null @@ -1,187 +0,0 @@ ---- util-linux-2.12p/mount/mount.c.ocfs2 2005-07-12 16:31:16.000000000 +0200 -+++ util-linux-2.12p/mount/mount.c 2005-07-12 16:31:46.000000000 +0200 -@@ -466,6 +466,61 @@ - } - - /* -+ * check_special_mountprog() -+ * If there is a special mount program for this type, exec it. -+ * returns: 0: no exec was done, 1: exec was done, status has result -+ */ -+ -+static int -+check_special_mountprog(const char *spec, const char *node, const char *type, int flags, -+ char *extra_opts, int *status) { -+ char mountprog[120]; -+ struct stat statbuf; -+ int res; -+ -+ if (!external_allowed) -+ return 0; -+ -+ if (type && strlen(type) < 100) { -+ sprintf(mountprog, "/sbin/mount.%s", type); -+ if (stat(mountprog, &statbuf) == 0) { -+ res = fork(); -+ if (res == 0) { -+ char *oo, *mountargs[10]; -+ int i = 0; -+ -+ setuid(getuid()); -+ setgid(getgid()); -+ oo = fix_opts_string (flags, extra_opts, NULL); -+ mountargs[i++] = mountprog; -+ mountargs[i++] = spec; -+ mountargs[i++] = node; -+ if (nomtab) -+ mountargs[i++] = "-n"; -+ if (verbose) -+ mountargs[i++] = "-v"; -+ if (oo && *oo) { -+ mountargs[i++] = "-o"; -+ mountargs[i++] = oo; -+ } -+ mountargs[i] = NULL; -+ execv(mountprog, mountargs); -+ exit(1); /* exec failed */ -+ } else if (res != -1) { -+ int st; -+ wait(&st); -+ *status = (WIFEXITED(st) ? WEXITSTATUS(st) : EX_SYSERR); -+ return 1; -+ } else { -+ int errsv = errno; -+ error(_("mount: cannot fork: %s"), strerror(errsv)); -+ } -+ } -+ } -+ return 0; -+} -+ -+/* - * guess_fstype_and_mount() - * Mount a single file system. Guess the type when unknown. - * returns: 0: OK, -1: error in errno, 1: other error -@@ -474,9 +529,11 @@ - */ - static int - guess_fstype_and_mount(const char *spec, const char *node, const char **types, -- int flags, char *mount_opts) { -+ int flags, char *mount_opts, int *special, int *status) { - struct mountargs args = { spec, node, NULL, flags & ~MS_NOSYS, mount_opts }; - -+ *special = 0; -+ - if (*types && strcasecmp (*types, "auto") == 0) - *types = NULL; - -@@ -485,10 +542,16 @@ - - if (!*types && !(flags & MS_REMOUNT)) { - *types = guess_fstype(spec); -- if (*types && !strcmp(*types, "swap")) { -- error(_("%s looks like swapspace - not mounted"), spec); -- *types = NULL; -- return 1; -+ if (*types) { -+ if (!strcmp(*types, "swap")) { -+ error(_("%s looks like swapspace - not mounted"), spec); -+ *types = NULL; -+ return 1; -+ } else if (check_special_mountprog(spec, node, *types, flags, -+ mount_opts, status)) { -+ *special = 1; -+ return 0; -+ } - } - } - -@@ -741,61 +804,6 @@ - } - - /* -- * check_special_mountprog() -- * If there is a special mount program for this type, exec it. -- * returns: 0: no exec was done, 1: exec was done, status has result -- */ -- --static int --check_special_mountprog(const char *spec, const char *node, const char *type, -- int flags, char *extra_opts, int *status) { -- char mountprog[120]; -- struct stat statbuf; -- int res; -- -- if (!external_allowed) -- return 0; -- -- if (type && strlen(type) < 100) { -- sprintf(mountprog, "/sbin/mount.%s", type); -- if (stat(mountprog, &statbuf) == 0) { -- res = fork(); -- if (res == 0) { -- const char *oo, *mountargs[10]; -- int i = 0; -- -- setuid(getuid()); -- setgid(getgid()); -- oo = fix_opts_string (flags, extra_opts, NULL); -- mountargs[i++] = mountprog; -- mountargs[i++] = spec; -- mountargs[i++] = node; -- if (nomtab) -- mountargs[i++] = "-n"; -- if (verbose) -- mountargs[i++] = "-v"; -- if (oo && *oo) { -- mountargs[i++] = "-o"; -- mountargs[i++] = oo; -- } -- mountargs[i] = NULL; -- execv(mountprog, (char **) mountargs); -- exit(1); /* exec failed */ -- } else if (res != -1) { -- int st; -- wait(&st); -- *status = (WIFEXITED(st) ? WEXITSTATUS(st) : EX_SYSERR); -- return 1; -- } else { -- int errsv = errno; -- error(_("mount: cannot fork: %s"), strerror(errsv)); -- } -- } -- } -- return 0; --} -- --/* - * try_mount_one() - * Try to mount one file system. When "bg" is 1, this is a retry - * in the background. One additional exit code EX_BG is used here. -@@ -807,7 +815,7 @@ - static int - try_mount_one (const char *spec0, const char *node0, const char *types0, - const char *opts0, int freq, int pass, int bg, int ro) { -- int res = 0, status; -+ int res = 0, status, special; - int mnt5_res = 0; /* only for gcc */ - int mnt_err; - int flags; -@@ -898,9 +906,15 @@ - block_signals (SIG_BLOCK); - nosigblock: - -- if (!fake) -+ if (!fake) { - mnt5_res = guess_fstype_and_mount (spec, node, &types, flags & ~MS_NOSYS, -- mount_opts); -+ mount_opts, &special, &status); -+ -+ if (special) { -+ block_signals (SIG_UNBLOCK); -+ return status; -+ } -+ } - - if (fake || mnt5_res == 0) { - /* Mount succeeded, report this (if verbose) and write mtab entry. */ diff --git a/util-linux-2.12p-mtab-lock.patch b/util-linux-2.12p-mtab-lock.patch deleted file mode 100644 index 98ea4d1..0000000 --- a/util-linux-2.12p-mtab-lock.patch +++ /dev/null @@ -1,150 +0,0 @@ ---- util-linux-2.12p/mount/fstab.c.mtab-lock 2005-03-22 14:05:22.481297072 +0100 -+++ util-linux-2.12p/mount/fstab.c 2005-03-22 14:50:55.719781664 +0100 -@@ -395,6 +395,7 @@ - - /* Flag for already existing lock file. */ - static int we_created_lockfile = 0; -+static int lockfile_fd = -1; - - /* Flag to indicate that signals have been set up. */ - static int signals_have_been_setup = 0; -@@ -416,6 +417,8 @@ - void - unlock_mtab (void) { - if (we_created_lockfile) { -+ close(lockfile_fd); -+ lockfile_fd = -1; - unlink (MOUNTED_LOCK); - we_created_lockfile = 0; - } -@@ -443,7 +446,7 @@ - - void - lock_mtab (void) { -- int tries = 3; -+ int tries = 100000, i; - char linktargetfile[MOUNTLOCK_LINKTARGET_LTH]; - - at_die = unlock_mtab; -@@ -469,45 +472,48 @@ - - sprintf(linktargetfile, MOUNTLOCK_LINKTARGET, getpid ()); - -+ i = open (linktargetfile, O_WRONLY|O_CREAT, 0); -+ if (i < 0) { -+ int errsv = errno; -+ /* linktargetfile does not exist (as a file) -+ and we cannot create it. Read-only filesystem? -+ Too many files open in the system? -+ Filesystem full? */ -+ die (EX_FILEIO, _("can't create lock file %s: %s " -+ "(use -n flag to override)"), -+ linktargetfile, strerror (errsv)); -+ } -+ close(i); -+ - /* Repeat until it was us who made the link */ - while (!we_created_lockfile) { - struct flock flock; -- int errsv, fd, i, j; -- -- i = open (linktargetfile, O_WRONLY|O_CREAT, 0); -- if (i < 0) { -- int errsv = errno; -- /* linktargetfile does not exist (as a file) -- and we cannot create it. Read-only filesystem? -- Too many files open in the system? -- Filesystem full? */ -- die (EX_FILEIO, _("can't create lock file %s: %s " -- "(use -n flag to override)"), -- linktargetfile, strerror (errsv)); -- } -- close(i); -+ int errsv, j; - - j = link(linktargetfile, MOUNTED_LOCK); - errsv = errno; - -- (void) unlink(linktargetfile); -- - if (j == 0) - we_created_lockfile = 1; - - if (j < 0 && errsv != EEXIST) { -+ (void) unlink(linktargetfile); - die (EX_FILEIO, _("can't link lock file %s: %s " - "(use -n flag to override)"), - MOUNTED_LOCK, strerror (errsv)); - } - -- fd = open (MOUNTED_LOCK, O_WRONLY); -+ lockfile_fd = open (MOUNTED_LOCK, O_WRONLY); - -- if (fd < 0) { -+ if (lockfile_fd < 0) { - int errsv = errno; - /* Strange... Maybe the file was just deleted? */ -- if (errno == ENOENT && tries-- > 0) -+ if (errno == ENOENT && tries-- > 0) { -+ if (tries % 200 == 0) -+ usleep(30); - continue; -+ } -+ (void) unlink(linktargetfile); - die (EX_FILEIO, _("can't open lock file %s: %s " - "(use -n flag to override)"), - MOUNTED_LOCK, strerror (errsv)); -@@ -520,7 +526,7 @@ - - if (j == 0) { - /* We made the link. Now claim the lock. */ -- if (fcntl (fd, F_SETLK, &flock) == -1) { -+ if (fcntl (lockfile_fd, F_SETLK, &flock) == -1) { - if (verbose) { - int errsv = errno; - printf(_("Can't lock lock file %s: %s\n"), -@@ -528,13 +534,15 @@ - } - /* proceed anyway */ - } -+ (void) unlink(linktargetfile); - } else { - static int tries = 0; - - /* Someone else made the link. Wait. */ - alarm(LOCK_TIMEOUT); -- if (fcntl (fd, F_SETLKW, &flock) == -1) { -+ if (fcntl (lockfile_fd, F_SETLKW, &flock) == -1) { - int errsv = errno; -+ (void) unlink(linktargetfile); - die (EX_FILEIO, _("can't lock lock file %s: %s"), - MOUNTED_LOCK, (errno == EINTR) ? - _("timed out") : strerror (errsv)); -@@ -542,16 +550,18 @@ - alarm(0); - /* Limit the number of iterations - maybe there - still is some old /etc/mtab~ */ -- if (tries++ > 3) { -- if (tries > 5) -- die (EX_FILEIO, _("Cannot create link %s\n" -- "Perhaps there is a stale lock file?\n"), -- MOUNTED_LOCK); -- sleep(1); -- } -+ ++tries; -+ if (tries % 200 == 0) -+ usleep(30); -+ if (tries > 100000) { -+ (void) unlink(linktargetfile); -+ close(lockfile_fd); -+ die (EX_FILEIO, _("Cannot create link %s\n" -+ "Perhaps there is a stale lock file?\n"), -+ MOUNTED_LOCK); -+ } -+ close(lockfile_fd); - } -- -- close(fd); - } - } - diff --git a/util-linux-2.12p-swaponsymlink-57300.patch b/util-linux-2.12p-swaponsymlink-57300.patch deleted file mode 100644 index b1dc704..0000000 --- a/util-linux-2.12p-swaponsymlink-57300.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- util-linux-2.12p/mount/swapon.c.sopwith Wed Dec 22 04:50:19 2004 -+++ util-linux-2.12p/mount/swapon.c Thu Dec 23 14:44:49 2004 -@@ -138,9 +138,19 @@ - is_in_proc_swaps(const char *fname) { - int i; - -- for (i = 0; i < numSwaps; i++) -- if (swapFiles[i] && !strcmp(fname, swapFiles[i])) -+ for (i = 0; i < numSwaps; i++) { -+ struct stat swapped, swapping; -+ -+ if (!swapFiles[i]) continue; -+ -+ if (!strcmp(fname, swapFiles[i]) -+ || (!stat (swapFiles[i], &swapped) -+ && !stat (fname, &swapping) -+ && (swapped.st_dev == swapping.st_dev -+ && swapped.st_ino == swapping.st_ino)) -+ ) - return 1; -+ } - return 0; - } - diff --git a/util-linux-2.12p-vipw-perm.patch b/util-linux-2.12p-vipw-perm.patch deleted file mode 100644 index 13c9cd8..0000000 --- a/util-linux-2.12p-vipw-perm.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- util-linux-2.12p/login-utils/vipw.c.perm 2005-06-16 10:33:46.387891456 +0200 -+++ util-linux-2.12p/login-utils/vipw.c 2005-06-16 10:34:37.077185512 +0200 -@@ -299,11 +299,11 @@ - } - if (!is_shadow) - chmod(tmp_file, 0644); --#if 0 -+/*#if 0*/ - /* if shadow file, then mode is 0600 now */ - else - chmod(tmp_file, 0400); --#endif -+/*#endif*/ - pw_unlock(); - } - diff --git a/util-linux-2.13-arch.patch b/util-linux-2.13-arch.patch deleted file mode 100644 index 472e4fb..0000000 --- a/util-linux-2.13-arch.patch +++ /dev/null @@ -1,94 +0,0 @@ ---- util-linux-2.13-pre1/sys-utils/Makefile.am.arch 2005-08-16 12:54:22.000000000 +0200 -+++ util-linux-2.13-pre1/sys-utils/Makefile.am 2005-08-16 12:55:00.000000000 +0200 -@@ -1,6 +1,6 @@ - include $(top_srcdir)/config/include-Makefile.am - --bin_PROGRAMS = dmesg -+bin_PROGRAMS = dmesg arch - - usrbin_PROGRAMS = cytune flock ipcrm ipcs renice setsid - -@@ -8,7 +8,7 @@ - - usrsbin_PROGRAMS = readprofile tunelp - --man_MANS = flock.1 readprofile.1 \ -+man_MANS = flock.1 readprofile.1 arch.1 \ - ctrlaltdel.8 cytune.8 dmesg.8 ipcrm.8 ipcs.8 renice.8 \ - setsid.8 tunelp.8 - ---- util-linux-2.13-pre1/sys-utils/arch.1.arch 2005-08-16 12:55:34.000000000 +0200 -+++ util-linux-2.13-pre1/sys-utils/arch.1 2005-08-16 12:59:51.000000000 +0200 -@@ -0,0 +1,34 @@ -+.\" arch.1 -- -+.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) -+.\" Public domain: may be freely distributed. -+.TH ARCH 1 "4 July 1997" "Linux 2.0" "Linux Programmer's Manual" -+.SH NAME -+arch \- print machine architecture -+.SH SYNOPSIS -+.B arch -+.SH DESCRIPTION -+.B arch -+is deprecated command since release util-linux 2.13. Use -+.BR "uname -m" . -+ -+On current Linux systems, -+.B arch -+prints things such as "i386", "i486", "i586", "alpha", "sparc", -+"arm", "m68k", "mips", "ppc". -+.SH SEE ALSO -+.BR uname (1), -+.BR uname (2) -+.\" -+.\" Details: -+.\" arch prints the machine part of the system_utsname struct -+.\" This struct is defined in version.c, and this field is -+.\" initialized with UTS_MACHINE, which is defined as $ARCH -+.\" in the main Makefile. -+.\" That gives the possibilities -+.\" alpha arm i386 m68k mips ppc sparc sparc64 -+.\" -+.\" If Makefile is not edited, ARCH is guessed by -+.\" ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/) -+.\" Then how come we get these i586 values? -+.\" Well, the routine check_bugs() does system_utsname.machine[1] = '0' + x86; -+.\" (called in init/main.c, defined in ./include/asm-i386/bugs.h) ---- util-linux-2.13-pre1/sys-utils/arch.c.arch 2005-08-16 12:55:43.000000000 +0200 -+++ util-linux-2.13-pre1/sys-utils/arch.c 1999-07-09 04:56:41.000000000 +0200 -@@ -0,0 +1,35 @@ -+/* arch -- print machine architecture information -+ * Created: Mon Dec 20 12:27:15 1993 by faith@cs.unc.edu -+ * Revised: Mon Dec 20 12:29:23 1993 by faith@cs.unc.edu -+ * Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) -+ -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2, or (at your option) any -+ * later version. -+ -+ * This program is distributed in the hope that it will be useful, but -+ * WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * General Public License for more details. -+ -+ * You should have received a copy of the GNU General Public License along -+ * with this program; if not, write to the Free Software Foundation, Inc., -+ * 675 Mass Ave, Cambridge, MA 02139, USA. */ -+ -+#include -+#include -+ -+int main (void) -+{ -+ struct utsname utsbuf; -+ -+ if (uname( &utsbuf )) { -+ perror( "arch" ); -+ return 1; -+ } -+ -+ printf( "%s\n", utsbuf.machine ); -+ -+ return 0; -+} diff --git a/util-linux-2.13-audit-hwclock.patch b/util-linux-2.13-audit-hwclock.patch deleted file mode 100644 index 0173655..0000000 --- a/util-linux-2.13-audit-hwclock.patch +++ /dev/null @@ -1,314 +0,0 @@ -diff -urN util-linux-2.13-pre5.orig/hwclock/audit.c util-linux-2.13-pre5/hwclock/audit.c ---- util-linux-2.13-pre5.orig/hwclock/audit.c 1969-12-31 19:00:00.000000000 -0500 -+++ util-linux-2.13-pre5/hwclock/audit.c 2005-10-25 17:14:46.000000000 -0400 -@@ -0,0 +1,50 @@ -+/* audit.c -- This file contains the audit system extensions -+ * -+ * Copyright 2005 Red Hat Inc., Durham, North Carolina. -+ * All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ * -+ * Authors: -+ * Steve Grubb -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include "audit.h" -+ -+int audit_fd = -1; -+static int audit_this = 0; -+ -+ -+void auditable_event(int i) -+{ -+ audit_this = i; -+} -+ -+ -+void audit_exit(int status) -+{ -+ if (audit_this) { -+ audit_log_user_message(audit_fd, AUDIT_USYS_CONFIG, -+ "changing system time", NULL, NULL, NULL, status ? 0 : 1); -+ close(audit_fd); -+ } -+ exit(status); -+} -+ -diff -urN util-linux-2.13-pre5.orig/hwclock/audit.h util-linux-2.13-pre5/hwclock/audit.h ---- util-linux-2.13-pre5.orig/hwclock/audit.h 1969-12-31 19:00:00.000000000 -0500 -+++ util-linux-2.13-pre5/hwclock/audit.h 2005-10-25 17:09:40.000000000 -0400 -@@ -0,0 +1,34 @@ -+/* audit.h -- This file contains the function prototypes for audit calls -+ * Copyright 2005 Red Hat Inc., Durham, North Carolina. -+ * All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ * -+ * Author: -+ * Steve Grubb -+ * -+ */ -+ -+#ifndef HW_AUDIT_H -+#define HW_AUDIT_H -+ -+/* This is the file descriptor used by the audit system */ -+extern int audit_fd; -+ -+/* This is the logging functions */ -+void auditable_event(int i); -+void audit_exit(int status); -+ -+#endif -diff -urN util-linux-2.13-pre5.orig/hwclock/clock.h util-linux-2.13-pre5/hwclock/clock.h ---- util-linux-2.13-pre5.orig/hwclock/clock.h 2005-10-25 17:08:26.000000000 -0400 -+++ util-linux-2.13-pre5/hwclock/clock.h 2005-10-25 17:09:40.000000000 -0400 -@@ -24,7 +24,12 @@ - extern char *progname; - extern int debug; - extern int epoch_option; --extern void outsyserr(char *msg, ...); -+extern void outsyserr(char *msg, ...) -+#ifdef __GNUC__ -+ __attribute__ ((format (printf, 1, 2))); -+#else -+ ; -+#endif - - /* cmos.c */ - extern void set_cmos_epoch(int ARCconsole, int SRM); -diff -urN util-linux-2.13-pre5.orig/hwclock/hwclock.c util-linux-2.13-pre5/hwclock/hwclock.c ---- util-linux-2.13-pre5.orig/hwclock/hwclock.c 2005-10-25 17:08:26.000000000 -0400 -+++ util-linux-2.13-pre5/hwclock/hwclock.c 2005-10-25 17:09:40.000000000 -0400 -@@ -81,9 +81,11 @@ - #include - #include - #include -+#include - - #include "clock.h" - #include "nls.h" -+#include "audit.h" - - #define MYNAME "hwclock" - -@@ -1234,7 +1236,7 @@ - va_end(ap); - } - -- exit(fmt ? EX_USAGE : 0); -+ audit_exit(fmt ? EX_USAGE : 0); - } - - static const struct option longopts[] = { -@@ -1298,6 +1300,15 @@ - /* Remember what time we were invoked */ - gettimeofday(&startup_time, NULL); - -+ audit_fd = audit_open(); -+ if (audit_fd < 0 && !(errno == EINVAL || errno == EPROTONOSUPPORT || -+ errno == EAFNOSUPPORT)) { -+ /* You get these error codes only when the kernel doesn't have -+ * audit compiled in. */ -+ fprintf(stderr, "Error - unable to connect to audit system\n"); -+ return EX_NOPERM; -+ } -+ - setlocale(LC_ALL, ""); - #ifdef LC_NUMERIC - /* We need LC_CTYPE and LC_TIME and LC_MESSAGES, but must avoid -@@ -1393,6 +1404,13 @@ - argc -= optind; - argv += optind; - -+ if (testing != TRUE) { -+ if (adjust == TRUE || hctosys == TRUE || systohc == TRUE || -+ set == TRUE || setepoch == TRUE) { -+ auditable_event(1); -+ } -+ } -+ - if (argc > 0) { - usage(_("%s takes no non-option arguments. " - "You supplied %d.\n"), -@@ -1403,27 +1421,27 @@ - fprintf(stderr, _("You have specified multiple functions.\n" - "You can only perform one function " - "at a time.\n")); -- exit(EX_USAGE); -+ audit_exit(EX_USAGE); - } - - if (utc && local_opt) { - fprintf(stderr, _("%s: The --utc and --localtime options " - "are mutually exclusive. You specified " - "both.\n"), MYNAME); -- exit(EX_USAGE); -+ audit_exit(EX_USAGE); - } - - if (adjust && noadjfile) { - fprintf(stderr, _("%s: The --adjust and --noadjfile options " - "are mutually exclusive. You specified " - "both.\n"), MYNAME); -- exit(EX_USAGE); -+ audit_exit(EX_USAGE); - } - - if (noadjfile && !(utc || local_opt)) { - fprintf(stderr, _("%s: With --noadjfile, you must specify " - "either --utc or --localtime\n"), MYNAME); -- exit(EX_USAGE); -+ audit_exit(EX_USAGE); - } - - #ifdef __alpha__ -@@ -1437,7 +1455,7 @@ - if (rc != 0) { - fprintf(stderr, _("No usable set-to time. " - "Cannot set clock.\n")); -- exit(EX_USAGE); -+ audit_exit(EX_USAGE); - } - } - -@@ -1469,11 +1487,11 @@ - } - - if (!permitted) -- exit(EX_NOPERM); -+ audit_exit(EX_NOPERM); - - if (getepoch || setepoch) { - manipulate_epoch(getepoch, setepoch, epoch_option, testing); -- return 0; -+ audit_exit(0); - } - - if (debug) -@@ -1487,12 +1505,14 @@ - fprintf(stderr, - _("Use the --debug option to see the details " - "of our search for an access method.\n")); -- exit(1); -+ audit_exit(1); - } - -- return manipulate_clock(show, adjust, noadjfile, set, set_time, -+ rc = manipulate_clock(show, adjust, noadjfile, set, set_time, - hctosys, systohc, startup_time, utc, - local_opt, testing); -+ audit_exit(rc); -+ return rc; /* Not reached */ - } - - /* A single routine for greater uniformity */ -diff -urN util-linux-2.13-pre5.orig/hwclock/kd.c util-linux-2.13-pre5/hwclock/kd.c ---- util-linux-2.13-pre5.orig/hwclock/kd.c 2005-10-25 17:08:26.000000000 -0400 -+++ util-linux-2.13-pre5/hwclock/kd.c 2005-10-25 17:09:40.000000000 -0400 -@@ -19,6 +19,7 @@ - - #include "clock.h" - #include "nls.h" -+#include "audit.h" - - static int con_fd = -1; /* opened by probe_for_kd_clock() */ - /* never closed */ -@@ -103,7 +104,7 @@ - - if (ioctl(con_fd, KDGHWCLK, &t) == -1) { - outsyserr(_("ioctl() failed to read time from %s"), con_fd_filename); -- exit(EX_IOERR); -+ audit_exit(EX_IOERR); - } - - tm->tm_sec = t.sec; -@@ -139,7 +140,7 @@ - - if (ioctl(con_fd, KDSHWCLK, &t ) == -1) { - outsyserr(_("ioctl KDSHWCLK failed")); -- exit(1); -+ audit_exit(1); - } - return 0; - } -diff -urN util-linux-2.13-pre5.orig/hwclock/Makefile.am util-linux-2.13-pre5/hwclock/Makefile.am ---- util-linux-2.13-pre5.orig/hwclock/Makefile.am 2005-10-25 17:08:26.000000000 -0400 -+++ util-linux-2.13-pre5/hwclock/Makefile.am 2005-10-25 17:09:40.000000000 -0400 -@@ -4,4 +4,5 @@ - - sbin_PROGRAMS = hwclock - --hwclock_SOURCES = hwclock.c cmos.c rtc.c kd.c -\ No newline at end of file -+hwclock_SOURCES = hwclock.c cmos.c rtc.c kd.c audit.c -+hwclock_LDADD = -laudit -\ No newline at end of file -diff -urN util-linux-2.13-pre5.orig/hwclock/rtc.c util-linux-2.13-pre5/hwclock/rtc.c ---- util-linux-2.13-pre5.orig/hwclock/rtc.c 2005-10-25 17:08:26.000000000 -0400 -+++ util-linux-2.13-pre5/hwclock/rtc.c 2005-10-25 17:09:40.000000000 -0400 -@@ -8,6 +8,7 @@ - - #include "clock.h" - #include "nls.h" -+#include "audit.h" - - /* - * Get defines for rtc stuff. -@@ -114,7 +115,7 @@ - - if (rtc_fd < 0) { - outsyserr(_("open() of %s failed"), rtc_dev_name); -- exit(EX_OSFILE); -+ audit_exit(EX_OSFILE); - } - return rtc_fd; - } -@@ -149,7 +150,7 @@ - perror(ioctlname); - fprintf(stderr, _("ioctl() to %s to read the time failed.\n"), - rtc_dev_name); -- exit(EX_IOERR); -+ audit_exit(EX_IOERR); - } - - tm->tm_isdst = -1; /* don't know whether it's dst */ -@@ -329,7 +330,7 @@ - perror(ioctlname); - fprintf(stderr, _("ioctl() to %s to set the time failed.\n"), - rtc_dev_name); -- exit(EX_IOERR); -+ audit_exit(EX_IOERR); - } - - if (debug) diff --git a/util-linux-2.13-audit-login.patch b/util-linux-2.13-audit-login.patch deleted file mode 100644 index ca88bdc..0000000 --- a/util-linux-2.13-audit-login.patch +++ /dev/null @@ -1,101 +0,0 @@ -diff -ur util-linux-2.13-pre4.orig/login-utils/login.c util-linux-2.13-pre4/login-utils/login.c ---- util-linux-2.13-pre4.orig/login-utils/login.c 2005-10-14 13:59:08.000000000 -0400 -+++ util-linux-2.13-pre4/login-utils/login.c 2005-10-14 15:43:54.000000000 -0400 -@@ -106,6 +106,7 @@ - #include - #include - #include -+#include - #include "pathnames.h" - #include "my_crypt.h" - #include "login.h" -@@ -329,6 +330,7 @@ - #ifdef LOGIN_CHOWN_VCS - char vcsn[20], vcsan[20]; - #endif -+ int audit_fd; - - pid = getpid(); - -@@ -545,11 +547,25 @@ - (retcode == PAM_USER_UNKNOWN) || - (retcode == PAM_CRED_INSUFFICIENT) || - (retcode == PAM_AUTHINFO_UNAVAIL))) { -+ struct passwd *pw; -+ char buf[64]; - pam_get_item(pamh, PAM_USER, (const void **) &username); - - syslog(LOG_NOTICE,_("FAILED LOGIN %d FROM %s FOR %s, %s"), - failcount, hostname, username, pam_strerror(pamh, retcode)); - logbtmp(tty_name, username, hostname); -+ audit_fd = audit_open(); -+ pw = getpwnam(username); -+ if (pw) { -+ snprintf(buf, sizeof(buf), "uid=%d", pw->pw_uid); -+ audit_log_user_message(audit_fd, AUDIT_USER_LOGIN, -+ buf, hostname, NULL, tty_name, 0); -+ } else { -+ snprintf(buf, sizeof(buf), "acct=%s", username); -+ audit_log_user_message(audit_fd, AUDIT_USER_LOGIN, -+ buf, hostname, NULL, tty_name, 0); -+ } -+ close(audit_fd); - - fprintf(stderr,_("Login incorrect\n\n")); - pam_set_item(pamh,PAM_USER,NULL); -@@ -557,6 +573,8 @@ - } - - if (retcode != PAM_SUCCESS) { -+ struct passwd *pw; -+ char buf[64]; - pam_get_item(pamh, PAM_USER, (const void **) &username); - - if (retcode == PAM_MAXTRIES) -@@ -567,6 +585,18 @@ - syslog(LOG_NOTICE,_("FAILED LOGIN SESSION FROM %s FOR %s, %s"), - hostname, username, pam_strerror(pamh, retcode)); - logbtmp(tty_name, username, hostname); -+ audit_fd = audit_open(); -+ pw = getpwnam(username); -+ if (pw) { -+ snprintf(buf, sizeof(buf), "uid=%d", pw->pw_uid); -+ audit_log_user_message(audit_fd, AUDIT_USER_LOGIN, -+ buf, hostname, NULL, tty_name, 0); -+ } else { -+ snprintf(buf, sizeof(buf), "acct=%s", username); -+ audit_log_user_message(audit_fd, AUDIT_USER_LOGIN, -+ buf, hostname, NULL, tty_name, 0); -+ } -+ close(audit_fd); - - fprintf(stderr,_("\nLogin incorrect\n")); - pam_end(pamh, retcode); -@@ -908,6 +938,15 @@ - #endif - #endif - } -+ -+ { -+ char buf[32]; -+ audit_fd = audit_open(); -+ snprintf(buf, sizeof(buf), "uid=%d", pwd->pw_uid); -+ audit_log_user_message(audit_fd, AUDIT_USER_LOGIN, -+ buf, hostname, NULL, tty_name, 1); -+ close(audit_fd); -+ } - - dolastlog(quietlog); - -diff -ur util-linux-2.13-pre4.orig/login-utils/Makefile.am util-linux-2.13-pre4/login-utils/Makefile.am ---- util-linux-2.13-pre4.orig/login-utils/Makefile.am 2005-10-14 13:59:08.000000000 -0400 -+++ util-linux-2.13-pre4/login-utils/Makefile.am 2005-10-14 15:45:22.000000000 -0400 -@@ -55,7 +55,7 @@ - if HAVE_PAM - chfn_LDADD += -lpam -lpam_misc - chsh_LDADD += -lpam -lpam_misc --login_LDADD += -lpam -lpam_misc -+login_LDADD += -lpam -lpam_misc -laudit - login_SOURCES = login.c - else - login_SOURCES = login.c checktty.c diff --git a/util-linux-2.13-blockdev-errno.patch b/util-linux-2.13-blockdev-errno.patch deleted file mode 100644 index 0ccdd60..0000000 --- a/util-linux-2.13-blockdev-errno.patch +++ /dev/null @@ -1,36 +0,0 @@ -commit 3281d4268a192cbd1951347a4a857b94428dc958 -Author: Karel Zak -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 - -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 - #include - #include -+#include - - #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; diff --git a/util-linux-2.13-blockdev-unsigned.patch b/util-linux-2.13-blockdev-unsigned.patch deleted file mode 100644 index 4f46083..0000000 --- a/util-linux-2.13-blockdev-unsigned.patch +++ /dev/null @@ -1,69 +0,0 @@ ---- 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)); diff --git a/util-linux-2.13-cal-3.patch b/util-linux-2.13-cal-3.patch deleted file mode 100644 index f7f7916..0000000 --- a/util-linux-2.13-cal-3.patch +++ /dev/null @@ -1,109 +0,0 @@ ---- 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 -@@ -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 diff --git a/util-linux-2.13-cal-wide.patch b/util-linux-2.13-cal-wide.patch deleted file mode 100644 index ac51aa8..0000000 --- a/util-linux-2.13-cal-wide.patch +++ /dev/null @@ -1,236 +0,0 @@ ---- util-linux-2.13-pre7/include/widechar.h.kzak 2005-08-01 20:18:35.000000000 +0200 -+++ util-linux-2.13-pre7/include/widechar.h 2006-03-29 19:38:56.000000000 +0200 -@@ -2,7 +2,7 @@ - /* This file must be included last because the redefinition of wchar_t may - cause conflicts when system include files were included after it. */ - --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - - # include - # include ---- util-linux-2.13-pre7/misc-utils/cal.c.kzak 2006-03-29 19:40:26.000000000 +0200 -+++ util-linux-2.13-pre7/misc-utils/cal.c 2006-03-29 19:40:34.000000000 +0200 -@@ -355,7 +355,7 @@ - exit(0); - } - --#ifndef ENABLE_WIDECHAR -+#ifndef HAVE_WIDECHAR - static char *eos(char *s) { - while (s && *s) - s++; -@@ -366,14 +366,14 @@ - void headers_init(void) - { - int i, wd; --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - wchar_t day_headings_wc[22],j_day_headings_wc[29]; - char *cur_dh = day_headings, *cur_j_dh = j_day_headings; - #endif - - strcpy(day_headings,""); - strcpy(j_day_headings,""); --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - wcscpy(day_headings_wc,L""); - wcscpy(j_day_headings_wc,L""); - #endif -@@ -387,7 +387,7 @@ - for(i = 0 ; i < 7 ; i++ ) { - ssize_t space_left; - wd = (i + week1stday) % 7; --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - swprintf(day_headings_wc, sizeof(day_headings_wc)/sizeof(day_headings_wc[0]), - L"%1.2s ", weekday(wd)); - swprintf(j_day_headings_wc, sizeof(j_day_headings_wc)/sizeof(j_day_headings_wc[0]), -@@ -718,7 +718,7 @@ - void - center_str(const char* src, char* dest, size_t dest_size, int width) - { --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - wchar_t str_wc[FMT_ST_CHARS]; - #endif - char str[FMT_ST_CHARS]; -@@ -727,7 +727,7 @@ - - len = strlen(src); - --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - if (mbstowcs(str_wc, src, FMT_ST_CHARS) > 0) { - wide_char_enabled = 1; - len = wcswidth(str_wc, SIZE(str_wc)); -@@ -736,7 +736,7 @@ - if (len > width) { - str_to_print=str; - if (wide_char_enabled) { --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - str_wc[width]=L'\0'; - wcstombs(str, str_wc, SIZE(str)); - #endif ---- util-linux-2.13-pre7/text-utils/column.c.kzak 2006-03-29 19:41:20.000000000 +0200 -+++ util-linux-2.13-pre7/text-utils/column.c 2006-03-29 19:41:25.000000000 +0200 -@@ -52,7 +52,7 @@ - - #include "widechar.h" - --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - #define wcs_width(s) wcswidth(s,wcslen(s)) - static wchar_t *mbs_to_wcs(const char *); - #else -@@ -312,7 +312,7 @@ - } - } - --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - static wchar_t *mbs_to_wcs(const char *s) - { - size_t n; -@@ -330,7 +330,7 @@ - } - #endif - --#ifndef ENABLE_WIDECHAR -+#ifndef HAVE_WIDECHAR - static char *mtsafe_strtok(char *str, const char *delim, char **ptr) - { - if (str == NULL) { ---- util-linux-2.13-pre7/text-utils/pg.c.kzak 2006-03-29 19:41:52.000000000 +0200 -+++ util-linux-2.13-pre7/text-utils/pg.c 2006-03-29 19:41:59.000000000 +0200 -@@ -255,7 +255,7 @@ - usage(); - } - --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - /* - * A mbstowcs()-alike function that transparently handles invalid sequences. - */ -@@ -402,7 +402,7 @@ - return 0; - } - --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - /* - * Return the last character that will fit on the line at col columns - * in case MB_CUR_MAX > 1. -@@ -489,7 +489,7 @@ - unsigned pos = 0; - char *t = s; - --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - if (MB_CUR_MAX > 1) - return endline_for_mb(col, s); - #endif -@@ -776,7 +776,7 @@ - cmd.count = getcount(cmd.cmdline); - } - --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - /* - * Remove backspace formatting, for searches - * in case MB_CUR_MAX > 1. -@@ -817,7 +817,7 @@ - { - char *p = s, *q; - --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - if (MB_CUR_MAX > 1) - return colb_for_mb(s); - #endif -@@ -836,7 +836,7 @@ - return s; - } - --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - /* - * Convert nonprintable characters to spaces - * in case MB_CUR_MAX > 1. -@@ -867,7 +867,7 @@ - static void - makeprint(char *s, size_t l) - { --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - if (MB_CUR_MAX > 1) - return makeprint_for_mb(s, l); - #endif ---- util-linux-2.13-pre7/text-utils/more.c.kzak 2006-03-29 19:41:01.000000000 +0200 -+++ util-linux-2.13-pre7/text-utils/more.c 2006-03-29 19:41:08.000000000 +0200 -@@ -782,7 +782,7 @@ - int column; - static int colflg; - --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - int i; - wchar_t wc; - int wc_width; -@@ -805,7 +805,7 @@ - c = Getc (f); - } - while (p < &Line[LINSIZ - 1]) { --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - if (fold_opt && use_mbc_buffer_flag && MB_CUR_MAX > 1) { - use_mbc_buffer_flag = 0; - state_bak = state; -@@ -923,7 +923,7 @@ - *length = p - Line; - return (column); - } else { --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - if (fold_opt && MB_CUR_MAX > 1) { - memset (mbc, '\0', MB_LEN_MAX); - mbc_pos = 0; -@@ -1054,7 +1054,7 @@ - my_putstring(state ? ULenter : ULexit); - } - if (c != ' ' || pstate == 0 || state != 0 || ulglitch == 0) --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - { - wchar_t wc; - size_t mblength; -@@ -1070,7 +1070,7 @@ - } - #else - putchar(c); --#endif /* ENABLE_WIDECHAR */ -+#endif /* HAVE_WIDECHAR */ - if (state && *chUL) { - putsout(chBS); - my_putstring(chUL); -@@ -1867,7 +1867,7 @@ - } - else if (((cc_t) c == otty.c_cc[VERASE]) && !slash) { - if (sp > buf) { --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - if (MB_CUR_MAX > 1) - { - wchar_t wc; ---- util-linux-2.13-pre7/text-utils/ul.c.kzak 2006-03-29 19:42:09.000000000 +0200 -+++ util-linux-2.13-pre7/text-utils/ul.c 2006-03-29 19:42:25.000000000 +0200 -@@ -50,7 +50,7 @@ - - #include "widechar.h" - --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_WIDECHAR - static int put1wc(int c) /* Output an ASCII character as a wide character */ - { - if (putwchar(c) == WEOF) diff --git a/util-linux-2.13-cramfs-maxentries.patch b/util-linux-2.13-cramfs-maxentries.patch deleted file mode 100644 index 07b8822..0000000 --- a/util-linux-2.13-cramfs-maxentries.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- util-linux-2.13-pre5/disk-utils/mkfs.cramfs.c.maxentries 2005-10-20 23:46:19.000000000 +0200 -+++ util-linux-2.13-pre5/disk-utils/mkfs.cramfs.c 2005-10-20 23:54:07.000000000 +0200 -@@ -471,11 +471,13 @@ - * entries, using a stack to remember the directories - * we've seen. - */ --#define MAXENTRIES (100) - static unsigned int write_directory_structure(struct entry *entry, char *base, unsigned int offset) - { - int stack_entries = 0; -- struct entry *entry_stack[MAXENTRIES]; -+ int stack_size = 64; -+ struct entry **entry_stack; -+ -+ entry_stack = xmalloc(stack_size * sizeof(struct entry *)); - - for (;;) { - int dir_start = stack_entries; -@@ -508,13 +510,13 @@ - if (verbose) - printf(" %s\n", entry->name); - if (entry->child) { -- if (stack_entries >= MAXENTRIES) { -- fprintf(stderr, -- _("Exceeded MAXENTRIES. Raise" -- " this value in mkcramfs.c " -- "and recompile. Exiting.\n") -- ); -- exit(8); -+ if (stack_entries >= stack_size) { -+ stack_size *= 2; -+ entry_stack = realloc(entry_stack, stack_size * sizeof(struct entry *)); -+ if (!entry_stack) { -+ perror(NULL); -+ exit(8); /* out of memory */ -+ } - } - entry_stack[stack_entries] = entry; - stack_entries++; -@@ -551,6 +553,7 @@ - printf("'%s':\n", entry->name); - entry = entry->child; - } -+ free(entry_stack); - return offset; - } - diff --git a/util-linux-2.13-cramfs-zerofiles.patch b/util-linux-2.13-cramfs-zerofiles.patch deleted file mode 100644 index 3d97419..0000000 --- a/util-linux-2.13-cramfs-zerofiles.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- util-linux-2.13-pre5/disk-utils/mkfs.cramfs.c.zerofiles 2005-11-07 13:05:27.000000000 +0100 -+++ util-linux-2.13-pre5/disk-utils/mkfs.cramfs.c 2005-11-07 13:06:38.000000000 +0100 -@@ -661,7 +661,7 @@ - if (e->same) { - set_data_offset(e, base, e->same->offset); - e->offset = e->same->offset; -- } else { -+ } else if (e->size) { - set_data_offset(e, base, offset); - e->offset = offset; - offset = do_compress(base, offset, e->name, diff --git a/util-linux-2.13-ctrlaltdel-man.patch b/util-linux-2.13-ctrlaltdel-man.patch deleted file mode 100644 index ab7c6bd..0000000 --- a/util-linux-2.13-ctrlaltdel-man.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- util-linux-2.13-pre6/sys-utils/ctrlaltdel.8.kzak 2006-08-10 12:23:53.000000000 +0200 -+++ util-linux-2.13-pre6/sys-utils/ctrlaltdel.8 2006-08-10 12:24:08.000000000 +0200 -@@ -32,7 +32,6 @@ - .SH FILES - .I /etc/rc.local - .SH "SEE ALSO" --.BR simpleinit (8), - .BR init (8) - .SH AUTHOR - Peter Orbaek (poe@daimi.aau.dk) diff --git a/util-linux-2.13-ctty3.patch b/util-linux-2.13-ctty3.patch deleted file mode 100644 index e33fef7..0000000 --- a/util-linux-2.13-ctty3.patch +++ /dev/null @@ -1,102 +0,0 @@ ---- util-linux-2.13-pre1/login-utils/login.c.ctty3 2005-08-02 18:10:24.000000000 +0200 -+++ util-linux-2.13-pre1/login-utils/login.c 2005-08-15 15:51:35.000000000 +0200 -@@ -285,7 +285,21 @@ - updwtmp(_PATH_BTMP, &ut); - #endif - } --#endif /* HAVE_SECURITY_PAM_MISC_H */ -+ -+static int childPid = 0; -+static volatile int got_sig = 0; -+ -+static void -+parent_sig_handler(int signal) -+{ -+ if(childPid) -+ kill(-childPid, signal); -+ else -+ got_sig = 1; -+ if(signal == SIGTERM) -+ kill(-childPid, SIGHUP); /* because the shell often ignores SIGTERM */ -+} -+#endif /* HAVE_SECURITY_PAM_MISC_H */ - - int - main(int argc, char **argv) -@@ -307,7 +321,7 @@ - int retcode; - pam_handle_t *pamh = NULL; - struct pam_conv conv = { misc_conv, NULL }; -- pid_t childPid; -+ struct sigaction sa, oldsa_hup, oldsa_term; - #else - char *salt, *pp; - #endif -@@ -1023,7 +1037,18 @@ - * We must fork before setuid() because we need to call - * pam_close_session() as root. - */ -+ memset(&sa, 0, sizeof(sa)); -+ sa.sa_handler = SIG_IGN; -+ sigaction(SIGINT, &sa, NULL); -+ -+ sigaction(SIGHUP, &sa, &oldsa_hup); /* ignore while we detach from the tty */ -+ ioctl(0, TIOCNOTTY, NULL); -+ -+ sa.sa_handler = parent_sig_handler; -+ sigaction(SIGHUP, &sa, NULL); -+ sigaction(SIGTERM, &sa, &oldsa_term); - -+ closelog(); - childPid = fork(); - if (childPid < 0) { - int errsv = errno; -@@ -1034,19 +1059,20 @@ - } - - if (childPid) { -- /* parent - wait for child to finish, then cleanup session */ -- signal(SIGHUP, SIG_IGN); -- signal(SIGINT, SIG_IGN); -- signal(SIGQUIT, SIG_IGN); -- signal(SIGTSTP, SIG_IGN); -- signal(SIGTTIN, SIG_IGN); -- signal(SIGTTOU, SIG_IGN); -- -- wait(NULL); -+ close(0); close(1); close(2); -+ sa.sa_handler = SIG_IGN; -+ sigaction(SIGQUIT, &sa, NULL); -+ sigaction(SIGINT, &sa, NULL); -+ while(wait(NULL) == -1 && errno == EINTR) /**/ ; -+ openlog("login", LOG_ODELAY, LOG_AUTHPRIV); - PAM_END; - exit(0); - } - -+ sigaction(SIGHUP, &oldsa_hup, NULL); -+ sigaction(SIGTERM, &oldsa_term, NULL); -+ if(got_sig) exit(1); -+ - /* child */ - /* - * Problem: if the user's shell is a shell like ash that doesnt do -@@ -1058,14 +1084,15 @@ - setsid(); - - /* make sure we have a controlling tty */ -- opentty(ttyn); - openlog("login", LOG_ODELAY, LOG_AUTHPRIV); /* reopen */ - - /* - * TIOCSCTTY: steal tty from other process group. - */ -- if (ioctl(0, TIOCSCTTY, 1)) -- syslog(LOG_ERR, _("TIOCSCTTY failed: %m")); -+ if (ioctl(0, TIOCSCTTY, (char *)1)) { -+ syslog(LOG_ERR, _("Couldn't set controlling terminal: %s"), strerror(errno)); -+ exit(1); -+ } - #endif - signal(SIGINT, SIG_DFL); - diff --git a/util-linux-2.13-fdisk-b-4096.patch b/util-linux-2.13-fdisk-b-4096.patch deleted file mode 100644 index b2dde20..0000000 --- a/util-linux-2.13-fdisk-b-4096.patch +++ /dev/null @@ -1,15 +0,0 @@ - - The "-b" option allows to manually define size of sector size. We need to support - 4096 bytes for really huge disks. [kzak 12/14/2006] - ---- util-linux-2.13-pre7/fdisk/fdisk.c.kzak 2006-12-14 10:21:57.000000000 +0100 -+++ util-linux-2.13-pre7/fdisk/fdisk.c 2006-12-14 10:22:21.000000000 +0100 -@@ -2491,7 +2491,7 @@ - */ - sector_size = atoi(optarg); - if (sector_size != 512 && sector_size != 1024 && -- sector_size != 2048) -+ sector_size != 2048 && sector_size != 4096) - fatal(usage); - sector_offset = 2; - user_set_sector_size = 1; diff --git a/util-linux-2.13-fdisk-gpt.patch b/util-linux-2.13-fdisk-gpt.patch deleted file mode 100644 index 03c6ca9..0000000 --- a/util-linux-2.13-fdisk-gpt.patch +++ /dev/null @@ -1,493 +0,0 @@ ---- util-linux-2.13-pre6/fdisk/fdisk.c.gpt 2005-11-24 15:30:36.000000000 +0100 -+++ util-linux-2.13-pre6/fdisk/fdisk.c 2005-11-24 15:30:36.000000000 +0100 -@@ -34,6 +34,8 @@ - #include - #endif - -+#include "gpt.h" -+ - static void delete_partition(int i); - - #define hex_val(c) ({ \ -@@ -2400,6 +2402,14 @@ - } - - static void -+gpt_warning(char *dev) -+{ -+ if (gpt_probe_signature_devname(dev)) -+ fprintf(stderr, _("\nWARNING: GPT (GUID Partition Table) detected on '%s'! " -+ "The util fdisk doesn't support GPT. Use GNU Parted.\n\n"), dev); -+} -+ -+static void - try(char *device, int user_specified) { - int gb; - -@@ -2409,6 +2419,7 @@ - if (!user_specified) - if (is_ide_cdrom_or_tape(device)) - return; -+ gpt_warning(device); - if ((fd = open(disk_device, type_open)) >= 0) { - gb = get_boot(try_only); - if (gb > 0) { /* I/O error */ -@@ -2470,6 +2481,8 @@ - printf(_("%c: unknown command\n"), c); - } - -+ -+ - int - main(int argc, char **argv) { - int j, c; -@@ -2574,6 +2587,7 @@ - - for (j = optind; j < argc; j++) { - disk_device = argv[j]; -+ gpt_warning(disk_device); - if ((fd = open(disk_device, type_open)) < 0) - fatal(unable_to_open); - if (disksize(fd, &size)) -@@ -2594,6 +2608,7 @@ - else - fatal(usage2); - -+ gpt_warning(disk_device); - get_boot(fdisk); - - if (osf_label) { ---- /dev/null 2005-11-14 15:52:26.044616250 +0100 -+++ util-linux-2.13-pre6/fdisk/gpt.h 2005-11-24 15:30:36.000000000 +0100 -@@ -0,0 +1,9 @@ -+ -+#ifndef __GPT_H__ -+#define __GPT_H__ -+ -+extern int gpt_probe_signature_fd(int fd); -+extern int gpt_probe_signature_devname(char *devname); -+ -+#endif /* __GPT_H__ */ -+ ---- util-linux-2.13-pre6/fdisk/Makefile.am.gpt 2005-10-16 14:12:52.000000000 +0200 -+++ util-linux-2.13-pre6/fdisk/Makefile.am 2005-11-24 15:31:42.000000000 +0100 -@@ -5,13 +5,13 @@ - sbin_PROGRAMS = fdisk - man_MANS = fdisk.8 - fdisk_SOURCES = fdisk.c disksize.c fdiskbsdlabel.c fdisksgilabel.c \ -- fdisksunlabel.c fdiskaixlabel.c i386_sys_types.c partname.c -+ fdisksunlabel.c fdiskaixlabel.c i386_sys_types.c partname.c gpt.c - - if !SPARC - - sbin_PROGRAMS += sfdisk - man_MANS += sfdisk.8 --sfdisk_SOURCES = sfdisk.c disksize.c i386_sys_types.c partname.c -+sfdisk_SOURCES = sfdisk.c disksize.c i386_sys_types.c partname.c gpt.c - - if USE_SLANG - sbin_PROGRAMS += cfdisk ---- util-linux-2.13-pre6/fdisk/fdisk.8.gpt 2005-11-24 15:30:36.000000000 +0100 -+++ util-linux-2.13-pre6/fdisk/fdisk.8 2005-11-24 15:30:36.000000000 +0100 -@@ -42,6 +42,11 @@ - partition tables. - It understands DOS type partition tables and BSD or SUN type disklabels. - -+.B fdisk -+doesn't understand GUID Partition Table (GPT) and -+it is not designed for large partitions. In particular case use more advanced GNU -+.B parted(8). -+ - The - .I device - is usually one of the following: ---- util-linux-2.13-pre6/fdisk/sfdisk.8.gpt 2004-12-31 17:28:30.000000000 +0100 -+++ util-linux-2.13-pre6/fdisk/sfdisk.8 2005-11-24 15:30:36.000000000 +0100 -@@ -18,6 +18,11 @@ - on a device, check the partitions on a device, and - very dangerous - - repartition a device. - -+.B sfdisk -+doesn't understand GUID Partition Table (GPT) and -+it is not designed for large partitions. In particular case use more advanced GNU -+.B parted(8). -+ - .SS "List Sizes" - .BI "sfdisk \-s " partition - gives the size of ---- /dev/null 2005-11-14 15:52:26.044616250 +0100 -+++ util-linux-2.13-pre6/fdisk/gpt.c 2005-11-24 15:30:36.000000000 +0100 -@@ -0,0 +1,287 @@ -+/* -+ GPT (GUID Partition Table) signature detection. Based on libparted and -+ util-linux/partx. -+ -+ Warning: this code doesn't do all GPT checks (CRC32, Protective MBR, ..). It's -+ really GPT signature detection only. -+ -+ -- Karel Zak (Jun-2-2005) -+ -+*/ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "gpt.h" -+ -+#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) -+#define SECTOR_SIZE 512 /* default */ -+ -+#define _GET_BYTE(x, n) ( ((x) >> (8 * (n))) & 0xff ) -+ -+#define _PED_SWAP64(x) ( (_GET_BYTE(x, 0) << 56) \ -+ + (_GET_BYTE(x, 1) << 48) \ -+ + (_GET_BYTE(x, 2) << 40) \ -+ + (_GET_BYTE(x, 3) << 32) \ -+ + (_GET_BYTE(x, 4) << 24) \ -+ + (_GET_BYTE(x, 5) << 16) \ -+ + (_GET_BYTE(x, 6) << 8) \ -+ + (_GET_BYTE(x, 7) << 0) ) -+ -+#define PED_SWAP64(x) ((uint64_t) _PED_SWAP64( (uint64_t) (x) )) -+ -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+# define CPU_TO_LE64(x) (x) -+#else -+# define CPU_TO_LE64(x) PED_SWAP64(x) -+#endif -+ -+#define BLKSSZGET _IO(0x12,104) /* get block device sector size */ -+#define BLKGETLASTSECT _IO(0x12,108) /* get last sector of block device */ -+#define BLKGETSIZE _IO(0x12,96) /* return device size */ -+#define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size in bytes (u64 *arg) */ -+ -+#define GPT_HEADER_SIGNATURE 0x5452415020494645LL -+#define GPT_PRIMARY_PARTITION_TABLE_LBA 1 -+ -+typedef struct { -+ uint32_t time_low; -+ uint16_t time_mid; -+ uint16_t time_hi_and_version; -+ uint8_t clock_seq_hi_and_reserved; -+ uint8_t clock_seq_low; -+ uint8_t node[6]; -+} /* __attribute__ ((packed)) */ efi_guid_t; -+/* commented out "__attribute__ ((packed))" to work around gcc bug (fixed -+ * in gcc3.1): __attribute__ ((packed)) breaks addressing on initialized -+ * data. It turns out we don't need it in this case, so it doesn't break -+ * anything :) -+ */ -+ -+typedef struct _GuidPartitionTableHeader_t { -+ uint64_t Signature; -+ uint32_t Revision; -+ uint32_t HeaderSize; -+ uint32_t HeaderCRC32; -+ uint32_t Reserved1; -+ uint64_t MyLBA; -+ uint64_t AlternateLBA; -+ uint64_t FirstUsableLBA; -+ uint64_t LastUsableLBA; -+ efi_guid_t DiskGUID; -+ uint64_t PartitionEntryLBA; -+ uint32_t NumberOfPartitionEntries; -+ uint32_t SizeOfPartitionEntry; -+ uint32_t PartitionEntryArrayCRC32; -+ uint8_t Reserved2[512 - 92]; -+} __attribute__ ((packed)) GuidPartitionTableHeader_t; -+ -+struct blkdev_ioctl_param { -+ unsigned int block; -+ size_t content_length; -+ char * block_contents; -+}; -+ -+static int -+_get_linux_version (void) -+{ -+ static int kver = -1; -+ struct utsname uts; -+ int major; -+ int minor; -+ int teeny; -+ -+ if (kver != -1) -+ return kver; -+ if (uname (&uts)) -+ return kver = 0; -+ if (sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny) != 3) -+ return kver = 0; -+ return kver = KERNEL_VERSION (major, minor, teeny); -+} -+ -+static unsigned int -+_get_sector_size (int fd) -+{ -+ unsigned int sector_size; -+ -+ if (_get_linux_version() < KERNEL_VERSION (2,3,0)) -+ return SECTOR_SIZE; -+ if (ioctl (fd, BLKSSZGET, §or_size)) -+ return SECTOR_SIZE; -+ return sector_size; -+} -+ -+static uint64_t -+_get_num_sectors(int fd) -+{ -+ int version = _get_linux_version(); -+ unsigned long size; -+ uint64_t bytes=0; -+ -+ if (version >= KERNEL_VERSION(2,5,4) || -+ (version < KERNEL_VERSION(2,5,0) && -+ version >= KERNEL_VERSION (2,4,18))) -+ { -+ if (ioctl(fd, BLKGETSIZE64, &bytes) == 0) -+ return bytes / _get_sector_size(fd); -+ } -+ if (ioctl (fd, BLKGETSIZE, &size)) -+ return 0; -+ return size; -+} -+ -+static uint64_t -+last_lba(int fd) -+{ -+ int rc; -+ uint64_t sectors = 0; -+ struct stat s; -+ -+ memset(&s, 0, sizeof (s)); -+ rc = fstat(fd, &s); -+ if (rc == -1) -+ { -+ fprintf(stderr, "last_lba() could not stat: %s\n", -+ strerror(errno)); -+ return 0; -+ } -+ if (S_ISBLK(s.st_mode)) -+ sectors = _get_num_sectors(fd); -+ else -+ { -+ fprintf(stderr, -+ "last_lba(): I don't know how to handle files with mode %x\n", -+ s.st_mode); -+ sectors = 1; -+ } -+ return sectors - 1; -+} -+ -+static ssize_t -+read_lastoddsector(int fd, uint64_t lba, void *buffer, size_t count) -+{ -+ int rc; -+ struct blkdev_ioctl_param ioctl_param; -+ -+ if (!buffer) return 0; -+ -+ ioctl_param.block = 0; /* read the last sector */ -+ ioctl_param.content_length = count; -+ ioctl_param.block_contents = buffer; -+ -+ rc = ioctl(fd, BLKGETLASTSECT, &ioctl_param); -+ if (rc == -1) perror("read failed"); -+ -+ return !rc; -+} -+ -+static ssize_t -+read_lba(int fd, uint64_t lba, void *buffer, size_t bytes) -+{ -+ int sector_size = _get_sector_size(fd); -+ off_t offset = lba * sector_size; -+ ssize_t bytesread; -+ -+ lseek(fd, offset, SEEK_SET); -+ bytesread = read(fd, buffer, bytes); -+ -+ /* Kludge. This is necessary to read/write the last -+ block of an odd-sized disk, until Linux 2.5.x kernel fixes. -+ This is only used by gpt.c, and only to read -+ one sector, so we don't have to be fancy. -+ */ -+ if (!bytesread && !(last_lba(fd) & 1) && lba == last_lba(fd)) -+ bytesread = read_lastoddsector(fd, lba, buffer, bytes); -+ return bytesread; -+} -+ -+static GuidPartitionTableHeader_t * -+alloc_read_gpt_header(int fd, uint64_t lba) -+{ -+ GuidPartitionTableHeader_t *gpt = -+ (GuidPartitionTableHeader_t *) malloc(sizeof (GuidPartitionTableHeader_t)); -+ if (!gpt) -+ return NULL; -+ memset(gpt, 0, sizeof (*gpt)); -+ if (!read_lba(fd, lba, gpt, sizeof (GuidPartitionTableHeader_t))) -+ { -+ free(gpt); -+ return NULL; -+ } -+ return gpt; -+} -+ -+static int -+gpt_check_signature(int fd, uint64_t lba) -+{ -+ GuidPartitionTableHeader_t *gpt; -+ int res=0; -+ -+ if ((gpt = alloc_read_gpt_header(fd, lba))) -+ { -+ if (gpt->Signature == CPU_TO_LE64(GPT_HEADER_SIGNATURE)) -+ res = 1; -+ free(gpt); -+ } -+ return res; -+} -+ -+/* returns: -+ * 0 not found GPT -+ * 1 for valid primary GPT header -+ * 2 for valid alternative GPT header -+ */ -+int -+gpt_probe_signature_fd(int fd) -+{ -+ int res = 0; -+ -+ /* check primary GPT header */ -+ if (gpt_check_signature(fd, GPT_PRIMARY_PARTITION_TABLE_LBA)) -+ res = 1; -+ else -+ { -+ /* check alternative GPT header */ -+ uint64_t lastlba = last_lba(fd); -+ if (gpt_check_signature(fd, lastlba)) -+ res = 2; -+ } -+ return res; -+} -+ -+int -+gpt_probe_signature_devname(char *devname) -+{ -+ int res, fd; -+ if ((fd = open(devname, O_RDONLY)) < 0) -+ return 0; -+ res = gpt_probe_signature_fd(fd); -+ close(fd); -+ return res; -+} -+ -+#ifdef GPT_TEST_MAIN -+int -+main(int argc, char **argv) -+{ -+ if (argc!=2) -+ { -+ fprintf(stderr, "usage: %s \n", argv[0]); -+ exit(EXIT_FAILURE); -+ } -+ if (gpt_probe_signature_devname(argv[1])) -+ printf("GPT (GUID Partition Table) detected on %s\n", argv[1]); -+ exit(EXIT_SUCCESS); -+} -+#endif ---- util-linux-2.13-pre6/fdisk/sfdisk.c.gpt 2005-10-16 14:18:32.000000000 +0200 -+++ util-linux-2.13-pre6/fdisk/sfdisk.c 2005-11-24 15:30:36.000000000 +0100 -@@ -50,6 +50,8 @@ - #include "nls.h" - #include "common.h" - -+#include "gpt.h" -+ - #define SIZE(a) (sizeof(a)/sizeof(a[0])) - - /* -@@ -2457,6 +2459,23 @@ - return NULL; - } - -+static void -+gpt_warning(char *dev, int warn_only) -+{ -+ if (force) -+ warn_only = 1; -+ -+ if (gpt_probe_signature_devname(dev)) { -+ fflush(stdout); -+ fprintf(stderr, _("\nWARNING: GPT (GUID Partition Table) detected on '%s'! " -+ "The util sfdisk doesn't support GPT. Use GNU Parted.\n\n"), dev); -+ if (!warn_only) { -+ fprintf(stderr, _("Use the --force flag to overrule this check.\n")); -+ exit(1); -+ } -+ } -+} -+ - static void do_list(char *dev, int silent); - static void do_size(char *dev, int silent); - static void do_geom(char *dev, int silent); -@@ -2602,6 +2621,7 @@ - while ((dev = nextproc()) != NULL) { - if (is_ide_cdrom_or_tape(dev)) - continue; -+ gpt_warning(dev, 1); - if (opt_out_geom) - do_geom(dev, 1); - if (opt_out_pt_geom) -@@ -2629,6 +2649,7 @@ - - if (opt_list || opt_out_geom || opt_out_pt_geom || opt_size || verify) { - while (optind < argc) { -+ gpt_warning(argv[optind], 1); - if (opt_out_geom) - do_geom(argv[optind], 0); - if (opt_out_pt_geom) -@@ -2657,6 +2678,7 @@ - fatal(_("usage: sfdisk --change-id device partition-number Id\n")); - else if (optind != argc-3 && optind != argc-2) - fatal(_("usage: sfdisk --id device partition-number [Id]\n")); -+ gpt_warning(argv[optind], 0); - do_change_id(argv[optind], argv[optind+1], - (optind == argc-2) ? 0 : argv[optind+2]); - exit(exit_status); -@@ -2666,6 +2688,8 @@ - fatal(_("can specify only one device (except with -l or -s)\n")); - dev = argv[optind]; - -+ gpt_warning(dev, 0); -+ - if (opt_reread) - do_reread(dev); - else if (restore_sector_file) -@@ -2842,6 +2866,8 @@ - - z = &oldp; - -+ gpt_warning(dev, 0); -+ - rw = (!no_write && (arg || ac > 1)); - fd = my_open(dev, rw, 0); - -@@ -2943,6 +2969,8 @@ - - z = &oldp; - -+ gpt_warning(dev, 0); -+ - rw = !no_write; - fd = my_open(dev, rw, 0); - diff --git a/util-linux-2.13-fdisk-isfull.patch b/util-linux-2.13-fdisk-isfull.patch deleted file mode 100644 index 91fdace..0000000 --- a/util-linux-2.13-fdisk-isfull.patch +++ /dev/null @@ -1,103 +0,0 @@ ---- util-linux-2.13-pre6/fdisk/sfdisk.c.isfull 2006-06-12 13:31:46.000000000 +0200 -+++ util-linux-2.13-pre6/fdisk/sfdisk.c 2006-06-12 13:31:47.000000000 +0200 -@@ -2413,19 +2413,6 @@ - return is_ide; - } - --static int --is_probably_full_disk(char *name) { -- struct hd_geometry geometry; -- int fd, i = 0; -- -- fd = open(name, O_RDONLY); -- if (fd >= 0) { -- i = ioctl(fd, HDIO_GETGEO, &geometry); -- close(fd); -- } -- return (fd >= 0 && i == 0 && geometry.start == 0); --} -- - #define PROC_PARTITIONS "/proc/partitions" - static FILE *procf = NULL; - ---- util-linux-2.13-pre6/fdisk/common.h.isfull 2004-09-06 20:07:11.000000000 +0200 -+++ util-linux-2.13-pre6/fdisk/common.h 2006-06-12 13:31:47.000000000 +0200 -@@ -28,5 +28,6 @@ - extern struct systypes i386_sys_types[]; - - extern char *partname(char *dev, int pno, int lth); -+extern int is_probably_full_disk(char *name); - - int disksize(int fd, unsigned long long *sectors); ---- util-linux-2.13-pre6/fdisk/partname.c.isfull 2002-07-07 14:16:43.000000000 +0200 -+++ util-linux-2.13-pre6/fdisk/partname.c 2006-06-12 13:32:54.000000000 +0200 -@@ -1,6 +1,9 @@ - #include - #include - #include -+#include -+#include -+#include - #include "common.h" - - /* -@@ -45,3 +48,30 @@ - partname(char *dev, int pno, int lth) { - return partnamebf(dev, pno, lth, 0, NULL); - } -+ -+int -+is_probably_full_disk(char *name) { -+#ifdef HDIO_GETGEO -+ struct hd_geometry geometry; -+ int fd, i = 0; -+ -+ fd = open(name, O_RDONLY); -+ if (fd >= 0) { -+ i = ioctl(fd, HDIO_GETGEO, &geometry); -+ close(fd); -+ } -+ if (i==0) -+ return (fd >= 0 && geometry.start == 0); -+ /* -+ * "silly heuristic" is still so sexy for us, because -+ * for example Xen doesn't implement HDIO_GETGEO for virtual -+ * block devices (/dev/xvda). -+ * -- kzak@redhat.com (23-Feb-2006) -+ */ -+#endif -+ /* silly heuristic */ -+ while (*name) -+ name++; -+ return !isdigit(name[-1]); -+} -+ ---- util-linux-2.13-pre6/fdisk/fdisk.c.isfull 2006-06-12 13:31:47.000000000 +0200 -+++ util-linux-2.13-pre6/fdisk/fdisk.c 2006-06-12 13:31:47.000000000 +0200 -@@ -788,26 +788,6 @@ - #endif - } - --static int --is_probably_full_disk(char *name) { --#ifdef HDIO_GETGEO -- struct hd_geometry geometry; -- int fd, i = 0; -- -- fd = open(name, O_RDONLY); -- if (fd >= 0) { -- i = ioctl(fd, HDIO_GETGEO, &geometry); -- close(fd); -- } -- return (fd >= 0 && i == 0 && geometry.start == 0); --#else -- /* silly heuristic */ -- while (*name) -- name++; -- return !isdigit(name[-1]); --#endif --} -- - static void - get_partition_table_geometry(void) { - unsigned char *bufp = MBRbuffer; diff --git a/util-linux-2.13-fdisk-sectors.patch b/util-linux-2.13-fdisk-sectors.patch deleted file mode 100644 index c8de359..0000000 --- a/util-linux-2.13-fdisk-sectors.patch +++ /dev/null @@ -1,345 +0,0 @@ ---- util-linux-2.13-pre6/fdisk/fdisk.h.sectors 2006-06-12 10:50:11.000000000 +0200 -+++ util-linux-2.13-pre6/fdisk/fdisk.h 2006-06-12 10:50:52.000000000 +0200 -@@ -81,8 +81,8 @@ - #define SINGULAR 1 - extern char *const str_units(int); - --extern unsigned int get_start_sect(struct partition *p); --extern unsigned int get_nr_sects(struct partition *p); -+extern unsigned long long get_start_sect(struct partition *p); -+extern unsigned long long get_nr_sects(struct partition *p); - - extern int osf_label; - ---- util-linux-2.13-pre6/fdisk/fdisksgilabel.h.sectors 2004-12-14 00:39:29.000000000 +0100 -+++ util-linux-2.13-pre6/fdisk/fdisksgilabel.h 2006-06-12 10:50:52.000000000 +0200 -@@ -103,8 +103,9 @@ - /* fdisk.c */ - #define sgilabel ((sgi_partition *)MBRbuffer) - #define sgiparam (sgilabel->devparam) --extern char MBRbuffer[MAX_SECTOR_SIZE]; --extern unsigned int heads, sectors, cylinders, sector_size; -+extern unsigned char MBRbuffer[MAX_SECTOR_SIZE]; -+extern unsigned int heads, cylinders, sector_size; -+extern unsigned long long sectors; - extern int show_begin; - extern int sgi_label; - extern char *partition_type(unsigned char type); ---- util-linux-2.13-pre6/fdisk/fdisksunlabel.h.sectors 2004-12-14 00:39:18.000000000 +0100 -+++ util-linux-2.13-pre6/fdisk/fdisksunlabel.h 2006-06-12 10:50:52.000000000 +0200 -@@ -37,8 +37,9 @@ - : (__u32)(x)) - - /* fdisk.c */ --extern char MBRbuffer[MAX_SECTOR_SIZE]; --extern unsigned int heads, sectors, cylinders; -+extern unsigned char MBRbuffer[MAX_SECTOR_SIZE]; -+extern unsigned int heads, cylinders; -+extern unsigned long long sectors; - extern int show_begin; - extern int sun_label; - extern char *partition_type(unsigned char type); ---- util-linux-2.13-pre6/fdisk/fdiskaixlabel.h.sectors 2004-12-14 00:39:47.000000000 +0100 -+++ util-linux-2.13-pre6/fdisk/fdiskaixlabel.h 2006-06-12 10:50:52.000000000 +0200 -@@ -19,9 +19,10 @@ - - /* fdisk.c */ - #define aixlabel ((aix_partition *)MBRbuffer) --extern char MBRbuffer[MAX_SECTOR_SIZE]; -+extern unsigned char MBRbuffer[MAX_SECTOR_SIZE]; - extern char changed[MAXIMUM_PARTS]; --extern unsigned int heads, sectors, cylinders; -+extern unsigned int heads, cylinders; -+extern unsigned long long sectors; - extern int show_begin; - extern int aix_label; - extern char *partition_type(unsigned char type); ---- util-linux-2.13-pre6/fdisk/fdisksunlabel.c.sectors 2005-07-31 18:00:29.000000000 +0200 -+++ util-linux-2.13-pre6/fdisk/fdisksunlabel.c 2006-06-12 10:50:52.000000000 +0200 -@@ -348,7 +348,7 @@ - } - - snprintf(sunlabel->info, sizeof(sunlabel->info), -- "%s%s%s cyl %d alt %d hd %d sec %d", -+ "%s%s%s cyl %d alt %d hd %d sec %llu", - p ? p->vendor : "", (p && *p->vendor) ? " " : "", - p ? p->model - : (floppy ? _("3,5\" floppy") : _("Linux custom")), -@@ -655,7 +655,7 @@ - w = strlen(disk_device); - if (xtra) - printf( -- _("\nDisk %s (Sun disk label): %d heads, %d sectors, %d rpm\n" -+ _("\nDisk %s (Sun disk label): %d heads, %llu sectors, %d rpm\n" - "%d cylinders, %d alternate cylinders, %d physical cylinders\n" - "%d extra sects/cyl, interleave %d:1\n" - "%s\n" -@@ -669,7 +669,7 @@ - str_units(PLURAL), units_per_sector); - else - printf( -- _("\nDisk %s (Sun disk label): %d heads, %d sectors, %d cylinders\n" -+ _("\nDisk %s (Sun disk label): %d heads, %llu sectors, %d cylinders\n" - "Units = %s of %d * 512 bytes\n\n"), - disk_device, heads, sectors, cylinders, - str_units(PLURAL), units_per_sector); ---- util-linux-2.13-pre6/fdisk/fdisk.c.sectors 2006-06-12 10:50:11.000000000 +0200 -+++ util-linux-2.13-pre6/fdisk/fdisk.c 2006-06-12 10:51:53.000000000 +0200 -@@ -64,7 +64,7 @@ - - /* A valid partition table sector ends in 0x55 0xaa */ - static unsigned int --part_table_flag(char *b) { -+part_table_flag(unsigned char *b) { - return ((unsigned int) b[510]) + (((unsigned int) b[511]) << 8); - } - -@@ -74,7 +74,7 @@ - } - - static void --write_part_table_flag(char *b) { -+write_part_table_flag(unsigned char *b) { - b[510] = 0x55; - b[511] = 0xaa; - } -@@ -101,17 +101,17 @@ - store4_little_endian(p->start4, start_sect); - } - --unsigned int -+unsigned long long - get_start_sect(struct partition *p) { - return read4_little_endian(p->start4); - } - - static void --set_nr_sects(struct partition *p, unsigned int nr_sects) { -+set_nr_sects(struct partition *p, unsigned long long nr_sects) { - store4_little_endian(p->size4, nr_sects); - } - --unsigned int -+unsigned long long - get_nr_sects(struct partition *p) { - return read4_little_endian(p->size4); - } -@@ -123,7 +123,7 @@ - * Raw disk label. For DOS-type partition tables the MBR, - * with descriptions of the primary partitions. - */ --char MBRbuffer[MAX_SECTOR_SIZE]; -+unsigned char MBRbuffer[MAX_SECTOR_SIZE]; - - /* - * per partition table entry data -@@ -137,8 +137,8 @@ - struct partition *part_table; /* points into sectorbuffer */ - struct partition *ext_pointer; /* points into sectorbuffer */ - char changed; /* boolean */ -- unsigned int offset; /* disk sector number */ -- char *sectorbuffer; /* disk sector contents */ -+ unsigned long long offset; /* disk sector number */ -+ unsigned char *sectorbuffer; /* disk sector contents */ - } ptes[MAXIMUM_PARTS]; - - char *disk_device, /* must be specified */ -@@ -157,15 +157,14 @@ - unsigned int pt_heads, pt_sectors; - unsigned int kern_heads, kern_sectors; - -+unsigned long long sector_offset = 1, extended_offset = 0, sectors; -+ - unsigned int heads, -- sectors, - cylinders, - sector_size = DEFAULT_SECTOR_SIZE, - user_set_sector_size = 0, -- sector_offset = 1, - units_per_sector = 1, -- display_in_cyl_units = 1, -- extended_offset = 0; /* offset of link pointers */ -+ display_in_cyl_units = 1; - - unsigned long long total_number_of_sectors; - -@@ -242,21 +241,21 @@ - } - - static void --seek_sector(int fd, unsigned int secno) { -+seek_sector(int fd, unsigned long long secno) { - off_t offset = (off_t) secno * sector_size; - if (lseek(fd, offset, SEEK_SET) == (off_t) -1) - fatal(unable_to_seek); - } - - static void --read_sector(int fd, unsigned int secno, char *buf) { -+read_sector(int fd, unsigned long long secno, char *buf) { - seek_sector(fd, secno); - if (read(fd, buf, sector_size) != sector_size) - fatal(unable_to_read); - } - - static void --write_sector(int fd, unsigned int secno, char *buf) { -+write_sector(int fd, unsigned long long secno, char *buf) { - seek_sector(fd, secno); - if (write(fd, buf, sector_size) != sector_size) - fatal(unable_to_write); -@@ -264,11 +263,11 @@ - - /* Allocate a buffer and read a partition table sector */ - static void --read_pte(int fd, int pno, unsigned int offset) { -+read_pte(int fd, int pno, unsigned long long offset) { - struct pte *pe = &ptes[pno]; - - pe->offset = offset; -- pe->sectorbuffer = (char *) malloc(sector_size); -+ pe->sectorbuffer = malloc(sector_size); - if (!pe->sectorbuffer) - fatal(out_of_memory); - read_sector(fd, offset, pe->sectorbuffer); -@@ -276,7 +275,7 @@ - pe->part_table = pe->ext_pointer = NULL; - } - --static unsigned int -+static unsigned long long - get_partition_start(struct pte *pe) { - return pe->offset + get_start_sect(pe->part_table); - } -@@ -542,10 +541,10 @@ - } - - static void --set_partition(int i, int doext, unsigned int start, unsigned int stop, -- int sysid) { -+set_partition(int i, int doext, unsigned long long start, -+ unsigned long long stop, int sysid) { - struct partition *p; -- unsigned int offset; -+ unsigned long long offset; - - if (doext) { - p = ptes[i].ext_pointer; -@@ -1544,7 +1543,7 @@ - else - printf(_("\nDisk %s: %ld.%ld GB, %lld bytes\n"), - disk_device, megabytes/1000, (megabytes/100)%10, bytes); -- printf(_("%d heads, %d sectors/track, %d cylinders"), -+ printf(_("%d heads, %Ld sectors/track, %d cylinders"), - heads, sectors, cylinders); - if (units_per_sector == 1) - printf(_(", total %llu sectors"), -@@ -1776,20 +1775,21 @@ - struct partition *p; - int i; - -- printf(_("\nDisk %s: %d heads, %d sectors, %d cylinders\n\n"), -+ printf(_("\nDisk %s: %d heads, %Ld sectors, %d cylinders\n\n"), - disk_device, heads, sectors, cylinders); - printf(_("Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID\n")); - for (i = 0 ; i < partitions; i++) { - pe = &ptes[i]; - p = (extend ? pe->ext_pointer : pe->part_table); - if (p != NULL) { -- printf("%2d %02x%4d%4d%5d%4d%4d%5d%11u%11u %02x\n", -+ printf("%2d %02x%4d%4d%5d%4d%4d%5d%11lu%11lu %02x\n", - i + 1, p->boot_ind, p->head, - sector(p->sector), - cylinder(p->sector, p->cyl), p->end_head, - sector(p->end_sector), - cylinder(p->end_sector, p->end_cyl), -- get_start_sect(p), get_nr_sects(p), p->sys_ind); -+ (unsigned long) get_start_sect(p), -+ (unsigned long) get_nr_sects(p), p->sys_ind); - if (p->sys_ind) - check_consistency(p, i); - } -@@ -1797,7 +1797,7 @@ - } - - static void --fill_bounds(unsigned int *first, unsigned int *last) { -+fill_bounds(unsigned long long *first, unsigned long long *last) { - int i; - struct pte *pe = &ptes[0]; - struct partition *p; -@@ -1830,7 +1830,7 @@ - n, h + 1, heads); - if (real_s >= sectors) - fprintf(stderr, _("Partition %d: sector %d greater than " -- "maximum %d\n"), n, s, sectors); -+ "maximum %Ld\n"), n, s, sectors); - if (real_c >= cylinders) - fprintf(stderr, _("Partitions %d: cylinder %d greater than " - "maximum %d\n"), n, real_c + 1, cylinders); -@@ -1843,8 +1843,8 @@ - static void - verify(void) { - int i, j; -- unsigned int total = 1; -- unsigned int first[partitions], last[partitions]; -+ unsigned long total = 1; -+ unsigned long long first[partitions], last[partitions]; - struct partition *p; - - if (warn_geometry()) -@@ -1888,7 +1888,7 @@ - - if (extended_offset) { - struct pte *pex = &ptes[ext_index]; -- unsigned int e_last = get_start_sect(pex->part_table) + -+ unsigned long long e_last = get_start_sect(pex->part_table) + - get_nr_sects(pex->part_table) - 1; - - for (i = 4; i < partitions; i++) { -@@ -1907,8 +1907,8 @@ - } - - if (total > total_number_of_sectors) -- printf(_("Total allocated sectors %d greater than the maximum " -- "%lld\n"), total, total_number_of_sectors); -+ printf(_("Total allocated sectors %ld greater than the maximum" -+ " %lld\n"), total, total_number_of_sectors); - else if (total < total_number_of_sectors) - printf(_("%lld unallocated sectors\n"), - total_number_of_sectors - total); -@@ -1921,7 +1921,7 @@ - struct partition *p = ptes[n].part_table; - struct partition *q = ptes[ext_index].part_table; - long long llimit; -- unsigned int start, stop = 0, limit, temp, -+ unsigned long long start, stop = 0, limit, temp, - first[partitions], last[partitions]; - - if (p && p->sys_ind) { -@@ -1967,7 +1967,7 @@ - if (start > limit) - break; - if (start >= temp+units_per_sector && read) { -- printf(_("Sector %d is already allocated\n"), temp); -+ printf(_("Sector %llu is already allocated\n"), temp); - temp = start; - read = 0; - } -@@ -2225,14 +2225,14 @@ - - #define MAX_PER_LINE 16 - static void --print_buffer(char pbuffer[]) { -+print_buffer(unsigned char pbuffer[]) { - int i, - l; - - for (i = 0, l = 0; i < sector_size; i++, l++) { - if (l == 0) - printf("0x%03X:", i); -- printf(" %02X", (unsigned char) pbuffer[i]); -+ printf(" %02X", pbuffer[i]); - if (l == MAX_PER_LINE - 1) { - printf("\n"); - l = -1; diff --git a/util-linux-2.13-hexdump-gcc.patch b/util-linux-2.13-hexdump-gcc.patch deleted file mode 100644 index f088147..0000000 --- a/util-linux-2.13-hexdump-gcc.patch +++ /dev/null @@ -1,17 +0,0 @@ - - gcc 4.1.0: "warning: memset used with constant zero length parameter; this - could be due to transposed parameters". So, fix it! - -- 03/30/2006 Karel Zak - ---- util-linux-2.13-pre7/text-utils/display.c.gcc 2006-03-31 10:44:50.000000000 +0200 -+++ util-linux-2.13-pre7/text-utils/display.c 2006-03-31 10:45:22.000000000 +0200 -@@ -255,7 +255,8 @@ - (void)printf("*\n"); - return(NULL); - } -- memset((char *)curp + nread, 0, need); -+ if (need > 0) -+ memset((char *)curp + nread, 0, need); - eaddress = address + nread; - return(curp); - } diff --git a/util-linux-2.13-hwclock-systohc.patch b/util-linux-2.13-hwclock-systohc.patch deleted file mode 100644 index d0d1eb0..0000000 --- a/util-linux-2.13-hwclock-systohc.patch +++ /dev/null @@ -1,46 +0,0 @@ -commit 99c392d8ba163e35b9d562dd4bcf7dd476ad3573 -Author: Karel Zak -Date: Tue Mar 20 00:32:37 2007 +0100 - - hwclock: fix --systohc sets clock 0.5 seconds slow - - quote from rh150493: - - The kernel code, when setting the BIOS clock notes that the clock time - ticks to the next second 0.5 seconds after adjusting it (see - linux/arch/i386/kernel/time.c). - - hwclock --systohc sets the CMOS clock at the 1 second boundry and thus - causes the clock to be wrong by 500ms each time it is reset. If the - clock is set every shutdown then the clock will have a reboot-count - related drift as well as the natural drift problems of the clock. Note - that this also mucks up the drift calculations, of course. - - Signed-off-by: Karel Zak - -diff --git a/hwclock/hwclock.c b/hwclock/hwclock.c -index 9731dad..820c388 100644 ---- a/hwclock/hwclock.c -+++ b/hwclock/hwclock.c -@@ -517,14 +517,19 @@ set_hardware_clock_exact(const time_t sethwtime, - "Delaying further to reach the next full second.\n"), - time_diff(beginsystime, refsystime)); - -- /* Now delay some more until Hardware Clock time newhwtime arrives */ -+ /* -+ * Now delay some more until Hardware Clock time newhwtime arrives. The -500 -+ * ms is because the Hardware Clock always sets to your set time plus 500 ms -+ * (because it is designed to update to the next second precisely 500 ms -+ * after you finish the setting). -+ */ - do { - float tdiff; - gettimeofday(&nowsystime, NULL); - tdiff = time_diff(nowsystime, beginsystime); - if (tdiff < 0) - goto time_resync; /* probably time was reset */ -- } while (time_diff(nowsystime, refsystime) < newhwtime - sethwtime); -+ } while (time_diff(nowsystime, refsystime) - 0.5 < newhwtime - sethwtime); - - set_hardware_clock(newhwtime, universal, testing); - } diff --git a/util-linux-2.13-ipcs-32bit.patch b/util-linux-2.13-ipcs-32bit.patch deleted file mode 100644 index 99942eb..0000000 --- a/util-linux-2.13-ipcs-32bit.patch +++ /dev/null @@ -1,68 +0,0 @@ - -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; diff --git a/util-linux-2.13-ipcs-shmax.patch b/util-linux-2.13-ipcs-shmax.patch deleted file mode 100644 index d855bf5..0000000 --- a/util-linux-2.13-ipcs-shmax.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- util-linux-2.13-pre4/sys-utils/ipcs.c.shmax 2005-10-18 17:04:42.000000000 +0200 -+++ util-linux-2.13-pre4/sys-utils/ipcs.c 2005-10-18 17:31:28.000000000 +0200 -@@ -280,8 +280,14 @@ - (unsigned long) shminfo.shmmni); - printf (_("max seg size (kbytes) = %lu\n"), - (unsigned long) (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()*((unsigned long) shminfo.shmall))/1024UL); -+ getpagesize()/1024 * (unsigned long) shminfo.shmall); - printf (_("min seg size (bytes) = %lu\n"), - (unsigned long) shminfo.shmmin); - return; diff --git a/util-linux-2.13-localedir.patch b/util-linux-2.13-localedir.patch deleted file mode 100644 index 97be1e7..0000000 --- a/util-linux-2.13-localedir.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- 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@ -- diff --git a/util-linux-2.13-login-hang.patch b/util-linux-2.13-login-hang.patch deleted file mode 100644 index e6031f3..0000000 --- a/util-linux-2.13-login-hang.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- util-linux-2.13-pre2/login-utils/login.c.hang 2005-10-03 16:02:54.000000000 +0200 -+++ util-linux-2.13-pre2/login-utils/login.c 2005-10-03 16:16:16.000000000 +0200 -@@ -223,7 +223,8 @@ - - if (lstat(ttyn, &statbuf) - || !S_ISCHR(statbuf.st_mode) -- || (statbuf.st_nlink > 1 && strncmp(ttyn, "/dev/", 5))) { -+ || (statbuf.st_nlink > 1 && strncmp(ttyn, "/dev/", 5)) -+ || (access(ttyn, R_OK | W_OK) != 0)) { - syslog(LOG_ERR, _("FATAL: bad tty")); - sleep(1); - exit(1); -@@ -332,6 +333,7 @@ - pid = getpid(); - - signal(SIGALRM, timedout); -+ siginterrupt(SIGALRM,1); /* we have to interrupt syscalls like ioclt() */ - alarm((unsigned int)timeout); - signal(SIGQUIT, SIG_IGN); - signal(SIGINT, SIG_IGN); diff --git a/util-linux-2.13-login-ipv6.patch b/util-linux-2.13-login-ipv6.patch deleted file mode 100644 index 5eba0c6..0000000 --- a/util-linux-2.13-login-ipv6.patch +++ /dev/null @@ -1,80 +0,0 @@ ---- util-linux-2.13-pre6/login-utils/login.c.ipv6 2006-10-12 10:10:34.000000000 +0200 -+++ util-linux-2.13-pre6/login-utils/login.c 2006-10-12 10:17:16.000000000 +0200 -@@ -173,7 +173,7 @@ - #ifdef HAVE_SECURITY_PAM_MISC_H - static struct passwd pwdcopy; - #endif --char hostaddress[4]; /* used in checktty.c */ -+char hostaddress[16]; /* used in checktty.c */ - char *hostname; /* idem */ - static char *username, *tty_name, *tty_number; - static char thishost[100]; -@@ -281,7 +281,7 @@ - if (hostname) { - xstrncpy(ut.ut_host, hostname, sizeof(ut.ut_host)); - if (hostaddress[0]) -- memcpy(&ut.ut_addr, hostaddress, sizeof(ut.ut_addr)); -+ memcpy(&ut.ut_addr_v6, hostaddress, sizeof(ut.ut_addr_v6)); - } - #if HAVE_UPDWTMP /* bad luck for ancient systems */ - updwtmp(_PATH_BTMP, &ut); -@@ -380,13 +380,33 @@ - - hostname = strdup(optarg); /* strdup: Ambrose C. Li */ - { -- struct hostent *he = gethostbyname(hostname); -+ struct addrinfo hints, *info = NULL; -+ -+ memset(&hints, '\0', sizeof(hints)); -+ hints.ai_flags = AI_ADDRCONFIG; -+ -+ hostaddress[0] = 0; - -- /* he points to static storage; copy the part we use */ -- hostaddress[0] = 0; -- if (he && he->h_addr_list && he->h_addr_list[0]) -- memcpy(hostaddress, he->h_addr_list[0], -- sizeof(hostaddress)); -+ if (getaddrinfo(hostname, NULL, &hints, &info)==0 && info) -+ { -+ if (info->ai_family == AF_INET) -+ { -+ struct sockaddr_in *sa4; -+ -+ sa4 = (struct sockaddr_in *) info->ai_addr; -+ memcpy(hostaddress, &(sa4->sin_addr), -+ sizeof(sa4->sin_addr)); -+ } -+ if (info->ai_family == AF_INET6) -+ { -+ struct sockaddr_in6 *sa6; -+ -+ sa6 = (struct sockaddr_in6 *) info->ai_addr; -+ memcpy(hostaddress, &(sa6->sin6_addr), -+ sizeof(sa6->sin6_addr)); -+ } -+ freeaddrinfo(info); -+ } - } - break; - -@@ -906,7 +926,7 @@ - if (hostname) { - xstrncpy(ut.ut_host, hostname, sizeof(ut.ut_host)); - if (hostaddress[0]) -- memcpy(&ut.ut_addr, hostaddress, sizeof(ut.ut_addr)); -+ memcpy(&ut.ut_addr_v6, hostaddress, sizeof(ut.ut_addr_v6)); - } - - pututline(&ut); ---- util-linux-2.13-pre6/login-utils/login.h.ipv6 2005-08-02 14:01:18.000000000 +0200 -+++ util-linux-2.13-pre6/login-utils/login.h 2006-10-12 10:10:34.000000000 +0200 -@@ -1,7 +1,7 @@ - /* defined in login.c */ - extern void badlogin(const char *s); - extern void sleepexit(int); --extern char hostaddress[4]; -+extern char hostaddress[16]; - extern char *hostname; - - /* defined in checktty.c */ diff --git a/util-linux-2.13-login-pam-acct.patch b/util-linux-2.13-login-pam-acct.patch deleted file mode 100644 index 24fba08..0000000 --- a/util-linux-2.13-login-pam-acct.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- util-linux-2.13-pre6/login-utils/login.c.acct 2006-02-22 21:43:03.000000000 +0100 -+++ util-linux-2.13-pre6/login-utils/login.c 2006-02-22 21:57:55.000000000 +0100 -@@ -602,16 +602,22 @@ - pam_end(pamh, retcode); - exit(0); - } -+ } - -- retcode = pam_acct_mgmt(pamh, 0); -- -- if(retcode == PAM_NEW_AUTHTOK_REQD) { -- retcode = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK); -- } -+ /* -+ * Authentication may be skipped (for example, during krlogin, rlogin, etc...), -+ * but it doesn't mean that we can skip other account checks. The account -+ * could be disabled or password expired (althought kerberos ticket is valid). -+ * -- kzak@redhat.com (22-Feb-2006) -+ */ -+ retcode = pam_acct_mgmt(pamh, 0); - -- PAM_FAIL_CHECK; -+ if(retcode == PAM_NEW_AUTHTOK_REQD) { -+ retcode = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK); - } - -+ PAM_FAIL_CHECK; -+ - /* - * Grab the user information out of the password file for future usage - * First get the username that we are actually using, though. diff --git a/util-linux-2.13-login-timeval.patch b/util-linux-2.13-login-timeval.patch deleted file mode 100644 index 2f8e46a..0000000 --- a/util-linux-2.13-login-timeval.patch +++ /dev/null @@ -1,49 +0,0 @@ - -On 64-bit platforms such as x86_64, glibc is usally built with 32-bit -compatibilty for various structures. One of them is utmp. - -What this means is that gettimeofday(&ut.ut_tv, NULL) on x86_64 will -end up overwriting the first parts of ut_addr_v6, leading to garbage -in the utmp file. - - ---- util-linux-2.13-pre6/login-utils/login.c.kzak 2006-08-10 11:38:33.000000000 +0200 -+++ util-linux-2.13-pre6/login-utils/login.c 2006-08-10 11:38:49.000000000 +0200 -@@ -257,6 +257,7 @@ - static void - logbtmp(const char *line, const char *username, const char *hostname) { - struct utmp ut; -+ struct timeval tv; - - memset(&ut, 0, sizeof(ut)); - -@@ -267,7 +268,9 @@ - xstrncpy(ut.ut_line, line, sizeof(ut.ut_line)); - - #if defined(_HAVE_UT_TV) /* in included by */ -- gettimeofday(&ut.ut_tv, NULL); -+ gettimeofday(&tv, NULL); -+ ut.ut_tv.tv_sec = tv.tv_sec; -+ ut.ut_tv.tv_usec = tv.tv_usec; - #else - { - time_t t; -@@ -872,6 +875,7 @@ - { - struct utmp ut; - struct utmp *utp; -+ struct timeval tv; - - utmpname(_PATH_UTMP); - setutent(); -@@ -911,7 +915,9 @@ - strncpy(ut.ut_user, username, sizeof(ut.ut_user)); - xstrncpy(ut.ut_line, tty_name, sizeof(ut.ut_line)); - #ifdef _HAVE_UT_TV /* in included by */ -- gettimeofday(&ut.ut_tv, NULL); -+ gettimeofday(&tv, NULL); -+ ut.ut_tv.tv_sec = tv.tv_sec; -+ ut.ut_tv.tv_usec = tv.tv_usec; - #else - { - time_t t; diff --git a/util-linux-2.13-losetup-all.patch b/util-linux-2.13-losetup-all.patch deleted file mode 100644 index bd12f2e..0000000 --- a/util-linux-2.13-losetup-all.patch +++ /dev/null @@ -1,160 +0,0 @@ ---- util-linux-2.13-pre6/mount/losetup.8.all 2006-10-12 10:34:47.000000000 +0200 -+++ util-linux-2.13-pre6/mount/losetup.8 2006-10-12 10:37:35.000000000 +0200 -@@ -9,6 +9,8 @@ - .B losetup - .I loop_device - .sp -+.B losetup -a -+.sp - .in -5 - Delete loop: - .sp -@@ -66,6 +68,8 @@ - .B \-e - option.) - .SH OPTIONS -+.IP \fB\-a\fP -+Show status of all loop devices. - .IP \fB\-d\fP - Detach the file or device associated with the specified loop device. - .IP "\fB\-E \fIencryption_type\fP" ---- util-linux-2.13-pre6/mount/lomount.c.all 2004-12-20 23:11:04.000000000 +0100 -+++ util-linux-2.13-pre6/mount/lomount.c 2006-10-12 10:29:55.000000000 +0200 -@@ -28,6 +28,8 @@ - extern char *xstrdup (const char *s); /* not: #include "sundries.h" */ - extern void error (const char *fmt, ...); /* idem */ - -+#define SIZE(a) (sizeof(a)/sizeof(a[0])) -+ - #ifdef LOOP_SET_FD - - static int -@@ -128,6 +130,42 @@ - close (fd); - return 1; - } -+ -+static int -+show_used_loop_devices (void) { -+ char dev[20]; -+ char *loop_formats[] = { "/dev/loop%d", "/dev/loop/%d" }; -+ int i, j, fd, permission = 0, somedev = 0; -+ struct stat statbuf; -+ struct loop_info loopinfo; -+ -+ for (j = 0; j < SIZE(loop_formats); j++) { -+ for(i = 0; i < 256; i++) { -+ sprintf(dev, loop_formats[j], i); -+ if (stat (dev, &statbuf) == 0 && S_ISBLK(statbuf.st_mode)) { -+ somedev++; -+ fd = open (dev, O_RDONLY); -+ if (fd >= 0) { -+ if(ioctl (fd, LOOP_GET_STATUS, &loopinfo) == 0) -+ show_loop(dev); -+ close (fd); -+ somedev++; -+ } else if (errno == EACCES) -+ permission++; -+ continue; /* continue trying as long as devices exist */ -+ } -+ break; -+ } -+ } -+ -+ if (somedev==0 && permission) { -+ error(_("%s: no permission to look at /dev/loop#"), progname); -+ return 1; -+ } -+ return 0; -+} -+ -+ - #endif - - int -@@ -139,8 +177,6 @@ - major(statbuf.st_rdev) == LOOPMAJOR); - } - --#define SIZE(a) (sizeof(a)/sizeof(a[0])) -- - char * - find_unused_loop_device (void) { - /* Just creating a device, say in /tmp, is probably a bad idea - -@@ -403,12 +439,13 @@ - - static void - usage(void) { -- fprintf(stderr, _("usage:\n\ -- %s loop_device # give info\n\ -- %s -d loop_device # delete\n\ -- %s -f # find unused\n\ -- %s [-e encryption] [-o offset] {-f|loop_device} file # setup\n"), -- progname, progname, progname, progname); -+ fprintf(stderr, _("usage:\n" -+ " %1$s loop_device # give info\n" -+ " %1$s -d loop_device # delete\n" -+ " %1$s -f # find unused\n" -+ " %1$s -a # list all used\n" -+ " %1$s [-e encryption] [-o offset] {-f|loop_device} file # setup\n"), -+ progname); - exit(1); - } - -@@ -442,7 +479,7 @@ - int - main(int argc, char **argv) { - char *p, *offset, *encryption, *passfd, *device, *file; -- int delete, find, c; -+ int delete, find, c, all; - int res = 0; - int ro = 0; - int pfd = -1; -@@ -452,7 +489,7 @@ - bindtextdomain(PACKAGE, LOCALEDIR); - textdomain(PACKAGE); - -- delete = find = 0; -+ delete = find = all = 0; - off = 0; - offset = encryption = passfd = NULL; - -@@ -460,8 +497,11 @@ - if ((p = strrchr(progname, '/')) != NULL) - progname = p+1; - -- while ((c = getopt(argc, argv, "de:E:fo:p:v")) != -1) { -+ while ((c = getopt(argc, argv, "ade:E:fo:p:v")) != -1) { - switch (c) { -+ case 'a': -+ all = 1; -+ break; - case 'd': - delete = 1; - break; -@@ -489,17 +529,22 @@ - if (argc == 1) { - usage(); - } else if (delete) { -- if (argc != optind+1 || encryption || offset || find) -+ if (argc != optind+1 || encryption || offset || find || all) - usage(); - } else if (find) { -- if (argc < optind || argc > optind+1) -+ if (all || argc < optind || argc > optind+1) -+ usage(); -+ } else if (all) { -+ if (argc > 2) - usage(); - } else { - if (argc < optind+1 || argc > optind+2) - usage(); - } - -- if (find) { -+ if (all) -+ return show_used_loop_devices(); -+ else if (find) { - device = find_unused_loop_device(); - if (device == NULL) - return -1; diff --git a/util-linux-2.13-losetup-deprecated.patch b/util-linux-2.13-losetup-deprecated.patch deleted file mode 100644 index 73e45c0..0000000 --- a/util-linux-2.13-losetup-deprecated.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- util-linux-2.13-pre6/mount/losetup.8.kzak 2006-10-12 10:39:39.000000000 +0200 -+++ util-linux-2.13-pre6/mount/losetup.8 2006-10-12 10:40:04.000000000 +0200 -@@ -133,6 +133,10 @@ - .fi - .SH RESTRICTION - DES encryption is painfully slow. On the other hand, XOR is terribly weak. -+ -+Cryptoloop is deprecated and unmaintained in 2.6 kernels. Use dm-crypt. For -+more details see -+.B cryptsetup(8). - .\" .SH AUTHORS - .\" .nf - .\" Original version: Theodore Ts'o diff --git a/util-linux-2.13-losetup-rdonly.patch b/util-linux-2.13-losetup-rdonly.patch deleted file mode 100644 index 19e9f13..0000000 --- a/util-linux-2.13-losetup-rdonly.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- util-linux-2.13-pre6/mount/lomount.c.ronly 2006-11-01 14:14:14.000000000 +0100 -+++ util-linux-2.13-pre6/mount/lomount.c 2006-11-01 15:01:52.000000000 +0100 -@@ -444,7 +444,8 @@ - " %1$s -d loop_device # delete\n" - " %1$s -f # find unused\n" - " %1$s -a # list all used\n" -- " %1$s [-e encryption] [-o offset] {-f|loop_device} file # setup\n"), -+ " %1$s -r # read-only loop\n" -+ " %1$s [-e encryption] [-o offset] [-r] {-f|loop_device} file # setup\n"), - progname); - exit(1); - } -@@ -497,11 +498,14 @@ - if ((p = strrchr(progname, '/')) != NULL) - progname = p+1; - -- while ((c = getopt(argc, argv, "ade:E:fo:p:v")) != -1) { -+ while ((c = getopt(argc, argv, "ade:E:fo:p:vr")) != -1) { - switch (c) { - case 'a': - all = 1; - break; -+ case 'r': -+ ro = 1; -+ break; - case 'd': - delete = 1; - break; ---- util-linux-2.13-pre6/mount/losetup.8.ronly 2006-11-01 14:49:14.000000000 +0100 -+++ util-linux-2.13-pre6/mount/losetup.8 2006-11-01 15:06:21.000000000 +0100 -@@ -35,6 +35,7 @@ - .IR offset ] - .RB [ \-p - .IR pfd ] -+.RB [ \-r ] - .in +8 - .RB { \-f | \fIloop_device\fP } - .I file -@@ -87,6 +88,8 @@ - Read the passphrase from file descriptor with number - .I num - instead of from the terminal. -+.IP \fB\-r\fP -+Setup read-only loop device. - .SH RETURN VALUE - .B losetup - returns 0 on success, nonzero on failure. When diff --git a/util-linux-2.13-mkdir_p.patch b/util-linux-2.13-mkdir_p.patch deleted file mode 100644 index eb8ed15..0000000 --- a/util-linux-2.13-mkdir_p.patch +++ /dev/null @@ -1,97 +0,0 @@ ---- util-linux-2.13-pre7/po/Makefile.in.in.mkdir_p 2005-10-14 22:22:14.000000000 +0200 -+++ util-linux-2.13-pre7/po/Makefile.in.in 2006-12-17 00:06:29.000000000 +0100 -@@ -1,5 +1,5 @@ - # Makefile for PO directory in any package using GNU gettext. --# Copyright (C) 1995-1997, 2000-2005 by Ulrich Drepper -+# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper - # - # This file can be copied and used freely without restrictions. It can - # be used in projects which are not available under the GNU General Public -@@ -8,7 +8,7 @@ - # Please note that the actual code of GNU gettext is covered by the GNU - # General Public License and is *not* in the public domain. - # --# Origin: gettext-0.14.4 -+# Origin: gettext-0.16 - - PACKAGE = @PACKAGE@ - VERSION = @VERSION@ -@@ -29,8 +29,18 @@ - - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ --MKINSTALLDIRS = @MKINSTALLDIRS@ --mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) -+ -+# We use $(mkdir_p). -+# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as -+# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, -+# @install_sh@ does not start with $(SHELL), so we add it. -+# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined -+# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake -+# versions, $(mkinstalldirs) and $(install_sh) are unused. -+mkinstalldirs = $(SHELL) @install_sh@ -d -+install_sh = $(SHELL) @install_sh@ -+MKDIR_P = @MKDIR_P@ -+mkdir_p = @mkdir_p@ - - GMSGFMT = @GMSGFMT@ - MSGFMT = @MSGFMT@ -@@ -158,7 +168,7 @@ - install-exec: - install-data: install-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ -- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ -+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - for file in $(DISTFILES.common) Makevars.template; do \ - $(INSTALL_DATA) $(srcdir)/$$file \ - $(DESTDIR)$(gettextsrcdir)/$$file; \ -@@ -171,13 +181,13 @@ - fi - install-data-no: all - install-data-yes: all -- $(mkinstalldirs) $(DESTDIR)$(datadir) -+ $(mkdir_p) $(DESTDIR)$(datadir) - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ -- $(mkinstalldirs) $(DESTDIR)$$dir; \ -+ $(mkdir_p) $(DESTDIR)$$dir; \ - if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ - $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ - echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ -@@ -217,19 +227,19 @@ - installdirs-exec: - installdirs-data: installdirs-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ -- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ -+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - else \ - : ; \ - fi - installdirs-data-no: - installdirs-data-yes: -- $(mkinstalldirs) $(DESTDIR)$(datadir) -+ $(mkdir_p) $(DESTDIR)$(datadir) - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ -- $(mkinstalldirs) $(DESTDIR)$$dir; \ -+ $(mkdir_p) $(DESTDIR)$$dir; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ -@@ -374,8 +384,7 @@ - - Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ - cd $(top_builddir) \ -- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ -- $(SHELL) ./config.status -+ && $(SHELL) ./config.status $(subdir)/$@.in po-directories - - force: - diff --git a/util-linux-2.13-mkswap-mounted.patch b/util-linux-2.13-mkswap-mounted.patch deleted file mode 100644 index cc78b7d..0000000 --- a/util-linux-2.13-mkswap-mounted.patch +++ /dev/null @@ -1,62 +0,0 @@ ---- util-linux-2.13-pre6/disk-utils/mkswap.c.kzak 2006-10-12 11:33:50.000000000 +0200 -+++ util-linux-2.13-pre6/disk-utils/mkswap.c 2006-10-12 11:36:08.000000000 +0200 -@@ -36,6 +36,7 @@ - #include - #include - #include -+#include - #include /* for _IO */ - #include - #include -@@ -485,6 +486,29 @@ - return (c >= '1' && c <= '9'); - } - -+ -+/* -+ * Check to make certain that our new filesystem won't be created on -+ * an already mounted partition. Code adapted from mke2fs, Copyright -+ * (C) 1994 Theodore Ts'o. Also licensed under GPL. -+ * (C) 2006 Karel Zak -- port to mkswap -+ */ -+static int -+check_mount(void) { -+ FILE * f; -+ struct mntent * mnt; -+ -+ if ((f = setmntent (MOUNTED, "r")) == NULL) -+ return 0; -+ while ((mnt = getmntent (f)) != NULL) -+ if (strcmp (device_name, mnt->mnt_fsname) == 0) -+ break; -+ endmntent (f); -+ if (!mnt) -+ return 0; -+ return 1; -+} -+ - int - main(int argc, char ** argv) { - struct stat statbuf; -@@ -648,8 +672,19 @@ - /* Want a block device. Probably not /dev/hda or /dev/hdb. */ - if (!S_ISBLK(statbuf.st_mode)) - check=0; -- else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0340) -- die(_("Will not try to make swapdevice on '%s'")); -+ else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0340) { -+ fprintf(stderr, -+ _("%s: error: " -+ "will not try to make swapdevice on '%s'\n"), -+ program_name, device_name); -+ exit(1); -+ } else if (check_mount()) { -+ fprintf(stderr, -+ _("%s: error: " -+ "%s is mounted; will not make swapspace.\n"), -+ program_name, device_name); -+ exit(1); -+ } - - #ifdef __sparc__ - if (!force && version == 0) { diff --git a/util-linux-2.13-mkswap-selinux.patch b/util-linux-2.13-mkswap-selinux.patch deleted file mode 100644 index 2d89115..0000000 --- a/util-linux-2.13-mkswap-selinux.patch +++ /dev/null @@ -1,81 +0,0 @@ ---- util-linux-2.13-pre6/disk-utils/mkswap.c.selinux 2005-08-14 17:34:49.000000000 +0200 -+++ util-linux-2.13-pre6/disk-utils/mkswap.c 2006-03-08 16:35:08.000000000 +0100 -@@ -39,6 +39,12 @@ - #include /* for _IO */ - #include - #include -+#include -+#ifdef HAVE_LIBSELINUX -+#include -+#include -+#endif -+ - #include "swapheader.h" - #include "xstrncpy.h" - #include "nls.h" -@@ -76,6 +82,8 @@ - - #define MAKE_VERSION(p,q,r) (65536*(p) + 256*(q) + (r)) - -+#define SELINUX_SWAPFILE_TYPE "swapfile_t" -+ - static int - linux_version_code(void) { - struct utsname my_utsname; -@@ -718,5 +726,39 @@ - if (fsync(DEV)) - die(_("fsync failed")); - #endif -+ -+#ifdef HAVE_LIBSELINUX -+ if (S_ISREG(statbuf.st_mode) && is_selinux_enabled()) { -+ security_context_t context_string; -+ security_context_t oldcontext; -+ context_t newcontext; -+ -+ if ((fgetfilecon(DEV, &oldcontext) < 0) && -+ (errno != ENODATA)) { -+ fprintf(stderr, _("%s: %s: unable to obtain selinux file label: %s\n"), -+ program_name, device_name, -+ strerror(errno)); -+ exit(1); -+ } -+ if (!(newcontext = context_new(oldcontext))) -+ die(_("unable to create new selinux context")); -+ if (context_type_set(newcontext, SELINUX_SWAPFILE_TYPE)) -+ die(_("couldn't compute selinux context")); -+ -+ context_string = context_str(newcontext); -+ -+ if (strcmp(context_string, oldcontext)!=0) { -+ if (fsetfilecon(DEV, context_string)) { -+ fprintf(stderr, _("%s: unable to relabel %s to %s: %s\n"), -+ program_name, device_name, -+ context_string, -+ strerror(errno)); -+ exit(1); -+ } -+ } -+ context_free(newcontext); -+ freecon(oldcontext); -+ } -+#endif - return 0; - } ---- util-linux-2.13-pre6/disk-utils/Makefile.am.selinux 2005-09-10 19:46:10.000000000 +0200 -+++ util-linux-2.13-pre6/disk-utils/Makefile.am 2006-03-08 16:27:03.000000000 +0100 -@@ -30,6 +30,13 @@ - mkfs_cramfs_LDADD = -lz $(top_srcdir)/lib/libmd5.a - endif - -+mkswap_LDADD = -+ - if HAVE_UUID --mkswap_LDADD = -luuid -+mkswap_LDADD += -luuid -+endif -+ -+if HAVE_SELINUX -+mkswap_LDADD += -lselinux - endif -+ diff --git a/util-linux-2.13-more-CLOEXEC.patch b/util-linux-2.13-more-CLOEXEC.patch deleted file mode 100644 index fe69e7a..0000000 --- a/util-linux-2.13-more-CLOEXEC.patch +++ /dev/null @@ -1,19 +0,0 @@ - -When you view a file with the more command and run a shell, the file descriptor -for reading the file is leaked to that process. - -To test, more any file. Then do !/bin/sh. At the prompt do "ls -l /proc/$$/fd" -and you'll see the leaked fd. - -From: Steve Grubb - ---- util-linux-2.13-pre7/text-utils/more.c.cloexec 2006-12-14 14:05:31.000000000 +0100 -+++ util-linux-2.13-pre7/text-utils/more.c 2006-12-14 14:04:57.000000000 +0100 -@@ -478,6 +478,7 @@ - } - if (magic(f, fs)) - return((FILE *)NULL); -+ fcntl(fileno(f), F_SETFD, FD_CLOEXEC ); - c = Getc(f); - *clearfirst = (c == '\f'); - Ungetc (c, f); diff --git a/util-linux-2.13-moretc.patch b/util-linux-2.13-moretc.patch deleted file mode 100644 index d30b625..0000000 --- a/util-linux-2.13-moretc.patch +++ /dev/null @@ -1,106 +0,0 @@ ---- util-linux-2.13-pre2/text-utils/Makefile.am.moretc 2005-08-17 10:40:44.000000000 +0200 -+++ util-linux-2.13-pre2/text-utils/Makefile.am 2005-08-17 10:41:52.000000000 +0200 -@@ -7,16 +7,13 @@ - man_MANS = col.1 colcrt.1 colrm.1 column.1 hexdump.1 rev.1 line.1 tailf.1 - - if HAVE_NCURSES --bin_PROGRAMS = more - usrbinexec_PROGRAMS += ul pg --more_LDADD = -lncurses - pg_LDADD = -lncurses - ul_LDADD = -lncurses --man_MANS += ul.1 more.1 pg.1 --else -+man_MANS += ul.1 pg.1 -+endif - if HAVE_TERMCAP - bin_PROGRAMS = more - more_LDADD = -ltermcap - man_MANS += more.1 - endif --endif ---- util-linux-2.13-pre2/text-utils/more.c.moretc 2005-07-28 23:49:31.000000000 +0200 -+++ util-linux-2.13-pre2/text-utils/more.c 2005-08-17 10:40:23.000000000 +0200 -@@ -59,6 +59,8 @@ - #include "nls.h" - #include "widechar.h" - -+#include "../config.h" -+ - #define _REGEX_RE_COMP - #include - #undef _REGEX_RE_COMP -@@ -165,19 +167,60 @@ - } context, screen_start; - extern char PC; /* pad character */ - -+#ifdef HAVE_LIBTERMCAP -+ -+#include -+ -+char termbuffer[4096]; -+char tcbuffer[4096]; -+char *strbuf = termbuffer; -+ -+static void -+my_putstring(char *s) { -+ tputs (s, 1, putchar); -+} -+ -+static void -+my_setupterm(const char *term, int fildes, int *errret) { -+ *errret = tgetent(tcbuffer, term); -+} -+ -+static int -+my_tgetnum(char *s, char *ss) { -+ return tgetnum(s); -+} -+ -+static int -+my_tgetflag(char *s, char *ss) { -+ return tgetflag(s); -+} -+ -+static char * -+my_tgetstr(char *s, char *ss) { -+ return tgetstr(s, &strbuf); -+} -+ -+static char * -+my_tgoto(const char *cap, int col, int row) { -+ return tgoto(cap, col, row); -+} -+ -+#else /* !HAVE_TERMCAP */ -+ - #ifdef HAVE_NCURSES_H --#include -+# include -+# include - #elif defined(HAVE_NCURSES_NCURSES_H) --#include -+# include -+# include - #endif - --#include /* include after */ -- - static void - my_putstring(char *s) { - tputs (s, 1, putchar); /* putp(s); */ - } - -+ - static void - my_setupterm(const char *term, int fildes, int *errret) { - setupterm(term, fildes, errret); -@@ -203,6 +246,8 @@ - return tparm(cap, col, row); - } - -+#endif /* !HAVE_TERMCAP */ -+ - static void - idummy(int *kk) {} - diff --git a/util-linux-2.13-mount-comment.patch b/util-linux-2.13-mount-comment.patch deleted file mode 100644 index 04ef9ad..0000000 --- a/util-linux-2.13-mount-comment.patch +++ /dev/null @@ -1,14 +0,0 @@ - - The original MS_COMMENT is in conflict with MS_UNBINDABLE. - ---- util-linux-2.13-pre6/mount/mount.c.comment 2006-11-01 13:31:45.000000000 +0100 -+++ util-linux-2.13-pre6/mount/mount.c 2006-11-01 13:31:38.000000000 +0100 -@@ -106,7 +106,7 @@ - #define MS_OWNER 0x10000000 - #define MS_GROUP 0x08000000 - #define MS_PAMCONSOLE 0x04000000 --#define MS_COMMENT 0x00020000 -+#define MS_COMMENT 0x02000000 - #define MS_LOOP 0x00010000 - - diff --git a/util-linux-2.13-mount-context.patch b/util-linux-2.13-mount-context.patch deleted file mode 100644 index 09f9d79..0000000 --- a/util-linux-2.13-mount-context.patch +++ /dev/null @@ -1,218 +0,0 @@ ---- util-linux-2.13-pre6/mount/Makefile.am.context 2005-09-12 22:41:11.000000000 +0200 -+++ util-linux-2.13-pre6/mount/Makefile.am 2006-11-01 11:31:46.000000000 +0100 -@@ -37,6 +37,9 @@ - man_MANS += pivot_root.8 - endif - -+if HAVE_SELINUX -+mount_LDADD += -lselinux -+endif - - swapon.c: swapargs.h - ---- util-linux-2.13-pre6/mount/mount.c.context 2006-11-01 11:31:46.000000000 +0100 -+++ util-linux-2.13-pre6/mount/mount.c 2006-11-01 11:36:17.000000000 +0100 -@@ -21,6 +21,11 @@ - #include - #include - -+#ifdef HAVE_LIBSELINUX -+#include -+#include -+#endif -+ - #include "mount_blkid.h" - #include "mount_constants.h" - #include "sundries.h" -@@ -255,13 +260,79 @@ - free((void *) s); - } - -+#ifdef HAVE_LIBSELINUX -+/* strip quotes from a "string" -+ * Warning: This function modify the "str" argument. -+ */ -+static char * -+strip_quotes(char *str) -+{ -+ char *end = NULL; -+ -+ if (*str != '"') -+ return str; -+ -+ end = strrchr(str, '"'); -+ if (end == NULL || end == str) -+ die (EX_USAGE, _("mount: improperly quoted option string '%s'"), str); -+ -+ *end = '\0'; -+ return str+1; -+} -+ -+/* translates SELinux context from human to raw format and -+ * appends it to the mount extra options. -+ * -+ * returns -1 on error and 0 on success -+ */ -+static int -+append_context(const char *optname, char *optdata, char *extra_opts, int *len) -+{ -+ security_context_t raw = NULL; -+ char *data = NULL; -+ char *buf = NULL; -+ int bufsz; -+ -+ if (!is_selinux_enabled()) -+ /* ignore the option if we running without selinux */ -+ return 0; -+ -+ if (optdata==NULL || *optdata=='\0' || optname==NULL) -+ return -1; -+ -+ /* TODO: use strip_quotes() for all mount options? */ -+ data = *optdata =='"' ? strip_quotes(optdata) : optdata; -+ -+ if (selinux_trans_to_raw_context( -+ (security_context_t) data, &raw)==-1 || -+ raw==NULL) -+ return -1; -+ -+ if (verbose) -+ printf(_("mount: translated %s '%s' to '%s'\n"), -+ optname, data, (char *) raw); -+ -+ bufsz = strlen(optname) + strlen(raw) + 4; /* 4 is \0, '=' and 2x '"' */ -+ buf = xmalloc(bufsz); -+ -+ snprintf(buf, bufsz, "%s=\"%s\"", optname, (char *) raw); -+ freecon(raw); -+ -+ if ((*len -= bufsz-1) > 0) -+ strcat(extra_opts, buf); -+ -+ my_free(buf); -+ return 0; -+} -+#endif -+ - /* - * Look for OPT in opt_map table and return mask value. - * If OPT isn't found, tack it onto extra_opts (which is non-NULL). - * For the options uid= and gid= replace user or group name by its value. - */ - static inline void --parse_opt(const char *opt, int *mask, char *extra_opts, int len) { -+parse_opt(char *opt, int *mask, char *extra_opts, int len) { - const struct opt_map *om; - - for (om = opt_map; om->opt != NULL; om++) -@@ -313,7 +384,20 @@ - return; - } - } -- -+#ifdef HAVE_LIBSELINUX -+ if (strncmp(opt, "context=", 8)==0 && *(opt+8)) { -+ if (append_context("context", opt+8, extra_opts, &len)==0) -+ return; -+ } -+ if (strncmp(opt, "fscontext=", 10)==0 && *(opt+10)) { -+ if (append_context("fscontext", opt+10, extra_opts, &len)==0) -+ return; -+ } -+ if (strncmp(opt, "defcontext=", 11)==0 && *(opt+11)) { -+ if (append_context("defcontext", opt+11, extra_opts, &len)==0) -+ return; -+ } -+#endif - if ((len -= strlen(opt)) > 0) - strcat(extra_opts, opt); - } -@@ -329,16 +413,29 @@ - - if (options != NULL) { - char *opts = xstrdup(options); -- char *opt; -- int len = strlen(opts) + 20; -+ int len = strlen(opts) + 256; -+ int open_quote = 0; -+ char *opt, *p; - - *extra_opts = xmalloc(len); - **extra_opts = '\0'; - -- for (opt = strtok(opts, ","); opt; opt = strtok(NULL, ",")) -- if (!parse_string_opt(opt)) -- parse_opt(opt, flags, *extra_opts, len); -- -+ for (p=opts, opt=NULL; p && *p; p++) { -+ if (!opt) -+ opt = p; /* begin of the option item */ -+ if (*p == '"') -+ open_quote ^= 1; /* reverse the status */ -+ if (open_quote) -+ continue; /* still in quoted block */ -+ if (*p == ',') -+ *p = '\0'; /* terminate the option item */ -+ /* end of option item or last item */ -+ if (*p == '\0' || *(p+1) == '\0') { -+ if (!parse_string_opt(opt)) -+ parse_opt(opt, flags, *extra_opts, len); -+ opt = NULL; -+ } -+ } - free(opts); - } - ---- util-linux-2.13-pre6/mount/mount.8.context 2006-11-01 11:31:46.000000000 +0100 -+++ util-linux-2.13-pre6/mount/mount.8 2006-11-01 11:31:46.000000000 +0100 -@@ -660,6 +660,50 @@ - .BR noexec ", " nosuid ", and " nodev - (unless overridden by subsequent options, as in the option line - .BR users,exec,dev,suid ). -+.TP -+\fBcontext=\fP\fIcontext\fP, \fBfscontext=\fP\fIcontext\fP and \fBdefcontext=\fP\fIcontext\fP -+The -+.BR context= -+option is useful when mounting filesystems that do not support -+extended attributes, such as a floppy or hard disk formatted with VFAT, or -+systems that are not normally running under SELinux, such as an ext3 formatted -+disk from a non-SELinux workstation. You can also use -+.BR context= -+on filesystems you do not trust, such as a floppy. It also helps in compatibility with -+xattr-supporting filesystems on earlier 2.4. kernel versions. Even where -+xattrs are supported, you can save time not having to label every file by -+assigning the entire disk one security context. -+ -+A commonly used option for removable media is -+.BR context=system_u:object_r:removable_t . -+ -+Two other options are -+.BR fscontext= -+and -+.BR defcontext= , -+both of which are mutually exclusive of the context option. This means you -+can use fscontext and defcontext with each other, but neither can be used with -+context. -+ -+The -+.BR fscontext= -+option works for all filesystems, regardless of their xattr -+support. The fscontext option sets the overarching filesystem label to a -+specific security context. This filesystem label is separate from the -+individual labels on the files. It represents the entire filesystem for -+certain kinds of permission checks, such as during mount or file creation. -+Individual file labels are still obtained from the xattrs on the files -+themselves. The context option actually sets the aggregate context that -+fscontext provides, in addition to supplying the same label for individual -+files. -+ -+You can set the default security context for unlabeled files using -+.BR defcontext= -+option. This overrides the value set for unlabeled files in the policy and requires a -+file system that supports xattr labeling. -+ -+For more details see -+.BR selinux (8) - .RE - .TP - .B \-\-bind diff --git a/util-linux-2.13-mount-fake.patch b/util-linux-2.13-mount-fake.patch deleted file mode 100644 index 627b1e2..0000000 --- a/util-linux-2.13-mount-fake.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- util-linux-2.13-pre7/mount/mount.c.kzak 2007-02-09 12:54:20.000000000 +0100 -+++ util-linux-2.13-pre7/mount/mount.c 2007-02-09 12:54:14.000000000 +0100 -@@ -602,6 +602,8 @@ - mountargs[i++] = node; - if (sloppy && (strcmp(type, "nfs")==0 || strcmp(type, "nfs4")==0)) - mountargs[i++] = "-s"; -+ if (fake) -+ mountargs[i++] = "-f"; - if (nomtab) - mountargs[i++] = "-n"; - if (verbose) diff --git a/util-linux-2.13-mount-loop.patch b/util-linux-2.13-mount-loop.patch deleted file mode 100644 index 27db35c..0000000 --- a/util-linux-2.13-mount-loop.patch +++ /dev/null @@ -1,34 +0,0 @@ -commit 2e039577c5eb895fab35aed136345a0c07d7a587 -Author: Karel Zak -Date: Mon Jul 2 23:35:08 2007 +0200 - - mount: use loop= option when mounting by /sbin/mount. - - The mount(8) calls external mount programs (/sbin/mount.) - without the loop=/dev/loopN option. This patch fix this bug. - - Signed-off-by: Karel Zak - -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, diff --git a/util-linux-2.13-mount-man-bugs.patch b/util-linux-2.13-mount-man-bugs.patch deleted file mode 100644 index 59f8c8f..0000000 --- a/util-linux-2.13-mount-man-bugs.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- util-linux-2.13-pre7/mount/mount.8.bugs 2006-03-30 21:36:56.000000000 +0200 -+++ util-linux-2.13-pre7/mount/mount.8 2006-03-30 21:37:35.000000000 +0200 -@@ -2047,6 +2047,23 @@ - .IR /proc/partitions . - In particular, it may well fail if the kernel was compiled with devfs - but devfs is not mounted. -+.PP -+It is possible that files -+.IR /etc/mtab -+and -+.IR /proc/mounts -+don't match. The first file is based only on the mount command options, but the -+content of the second file also depends on the kernel and others settings (e.g. -+remote NFS server. In particular case the mount command may reports unreliable -+information about a NFS mount point and the /proc/mounts file usually contains -+more reliable information.) -+.PP -+Checking files on NFS filesystem referenced by file descriptors (i.e. the -+.BR fcntl -+and -+.BR ioctl -+families of functions) may lead to inconsistent result due to the lack of -+consistency check in kernel even if noac is used. - .SH HISTORY - A - .B mount diff --git a/util-linux-2.13-mount-man-nfs.patch b/util-linux-2.13-mount-man-nfs.patch deleted file mode 100644 index 4c24f6c..0000000 --- a/util-linux-2.13-mount-man-nfs.patch +++ /dev/null @@ -1,84 +0,0 @@ ---- util-linux-2.12p/mount/mount.8.nfsdoc 2005-05-10 11:46:25.119592000 -0400 -+++ util-linux-2.12p/mount/mount.8 2005-10-07 09:46:13.374277000 -0400 -@@ -1339,29 +1339,17 @@ For details, see - - Especially useful options include - .TP --.B rsize=8192,wsize=8192 --This will make your nfs connection faster than with the default --buffer size of 4096. (NFSv2 does not work with larger values of --.B rsize --and --.BR wsize .) --.TP --.B hard --The program accessing a file on a NFS mounted file system will hang --when the server crashes. The process cannot be interrupted or --killed unless you also specify --.BR intr . --When the NFS server is back online the program will continue undisturbed --from where it was. This is probably what you want. --.TP --.B soft --This option allows the kernel to time out if the nfs server is not --responding for some time. The time can be --specified with --.BR timeo=time . --This option might be useful if your nfs server sometimes doesn't respond --or will be rebooted while some process tries to get a file from the server. --Usually it just causes lots of trouble. -+.B rsize=32768,wsize=32768 -+This causes the NFS client to try to negotiate a buffer size -+up to the size specified. -+A large buffer size does improve performance, but both the -+server and client have to support it. -+In the case where one of these does not support the size specified, -+the size negotiated will be the largest that both support. -+.TP -+.B intr -+This will allow NFS operations (on hard mounts) to be -+interrupted while waiting for a response from the server. - .TP - .B nolock - Do not use locking. Do not start lockd. -@@ -1408,30 +1396,16 @@ For details, see - Especially useful options include - .TP - .B rsize=32768,wsize=32768 --This will make your NFS connection faster than with the default --buffer size of 4096. --.TP --.B hard --The program accessing a file on a NFS mounted file system will hang --when the server crashes. The process cannot be interrupted or --killed unless you also specify --.BR intr . --When the NFS server is back online the program will continue undisturbed --from where it was. This is probably what you want. --.TP --.B soft --This option allows the kernel to time out if the NFS server is not --responding for some time. The time can be --specified with --.BR timeo=time . --This timeout value is expressed in tenths of a second. --The --.BR soft --option might be useful if your NFS server sometimes doesn't respond --or will be rebooted while some process tries to get a file from the server. --Avoid using this option with --.BR proto=udp --or with a short timeout. -+This causes the NFS4 client to try to negotiate a buffer size -+up to the size specified. -+A large buffer size does improve performance, but both the -+server and client have to support it. -+In the case where one of these does not support the size specified, -+the size negotiated will be the largest that both support. -+.TP -+.B intr -+This will allow NFS4 operations (on hard mounts) to be -+interrupted while waiting for a response from the server. - - .SH "Mount options for ntfs" - .TP diff --git a/util-linux-2.13-mount-man-nfs4.patch b/util-linux-2.13-mount-man-nfs4.patch deleted file mode 100644 index 07d4811..0000000 --- a/util-linux-2.13-mount-man-nfs4.patch +++ /dev/null @@ -1,106 +0,0 @@ ---- util-linux-2.13-pre7/mount/mount.8.man-nfs4 2006-03-06 00:04:37.000000000 +0100 -+++ util-linux-2.13-pre7/mount/mount.8 2006-12-14 00:30:33.000000000 +0100 -@@ -385,6 +385,7 @@ - .IR msdos , - .IR ncpfs , - .IR nfs , -+.IR nfs4 , - .IR ntfs , - .IR proc , - .IR qnx4 , -@@ -422,7 +423,7 @@ - program has to do is issue a simple - .IR mount (2) - system call, and no detailed knowledge of the filesystem type is required. --For a few types however (like nfs, cifs, smbfs, ncpfs) ad hoc code is -+For a few types however (like nfs, nfs4, cifs, smbfs, ncpfs) ad hoc code is - necessary. The nfs ad hoc code is built in, but cifs, smbfs, and ncpfs - have a separate mount program. In order to make it possible to - treat all types in a uniform way, mount will execute the program -@@ -450,9 +451,10 @@ - All of the filesystem types listed there will be tried, - except for those that are labeled "nodev" (e.g., - .IR devpts , --.I proc -+.IR proc , -+.IR nfs , - and --.IR nfs ). -+.IR nfs4 ). - If - .I /etc/filesystems - ends in a line with a single * only, mount will read -@@ -1368,6 +1370,73 @@ - .B nolock - Do not use locking. Do not start lockd. - -+.SH "Mount options for nfs4" -+Instead of a textual option string, parsed by the kernel, the -+.I nfs4 -+file system expects a binary argument of type -+.IR "struct nfs4_mount_data" . -+The program -+.B mount -+itself parses the following options of the form `tag=value', -+and puts them in the structure mentioned: -+.BI rsize= n, -+.BI wsize= n, -+.BI timeo= n, -+.BI retrans= n, -+.BI acregmin= n, -+.BI acregmax= n, -+.BI acdirmin= n, -+.BI acdirmax= n, -+.BI actimeo= n, -+.BI retry= n, -+.BI port= n, -+.BI proto= n, -+.BI clientaddr= n, -+.BI sec= n. -+The option -+.BI addr= n -+is accepted but ignored. -+Also the following Boolean options, possibly preceded by -+.B no -+are recognized: -+.BR bg , -+.BR fg , -+.BR soft , -+.BR hard , -+.BR intr , -+.BR cto , -+.BR ac , -+For details, see -+.BR nfs (5). -+ -+Especially useful options include -+.TP -+.B rsize=32768,wsize=32768 -+This will make your NFS connection faster than with the default -+buffer size of 4096. -+.TP -+.B hard -+The program accessing a file on a NFS mounted file system will hang -+when the server crashes. The process cannot be interrupted or -+killed unless you also specify -+.BR intr . -+When the NFS server is back online the program will continue undisturbed -+from where it was. This is probably what you want. -+.TP -+.B soft -+This option allows the kernel to time out if the NFS server is not -+responding for some time. The time can be -+specified with -+.BR timeo=time . -+This timeout value is expressed in tenths of a second. -+The -+.BR soft -+option might be useful if your NFS server sometimes doesn't respond -+or will be rebooted while some process tries to get a file from the server. -+Avoid using this option with -+.BR proto=udp -+or with a short timeout. -+ - .SH "Mount options for ntfs" - .TP - .BI iocharset= name diff --git a/util-linux-2.13-mount-move.patch b/util-linux-2.13-mount-move.patch deleted file mode 100644 index c7d1c77..0000000 --- a/util-linux-2.13-mount-move.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- util-linux-2.13-pre6/mount/mount.c.move 2006-06-12 09:19:43.000000000 +0200 -+++ util-linux-2.13-pre6/mount/mount.c 2006-06-12 09:45:05.000000000 +0200 -@@ -768,6 +768,25 @@ - else { - mntFILE *mfp; - -+ /* when moving a mount point, we have to make sure the mtab -+ * gets updated properly. We get info about the old mount -+ * point, copy it to the new mount point, and then delete -+ * the old mount point. */ -+ if (flags & MS_MOVE) { -+ const char *olddir = mnt.mnt_fsname; -+ struct mntentchn *oldmc = oldmc = getmntfile(olddir); -+ if (oldmc != NULL) { -+ mnt.mnt_fsname = strdup(oldmc->m.mnt_fsname); -+ mnt.mnt_type = oldmc->m.mnt_type; -+ mnt.mnt_opts = oldmc->m.mnt_opts; -+ mnt.mnt_freq = oldmc->m.mnt_freq; -+ mnt.mnt_passno = oldmc->m.mnt_passno; -+ } -+ update_mtab(olddir, NULL); -+ if (oldmc != NULL) -+ my_free(olddir); -+ } -+ - lock_mtab(); - mfp = my_setmntent(MOUNTED, "a+"); - if (mfp == NULL || mfp->mntent_fp == NULL) { diff --git a/util-linux-2.13-mount-nonfs.patch b/util-linux-2.13-mount-nonfs.patch deleted file mode 100644 index e2ccb2b..0000000 --- a/util-linux-2.13-mount-nonfs.patch +++ /dev/null @@ -1,196 +0,0 @@ ---- util-linux-2.13-pre6/mount/Makefile.am.nonfs 2006-09-20 12:45:50.000000000 +0200 -+++ util-linux-2.13-pre6/mount/Makefile.am 2006-09-20 12:46:51.000000000 +0200 -@@ -1,15 +1,12 @@ - include $(top_srcdir)/config/include-Makefile.am - --AM_CPPFLAGS += -DHAVE_NFS -- - bin_PROGRAMS = mount umount - sbin_PROGRAMS = losetup swapon --man_MANS = fstab.5 nfs.5 mount.8 swapoff.8 swapon.8 umount.8 losetup.8 -+man_MANS = fstab.5 mount.8 swapoff.8 swapon.8 umount.8 losetup.8 - - mount_SOURCES = mount.c fstab.c sundries.c xmalloc.c realpath.c mntent.c \ - get_label_uuid.c mount_by_label.c mount_blkid.c mount_guess_fstype.c \ - getusername.c \ -- nfsmount.c nfsmount_xdr.c nfsmount_clnt.c \ - lomount.c - - mount_LDADD = $(top_srcdir)/lib/libenv.a $(top_srcdir)/lib/libsetproctitle.a ---- util-linux-2.13-pre6/mount/sundries.c.nonfs 2006-09-20 12:53:09.000000000 +0200 -+++ util-linux-2.13-pre6/mount/sundries.c 2006-09-20 12:53:13.000000000 +0200 -@@ -15,7 +15,6 @@ - #include "fstab.h" - #include "sundries.h" - #include "realpath.h" --#include "nfsmount.h" - #include "nls.h" - - char * ---- util-linux-2.13-pre6/mount/umount.c.nonfs 2006-09-20 12:51:11.000000000 +0200 -+++ util-linux-2.13-pre6/mount/umount.c 2006-09-20 12:52:26.000000000 +0200 -@@ -20,15 +20,6 @@ - #include "env.h" - #include "nls.h" - --#include --#include --#include --#include --#include --#include --#include "nfsmount.h" --#include -- - #if defined(MNT_FORCE) && !defined(__sparc__) && !defined(__arm__) - /* Interesting ... it seems libc knows about MNT_FORCE and presumably - about umount2 as well -- need not do anything */ -@@ -144,98 +135,6 @@ - return 0; - } - --static int xdr_dir(XDR *xdrsp, char *dirp) --{ -- return (xdr_string(xdrsp, &dirp, MNTPATHLEN)); --} -- --static int --nfs_umount_rpc_call(const char *spec, const char *opts) --{ -- register CLIENT *clp; -- struct sockaddr_in saddr; -- struct timeval pertry, try; -- enum clnt_stat clnt_stat; -- int port = 0; -- int so = RPC_ANYSOCK; -- struct hostent *hostp; -- char *hostname; -- char *dirname; -- char *p; -- -- if (spec == NULL || (p = strchr(spec,':')) == NULL) -- return 0; -- hostname = xstrndup(spec, p-spec); -- dirname = xstrdup(p+1); --#ifdef DEBUG -- printf(_("host: %s, directory: %s\n"), hostname, dirname); --#endif -- -- if (opts && (p = strstr(opts, "addr="))) { -- char *q; -- -- free(hostname); -- p += 5; -- q = p; -- while (*q && *q != ',') q++; -- hostname = xstrndup(p,q-p); -- } -- -- if (opts && (p = strstr(opts, "mountport=")) && isdigit(*(p+10))) -- port = atoi(p+10); -- -- if (hostname[0] >= '0' && hostname[0] <= '9') -- saddr.sin_addr.s_addr = inet_addr(hostname); -- else { -- if ((hostp = gethostbyname(hostname)) == NULL) { -- fprintf(stderr, _("umount: can't get address for %s\n"), -- hostname); -- return 1; -- } -- if (hostp->h_length > sizeof(struct in_addr)) { -- fprintf(stderr, _("umount: got bad hostp->h_length\n")); -- hostp->h_length = sizeof(struct in_addr); -- } -- memcpy(&saddr.sin_addr, hostp->h_addr, hostp->h_length); -- } -- -- saddr.sin_family = AF_INET; -- saddr.sin_port = htons(port); -- pertry.tv_sec = 3; -- pertry.tv_usec = 0; -- if (opts && (p = strstr(opts, "tcp"))) { -- /* possibly: make sure option is not "notcp" -- possibly: try udp if tcp fails */ -- if ((clp = clnttcp_create(&saddr, MOUNTPROG, MOUNTVERS, -- &so, 0, 0)) == NULL) { -- clnt_pcreateerror("Cannot MOUNTPROG RPC (tcp)"); -- return 1; -- } -- } else { -- if ((clp = clntudp_create(&saddr, MOUNTPROG, MOUNTVERS, -- pertry, &so)) == NULL) { -- clnt_pcreateerror("Cannot MOUNTPROG RPC"); -- return 1; -- } -- } -- clp->cl_auth = authunix_create_default(); -- try.tv_sec = 20; -- try.tv_usec = 0; -- clnt_stat = clnt_call(clp, MOUNTPROC_UMNT, -- (xdrproc_t) xdr_dir, dirname, -- (xdrproc_t) xdr_void, (caddr_t) 0, -- try); -- -- if (clnt_stat != RPC_SUCCESS) { -- clnt_perror(clp, "Bad UMNT RPC"); -- return 1; -- } -- auth_destroy(clp->cl_auth); -- clnt_destroy(clp); -- -- return 0; --} -- - /* complain about a failed umount */ - static void complain(int err, const char *dev) { - switch (err) { -@@ -289,11 +188,6 @@ - if (check_special_umountprog(spec, node, type, &status)) - return status; - -- /* Ignore any RPC errors, so that you can umount the filesystem -- if the server is down. */ -- if (strcasecmp(type, "nfs") == 0) -- nfs_umount_rpc_call(spec, opts); -- - umnt_err = umnt_err2 = 0; - if (lazy) { - res = umount2 (node, MNT_DETACH); ---- util-linux-2.13-pre6/mount/mount.c.nonfs 2006-09-20 12:48:48.000000000 +0200 -+++ util-linux-2.13-pre6/mount/mount.c 2006-09-20 12:48:33.000000000 +0200 -@@ -966,19 +966,6 @@ - goto out; - } - -- /* -- * Also nfs requires a separate program, but it is built in. -- */ -- if (!fake && types && streq (types, "nfs")) { --retry_nfs: -- mnt_err = nfsmount (spec, node, &flags, &extra_opts, &mount_opts, -- &nfs_mount_version, bg); -- if (mnt_err) { -- res = mnt_err; -- goto out; -- } -- } -- - block_signals (SIG_BLOCK); - - if (!fake) { -@@ -1018,15 +1005,6 @@ - - block_signals (SIG_UNBLOCK); - -- if (mnt_err && types && streq (types, "nfs")) { -- if (nfs_mount_version == 4 && mnt_err != EBUSY && mnt_err != ENOENT) { -- if (verbose) -- printf(_("mount: failed with nfs mount version 4, trying 3..\n")); -- nfs_mount_version = 3; -- goto retry_nfs; -- } -- } -- - /* Mount failed, complain, but don't die. */ - - if (types == 0) { diff --git a/util-linux-2.13-mount-relatime.patch b/util-linux-2.13-mount-relatime.patch deleted file mode 100644 index edae73b..0000000 --- a/util-linux-2.13-mount-relatime.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- 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 } diff --git a/util-linux-2.13-mount-sloppy.patch b/util-linux-2.13-mount-sloppy.patch deleted file mode 100644 index 43b985c..0000000 --- a/util-linux-2.13-mount-sloppy.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- util-linux-2.13-pre6/mount/mount.c.sloppy 2006-09-15 08:39:53.000000000 +0200 -+++ util-linux-2.13-pre6/mount/mount.c 2006-09-15 08:43:24.000000000 +0200 -@@ -554,7 +554,7 @@ - if (stat(mountprog, &statbuf) == 0) { - res = fork(); - if (res == 0) { -- char *oo, *mountargs[10]; -+ char *oo, *mountargs[11]; - int i = 0; - - setuid(getuid()); -@@ -563,6 +563,8 @@ - mountargs[i++] = mountprog; - mountargs[i++] = spec; - mountargs[i++] = node; -+ if (sloppy && (strcmp(type, "nfs")==0 || strcmp(type, "nfs4")==0)) -+ mountargs[i++] = "-s"; - if (nomtab) - mountargs[i++] = "-n"; - if (verbose) diff --git a/util-linux-2.13-mount-subtree.patch b/util-linux-2.13-mount-subtree.patch deleted file mode 100644 index b16ae99..0000000 --- a/util-linux-2.13-mount-subtree.patch +++ /dev/null @@ -1,187 +0,0 @@ ---- util-linux-2.13-pre6/mount/mount.8.subtree 2006-06-12 09:18:26.000000000 +0200 -+++ util-linux-2.13-pre6/mount/mount.8 2006-06-12 09:19:43.000000000 +0200 -@@ -131,6 +131,41 @@ - .B "mount --move olddir newdir" - .RE - -+Since Linux 2.6.15 it is possible to mark a mount and its submounts as shared, -+private, slave or unbindable. A shared mount provides ability to create mirrors -+of that mount such that mounts and umounts within any of the mirrors propagate -+to the other mirror. A slave mount receives propagation from its master, but -+any not vice-versa. A private mount carries no propagation abilities. A -+unbindable mount is a private mount which cannot cloned through a bind -+operation. Detailed semantics is documented in Documentation/sharedsubtree.txt -+file in the kernel source tree. -+.RS -+.br -+.B "mount --make-shared mountpoint" -+.br -+.B "mount --make-slave mountpoint" -+.br -+.B "mount --make-private mountpoint" -+.br -+.B "mount --make-unbindable mountpoint" -+.br -+.RE -+ -+The following commands allows one to recursively change the type of all the -+mounts under a given mountpoint. -+.RS -+.br -+.B "mount --make-rshared mountpoint" -+.br -+.B "mount --make-rslave mountpoint" -+.br -+.B "mount --make-rprivate mountpoint" -+.br -+.B -+"mount --make-runbindable mountpoint" -+.br -+.RE -+ - The - .I proc - file system is not associated with a special device, and when ---- util-linux-2.13-pre6/mount/mount_constants.h.subtree 2002-11-01 01:24:36.000000000 +0100 -+++ util-linux-2.13-pre6/mount/mount_constants.h 2006-06-12 09:19:43.000000000 +0200 -@@ -57,6 +57,18 @@ - #ifndef MS_VERBOSE - #define MS_VERBOSE 0x8000 /* 32768 */ - #endif -+#ifndef MS_UNBINDABLE -+#define MS_UNBINDABLE (1<<17) /* 131072 unbindable*/ -+#endif -+#ifndef MS_PRIVATE -+#define MS_PRIVATE (1<<18) /* 262144 Private*/ -+#endif -+#ifndef MS_SLAVE -+#define MS_SLAVE (1<<19) /* 524288 Slave*/ -+#endif -+#ifndef MS_SHARED -+#define MS_SHARED (1<<20) /* 1048576 Shared*/ -+#endif - /* - * Magic mount flag number. Had to be or-ed to the flag values. - */ ---- util-linux-2.13-pre6/mount/mount.c.subtree 2006-06-12 09:18:26.000000000 +0200 -+++ util-linux-2.13-pre6/mount/mount.c 2006-06-12 09:19:43.000000000 +0200 -@@ -74,7 +74,9 @@ - /* Add volumelabel in a listing of mounted devices (-l). */ - static int list_with_volumelabel = 0; - --/* Nonzero for mount {--bind|--replace|--before|--after|--over|--move} */ -+/* Nonzero for mount {--bind|--replace|--before|--after|--over|--move| -+ * make-shared|make-private|make-unbindable|make-slave} -+ */ - static int mounttype = 0; - - /* True if ruid != euid. */ -@@ -109,6 +111,8 @@ - /* Options that we keep from appearing in the options field in the mtab. */ - #define MS_NOMTAB (MS_REMOUNT|MS_NOAUTO|MS_USERS|MS_USER|MS_PAMCONSOLE) - -+#define MS_PROPAGATION (MS_SHARED|MS_SLAVE|MS_UNBINDABLE|MS_PRIVATE) -+ - /* Options that we make ordinary users have by default. */ - #define MS_SECURE (MS_NOEXEC|MS_NOSUID|MS_NODEV) - -@@ -346,6 +350,9 @@ - *flags |= MS_RDONLY; - if (readwrite) - *flags &= ~MS_RDONLY; -+ -+ if (mounttype & MS_PROPAGATION) -+ *flags &= ~MS_BIND; - *flags |= mounttype; - } - -@@ -916,13 +923,15 @@ - if (loop) - opt_loopdev = loopdev; - -- update_mtab_entry(loop ? loopfile : spec, -+ if (!(mounttype & MS_PROPAGATION)) { -+ update_mtab_entry(loop ? loopfile : spec, - node, - types ? types : "unknown", - fix_opts_string (flags & ~MS_NOMTAB, extra_opts, user), - flags, - freq, - pass); -+ } - - block_signals (SIG_UNBLOCK); - res = 0; -@@ -1461,6 +1470,14 @@ - { "move", 0, 0, 133 }, - { "guess-fstype", 1, 0, 134 }, - { "rbind", 0, 0, 135 }, -+ { "make-shared", 0, 0, 136 }, -+ { "make-slave", 0, 0, 137 }, -+ { "make-private", 0, 0, 138 }, -+ { "make-unbindable", 0, 0, 139 }, -+ { "make-rshared", 0, 0, 140 }, -+ { "make-rslave", 0, 0, 141 }, -+ { "make-rprivate", 0, 0, 142 }, -+ { "make-runbindable", 0, 0, 143 }, - { "internal-only", 0, 0, 'i' }, - { NULL, 0, 0, 0 } - }; -@@ -1487,6 +1504,17 @@ - " mount --bind olddir newdir\n" - "or move a subtree:\n" - " mount --move olddir newdir\n" -+ "One can change the type of mount containing the directory dir:\n" -+ " mount --make-shared dir\n" -+ " mount --make-slave dir\n" -+ " mount --make-private dir\n" -+ " mount --make-unbindable dir\n" -+ "One can change the type of all the mounts in a mount subtree\n" -+ "containing the directory dir:\n" -+ " mount --make-rshared dir\n" -+ " mount --make-rslave dir\n" -+ " mount --make-rprivate dir\n" -+ " mount --make-runbindable dir\n" - "A device can be given by name, say /dev/hda1 or /dev/cdrom,\n" - "or by label, using -L label or by uuid, using -U uuid .\n" - "Other options: [-nfFrsvw] [-o options] [-p passwdfd].\n" -@@ -1638,6 +1666,39 @@ - case 135: - mounttype = (MS_BIND | MS_REC); - break; -+ -+ case 136: -+ mounttype = MS_SHARED; -+ break; -+ -+ case 137: -+ mounttype = MS_SLAVE; -+ break; -+ -+ case 138: -+ mounttype = MS_PRIVATE; -+ break; -+ -+ case 139: -+ mounttype = MS_UNBINDABLE; -+ break; -+ -+ case 140: -+ mounttype = (MS_SHARED | MS_REC); -+ break; -+ -+ case 141: -+ mounttype = (MS_SLAVE | MS_REC); -+ break; -+ -+ case 142: -+ mounttype = (MS_PRIVATE | MS_REC); -+ break; -+ -+ case 143: -+ mounttype = (MS_UNBINDABLE | MS_REC); -+ break; -+ - case '?': - default: - usage (stderr, EX_USAGE); diff --git a/util-linux-2.13-mount-twiceloop.patch b/util-linux-2.13-mount-twiceloop.patch deleted file mode 100644 index f694bcf..0000000 --- a/util-linux-2.13-mount-twiceloop.patch +++ /dev/null @@ -1,72 +0,0 @@ ---- util-linux-2.13-pre6/mount/fstab.h.twiceloop 2006-09-15 08:50:46.000000000 +0200 -+++ util-linux-2.13-pre6/mount/fstab.h 2006-09-15 08:51:10.000000000 +0200 -@@ -2,6 +2,7 @@ - int mtab_is_writable(void); - int mtab_does_not_exist(void); - int is_mounted_once(const char *name); -+int is_mounted_same_loopfile(const char *loopfile, const char *dir); - - struct mntentchn { - struct mntentchn *nxt, *prev; ---- util-linux-2.13-pre6/mount/mount.c.twiceloop 2006-09-15 08:50:23.000000000 +0200 -+++ util-linux-2.13-pre6/mount/mount.c 2006-09-15 08:50:24.000000000 +0200 -@@ -671,7 +671,7 @@ - - static int - loop_check(const char **spec, const char **type, int *flags, -- int *loop, const char **loopdev, const char **loopfile) { -+ int *loop, const char **loopdev, const char **loopfile, const char *dir) { - int looptype; - unsigned long long offset; - -@@ -709,6 +709,11 @@ - } else { - int loopro = (*flags & MS_RDONLY); - -+ if (is_mounted_same_loopfile(*loopfile, dir)) { -+ error(_("mount: %s already mounted on %s"), *loopfile, dir); -+ return EX_FAIL; -+ } -+ - if (!*loopdev || !**loopdev) - *loopdev = find_unused_loop_device(); - if (!*loopdev) -@@ -856,7 +861,7 @@ - * stale assignments of files to loop devices. Nasty when used for - * encryption. - */ -- res = loop_check(&spec, &types, &flags, &loop, &loopdev, &loopfile); -+ res = loop_check(&spec, &types, &flags, &loop, &loopdev, &loopfile, node); - if (res) - goto out; - } ---- util-linux-2.13-pre6/mount/fstab.c.twiceloop 2006-09-15 08:50:23.000000000 +0200 -+++ util-linux-2.13-pre6/mount/fstab.c 2006-09-15 08:50:24.000000000 +0200 -@@ -254,6 +254,27 @@ - return (ct == 1); - } - -+/* -+ * Given the loop file LOOPFILE, and the mount point DIR, check that -+ * same file is already mounted on same directory -+ * -+ * Don't forget there's -+ * /path/loopfile /path/dir loop=/dev/loop0 -+ * in mtab for loop devices. -+ */ -+int -+is_mounted_same_loopfile(const char *loopfile, const char *dir) { -+ struct mntentchn *mc, *mc0; -+ int ct = 0; -+ -+ mc0 = mtab_head(); -+ for (mc = mc0->prev; mc && mc != mc0; mc = mc->prev) -+ if (streq(mc->m.mnt_fsname, loopfile) && -+ streq(mc->m.mnt_dir, dir)) -+ ct++; -+ return (ct == 1); -+} -+ - /* Given the name FILE, try to find the option "loop=FILE" in mtab. */ - struct mntentchn * - getmntoptfile (const char *file) { diff --git a/util-linux-2.13-mount-uhelper.patch b/util-linux-2.13-mount-uhelper.patch deleted file mode 100644 index 0dbda6c..0000000 --- a/util-linux-2.13-mount-uhelper.patch +++ /dev/null @@ -1,68 +0,0 @@ ---- util-linux-2.13-pre6/mount/mount.c.uhelper 2006-09-15 13:23:23.000000000 +0200 -+++ util-linux-2.13-pre6/mount/mount.c 2006-09-15 13:23:23.000000000 +0200 -@@ -183,7 +183,7 @@ - }; - - static const char *opt_loopdev, *opt_vfstype, *opt_offset, *opt_encryption, -- *opt_speed, *opt_comment; -+ *opt_speed, *opt_comment, *opt_uhelper; - - static struct string_opt_map { - char *tag; -@@ -196,6 +196,7 @@ - { "encryption=", 0, &opt_encryption }, - { "speed=", 0, &opt_speed }, - { "comment=", 1, &opt_comment }, -+ { "uhelper=", 0, &opt_uhelper }, - { NULL, 0, NULL } - }; - ---- util-linux-2.13-pre6/mount/umount.8.uhelper 2004-11-10 20:49:37.000000000 +0100 -+++ util-linux-2.13-pre6/mount/umount.8 2006-09-15 14:02:25.000000000 +0200 -@@ -122,6 +122,19 @@ - Any pending loop devices can be freed using `losetup -d', see - .BR losetup (8). - -+.SH NOTES -+The syntax of external umount helpers is: -+ -+.br -+.BI "/sbin/umount. [\-nlfvr] " "dir " | " device " -+.br -+ -+where the is filesystem type or a value from "uhelper=" mtab option. -+ -+The uhelper (unprivileged umount request helper) is possible used when non-root -+user wants to umount a mountpoint which is not defined in the /etc/fstab file -+(e.g devices mounted by HAL). -+ - .SH FILES - .I /etc/mtab - table of mounted file systems ---- util-linux-2.13-pre6/mount/umount.c.uhelper 2006-09-15 13:23:23.000000000 +0200 -+++ util-linux-2.13-pre6/mount/umount.c 2006-09-15 13:23:23.000000000 +0200 -@@ -565,11 +565,24 @@ - - if (suid) { - char *mtab_user = NULL; -+ char *uhelper = NULL; - - if (!mc) - die(2, - _("umount: %s is not mounted (according to mtab)"), - file); -+ /* -+ * uhelper - unprivileged umount helper -+ * -- external umount (for example HAL mounts) -+ */ -+ if (mc->m.mnt_opts) -+ uhelper = get_value(mc->m.mnt_opts, "uhelper="); -+ if (uhelper) { -+ int status = 0; -+ if (check_special_umountprog(arg, arg, uhelper, &status)) -+ return status; -+ } -+ - /* The 2.4 kernel will generally refuse to mount the same - filesystem on the same mount point, but will accept NFS. - So, unmounting must be possible. */ diff --git a/util-linux-2.13-mount-uuid.patch b/util-linux-2.13-mount-uuid.patch deleted file mode 100644 index 43a4d7a..0000000 --- a/util-linux-2.13-mount-uuid.patch +++ /dev/null @@ -1,60 +0,0 @@ - - The UUID code in the mount command is broken -- en example UUID= in the fstab - file is reason for SIGSEG when non-root user tries umount any device. - -- 03/30/2006 Karel Zak - ---- util-linux-2.13-pre6/mount/mount_blkid.h.uuid 2006-03-29 15:34:24.000000000 +0200 -+++ util-linux-2.13-pre6/mount/mount_blkid.h 2006-03-29 15:34:57.000000000 +0200 -@@ -8,5 +8,6 @@ - extern const char *mount_get_devname_by_uuid(const char *uuid); - extern const char *mount_get_devname_by_label(const char *label); - extern const char *mount_get_volume_label_by_spec(const char *spec); -+extern const char *mount_get_volume_uuid_by_spec(const char *spec); - extern const char *mount_get_devname(const char *spec); - extern const char *mount_get_devname_for_mounting(const char *spec); ---- util-linux-2.13-pre6/mount/mount_blkid.c.uuid 2006-03-29 15:33:44.000000000 +0200 -+++ util-linux-2.13-pre6/mount/mount_blkid.c 2006-03-29 15:34:14.000000000 +0200 -@@ -21,6 +21,11 @@ - } - - const char * -+mount_get_volume_uuid_by_spec(const char *spec) { -+ return blkid_get_tag_value(blkid, "UUID", spec); -+} -+ -+const char * - mount_get_devname(const char *spec) { - return blkid_get_devname(blkid, spec, 0); - } ---- util-linux-2.13-pre6/mount/fstab.c.uuid 2006-03-29 15:29:28.000000000 +0200 -+++ util-linux-2.13-pre6/mount/fstab.c 2006-03-29 15:36:30.000000000 +0200 -@@ -301,23 +301,19 @@ - static int - has_label(const char *device, const char *label) { - const char *devlabel; -- int ret; - -- devlabel = mount_get_volume_label_by_spec(device); -- ret = !strcmp(label, devlabel); -- /* free(devlabel); */ -- return ret; -+ if (!(devlabel = mount_get_volume_label_by_spec(device))) -+ return 0; -+ return !strcmp(label, devlabel); - } - - static int - has_uuid(const char *device, const char *uuid){ - const char *devuuid; -- int ret; - -- devuuid = mount_get_devname_by_uuid(device); -- ret = !strcmp(uuid, devuuid); -- /* free(devuuid); */ -- return ret; -+ if (!(devuuid = mount_get_volume_uuid_by_spec(device))) -+ return 0; -+ return !strcmp(uuid, devuuid); - } - - /* Find the entry (SPEC,FILE) in fstab */ diff --git a/util-linux-2.13-namei-logic.patch b/util-linux-2.13-namei-logic.patch deleted file mode 100644 index b3b811f..0000000 --- a/util-linux-2.13-namei-logic.patch +++ /dev/null @@ -1,129 +0,0 @@ ---- util-linux-2.13-pre7/misc-utils/namei.1.nodir 2006-12-15 10:58:38.000000000 +0100 -+++ util-linux-2.13-pre7/misc-utils/namei.1 2006-12-15 10:58:51.000000000 +0100 -@@ -52,9 +52,5 @@ - Roger Southwick (rogers@amadeus.wr.tek.com) - .SH BUGS - To be discovered. --.SH CAVEATS --.I Namei --will follow an infinite loop of symbolic links forever. To escape, use --SIGINT (usually ^C). - .SH "SEE ALSO" - ls(1), stat(1) ---- util-linux-2.13-pre7/misc-utils/namei.c.nodir 2006-12-14 21:38:41.000000000 +0100 -+++ util-linux-2.13-pre7/misc-utils/namei.c 2006-12-15 10:58:31.000000000 +0100 -@@ -42,6 +42,10 @@ - 1999-02-22 Arkadiusz Mi¶kiewicz - - added Native Language Support - -+2006-12-15 Karel Zak -+- fixed logic; don't follow the path if a component is not directory -+- fixed infinite loop of symbolic links; stack size is very limited -+ - -------------------------------------------------------------*/ - - #include -@@ -66,7 +70,7 @@ - #endif - - static char *pperm(unsigned short); --static void namei(char *, int); -+static void namei(char *, int, mode_t *); - static void usage(void); - - int -@@ -107,9 +111,10 @@ - - - for(; optind < argc; optind++){ -+ mode_t lastmode = 0; - (void)printf("f: %s\n", argv[optind]); - symcount = 1; -- namei(argv[optind], 0); -+ namei(argv[optind], 0, &lastmode); - - if(chdir(curdir) == -1){ - (void)fprintf(stderr, -@@ -131,8 +136,10 @@ - #define NODEV (dev_t)(-1) - #endif - -+int kzak; -+ - static void --namei(char *file, int lev) { -+namei(char *file, int lev, mode_t *lastmode) { - char *cp; - char buf[BUFSIZ], sym[BUFSIZ]; - struct stat stb; -@@ -143,7 +150,7 @@ - * See if the file has a leading /, and if so cd to root - */ - -- if(*file == '/'){ -+ if(file && *file == '/'){ - while(*file == '/') - file++; - -@@ -166,7 +173,7 @@ - (void)printf(" d /\n"); - } - -- for(;;){ -+ for(; file && *file;){ - - if (strlen(file) >= BUFSIZ) { - fprintf(stderr,_("namei: buf overflow\n")); -@@ -198,6 +205,20 @@ - for(i = 0; i < lev; i++) - (void)printf(" "); - -+ -+ /* -+ * Previous element in the path wasn't directory, it means -+ * we cannot walk on *path* and check the actual element by lstat(), because -+ * there could be a component with same name. Try: -+ * -+ * $ touch a b -+ * $ namei a/b <-- "a" is not directory so namei shouldn't check for "b" -+ */ -+ if (*lastmode && S_ISDIR(*lastmode)==0 && S_ISLNK(*lastmode)==0){ -+ (void)printf(" ? %s - %s (%d)\n", buf, strerror(ENOENT), ENOENT); -+ return; -+ } -+ - /* - * See what type of critter this file is - */ -@@ -207,6 +228,8 @@ - return; - } - -+ *lastmode = stb.st_mode; -+ - switch(stb.st_mode & S_IFMT){ - case S_IFDIR: - -@@ -241,7 +264,6 @@ - * Sigh, another symlink. Read its contents and - * call namei() - */ -- - bzero(sym, BUFSIZ); - if(readlink(buf, sym, BUFSIZ) == -1){ - (void)printf(_(" ? problems reading symlink %s - %s (%d)\n"), buf, ERR); -@@ -255,11 +277,12 @@ - - if(symcount > 0 && symcount++ > MAXSYMLINKS){ - (void)printf(_(" *** EXCEEDED UNIX LIMIT OF SYMLINKS ***\n")); -- symcount = -1; - } else { - (void)printf("\n"); -- namei(sym, lev + 1); -+ namei(sym, lev + 1, lastmode); - } -+ if (symcount > MAXSYMLINKS) -+ return; - break; - - case S_IFCHR: diff --git a/util-linux-2.13-partx-man.patch b/util-linux-2.13-partx-man.patch deleted file mode 100644 index ff1d023..0000000 --- a/util-linux-2.13-partx-man.patch +++ /dev/null @@ -1,129 +0,0 @@ ---- util-linux-2.13-pre7/partx/Makefile.am.kzak 2007-01-11 16:30:39.000000000 +0100 -+++ util-linux-2.13-pre7/partx/Makefile.am 2007-01-11 16:30:30.000000000 +0100 -@@ -4,5 +4,6 @@ - - usrsbinexec_PROGRAMS = addpart delpart partx - partx_SOURCES = bsd.c dos.c partx.c solaris.c unixware.c gpt.c crc32.c -+man_MANS = addpart.8 delpart.8 partx.8 - - endif ---- /dev/null 2007-01-05 11:17:33.335119060 +0100 -+++ util-linux-2.13-pre7/partx/delpart.8 2007-01-11 16:28:37.000000000 +0100 -@@ -0,0 +1,30 @@ -+.\" delpart.8 -- -+.\" Copyright 2007 Karel Zak -+.\" Copyright 2007 Red Hat, Inc. -+.\" May be distributed under the GNU General Public License -+.TH DELPART 8 "11 Jan 2007" -+.SH NAME -+delpart \- -+simple wrapper around the "del partition" ioctl -+.SH SYNOPSIS -+.B delpart device partition -+.SH DESCRIPTION -+.B delpart -+is a program that asks the Linux kernel to remove a partition. -+ -+This command doesn't manipulate with partitions on hard drive. -+ -+.SH OPTIONS -+.TP -+.BI device -+Specify the disk device. -+.TP -+.BI partition -+Specify the partition number. -+ -+.SH SEE ALSO -+.BR addpart (8), -+.BR fdisk (8), -+.BR parted (8), -+.BR partprobe (8), -+.BR partx (8) ---- /dev/null 2007-01-05 11:17:33.335119060 +0100 -+++ util-linux-2.13-pre7/partx/addpart.8 2007-01-11 16:28:37.000000000 +0100 -@@ -0,0 +1,36 @@ -+.\" addpart.8 -- -+.\" Copyright 2007 Karel Zak -+.\" Copyright 2007 Red Hat, Inc. -+.\" May be distributed under the GNU General Public License -+.TH ADDPART 8 "11 Jan 2007" -+.SH NAME -+addpart \- -+simple wrapper around the "add partition" ioctl -+.SH SYNOPSIS -+.B addpart device partition start length -+.SH DESCRIPTION -+.B addpart -+is a program that informs the Linux kernel of new partition. -+ -+This command doesn't manipulate with partitions on hard drive. -+ -+.SH PARAMETERS -+.TP -+.BI device -+Specify the disk device. -+.TP -+.BI partition -+Specify the partition number. -+.TP -+.BI start -+Specify the begin of the partition (in bytes). -+.TP -+.BI length -+Specify the length of the partition (in bytes). -+ -+.SH SEE ALSO -+.BR delpart (8), -+.BR fdisk (8), -+.BR parted (8), -+.BR partprobe (8), -+.BR partx (8) ---- /dev/null 2007-01-05 11:17:33.335119060 +0100 -+++ util-linux-2.13-pre7/partx/partx.8 2007-01-11 16:28:37.000000000 +0100 -@@ -0,0 +1,45 @@ -+.\" partx.8 -- -+.\" Copyright 2007 Karel Zak -+.\" Copyright 2007 Red Hat, Inc. -+.\" May be distributed under the GNU General Public License -+.TH PARTX 8 "11 Jan 2007" -+.SH NAME -+partx \- -+telling the kernel about presence and numbering of on-disk partitions. -+.SH SYNOPSIS -+.B partx [-a|-d|-l] [--type TYPE] [--nr M-N] [partition] disk -+.SH DESCRIPTION -+Given a block device ( -+.B disk -+) and a partition table -+.B type -+, try to parse the partition table, and list the -+contents. Optionally add or remove partitions. -+ -+This is not an fdisk - adding and removing partitions -+is not a change of the disk, but just telling the kernel -+about presence and numbering of on-disk partitions. -+ -+.SH OPTIONS -+.TP -+.B \-a -+add specified partitions or read disk and add all partitions -+.TP -+.B \-d -+delete specified or all partitions -+.TP -+.B \-l -+list partitions -+.TP -+.BI --type " TYPE" -+Specify the partition type -- dos, bsd, solaris, unixware or gpt. -+.TP -+.BI --nr " M-N" -+Specify the range of partitions (e.g --nr 2-4). -+ -+.SH SEE ALSO -+.BR addpart (8), -+.BR delpart (8), -+.BR fdisk (8), -+.BR parted (8), -+.BR partprobe (8) diff --git a/util-linux-2.13-raw-raw0.patch b/util-linux-2.13-raw-raw0.patch deleted file mode 100644 index c92e3bd..0000000 --- a/util-linux-2.13-raw-raw0.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- util-linux-2.13-pre6/disk-utils/raw.c.kzak 2006-11-21 21:56:40.000000000 +0100 -+++ util-linux-2.13-pre6/disk-utils/raw.c 2006-11-21 22:35:11.000000000 +0100 -@@ -66,6 +66,7 @@ - int err; - int block_major, block_minor; - int i; -+ int rc; - - struct stat statbuf; - -@@ -108,19 +109,23 @@ - usage(1); - raw_name = argv[optind++]; - -+ rc = sscanf(raw_name, RAWDEVDIR "raw%d", &raw_minor); -+ if (rc != 1) { -+ fprintf (stderr, -+ "Unsupported raw device name '%s' (format is " RAWDEVDIR "rawN))\n", -+ raw_name); -+ exit(2); -+ } -+ if (raw_minor == 0) { -+ fprintf (stderr, -+ "Unsupported raw device name '%s' (minor number cannot be zero)\n", -+ raw_name); -+ exit(2); -+ } -+ - err = stat(raw_name, &statbuf); -- if (err) { -- int rc; -- -- rc = sscanf(raw_name, RAWDEVDIR "raw%d", &raw_minor); -- if (rc != 1) { -- fprintf (stderr, -- "Cannot locate raw device '%s' (%s)\n", -- raw_name, strerror(errno)); -- exit(2); -- } -+ if (err) - goto skip_test_rawdev; -- } - - if (!S_ISCHR(statbuf.st_mode)) { - fprintf (stderr, "raw device '%s' is not a character dev\n", diff --git a/util-linux-2.13-rmparts.patch b/util-linux-2.13-rmparts.patch deleted file mode 100644 index 128337d..0000000 --- a/util-linux-2.13-rmparts.patch +++ /dev/null @@ -1,105 +0,0 @@ ---- util-linux-2.13-pre6/disk-utils/blockdev.c.rmparts 2006-02-08 14:10:48.000000000 -0500 -+++ util-linux-2.13-pre6/disk-utils/blockdev.c 2006-02-08 14:19:31.000000000 -0500 -@@ -29,6 +29,28 @@ - #define BLKGETSIZE64 _IOR(0x12,114,size_t) - #endif - -+#ifndef BLKPG -+#define BLKPG _IO(0x12,105) -+#define BLKPG_DEL_PARTITION 2 -+#define BLKPG_DEVNAMELTH 64 -+#define BLKPG_VOLNAMELTH 64 -+ -+struct blkpg_partition { -+ long long start; -+ long long length; -+ long long pno; -+ char devname[BLKPG_DEVNAMELTH]; -+ char volname[BLKPG_VOLNAMELTH]; -+}; -+ -+struct blkpg_ioctl_arg { -+ int op; -+ int flags; -+ int datalen; -+ void *data; -+}; -+#endif -+ - /* Maybe could be included */ - #ifndef HDIO_GETGEO - #define HDIO_GETGEO 0x0301 -@@ -93,6 +115,10 @@ - { "--rereadpt", "BLKRRPART", BLKRRPART, ARGNONE, 0, NULL, - N_("reread partition table") }, - #endif -+#ifdef BLKPG -+ { "--rmpart", "BLKPG", BLKPG, ARGINTAP, 0, "PARTNO", N_("disable partition") }, -+ { "--rmparts", "BLKPG", BLKPG, ARGNONE, 0, NULL, N_("disable all partitions") }, -+#endif - }; - - #define SIZE(a) (sizeof(a)/sizeof((a)[0])) -@@ -144,6 +170,35 @@ - return 0; - } - -+#ifdef BLKPG -+static int -+disable_partition(int fd, int partno) { -+ struct blkpg_partition part = { -+ .pno = partno, -+ }; -+ struct blkpg_ioctl_arg io = { -+ .op = BLKPG_DEL_PARTITION, -+ .datalen = sizeof(part), -+ .data = &part, -+ }; -+ int res; -+ -+ res = ioctl(fd, BLKPG, &io); -+ if (res < 0) -+ return 0; -+ return 1; -+} -+ -+static int -+disable_partitions(int fd) { -+ int p, res = 0; -+ -+ for (p = 1; p <= 256; p++) -+ res += disable_partition(fd, p); -+ return res ? 0 : -1; -+} -+#endif -+ - void do_commands(int fd, char **argv, int d); - void report_header(void); - void report_device(char *device, int quiet); -@@ -259,6 +314,12 @@ - switch(bdcms[j].argtype) { - default: - case ARGNONE: -+#ifdef BLKPG -+ if (bdcms[j].ioc == BLKPG) { -+ res = disable_partitions(fd); -+ break; -+ } -+#endif - res = ioctl(fd, bdcms[j].ioc, 0); - break; - case ARGINTA: -@@ -276,6 +337,13 @@ - bdcms[j].name); - usage(); - } -+#ifdef BLKPG -+ if (bdcms[j].ioc == BLKPG) { -+ iarg = atoi(argv[++i]); -+ res = disable_partition(fd, iarg) ? 0 : -1; -+ break; -+ } -+#endif - iarg = atoi(argv[++i]); - res = ioctl(fd, bdcms[j].ioc, &iarg); - break; diff --git a/util-linux-2.13-schedutils-SCHED_BATCH.patch b/util-linux-2.13-schedutils-SCHED_BATCH.patch deleted file mode 100644 index f0abaaa..0000000 --- a/util-linux-2.13-schedutils-SCHED_BATCH.patch +++ /dev/null @@ -1,102 +0,0 @@ ---- util-linux-2.13-pre6/schedutils/chrt.1.batch 2006-11-10 13:23:37.000000000 -0500 -+++ util-linux-2.13-pre6/schedutils/chrt.1 2006-11-10 13:27:23.000000000 -0500 -@@ -36,10 +36,11 @@ - .BR chrt (1) - sets or retrieves the real-time scheduling attributes of an existing PID or - runs COMMAND with the given attributes. Both policy (one of -+.BR SCHED_OTHER , - .BR SCHED_FIFO , - .BR SCHED_RR , - or --.BR SCHED_OTHER ) -+.BR SCHED_BATCH ) - and priority can be set and retrieved. - .SH OPTIONS - .TP -@@ -48,6 +49,10 @@ - .TP - - .TP -+.B -b, --batch -+set scheduling policy to -+.BR SCHED_BATCH -+.TP - .B -f, --fifo - set scheduling policy to - .BR SCHED_FIFO ---- util-linux-2.13-pre6/schedutils/chrt.c.batch 2005-08-14 11:18:54.000000000 -0400 -+++ util-linux-2.13-pre6/schedutils/chrt.c 2006-11-10 13:27:52.000000000 -0500 -@@ -36,6 +36,8 @@ - fprintf(stderr, "usage: %s [options] [prio] [pid | cmd [args...]]\n", - cmd); - fprintf(stderr, "manipulate real-time attributes of a process\n"); -+ fprintf(stderr, " -b, --batch " -+ "set policy to SCHED_BATCH\n"); - fprintf(stderr, " -f, --fifo " - "set policy to SCHED_FF\n"); - fprintf(stderr, " -p, --pid " -@@ -83,6 +85,9 @@ - case SCHED_RR: - printf("SCHED_RR\n"); - break; -+ case SCHED_BATCH: -+ printf("SCHED_BATCH\n"); -+ break; - default: - printf("unknown\n"); - } -@@ -101,6 +106,13 @@ - { - int max, min; - -+ max = sched_get_priority_max(SCHED_OTHER); -+ min = sched_get_priority_min(SCHED_OTHER); -+ if (max >= 0 && min >= 0) -+ printf("SCHED_OTHER min/max priority\t: %d/%d\n", min, max); -+ else -+ printf("SCHED_OTHER not supported?\n"); -+ - max = sched_get_priority_max(SCHED_FIFO); - min = sched_get_priority_min(SCHED_FIFO); - if (max >= 0 && min >= 0) -@@ -115,12 +127,12 @@ - else - printf("SCHED_RR not supported?\n"); - -- max = sched_get_priority_max(SCHED_OTHER); -- min = sched_get_priority_min(SCHED_OTHER); -+ max = sched_get_priority_max(SCHED_BATCH); -+ min = sched_get_priority_min(SCHED_BATCH); - if (max >= 0 && min >= 0) -- printf("SCHED_OTHER min/max priority\t: %d/%d\n", min, max); -+ printf("SCHED_BATCH min/max priority\t: %d/%d\n", min, max); - else -- printf("SCHED_OTHER not supported?\n"); -+ printf("SCHED_BATCH not supported?\n"); - } - - int main(int argc, char *argv[]) -@@ -130,6 +142,7 @@ - pid_t pid = 0; - - struct option longopts[] = { -+ { "batch", 0, NULL, 'b' }, - { "fifo", 0, NULL, 'f' }, - { "pid", 0, NULL, 'p' }, - { "help", 0, NULL, 'h' }, -@@ -141,11 +154,14 @@ - { NULL, 0, NULL, 0 } - }; - -- while((i = getopt_long(argc, argv, "+fphmorvV", longopts, NULL)) != -1) -+ while((i = getopt_long(argc, argv, "+bfphmorvV", longopts, NULL)) != -1) - { - int ret = 1; - - switch (i) { -+ case 'b': -+ policy = SCHED_BATCH; -+ break; - case 'f': - policy = SCHED_FIFO; - break; diff --git a/util-linux-2.13-schedutils-man.patch b/util-linux-2.13-schedutils-man.patch deleted file mode 100644 index a5b7e31..0000000 --- a/util-linux-2.13-schedutils-man.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- util-linux-2.13-pre6/schedutils/taskset.1.kzak 2006-02-22 16:10:26.000000000 +0100 -+++ util-linux-2.13-pre6/schedutils/taskset.1 2006-02-22 16:10:38.000000000 +0100 -@@ -82,7 +82,7 @@ - .SH USAGE - .TP - The default behavior is to run a new command with a given affinity mask: --taskset [mask] -- [command] [arguments] -+taskset [mask] [command] [arguments] - .TP - You can also retrieve the CPU affinity of an existing task: - taskset -p [pid] ---- util-linux-2.13-pre6/schedutils/chrt.1.kzak 2006-02-22 16:09:02.000000000 +0100 -+++ util-linux-2.13-pre6/schedutils/chrt.1 2006-02-22 16:09:22.000000000 +0100 -@@ -72,7 +72,7 @@ - .SH USAGE - .TP - The default behavior is to run a new command:: --chrt [prio] -- [command] [arguments] -+chrt [prio] [command] [arguments] - .TP - You can also retrieve the real-time attributes of an existing task: - chrt -p [pid] diff --git a/util-linux-2.13-sfdisk-geo.patch b/util-linux-2.13-sfdisk-geo.patch deleted file mode 100644 index 52b5b9f..0000000 --- a/util-linux-2.13-sfdisk-geo.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- 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; diff --git a/util-linux-2.13-swap-page.patch b/util-linux-2.13-swap-page.patch deleted file mode 100644 index 797f646..0000000 --- a/util-linux-2.13-swap-page.patch +++ /dev/null @@ -1,68 +0,0 @@ ---- util-linux-2.13-pre6/disk-utils/mkswap.c.page 2006-06-12 17:30:57.000000000 +0200 -+++ util-linux-2.13-pre6/disk-utils/mkswap.c 2006-06-12 17:30:31.000000000 +0200 -@@ -53,17 +53,6 @@ - #include - #endif - --/* Try to get PAGE_SIZE from libc or kernel includes */ --#ifdef HAVE_SYS_USER_H -- /* Note: says: for gdb only */ --#include /* for PAGE_SIZE and PAGE_SHIFT */ --#else --#ifdef HAVE_ASM_PAGE_H --#include /* for PAGE_SIZE and PAGE_SHIFT */ -- /* we also get PAGE_SIZE via getpagesize() */ --#endif --#endif -- - #ifndef _IO - /* pre-1.3.45 */ - #define BLKGETSIZE 0x1260 -@@ -172,10 +161,6 @@ - - static void - init_signature_page(void) { -- --#ifdef PAGE_SIZE -- defined_pagesize = PAGE_SIZE; --#endif - kernel_pagesize = getpagesize(); - pagesize = kernel_pagesize; - ---- util-linux-2.13-pre6/configure.ac.page 2006-06-12 17:28:51.000000000 +0200 -+++ util-linux-2.13-pre6/configure.ac 2006-06-12 17:28:28.000000000 +0200 -@@ -26,7 +26,8 @@ - ]) - AC_CHECK_HEADERS(langinfo.h) - AC_CHECK_HEADERS(sys/user.h) --AC_CHECK_HEADERS(asm/page.h) -+# Suck ... -+#AC_CHECK_HEADERS(asm/page.h) - AC_CHECK_HEADERS(rpcsvc/nfs_prot.h) - AC_CHECK_HEADERS(sys/io.h) - AC_CHECK_HEADERS(pty.h) ---- util-linux-2.13-pre6/mount/swap.configure.page 2006-06-12 17:23:27.000000000 +0200 -+++ util-linux-2.13-pre6/mount/swap.configure 2006-06-12 17:25:28.000000000 +0200 -@@ -3,7 +3,7 @@ - - # Prepare test - CC=${CC-cc} --compile="$CC -o conftest conftest.c >/dev/null 2>&1" -+compile="$CC -o conftest conftest.c" - rm -f conftest conftest.c swapargs.h - - # What include files shall we try? -@@ -14,9 +14,10 @@ - PAGEH= - if [ -f /usr/include/sys/swap.h ]; then - SWAPH="#include " -- if [ -f /usr/include/asm/page.h ]; then -- PAGEH="#include " -- fi -+ # Suck ... -+ #if [ -f /usr/include/asm/page.h ]; then -+ # PAGEH="#include " -+ #fi - fi - echo $PAGEH > conftest.c - echo $SWAPH >> conftest.c diff --git a/util-linux-2.13-swapon-suspend.patch b/util-linux-2.13-swapon-suspend.patch deleted file mode 100644 index 6c716d2..0000000 --- a/util-linux-2.13-swapon-suspend.patch +++ /dev/null @@ -1,161 +0,0 @@ ---- util-linux-2.13-pre2/mount/swapon.c.swsuspend 2005-09-02 14:32:53.000000000 +0200 -+++ util-linux-2.13-pre2/mount/swapon.c 2005-09-02 16:29:43.000000000 +0200 -@@ -11,6 +11,9 @@ - #include - #include - #include -+#include -+#include -+#include - #include "xmalloc.h" - #include "swap_constants.h" - #include "swapargs.h" -@@ -22,6 +25,7 @@ - - #define _PATH_FSTAB "/etc/fstab" - #define PROC_SWAPS "/proc/swaps" -+#define PATH_MKSWAP "/sbin/mkswap" - - #define SWAPON_NEEDS_TWO_ARGS - -@@ -173,6 +177,84 @@ - return 0 ; - } - -+/* -+ * It's better do swsuspend detection by follow routine than -+ * include huge mount_guess_fstype.o to swapon. We need only -+ * swsuspend and no the others filesystems. -+ */ -+#ifdef HAVE_LIBBLKID -+static int -+swap_is_swsuspend(const char *device) { -+ const char *type = blkid_get_tag_value(blkid, "TYPE", device); -+ -+ if (type && strcmp(type, "swsuspend")==0) -+ return 0; -+ return 1; -+} -+#else -+static int -+swap_is_swsuspend(const char *device) { -+ int fd, re = 1, n = getpagesize() - 10; -+ char buf[10]; -+ -+ fd = open(device, O_RDONLY); -+ if (fd < 0) -+ return -1; -+ -+ if (lseek(fd, n, SEEK_SET) >= 0 && -+ read(fd, buf, sizeof buf) == sizeof buf && -+ (memcmp("S1SUSPEND", buf, 9)==0 || -+ memcmp("S2SUSPEND", buf, 9)==0)) -+ re = 0; -+ -+ close(fd); -+ return re; -+} -+#endif -+ -+/* calls mkswap */ -+static int -+swap_reinitialize(const char *device) { -+ const char *label = mount_get_volume_label_by_spec(device); -+ pid_t pid; -+ -+ switch((pid=fork())) { -+ case -1: /* fork error */ -+ fprintf(stderr, _("%s: cannot fork: %s\n"), -+ progname, strerror(errno)); -+ return -1; -+ -+ case 0: /* child */ -+ if (label && *label) -+ execl(PATH_MKSWAP, PATH_MKSWAP, "-L", label, device, NULL); -+ else -+ execl(PATH_MKSWAP, PATH_MKSWAP, device, NULL); -+ exit(1); /* error */ -+ -+ default: /* parent */ -+ { -+ int status; -+ int ret; -+ -+ do { -+ if ((ret = waitpid(pid, &status, 0)) < 0 -+ && errno == EINTR) -+ continue; -+ else if (ret < 0) { -+ fprintf(stderr, _("%s: waitpid: %s\n"), -+ progname, strerror(errno)); -+ return -1; -+ } -+ } while (0); -+ -+ /* mkswap returns: 0=suss, 1=error */ -+ if (WIFEXITED(status) && WEXITSTATUS(status)==0) -+ return 0; /* ok */ -+ } -+ } -+ return -1; /* error */ -+} -+ - static int - do_swapon(const char *orig_special, int prio) { - int status; -@@ -196,6 +278,18 @@ - return -1; - } - -+ /* We have to reinitialize swap with old (=useless) software suspend -+ * data. The problem is that if we don't do it, then we get data -+ * corruption the next time with suspended on. -+ */ -+ if (swap_is_swsuspend(special)==0) { -+ fprintf(stdout, _("%s: %s: software suspend data detected. " -+ "Reinitializing the swap.\n"), -+ progname, special); -+ if (swap_reinitialize(special) < 0) -+ return -1; -+ } -+ - /* people generally dislike this warning - now it is printed - only when `verbose' is set */ - if (verbose) { ---- util-linux-2.13-pre2/mount/get_label_uuid.c.swsuspend 2005-09-02 14:32:53.000000000 +0200 -+++ util-linux-2.13-pre2/mount/get_label_uuid.c 2005-09-02 16:21:20.000000000 +0200 -@@ -129,7 +129,24 @@ - } - return 0; - } -- -+ -+static int -+is_swsuspend_partition(int fd, char **label, char *uuid) { -+ int n = getpagesize(); -+ char *buf = xmalloc(n); -+ struct swap_header_v1_2 *p = (struct swap_header_v1_2 *) buf; -+ -+ if (lseek(fd, 0, SEEK_SET) == 0 -+ && read(fd, buf, n) == n -+ && (strncmp(buf+n-10, "S1SUSPEND", 9)==0 || -+ strncmp(buf+n-10, "S2SUSPEND", 9)==0) -+ && p->version == 1) { -+ store_uuid(uuid, p->uuid); -+ store_label(label, p->volume_name, 16); -+ return 1; -+ } -+ return 0; -+} - - /* - * Get both label and uuid. -@@ -162,6 +179,8 @@ - - if (is_v1_swap_partition(fd, label, uuid)) - goto done; -+ if (is_swsuspend_partition(fd, label, uuid)) -+ goto done; - - if (lseek(fd, 1024, SEEK_SET) == 1024 - && read(fd, (char *) &e2sb, sizeof(e2sb)) == sizeof(e2sb) diff --git a/util-linux-2.13-umount-sysfs.patch b/util-linux-2.13-umount-sysfs.patch deleted file mode 100644 index 5d92a9c..0000000 --- a/util-linux-2.13-umount-sysfs.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- util-linux-2.13-pre6/mount/umount.c.sysfs 2006-02-23 10:09:53.000000000 +0100 -+++ util-linux-2.13-pre6/mount/umount.c 2006-02-23 10:10:39.000000000 +0100 -@@ -734,7 +734,7 @@ - if (all) { - /* nodev stuff: sysfs, usbfs, oprofilefs, ... */ - if (types == NULL) -- types = "noproc,nodevfs,nodevpts"; -+ types = "noproc,nodevfs,nodevpts,nosysfs,rpc_pipefs"; - result = umount_all (types, test_opts); - } else if (argc < 1) { - usage (stderr, 2); diff --git a/util-linux.spec b/util-linux.spec deleted file mode 100644 index 0fe8803..0000000 --- a/util-linux.spec +++ /dev/null @@ -1,2035 +0,0 @@ -# Rules for hacking: -# - when adding patches, please make sure that it is easy to find out what bug ID -# patch fixes. Tip: cut&past bug title with bug ID from bugzilla. -# -# Notes: -# - upstream maintainer Adrian Bunk - -### Header -Summary: A collection of basic system utilities. -Name: util-linux -Version: 2.13 -Release: 0.55%{?dist} -License: distributable -Group: System Environment/Base - -### Features -%if 0%{?rhel} -%define include_raw 1 -%else -%define include_raw 0 -%endif - -### Macros -%define floppyver 0.12 -%define no_hwclock_archs s390 s390x -%define cytune_archs %{ix86} alpha armv4l - -### Paths -BuildRoot: %{_tmppath}/%{name}-root -# see build section for _prefix - -### Dependences -BuildRequires: audit-libs-devel >= 1.0.6 -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: e2fsprogs-devel >= 1.36 -BuildRequires: gettext-devel -BuildRequires: libselinux-devel -# ncurses is the right way now [kzak, 12/14/2006] -#BuildRequires: libtermcap-devel -BuildRequires: ncurses-devel -BuildRequires: pam-devel -BuildRequires: sed -BuildRequires: slang-devel -BuildRequires: texinfo -BuildRequires: zlib-devel - -### Sources -# TODO [stable]: s/2.13-pre7/%{version}/ -Source0: ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/util-linux-2.13-pre7.tar.bz2 -Source1: util-linux-login.pamd -Source2: util-linux-remote.pamd -Source3: util-linux-chsh-chfn.pamd -Source4: util-linux-60-raw.rules -Source8: nologin.c -Source9: nologin.8 -Source11: http://download.sourceforge.net/floppyutil/floppy-%{floppyver}.tar.gz - -### Obsoletes & Conflicts & Provides -Obsoletes: fdisk tunelp mount losetup schedutils -%ifarch alpha sparc sparc64 sparcv9 s390 -Obsoletes: clock -%endif -%ifarch alpha -Conflicts: initscripts <= 4.58, timeconfig <= 3.0.1 -%endif -Requires: pam >= 0.66-4, /etc/pam.d/system-auth -Requires: audit-libs >= 1.0.6 -Conflicts: kernel < 2.2.12-7, -Requires(preun): /sbin/install-info -Requires(post): /sbin/install-info -Requires(post): coreutils -%if %{include_raw} -Requires: udev -%endif -Requires: ConsoleKit-libs - -Provides: mount = %{version} -Provides: losetup = %{version} -Provides: schedutils - -### Patches -# let's use -ltermcap from the more command -Patch1: util-linux-2.13-moretc.patch -# Reduce MAX_PARTS to 16 (upstream reasonably won't take it) -Patch70: util-linux-2.12a-partlimit.patch -# Note on how to set up raw device mappings using RHL /etc/sysconfig/rawdevices -Patch109: util-linux-2.11f-rawman.patch - -Patch100: util-linux-2.12j-managed.patch - -Patch106: util-linux-2.12p-swaponsymlink-57300.patch -Patch107: util-linux-2.11y-procpartitions-37436.patch -Patch113: util-linux-2.13-ctty3.patch - -Patch120: util-linux-2.11y-skipraid2.patch -Patch126: util-linux-2.11y-multibyte.patch -Patch128: util-linux-2.12a-ipcs-84243-86285.patch - -Patch138: util-linux-2.11y-chsh-103004.patch -Patch139: util-linux-2.11y-fdisksegv-103954.patch - -Patch147: util-linux-2.12a-126572-fdiskman.patch -Patch150: floppy-0.12-locale.patch - -Patch151: util-linux-2.12a-mountbylabel-dm.patch -Patch153: util-linux-2.12a-16415-rdevman.patch - -# Patch to enabled remote service for login/pam (#91174) -Patch157: util-linux-2.12a-pamstart.patch -# Patch to enable the pamconsole flag for restricting mounting to users at the console (#133941) -Patch159: util-linux-2.12j-pamconsole.patch -# Allow raw(8) to bind raw devices whose device nodes do not yet exist. -Patch160: raw-handle-nonpresent-devs.patch - -Patch164: util-linux-2.12j-113790-hotkeys.patch - -# Info about NFS4 -Patch170: util-linux-2.13-mount-man-nfs4.patch -# Makeing /var/log/lastlog (#151635) -Patch180: util-linux-2.12p-login-lastlog.patch -# Improved /etc/mtab lock (#143118) -Patch181: util-linux-2.12p-mtab-lock.patch -# Stupid typo (#151156) -Patch182: util-linux-2.12p-ipcs-typo.patch -# 154498 - util-linux login & pam session -Patch183: util-linux-2.12a-pamsession.patch -# 76467 - At boot time, fsck chokes on LVs listed by label in fstab -Patch185: util-linux-2.12p-lvm2dupes-76467.patch -# add note about ATAPI IDE floppy to fdformat.8 -Patch186: util-linux-2.12p-fdformat-ide.patch -# 145355 - Man pages for fstab and fstab-sync in conflict. -Patch187: util-linux-2.12p-fstab-man.patch -# 156597 - look - doesn't work with separators -Patch188: util-linux-2.12p-look-separator.patch -# 157656 - CRM 546998 : Possible bug in vipw, changes permissions of /etc/shadow -Patch189: util-linux-2.12p-vipw-perm.patch -# 159339 - util-linux updates for new audit system -Patch202: util-linux-2.13-audit-hwclock.patch -# 158737 - sfdisk warning for large partitions, gpt -Patch203: util-linux-2.13-fdisk-gpt.patch -# 150912 - Add ocfs2 support -Patch204: util-linux-2.12p-mount-ocfs2.patch -# NULL is better than zero at end of execl() -Patch205: util-linux-2.12p-execl.patch -# deprecated the arch command (for compatibility only) -Patch206: util-linux-2.13-arch.patch -# 165863 - swsusp swaps should be reinitialized -Patch210: util-linux-2.13-swapon-suspend.patch -# 170110 - Documentation for 'rsize' and 'wsize' NFS mount options is misleading -Patch211: util-linux-2.13-mount-man-nfs.patch -# 169628 - /usr/bin/floppy doesn't work with /dev/fd0 -Patch212: util-linux-2.12p-floppy-generic.patch -# 168436 - login will attempt to run if it has no read/write access to its terminal -# 168434 - login's timeout can fail - needs to call siginterrupt(SIGALRM,1) -Patch213: util-linux-2.13-login-hang.patch -# 165253 - losetup missing option -a [new feature] -Patch214: util-linux-2.13-losetup-all.patch -# 170564 - add audit message to login -Patch215: util-linux-2.13-audit-login.patch -# 170171 - ipcs -lm always report "max total shared memory (kbytes) = 0" -Patch216: util-linux-2.13-ipcs-shmax.patch -# 171337 - mkfs.cramfs dies creating installer image -Patch217: util-linux-2.13-cramfs-maxentries.patch -# [also 171337] - mkfs.cramfs doesn't work correctly with empty files -Patch218: util-linux-2.13-cramfs-zerofiles.patch -# 172203 - mount man page in RHEL4 lacks any info on cifs mount options -Patch219: util-linux-2.12a-mount-man-cifs.patch -# better wide chars usage in the cal command (based on the old 'moremisc' patch) -Patch220: util-linux-2.12p-cal-wide.patch -# 176441: col truncates data -Patch221: util-linux-2.12p-col-EILSEQ.patch -# 174111 - mount allows loopback devices to be mounted more than once to the same mount point -Patch222: util-linux-2.13-mount-twiceloop.patch -# nobug - add --rmpart N and --rmparts -Patch223: util-linux-2.13-rmparts.patch -# 181782 - mkswap should automatically add selinux label to swapfile -Patch224: util-linux-2.13-mkswap-selinux.patch -# 181896 - broken example in man pages -Patch225: util-linux-2.13-schedutils-man.patch -# 177331 - login omits pam_acct_mgmt & pam_chauthtok when authentication is skipped. -Patch226: util-linux-2.13-login-pam-acct.patch -# 177523 - umount -a should not unmount sysfs -Patch227: util-linux-2.13-umount-sysfs.patch -# 187014 - umount segfaults for normal user -Patch233: util-linux-2.13-mount-uuid.patch -# 183446 - cal not UTF-8-aware -Patch234: util-linux-2.13-cal-wide.patch -# 186915 - mount does not translate SELIinux context options though libselinux -# 185500 - Need man page entry for -o context= mount option -# 211827 - Can't mount with additional contexts -Patch235: util-linux-2.13-mount-context.patch -# 152579 - missing info about /etc/mtab and /proc/mounts mismatch -# 183890 - missing info about possible ioctl() and fcntl() problems on NFS filesystem -Patch236: util-linux-2.13-mount-man-bugs.patch -# Keep gcc happy -Patch237: util-linux-2.13-hexdump-gcc.patch -# 191230 - using mount --move results in wrong data in /etc/mtab -Patch238: util-linux-2.13-mount-move.patch -# Subtrees support -Patch239: util-linux-2.13-mount-subtree.patch -# wrong number of sectors for large disks (suse#160822) -Patch240: util-linux-2.13-fdisk-sectors.patch -# 182553 - fdisk -l inside xen guest shows no disks -# 188981 - "sfdisk -l" tries to open partitions -Patch241: util-linux-2.13-fdisk-isfull.patch -# 181549 - raw(8) manpage has old information about dd -Patch242: util-linux-2.12a-raw-man-dd.patch -# Don't use asm/page.h -Patch243: util-linux-2.13-swap-page.patch -# IPv6 support to login command -Patch245: util-linux-2.13-login-ipv6.patch -# 176494 - last -i returns strange IP addresses -Patch247: util-linux-2.13-login-timeval.patch -# 199745 - Non-existant simpleinit(8) mentioned in ctrlaltdel(8) -Patch248: util-linux-2.13-ctrlaltdel-man.patch -# 205038 - mount not allowing sloppy option -Patch249: util-linux-2.13-mount-sloppy.patch -# 188193 - util-linux should provide plugin infrastructure for HAL -Patch250: util-linux-2.13-mount-uhelper.patch -# Removes obsolete NFS code (we use /sbin/[u]mount.nfs[4] from nfs-utils) -Patch251: util-linux-2.13-mount-nonfs.patch -# Losetup.8 update -- add info about dm-crypt -Patch252: util-linux-2.13-losetup-deprecated.patch -# 208634 - mkswap "works" without warning on a mounted device -Patch253: util-linux-2.13-mkswap-mounted.patch -# 213127 - mount --make-unbindable does not work -Patch254: util-linux-2.13-mount-comment.patch -# 211749 - add -r option to losetup to create a read-only loop -Patch255: util-linux-2.13-losetup-rdonly.patch -# 216489 - SCHED_BATCH option missing in chrt -Patch256: util-linux-2.13-schedutils-SCHED_BATCH.patch -# 216712 - issues with raw device support ("raw0" is wrong device name) -Patch257: util-linux-2.13-raw-raw0.patch -# 217186 - /bin/sh: @MKINSTALLDIRS@: No such file or directory -Patch258: util-linux-2.13-mkdir_p.patch -# 218915 - fdisk -b 4K -Patch259: util-linux-2.13-fdisk-b-4096.patch -# leaking file descriptor -Patch260: util-linux-2.13-more-CLOEXEC.patch -# 217240 - namei ignores non-directory components instead of saying "Not a directory" -# 217241 - namei enforces symlink limits inconsistently -Patch261: util-linux-2.13-namei-logic.patch -# 222293 - undocumented partx,addpart, delpart -Patch262: util-linux-2.13-partx-man.patch -# 150493 - hwclock --systohc sets clock 0.5 seconds slow -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 -# 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 -utilities that are necessary for a Linux system to function. Among -others, Util-linux contains the fdisk configuration tool and the login -program. - -%prep -# TODO [stable]: remove -n -%setup -q -a 11 -n util-linux-2.13-pre7 - -# ncurses vs. termcap for the more command -#%patch1 -p1 - - -%patch70 -p1 -# nologin -cp %{SOURCE8} %{SOURCE9} . -%patch100 -p1 -%patch106 -p1 -%patch107 -p1 -%patch109 -p1 -%patch113 -p1 -%patch120 -p1 -%patch126 -p1 -%patch128 -p1 -%patch138 -p1 -%patch139 -p1 -%patch147 -p1 -%patch150 -p0 -%patch151 -p1 -%patch153 -p1 -%patch157 -p1 -%patch159 -p1 -%patch160 -p1 -%patch164 -p1 -%patch170 -p1 -%patch180 -p1 -%patch181 -p1 -%patch182 -p1 -%patch183 -p1 -%patch185 -p1 -%patch186 -p1 -%patch187 -p1 -%patch188 -p1 -%patch189 -p1 -%patch202 -p1 -%patch203 -p1 -%patch204 -p1 -%patch205 -p1 -%patch206 -p1 -%patch210 -p1 -%patch211 -p1 -%patch212 -p1 -%patch213 -p1 -%patch214 -p1 -%patch215 -p1 -%patch216 -p1 -%patch217 -p1 -%patch218 -p1 -%patch219 -p1 -%patch220 -p1 -%patch221 -p1 -%patch222 -p1 -%patch223 -p1 -%patch224 -p1 -%patch225 -p1 -%patch226 -p1 -%patch227 -p1 -%patch233 -p1 -%patch234 -p1 -%patch235 -p1 -%patch236 -p1 -%patch237 -p1 -%patch238 -p1 -%patch239 -p1 -%patch240 -p1 -%patch241 -p1 -%patch242 -p1 -%patch243 -p1 -%patch245 -p1 -%patch247 -p1 -%patch248 -p1 -%patch249 -p1 -%patch250 -p1 -%patch251 -p1 -%patch252 -p1 -%patch253 -p1 -%patch254 -p1 -%patch255 -p1 -%patch256 -p1 -%patch257 -p1 -%patch258 -p1 -%patch259 -p1 -%patch260 -p1 -%patch261 -p1 -%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 || : - -# rebuild build system -aclocal -automake -a -autoconf - -# CFLAGS -%define make_cflags -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 - -# note: we install to /bin and /usr/bin, so there's $bindir and $usrbindir in -# util-linux build system. It's better follow package build-system than rpm -# macros (where is prefix=/usr) -%define _prefix "" - -# configure -# note: we disable tty group (USE_TTY_GROUP) in Makefiles to prevent call chgrp -# during the "make install". But we define -DUSE_TTY_GROUP that enable tty groups in -# *.c files only. -export CFLAGS="%{make_cflags} -DUSE_TTY_GROUP $RPM_OPT_FLAGS" -%configure \ - --disable-wall \ - --disable-use-tty-group \ - --enable-partx \ - --enable-login-utils \ - --enable-kill \ - --enable-write \ -%if %{include_raw} - --enable-raw \ -%endif - --enable-rdev - -# reset to original -%define _prefix /usr - -# build util-linux -make %{?_smp_mflags} - -# build floppy stuff -pushd floppy-%{floppyver} -# We have to disable floppygtk somehow... -%configure --with-gtk-prefix=/asfd/jkl -make %{?_smp_mflags} -popd - -# build nologin -gcc $RPM_OPT_FLAGS -o nologin nologin.c - -# build docs -pushd sys-utils - makeinfo --number-sections ipc.texi -popd - -%install -rm -rf ${RPM_BUILD_ROOT} -mkdir -p ${RPM_BUILD_ROOT}/{bin,sbin} -mkdir -p ${RPM_BUILD_ROOT}%{_bindir} -mkdir -p ${RPM_BUILD_ROOT}%{_infodir} -mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man{1,6,8,5} -mkdir -p ${RPM_BUILD_ROOT}%{_sbindir} -mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/{pam.d,security/console.apps} -mkdir -p %{buildroot}/var/log -touch %{buildroot}/var/log/lastlog -chmod 0644 %{buildroot}/var/log/lastlog - -# install util-linux -make install DESTDIR=${RPM_BUILD_ROOT} - -# inslall floppy stuff -pushd floppy-%{floppyver} -%makeinstall -popd - -# install no login -install -m 755 nologin ${RPM_BUILD_ROOT}/sbin -install -m 644 nologin.8 ${RPM_BUILD_ROOT}%{_mandir}/man8 - -%if %{include_raw} -echo '.so man8/raw.8' > $RPM_BUILD_ROOT%{_mandir}/man8/rawdevices.8 -{ - # see RH bugzilla #216664 - mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/udev/rules.d - pushd ${RPM_BUILD_ROOT}%{_sysconfdir}/udev/rules.d - install -m 644 %{SOURCE4} ./60-raw.rules - popd -} -%endif - -# Correct mail spool path. -sed -e 's,/usr/spool/mail,/var/spool/mail,g' ${RPM_BUILD_ROOT}%{_mandir}/man1/login.1 > ${RPM_BUILD_ROOT}%{_mandir}/man1/login.1.new -mv ${RPM_BUILD_ROOT}%{_mandir}/man1/login.1.new ${RPM_BUILD_ROOT}%{_mandir}/man1/login.1 - -if [ "%{_infodir}" != "%{_prefix}/info" -a -d ${RPM_BUILD_ROOT}%{_prefix}/info ]; then - ( cd ${RPM_BUILD_ROOT}%{_prefix}/info; tar cf - ./* ) | - ( cd ${RPM_BUILD_ROOT}%{_infodir}; tar xf - ) - ( cd ${RPM_BUILD_ROOT}%{_prefix}; rm -rf ./info ) -fi - -%ifarch sparc sparc64 sparcv9 -rm -rf ${RPM_BUILD_ROOT}%{_bindir}/sunhostid -cat << E-O-F > ${RPM_BUILD_ROOT}%{_bindir}/sunhostid -#!/bin/sh -# this should be %{_bindir}/sunhostid or somesuch. -# Copyright 1999 Peter Jones, . -# GPL and all that good stuff apply. -( -idprom=\`cat /proc/openprom/idprom\` -echo \$idprom|dd bs=1 skip=2 count=2 -echo \$idprom|dd bs=1 skip=27 count=6 -echo -) 2>/dev/null -E-O-F -chmod 755 ${RPM_BUILD_ROOT}%{_bindir}/sunhostid -%endif - -gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/ipc.info - -# PAM settings -{ - pushd ${RPM_BUILD_ROOT}%{_sysconfdir}/pam.d - install -m 644 %{SOURCE1} ./login - install -m 644 %{SOURCE2} ./remote - install -m 644 %{SOURCE3} ./chsh - install -m 644 %{SOURCE3} ./chfn - popd -} - -ln -sf ../../sbin/hwclock ${RPM_BUILD_ROOT}/usr/sbin/hwclock -ln -sf hwclock ${RPM_BUILD_ROOT}/sbin/clock - - -# Final cleanup -%ifnarch %cytune_archs -rm -f $RPM_BUILD_ROOT%{_bindir}/cytune $RPM_BUILD_ROOT%{_mandir}/man8/cytune.8* -%endif -%ifarch %no_hwclock_archs -rm -f $RPM_BUILD_ROOT/sbin/{hwclock,clock} $RPM_BUILD_ROOT%{_mandir}/man8/hwclock.8* $RPM_BUILD_ROOT/usr/sbin/{hwclock,clock} -%endif -%ifarch s390 s390x -rm -f $RPM_BUILD_ROOT/usr/{bin,sbin}/{fdformat,tunelp,floppy} $RPM_BUILD_ROOT%{_mandir}/man8/{fdformat,tunelp,floppy}.8* -%endif - -# deprecated commands -for I in /sbin/cfdisk /sbin/fsck.minix /sbin/mkfs.{bfs,minix} /sbin/sln \ - /usr/bin/chkdupexe %{_bindir}/line %{_bindir}/pg %{_bindir}/newgrp \ - /sbin/shutdown %{_bindir}/wall %{_bindir}/scriptreplay; do - rm -f $RPM_BUILD_ROOT$I -done - -# deprecated man pages -for I in man1/chkdupexe.1 man1/line.1 man1/pg.1 man1/newgrp.1 man8/cfdisk.8 \ - man8/fsck.minix.8 man8/mkfs.minix.8 man8/mkfs.bfs.8 man1/wall.1; do - rm -rf $RPM_BUILD_ROOT%{_mandir}/${I}* -done - -# deprecated docs -for I in fdisk/README.cfdisk text-utils/README.pg text-utils/README.reset; do - rm -rf $I -done - -# we install getopt/getopt-*.{bash,tcsh} as doc files -# note: versions <=2.12 use path "%{_datadir}/misc/getopt/*" -chmod 644 getopt/getopt-*.{bash,tcsh} -rm -f ${RPM_BUILD_ROOT}%{_datadir}/getopt/* -rmdir ${RPM_BUILD_ROOT}%{_datadir}/getopt - -ln -sf ../../bin/kill $RPM_BUILD_ROOT%{_bindir}/kill - -# /bin -> /sbin -for I in pivot_root losetup swapon swapoff; do - if [ -e $RPM_BUILD_ROOT/bin/$I -o -h $RPM_BUILD_ROOT/bin/$I ]; then - mv $RPM_BUILD_ROOT/bin/$I $RPM_BUILD_ROOT/sbin/$I - fi -done - -# /usr/sbin -> /sbin -for I in addpart delpart partx; do - if [ -e $RPM_BUILD_ROOT/usr/sbin/$I ]; then - mv $RPM_BUILD_ROOT/usr/sbin/$I $RPM_BUILD_ROOT/sbin/$I - fi -done - -# /usr/bin -> /bin -for I in taskset raw; do - if [ -e $RPM_BUILD_ROOT/usr/bin/$I ]; then - mv $RPM_BUILD_ROOT/usr/bin/$I $RPM_BUILD_ROOT/bin/$I - fi -done - -# omit info/dir file -rm -f ${RPM_BUILD_ROOT}%{_infodir}/dir - -%find_lang %{name} - -%clean -[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} - -%post -/sbin/install-info %{_infodir}/ipc.info* %{_infodir}/dir -# only for minimal buildroots without /var/log -[ -d /var/log ] || /bin/mkdir -p /var/log -/bin/touch /var/log/lastlog -/bin/chown root:root /var/log/lastlog -/bin/chmod 0644 /var/log/lastlog -# Fix the file context, do not use restorecon -if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then - SECXT=$( /usr/sbin/matchpathcon -n /var/log/lastlog 2> /dev/null ) - if [ -n "$SECXT" ]; then - # Selinux enabled, but without policy? It's true for buildroots - # without selinux stuff on host machine with enabled selinux. - # We don't want to use any RPM dependence on selinux policy for - # matchpathcon(2). SELinux policy should be optional. - /usr/bin/chcon "$SECXT" /var/log/lastlog >/dev/null 2>&1 - fi -fi - -%preun -if [ "$1" = 0 ]; then - /sbin/install-info --del %{_infodir}/ipc.info* %{_infodir}/dir -fi -exit 0 - -%files -f %{name}.lang -%defattr(-,root,root) -%doc */README.* NEWS AUTHORS -%doc getopt/getopt-*.{bash,tcsh} - -/bin/arch -/bin/dmesg -%attr(755,root,root) /bin/login -/bin/more -/bin/kill -/bin/taskset -%if %{include_raw} -/bin/raw -%config %{_sysconfdir}/udev/rules.d/60-raw.rules -%endif - -%config %{_sysconfdir}/pam.d/chfn -%config %{_sysconfdir}/pam.d/chsh -%config %{_sysconfdir}/pam.d/login -%config %{_sysconfdir}/pam.d/remote - -/sbin/agetty -%{_mandir}/man8/agetty.8* -/sbin/blockdev -/sbin/pivot_root -/sbin/ctrlaltdel -/sbin/addpart -/sbin/delpart -/sbin/partx -%{_mandir}/man8/partx.8* -%{_mandir}/man8/addpart.8* -%{_mandir}/man8/delpart.8* - -/sbin/sfdisk -%{_mandir}/man8/sfdisk.8* -%doc fdisk/sfdisk.examples - -/sbin/fdisk -%{_mandir}/man8/fdisk.8* -%ifnarch %no_hwclock_archs -/sbin/clock -/sbin/hwclock -/usr/sbin/hwclock -%{_mandir}/man8/hwclock.8* -%endif -/sbin/mkfs -/sbin/mkswap -/sbin/nologin -%{_mandir}/man8/nologin.8* -%ghost %attr(0644,root,root) %verify(not md5 size mtime) /var/log/lastlog - -%{_bindir}/chrt -%{_bindir}/ionice - -%{_bindir}/cal -%attr(4711,root,root) %{_bindir}/chfn -%attr(4711,root,root) %{_bindir}/chsh -%{_bindir}/col -%{_bindir}/colcrt -%{_bindir}/colrm -%{_bindir}/column -%ifarch %cytune_archs -%{_bindir}/cytune -%{_mandir}/man8/cytune.8* -%endif -%{_bindir}/ddate -%ifnarch s390 s390x -%{_bindir}/fdformat -%endif -%{_bindir}/flock -%{_bindir}/getopt -%{_bindir}/hexdump -%{_bindir}/ipcrm -%{_bindir}/ipcs -%{_bindir}/isosize -%{_bindir}/kill -%{_bindir}/logger -%{_bindir}/look -%{_bindir}/mcookie -/sbin/fsck.cramfs -/sbin/mkfs.cramfs -%ifnarch s390 s390x -%{_bindir}/floppy -%{_mandir}/man8/floppy.8* -%endif -%{_bindir}/namei -%{_bindir}/rename -%{_bindir}/renice -%{_bindir}/rev -%{_bindir}/script -%{_bindir}/setsid -%{_bindir}/setterm -%ifarch sparc sparc64 sparcv9 -%{_bindir}/sunhostid -%endif -%{_bindir}/tailf -%{_bindir}/ul -%{_bindir}/whereis -%attr(2755,root,tty) %{_bindir}/write - -%ifarch %{ix86} -%{_sbindir}/rdev -%{_sbindir}/ramsize -%{_sbindir}/rootflags -%{_sbindir}/vidmode -%{_mandir}/man8/rdev.8* -%{_mandir}/man8/ramsize.8* -%{_mandir}/man8/rootflags.8* -%{_mandir}/man8/vidmode.8* -%endif -%{_sbindir}/readprofile -%ifnarch s390 s390x -%{_sbindir}/tunelp -%endif -%{_sbindir}/vipw -%{_sbindir}/vigr - -%{_infodir}/ipc.info* - -%{_mandir}/man1/arch.1* -%{_mandir}/man1/cal.1* -%{_mandir}/man1/chfn.1* -%{_mandir}/man1/chsh.1* -%{_mandir}/man1/col.1* -%{_mandir}/man1/colcrt.1* -%{_mandir}/man1/colrm.1* -%{_mandir}/man1/column.1* -%{_mandir}/man1/ddate.1* -%{_mandir}/man1/flock.1* -%{_mandir}/man1/getopt.1* -%{_mandir}/man1/hexdump.1* -%{_mandir}/man1/kill.1* -%{_mandir}/man1/logger.1* -%{_mandir}/man1/login.1* -%{_mandir}/man1/look.1* -%{_mandir}/man1/mcookie.1* -%{_mandir}/man1/more.1* -%{_mandir}/man1/namei.1* -%{_mandir}/man1/readprofile.1* -%{_mandir}/man1/rename.1* -%{_mandir}/man1/rev.1* -%{_mandir}/man1/script.1* -%{_mandir}/man1/setterm.1* -%{_mandir}/man1/tailf.1* -%{_mandir}/man1/ul.1* -%{_mandir}/man1/whereis.1* -%{_mandir}/man1/write.1* - -%{_mandir}/man1/chrt.1* -%{_mandir}/man1/ionice.1* -%{_mandir}/man1/taskset.1* - -%{_mandir}/man8/blockdev.8* -%{_mandir}/man8/ctrlaltdel.8* -%{_mandir}/man8/dmesg.8* -%ifnarch s390 s390x -%{_mandir}/man8/fdformat.8* -%endif -%{_mandir}/man8/ipcrm.8* -%{_mandir}/man8/ipcs.8* -%{_mandir}/man8/isosize.8* -%{_mandir}/man8/mkfs.8* -%{_mandir}/man8/mkswap.8* -%{_mandir}/man8/pivot_root.8* -%if %{include_raw} -%{_mandir}/man8/raw.8* -%{_mandir}/man8/rawdevices.8* -%endif -%{_mandir}/man8/renice.8* -%{_mandir}/man8/setsid.8* -%ifnarch s390 s390x -%{_mandir}/man8/tunelp.8* -%endif -%{_mandir}/man8/vigr.8* -%{_mandir}/man8/vipw.8* - -%attr(4755,root,root) /bin/mount -%attr(4755,root,root) /bin/umount -/sbin/swapon -/sbin/swapoff -%{_mandir}/man5/fstab.5* -%{_mandir}/man8/mount.8* -%{_mandir}/man8/swapoff.8* -%{_mandir}/man8/swapon.8* -%{_mandir}/man8/umount.8* -%{_mandir}/man8/losetup.8* -/sbin/losetup - -%changelog -* Wed Aug 8 2007 Karel Zak 2.13-0.55 -- rebuild F7 package to F8 - -* Wed Aug 8 2007 Karel Zak 2.13-0.54 -- backport mount relatime patch - -* Thu Aug 2 2007 Karel Zak 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 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 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. - (added rpc_pipefs to util-linux-2.13-umount-sysfs.patch) -- fix #227903 - mount -f does not work with NFS-mounted - -* Sat Mar 3 2007 David Zeuthen 2.13-0.50 -- include ConsoleKit session module by default (#229172) - -* Thu Jan 11 2007 Karel Zak 2.13-0.49 -- fix #222293 - undocumented partx,addpart, delpart - -* Sun Dec 17 2006 Karel Zak 2.13-0.48 -- fix paths in po/Makefile.in.in - -* Fri Dec 15 2006 Karel Zak 2.13-0.47 -- fix #217240 - namei ignores non-directory components instead of saying "Not a directory" -- fix #217241 - namei enforces symlink limits inconsistently - -* Wed Dec 14 2006 Karel Zak 2.13-0.46 -- fix leaking file descriptor in the more command (patch by Steve Grubb) - -* Wed Dec 13 2006 Karel Zak 2.13-0.45 -- use ncurses only -- fix #218915 - fdisk -b 4K -- upgrade to -pre7 release -- fix building problem with raw0 patch -- fix #217186 - /bin/sh: @MKINSTALLDIRS@: No such file or directory - (port po/Makefile.in.in from gettext-0.16) -- sync with FC6 and RHEL5: -- fix #216489 - SCHED_BATCH option missing in chrt -- fix #216712 - issues with raw device support ("raw0" is wrong device name) -- fix #216760 - mount with context or fscontext option fails - (temporarily disabled the support for additional contexts -- not supported by kernel yet) -- fix #211827 - Can't mount with additional contexts -- fix #213127 - mount --make-unbindable does not work -- fix #211749 - add -r option to losetup to create a read-only loop - -* Thu Oct 12 2006 Karel Zak 2.13-0.44 -- fix #209911 - losetup.8 updated (use dm-crypt rather than deprecated cryptoloop) -- fix #210338 - spurious error from '/bin/login -h $PHONENUMBER' (bug in IPv6 patch) -- fix #208634 - mkswap "works" without warning on a mounted device - -* Sun Oct 01 2006 Jesse Keating - 2.13-0.43 -- rebuilt for unwind info generation, broken in gcc-4.1.1-21 - -* Wed Sep 20 2006 Karel Zak 2.13-0.42 -- remove obsolete NFS code and patches (we use /sbin/mount.nfs - and /sbin/umount.nfs from nfs-utils now) -- move nfs.5 to nfs-utils - -* Fri Sep 15 2006 Karel Zak 2.13-0.41 -- fix #205038 - mount not allowing sloppy option (exports "-s" - to external /sbin/mount.nfs(4) calls) -- fix minor bug in util-linux-2.13-mount-twiceloop.patch -- fix #188193- util-linux should provide plugin infrastructure for HAL - -* Mon Aug 21 2006 Karel Zak 2.13-0.40 -- fix Makefile.am in util-linux-2.13-mount-context.patch -- fix #201343 - pam_securetty requires known user to work - (split PAM login configuration to two files) -- fix #203358 - change location of taskset binary to allow for early affinity work - -* Fri Aug 11 2006 Karel Zak 2.13-0.39 -- fix #199745 - non-existant simpleinit(8) mentioned in ctrlaltdel(8) - -* Thu Aug 10 2006 Dan Walsh 2.13-0.38 -- Change keycreate line to happen after pam_selinux open call so it gets correct context - -* Thu Aug 10 2006 Karel Zak 2.13-0.37 -- fix #176494 - last -i returns strange IP addresses (patch by Bill Nottingham) - -* Thu Jul 27 2006 Karel Zak 2.13-0.36 -- fix #198300, #199557 - util-linux "post" scriptlet failure - -* Thu Jul 27 2006 Steve Dickson 2.13-0.35 -- Added the -o fsc flag to nfsmount. - -* Wed Jul 26 2006 Karel Zak 2.13-0.34 -- rebuild - -* Tue Jul 18 2006 Karel Zak 2.13-0.33 -- add Requires(post): libselinux - -* Mon Jul 17 2006 Karel Zak 2.13-0.32 -- add IPv6 support to the login command (patch by Milan Zazrivec) -- fix #198626 - add keyinit instructions to the login PAM script - (patch by David Howells) - -* Wed Jul 12 2006 Jesse Keating - 2.13-0.31.1 -- rebuild - -* Tue Jul 11 2006 Karel Zak 2.13-0.31 -- cleanup dependences for post and preun scriptlets - -* Mon Jul 10 2006 Karsten Hopp 2.13-0.30 -- silence install in minimal buildroot without /var/log - -* Fri Jul 7 2006 Karel Zak 2.13-0.29 -- include the raw command for RHELs - -* Mon Jun 26 2006 Florian La Roche 2.13-0.28 -- move install-info parts from postun to preun - -* Wed Jun 21 2006 Dan Walsh 2.13-0.27 -- Only execute chcon on machines with selinux enabled - -* Wed Jun 14 2006 Steve Dickson 2.13-0.26 -- Remove unneeded header files from nfsmount.c - -* Mon Jun 12 2006 Karel Zak 2.13-0.25 -- fix #187014 - umount segfaults for normal user -- fix #183446 - cal not UTF-8-aware -- fix #186915 - mount does not translate SELIinux context options though libselinux -- fix #185500 - Need man page entry for -o context= mount option -- fix #152579 - missing info about /etc/mtab and /proc/mounts mismatch -- fix #183890 - missing info about possible ioctl() and fcntl() problems on NFS filesystem -- fix #191230 - using mount --move results in wrong data in /etc/mtab -- added mount subtrees support -- fdisk: wrong number of sectors for large disks (suse#160822) -- merge fdisk-xvd (#182553) with new fdisk-isfull (#188981) patch -- fix #181549 - raw(8) manpage has old information about dd -- remove asm/page.h usage - -* Wed May 24 2006 Dan Walsh 2.13-0.24 -- Remove requirement on restorecon, since we can do the same thing -- with chcon/matchpathcon, and not add requirement on policycoreutils - -* Wed May 24 2006 Steve Dickson 2.13-0.23 -- Fixed bug in patch for bz183713 which cause nfs4 mounts to fail. - -* Tue May 2 2006 Steve Dickson 2.13-0.22 -- Added syslog logging to background mounts as suggested - by a customer. - -* Mon May 1 2006 Steve Dickson 2.13-0.21 -- fix #183713 - foreground mounts are not retrying as advertised -- fix #151549 - Added 'noacl' mount flag -- fix #169042 - Changed nfsmount to try udp before using tcp when rpc-ing - the remote rpc.mountd (iff -o tcp is not specified). - This drastically increases the total number of tcp mounts - that can happen at once (ala autofs). - -* Wed Mar 9 2006 Jesse Keating 2.13-0.20 -- Better calling of restorecon as suggested by Bill Nottingham -- prereq restorecon to avoid ordering issues - -* Wed Mar 9 2006 Jesse Keating 2.13-0.19 -- restorecon /var/log/lastlog - -* Wed Mar 8 2006 Karel Zak 2.13-0.17 -- fix #181782 - mkswap selinux relabeling (fix util-linux-2.13-mkswap-selinux.patch) - -* Wed Feb 22 2006 Karel Zak 2.13-0.16 -- fix #181782 - mkswap should automatically add selinux label to swapfile -- fix #180730 - col is exiting with 1 (fix util-linux-2.12p-col-EILSEQ.patch) -- fix #181896 - broken example in schedutils man pages -- fix #177331 - login omits pam_acct_mgmt & pam_chauthtok when authentication is skipped. -- fix #177523 - umount -a should not unmount sysfs -- fix #182553 - fdisk -l inside xen guest shows no disks - -* Fri Feb 10 2006 Jesse Keating - 2.13-0.15.1 -- bump again for double-long bug on ppc(64) - -* Wed Feb 8 2006 Peter Jones 2.13-0.15 -- add "blockdev --rmpart N " and "blockdev --rmparts " - -* Tue Feb 07 2006 Jesse Keating - 2.13-0.14.1 -- rebuilt for new gcc4.1 snapshot and glibc changes - -* Thu Jan 19 2006 Steve Dickson 2.13-0.14 -- Updated the gssd_check() and idmapd_check(), used with - nfsv4 mounts, to looked for the correct file in /var/lock/subsys - which stops bogus warnings. - -* Tue Jan 3 2006 Karel Zak 2.13-0.13 -- fix #174676 - hwclock audit return code mismatch -- fix #176441: col truncates data -- fix #174111 - mount allows loopback devices to be mounted more than once to the same mount point -- better wide chars usage in the cal command (based on the old 'moremisc' patch) - -* Mon Dec 12 2005 Karel Zak 2.13-0.12 -- rebuilt - -* Fri Dec 09 2005 Jesse Keating -- rebuilt - -* Fri Nov 25 2005 Karel Zak 2.13-0.11.pre6 -- update to upstream version 2.13-pre6 -- fix #172203 - mount man page in RHEL4 lacks any info on cifs mount options - -* Mon Nov 7 2005 Karel Zak 2.13-0.10.pre5 -- fix #171337 - mkfs.cramfs doesn't work correctly with empty files - -* Fri Oct 28 2005 Karel Zak 2.13-0.9.pre5 -- rebuild - -* Wed Oct 26 2005 Karel Zak 2.13-0.8.pre5 -- updated version of the patch for hwclock audit - -* Thu Oct 20 2005 Karel Zak 2.13-0.7.pre5 -- fix #171337 - mkfs.cramfs dies creating installer image - -* Thu Oct 20 2005 Karel Zak 2.13-0.6.pre5 -- update to upstream 2.13pre5 -- remove separated cramfs1.1 (already in upstream package) -- remove odd symlink /usr/bin/mkcramfs -> ../../sbin/mkfs.cramfs -- fix #170171 - ipcs -lm always report "max total shared memory (kbytes) = 0" - -* Mon Oct 17 2005 Karel Zak 2.13-0.5.pre4 -* fix #170564 - add audit message to login - -* Fri Oct 7 2005 Karel Zak 2.13-0.4.pre4 -- fix #169628 - /usr/bin/floppy doesn't work with /dev/fd0 -- fix #168436 - login will attempt to run if it has no read/write access to its terminal -- fix #168434 - login's timeout can fail - needs to call siginterrupt(SIGALRM,1) -- fix #165253 - losetup missing option -a [new feature] -- update PAM files (replace pam_stack with new "include" PAM directive) -- remove kbdrate from src.rpm -- update to 2.13pre4 - -* Fri Oct 7 2005 Steve Dickson 2.13-0.3.pre3 -- fix #170110 - Documentation for 'rsize' and 'wsize' NFS mount options - is misleading - -* Fri Sep 2 2005 Karel Zak 2.13-0.3.pre2 -- fix #166923 - hwclock will not run on a non audit-enabled kernel -- fix #159410 - mkswap(8) claims max swap area size is 2 GB -- fix #165863 - swsusp swaps should be reinitialized -- change /var/log/lastlog perms to 0644 - -* Tue Aug 16 2005 Karel Zak 2.13-0.2.pre2 -- /usr/share/misc/getopt/* -move-> /usr/share/doc/util-linux-2.13/getopt-* -- the arch command marked as deprecated -- removed: elvtune, rescuept and setfdprm -- removed: man8/sln.8 (moved to man-pages, see #10601) -- removed REDAME.pg and README.reset -- .spec file cleanup -- added schedutils (commands: chrt, ionice and taskset) - -* Tue Jul 12 2005 Karel Zak 2.12p-9.7 -- fix #159339 - util-linux updates for new audit system -- fix #158737 - sfdisk warning for large partitions, gpt -- fix #150912 - Add ocfs2 support -- NULL is better than zero at end of execl() - -* Thu Jun 16 2005 Karel Zak 2.12p-9.5 -- fix #157656 - CRM 546998: Possible bug in vipw, changes permissions of /etc/shadow and /etc/gshadow -- fix #159339 - util-linux updates for new audit system (pam_loginuid.so added to util-linux-selinux.pamd) -- fix #159418 - sfdisk unusable - crashes immediately on invocation -- fix #157674 - sync option on VFAT mount destroys flash drives -- fix .spec file /usr/sbin/{hwclock,clock} symlinks - -* Wed May 4 2005 Jeremy Katz - 2.12p-9.3 -- rebuild against new libe2fsprogs (and libblkid) to fix cramfs auto-detection - -* Mon May 2 2005 Karel Zak 2.12p-9.2 -- rebuild - -* Mon May 2 2005 Karel Zak 2.12p-9 -- fix #156597 - look - doesn't work with separators - -* Mon Apr 25 2005 Karel Zak 2.12p-8 -- fix #154498 - util-linux login & pam session -- fix #155293 - man 5 nfs should include vers as a mount option -- fix #76467 - At boot time, fsck chokes on LVs listed by label in fstab -- new Source URL -- added note about ATAPI IDE floppy to fdformat.8 -- fix #145355 - Man pages for fstab and fstab-sync in conflict - -* Tue Apr 5 2005 Karel Zak 2.12p-7 -- enable build with libblkid from e2fsprogs-devel -- remove workaround for duplicated labels - -* Thu Mar 31 2005 Steve Dickson 2.12p-5 -- Fixed nfs mount to rollback correctly. - -* Fri Mar 25 2005 Karel Zak 2.12p-4 -- added /var/log/lastlog to util-linux (#151635) -- disabled 'newgrp' in util-linux (enabled in shadow-utils) (#149997, #151613) -- improved mtab lock (#143118) -- fixed ipcs typo (#151156) -- implemented mount workaround for duplicated labels (#116300) - -* Wed Mar 16 2005 Elliot Lee 2.12p-3 -- rebuilt - -* Fri Feb 25 2005 Steve Dickson 2.12p-2 -- Changed nfsmount to only use reserve ports when necessary - (bz# 141773) - -* Thu Dec 23 2004 Elliot Lee 2.12p-1 -- Update to util-linux-2.12p. This changes swap header format - from - you may need to rerun mkswap if you did a clean install of - FC3. - -* Fri Dec 10 2004 Elliot Lee 2.12j-1 -- Update to util-linux-2.12j - -* Tue Dec 7 2004 Steve Dickson 2.12a-20 -- Corrected a buffer overflow problem with nfs mounts. - (bz# 141733) - -* Wed Dec 01 2004 Elliot Lee 2.12a-19 -- Patches for various bugs. - -* Mon Nov 29 2004 Steve Dickson 2.12a-18 -- Made NFS mounts adhere to the IP protocol if specified on - command line as well as made NFS umounts adhere to the - current IP protocol. Fix #140016 - -* Thu Oct 14 2004 Elliot Lee 2.12a-16 -- Add include_raw macro, build with it off for Fedora - -* Wed Oct 13 2004 Stephen C. Tweedie - 2.12a-15 -- Add raw patch to allow binding of devices not yet in /dev - -* Wed Oct 13 2004 John (J5) Palmieri 2.12a-14 -- Add David Zeuthen's patch to enable the pamconsole flag #133941 - -* Wed Oct 13 2004 Stephen C. Tweedie 2.12a-13 -- Restore raw utils (bugzilla #130016) - -* Mon Oct 11 2004 Phil Knirsch 2.12a-12 -- Add the missing remote entry in pam.d - -* Wed Oct 6 2004 Steve Dickson -- Rechecked in some missing NFS mounting code. - -* Wed Sep 29 2004 Elliot Lee 2.12a-10 -- Make swaplabel support work with swapon -a -e - -* Tue Sep 28 2004 Steve Dickson -- Updated the NFS and NFS4 code to the latest CITI patch set - (in which they incorporate a number of our local patches). - -* Wed Sep 15 2004 Nalin Dahybhai 2.12a-8 -- Fix #132196 - turn on SELinux support at build-time. - -* Wed Sep 15 2004 Phil Knirsch 2.12a-7 -- Fix #91174 with pamstart.patch - -* Tue Aug 31 2004 Elliot Lee 2.12a-6 -- Fix #16415, #70616 with rdevman.patch -- Fix #102566 with loginman.patch -- Fix #104321 with rescuept.patch (just use plain lseek - we're in _FILE_OFFSET_BITS=64 land now) -- Fix #130016 - remove raw. -- Re-add agetty (replacing it with mgetty is too much pain, and mgetty is much larger) - -* Thu Aug 26 2004 Steve Dickson -- Made the NFS security checks more explicit to avoid confusion - (an upstream fix) -- Also removed a compilation warning - -* Wed Aug 11 2004 Alasdair Kergon -- Remove unused mount libdevmapper inclusion. - -* Wed Aug 11 2004 Alasdair Kergon -- Add device-mapper mount-by-label support -- Fix segfault in mount-by-label when a device without a label is present. - -* Wed Aug 11 2004 Steve Dickson -- Updated nfs man page to show that intr are on by - default for nfs4 - -* Thu Aug 05 2004 Jindrich Novy -- modified warning causing heart attack for >16 partitions, #107824 - -* Fri Jul 09 2004 Elliot Lee 2.12a-3 -- Fix #126623, #126572 -- Patch cleanup -- Remove agetty (use mgetty, agetty is broken) - -* Tue Jun 15 2004 Elliot Lee -- rebuilt - -* Thu Jun 03 2004 Elliot Lee 2.12a-1 -- Update to 2.12a -- Fix #122448 - -* Thu May 13 2004 Dan Walsh 2.12-19 -- Change pam_selinux to run last - -* Tue May 04 2004 Elliot Lee 2.12-18 -- Fix #122448 (autofs issues) - -* Fri Apr 23 2004 Elliot Lee 2.12-17 -- Fix #119157 by editing the patch -- Add patch145 to fix #119986 - -* Fri Apr 16 2004 Elliot Lee 2.12-16 -- Fix #118803 - -* Tue Mar 23 2004 Jeremy Katz 2.12-15 -- mkcramfs: use PAGE_SIZE for default blocksize (#118681) - -* Sat Mar 20 2004 -- Updated the nfs-mount.patch to correctly - handle the mounthost option and to ignore - servers that do not set auth flavors - -* Tue Mar 16 2004 Dan Walsh 2.12-13 -- Fix selinux ordering or pam for login - -* Tue Mar 16 2004 -- Make RPC error messages displayed with -v argument -- Added two checks to the nfs4 path what will print warnings - when rpc.idmapd and rpc.gssd are not running -- Ping NFS v4 servers before diving into kernel -- Make v4 mount interruptible which also make the intr option on by default - -* Sun Mar 13 2004 -- Reworked how the rpc.idmapd and rpc.gssd checks were - done due to review comments from upstream. -- Added rpc_strerror() so the '-v' flag will show RPC errors. - -* Sat Mar 13 2004 -- Added two checks to the nfs4 path what will print warnings - when rpc.idmapd and rpc.gssd are not running. - -* Thu Mar 11 2004 -- Reworked and updated the nfsv4 patches. - -* Wed Mar 10 2004 Dan Walsh -- Bump version - -* Wed Mar 10 2004 Steve Dickson -- Tried to make nfs error message a bit more meaninful -- Cleaned up some warnings - -* Sun Mar 7 2004 Steve Dickson -- Added pesudo flavors for nfsv4 mounts. -- Added BuildRequires: libselinux-devel and Requires: libselinux - when WITH_SELINUX is set. - -* Fri Feb 27 2004 Dan Walsh 2.12-5 -- check for 2.6.3 kernel in mount options - -* Mon Feb 23 2004 Elliot Lee 2.12-4 -- Remove /bin/kill for #116100 - -* Fri Feb 20 2004 Dan Walsh 2.12-3 -- rebuilt - -* Fri Feb 13 2004 Elliot Lee -- rebuilt - -* Thu Feb 12 2004 Elliot Lee 2.12-1 -- Final 2.12 has been out for ages - might as well use it. - -* Wed Jan 28 2004 Steve Dickson 2.12pre-4 -- Added mount patches that have NFS version 4 support - -* Mon Jan 26 2004 Elliot Lee 2.12pre-3 -- Provides: mount losetup - -* Mon Jan 26 2004 Dan Walsh 2.12pre-2 -- Add multiple to /etc/pam.d/login for SELinux - -* Thu Jan 15 2004 Elliot Lee 2.12pre-1 -- 2.12pre-1 -- Merge mount/losetup packages into the main package (#112324) -- Lose separate - -* Mon Nov 3 2003 Dan Walsh 2.11y-35.sel -- remove selinux code from login and use pam_selinux - -* Thu Oct 30 2003 Dan Walsh 2.11y-34.sel -- turn on selinux - -* Fri Oct 24 2003 Elliot Lee 2.11y-34 -- Add BuildRequires: texinfo (from a bug# I don't remember) -- Fix #90588 with mountman patch142. - -* Mon Oct 6 2003 Dan Walsh 2.11y-33 -- turn off selinux - -* Thu Sep 25 2003 Dan Walsh 2.11y-32.sel -- turn on selinux -- remove context selection - -* Fri Sep 19 2003 Elliot Lee 2.11y-31 -- Add patch140 (alldevs) to fix #101772. Printing the total size of - all devices was deemed a lower priority than having all devices - (e.g. /dev/ida/c0d9) displayed. - -* Fri Sep 12 2003 Dan Walsh 2.11y-31 -- turn off selinux - -* Fri Sep 12 2003 Dan Walsh 2.11y-30.sel -- turn on selinux - -* Fri Sep 5 2003 Elliot Lee 2.11y-28 -- Fix #103004, #103954 - -* Fri Sep 5 2003 Dan Walsh 2.11y-27 -- turn off selinux - -* Thu Sep 4 2003 Dan Walsh 2.11y-26.sel -- build with selinux - -* Mon Aug 11 2003 Elliot Lee 2.11y-25 -- Use urandom instead for mkcramfs - -* Tue Jul 29 2003 Dan Walsh 2.11y-24 -- add SELINUX 2.5 support - -* Wed Jul 23 2003 Elliot Lee 2.11y-22 -- #100433 patch - -* Mon Jun 14 2003 Elliot Lee 2.11y-20 -- #97381 patch - -* Wed Jun 04 2003 Elliot Lee -- rebuilt - -* Mon Apr 21 2003 Elliot Lee 2.11y-17 -- Change patch128 to improve ipcs -l - -* Fri Apr 11 2003 Elliot Lee 2.11y-16 -- Fix #85407 - -* Fri Apr 11 2003 Elliot Lee 2.11y-15 -- Change patch128 to util-linux-2.11f-ipcs-84243-86285.patch to get all -ipcs fixes - -* Thu Apr 10 2003 Matt Wilson 2.11y-14 -- fix last login date display on AMD64 (#88574) - -* Mon Apr 7 2003 Jeremy Katz 2.11y-13 -- include sfdisk on ppc - -* Fri Mar 28 2003 Jeremy Katz 2.11y-12 -- add patch from msw to change mkcramfs blocksize with a command line option - -* Tue Mar 25 2003 Phil Knirsch 2.11y-11 -- Fix segfault on s390x due to wrong usage of BLKGETSIZE. - -* Thu Mar 13 2003 Elliot Lee 2.11y-10 -- Really apply the ipcs patch. Doh. - -* Mon Feb 24 2003 Elliot Lee -- rebuilt - -* Wed Feb 19 2003 Elliot Lee 2.11y-8 -- ipcs-84243.patch to fix #84243 - -* Thu Feb 13 2003 Yukihiro Nakai 2.11y-7 -- Update moremisc patch to fix swprintf()'s minimum field (bug #83361). - -* Mon Feb 03 2003 Elliot Lee 2.11y-6 -- Fix mcookie segfault on many 64-bit architectures (bug #83345). - -* Mon Feb 03 2003 Tim Waugh 2.11y-5 -- Fix underlined multibyte characters (bug #83376). - -* Sun Feb 02 2003 Florian La Roche -- rebuild to have again a s390 rpm -- disable some more apps for mainframe - -* Wed Jan 29 2003 Elliot Lee 2.11y-4 -- util-linux-2.11y-umask-82552.patch - -* Wed Jan 22 2003 Tim Powers -- rebuilt - -* Mon Jan 13 2003 Elliot Lee 2.11y-2 -- Fix #81069, #75421 - -* Mon Jan 13 2003 Elliot Lee 2.11y-1 -- Update to 2.11y -- Fix #80953 -- Update patch0, patch107, patch117, patch120 for 2.11y -- Remove patch60, patch61, patch207, patch211, patch212, patch119, patch121 -- Remove patch122, patch200 - -* Wed Oct 30 2002 Elliot Lee 2.11w-2 -- Remove some crack/unnecessary patches while submitting stuff upstream. -- Build with -D_FILE_OFFSET_BITS=64 - -* Tue Oct 29 2002 Elliot Lee 2.11w-1 -- Update to 2.11w, resolve patch conflicts - -* Tue Oct 08 2002 Phil Knirsch 2.11r-10hammer.3 -- Extended util-linux-2.11b-s390x patch to work again. - -* Thu Oct 03 2002 Elliot Lee 2.11r-10hammer.2 -- Add patch122 for hwclock on x86_64 - -* Thu Sep 12 2002 Than Ngo 2.11r-10hammer.1 -- Fixed pam config files - -* Wed Sep 11 2002 Bernhard Rosenkraenzer 2.11r-10hammer -- Port to hammer - -* Fri Aug 30 2002 Elliot Lee 2.11r-10 -- Patch120 (hwclock) to fix #72140 -- Include isosize util - -* Wed Aug 7 2002 Elliot Lee 2.11r-9 -- Patch120 (skipraid2) to fix #70353, because the original patch was -totally useless. - -* Fri Aug 2 2002 Elliot Lee 2.11r-8 -- Patch119 (fdisk-add-primary) from #67898 - -* Wed Jul 24 2002 Elliot Lee 2.11r-7 -- Really add the gptsize patch, instead of what I think the patch says. -(+1) - -* Tue Jul 23 2002 Elliot Lee 2.11r-6 -- Add the sp[n].size part of the patch from #69603 - -* Mon Jul 22 2002 Florian La Roche -- adjust mainframe patches - -* Tue Jul 2 2002 Bill Nottingham 2.11r-4 -- only require usermode if we're shipping kbdrate here - -* Fri Jun 28 2002 Trond Eivind Glomsrod 2.11r-3 -- Port the large swap patch to new util-linux... the off_t changes - now in main aren't sufficient - -* Thu Jun 27 2002 Elliot Lee 2.11r-2 -- Remove swapondetect (patch301) until it avoids possible false positives. - -* Thu Jun 27 2002 Elliot Lee 2.11r-1 -- Update to 2.11r, wheeee -- Remove unused patches - -* Thu Jun 27 2002 Elliot Lee 2.11n-19 -- Make a note here that this package was the source of the single change -contained in util-linux-2.11f-18 (in 7.2/Alpha), and also contains the -rawman patch from util-linux-2.11f-17.1 (in 2.1AS). -- Package has no runtime deps on slang, so remove the BuildRequires: -slang-devel. - -* Fri Jun 21 2002 Tim Powers -- automated rebuild - -* Thu Jun 20 2002 Elliot Lee 2.11n-17 -- Fix teg's swapondetect patch to not print out the usage message when -'swapon -a -e' is run. (#66690) (edit existing patch) -- Apply hjl's utmp handling patch (#66950) (patch116) -- Fix fdisk man page notes on IDE disk partition limit (#64013) (patch117) -- Fix mount.8 man page notes on vfat shortname option (#65628) (patch117) -- Fix possible cal overflow with widechars (#67090) (patch117) - -* Tue Jun 11 2002 Trond Eivind Glomsrod 2.11n-16 -- support large swap partitions -- add '-d' option to autodetect available swap partitions - -* Thu May 23 2002 Tim Powers -- automated rebuild - -* Wed May 15 2002 Elliot Lee 2.11n-14 -- Remove kbdrate (again). - -* Mon Apr 29 2002 Florian La Roche -- adjust mainframe patches to apply to current rpm -- do not include fdisk until it is fixed to work on mainframe - -* Mon Apr 01 2002 Elliot Lee 2.11n-12 -- Don't strip binaries - rpm does it for us. - -* Sun Mar 31 2002 Elliot Lee 2.11n-11 -- Apply patch115 from ejb@ql.org for bug #61868 - -* Wed Mar 27 2002 Elliot Lee 2.11n-10 -- Finish fixing #60675 (ipcrm man page), updated the patch. -- Fix #61203 (patch114 - dumboctal.patch). - -* Tue Mar 12 2002 Elliot Lee 2.11n-9 -- Update ctty3 patch to ignore SIGHUP while dropping controlling terminal - -* Fri Mar 08 2002 Elliot Lee 2.11n-8 -- Update ctty3 patch to drop controlling terminal before forking. - -* Fri Mar 08 2002 Elliot Lee 2.11n-7 - Fix various bugs: -- Add patch110 (skipraid) to properly skip devices that are part of a RAID array. -- Add patch111 (mkfsman) to update the mkfs man page's "SEE ALSO" section. -- remove README.cfdisk -- Include partx -- Fix 54741 and related bugs for good(hah!) with patch113 (ctty3) - -* Wed Mar 06 2002 Elliot Lee 2.11n-6 -- Put kbdrate in, add usermode dep. - -* Tue Feb 26 2002 Elliot Lee 2.11n-5 -- Fix #60363 (tweak raw.8 man page, make rawdevices.8 symlink). - -* Tue Jan 28 2002 Bill Nottingham 2.11n-4 -- remove kbdrate (fixes kbd conflict) - -* Fri Dec 28 2001 Elliot Lee 2.11n-3 -- Add util-linux-2.11n-ownerumount.patch (#56593) -- Add patch102 (util-linux-2.11n-colrm.patch) to fix #51887 -- Fix #53452 nits. -- Fix #56953 (remove tunelp on s390) -- Fix #56459, and in addition switch to using sed instead of perl. -- Fix #58471 -- Fix #57300 -- Fix #37436 -- Fix #32132 - -* Wed Dec 26 2001 Elliot Lee 2.11n-1 -- Update to 2.11n -- Merge mount/losetup back in. - -* Tue Dec 04 2001 Elliot Lee 2.11f-17 -- Add patch38 (util-linux-2.11f-ctty2.patch) to ignore SIGINT/SIGTERM/SIGQUIT in the parent, so that ^\ won't break things. - -* Fri Nov 09 2001 Elliot Lee 2.11f-16 -- Merge patches 36, 75, 76, and 77 into patch #37, to attempt resolve all the remaining issues with #54741. - -* Wed Oct 24 2001 Florian La Roche -- add nologin man-page for s390/s390x - -* Wed Oct 24 2001 Bernhard Rosenkraenzer 2.11f-14 -- Don't build kbdrate on s390/s390x -- Don't make the pivot_root.8 man page executable(!) - -* Tue Oct 23 2001 Elliot Lee 2.11f-13 -- Patch/idea #76 from HJL, fixes bug #54741 (race condition in login -acquisition of controlling terminal). - -* Thu Oct 11 2001 Bill Nottingham -- fix permissions problem with vipw & shadow files, again (doh!) - -* Tue Oct 09 2001 Erik Troan -- added patch from Olaf Kirch to fix possible pwent structure overwriting - -* Fri Sep 28 2001 Elliot Lee 2.11f-10 -- fdisk patch from arjan - -* Sun Aug 26 2001 Elliot Lee 2.11f-9 -- Don't include cfdisk, since it appears to be an even bigger pile of junk than fdisk? :) - -* Wed Aug 1 2001 Tim Powers -- don't require usermode - -* Mon Jul 30 2001 Elliot Lee 2.11f-7 -- Incorporate kbdrate back in. - -* Mon Jul 30 2001 Bill Nottingham -- revert the patch that calls setsid() in login that we had reverted - locally but got integrated upstream (#46223) - -* Tue Jul 24 2001 Florian La Roche -- correct s390x patch - -* Mon Jul 23 2001 Elliot Lee -- Add my megapatch (various bugs) -- Include pivot_root (#44828) - -* Thu Jul 12 2001 Bill Nottingham -- make shadow files 0400, not 0600 - -* Wed Jul 11 2001 Bill Nottingham -- fix permissions problem with vipw & shadow files - -* Mon Jun 18 2001 Florian La Roche -- update to 2.11f, remove any merged patches -- add s390x patches for somewhat larger swap - -* Thu Jun 14 2001 Erik Troan -- added --verbose patch to mkcramfs; it's much quieter by default now - -* Tue May 22 2001 Erik Troan -- removed warning about starting partitions on cylinder 0 -- swap version2 - makes it unnecessary - -* Wed May 9 2001 Bernhard Rosenkraenzer 2.11b-2 -- Fix up s390x support - -* Mon May 7 2001 Bernhard Rosenkraenzer 2.11b-1 -- Fix up login for real (a console session should be the controlling tty) - by reverting to 2.10s code (#36839, #36840, #39237) -- Add man page for agetty (#39287) -- 2.11b, while at it - -* Fri Apr 27 2001 Preston Brown 2.11a-4 -- /sbin/nologin from OpenBSD added. - -* Fri Apr 20 2001 Bernhard Rosenkraenzer 2.11a-3 -- Fix up login - exiting immediately even if the password is correct - is not exactly a nice feature. -- Make definite plans to kill people who update login without checking - if the new version works ;) - -* Tue Apr 17 2001 Erik Troan -- upgraded to 2.11a (kbdrate moved to kbd, among other things) -- turned off ALLOW_VCS_USE -- modified mkcramfs to not use a large number of file descriptors -- include mkfs.bfs - -* Sun Apr 8 2001 Matt Wilson -- changed Requires: kernel >= 2.2.12-7 to Conflicts: kernel < 2.2.12-7 - (fixes a initscripts -> util-linux -> kernel -> initscripts prereq loop) - -* Tue Mar 20 2001 Matt Wilson -- patched mkcramfs to use the PAGE_SIZE from asm/page.h instead of hard - coding 4096 (fixes mkcramfs on alpha...) - -* Mon Mar 19 2001 Matt Wilson -- added mkcramfs (from linux/scripts/mkcramfs) - -* Mon Feb 26 2001 Tim Powers -- fixed bug #29131, where ipc.info didn't have an info dir entry, - added the dir entry to ipc.texi (Patch58) - -* Fri Feb 23 2001 Preston Brown -- use lang finder script -- install info files - -* Thu Feb 08 2001 Erik Troan -- reverted login patch; seems to cause problems -- added agetty - -* Wed Feb 07 2001 Erik Troan -- updated kill man page -- added patch to fix vipw race -- updated vipw to edit /etc/shadow and /etc/gshadow, if appropriate -- added patch to disassociate login from tty, session, and pgrp - -* Tue Feb 06 2001 Erik Troan -- fixed problem w/ empty extended partitions -- added patch to fix the date in the more man page -- set OPT to pass optimization flags to make rather then RPM_OPT_FLAG -- fixed fdisk -l /Proc/partitions parsing -- updated to 2.10s - -* Tue Jan 23 2001 Preston Brown -- danish translations added - -* Mon Jan 15 2001 Nalin Dahyabhai -- fix segfault in login in btmp patch (#24025) - -* Mon Dec 11 2000 Oliver Paukstadt -- ported to s390 - -* Wed Nov 01 2000 Florian La Roche -- update to 2.10p -- update patch37 to newer fdisk version - -* Mon Oct 9 2000 Jeff Johnson -- update to 2.10o -- fdformat: fixed to work with kernel 2.4.0test6 (Marek Wojtowicz) -- login: not installed suid -- getopt: by default install aux files in /usr/share/misc -- update to 2.10n: -- added blockdev.8 -- change to elvtune (andrea) -- fixed overrun in agetty (vii@penguinpowered.com) -- shutdown: prefer umounting by mount point (rgooch) -- fdisk: added plan9 -- fdisk: remove empty links in chain of extended partitions -- hwclock: handle both /dev/rtc and /dev/efirtc (Bill Nottingham) -- script: added -f (flush) option (Ivan Schreter) -- script: added -q (quiet) option (Per Andreas Buer) -- getopt: updated to version 1.1.0 (Frodo Looijaard) -- Czech messages (Jiri Pavlovsky) -- login.1 man page had not /var/spool/mail path (#16998). -- sln.8 man page (but not executable) included (#10601). -- teach fdisk 0xde(Dell), 0xee(EFI GPT), 0xef(EFI FAT) partitions (#17610). - -* Wed Aug 30 2000 Matt Wilson -- rebuild to cope with glibc locale binary incompatibility, again - -* Mon Aug 14 2000 Jeff Johnson -- setfdprm should open with O_WRONLY, not 3. - -* Fri Aug 11 2000 Jeff Johnson -- fdformat should open with O_WRONLY, not 3. - -* Fri Jul 21 2000 Nalin Dahyabhai -- make 'look' look in /usr/share/dict - -* Fri Jul 21 2000 Bill Nottingham -- put /usr/local/sbin:/usr/local/bin in root's path - -* Wed Jul 19 2000 Jakub Jelinek -- rebuild to cope with glibc locale binary incompatibility - -* Thu Jul 13 2000 Prospector -- automatic rebuild - -* Mon Jul 10 2000 Bill Nottingham -- enable hwclock to use /dev/efirtc on ia64 (gettext is fun. :( ) - -* Mon Jul 3 2000 Bill Nottingham -- move cfdisk to /usr/sbin, it depends on /usr stuff -- add rescuept - -* Fri Jun 23 2000 Bernhard Rosenkraenzer -- point more at the correct path to vi (for "v"), Bug #10882 - -* Sun Jun 4 2000 Jeff Johnson -- FHS packaging changes. - -* Thu Jun 1 2000 Nalin Dahyabhai -- modify PAM setup to use system-auth - -* Mon May 1 2000 Bill Nottingham -- eek, where did login go? (specfile tweaks) - -* Mon Apr 17 2000 Bernhard Rosenkraenzer -- 2.10k -- fix compilation with current glibc - -* Tue Mar 21 2000 Bernhard Rosenkraenzer -- 2.10h - -* Tue Mar 7 2000 Jeff Johnson -- rebuild for sparc baud rates > 38400. - -* Sat Mar 4 2000 Matt Wilson -- use snprintf - not sprintf - when doing - sprintf ("%s\n", _("Some string")) to avoid overflows and - segfaults. - -* Mon Feb 21 2000 Jeff Johnson -- raw control file was /dev/raw, now /dev/rawctl. -- raw access files were /dev/raw*, now /dev/raw/raw*. - -* Thu Feb 17 2000 Erik Troan -- -v argument to mkswap wasn't working - -* Thu Feb 10 2000 Jakub Jelinek -- Recognize 0xfd on Sun disklabels as RAID - -* Tue Feb 8 2000 Bill Nottingham -- more lives in /bin, and was linked against /usr/lib/libnurses. Bad. - -* Thu Feb 03 2000 Jakub Jelinek -- update to 2.10f -- fix issues in the new realpath code, avoid leaking memory - -* Tue Feb 01 2000 Cristian Gafton -- rebuild to fix dependencies -- add NFSv3 patches - -* Fri Jan 28 2000 Bill Nottingham -- don't require csh - -* Mon Jan 24 2000 Nalin Dahyabhai -- update to 2.10e -- add rename - -* Thu Jan 20 2000 Jeff Johnson -- strip newlines in logger input. - -* Mon Jan 10 2000 Jeff Johnson -- rebuild with correct ncurses libs. - -* Tue Dec 7 1999 Matt Wilson -- updated to util-linux 2.10c -- deprecated IMAP login mail notification patch17 -- deprecated raw patch22 -- depricated readprofile patch24 - -* Tue Dec 7 1999 Bill Nottingham -- add patch for readprofile - -* Thu Nov 18 1999 Michael K. Johnson -- tunelp should come from util-linux - -* Tue Nov 9 1999 Jakub Jelinek -- kbdrate cannot use /dev/port on sparc. - -* Wed Nov 3 1999 Jakub Jelinek -- fix kbdrate on sparc. - -* Wed Oct 27 1999 Bill Nottingham -- ship hwclock on alpha. - -* Tue Oct 5 1999 Bill Nottingham -- don't ship symlinks to rdev if we don't ship rdev. - -* Tue Sep 07 1999 Cristian Gafton -- add rawIO support from sct - -* Mon Aug 30 1999 Preston Brown -- don't display "new mail" message when the only piece of mail is from IMAP - -* Fri Aug 27 1999 Michael K. Johnson -- kbdrate is now a console program - -* Thu Aug 26 1999 Jeff Johnson -- hostid is now in sh-utils. On sparc, install hostid as sunhostid (#4581). -- update to 2.9w: -- Updated mount.8 (Yann Droneaud) -- Improved makefiles -- Fixed flaw in fdisk - -* Tue Aug 10 1999 Jeff Johnson -- tsort is now in textutils. - -* Wed Aug 4 1999 Bill Nottingham -- turn off setuid bit on login. Again. :( - -* Tue Aug 3 1999 Peter Jones, -- hostid script for sparc (#3803). - -* Tue Aug 03 1999 Christian 'Dr. Disk' Hechelmann -- added locale message catalogs to %file -- added patch for non-root build -- vigr.8 and /usr/lib/getopt man-page was missing from file list -- /etc/fdprm really is a config file - -* Fri Jul 23 1999 Jeff Johnson -- update to 2.9v: -- cfdisk no longer believes the kernel's HDGETGEO - (and may be able to partition a 2 TB disk) - -* Fri Jul 16 1999 Jeff Johnson -- update to 2.9u: -- Czech more.help and messages (Jiri Pavlovsky) -- Japanese messages (Daisuke Yamashita) -- fdisk fix (Klaus G. Wagner) -- mount fix (Hirokazu Takahashi) -- agetty: enable hardware flow control (Thorsten Kranzkowski) -- minor cfdisk improvements -- fdisk no longer accepts a default device -- Makefile fix - -* Tue Jul 6 1999 Jeff Johnson -- update to 2.9t: -- national language support for hwclock -- Japanese messages (both by Daisuke Yamashita) -- German messages and some misc i18n fixes (Elrond) -- Czech messages (Jiri Pavlovsky) -- wall fixed for /dev/pts/xx ttys -- make last and wall use getutent() (Sascha Schumann) - [Maybe this is bad: last reading all of wtmp may be too slow. - Revert in case people complain.] -- documented UUID= and LABEL= in fstab.5 -- added some partition types -- swapon: warn only if verbose - -* Fri Jun 25 1999 Jeff Johnson -- update to 2.9s. - -* Sat May 29 1999 Jeff Johnson -- fix mkswap sets incorrect bits on sparc64 (#3140). - -* Thu Apr 15 1999 Jeff Johnson -- on sparc64 random ioctls on clock interface cause kernel messages. - -* Thu Apr 15 1999 Jeff Johnson -- improved raid patch (H.J. Lu). - -* Wed Apr 14 1999 Michael K. Johnson -- added patch for smartraid controllers - -* Sat Apr 10 1999 Cristian Gafton -- fix logging problems caused by setproctitle and PAM interaction - (#2045) - -* Wed Mar 31 1999 Jeff Johnson -- include docs and examples for sfdisk (#1164) - -* Mon Mar 29 1999 Matt Wilson -- rtc is not working properly on alpha, we can't use hwclock yet. - -* Fri Mar 26 1999 Cristian Gafton -- add patch to make mkswap more 64 bit friendly... Patch from - eranian@hpl.hp.com (ahem!) - -* Thu Mar 25 1999 Jeff Johnson -- include sfdisk (#1164) -- fix write (#1784) -- use positive logic in spec file (%ifarch rather than %ifnarch). -- (re)-use 1st matching utmp slot if search by mypid not found. -- update to 2.9o -- lastb wants bad logins in wtmp clone /var/run/btmp (#884) - -* Thu Mar 25 1999 Jakub Jelinek -- if hwclock is to be compiled on sparc, - it must actually work. Also, it should obsolete - clock, otherwise it clashes. -- limit the swap size in mkswap for 2.2.1+ kernels - by the actual maximum size kernel can handle. -- fix kbdrate on sparc, patch by J. S. Connell - - -* Wed Mar 24 1999 Matt Wilson -- added pam_console back into pam.d/login - -* Tue Mar 23 1999 Matt Wilson -- updated to 2.9i -- added hwclock for sparcs and alpha - -* Mon Mar 22 1999 Erik Troan -- added vigr to file list - -* Sun Mar 21 1999 Cristian Gafton -- auto rebuild in the new build environment (release 12) - -* Thu Mar 18 1999 Cristian Gafton -- remove most of the ifnarch arm stuff - -* Mon Mar 15 1999 Michael Johnson -- added pam_console.so to /etc/pam.d/login - -* Thu Feb 4 1999 Michael K. Johnson -- .perms patch to login to make it retain root in parent process - for pam_close_session to work correctly - -* Tue Jan 12 1999 Jeff Johnson -- strip fdisk in buildroot correctly (#718) - -* Mon Jan 11 1999 Cristian Gafton -- have fdisk compiled on sparc and arm - -* Mon Jan 11 1999 Erik Troan -- added beos partition type to fdisk - -* Wed Dec 30 1998 Cristian Gafton -- incorporate fdisk on all arches - -* Sat Dec 5 1998 Jeff Johnson -- restore PAM functionality at end of login (Bug #201) - -* Thu Dec 03 1998 Cristian Gafton -- patch top build on the arm without PAM and related utilities, for now. -- build hwclock only on intel - -* Wed Nov 18 1998 Cristian Gafton -- upgraded to version 2.9 - -* Thu Oct 29 1998 Bill Nottingham -- build for Raw Hide (slang-1.2.2) -- patch kbdrate wackiness so it builds with egcs - -* Tue Oct 13 1998 Erik Troan -- patched more to use termcap - -* Mon Oct 12 1998 Erik Troan -- added warning about alpha/bsd label starting cylinder - -* Mon Sep 21 1998 Erik Troan -- use sigsetjmp/siglongjmp in more rather then sig'less versions - -* Fri Sep 11 1998 Jeff Johnson -- explicit attrs for setuid/setgid programs - -* Thu Aug 27 1998 Cristian Gafton -- sln is now included in glibc - -* Sun Aug 23 1998 Jeff Johnson -- add cbm1581 floppy definitions (problem #787) - -* Mon Jun 29 1998 Jeff Johnson -- remove /etc/nologin at end of shutdown/halt. - -* Fri Jun 19 1998 Jeff Johnson -- add mount/losetup. - -* Thu Jun 18 1998 Jeff Johnson -- update to 2.8 with 2.8b clean up. hostid now defunct? - -* Mon Jun 01 1998 David S. Miller -- "more" now works properly on sparc - -* Sat May 02 1998 Jeff Johnson -- Fix "fdisk -l" fault on mounted cdrom. (prob #513) - -* Fri Apr 24 1998 Prospector System -- translations modified for de, fr, tr - -* Sat Apr 11 1998 Cristian Gafton -- manhattan rebuild - -* Mon Dec 29 1997 Erik Troan -- more didn't suspend properly on glibc -- use proper tc*() calls rather then ioctl's - -* Sun Dec 21 1997 Cristian Gafton -- fixed a security problem in chfn and chsh accepting too - long gecos fields - -* Fri Dec 19 1997 Mike Wangsmo -- removed "." from default path - -* Tue Dec 02 1997 Cristian Gafton -- added (again) the vipw patch - -* Wed Oct 22 1997 Michael Fulbright -- minor cleanups for glibc 2.1 - -* Fri Oct 17 1997 Michael Fulbright -- added vfat32 filesystem type to list recognized by fdisk - -* Fri Oct 10 1997 Erik Troan -- don't build clock on the alpha -- don't install chkdupexe - -* Thu Oct 02 1997 Michael K. Johnson -- Update to new pam standard. -- BuildRoot. - -* Thu Sep 25 1997 Cristian Gafton -- added rootok and setproctitle patches -- updated pam config files for chfn and chsh - -* Tue Sep 02 1997 Erik Troan -- updated MCONFIG to automatically determine the architecture -- added glibc header hacks to fdisk code -- rdev is only available on the intel - -* Fri Jul 18 1997 Erik Troan -- update to util-linux 2.7, fixed login problems - -* Wed Jun 25 1997 Erik Troan -- Merged Red Hat changes into main util-linux source, updated package to - development util-linux (nearly 2.7). - -* Tue Apr 22 1997 Michael K. Johnson -- LOG_AUTH --> LOG_AUTHPRIV in login and shutdown - -* Mon Mar 03 1997 Michael K. Johnson -- Moved to new pam and from pam.conf to pam.d - -* Tue Feb 25 1997 Michael K. Johnson -- pam.patch differentiated between different kinds of bad logins. - In particular, "user does not exist" and "bad password" were treated - differently. This was a minor security hole.