diff --git a/util-linux-2.12r-mount_swapon_swsuspend_resume.patch b/util-linux-2.12r-mount_swapon_swsuspend_resume.patch deleted file mode 100644 index 8bc8e98..0000000 --- a/util-linux-2.12r-mount_swapon_swsuspend_resume.patch +++ /dev/null @@ -1,128 +0,0 @@ -## 30swsusp-resume.dpatch by Jeff Bailey -Index: util-linux-ng-2.12r+git20070330/mount/swapon.c -=================================================================== ---- util-linux-ng-2.12r+git20070330.orig/mount/swapon.c -+++ util-linux-ng-2.12r+git20070330/mount/swapon.c -@@ -10,7 +10,9 @@ - #include - #include - #include -+#include - #include -+#include - #include "xmalloc.h" - #include "swap_constants.h" - #include "swapargs.h" -@@ -23,6 +25,7 @@ - - #define _PATH_FSTAB "/etc/fstab" - #define PROC_SWAPS "/proc/swaps" -+#define PATH_MKSWAP "/sbin/mkswap" - - #define SWAPON_NEEDS_TWO_ARGS - -@@ -179,6 +182,85 @@ display_summary(void) - 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 || -+ memcmp("ULSUSPEND", 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; -@@ -202,6 +284,18 @@ do_swapon(const char *orig_special, int - 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) { diff --git a/util-linux-2.13-mount_fd_leak.patch b/util-linux-2.13-mount_fd_leak.patch deleted file mode 100644 index d88ec05..0000000 --- a/util-linux-2.13-mount_fd_leak.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: util-linux-ng-2.13rc2+git20070725/mount/lomount.c -=================================================================== ---- util-linux-ng-2.13rc2+git20070725.orig/mount/lomount.c -+++ util-linux-ng-2.13rc2+git20070725/mount/lomount.c -@@ -325,6 +325,7 @@ set_loop(const char *device, const char - } - if ((fd = open(device, mode)) < 0) { - perror (device); -+ close(ffd); - return 1; - } - *loopro = (mode == O_RDONLY); diff --git a/util-linux-2.13.1-canonicalize_loopfile_name.patch b/util-linux-2.13.1-canonicalize_loopfile_name.patch new file mode 100644 index 0000000..04c5e2c --- /dev/null +++ b/util-linux-2.13.1-canonicalize_loopfile_name.patch @@ -0,0 +1,96 @@ +commit bfdb8be5c49d8fadb25118fb4416ab2a68fc3a16 +Author: Karel Zak +Date: Thu Oct 25 12:29:51 2007 +0200 + + losetup: canonicalize loopfile name + + When setting up a loop device, canonicalize the loop file + name. This simplifies a later identification of loop file names + when querying the loop devices. + + Co-Author: Matthias Koenig + Signed-off-by: Matthias Koenig + Signed-off-by: Karel Zak + +Index: util-linux-ng-2.13.1/mount/lomount.c +=================================================================== +--- util-linux-ng-2.13.1.orig/mount/lomount.c ++++ util-linux-ng-2.13.1/mount/lomount.c +@@ -22,10 +22,12 @@ + #include "lomount.h" + #include "xstrncpy.h" + #include "nls.h" ++#include "realpath.h" ++#include "xmalloc.h" ++ + + extern int verbose; + extern char *progname; +-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])) +@@ -279,6 +281,7 @@ set_loop(const char *device, const char + struct loop_info64 loopinfo64; + int fd, ffd, mode, i; + char *pass; ++ char filename[PATH_MAX+1]; + + mode = (*loopro ? O_RDONLY : O_RDWR); + if ((ffd = open(file, mode)) < 0) { +@@ -298,7 +301,8 @@ set_loop(const char *device, const char + + memset(&loopinfo64, 0, sizeof(loopinfo64)); + +- xstrncpy(loopinfo64.lo_file_name, file, LO_NAME_SIZE); ++ myrealpath(file, filename, PATH_MAX); ++ xstrncpy(loopinfo64.lo_file_name, filename, LO_NAME_SIZE); + + if (encryption && *encryption) { + if (digits_only(encryption)) { +@@ -386,7 +390,7 @@ set_loop(const char *device, const char + + if (verbose > 1) + printf(_("set_loop(%s,%s,%llu): success\n"), +- device, file, offset); ++ device, filename, offset); + return 0; + } + +@@ -470,23 +474,6 @@ usage(void) { + exit(1); + } + +-char * +-xstrdup (const char *s) { +- char *t; +- +- if (s == NULL) +- return NULL; +- +- t = strdup (s); +- +- if (t == NULL) { +- fprintf(stderr, _("not enough memory")); +- exit(1); +- } +- +- return t; +-} +- + void + error (const char *fmt, ...) { + va_list args; +Index: util-linux-ng-2.13.1/mount/Makefile.am +=================================================================== +--- util-linux-ng-2.13.1.orig/mount/Makefile.am ++++ util-linux-ng-2.13.1/mount/Makefile.am +@@ -25,7 +25,7 @@ umount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LD + + swapon_SOURCES = swapon.c swap_constants.h $(utils_common) + +-losetup_SOURCES = lomount.c loop.h lomount.h ++losetup_SOURCES = lomount.c loop.h lomount.h realpath.c xmalloc.c + losetup_CPPFLAGS = -DMAIN $(AM_CPPFLAGS) + + mount_LDADD = $(LDADD_common) diff --git a/util-linux-2.13.1-getfs_fix.patch b/util-linux-2.13.1-getfs_fix.patch new file mode 100644 index 0000000..5dee921 --- /dev/null +++ b/util-linux-2.13.1-getfs_fix.patch @@ -0,0 +1,24 @@ +Index: util-linux-ng-2.13.1/mount/fstab.c +=================================================================== +--- util-linux-ng-2.13.1.orig/mount/fstab.c ++++ util-linux-ng-2.13.1/mount/fstab.c +@@ -419,11 +419,17 @@ getfs_by_spec (const char *spec) { + struct mntentchn * + getfs_by_devname (const char *devname) { + struct mntentchn *mc, *mc0; ++ char *name; + + mc0 = fstab_head(); +- for (mc = mc0->nxt; mc && mc != mc0; mc = mc->nxt) +- if (streq(mc->m.mnt_fsname, devname)) ++ for (mc = mc0->nxt; mc && mc != mc0; mc = mc->nxt) { ++ name = canonicalize(mc->m.mnt_fsname); ++ if (streq(name, devname)) { ++ free(name); + return mc; ++ } ++ free(name); ++ } + return NULL; + } + diff --git a/util-linux-2.13.1-mkfs.minix_add_sectorsize_check.patch b/util-linux-2.13.1-mkfs.minix_add_sectorsize_check.patch new file mode 100644 index 0000000..f818c34 --- /dev/null +++ b/util-linux-2.13.1-mkfs.minix_add_sectorsize_check.patch @@ -0,0 +1,65 @@ +X-Gnus-Coding-System: -*- coding: utf-8; -*- + +Minix filesystem until version 2 has a fixed blocksize of 1024 bytes. +If you try to create a filsystem on a device with a physical sectorsize +larger than 1024 bytes, this resulting minix fs cannot be mounted, +because the physical sectorsize must be smaller than the filesystem +blocksize. +This patch adds a check for this and will refuse to create a filesystem +if the sectorsize is bigger than the blocksize. + +Signed-off-by: Matthias Koenig +--- + + disk-utils/Makefile.am | 4 +++- + disk-utils/mkfs.minix.c | 12 ++++++++++-- + 2 files changed, 13 insertions(+), 3 deletions(-) + +Index: util-linux-ng-2.13.1/disk-utils/mkfs.minix.c +=================================================================== +--- util-linux-ng-2.13.1.orig/disk-utils/mkfs.minix.c ++++ util-linux-ng-2.13.1/disk-utils/mkfs.minix.c +@@ -78,6 +78,7 @@ + #ifndef BLKGETSIZE + #define BLKGETSIZE _IO(0x12,96) /* return device size */ + #endif ++#define BLKSSZGET _IO(0x12,104)/* get block device sector size */ + + #ifndef __GNUC__ + #error "needs gcc for the bitop-__asm__'s" +@@ -238,6 +239,16 @@ get_size(const char *file) { + return size; + } + ++/* get hardware sector size */ ++int ++blkdev_get_sector_size(int fd, int *sector_size) ++{ ++ if (ioctl(fd, BLKSSZGET, sector_size) >= 0) ++ return 0; ++ ++ return -1; ++} ++ + static void + write_tables(void) { + /* Mark the super block valid. */ +@@ -707,9 +718,16 @@ main(int argc, char ** argv) { + DEV = open(device_name,O_RDWR); + if (DEV<0) + die(_("unable to open %s")); +- if (!S_ISBLK(statbuf.st_mode)) ++ if (S_ISBLK(statbuf.st_mode)) { ++ int sectorsize; ++ ++ if (blkdev_get_sector_size(DEV, §orsize) == -1) ++ die(_("cannot determine sector size for %s")); ++ if (BLOCK_SIZE < sectorsize) ++ die(_("block size smaller than physical sector size of %s")); ++ } else if (!S_ISBLK(statbuf.st_mode)) { + check=0; +- else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0340) ++ } else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0340) + die(_("will not try to make filesystem on '%s'")); + setup_tables(); + if (check) diff --git a/util-linux-2.13.1-mkfs.minix_device_size_cleanup.patch b/util-linux-2.13.1-mkfs.minix_device_size_cleanup.patch new file mode 100644 index 0000000..b42b6cb --- /dev/null +++ b/util-linux-2.13.1-mkfs.minix_device_size_cleanup.patch @@ -0,0 +1,103 @@ +Index: util-linux-ng-2.13.1/disk-utils/mkfs.minix.c +=================================================================== +--- util-linux-ng-2.13.1.orig/disk-utils/mkfs.minix.c ++++ util-linux-ng-2.13.1/disk-utils/mkfs.minix.c +@@ -78,6 +78,7 @@ + #ifndef BLKGETSIZE + #define BLKGETSIZE _IO(0x12,96) /* return device size */ + #endif ++#define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size in bytes (u64 *arg) */ + #define BLKSSZGET _IO(0x12,104)/* get block device sector size */ + + #ifndef __GNUC__ +@@ -103,7 +104,7 @@ + static char * program_name = "mkfs"; + static char * device_name = NULL; + static int DEV = -1; +-static long BLOCKS = 0; ++static unsigned long long BLOCKS = 0; + static int check = 0; + static int badblocks = 0; + static int namelen = 30; /* default (changed to 30, per Linus's +@@ -219,24 +220,21 @@ count_blocks (int fd) { + return (low + 1); + } + +-static int +-get_size(const char *file) { +- int fd; +- long size; +- +- fd = open(file, O_RDWR); +- if (fd < 0) { +- perror(file); +- exit(1); +- } ++/* get size in bytes */ ++int ++blkdev_get_size(int fd, unsigned long long *bytes) ++{ ++ unsigned long size; ++ ++ if (ioctl(fd, BLKGETSIZE64, bytes) >= 0) ++ return 0; ++ + if (ioctl(fd, BLKGETSIZE, &size) >= 0) { +- close(fd); +- return (size * 512); ++ *bytes = ((unsigned long long)size << 9); ++ return 0; + } +- +- size = count_blocks(fd); +- close(fd); +- return size; ++ ++ return -1; + } + + /* get hardware sector size */ +@@ -687,19 +685,9 @@ main(int argc, char ** argv) { + } + } + +- if (device_name && !BLOCKS) +- BLOCKS = get_size (device_name) / 1024; +- if (!device_name || BLOCKS<10) { ++ if (!device_name) { + usage(); + } +- if (version2) { +- if (namelen == 14) +- magic = MINIX2_SUPER_MAGIC; +- else +- magic = MINIX2_SUPER_MAGIC2; +- } else +- if (BLOCKS > 65535) +- BLOCKS = 65535; + check_mount(); /* is it already mounted? */ + tmp = root_block; + *(short *)tmp = 1; +@@ -725,10 +713,22 @@ main(int argc, char ** argv) { + die(_("cannot determine sector size for %s")); + if (BLOCK_SIZE < sectorsize) + die(_("block size smaller than physical sector size of %s")); ++ if (!BLOCKS && blkdev_get_size(DEV, &BLOCKS) == -1) ++ die(_("cannot determine size of %s")); + } else if (!S_ISBLK(statbuf.st_mode)) { + check=0; + } else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0340) + die(_("will not try to make filesystem on '%s'")); ++ if (BLOCKS < 10) ++ die(_("number of blocks too small")); ++ if (version2) { ++ if (namelen == 14) ++ magic = MINIX2_SUPER_MAGIC; ++ else ++ magic = MINIX2_SUPER_MAGIC2; ++ } else ++ if (BLOCKS > 65535) ++ BLOCKS = 65535; + setup_tables(); + if (check) + check_blocks(); diff --git a/util-linux-2.13.1-prevent_loop_mounting_the_same_file_twice.patch b/util-linux-2.13.1-prevent_loop_mounting_the_same_file_twice.patch new file mode 100644 index 0000000..63a2f6b --- /dev/null +++ b/util-linux-2.13.1-prevent_loop_mounting_the_same_file_twice.patch @@ -0,0 +1,245 @@ +commit 2368077223fa5800cf88659c9c57a7f6517f3fad +Author: Karel Zak +Date: Tue Sep 11 14:35:34 2007 +0200 + + mount: prevent loop mounting the same file twice + + The mount syscall prevents mounting the same device twice + to the same mountpoint. When loop mounting a file, for each + file a new loop device gets allocated, which prevents the detection + of loop mounting the same file to the same mountpoint twice. + The patch adds a check to prevent double mounts, if the same loopfile + is going to be mounted with the same offset to the same mountpoint. + + Co-Author: Matthias Koenig + Signed-off-by: Matthias Koenig + Signed-off-by: Karel Zak + +Index: util-linux-ng-2.13.1/mount/lomount.c +=================================================================== +--- util-linux-ng-2.13.1.orig/mount/lomount.c ++++ util-linux-ng-2.13.1/mount/lomount.c +@@ -143,7 +143,7 @@ show_used_loop_devices (void) { + + for (j = 0; j < SIZE(loop_formats); j++) { + for(i = 0; i < 256; i++) { +- sprintf(dev, loop_formats[j], i); ++ snprintf(dev, sizeof(dev), loop_formats[j], i); + if (stat (dev, &statbuf) == 0 && S_ISBLK(statbuf.st_mode)) { + fd = open (dev, O_RDONLY); + if (fd >= 0) { +@@ -169,6 +169,102 @@ show_used_loop_devices (void) { + + #endif + ++/* check if the loopfile is already associated with the same given ++ * parameters. ++ * ++ * returns: -1 error ++ * 0 unused ++ * 1 loop device already used ++ */ ++static int ++is_associated(int dev, struct stat *file, unsigned long long offset) ++{ ++ struct loop_info64 linfo64; ++ struct loop_info64 linfo; ++ int ret = 0; ++ ++ if (ioctl(dev, LOOP_GET_STATUS64, &linfo64) == 0) { ++ if (file->st_dev == linfo64.lo_device && ++ file->st_ino == linfo64.lo_inode && ++ offset == linfo64.lo_offset) ++ ret = 1; ++ return ret; ++ } ++ if (ioctl(dev, LOOP_GET_STATUS, &linfo) == 0) { ++ if (file->st_dev == linfo.lo_device && ++ file->st_ino == linfo.lo_inode && ++ offset == linfo.lo_offset) ++ ret = 1; ++ return ret; ++ } ++ ++ return errno == ENXIO ? 0 : -1; ++} ++ ++/* check if the loop file is already used with the same given ++ * parameters. We check for device no, inode and offset. ++ * returns: associated devname or NULL ++ */ ++char * ++loopfile_used (const char *filename, unsigned long long offset) { ++ char dev[20]; ++ char *loop_formats[] = { "/dev/loop%d", "/dev/loop/%d" }; ++ int i, j, fd; ++ struct stat devstat, filestat; ++ struct loop_info loopinfo; ++ ++ if (stat(filename, &filestat) == -1) { ++ perror(filename); ++ return NULL; ++ } ++ ++ for (j = 0; j < SIZE(loop_formats); j++) { ++ for(i = 0; i < 256; i++) { ++ snprintf(dev, sizeof(dev), loop_formats[j], i); ++ if (stat (dev, &devstat) == 0 && S_ISBLK(devstat.st_mode)) { ++ fd = open (dev, O_RDONLY); ++ if (fd >= 0) { ++ int res = 0; ++ ++ if(ioctl (fd, LOOP_GET_STATUS, &loopinfo) == 0) ++ res = is_associated(fd, &filestat, offset); ++ close (fd); ++ if (res == 1) ++ return xstrdup(dev); ++ } ++ continue; /* continue trying as long as devices exist */ ++ } ++ break; ++ } ++ } ++ return NULL; ++} ++ ++int ++loopfile_used_with(char *devname, const char *filename, unsigned long long offset) ++{ ++ struct stat statbuf; ++ int fd, ret; ++ ++ if (!is_loop_device(devname)) ++ return 0; ++ ++ if (stat(filename, &statbuf) == -1) { ++ perror(filename); ++ return -1; ++ } ++ ++ fd = open(devname, O_RDONLY); ++ if (fd == -1) { ++ perror(devname); ++ return -1; ++ } ++ ret = is_associated(fd, &statbuf, offset); ++ ++ close(fd); ++ return ret; ++} ++ + int + is_loop_device (const char *device) { + struct stat statbuf; +@@ -284,6 +380,16 @@ set_loop(const char *device, const char + char *filename; + char res_file[PATH_MAX+1]; + ++ if (verbose) { ++ char *xdev = loopfile_used(file, offset); ++ ++ if (xdev) { ++ printf(_("warning: %s is already associated with %s\n"), ++ file, xdev); ++ free(xdev); ++ } ++ } ++ + mode = (*loopro ? O_RDONLY : O_RDWR); + if ((ffd = open(file, mode)) < 0) { + if (!*loopro && errno == EROFS) +Index: util-linux-ng-2.13.1/mount/lomount.h +=================================================================== +--- util-linux-ng-2.13.1.orig/mount/lomount.h ++++ util-linux-ng-2.13.1/mount/lomount.h +@@ -4,3 +4,6 @@ extern int set_loop(const char *, const + extern int del_loop(const char *); + extern int is_loop_device(const char *); + extern char * find_unused_loop_device(void); ++ ++extern int loopfile_used_with(char *devname, const char *filename, unsigned long long offset); ++extern char *loopfile_used (const char *filename, unsigned long long offset); +Index: util-linux-ng-2.13.1/mount/mount.c +=================================================================== +--- util-linux-ng-2.13.1.orig/mount/mount.c ++++ util-linux-ng-2.13.1/mount/mount.c +@@ -42,6 +42,7 @@ + #include "mount_paths.h" + #include "env.h" + #include "nls.h" ++#include "realpath.h" + + #define DO_PS_FIDDLING + +@@ -833,9 +834,49 @@ suid_check(const char *spec, const char + *flags &= ~(MS_OWNER | MS_GROUP); + } + ++/* Check, if there already exists a mounted loop device on the mountpoint node ++ * with the same parameters. ++ */ ++static int ++is_mounted_same_loopfile(const char *node0, const char *loopfile, unsigned long long offset) ++{ ++ struct mntentchn *mnt = NULL; ++ char node[PATH_MAX+1]; ++ int res = 0; ++ ++ myrealpath(node0, node, PATH_MAX); ++ ++ /* Search for mountpoint node in mtab, ++ * procceed if any of these has the loop option set or ++ * the device is a loop device ++ */ ++ mnt = getmntdirbackward(node, mnt); ++ if (!mnt) { ++ return 0; ++ } ++ for(; mnt && res == 0; mnt = getmntdirbackward(node, mnt)) { ++ char *p; ++ ++ if (strncmp(mnt->m.mnt_fsname, "/dev/loop", 9) == 0) ++ res = loopfile_used_with((char *) mnt->m.mnt_fsname, ++ loopfile, offset); ++ ++ else if ((p = strstr(mnt->m.mnt_opts, "loop="))) { ++ char *dev = xstrdup(p+5); ++ if ((p = strchr(dev, ','))) ++ *p = '\0'; ++ res = loopfile_used_with(dev, loopfile, offset); ++ free(dev); ++ } ++ } ++ ++ return res; ++} ++ + 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 *node) { + int looptype; + unsigned long long offset; + +@@ -876,6 +917,11 @@ loop_check(const char **spec, const char + + offset = opt_offset ? strtoull(opt_offset, NULL, 0) : 0; + ++ if (is_mounted_same_loopfile(node, *loopfile, offset)) { ++ error(_("mount: according to mtab %s is already mounted on %s as loop"), *loopfile, node); ++ return EX_FAIL; ++ } ++ + do { + if (!*loopdev || !**loopdev) + *loopdev = find_unused_loop_device(); +@@ -1061,7 +1107,7 @@ try_mount_one (const char *spec0, const + * 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; + } diff --git a/util-linux-mount_losetup_crypto.patch b/util-linux-mount_losetup_crypto.patch index 57a815d..53f4cff 100644 --- a/util-linux-mount_losetup_crypto.patch +++ b/util-linux-mount_losetup_crypto.patch @@ -40,31 +40,33 @@ Signed-off-by: Ludwig Nussel create mode 100644 mount/sha512.c create mode 100644 mount/sha512.h -diff --git a/mount/Makefile.am b/mount/Makefile.am -index 01643b2..cb7af0a 100644 ---- a/mount/Makefile.am -+++ b/mount/Makefile.am -@@ -13,6 +13,7 @@ headers_common = fstab.h mount_mntent.h mount_constants.h \ +Index: util-linux-ng-2.13.1/mount/Makefile.am +=================================================================== +--- util-linux-ng-2.13.1.orig/mount/Makefile.am ++++ util-linux-ng-2.13.1/mount/Makefile.am +@@ -13,6 +13,7 @@ headers_common = fstab.h linux_fs.h moun getusername.h loop.h sundries.h mount_common = fstab.c mount_mntent.c getusername.c lomount.c \ + rmd160.c sha512.c \ - $(utils_common) $(headers_common) ../lib/env.c ../lib/linux_version.c \ - ../lib/blkdev.c + $(utils_common) $(headers_common) ../lib/env.c + + mount_SOURCES = mount.c $(mount_common) ../lib/setproctitle.c +@@ -25,7 +26,8 @@ umount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LD -@@ -27,6 +28,7 @@ umount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS) swapon_SOURCES = swapon.c swap_constants.h $(utils_common) - losetup_SOURCES = lomount.c sundries.c xmalloc.c realpath.c \ -+ rmd160.c sha512.c \ - loop.h lomount.h xmalloc.h sundries.h realpath.h +-losetup_SOURCES = lomount.c loop.h lomount.h realpath.c xmalloc.c ++losetup_SOURCES = lomount.c loop.h lomount.h realpath.c xmalloc.c \ ++ rmd160.c sha512.c losetup_CPPFLAGS = -DMAIN $(AM_CPPFLAGS) -diff --git a/mount/lomount.c b/mount/lomount.c -index 5bd8954..98f144f 100644 ---- a/mount/lomount.c -+++ b/mount/lomount.c -@@ -20,12 +20,18 @@ + mount_LDADD = $(LDADD_common) +Index: util-linux-ng-2.13.1/mount/lomount.c +=================================================================== +--- util-linux-ng-2.13.1.orig/mount/lomount.c ++++ util-linux-ng-2.13.1/mount/lomount.c +@@ -20,11 +20,16 @@ #include "loop.h" #include "lomount.h" @@ -72,22 +74,20 @@ index 5bd8954..98f144f 100644 +#include "sha512.h" #include "xstrncpy.h" #include "nls.h" - #include "sundries.h" - #include "xmalloc.h" #include "realpath.h" + #include "xmalloc.h" +#ifndef MIN +#define MIN(a,b) ((a enable data encryption with specified \n" @@ -300,7 +300,7 @@ index 5bd8954..98f144f 100644 " -o | --offset start at offset into file\n" " -p | --pass-fd read passphrase from file descriptor \n" " -r | --read-only setup read-only loop device\n" -@@ -582,11 +696,14 @@ usage(void) { +@@ -594,11 +708,14 @@ error (const char *fmt, ...) { int main(int argc, char **argv) { char *p, *offset, *encryption, *passfd, *device, *file; @@ -315,7 +315,7 @@ index 5bd8954..98f144f 100644 unsigned long long off; struct option longopts[] = { { "all", 0, 0, 'a' }, -@@ -594,6 +711,8 @@ main(int argc, char **argv) { +@@ -606,6 +723,8 @@ main(int argc, char **argv) { { "encryption", 1, 0, 'e' }, { "find", 0, 0, 'f' }, { "help", 0, 0, 'h' }, @@ -324,7 +324,7 @@ index 5bd8954..98f144f 100644 { "offset", 1, 0, 'o' }, { "pass-fd", 1, 0, 'p' }, { "read-only", 0, 0, 'r' }, -@@ -609,12 +728,13 @@ main(int argc, char **argv) { +@@ -621,12 +740,13 @@ main(int argc, char **argv) { delete = find = all = 0; off = 0; offset = encryption = passfd = NULL; @@ -339,7 +339,7 @@ index 5bd8954..98f144f 100644 longopts, NULL)) != -1) { switch (c) { case 'a': -@@ -633,6 +753,12 @@ main(int argc, char **argv) { +@@ -645,6 +765,12 @@ main(int argc, char **argv) { case 'f': find = 1; break; @@ -352,7 +352,7 @@ index 5bd8954..98f144f 100644 case 'o': offset = optarg; break; -@@ -696,8 +822,10 @@ main(int argc, char **argv) { +@@ -708,8 +834,10 @@ main(int argc, char **argv) { usage(); if (passfd && sscanf(passfd, "%d", &pfd) != 1) usage(); @@ -364,22 +364,10 @@ index 5bd8954..98f144f 100644 if (res == 2 && find) { if (verbose) printf("stolen loop=%s...trying again\n", -diff --git a/mount/lomount.h b/mount/lomount.h -index 38b3a48..3a6210f 100644 ---- a/mount/lomount.h -+++ b/mount/lomount.h -@@ -1,5 +1,5 @@ --extern int set_loop(const char *, const char *, unsigned long long, -- const char *, int, int *); -+extern int set_loop(const char *device, const char *file, unsigned long long offset, -+ const char *encryption, const char* phash, int pfd, int *loopro, int keysz); - extern int del_loop(const char *); - extern int is_loop_device(const char *); - extern char * find_unused_loop_device(void); -diff --git a/mount/losetup.8 b/mount/losetup.8 -index db2929f..54bbc94 100644 ---- a/mount/losetup.8 -+++ b/mount/losetup.8 +Index: util-linux-ng-2.13.1/mount/losetup.8 +=================================================================== +--- util-linux-ng-2.13.1.orig/mount/losetup.8 ++++ util-linux-ng-2.13.1/mount/losetup.8 @@ -76,6 +76,15 @@ find the first unused loop device. If a argument is present, use this device. Otherwise, print its name. .IP "\fB\-h, \-\-help\fP" @@ -405,11 +393,11 @@ index db2929f..54bbc94 100644 Cryptoloop is deprecated in favor of dm-crypt. For more details see .B cryptsetup(8). -diff --git a/mount/mount.8 b/mount/mount.8 -index 54b11d4..e79ea04 100644 ---- a/mount/mount.8 -+++ b/mount/mount.8 -@@ -615,6 +615,15 @@ This option implies the options +Index: util-linux-ng-2.13.1/mount/mount.8 +=================================================================== +--- util-linux-ng-2.13.1.orig/mount/mount.8 ++++ util-linux-ng-2.13.1/mount/mount.8 +@@ -610,6 +610,15 @@ This option implies the options (unless overridden by subsequent options, as in the option line .BR group,dev,suid ). .TP @@ -425,7 +413,7 @@ index 54b11d4..e79ea04 100644 .B mand Allow mandatory locks on this filesystem. See .BR fcntl (2). -@@ -2010,6 +2019,10 @@ that are really options to +@@ -2008,6 +2017,10 @@ that are really options to .BR \%losetup (8). (These options can be used in addition to those specific to the filesystem type.) @@ -436,11 +424,11 @@ index 54b11d4..e79ea04 100644 If no explicit loop device is mentioned (but just an option `\fB\-o loop\fP' is given), then -diff --git a/mount/mount.c b/mount/mount.c -index 60fe4fe..164ae3c 100644 ---- a/mount/mount.c -+++ b/mount/mount.c -@@ -88,6 +88,9 @@ static int suid = 0; +Index: util-linux-ng-2.13.1/mount/mount.c +=================================================================== +--- util-linux-ng-2.13.1.orig/mount/mount.c ++++ util-linux-ng-2.13.1/mount/mount.c +@@ -94,6 +94,9 @@ static int suid = 0; /* Contains the fd to read the passphrase from, if any. */ static int pfd = -1; @@ -450,7 +438,7 @@ index 60fe4fe..164ae3c 100644 /* Map from -o and fstab option strings to the flag argument to mount(2). */ struct opt_map { const char *opt; /* option name */ -@@ -182,6 +185,7 @@ static const struct opt_map opt_map[] = { +@@ -191,6 +194,7 @@ static int opt_nofail = 0; static const char *opt_loopdev, *opt_vfstype, *opt_offset, *opt_encryption, *opt_speed, *opt_comment, *opt_uhelper; @@ -458,7 +446,7 @@ index 60fe4fe..164ae3c 100644 static int mounted (const char *spec0, const char *node0); static int check_special_mountprog(const char *spec, const char *node, -@@ -196,6 +200,8 @@ static struct string_opt_map { +@@ -205,6 +209,8 @@ static struct string_opt_map { { "vfs=", 1, &opt_vfstype }, { "offset=", 0, &opt_offset }, { "encryption=", 0, &opt_encryption }, @@ -467,7 +455,7 @@ index 60fe4fe..164ae3c 100644 { "speed=", 0, &opt_speed }, { "comment=", 1, &opt_comment }, { "uhelper=", 0, &opt_uhelper }, -@@ -897,7 +903,7 @@ loop_check(const char **spec, const char **type, int *flags, +@@ -903,7 +909,7 @@ loop_check(const char **spec, const char *type = opt_vfstype; } @@ -476,7 +464,7 @@ index 60fe4fe..164ae3c 100644 *loopfile = *spec; if (*loop) { -@@ -923,9 +929,10 @@ loop_check(const char **spec, const char **type, int *flags, +@@ -929,9 +935,10 @@ loop_check(const char **spec, const char return EX_SYSERR; /* no more loop devices */ if (verbose) printf(_("mount: going to use the loop device %s\n"), *loopdev); @@ -489,15 +477,15 @@ index 60fe4fe..164ae3c 100644 if (res == 2) { /* loop dev has been grabbed by some other process, try again, if not given explicitly */ -@@ -1661,6 +1668,7 @@ static struct option longopts[] = { +@@ -1681,6 +1688,7 @@ static struct option longopts[] = { { "options", 1, 0, 'o' }, { "test-opts", 1, 0, 'O' }, { "pass-fd", 1, 0, 'p' }, + { "keybits", 1, 0, 'k' }, { "types", 1, 0, 't' }, { "bind", 0, 0, 128 }, - { "move", 0, 0, 133 }, -@@ -1807,6 +1815,7 @@ main(int argc, char *argv[]) { + { "replace", 0, 0, 129 }, +@@ -1836,6 +1844,7 @@ main(int argc, char *argv[]) { char *options = NULL, *test_opts = NULL, *node; const char *spec = NULL; char *label = NULL; @@ -505,7 +493,7 @@ index 60fe4fe..164ae3c 100644 char *uuid = NULL; char *types = NULL; char *p; -@@ -1837,7 +1846,7 @@ main(int argc, char *argv[]) { +@@ -1866,7 +1875,7 @@ main(int argc, char *argv[]) { initproctitle(argc, argv); #endif @@ -514,7 +502,7 @@ index 60fe4fe..164ae3c 100644 longopts, NULL)) != -1) { switch (c) { case 'a': /* mount everything in fstab */ -@@ -1855,6 +1864,9 @@ main(int argc, char *argv[]) { +@@ -1884,6 +1893,9 @@ main(int argc, char *argv[]) { case 'i': external_allowed = 0; break; @@ -524,9 +512,9 @@ index 60fe4fe..164ae3c 100644 case 'l': list_with_volumelabel = 1; break; -@@ -1991,6 +2003,9 @@ main(int argc, char *argv[]) { - - atexit(unlock_mtab); +@@ -2030,6 +2042,9 @@ main(int argc, char *argv[]) { + create_mtab (); + } + if (keysize && sscanf(keysize,"%d",&keysz) != 1) + die (EX_USAGE, _("mount: argument to --keybits or -k must be a number")); @@ -534,22 +522,10 @@ index 60fe4fe..164ae3c 100644 switch (argc+specseen) { case 0: /* mount -a */ -diff --git a/mount/my_dev_t.h b/mount/my_dev_t.h -new file mode 100644 -index 0000000..5c4c0a1 +Index: util-linux-ng-2.13.1/mount/rmd160.c +=================================================================== --- /dev/null -+++ b/mount/my_dev_t.h -@@ -0,0 +1,5 @@ -+/* silliness to get dev_t defined as the kernel defines it */ -+/* glibc uses a different dev_t */ -+ -+#include -+#define my_dev_t __kernel_old_dev_t -diff --git a/mount/rmd160.c b/mount/rmd160.c -new file mode 100644 -index 0000000..3430954 ---- /dev/null -+++ b/mount/rmd160.c ++++ util-linux-ng-2.13.1/mount/rmd160.c @@ -0,0 +1,532 @@ +/* rmd160.c - RIPE-MD160 + * Copyright (C) 1998 Free Software Foundation, Inc. @@ -1083,11 +1059,10 @@ index 0000000..3430954 + rmd160_final( &hd ); + memcpy( outbuf, hd.buf, 20 ); +} -diff --git a/mount/rmd160.h b/mount/rmd160.h -new file mode 100644 -index 0000000..4b2c61d +Index: util-linux-ng-2.13.1/mount/rmd160.h +=================================================================== --- /dev/null -+++ b/mount/rmd160.h ++++ util-linux-ng-2.13.1/mount/rmd160.h @@ -0,0 +1,11 @@ +#ifndef RMD160_H +#define RMD160_H @@ -1100,11 +1075,10 @@ index 0000000..4b2c61d +#endif /*RMD160_H*/ + + -diff --git a/mount/sha512.c b/mount/sha512.c -new file mode 100644 -index 0000000..e4c9c13 +Index: util-linux-ng-2.13.1/mount/sha512.c +=================================================================== --- /dev/null -+++ b/mount/sha512.c ++++ util-linux-ng-2.13.1/mount/sha512.c @@ -0,0 +1,432 @@ +/* + * sha512.c @@ -1538,11 +1512,10 @@ index 0000000..e4c9c13 + memset(&ctx, 0, sizeof(ctx)); +} +#endif -diff --git a/mount/sha512.h b/mount/sha512.h -new file mode 100644 -index 0000000..4b57c01 +Index: util-linux-ng-2.13.1/mount/sha512.h +=================================================================== --- /dev/null -+++ b/mount/sha512.h ++++ util-linux-ng-2.13.1/mount/sha512.h @@ -0,0 +1,45 @@ +/* + * sha512.h @@ -1589,6 +1562,16 @@ index 0000000..4b57c01 +/* no sha384_write(), use sha512_write() */ +/* no sha384_final(), use sha512_final(), result in ctx->sha_out[0...47] */ +extern void sha384_hash_buffer(const unsigned char *, size_t, unsigned char *, size_t); --- -1.5.3.4 - +Index: util-linux-ng-2.13.1/mount/lomount.h +=================================================================== +--- util-linux-ng-2.13.1.orig/mount/lomount.h ++++ util-linux-ng-2.13.1/mount/lomount.h +@@ -1,6 +1,6 @@ + extern int verbose; +-extern int set_loop(const char *, const char *, unsigned long long, +- const char *, int, int *); ++extern int set_loop(const char *device, const char *file, unsigned long long offset, ++ const char *encryption, const char* phash, int pfd, int *loopro, int keysz); + extern int del_loop(const char *); + extern int is_loop_device(const char *); + extern char * find_unused_loop_device(void); diff --git a/util-linux-ng-2.13-swapon-swsuspend.patch b/util-linux-ng-2.13-swapon-swsuspend.patch new file mode 100644 index 0000000..c11b296 --- /dev/null +++ b/util-linux-ng-2.13-swapon-swsuspend.patch @@ -0,0 +1,112 @@ +From db6041b3a569d78f5716baa5a134a3a857014337 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Wed, 30 May 2007 13:22:51 +0200 +Subject: [PATCH] mount: automatically reinitialize swap with old swsuspend data + +We have to reinitialize swap area 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. + +Signed-off-by: Karel Zak +--- + mount/swapon.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 63 insertions(+), 0 deletions(-) + +diff --git a/mount/swapon.c b/mount/swapon.c +index ed91afc..3f9b442 100644 +--- a/mount/swapon.c ++++ b/mount/swapon.c +@@ -10,6 +10,9 @@ + #include + #include + #include ++#include ++#include ++#include + #include "xmalloc.h" + #include "swap_constants.h" + #include "nls.h" +@@ -17,6 +20,8 @@ + #include "realpath.h" + #include "mount_paths.h" + ++#define PATH_MKSWAP "/sbin/mkswap" ++ + #ifdef HAVE_SYS_SWAP_H + # include + #endif +@@ -158,6 +163,52 @@ display_summary(void) + } + + static int ++swap_is_swsuspend(const char *device) { ++ const char *type = fsprobe_get_fstype_by_devname(device); ++ ++ return (type && strcmp(type, "swsuspend") == 0) ? 1 : 0; ++} ++ ++/* calls mkswap */ ++static int ++swap_reinitialize(const char *device) { ++ const char *label = fsprobe_get_label_by_devname(device); ++ pid_t pid; ++ int status, ret; ++ ++ 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 */ ++ 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 canonic) { + int status; + struct stat st; +@@ -179,6 +230,18 @@ do_swapon(const char *orig_special, int prio, int canonic) { + 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)) { ++ 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) { +-- +1.5.2.2 + diff --git a/util-linux-ng-2.13.0.1+git20071121.tar.bz2 b/util-linux-ng-2.13.0.1+git20071121.tar.bz2 deleted file mode 100644 index ac50340..0000000 --- a/util-linux-ng-2.13.0.1+git20071121.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:901086dc7bc99a89b9f11839107a0dc83f6b9e89158bccb8b30ad0a5a609123b -size 1585119 diff --git a/util-linux-ng-2.13.1.tar.bz2 b/util-linux-ng-2.13.1.tar.bz2 new file mode 100644 index 0000000..2f38751 --- /dev/null +++ b/util-linux-ng-2.13.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e67d86683adef0855220b6f5a4b7ca2c51a15faa142e2ecd69925ede76854a4d +size 2854716 diff --git a/util-linux.changes b/util-linux.changes index 6098917..fe4f59f 100644 --- a/util-linux.changes +++ b/util-linux.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Feb 13 10:21:42 CET 2008 - bg@suse.de + +- don't try to package parisc*.8 manual pages + +------------------------------------------------------------------- +Mon Feb 11 17:49:04 CET 2008 - mkoenig@suse.de + +- update to version 2.13.1 again +- fix broken util-linux-2.13.1-getfs_fix.patch + ------------------------------------------------------------------- Sun Feb 10 18:11:07 CET 2008 - lrupp@suse.de diff --git a/util-linux.spec b/util-linux.spec index 079cb95..a253399 100644 --- a/util-linux.spec +++ b/util-linux.spec @@ -1,5 +1,5 @@ # -# spec file for package util-linux (Version 2.13.0.1+git20071121) +# spec file for package util-linux (Version 2.13.1) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -10,6 +10,7 @@ # norootforbuild + Name: util-linux BuildRequires: audit-devel gettext-devel libuuid-devel libvolume_id-devel ncurses-devel pam-devel zlib-devel Url: http://kernel.org/pub/linux/utils/util-linux @@ -20,8 +21,8 @@ PreReq: %install_info_prereq permissions License: BSD 3-Clause; GPL v2 or later Group: System/Base AutoReqProv: on -Version: 2.13.0.1+git20071121 -Release: 22 +Version: 2.13.1 +Release: 3 Summary: A collection of basic system utilities Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux/%name-ng-%version.tar.bz2 Source1: util-linux-2.13-rpmlintrc @@ -46,28 +47,30 @@ Source28: mkzimage_cmdline.8 Source29: mkzimage_cmdline.c Source30: README.largedisk ## -## util-linux +## util-linux patches ## -# # add hostid Patch1: util-linux-2.12-misc_utils_hostid.patch # 104405 - mount -a doesn't work with hotpluggable devices Patch2: util-linux-mount_opt_nofail.patch -# 176582 - If the user doesn't specify -t mount.fstype will never be called -#TODO: check alternative upstream fix -#Patch96: util-linux-2.12r-mount_external_prog_on_guess.patch # 160822 - fix for 153657 Patch3: util-linux-2.12r-fdisk_cyl.patch # 241372 - remove legacy warnings from fdisk -Patch5: util-linux-2.12r-fdisk_remove_bogus_warnings.patch -# 254437 - swapon should automatically reset the suspend signature -# TODO: Needs to be ported to new version -Patch38: util-linux-2.12r-mount_swapon_swsuspend_resume.patch +Patch4: util-linux-2.12r-fdisk_remove_bogus_warnings.patch # 304861 - support password hashing and key length -Patch10: util-linux-mount_losetup_crypto.patch -Patch11: util-linux-2.13-mount_fd_leak.patch -Patch12: util-linux-2.13-fdisk_cfdisk_ncursesw.patch -Patch13: util-linux-2.13-hwclock_rtc_wait_busy_tempfix.patch +Patch6: util-linux-2.13-fdisk_cfdisk_ncursesw.patch +# 338419 +Patch7: util-linux-2.13-hwclock_rtc_wait_busy_tempfix.patch +# in upstream git, but not yet released +Patch8: util-linux-2.13.1-canonicalize_loopfile_name.patch +Patch9: util-linux-2.13.1-prevent_loop_mounting_the_same_file_twice.patch +Patch10: util-linux-2.13.1-mkfs.minix_add_sectorsize_check.patch +Patch11: util-linux-2.13.1-mkfs.minix_device_size_cleanup.patch +# +Patch12: util-linux-2.13.1-getfs_fix.patch +# 254437 - swapon should automatically reset the suspend signature +Patch13: util-linux-ng-2.13-swapon-swsuspend.patch +Patch20: util-linux-mount_losetup_crypto.patch ## ## ## adjtimex @@ -105,12 +108,17 @@ Authors: %patch1 -p1 %patch2 -p1 %patch3 -p1 -%patch5 -p1 -#%patch38 -p1 +%patch4 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 +%patch20 -p1 +#%patch38 -p1 # cd adjtimex-* %patch50 -p1 @@ -283,6 +291,7 @@ rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/linux{32,64}.8 rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/ia64.8 rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/s390{,x}.8 rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/ppc{,32,64}.8 +rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/parisc{,32,64}.8 # arch dependent %ifarch s390 s390x rm -f $RPM_BUILD_ROOT/etc/fdprm @@ -558,6 +567,11 @@ fi #%endif %changelog +* Wed Feb 13 2008 bg@suse.de +- don't try to package parisc*.8 manual pages +* Mon Feb 11 2008 mkoenig@suse.de +- update to version 2.13.1 again +- fix broken util-linux-2.13.1-getfs_fix.patch * Sun Feb 10 2008 lrupp@suse.de - revert to 2.13.0.1+git20071121 breaks current 'mount' call in Buildservice