From 9ece98d1f2e7b7442597229de744bb2f70e19cdf Mon Sep 17 00:00:00 2001 From: sparky Date: Thu, 10 Feb 2011 22:40:24 +0000 Subject: [PATCH] - removed obsolete files Changed files: chfn.pamd -> 1.9 chsh.pamd -> 1.9 login.pamd -> 1.12 rawdevices.init -> 1.10 rawdevices.sysconfig -> 1.2 util-linux-2.12q-more-fake-checks-v2.patch -> 1.2 util-linux-2.12q-update-mtab-when-moving.patch -> 1.2 util-linux-2.12q-update_mtab-fixes.patch -> 1.2 util-linux-2.12q-use-update_mtab-for-fake.patch -> 1.2 util-linux-ac-dirs.patch -> 1.2 util-linux-amd64.patch -> 1.3 util-linux-audit-hwclock.patch -> 1.2 util-linux-audit-login.patch -> 1.2 util-linux-blk.patch -> 1.6 util-linux-blockdev.init -> 1.15 util-linux-blockdev.sysconfig -> 1.4 util-linux-chsh.patch -> 1.2 util-linux-col-EILSEQ.patch -> 1.2 util-linux-cramfs-maxentries.patch -> 1.2 util-linux-cramfs-zerofiles.patch -> 1.2 util-linux-ctrlaltdel-man.patch -> 1.2 util-linux-ctty3.patch -> 1.2 util-linux-dm_crypt.patch -> 1.6 util-linux-execl.patch -> 1.2 util-linux-fdformat-ide.patch -> 1.2 util-linux-fdisk-b-4096.patch -> 1.2 util-linux-fdisk-gpt.patch -> 1.2 util-linux-fdisk-isfull.patch -> 1.2 util-linux-fdisk-sectors.patch -> 1.2 util-linux-fdisk.patch -> 1.2 util-linux-fdisksegv.patch -> 1.2 util-linux-fhs.patch -> 1.7 util-linux-gcc4.patch -> 1.2 util-linux-hexdump-gcc.patch -> 1.2 util-linux-hotkeys.patch -> 1.2 util-linux-info.patch -> 1.6 util-linux-ipcs-shmax.patch -> 1.2 util-linux-ipcs-typo.patch -> 1.2 util-linux-login-hang.patch -> 1.2 util-linux-login-ipv6.patch -> 1.2 util-linux-login-lastlog.patch -> 1.2 util-linux-login-pam-acct.patch -> 1.2 util-linux-login-timeval.patch -> 1.2 util-linux-look-separator.patch -> 1.2 util-linux-losetup-all.patch -> 1.2 util-linux-losetup-deprecated.patch -> 1.2 util-linux-losetup-rdonly.patch -> 1.2 util-linux-lvm2dupes.patch -> 1.2 util-linux-managed.patch -> 1.2 util-linux-mkswap-mounted.patch -> 1.2 util-linux-mkswap-selinux.patch -> 1.2 util-linux-more-CLOEXEC.patch -> 1.2 util-linux-mount-context.patch -> 1.2 util-linux-mount-helper-auto.patch -> 1.2 util-linux-mount-man-bugs.patch -> 1.2 util-linux-mount-man-cifs.patch -> 1.2 util-linux-mount-man-nfs.patch -> 1.2 util-linux-mount-man-nfs4.patch -> 1.2 util-linux-mount-nonfs.patch -> 1.2 util-linux-mount-sloppy.patch -> 1.3 util-linux-mount-subtree.patch -> 1.2 util-linux-mount-twiceloop.patch -> 1.2 util-linux-mount-uhelper.patch -> 1.2 util-linux-mount-uuid.patch -> 1.2 util-linux-mount.helper-fake.patch -> 1.2 util-linux-mountbylabel-dm.patch -> 1.2 util-linux-mtab-lock.patch -> 1.2 util-linux-multibyte.patch -> 1.2 util-linux-namei-logic.patch -> 1.2 util-linux-ncurses.patch -> 1.2 util-linux-pamsession.patch -> 1.2 util-linux-partx-man.patch -> 1.2 util-linux-ppc-hwclock.patch -> 1.4 util-linux-procpartitions.patch -> 1.2 util-linux-raw-handle-nonpresent-devs.patch -> 1.2 util-linux-raw-man.patch -> 1.2 util-linux-raw-raw0.patch -> 1.2 util-linux-rdev-man.patch -> 1.2 util-linux-schedutils-SCHED_BATCH.patch -> 1.2 util-linux-schedutils-man.patch -> 1.2 util-linux-single_letter_weekday.patch -> 1.2 util-linux-skipraid2.patch -> 1.2 util-linux-sparc.patch -> 1.2 util-linux-swap-page.patch -> 1.2 util-linux-swapon-suspend.patch -> 1.2 util-linux-swaponsymlink.patch -> 1.2 util-linux-syscall.patch -> 1.3 util-linux-umount-sysfs.patch -> 1.2 --- chfn.pamd | 6 - chsh.pamd | 6 - login.pamd | 18 - rawdevices.init | 91 ---- rawdevices.sysconfig | 5 - util-linux-2.12q-more-fake-checks-v2.patch | 40 -- ...-linux-2.12q-update-mtab-when-moving.patch | 33 -- util-linux-2.12q-update_mtab-fixes.patch | 68 --- ...linux-2.12q-use-update_mtab-for-fake.patch | 16 - util-linux-ac-dirs.patch | 22 - util-linux-amd64.patch | 12 - util-linux-audit-hwclock.patch | 316 ----------- util-linux-audit-login.patch | 103 ---- util-linux-blk.patch | 74 --- util-linux-blockdev.init | 117 ----- util-linux-blockdev.sysconfig | 13 - util-linux-chsh.patch | 21 - util-linux-col-EILSEQ.patch | 40 -- util-linux-cramfs-maxentries.patch | 49 -- util-linux-cramfs-zerofiles.patch | 13 - util-linux-ctrlaltdel-man.patch | 12 - util-linux-ctty3.patch | 106 ---- util-linux-dm_crypt.patch | 430 --------------- util-linux-execl.patch | 27 - util-linux-fdformat-ide.patch | 22 - util-linux-fdisk-b-4096.patch | 15 - util-linux-fdisk-gpt.patch | 495 ------------------ util-linux-fdisk-isfull.patch | 106 ---- util-linux-fdisk-sectors.patch | 347 ------------ util-linux-fdisk.patch | 18 - util-linux-fdisksegv.patch | 34 -- util-linux-fhs.patch | 12 - util-linux-gcc4.patch | 11 - util-linux-hexdump-gcc.patch | 17 - util-linux-hotkeys.patch | 46 -- util-linux-info.patch | 33 -- util-linux-ipcs-shmax.patch | 27 - util-linux-ipcs-typo.patch | 14 - util-linux-login-hang.patch | 23 - util-linux-login-ipv6.patch | 82 --- util-linux-login-lastlog.patch | 11 - util-linux-login-pam-acct.patch | 33 -- util-linux-login-timeval.patch | 49 -- util-linux-look-separator.patch | 18 - util-linux-losetup-all.patch | 162 ------ util-linux-losetup-deprecated.patch | 13 - util-linux-losetup-rdonly.patch | 49 -- util-linux-lvm2dupes.patch | 29 - util-linux-managed.patch | 11 - util-linux-mkswap-mounted.patch | 64 --- util-linux-mkswap-selinux.patch | 83 --- util-linux-more-CLOEXEC.patch | 19 - util-linux-mount-context.patch | 222 -------- util-linux-mount-helper-auto.patch | 187 ------- util-linux-mount-man-bugs.patch | 29 - util-linux-mount-man-cifs.patch | 19 - util-linux-mount-man-nfs.patch | 28 - util-linux-mount-man-nfs4.patch | 114 ---- util-linux-mount-nonfs.patch | 196 ------- util-linux-mount-sloppy.patch | 22 - util-linux-mount-subtree.patch | 199 ------- util-linux-mount-twiceloop.patch | 75 --- util-linux-mount-uhelper.patch | 70 --- util-linux-mount-uuid.patch | 60 --- util-linux-mount.helper-fake.patch | 11 - util-linux-mountbylabel-dm.patch | 63 --- util-linux-mtab-lock.patch | 153 ------ util-linux-multibyte.patch | 281 ---------- util-linux-namei-logic.patch | 132 ----- util-linux-ncurses.patch | 29 - util-linux-pamsession.patch | 14 - util-linux-partx-man.patch | 129 ----- util-linux-ppc-hwclock.patch | 476 ----------------- util-linux-procpartitions.patch | 76 --- util-linux-raw-handle-nonpresent-devs.patch | 75 --- util-linux-raw-man.patch | 40 -- util-linux-raw-raw0.patch | 47 -- util-linux-rdev-man.patch | 20 - util-linux-schedutils-SCHED_BATCH.patch | 104 ---- util-linux-schedutils-man.patch | 24 - util-linux-single_letter_weekday.patch | 11 - util-linux-skipraid2.patch | 112 ---- util-linux-sparc.patch | 23 - util-linux-swap-page.patch | 70 --- util-linux-swapon-suspend.patch | 163 ------ util-linux-swaponsymlink.patch | 28 - util-linux-syscall.patch | 11 - util-linux-umount-sysfs.patch | 13 - 88 files changed, 6807 deletions(-) delete mode 100644 chfn.pamd delete mode 100644 chsh.pamd delete mode 100644 login.pamd delete mode 100644 rawdevices.init delete mode 100644 rawdevices.sysconfig delete mode 100644 util-linux-2.12q-more-fake-checks-v2.patch delete mode 100644 util-linux-2.12q-update-mtab-when-moving.patch delete mode 100644 util-linux-2.12q-update_mtab-fixes.patch delete mode 100644 util-linux-2.12q-use-update_mtab-for-fake.patch delete mode 100644 util-linux-ac-dirs.patch delete mode 100644 util-linux-amd64.patch delete mode 100644 util-linux-audit-hwclock.patch delete mode 100644 util-linux-audit-login.patch delete mode 100644 util-linux-blk.patch delete mode 100644 util-linux-blockdev.init delete mode 100644 util-linux-blockdev.sysconfig delete mode 100644 util-linux-chsh.patch delete mode 100644 util-linux-col-EILSEQ.patch delete mode 100644 util-linux-cramfs-maxentries.patch delete mode 100644 util-linux-cramfs-zerofiles.patch delete mode 100644 util-linux-ctrlaltdel-man.patch delete mode 100644 util-linux-ctty3.patch delete mode 100644 util-linux-dm_crypt.patch delete mode 100644 util-linux-execl.patch delete mode 100644 util-linux-fdformat-ide.patch delete mode 100644 util-linux-fdisk-b-4096.patch delete mode 100644 util-linux-fdisk-gpt.patch delete mode 100644 util-linux-fdisk-isfull.patch delete mode 100644 util-linux-fdisk-sectors.patch delete mode 100644 util-linux-fdisk.patch delete mode 100644 util-linux-fdisksegv.patch delete mode 100644 util-linux-fhs.patch delete mode 100644 util-linux-gcc4.patch delete mode 100644 util-linux-hexdump-gcc.patch delete mode 100644 util-linux-hotkeys.patch delete mode 100644 util-linux-info.patch delete mode 100644 util-linux-ipcs-shmax.patch delete mode 100644 util-linux-ipcs-typo.patch delete mode 100644 util-linux-login-hang.patch delete mode 100644 util-linux-login-ipv6.patch delete mode 100644 util-linux-login-lastlog.patch delete mode 100644 util-linux-login-pam-acct.patch delete mode 100644 util-linux-login-timeval.patch delete mode 100644 util-linux-look-separator.patch delete mode 100644 util-linux-losetup-all.patch delete mode 100644 util-linux-losetup-deprecated.patch delete mode 100644 util-linux-losetup-rdonly.patch delete mode 100644 util-linux-lvm2dupes.patch delete mode 100644 util-linux-managed.patch delete mode 100644 util-linux-mkswap-mounted.patch delete mode 100644 util-linux-mkswap-selinux.patch delete mode 100644 util-linux-more-CLOEXEC.patch delete mode 100644 util-linux-mount-context.patch delete mode 100644 util-linux-mount-helper-auto.patch delete mode 100644 util-linux-mount-man-bugs.patch delete mode 100644 util-linux-mount-man-cifs.patch delete mode 100644 util-linux-mount-man-nfs.patch delete mode 100644 util-linux-mount-man-nfs4.patch delete mode 100644 util-linux-mount-nonfs.patch delete mode 100644 util-linux-mount-sloppy.patch delete mode 100644 util-linux-mount-subtree.patch delete mode 100644 util-linux-mount-twiceloop.patch delete mode 100644 util-linux-mount-uhelper.patch delete mode 100644 util-linux-mount-uuid.patch delete mode 100644 util-linux-mount.helper-fake.patch delete mode 100644 util-linux-mountbylabel-dm.patch delete mode 100644 util-linux-mtab-lock.patch delete mode 100644 util-linux-multibyte.patch delete mode 100644 util-linux-namei-logic.patch delete mode 100644 util-linux-ncurses.patch delete mode 100644 util-linux-pamsession.patch delete mode 100644 util-linux-partx-man.patch delete mode 100644 util-linux-ppc-hwclock.patch delete mode 100644 util-linux-procpartitions.patch delete mode 100644 util-linux-raw-handle-nonpresent-devs.patch delete mode 100644 util-linux-raw-man.patch delete mode 100644 util-linux-raw-raw0.patch delete mode 100644 util-linux-rdev-man.patch delete mode 100644 util-linux-schedutils-SCHED_BATCH.patch delete mode 100644 util-linux-schedutils-man.patch delete mode 100644 util-linux-single_letter_weekday.patch delete mode 100644 util-linux-skipraid2.patch delete mode 100644 util-linux-sparc.patch delete mode 100644 util-linux-swap-page.patch delete mode 100644 util-linux-swapon-suspend.patch delete mode 100644 util-linux-swaponsymlink.patch delete mode 100644 util-linux-syscall.patch delete mode 100644 util-linux-umount-sysfs.patch diff --git a/chfn.pamd b/chfn.pamd deleted file mode 100644 index 0aa09c4..0000000 --- a/chfn.pamd +++ /dev/null @@ -1,6 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_rootok.so -auth required pam_listfile.so item=user sense=allow file=/etc/security/chfn.allow onerr=fail -auth include system-auth -account include system-auth -password include system-auth diff --git a/chsh.pamd b/chsh.pamd deleted file mode 100644 index ac578e1..0000000 --- a/chsh.pamd +++ /dev/null @@ -1,6 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_rootok.so -auth required pam_listfile.so item=user sense=allow file=/etc/security/chsh.allow onerr=fail -auth include system-auth -account include system-auth -password include system-auth diff --git a/login.pamd b/login.pamd deleted file mode 100644 index 3995780..0000000 --- a/login.pamd +++ /dev/null @@ -1,18 +0,0 @@ -#%PAM-1.0 -auth required pam_listfile.so item=user sense=deny file=/etc/security/blacklist.login onerr=succeed -auth required pam_securetty.so -auth include system-auth -account required pam_shells.so -account required pam_nologin.so -account required pam_access.so -account include system-auth -password include system-auth -# pam_selinux.so close should be the first session rule -# session required pam_selinux.so close -session include system-auth -session optional pam_console.so -session optional pam_mail.so -# pam_selinux.so open should only be followed by sessions to be executed in the user context -#session required pam_selinux.so open -#session optional pam_keyinit.so force revoke -session optional pam_ck_connector.so diff --git a/rawdevices.init b/rawdevices.init deleted file mode 100644 index 4dec68f..0000000 --- a/rawdevices.init +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/bash -# -# rawdevices This shell script assignes rawdevices to block devices -# -# chkconfig: 345 56 44 -# description: This scripts assignes raw devices to block devices \ -# (such as hard drive partitions). This is for the use \ -# of applications such as Oracle. You can set up the \ -# raw device to block device mapping by editing \ -# the file /etc/sysconfig/rawdevices. -# config: /etc/sysconfig/rawdevices - -[ -f /etc/sysconfig/rawdevices ] || exit 0 - -# If the file just has the default comments, exit. -grep -q -v "^#" /etc/sysconfig/rawdevices 2>/dev/null || exit 0 - -# Source function library. -. /etc/rc.d/init.d/functions - -function assign_raw() -{ - cat /etc/sysconfig/rawdevices | egrep -v '^ *#' | while read RAW BLOCK; do - if [ -n "$RAW" -a -n "$BLOCK" ]; then - if [ "`dirname $RAW`" = "/dev" -a -d /dev/raw ]; then - nls " Please correct your /etc/sysconfig/rawdevices:" - nls " rawdevices are now located in the directory /dev/raw/ " - nls " If the command 'raw' still refers to /dev/raw as a file." - nls " You'll have to upgrade your util-linux package" - exit 0 - fi - if [ "`dirname $RAW`" = "/dev/raw" -a -f /dev/raw ]; then - nls " Please correct your /etc/sysconfig/rawdevices:" - nls " rawdevices are now located in the directory /dev/raw/ " - nls " If the command 'raw' still refers to /dev/raw as a file." - nls " You'll have to upgrade your util-linux package" - exit 0 - fi - - show "$(nls "Assigning device: %s --> %s" "$RAW" "$BLOCK")" - busy - raw $RAW $BLOCK > /dev/null - ok - fi - done -} - -start() { - if [ ! -f /var/lock/subsys/rawdevices ]; then - msg_starting rawdevices - ok - assign_raw - touch /var/lock/subsys/rawdevices - else - msg_already_running rawdevices - fi -} - -stop() { - if [ -f /var/lock/subsys/rawdevices ]; then - msg_stopping rawdevices - busy - rm -f /var/lock/subsys/rawdevices >/dev/null 2>&1 - ok - else - msg_not_running rawdevices - fi -} - -# See how we were called. -case "$1" in - start|reload) - start - ;; - stop) - stop - ;; - status) - raw -qa - ;; - restart|force-reload) - stop - start - ;; - - *) - msg_usage "$0 {start|stop|restart|reload|force-reload|status}" - exit 3 -esac - -exit 0 diff --git a/rawdevices.sysconfig b/rawdevices.sysconfig deleted file mode 100644 index 3c77638..0000000 --- a/rawdevices.sysconfig +++ /dev/null @@ -1,5 +0,0 @@ -# raw device bindings -# format: -# -# example: /dev/raw/raw1 /dev/sda1 -# /dev/raw/raw2 8 5 diff --git a/util-linux-2.12q-more-fake-checks-v2.patch b/util-linux-2.12q-more-fake-checks-v2.patch deleted file mode 100644 index f598a8d..0000000 --- a/util-linux-2.12q-more-fake-checks-v2.patch +++ /dev/null @@ -1,40 +0,0 @@ -> Running `mount -fv /mnt/pnt` incorrectly updates /etc/mtab - -This one is bogus. - -Manpage: - -===== --f Causes everything to be done except for the actual system call; - if it's not obvious, this ``fakes'' mounting the file system. This option - is useful in conjunction with the -v flag to determine what the mount - command is trying to do. It can also be used to add entries for devices that - were mounted earlier with the -n option. -===== - -Also, we need it in /etc/init.d/checkroot to regen /etc/mtab ... - - -======================================================================= -Running `mount -afvt type` incorrectly warns that 'nothing was mounted' - ---- mount/mount.c -+++ mount/mount.c -#@@ -659,7 +659,7 @@ -# if (verbose) -# print_one (&mnt); -# -#- if (!nomtab && mtab_is_writable()) { -#+ if (!fake && !nomtab && mtab_is_writable()) { -# if (flags & MS_REMOUNT) -# update_mtab (mnt.mnt_dir, &mnt); -# else { -@@ -1629,7 +1629,7 @@ - case 0: - /* mount -a */ - result = do_mount_all (types, options, test_opts); -- if (result == 0 && verbose) -+ if (result == 0 && verbose && !fake) - error(_("nothing was mounted")); - break; - diff --git a/util-linux-2.12q-update-mtab-when-moving.patch b/util-linux-2.12q-update-mtab-when-moving.patch deleted file mode 100644 index 34927d4..0000000 --- a/util-linux-2.12q-update-mtab-when-moving.patch +++ /dev/null @@ -1,33 +0,0 @@ -Running `mount --move /foo /bar` would leave the old /foo entry in /etc/mtab -and create a new /bar entry with wrong info. - -http://bugs.gentoo.org/104697 - ---- mount/mount.c -+++ mount/mount.c -@@ -665,6 +665,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.12q-update_mtab-fixes.patch b/util-linux-2.12q-update_mtab-fixes.patch deleted file mode 100644 index 7e1c9db..0000000 --- a/util-linux-2.12q-update_mtab-fixes.patch +++ /dev/null @@ -1,68 +0,0 @@ -This fixes a few issues with update_mtab(): -- If it is a remount, and only mnt_opts needs updating, mc->m.mnt_opts is set - to point to instead->mnt_opts, rather than allocating a new string, which - would cause a double free if the caller actually freed the passed mnt_opts, - as we free mc->m.mnt_opts before returning to the caller. -- Mostly the same issue as above. If mtab does not contain the new entry, then - absent->m is set to point to instead, which would have cause a double free - if absent was inserted properly into the linked list, since we free all - elements of absent before returning to the caller. -- If mtab does not contain the new entry, then only mc0->prev is updated to - point to absent, but not the old mc0->prev's nxt pointer. Because we then - use the nxt pointers to write the new mtab, absent is not added to the new - mtab. -- If mtab is empty, absent->prev should be set to mc0, and not mc0->prev, as - it will be NULL. -- Memory leak if we have to abort before mc0 and co are freed. - -Patch by Martin Schlemmer - - ---- util-linux-2.12q/mount/fstab.c 2005-09-14 15:30:10.000000000 +0200 -+++ util-linux-2.12q.az/mount/fstab.c 2005-09-14 15:31:48.000000000 +0200 -@@ -604,15 +604,32 @@ update_mtab (const char *dir, struct my_ - free(mc); - } - } else { -- /* A remount */ -- mc->m.mnt_opts = instead->mnt_opts; -+ /* A remount. */ -+ my_free(mc->m.mnt_opts); -+ /* Need to alloc memory, else we might -+ * run into issues if both we and the caller frees -+ * mnt_opts ... */ -+ mc->m.mnt_opts = xstrdup(instead->mnt_opts); - } - } else if (instead) { - /* not found, add a new entry */ - absent = xmalloc(sizeof(*absent)); -- absent->m = *instead; -+ /* Cannot just set absent->m to instead, as we free absent -+ * below, and the caller might free instead */ -+ absent->m.mnt_fsname = xstrdup(instead->mnt_fsname); -+ absent->m.mnt_dir = xstrdup(instead->mnt_dir); -+ absent->m.mnt_type = xstrdup(instead->mnt_type); -+ absent->m.mnt_opts = xstrdup(instead->mnt_opts); -+ absent->m.mnt_freq = instead->mnt_freq; -+ absent->m.mnt_passno = instead->mnt_passno; -+ - absent->nxt = mc0; -- absent->prev = mc0->prev; -+ if (mc0->prev != NULL) { -+ absent->prev = mc0->prev; -+ mc0->prev->nxt = absent; -+ } else { -+ absent->prev = mc0; -+ } - mc0->prev = absent; - if (mc0->nxt == NULL) - mc0->nxt = absent; -@@ -624,6 +641,8 @@ update_mtab (const char *dir, struct my_ - int errsv = errno; - error (_("cannot open %s (%s) - mtab not updated"), - MOUNTED_TEMP, strerror (errsv)); -+ /* Do not leak memory */ -+ discard_mntentchn(mc0); - goto leave; - } - diff --git a/util-linux-2.12q-use-update_mtab-for-fake.patch b/util-linux-2.12q-use-update_mtab-for-fake.patch deleted file mode 100644 index 5d0b436..0000000 --- a/util-linux-2.12q-use-update_mtab-for-fake.patch +++ /dev/null @@ -1,16 +0,0 @@ -Use update_mtab() to update /etc/mtab on fake mounts (mount -f), else we get -dup entries in /etc/mtab. - -Patch by Mike Frysinger - ---- util-linux-2.12q/mount/mount.c 2005-09-14 15:37:43.000000000 +0200 -+++ util-linux-2.12q.az/mount/mount.c 2005-09-14 15:27:14.000000000 +0200 -@@ -662,7 +662,7 @@ update_mtab_entry(const char *spec, cons - print_one (&mnt); - - if (!nomtab && mtab_is_writable()) { -- if (flags & MS_REMOUNT) -+ if (fake || (flags & MS_REMOUNT)) - update_mtab (mnt.mnt_dir, &mnt); - else { - mntFILE *mfp; diff --git a/util-linux-ac-dirs.patch b/util-linux-ac-dirs.patch deleted file mode 100644 index aba12e4..0000000 --- a/util-linux-ac-dirs.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- util-linux-2.13-pre7/config/include-Makefile.am~ 2005-11-17 02:30:10.000000000 +0100 -+++ util-linux-2.13-pre7/config/include-Makefile.am 2007-03-24 02:11:24.000000000 +0100 -@@ -1,6 +1,6 @@ --usrbinexecdir = $(prefix)/usr/bin --usrsbinexecdir = $(prefix)/usr/sbin --datadir = $(prefix)/usr/share -+usrbinexecdir = $(prefix)/bin -+usrsbinexecdir = $(prefix)/sbin -+datadir = $(prefix)/share - infodir = $(datadir)/info - mandir = $(datadir)/man - ---- util-linux-2.13-pre7/getopt/Makefile.am~ 2005-08-14 13:33:14.000000000 +0200 -+++ util-linux-2.13-pre7/getopt/Makefile.am 2007-03-24 02:18:15.000000000 +0100 -@@ -6,6 +6,6 @@ - - man_MANS = getopt.1 - --exampledir = $(prefix)/usr/share/getopt/ -+exampledir = $(prefix)/src/examples/getopt/ - example_DATA = getopt-parse.bash getopt-parse.tcsh \ - getopt-test.bash getopt-test.tcsh diff --git a/util-linux-amd64.patch b/util-linux-amd64.patch deleted file mode 100644 index eb6da06..0000000 --- a/util-linux-amd64.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN util-linux-2.12.org/misc-utils/whereis.c util-linux-2.12/misc-utils/whereis.c ---- util-linux-2.12.org/misc-utils/whereis.c 2003-11-16 15:32:12.000000000 +0100 -+++ util-linux-2.12/misc-utils/whereis.c 2003-11-16 15:32:43.000000000 +0100 -@@ -66,6 +66,8 @@ - "/usr/etc", - "/lib", - "/usr/lib", -+ "/lib64", -+ "/usr/lib64", - "/usr/games", - "/usr/games/bin", - "/usr/games/lib", diff --git a/util-linux-audit-hwclock.patch b/util-linux-audit-hwclock.patch deleted file mode 100644 index 1d4dff8..0000000 --- a/util-linux-audit-hwclock.patch +++ /dev/null @@ -1,316 +0,0 @@ -- util-linux updates for new audit system - -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-audit-login.patch b/util-linux-audit-login.patch deleted file mode 100644 index 97f4efb..0000000 --- a/util-linux-audit-login.patch +++ /dev/null @@ -1,103 +0,0 @@ -- add audit message to login - -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-blk.patch b/util-linux-blk.patch deleted file mode 100644 index 06a46ac..0000000 --- a/util-linux-blk.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff -urN util-linux-2.12q.org/disk-utils/blockdev.c util-linux-2.12q/disk-utils/blockdev.c ---- util-linux-2.12q.org/disk-utils/blockdev.c 2004-08-18 19:52:20.000000000 +0200 -+++ util-linux-2.12q/disk-utils/blockdev.c 2005-02-27 19:35:19.000000000 +0100 -@@ -9,9 +9,14 @@ - #include - #include - #include -+#include - - #include "nls.h" - -+#ifdef LIBC_HEADERS_VERSION -+/* Fixed headers detected */ -+#include -+#else - /* Since it is impossible to include , let us - give the ioctls explicitly. */ - -@@ -28,6 +33,7 @@ - #define BLKBSZSET _IOW(0x12,113,size_t) - #define BLKGETSIZE64 _IOR(0x12,114,size_t) - #endif -+#endif - - /* Maybe could be included */ - #ifndef HDIO_GETGEO -diff -urN util-linux-2.12q.org/disk-utils/elvtune.c util-linux-2.12q/disk-utils/elvtune.c ---- util-linux-2.12q.org/disk-utils/elvtune.c 2004-09-19 15:57:09.000000000 +0200 -+++ util-linux-2.12q/disk-utils/elvtune.c 2005-02-27 19:34:27.000000000 +0100 -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include "nls.h" - - /* this has to match with the kernel structure */ -@@ -40,9 +41,14 @@ - int max_bomb_segments; - } blkelv_ioctl_arg_t; - -+#ifdef LIBC_HEADERS_VERSION -+/* Fixed headers detected */ -+#include -+#else - /* ioctls introduced in 2.2.16, removed in 2.5.58 */ - #define BLKELVGET _IOR(0x12,106,size_t) - #define BLKELVSET _IOW(0x12,107,size_t) -+#endif - - static void - usage(void) { -diff -urN util-linux-2.12q.org/fdisk/common.h util-linux-2.12q/fdisk/common.h ---- util-linux-2.12q.org/fdisk/common.h 2004-09-06 20:07:11.000000000 +0200 -+++ util-linux-2.12q/fdisk/common.h 2005-02-27 19:35:53.000000000 +0100 -@@ -3,11 +3,18 @@ - /* including fails */ - #include - #include -+#include -+ -+#ifdef LIBC_HEADERS_VERSION -+/* Fixed headers detected */ -+#include -+#else - #define BLKRRPART _IO(0x12,95) /* re-read partition table */ - #define BLKGETSIZE _IO(0x12,96) /* return device size */ - #define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */ - #define BLKSSZGET _IO(0x12,104) /* get block device sector size */ - #define BLKGETSIZE64 _IOR(0x12,114,size_t) /* size in bytes */ -+#endif - - /* including also fails */ - struct hd_geometry { diff --git a/util-linux-blockdev.init b/util-linux-blockdev.init deleted file mode 100644 index b5040a3..0000000 --- a/util-linux-blockdev.init +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/sh -# -# blockdev This shell script takes care of starting and stopping blockdev. -# -# chkconfig: 2345 01 99 -# description: blockdev -# -# processname: blockdev -# config: -# pidfile: - -[ -f /etc/sysconfig/blockdev ] || exit 0 - -blockdevs=$(awk -F= '!/^#/ && !/^$/ {if ($2) print $1}' /etc/sysconfig/blockdev) -if [ -z "$blockdevs" ]; then - case "$1" in - start|stop|restart|force-reload) - exit 0 - ;; - esac -fi - -# Source function library. -. /etc/rc.d/init.d/functions - -# Source blockdev configuration. -. /etc/sysconfig/blockdev - -start() { - if [ ! -f /var/lock/subsys/blockdev ]; then - for var in $blockdevs; do - realdrive= - drive=${var#BLOCKDEV_} - if [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then - realdrive="/dev/${drive}" - elif [ -e "/dev/mapper/${drive}" ]; then - realdrive="/dev/mapper/${drive}" - elif drive=$(echo $drive | tr _ -) && [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then - realdrive="/dev/${drive}" - elif [ -e "/dev/mapper/${drive}" ]; then - realdrive="/dev/mapper/${drive}" - fi - - if [ -n "$realdrive" ]; then - eval PARAMS=\$$var - if [ -n "${PARAMS}" ]; then - show "Setting parameters for block drive %s (%s)" "$drive" "$PARAMS" - busy - /sbin/blockdev ${PARAMS} $realdrive - ok - fi - fi - done - RETVAL=$? - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/blockdev - else - msg_already_running blockdev - fi -} - -stop() { - # Stop daemons. - if [ ! -f /var/lock/subsys/blockdev ]; then - msg_not_running blockdev - fi - rm -f /var/lock/subsys/blockdev -} - -RETVAL=0 -# See how we were called. -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart|force-reload) - stop - start - ;; - status) - if [ "$blockdevs" ]; then - echo "blockdev configured for:" - for var in $blockdevs; do - drive=${var#BLOCKDEV_} - echo -n "- $drive: " - - realdrive= - if [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then - realdrive="/dev/${drive}" - elif [ -e "/dev/mapper/${drive}" ]; then - realdrive="/dev/mapper/${drive}" - elif drive=$(echo $drive | tr _ -) && [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then - realdrive="/dev/${drive}" - elif [ -e "/dev/mapper/${drive}" ]; then - realdrive="/dev/mapper/${drive}" - fi - - eval PARAMS=\$$var - if [ -n "$realdrive" ]; then - echo "${PARAMS}; device=$realdrive" - else - echo "${PARAMS}; device not present" - fi - - done - else - echo "no devices configured for blockdev" - fi - ;; - *) - msg_usage "$0 {start|stop|restart|force-reload|status}" - exit 3 -esac - -exit $RETVAL diff --git a/util-linux-blockdev.sysconfig b/util-linux-blockdev.sysconfig deleted file mode 100644 index 3f8c633..0000000 --- a/util-linux-blockdev.sysconfig +++ /dev/null @@ -1,13 +0,0 @@ -# This file lets you set your block device parameters for better performance. -# If device name contains dash (-), then it's translated to underscore (_) here. -# You may also use device names from /dev/mapper. -# -# See blockdev(8) for details of blockdev arguments. - -#BLOCKDEV_hda= -#BLOCKDEV_hdb="--setra 4096" -#BLOCKDEV_hdb= -#BLOCKDEV_hdc= -#BLOCKDEV_hdd= -#BLOCKDEV_lvm_rootfs= -#BLOCKDEV_dm_0= diff --git a/util-linux-chsh.patch b/util-linux-chsh.patch deleted file mode 100644 index 9635a9e..0000000 --- a/util-linux-chsh.patch +++ /dev/null @@ -1,21 +0,0 @@ -- chsh to /bin/sh leaves shell field of /etc/passwd blank - ---- 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-col-EILSEQ.patch b/util-linux-col-EILSEQ.patch deleted file mode 100644 index e3989cc..0000000 --- a/util-linux-col-EILSEQ.patch +++ /dev/null @@ -1,40 +0,0 @@ -- col truncates data - ---- 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-cramfs-maxentries.patch b/util-linux-cramfs-maxentries.patch deleted file mode 100644 index 5b91588..0000000 --- a/util-linux-cramfs-maxentries.patch +++ /dev/null @@ -1,49 +0,0 @@ -- mkfs.cramfs dies creating Fedora installer image - ---- 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-cramfs-zerofiles.patch b/util-linux-cramfs-zerofiles.patch deleted file mode 100644 index 9b96bea..0000000 --- a/util-linux-cramfs-zerofiles.patch +++ /dev/null @@ -1,13 +0,0 @@ -- mkfs.cramfs doesn't work correctly with empty files - ---- 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-ctrlaltdel-man.patch b/util-linux-ctrlaltdel-man.patch deleted file mode 100644 index 02f48b8..0000000 --- a/util-linux-ctrlaltdel-man.patch +++ /dev/null @@ -1,12 +0,0 @@ -- Non-existant simpleinit(8) mentioned in ctrlaltdel(8) - ---- 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-ctty3.patch b/util-linux-ctty3.patch deleted file mode 100644 index 5ac0c03..0000000 --- a/util-linux-ctty3.patch +++ /dev/null @@ -1,106 +0,0 @@ -The login program (which allows users to gain access to the system) does -not handle signals correctly, causing some programs to stay running after -the user has logged out. - ---- 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-dm_crypt.patch b/util-linux-dm_crypt.patch deleted file mode 100644 index 69a9fe1..0000000 --- a/util-linux-dm_crypt.patch +++ /dev/null @@ -1,430 +0,0 @@ -diff -urN util-linux-2.12q.org/mount/cryptsetup.c util-linux-2.12q/mount/cryptsetup.c ---- util-linux-2.12q.org/mount/cryptsetup.c 1970-01-01 01:00:00.000000000 +0100 -+++ util-linux-2.12q/mount/cryptsetup.c 2005-02-27 19:26:34.000000000 +0100 -@@ -0,0 +1,214 @@ -+/* -+ * cryptsetup.c - setup and control encrypted devices -+ */ -+ -+#include -+#include -+#include -+ -+#include -+ -+#include "cryptsetup.h" -+#include "nls.h" -+ -+extern int verbose; -+extern char *xstrdup (const char *s); /* not: #include "sundries.h" */ -+extern void *xmalloc (size_t size); /* idem */ -+extern void error (const char *fmt, ...); /* idem */ -+ -+#ifdef CRYPT_FLAG_READONLY -+ -+#define BUFFER_SIZE 128 -+#define DEFAULT_HASH "ripemd160" -+#define DEFAULT_KEYSIZE 256 -+ -+static char * -+xstrtok(char *s, char delim) { -+ static char *p; -+ -+ if (!s) -+ s = p; -+ if (s) { -+ p = strchr(s, delim); -+ if (p) -+ *p++ = '\0'; -+ } -+ return s; -+} -+ -+int -+set_crypt(char **cryptdev, const char *realdev, int offset, -+ char **encryption, int pfd, int *cryptro) { -+ struct crypt_options options; -+ char buffer[BUFFER_SIZE]; -+ const char *dir = crypt_get_dir(); -+ const char *name = NULL; -+ char *p, *q; -+ int ret; -+ -+ if (!dir) { -+ error(_("mount: crypt engine not ready")); -+ return 1; -+ } -+ -+ if (**encryption == '@') { -+ int len = strlen(dir); -+ p = *encryption + 1; -+ if (strncmp(dir, p, len) == 0 && p[len] == '/') -+ p += len + 1; -+ q = strchr(p, ':'); -+ if (q) -+ *q++ = '\0'; -+ else -+ q = p + strlen(p); -+ -+ name = p; -+ *encryption = q; -+ } -+ -+ if (!name) { -+ p = (char *)realdev; -+ if (*p == '/') -+ p++; -+ if (strncmp(p, "dev/", 4) == 0) -+ p += 4; -+ for(q = buffer; *p && q < &buffer[BUFFER_SIZE - 2]; p++) -+ switch(*p) { -+ case ':': -+ case '/': -+ *q++ = '-'; -+ break; -+ case '-': -+ *q++ = '-'; -+ *q++ = '-'; -+ break; -+ default: -+ *q++ = *p; -+ } -+ strncpy(q, "-crypt", BUFFER_SIZE - (q - buffer)); -+ buffer[BUFFER_SIZE - 1] = '\0'; -+ name = buffer; -+ } -+ -+ p = xstrdup(*encryption); -+ -+ memset(&options, 0, sizeof options); -+ options.name = name; -+ options.device = realdev; -+ options.cipher = xstrtok(p, ':'); -+ q = xstrtok(NULL, ':'); -+ options.key_size = q ? strtoul(q, NULL, 0) : 0; -+ if (!options.key_size) -+ options.key_size = DEFAULT_KEYSIZE; -+ options.hash = xstrtok(NULL, ':'); -+ if (!(options.hash && *options.hash)) -+ options.hash = DEFAULT_HASH; -+ options.key_file = xstrtok(NULL, ':'); -+ if (!(options.key_file && *options.key_file)) -+ options.key_file = NULL; -+ options.passphrase_fd = (pfd >= 0) ? pfd : 0; -+ options.flags = 0; -+ if (*cryptro) -+ options.flags |= CRYPT_FLAG_READONLY; -+ options.offset = offset; -+ -+ if (options.offset % 512) { -+ error(_("mount: offset must be a multiple of 512 bytes")); -+ return 1; -+ } -+ options.offset >>= 9; -+ -+ if (options.key_size % 8) { -+ error(_("mount: key size must be a multiple of 8 bits")); -+ return 1; -+ } -+ options.key_size /= 8; -+ -+ ret = crypt_create_device(&options); -+ -+ free(p); -+ -+ if (ret < 0) { -+ /* use dev as buffer */ -+ char *errorstr = buffer; -+ crypt_get_error(errorstr, BUFFER_SIZE); -+ if (!verbose) -+ errorstr = strerror(-ret); -+ -+ error(_("mount: cryptsetup failed with: %s"), errorstr); -+ return 1; -+ } -+ -+ *cryptdev = (char *)xmalloc(strlen(dir) + strlen(name) + 2); -+ sprintf(*cryptdev, "%s/%s", dir, name); -+ -+ if (options.flags & CRYPT_FLAG_READONLY) -+ *cryptro = 1; -+ -+ return 0; -+} -+ -+int -+del_crypt (const char *device) { -+ struct crypt_options options; -+ const char *dir = crypt_get_dir(); -+ int len = strlen(dir); -+ int ret; -+ -+ if (!dir) { -+ error(_("mount: crypt engine not ready")); -+ return 1; -+ } -+ -+ if (*device == '@') { -+ char *p; -+ device++; -+ p = strchr(device, ':'); -+ if (p) -+ *p = '\0'; -+ } -+ -+ if (strncmp(dir, device, len) == 0 && device[len] == '/') -+ device += len + 1; -+ -+ memset(&options, 0, sizeof options); -+ options.name = device; -+ -+ ret = crypt_remove_device(&options); -+ if (ret < 0) { -+ char buffer[BUFFER_SIZE]; -+ char *errorstr = buffer; -+ crypt_get_error(errorstr, BUFFER_SIZE); -+ if (!verbose) -+ errorstr = strerror(-ret); -+ -+ error(_("mount: cryptsetup failed with: %s"), errorstr); -+ return 1; -+ } -+ -+ return 0; -+} -+ -+#else /* without CRYPT_FLAG_READONLY */ -+ -+static void -+mutter(void) { -+ fprintf(stderr, -+ _("This mount was compiled without cryptsetup support. " -+ "Please recompile.\n")); -+} -+ -+int -+set_crypt(char **cryptdev, const char *realdev, int offset, -+ char **encryption, int pfd, int *cryptro) { -+ mutter(); -+ return 1; -+} -+ -+int -+del_crypt (const char *device) { -+ mutter(); -+ return 1; -+} -+ -+#endif -diff -urN util-linux-2.12q.org/mount/cryptsetup.h util-linux-2.12q/mount/cryptsetup.h ---- util-linux-2.12q.org/mount/cryptsetup.h 1970-01-01 01:00:00.000000000 +0100 -+++ util-linux-2.12q/mount/cryptsetup.h 2005-02-27 19:26:34.000000000 +0100 -@@ -0,0 +1,4 @@ -+extern int verbose; -+extern int set_crypt(char **, const char *, int, char **, -+ int, int *); -+extern int del_crypt(const char *); -diff -urN util-linux-2.12q.org/mount/Makefile.am util-linux-2.12q/mount/Makefile.am ---- util-linux-2.12q.org/mount/Makefile.am 2005-02-27 19:25:37.000000000 +0100 -+++ util-linux-2.12q/mount/Makefile.am 2005-02-27 19:27:21.000000000 +0100 -@@ -9,17 +9,17 @@ - - 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 \ -+ getusername.c cryptsetup.c \ - nfsmount.c nfsmount_xdr.c nfsmount_clnt.c \ - lomount.c - --mount_LDADD = $(top_srcdir)/lib/libenv.a $(top_srcdir)/lib/libsetproctitle.a -+mount_LDADD = $(top_srcdir)/lib/libenv.a $(top_srcdir)/lib/libsetproctitle.a -lcryptsetup - - umount_SOURCES = umount.c fstab.c sundries.c xmalloc.c realpath.c mntent.c \ - getusername.c get_label_uuid.c mount_by_label.c mount_blkid.c \ -- lomount.c -+ lomount.c cryptsetup.c - --umount_LDADD = $(top_srcdir)/lib/libenv.a -+umount_LDADD = $(top_srcdir)/lib/libenv.a -lcryptsetup - - swapon_SOURCES = swapon.c xmalloc.c \ - get_label_uuid.c mount_by_label.c mount_blkid.c -diff -urN util-linux-2.12q.org/mount/mount.c util-linux-2.12q/mount/mount.c ---- util-linux-2.12q.org/mount/mount.c 2004-12-21 23:00:36.000000000 +0100 -+++ util-linux-2.12q/mount/mount.c 2005-02-27 19:29:40.000000000 +0100 -@@ -28,6 +28,7 @@ - #include "mntent.h" - #include "fstab.h" - #include "lomount.h" -+#include "cryptsetup.h" - #include "loop.h" - #include "linux_fs.h" /* for BLKGETSIZE */ - #include "mount_guess_rootdev.h" -@@ -98,6 +99,7 @@ - #define MS_USER 0x20000000 - #define MS_OWNER 0x10000000 - #define MS_GROUP 0x08000000 -+#define MS_CRYPT 0x00040000 - #define MS_COMMENT 0x00020000 - #define MS_LOOP 0x00010000 - -@@ -607,7 +609,7 @@ - *type = opt_vfstype; - } - -- *loop = ((*flags & MS_LOOP) || *loopdev || opt_offset || opt_encryption); -+ *loop = ((*flags & MS_LOOP) || *loopdev || (opt_offset && !opt_encryption)); - *loopfile = *spec; - - if (*loop) { -@@ -626,7 +628,7 @@ - printf(_("mount: going to use the loop device %s\n"), *loopdev); - offset = opt_offset ? strtoull(opt_offset, NULL, 0) : 0; - if (set_loop(*loopdev, *loopfile, offset, -- opt_encryption, pfd, &loopro)) { -+ NULL /* opt_encryption */, pfd, &loopro)) { - if (verbose) - printf(_("mount: failed setting up loop device\n")); - return EX_FAIL; -@@ -636,6 +638,42 @@ - *spec = *loopdev; - if (loopro) - *flags |= MS_RDONLY; -+ /* set offset to 0 so that crypto setup doesn't add an offset too */ -+ opt_offset = 0; -+ } -+ } -+ -+ return 0; -+} -+ -+static int -+crypt_check(char **spec, char **type, int *flags, -+ int *crypt, char **cryptdev, char **realdev) { -+ int offset; -+ -+ *crypt = ((*flags & MS_CRYPT) || opt_encryption); -+ *realdev = *spec; -+ -+ if (*crypt) { -+ *flags |= MS_CRYPT; -+ if (fake) { -+ if (verbose) -+ printf(_("mount: skipping the setup of an encrypted device\n")); -+ } else { -+ int cryptro = (*flags & MS_RDONLY); -+ -+ offset = opt_offset ? strtoul(opt_offset, NULL, 0) : 0; -+ if (set_crypt(cryptdev, *realdev, offset, -+ &opt_encryption, pfd, &cryptro)) { -+ if (verbose) -+ printf(_("mount: failed setting up encrypted device\n")); -+ return EX_FAIL; -+ } -+ if (verbose > 1) -+ printf(_("mount: setup crypt device successfully\n")); -+ *spec = *cryptdev; -+ if (cryptro) -+ *flags |= MS_RDONLY; - } - } - -@@ -788,7 +826,9 @@ - const char *opts, *spec, *node, *types; - char *user = 0; - int loop = 0; -+ int crypt = 0; - const char *loopdev = 0, *loopfile = 0; -+ char *cryptdev = 0, *realdev = 0; - struct stat statbuf; - int nfs_mount_version = 0; /* any version */ - -@@ -823,6 +863,10 @@ - res = loop_check(&spec, &types, &flags, &loop, &loopdev, &loopfile); - if (res) - goto out; -+ -+ res = crypt_check(&spec, &types, &flags, &crypt, &cryptdev, &realdev); -+ if (res) -+ goto out; - } - - /* -@@ -863,8 +907,13 @@ - /* Mount succeeded, report this (if verbose) and write mtab entry. */ - if (loop) - opt_loopdev = loopdev; -+ if (crypt) { -+ char *tmp = xmalloc(strlen(cryptdev) + strlen(opt_encryption) + 3); -+ sprintf(tmp, "@%s:%s", cryptdev, opt_encryption); -+ opt_encryption = tmp; -+ } - -- update_mtab_entry(loop ? loopfile : spec, -+ update_mtab_entry(loop ? loopfile : crypt ? realdev : spec, - node, - types ? types : "unknown", - fix_opts_string (flags & ~MS_NOMTAB, extra_opts, user), -@@ -879,6 +928,8 @@ - - mnt_err = errno; - -+ if (crypt) -+ del_crypt(spec); - if (loop) - del_loop(spec); - -diff -urN util-linux-2.12q.org/mount/umount.c util-linux-2.12q/mount/umount.c ---- util-linux-2.12q.org/mount/umount.c 2004-12-20 23:03:45.000000000 +0100 -+++ util-linux-2.12q/mount/umount.c 2005-02-27 19:26:34.000000000 +0100 -@@ -15,6 +15,7 @@ - #include "sundries.h" - #include "getusername.h" - #include "lomount.h" -+#include "cryptsetup.h" - #include "loop.h" - #include "fstab.h" - #include "env.h" -@@ -274,6 +275,7 @@ - int res; - int status; - const char *loopdev; -+ const char *cryptdev; - - /* Special case for root. As of 0.99pl10 we can (almost) unmount root; - the kernel will remount it readonly so that we can carry on running -@@ -365,12 +367,33 @@ - } - } - -- loopdev = 0; - if (res >= 0) { - /* Umount succeeded */ - if (verbose) - printf (_("%s umounted\n"), spec); -+ } -+ -+ cryptdev = 0; -+ if (res >= 0) { -+ /* Free any encrypted devices that we allocated ourselves */ -+ if (mc) { -+ char *optl; -+ -+ optl = mc->m.mnt_opts ? xstrdup(mc->m.mnt_opts) : ""; -+ for (optl = strtok (optl, ","); optl; -+ optl = strtok (NULL, ",")) { -+ if (!strncmp(optl, "encryption=", 11)) { -+ cryptdev = optl+11; -+ break; -+ } -+ } -+ } -+ } -+ if (cryptdev) -+ del_crypt(cryptdev); - -+ loopdev = 0; -+ if (res >= 0) { - /* Free any loop devices that we allocated ourselves */ - if (mc) { - char *optl; diff --git a/util-linux-execl.patch b/util-linux-execl.patch deleted file mode 100644 index d80c939..0000000 --- a/util-linux-execl.patch +++ /dev/null @@ -1,27 +0,0 @@ -- NULL is better than zero at end of execl() - ---- 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-fdformat-ide.patch b/util-linux-fdformat-ide.patch deleted file mode 100644 index 80ea0b6..0000000 --- a/util-linux-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-fdisk-b-4096.patch b/util-linux-fdisk-b-4096.patch deleted file mode 100644 index b2dde20..0000000 --- a/util-linux-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-fdisk-gpt.patch b/util-linux-fdisk-gpt.patch deleted file mode 100644 index 3476e71..0000000 --- a/util-linux-fdisk-gpt.patch +++ /dev/null @@ -1,495 +0,0 @@ -- sfdisk warning for large partitions, gpt - ---- 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-fdisk-isfull.patch b/util-linux-fdisk-isfull.patch deleted file mode 100644 index 4485a4c..0000000 --- a/util-linux-fdisk-isfull.patch +++ /dev/null @@ -1,106 +0,0 @@ -- fdisk -l inside xen guest shows no disks -- "sfdisk -l" tries to open partitions - ---- 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-fdisk-sectors.patch b/util-linux-fdisk-sectors.patch deleted file mode 100644 index 1226f25..0000000 --- a/util-linux-fdisk-sectors.patch +++ /dev/null @@ -1,347 +0,0 @@ -- wrong number of sectors for large disks - ---- 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-fdisk.patch b/util-linux-fdisk.patch deleted file mode 100644 index bbee9b5..0000000 --- a/util-linux-fdisk.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -Nur util-linux-2.9r/fdisk/fdisk.c util-linux-2.9r.pld/fdisk/fdisk.c ---- util-linux-2.9r/fdisk/fdisk.c Sat May 1 13:49:47 1999 -+++ util-linux-2.9r.pld/fdisk/fdisk.c Sun May 23 13:47:46 1999 -@@ -2002,8 +2002,12 @@ - printf(_("Boot file unchanged\n")); - else - sgi_set_bootfile(line_ptr); -- } else -- bselect(); -+ } else { -+ printf("Warning: starting partitions at cylinder 1" -+ " will be bad for the health of your\n"); -+ printf("partition table -- start at cylinder 2 instead!\n\n"); -+ bselect(); -+ } - break; - case 'c': - if (sun_label) diff --git a/util-linux-fdisksegv.patch b/util-linux-fdisksegv.patch deleted file mode 100644 index dccec58..0000000 --- a/util-linux-fdisksegv.patch +++ /dev/null @@ -1,34 +0,0 @@ -if all extended partitions are used up adding a new partition will also ask if -you want to add a logical partition. Choosing this option makes fdisk segfault - -*** 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-fhs.patch b/util-linux-fhs.patch deleted file mode 100644 index 24efd45..0000000 --- a/util-linux-fhs.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN util-linux-2.11d.org/include/pathnames.h util-linux-2.11d/include/pathnames.h ---- util-linux-2.11d.org/include/pathnames.h Sun Jun 3 21:48:00 2001 -+++ util-linux-2.11d/include/pathnames.h Sun Jun 3 21:48:47 2001 -@@ -101,7 +105,7 @@ - #define SECURETTY "/etc/securetty" - #define _PATH_UTMP "/var/run/utmp" - #define _PATH_WTMP LOGDIR "/wtmp" --#define _PATH_WTMPLOCK "/etc/wtmplock" -+#define _PATH_WTMPLOCK VARPATH "/lock/wtmplock" - - /* no more . in DEFPATH */ - #define _PATH_DEFPATH "/usr/local/bin:/bin:/usr/bin" diff --git a/util-linux-gcc4.patch b/util-linux-gcc4.patch deleted file mode 100644 index 2e2b082..0000000 --- a/util-linux-gcc4.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- util-linux-2.12q/mount/umount.c.orig 2005-05-24 23:24:57 +0000 -+++ util-linux-2.12q/mount/umount.c 2005-05-24 23:33:08 +0000 -@@ -41,8 +41,6 @@ - #include - #ifdef __NR_umount2 - --static int umount2(const char *path, int flags); -- - _syscall2(int, umount2, const char *, path, int, flags); - - #else /* __NR_umount2 */ diff --git a/util-linux-hexdump-gcc.patch b/util-linux-hexdump-gcc.patch deleted file mode 100644 index f088147..0000000 --- a/util-linux-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-hotkeys.patch b/util-linux-hotkeys.patch deleted file mode 100644 index 6c9b4cf..0000000 --- a/util-linux-hotkeys.patch +++ /dev/null @@ -1,46 +0,0 @@ -- vipw asks for editing shadow in local language but only "Y" is accepted as yes - ---- 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-info.patch b/util-linux-info.patch deleted file mode 100644 index a767114..0000000 --- a/util-linux-info.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -urN util-linux-2.11n.org/sys-utils/ipc.texi util-linux-2.11n/sys-utils/ipc.texi ---- util-linux-2.11n.org/sys-utils/ipc.texi Wed Feb 20 13:35:02 2002 -+++ util-linux-2.11n/sys-utils/ipc.texi Wed Feb 20 13:35:10 2002 -@@ -30,9 +30,9 @@ - programs within the terms of the GNU GPL. - @end titlepage - --@dircategory Miscellaneous -+@dircategory Miscellaneous: - @direntry --* ipc: (ipc). System V style inter process communication -+* ipc: (ipc). System V style inter process communication - @end direntry - - @node Top, Overview, Notes, (dir) -@@ -561,7 +561,7 @@ - @item - buf : allocated by user for reading/writing info. - @item --cmd : IPC_STAT, IPC_SET, IPC_RMID (@xref{syscalls}). -+cmd : IPC_STAT, IPC_SET, IPC_RMID (@xref{syscalls}.) - @end itemize - - IPC_STAT results in the copy of the queue data structure -@@ -1152,7 +1152,7 @@ - @item - shmid : id got from call to shmget. - @item --cmd : IPC_STAT, IPC_SET, IPC_RMID (@xref{syscalls}). -+cmd : IPC_STAT, IPC_SET, IPC_RMID (@xref{syscalls}.) - @itemize @asis - @item - IPC_SET : Used to set the owner uid, gid, and shm_perms.mode field. diff --git a/util-linux-ipcs-shmax.patch b/util-linux-ipcs-shmax.patch deleted file mode 100644 index ce004d5..0000000 --- a/util-linux-ipcs-shmax.patch +++ /dev/null @@ -1,27 +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 -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - #include "nls.h" - - /* X/OPEN tells us to use for semctl() */ -@@ -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 (pages) = %lu\n"), -- (unsigned long) shminfo.shmall); -+ printf (_("max total shared memory (kbytes) = %lu\n"), -+ getpagesize()/1024 * (unsigned long) shminfo.shmall); - printf (_("min seg size (bytes) = %lu\n"), - (unsigned long) shminfo.shmmin); - return; diff --git a/util-linux-ipcs-typo.patch b/util-linux-ipcs-typo.patch deleted file mode 100644 index 3e74ab7..0000000 --- a/util-linux-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-login-hang.patch b/util-linux-login-hang.patch deleted file mode 100644 index 759c9ca..0000000 --- a/util-linux-login-hang.patch +++ /dev/null @@ -1,23 +0,0 @@ -- login will attempt to run if it has no read/write access to its terminal -- login's timeout can fail - needs to call siginterrupt(SIGALRM,1) - ---- 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-login-ipv6.patch b/util-linux-login-ipv6.patch deleted file mode 100644 index 5d9d656..0000000 --- a/util-linux-login-ipv6.patch +++ /dev/null @@ -1,82 +0,0 @@ -- IPv6 support to login command - ---- 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-login-lastlog.patch b/util-linux-login-lastlog.patch deleted file mode 100644 index cd1b4f7..0000000 --- a/util-linux-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-login-pam-acct.patch b/util-linux-login-pam-acct.patch deleted file mode 100644 index ec6ded5..0000000 --- a/util-linux-login-pam-acct.patch +++ /dev/null @@ -1,33 +0,0 @@ -- login omits pam_acct_mgmt & pam_chauthtok when authentication is skipped - ---- 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-login-timeval.patch b/util-linux-login-timeval.patch deleted file mode 100644 index 2f8e46a..0000000 --- a/util-linux-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-look-separator.patch b/util-linux-look-separator.patch deleted file mode 100644 index 75bdc91..0000000 --- a/util-linux-look-separator.patch +++ /dev/null @@ -1,18 +0,0 @@ -- look - doesn't work with separators - ---- 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-losetup-all.patch b/util-linux-losetup-all.patch deleted file mode 100644 index e511472..0000000 --- a/util-linux-losetup-all.patch +++ /dev/null @@ -1,162 +0,0 @@ -- losetup missing option -a [new feature] - ---- 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-losetup-deprecated.patch b/util-linux-losetup-deprecated.patch deleted file mode 100644 index 73e45c0..0000000 --- a/util-linux-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-losetup-rdonly.patch b/util-linux-losetup-rdonly.patch deleted file mode 100644 index f71b69d..0000000 --- a/util-linux-losetup-rdonly.patch +++ /dev/null @@ -1,49 +0,0 @@ -- add -r option to losetup to create a read-only loop - ---- 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-lvm2dupes.patch b/util-linux-lvm2dupes.patch deleted file mode 100644 index 07f4eb5..0000000 --- a/util-linux-lvm2dupes.patch +++ /dev/null @@ -1,29 +0,0 @@ -- At boot time, fsck chokes on LVs listed by label in fstab - ---- 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-managed.patch b/util-linux-managed.patch deleted file mode 100644 index b6cb567..0000000 --- a/util-linux-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, 0 }, /* Silently remove this option (backwards compat use only) */ -+ { "managed", 0, 0, 0 }, /* Silently remove this option */ - { NULL, 0, 0, 0 } - }; - diff --git a/util-linux-mkswap-mounted.patch b/util-linux-mkswap-mounted.patch deleted file mode 100644 index 1053021..0000000 --- a/util-linux-mkswap-mounted.patch +++ /dev/null @@ -1,64 +0,0 @@ -- mkswap "works" without warning on a mounted device - ---- 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-mkswap-selinux.patch b/util-linux-mkswap-selinux.patch deleted file mode 100644 index 004c69d..0000000 --- a/util-linux-mkswap-selinux.patch +++ /dev/null @@ -1,83 +0,0 @@ -- mkswap should automatically add selinux label to swapfile - ---- 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-more-CLOEXEC.patch b/util-linux-more-CLOEXEC.patch deleted file mode 100644 index fe69e7a..0000000 --- a/util-linux-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-mount-context.patch b/util-linux-mount-context.patch deleted file mode 100644 index 31abd3d..0000000 --- a/util-linux-mount-context.patch +++ /dev/null @@ -1,222 +0,0 @@ -- mount does not translate SELIinux context options though libselinux -- Need man page entry for -o context= mount option -- Can't mount with additional contexts - ---- 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-mount-helper-auto.patch b/util-linux-mount-helper-auto.patch deleted file mode 100644 index 37ddb1c..0000000 --- a/util-linux-mount-helper-auto.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-mount-man-bugs.patch b/util-linux-mount-man-bugs.patch deleted file mode 100644 index 1acbfa9..0000000 --- a/util-linux-mount-man-bugs.patch +++ /dev/null @@ -1,29 +0,0 @@ -- missing info about /etc/mtab and /proc/mounts mismatch -- missing info about possible ioctl() and fcntl() problems on NFS filesystem - ---- 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-mount-man-cifs.patch b/util-linux-mount-man-cifs.patch deleted file mode 100644 index df673ef..0000000 --- a/util-linux-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-mount-man-nfs.patch b/util-linux-mount-man-nfs.patch deleted file mode 100644 index 961a998..0000000 --- a/util-linux-mount-man-nfs.patch +++ /dev/null @@ -1,28 +0,0 @@ -- Documentation for 'rsize' and 'wsize' NFS mount options is misleading - ---- 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,12 +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 .) -+.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 hard - The program accessing a file on a NFS mounted file system will hang diff --git a/util-linux-mount-man-nfs4.patch b/util-linux-mount-man-nfs4.patch deleted file mode 100644 index 0e1afd9..0000000 --- a/util-linux-mount-man-nfs4.patch +++ /dev/null @@ -1,114 +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,81 @@ - .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 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. -+.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-mount-nonfs.patch b/util-linux-mount-nonfs.patch deleted file mode 100644 index 37eb008..0000000 --- a/util-linux-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 cryptsetup.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-mount-sloppy.patch b/util-linux-mount-sloppy.patch deleted file mode 100644 index f5778da..0000000 --- a/util-linux-mount-sloppy.patch +++ /dev/null @@ -1,22 +0,0 @@ -- mount not allowing sloppy option - ---- 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[12]; - 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-mount-subtree.patch b/util-linux-mount-subtree.patch deleted file mode 100644 index 77fe475..0000000 --- a/util-linux-mount-subtree.patch +++ /dev/null @@ -1,199 +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. */ -@@ -103,16 +105,18 @@ - #define MS_USER 0x20000000 - #define MS_OWNER 0x10000000 - #define MS_GROUP 0x08000000 --#define MS_CRYPT 0x00040000 --#define MS_COMMENT 0x00020000 -+#define MS_CRYPT 0x04000000 -+#define MS_COMMENT 0x02000000 - #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) - - /* 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_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 @@ - opt_encryption = tmp; - } - -- update_mtab_entry(loop ? loopfile : crypt ? realdev : spec, -+ if (!(mounttype & MS_PROPAGATION)) { -+ update_mtab_entry(loop ? loopfile : crypt ? realdev : 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-mount-twiceloop.patch b/util-linux-mount-twiceloop.patch deleted file mode 100644 index a750828..0000000 --- a/util-linux-mount-twiceloop.patch +++ /dev/null @@ -1,75 +0,0 @@ -- mount allows loopback devices to be mounted - more than once to the same mount point - ---- 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-mount-uhelper.patch b/util-linux-mount-uhelper.patch deleted file mode 100644 index 8c90289..0000000 --- a/util-linux-mount-uhelper.patch +++ /dev/null @@ -1,70 +0,0 @@ -- util-linux should provide plugin infrastructure for HAL - ---- 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-mount-uuid.patch b/util-linux-mount-uuid.patch deleted file mode 100644 index 43a4d7a..0000000 --- a/util-linux-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-mount.helper-fake.patch b/util-linux-mount.helper-fake.patch deleted file mode 100644 index 7ae7989..0000000 --- a/util-linux-mount.helper-fake.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- util-linux-2.12r/mount/mount.c~ 2007-03-20 19:39:37.000000000 +0100 -+++ util-linux-2.12r/mount/mount.c 2007-03-22 16:45:27.000000000 +0100 -@@ -805,6 +805,8 @@ - mountargs[i++] = "-n"; - if (verbose) - mountargs[i++] = "-v"; -+ if (fake) -+ mountargs[i++] = "-f"; - if (oo && *oo) { - mountargs[i++] = "-o"; - mountargs[i++] = oo; diff --git a/util-linux-mountbylabel-dm.patch b/util-linux-mountbylabel-dm.patch deleted file mode 100644 index fd8f567..0000000 --- a/util-linux-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-mtab-lock.patch b/util-linux-mtab-lock.patch deleted file mode 100644 index 8278f7b..0000000 --- a/util-linux-mtab-lock.patch +++ /dev/null @@ -1,153 +0,0 @@ -- Improved /etc/mtab lock -- fix for the mount command and am-utils using different mtab locking - ---- 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-multibyte.patch b/util-linux-multibyte.patch deleted file mode 100644 index e683d90..0000000 --- a/util-linux-multibyte.patch +++ /dev/null @@ -1,281 +0,0 @@ -- better wide chars usage in the cal command -- cal not UTF-8-aware -- more(1) doesn't handle UTF-8 correctly. In particular, underlining is broken. - ---- 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]; -- wchar_t wd_wc[10]; -+ 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 -@@ -385,30 +385,25 @@ - #endif - - for(i = 0 ; i < 7 ; i++ ) { -+ ssize_t space_left; - wd = (i + week1stday) % 7; --#ifdef ENABLE_WIDECHAR -+#ifdef HAVE_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 -@@ -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,23 @@ - my_putstring(state ? ULenter : ULexit); - } - if (c != ' ' || pstate == 0 || state != 0 || ulglitch == 0) -+#ifdef HAVE_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 - if (state && *chUL) { - pr(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-namei-logic.patch b/util-linux-namei-logic.patch deleted file mode 100644 index 723be82..0000000 --- a/util-linux-namei-logic.patch +++ /dev/null @@ -1,132 +0,0 @@ -- namei ignores non-directory components instead of saying "Not a directory" -- namei enforces symlink limits inconsistently - ---- 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-ncurses.patch b/util-linux-ncurses.patch deleted file mode 100644 index ac9221d..0000000 --- a/util-linux-ncurses.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- util-linux-2.13-pre7/misc-utils/Makefile.am~ 2007-03-24 01:14:12.000000000 +0100 -+++ util-linux-2.13-pre7/misc-utils/Makefile.am 2007-03-24 01:14:27.000000000 +0100 -@@ -35,7 +35,8 @@ - if HAVE_NCURSES - usrbinexec_PROGRAMS += setterm - man_MANS += setterm.1 --setterm_LDADD = -lncurses -+setterm_LDADD = -lncurses -ltinfo -+setterm_CFLAGS = -I/usr/include/ncurses - endif - - if BUILD_KILL ---- util-linux-2.13-pre7/text-utils/Makefile.am.orig 2005-08-14 13:33:02.000000000 +0200 -+++ util-linux-2.13-pre7/text-utils/Makefile.am 2007-03-24 01:21:01.000000000 +0100 -@@ -9,9 +9,12 @@ - if HAVE_NCURSES - bin_PROGRAMS = more - usrbinexec_PROGRAMS += ul pg --more_LDADD = -lncurses -+more_LDADD = -lncurses -ltinfo -+more_CFLAGS = -I/usr/include/ncurses - pg_LDADD = -lncurses --ul_LDADD = -lncurses -+pg_CFLAGS = -I/usr/include/ncurses -+ul_LDADD = -lncurses -ltinfo -+ul_CFLAGS = -I/usr/include/ncurses - man_MANS += ul.1 more.1 pg.1 - else - if HAVE_TERMCAP diff --git a/util-linux-pamsession.patch b/util-linux-pamsession.patch deleted file mode 100644 index fec5bca..0000000 --- a/util-linux-pamsession.patch +++ /dev/null @@ -1,14 +0,0 @@ -- Incomplete PAM session support in the login command - -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-partx-man.patch b/util-linux-partx-man.patch deleted file mode 100644 index ff1d023..0000000 --- a/util-linux-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-ppc-hwclock.patch b/util-linux-ppc-hwclock.patch deleted file mode 100644 index 1243b01..0000000 --- a/util-linux-ppc-hwclock.patch +++ /dev/null @@ -1,476 +0,0 @@ -diff -urN util-linux-2.11n.org/clock-ppc.c util-linux-2.11n/clock-ppc.c ---- util-linux-2.11n.org/clock-ppc.c Thu Jan 1 01:00:00 1970 -+++ util-linux-2.11n/clock-ppc.c Thu Mar 7 21:15:39 2002 -@@ -0,0 +1,472 @@ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include -+ -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,0) -+#include -+#else -+#include -+#endif -+ -+/* -+ * Adapted for Power Macintosh by Paul Mackerras. -+ */ -+ -+/* V1.0 -+ * CMOS clock manipulation - Charles Hedrick, hedrick@cs.rutgers.edu, Apr 1992 -+ * -+ * clock [-u] -r - read cmos clock -+ * clock [-u] -w - write cmos clock from system time -+ * clock [-u] -s - set system time from cmos clock -+ * clock [-u] -a - set system time from cmos clock, adjust the time to -+ * correct for systematic error, and put it back to the cmos. -+ * -u indicates cmos clock is kept in universal time -+ * -+ * The program is designed to run setuid, since we need to be able to -+ * write to the CUDA. -+ * -+ ********************* -+ * V1.1 -+ * Modified for clock adjustments - Rob Hooft, hooft@chem.ruu.nl, Nov 1992 -+ * Also moved error messages to stderr. The program now uses getopt. -+ * Changed some exit codes. Made 'gcc 2.3 -Wall' happy. -+ * -+ * I think a small explanation of the adjustment routine should be given -+ * here. The problem with my machine is that its CMOS clock is 10 seconds -+ * per day slow. With this version of clock.c, and my '/etc/rc.local' -+ * reading '/etc/clock -au' instead of '/etc/clock -u -s', this error -+ * is automatically corrected at every boot. -+ * -+ * To do this job, the program reads and writes the file '/etc/adjtime' -+ * to determine the correction, and to save its data. In this file are -+ * three numbers: -+ * -+ * 1) the correction in seconds per day (So if your clock runs 5 -+ * seconds per day fast, the first number should read -5.0) -+ * 2) the number of seconds since 1/1/1970 the last time the program was -+ * used. -+ * 3) the remaining part of a second which was leftover after the last -+ * adjustment -+ * -+ * Installation and use of this program: -+ * -+ * a) create a file '/etc/adjtime' containing as the first and only line: -+ * '0.0 0 0.0' -+ * b) run 'clock -au' or 'clock -a', depending on whether your cmos is in -+ * universal or local time. This updates the second number. -+ * c) set your system time using the 'date' command. -+ * d) update your cmos time using 'clock -wu' or 'clock -w' -+ * e) replace the first number in /etc/adjtime by your correction. -+ * f) put the command 'clock -au' or 'clock -a' in your '/etc/rc.local' -+ * -+ * If the adjustment doesn't work for you, try contacting me by E-mail. -+ * -+ ****** -+ * V1.2 -+ * -+ * Applied patches by Harald Koenig (koenig@nova.tat.physik.uni-tuebingen.de) -+ * Patched and indented by Rob Hooft (hooft@EMBL-Heidelberg.DE) -+ * -+ * A free quote from a MAIL-message (with spelling corrections): -+ * -+ * "I found the explanation and solution for the CMOS reading 0xff problem -+ * in the 0.99pl13c (ALPHA) kernel: the RTC goes offline for a small amount -+ * of time for updating. Solution is included in the kernel source -+ * (linux/kernel/time.c)." -+ * -+ * "I modified clock.c to fix this problem and added an option (now default, -+ * look for USE_INLINE_ASM_IO) that I/O instructions are used as inline -+ * code and not via /dev/port (still possible via #undef ...)." -+ * -+ * With the new code, which is partially taken from the kernel sources, -+ * the CMOS clock handling looks much more "official". -+ * Thanks Harald (and Torsten for the kernel code)! -+ * -+ ****** -+ * V1.3 -+ * Canges from alan@spri.levels.unisa.edu.au (Alan Modra): -+ * a) Fix a few typos in comments and remove reference to making -+ * clock -u a cron job. The kernel adjusts cmos time every 11 -+ * minutes - see kernel/sched.c and kernel/time.c set_rtc_mmss(). -+ * This means we should really have a cron job updating -+ * /etc/adjtime every 11 mins (set last_time to the current time -+ * and not_adjusted to ???). -+ * b) Swapped arguments of outb() to agree with asm/io.h macro of the -+ * same name. Use outb() from asm/io.h as it's slightly better. -+ * c) Changed CMOS_READ and CMOS_WRITE to inline functions. Inserted -+ * cli()..sti() pairs in appropriate places to prevent possible -+ * errors, and changed ioperm() call to iopl() to allow cli. -+ * d) Moved some variables around to localise them a bit. -+ * e) Fixed bug with clock -ua or clock -us that cleared environment -+ * variable TZ. This fix also cured the annoying display of bogus -+ * day of week on a number of machines. (Use mktime(), ctime() -+ * rather than asctime() ) -+ * f) Use settimeofday() rather than stime(). This one is important -+ * as it sets the kernel's timezone offset, which is returned by -+ * gettimeofday(), and used for display of MSDOS and OS2 file -+ * times. -+ * g) faith@cs.unc.edu added -D flag for debugging -+ * -+ * V1.4: alan@SPRI.Levels.UniSA.Edu.Au (Alan Modra) -+ * Wed Feb 8 12:29:08 1995, fix for years > 2000. -+ * faith@cs.unc.edu added -v option to print version. -+ * -+ * August 1996 Tom Dyas (tdyas@eden.rutgers.edu) -+ * Converted to be compatible with the SPARC /dev/rtc driver. -+ * -+ */ -+ -+#define VERSION "1.4" -+#define ADB_PACKET 0 -+#define CUDA_PACKET 1 -+#define ERROR_PACKET 2 -+#define TIMER_PACKET 3 -+#define POWER_PACKET 4 -+#define MACIIC_PACKET 5 -+#define PMU_PACKET 6 -+ -+/* Here the information for time adjustments is kept. */ -+#define ADJPATH "/etc/adjtime" -+ -+/* Apparently the RTC on PowerMacs stores seconds since 1 Jan 1904 */ -+#define RTC_OFFSET 2082844800 -+ -+/* used for debugging the code. */ -+/*#define KEEP_OFF */ -+ -+/* Globals */ -+int readit = 0; -+int adjustit = 0; -+int writeit = 0; -+int setit = 0; -+int universal = 0; -+int debug = 0; -+ -+time_t mkgmtime(struct tm *); -+ -+volatile void -+usage ( void ) -+{ -+ (void) fprintf (stderr, -+ "clock [-u] -r|w|s|a|v\n" -+ " r: read and print CMOS clock\n" -+ " w: write CMOS clock from system time\n" -+ " s, --hctosys: set system time from CMOS clock\n" -+ " a, --systohc: get system time and adjust CMOS clock\n" -+ " u, --utc: CMOS clock is in universal time\n" -+ " v: print version (" VERSION ") and exit\n" -+ ); -+ exit(EXIT_FAILURE); -+} -+ -+int adb_fd; -+ -+void -+adb_init ( void ) -+{ -+ adb_fd = open ("/dev/adb", 2); -+ if (adb_fd < 0) -+ { -+ perror ("unable to open /dev/adb read/write : "); -+ exit(EXIT_FAILURE); -+ } -+} -+ -+unsigned char get_packet[2] = { (unsigned char) CUDA_PACKET, -+ (unsigned char) CUDA_GET_TIME }; -+unsigned char set_packet[6] = { (unsigned char) CUDA_PACKET, -+ (unsigned char) CUDA_SET_TIME }; -+ -+int -+main (int argc, char **argv ) -+{ -+ struct tm tm, *tmp; -+ time_t systime; -+ time_t last_time; -+ time_t clock_time; -+ int i, arg; -+ double factor; -+ double not_adjusted; -+ int adjustment = 0; -+ /* unsigned char save_control, save_freq_select; */ -+ unsigned char reply[16]; -+ -+ /* get clock-ppc to accept systohc, hctosys options like hwclock */ -+ /* this will avoid having to customize initscripts for Mandrake PPC */ -+ /* May 15 2001 - S. Benedict */ -+ extern char *optarg; -+ -+ while ((arg = getopt (argc, argv, "rwsuaDv-:")) != -1) -+ { -+ switch (arg) -+ { -+ case 'r': -+ readit = 1; -+ break; -+ case 'w': -+ writeit = 1; -+ break; -+ case 's': -+ setit = 1; -+ break; -+ case 'u': -+ universal = 1; -+ break; -+ case 'a': -+ adjustit = 1; -+ break; -+ case 'D': -+ debug = 1; -+ break; -+ case 'v': -+ (void) fprintf( stderr, "clock " VERSION "\n" ); -+ exit(EXIT_SUCCESS); -+ case '-': -+ if (!strncmp(optarg, "systohc", 7)) { -+ adjustit = 1; -+ break; -+ } -+ if (!strncmp(optarg, "hctosys", 7)) { -+ setit = 1; -+ break; -+ } -+ if (!strncmp(optarg, "localtime", 9)) { -+ universal = 0; -+ break; -+ } -+ if (!strncmp(optarg, "utc", 3)) { -+ universal = 1; -+ break; -+ } -+ default: -+ usage (); -+ } -+ } -+ -+ /* If we are in MkLinux do not even bother trying to set the clock */ -+ if(!access("/proc/osfmach3/version", R_OK)) -+ { // We're running MkLinux -+ if ( readit | writeit | setit | adjustit ) -+ printf("You must change the clock setting in MacOS.\n"); -+ exit(0); -+ } -+ -+ if (readit + writeit + setit + adjustit > 1) -+ usage (); /* only allow one of these */ -+ -+ if (!(readit | writeit | setit | adjustit)) /* default to read */ -+ readit = 1; -+ -+ adb_init (); -+ -+ if (adjustit) -+ { /* Read adjustment parameters first */ -+ FILE *adj; -+ if ((adj = fopen (ADJPATH, "r")) == NULL) -+ { -+ perror (ADJPATH); -+ exit(EXIT_FAILURE); -+ } -+ if (fscanf (adj, "%lf %d %lf", &factor, (int *) (&last_time), -+ ¬_adjusted) < 0) -+ { -+ perror (ADJPATH); -+ exit(EXIT_FAILURE); -+ } -+ (void) fclose (adj); -+ if (debug) (void) printf( -+ "Last adjustment done at %d seconds after 1/1/1970\n", -+ (int) last_time); -+ } -+ -+ if (readit || setit || adjustit) -+ { -+ int ii; -+ -+ if (write(adb_fd, get_packet, sizeof(get_packet)) < 0) { -+ perror("write adb"); -+ exit(EXIT_FAILURE); -+ } -+ ii = (int) read(adb_fd, reply, sizeof(reply)); -+ if (ii < 0) { -+ perror("read adb"); -+ exit(EXIT_FAILURE); -+ } -+ if (ii != 7) -+ (void) fprintf(stderr, -+ "Warning: bad reply length from CUDA (%d)\n", ii); -+ clock_time = (time_t) ((reply[3] << 24) + (reply[4] << 16) -+ + (reply[5] << 8)) + (time_t) reply[6]; -+ clock_time -= RTC_OFFSET; -+ -+ if (universal) { -+ systime = clock_time; -+ } else { -+ tm = *gmtime(&clock_time); -+ (void) printf("time in rtc is %s", asctime(&tm)); -+ tm.tm_isdst = -1; /* don't know whether it's DST */ -+ systime = mktime(&tm); -+ } -+ } -+ -+ if (readit) -+ { -+ (void) printf ("%s", ctime (&systime )); -+ } -+ -+ if (setit || adjustit) -+ { -+ struct timeval tv; -+ struct timezone tz; -+ -+/* program is designed to run setuid, be secure! */ -+ -+ if (getuid () != 0) -+ { -+ (void) fprintf (stderr, -+ "Sorry, must be root to set or adjust time\n"); -+ exit(EXIT_FAILURE); -+ } -+ -+ if (adjustit) -+ { /* the actual adjustment */ -+ double exact_adjustment; -+ -+ exact_adjustment = ((double) (systime - last_time)) -+ * factor / (24 * 60 * 60) -+ + not_adjusted; -+ if (exact_adjustment > 0.) -+ adjustment = (int) (exact_adjustment + 0.5); -+ else -+ adjustment = (int) (exact_adjustment - 0.5); -+ not_adjusted = exact_adjustment - (double) adjustment; -+ systime += adjustment; -+ if (debug) { -+ (void) printf ("Time since last adjustment is %d seconds\n", -+ (int) (systime - last_time)); -+ (void) printf ("Adjusting time by %d seconds\n", -+ adjustment); -+ (void) printf ("remaining adjustment is %.3f seconds\n", -+ not_adjusted); -+ } -+ } -+#ifndef KEEP_OFF -+ tv.tv_sec = systime; -+ tv.tv_usec = 0; -+ tz.tz_minuteswest = timezone / 60; -+ tz.tz_dsttime = daylight; -+ -+ if (settimeofday (&tv, &tz) != 0) -+ { -+ (void) fprintf (stderr, -+ "Unable to set time -- probably you are not root\n"); -+ exit(EXIT_FAILURE); -+ } -+ -+ if (debug) { -+ (void) printf( "Called settimeofday:\n" ); -+ (void) printf( "\ttv.tv_sec = %ld, tv.tv_usec = %ld\n", -+ tv.tv_sec, tv.tv_usec ); -+ (void) printf( "\ttz.tz_minuteswest = %d, tz.tz_dsttime = %d\n", -+ tz.tz_minuteswest, tz.tz_dsttime ); -+ } -+#endif -+ } -+ -+ if (writeit || (adjustit && adjustment != 0)) -+ { -+ systime = time (NULL); -+ -+ if (universal) { -+ clock_time = systime; -+ -+ } else { -+ tmp = localtime(&systime); -+ clock_time = mkgmtime(tmp); -+ } -+ -+ clock_time += RTC_OFFSET; -+ set_packet[2] = clock_time >> 24; -+ set_packet[3] = clock_time >> 16; -+ set_packet[4] = clock_time >> 8; -+ set_packet[5] = (unsigned char) clock_time; -+ -+ if (write(adb_fd, set_packet, sizeof(set_packet)) < 0) { -+ perror("write adb (set)"); -+ exit(EXIT_FAILURE); -+ } -+ i = (int) read(adb_fd, reply, sizeof(reply)); -+ if (debug) { -+ int j; -+ (void) printf("set reply %d bytes:", i); -+ for (j = 0; j < i; ++j) -+ (void) printf(" %.2x", (unsigned int) reply[j]); -+ (void) printf("\n"); -+ } -+ if (i != 3 || reply[1] != (unsigned char) 0) -+ (void) fprintf(stderr, "Warning: error %d setting RTC\n", -+ (int) reply[1]); -+ -+ if (debug) { -+ clock_time -= RTC_OFFSET; -+ (void) printf("set RTC to %s", asctime(gmtime(&clock_time))); -+ } -+ } -+ else -+ if (debug) (void) printf ("CMOS clock unchanged.\n"); -+ /* Save data for next 'adjustit' call */ -+ if (adjustit) -+ { -+ FILE *adj; -+ if ((adj = fopen (ADJPATH, "w")) == NULL) -+ { -+ perror (ADJPATH); -+ exit(EXIT_FAILURE); -+ } -+ (void) fprintf (adj, "%f %d %f\n", factor, (int) systime, not_adjusted); -+ (void) fclose (adj); -+ } -+ exit(EXIT_SUCCESS); -+} -+ -+/* Stolen from linux/arch/i386/kernel/time.c. */ -+/* Converts Gregorian date to seconds since 1970-01-01 00:00:00. -+ * Assumes input in normal date format, i.e. 1980-12-31 23:59:59 -+ * => year=1980, mon=12, day=31, hour=23, min=59, sec=59. -+ * -+ * [For the Julian calendar (which was used in Russia before 1917, -+ * Britain & colonies before 1752, anywhere else before 1582, -+ * and is still in use by some communities) leave out the -+ * -year/100+year/400 terms, and add 10.] -+ * -+ * This algorithm was first published by Gauss (I think). -+ * -+ * WARNING: this function will overflow on 2106-02-07 06:28:16 on -+ * machines were long is 32-bit! (However, as time_t is signed, we -+ * will already get problems at other places on 2038-01-19 03:14:08) -+ */ -+time_t mkgmtime(struct tm *tm) -+{ -+ int mon = tm->tm_mon + 1; -+ int year = tm->tm_year + 1900; -+ -+ if (0 >= (int) (mon -= 2)) { /* 1..12 -> 11,12,1..10 */ -+ mon += 12; /* Puts Feb last since it has leap day */ -+ year -= 1; -+ } -+ return ((( -+ (unsigned long)(year/4 - year/100 + year/400 + 367*mon/12) + -+ tm->tm_mday + year*365 - 719499 -+ )*24 + tm->tm_hour /* now have hours */ -+ )*60 + tm->tm_min /* now have minutes */ -+ )*60 + tm->tm_sec; /* finally seconds */ -+} diff --git a/util-linux-procpartitions.patch b/util-linux-procpartitions.patch deleted file mode 100644 index 3c27c36..0000000 --- a/util-linux-procpartitions.patch +++ /dev/null @@ -1,76 +0,0 @@ -Mount has to read /proc/partitions in one gulp. It doesn't. Failed for me -after a hard powerdown (oops) and the resulting fsck-the-world frenzy on -startup, before the mount -a. Falure cause is identical (getting out of -sync with the text at the 1K boundary), but failure mode not quite so -drastic as it doesn't bail out like fsck does. - ---- 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-raw-handle-nonpresent-devs.patch b/util-linux-raw-handle-nonpresent-devs.patch deleted file mode 100644 index e4b0098..0000000 --- a/util-linux-raw-handle-nonpresent-devs.patch +++ /dev/null @@ -1,75 +0,0 @@ -Allow raw(8) to bind raw devices whose device nodes do not yet exist - ---- 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/util-linux-raw-man.patch b/util-linux-raw-man.patch deleted file mode 100644 index 08a4eb2..0000000 --- a/util-linux-raw-man.patch +++ /dev/null @@ -1,40 +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 -@@ -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 -@@ -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 -@@ -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-raw-raw0.patch b/util-linux-raw-raw0.patch deleted file mode 100644 index ea931cd..0000000 --- a/util-linux-raw-raw0.patch +++ /dev/null @@ -1,47 +0,0 @@ -- issues with raw device support ("raw0" is wrong device name) - ---- 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-rdev-man.patch b/util-linux-rdev-man.patch deleted file mode 100644 index 817888d..0000000 --- a/util-linux-rdev-man.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- 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-schedutils-SCHED_BATCH.patch b/util-linux-schedutils-SCHED_BATCH.patch deleted file mode 100644 index 0377e72..0000000 --- a/util-linux-schedutils-SCHED_BATCH.patch +++ /dev/null @@ -1,104 +0,0 @@ -- SCHED_BATCH option missing in chrt - ---- 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-schedutils-man.patch b/util-linux-schedutils-man.patch deleted file mode 100644 index c525388..0000000 --- a/util-linux-schedutils-man.patch +++ /dev/null @@ -1,24 +0,0 @@ -- broken example in man pages - ---- 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-single_letter_weekday.patch b/util-linux-single_letter_weekday.patch deleted file mode 100644 index 229ccf5..0000000 --- a/util-linux-single_letter_weekday.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- util-linux-2.13-pre7/misc-utils/cal.c~ 2007-08-21 23:23:53.000000000 +0200 -+++ util-linux-2.13-pre7/misc-utils/cal.c 2007-08-21 23:23:53.000000000 +0200 -@@ -389,7 +389,7 @@ - wd = (i + week1stday) % 7; - #ifdef HAVE_WIDECHAR - swprintf(day_headings_wc, sizeof(day_headings_wc)/sizeof(day_headings_wc[0]), -- L"%1.2s ", weekday(wd)); -+ L"%2.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); diff --git a/util-linux-skipraid2.patch b/util-linux-skipraid2.patch deleted file mode 100644 index 870df11..0000000 --- a/util-linux-skipraid2.patch +++ /dev/null @@ -1,112 +0,0 @@ -A RAID1 device cannot be mounted using its LABEL in /etc/fstab: mount says -there's more than one partition with that label and bails out. - ---- 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-sparc.patch b/util-linux-sparc.patch deleted file mode 100644 index 8e7acec..0000000 --- a/util-linux-sparc.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- util-linux-2.13-pre7/mount/umount.c.orig 2007-04-16 17:01:33.000000000 +0200 -+++ util-linux-2.13-pre7/mount/umount.c 2007-04-16 17:01:43.000000000 +0200 -@@ -21,7 +21,7 @@ - #include "env.h" - #include "nls.h" - --#if defined(MNT_FORCE) && !defined(__sparc__) && !defined(__arm__) -+#if defined(MNT_FORCE) - /* Interesting ... it seems libc knows about MNT_FORCE and presumably - about umount2 as well -- need not do anything */ - #else /* MNT_FORCE */ ---- util-linux-2.13-pre7/schedutils/ionice.c.orig 2007-04-16 17:30:44.000000000 +0200 -+++ util-linux-2.13-pre7/schedutils/ionice.c 2007-04-16 17:33:38.000000000 +0200 -@@ -33,6 +33,9 @@ - #elif defined(__s390x__) || defined(__s390__) - #define __NR_ioprio_set 282 - #define __NR_ioprio_get 283 -+#elif defined(__sparc__) -+#define __NR_ioprio_set 196 -+#define __NR_ioprio_get 218 - #else - #error "Unsupported arch" - #endif diff --git a/util-linux-swap-page.patch b/util-linux-swap-page.patch deleted file mode 100644 index 40b6374..0000000 --- a/util-linux-swap-page.patch +++ /dev/null @@ -1,70 +0,0 @@ -Don't use asm/page.h - ---- 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-swapon-suspend.patch b/util-linux-swapon-suspend.patch deleted file mode 100644 index 5f8864f..0000000 --- a/util-linux-swapon-suspend.patch +++ /dev/null @@ -1,163 +0,0 @@ -- swsusp swaps should be reinitialized - ---- 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-swaponsymlink.patch b/util-linux-swaponsymlink.patch deleted file mode 100644 index b0f6115..0000000 --- a/util-linux-swaponsymlink.patch +++ /dev/null @@ -1,28 +0,0 @@ -When swap is a simlink, the swap entry in -/etc/fstab may not match /proc/swaps. That -means strcmp shouldn't be used for swapon. - ---- 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-syscall.patch b/util-linux-syscall.patch deleted file mode 100644 index 0129b35..0000000 --- a/util-linux-syscall.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- util-linux-2.11z/mount/pivot_root.c.orig Fri Nov 29 11:02:56 2002 -+++ util-linux-2.11z/mount/pivot_root.c Fri Mar 28 21:53:50 2003 -@@ -1,7 +1,7 @@ - /* pivot_root.c - Change the root file system */ - - /* Written 2000 by Werner Almesberger */ -- -+#define __LIBRARY__ - #include - #include /* needed for below */ - diff --git a/util-linux-umount-sysfs.patch b/util-linux-umount-sysfs.patch deleted file mode 100644 index 80c86fc..0000000 --- a/util-linux-umount-sysfs.patch +++ /dev/null @@ -1,13 +0,0 @@ -- umount -a should not unmount sysfs - ---- 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"; - result = umount_all (types, test_opts); - } else if (argc < 1) { - usage (stderr, 2); -- 2.44.0