summaryrefslogtreecommitdiff
path: root/package/util-linux
diff options
context:
space:
mode:
authorwbx <wbx@hydrogenium.(none)>2009-05-17 14:41:34 +0200
committerwbx <wbx@hydrogenium.(none)>2009-05-17 14:41:34 +0200
commit219a6dab8995aad9ac4860cc1a84d6f3509a03a4 (patch)
treeb9c0f3c43aebba2fcfef777592d0add39f2072f4 /package/util-linux
Initial import
Diffstat (limited to 'package/util-linux')
-rw-r--r--package/util-linux/Config.in38
-rw-r--r--package/util-linux/Makefile40
-rw-r--r--package/util-linux/ipkg/fdisk.control5
-rw-r--r--package/util-linux/ipkg/losetup.control5
-rw-r--r--package/util-linux/ipkg/swap-utils.control5
-rw-r--r--package/util-linux/patches/patch-MCONFIG69
-rw-r--r--package/util-linux/patches/patch-disk-utils_fsck_cramfs_c11
-rw-r--r--package/util-linux/patches/patch-fdisk_cfdisk_c12
-rw-r--r--package/util-linux/patches/patch-fdisk_fdiskbsdlabel_c54
-rw-r--r--package/util-linux/patches/patch-fdisk_llseek_c11
-rw-r--r--package/util-linux/patches/patch-fdisk_sfdisk_c68
-rw-r--r--package/util-linux/patches/patch-fdisk_sfdisk_c.orig12
-rw-r--r--package/util-linux/patches/patch-misc-utils_logger_c12
-rw-r--r--package/util-linux/patches/patch-misc-utils_namei_c12
-rw-r--r--package/util-linux/patches/patch-misc-utils_whereis_c20
-rw-r--r--package/util-linux/patches/patch-mount_mntent_c30
-rw-r--r--package/util-linux/patches/patch-mount_mount_by_label_c12
-rw-r--r--package/util-linux/patches/patch-mount_mount_c17
-rw-r--r--package/util-linux/patches/patch-mount_sundries_c12
-rw-r--r--package/util-linux/patches/patch-mount_umount_c12
-rw-r--r--package/util-linux/patches/patch-text-utils_colcrt_c14
-rw-r--r--package/util-linux/patches/patch-text-utils_display_c12
-rw-r--r--package/util-linux/patches/patch-text-utils_parse_c34
23 files changed, 517 insertions, 0 deletions
diff --git a/package/util-linux/Config.in b/package/util-linux/Config.in
new file mode 100644
index 000000000..2de091d4c
--- /dev/null
+++ b/package/util-linux/Config.in
@@ -0,0 +1,38 @@
+config ADK_COMPILE_UTIL_LINUX
+ tristate
+ default n
+ depends ADK_PACKAGE_FDISK || ADK_PACKAGE_SWAP_UTILS
+
+config ADK_PACKAGE_FDISK
+ prompt "fdisk............................. Partition table manipulation utility"
+ tristate
+ default n
+ select ADK_COMPILE_UTIL_LINUX
+ help
+ A partition table manipulation utility
+
+ http://www.kernel.org/pub/linux/utils/util-linux/
+
+config ADK_PACKAGE_LOSETUP
+ prompt "losetup........................... Loop devices setup and control utility"
+ tristate
+ default n
+ select ADK_COMPILE_UTIL_LINUX
+ select ADK_KPACKAGE_KMOD_BLK_DEV_LOOP
+ help
+ A loop devices setup and control utility
+
+ http://www.kernel.org/pub/linux/utils/util-linux/
+
+config ADK_PACKAGE_SWAP_UTILS
+ prompt "swap-utils........................ Swap space management utilities"
+ tristate
+ default n
+ select ADK_COMPILE_UTIL_LINUX
+ help
+ A collection of tools to manage swap space :
+ * mkswap
+ * swapon
+ * swapoff
+
+ http://www.kernel.org/pub/linux/utils/util-linux/
diff --git a/package/util-linux/Makefile b/package/util-linux/Makefile
new file mode 100644
index 000000000..8ea246a06
--- /dev/null
+++ b/package/util-linux/Makefile
@@ -0,0 +1,40 @@
+# $Id$
+#-
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${TOPDIR}/rules.mk
+
+PKG_NAME:= util-linux
+PKG_VERSION:= 2.12r
+PKG_RELEASE:= 1
+PKG_MD5SUM:= c261230b27fc0fbcc287c76884caf2d3
+
+MASTER_SITES:= ftp://ftp.kernel.org/pub/linux/utils/util-linux/ \
+ http://ftp.kernel.org/pub/linux/utils/util-linux/ \
+ ftp://ftp.de.kernel.org/pub/linux/utils/util-linux/ \
+ http://ftp.de.kernel.org/pub/linux/utils/util-linux/
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,FDISK,fdisk,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+$(eval $(call PKG_template,LOSETUP,losetup,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+$(eval $(call PKG_template,SWAP_UTILS,swap-utils,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+
+CONFIGURE_STYLE:= gnu
+BUILD_STYLE:= auto
+INSTALL_STYLE:= auto
+MAKE_FLAGS+= OPT="${TCFLAGS}" ARCH="${ARCH}"
+FAKE_FLAGS+= INSTALLSUID="install -m 4755"
+TCFLAGS+= -DSWAPON_HAS_TWO_ARGS -DHAVE_LLSEEK
+
+post-install:
+ ${INSTALL_DIR} ${IDIR_FDISK}/usr/sbin
+ ${CP} ${WRKINST}/sbin/fdisk ${IDIR_FDISK}/usr/sbin/
+ ${INSTALL_DIR} ${IDIR_LOSETUP}/usr/sbin
+ ${CP} ${WRKINST}/sbin/losetup ${IDIR_LOSETUP}/usr/sbin/
+ ${INSTALL_DIR} ${IDIR_SWAP_UTILS}/usr/sbin
+ ${CP} ${WRKINST}/sbin/mkswap ${IDIR_SWAP_UTILS}/usr/sbin/
+ ${CP} ${WRKINST}/sbin/swap{on,off} ${IDIR_SWAP_UTILS}/usr/sbin/
+
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/util-linux/ipkg/fdisk.control b/package/util-linux/ipkg/fdisk.control
new file mode 100644
index 000000000..cf73e98df
--- /dev/null
+++ b/package/util-linux/ipkg/fdisk.control
@@ -0,0 +1,5 @@
+Package: fdisk
+Priority: optional
+Section: admin
+Depends:
+Description: Partition table manipulation utility
diff --git a/package/util-linux/ipkg/losetup.control b/package/util-linux/ipkg/losetup.control
new file mode 100644
index 000000000..502305058
--- /dev/null
+++ b/package/util-linux/ipkg/losetup.control
@@ -0,0 +1,5 @@
+Package: losetup
+Priority: optional
+Section: admin
+Depends: kmod-loop
+Description: Loop devices setup and control utility
diff --git a/package/util-linux/ipkg/swap-utils.control b/package/util-linux/ipkg/swap-utils.control
new file mode 100644
index 000000000..c888251f6
--- /dev/null
+++ b/package/util-linux/ipkg/swap-utils.control
@@ -0,0 +1,5 @@
+Package: swap-utils
+Priority: optional
+Section: admin
+Depends:
+Description: Swap space management utilities
diff --git a/package/util-linux/patches/patch-MCONFIG b/package/util-linux/patches/patch-MCONFIG
new file mode 100644
index 000000000..494d2119c
--- /dev/null
+++ b/package/util-linux/patches/patch-MCONFIG
@@ -0,0 +1,69 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/MCONFIG 2004-12-13 00:15:48.000000000 +0100
++++ util-linux-2.12r/MCONFIG 2008-10-16 11:46:07.000000000 +0200
+@@ -16,8 +16,8 @@
+ # Select for ARCH one of intel, alpha, sparc, arm, m68k, mips
+ # Select for CPU i386 if the binaries must be able to run on an intel 386
+ # (by default i486 code is generated, see below)
+-CPU=$(shell uname -m)
+-ARCH=$(shell echo $(CPU) | sed 's/i.86/intel/;s/arm.*/arm/')
++CPU=
++ARCH=
+
+ # If HAVE_PAM is set to "yes", then login, chfn, chsh, and newgrp
+ # will use PAM for authentication. Additionally, passwd will not be
+@@ -64,12 +64,12 @@ HAVE_SYSVINIT_UTILS=yes
+ # If HAVE_WRITE is set to "yes", then write will not be built or
+ # installed from the misc-utils subdirectory.
+ # (There is a network aware write in netwrite from NetKit 0.16 or later.)
+-HAVE_WRITE=no
++HAVE_WRITE=yes
+
+ # If HAVE_GETTY is set to "yes", then agetty will not be built or
+ # installed from the login-utils subdirectory. Note that agetty can
+ # co-exist with other gettys, so this option should never be used.
+-HAVE_GETTY=no
++HAVE_GETTY=yes
+
+ # If USE_TTY_GROUP is set to "yes", then wall and write will be installed
+ # setgid to the "tty" group, and mesg will only set the group write bit.
+@@ -82,13 +82,13 @@ USE_TTY_GROUP=yes
+ # If HAVE_KILL is set to "yes", then kill will not be built or
+ # installed from the misc-utils subdirectory.
+ # (There is also a kill in the procps package.)
+-HAVE_KILL=no
++HAVE_KILL=yes
+
+ # If ALLOW_VCS_USE is set to "yes", then login will chown /dev/vcsN
+ # to the current user, allowing her to make a screendump and do other
+ # nifty things on the console, but also allowing him to keep an open
+ # file descriptor after logging out to trick the next user.
+-ALLOW_VCS_USE=yes
++ALLOW_VCS_USE=no
+
+ # If DO_STAT_MAIL is set to "yes", then login will stat() the mailbox
+ # and tell the user that she has new mail. This can hang the login if
+@@ -102,19 +102,19 @@ HAVE_RESET=yes
+ # If HAVE_SLN is set to "yes", then sln won't be installed
+ # (but the man page sln.8 will be installed anyway).
+ # sln also comes with libc and glibc.
+-HAVE_SLN=no
++HAVE_SLN=yes
+
+ # If HAVE_FDUTILS is set to "yes", then setfdprm won't be installed.
+-HAVE_FDUTILS=no
++HAVE_FDUTILS=yes
+
+ # If SILENT_PG is set to "yes", then pg will not ring the bell
+ # when an invalid key is pressed
+-SILENT_PG=no
++SILENT_PG=yes
+
+ # If configure decides that Native Language Support (NLS) is available,
+ # it sets MAY_ENABLE_NLS in defines.h. If you don't want NLS, set
+ # DISABLE_NLS to "yes".
+-DISABLE_NLS=no
++DISABLE_NLS=yes
+
+ # Different optimizations for different cpus.
+ # Before gcc 2.8.0 only -m486
diff --git a/package/util-linux/patches/patch-disk-utils_fsck_cramfs_c b/package/util-linux/patches/patch-disk-utils_fsck_cramfs_c
new file mode 100644
index 000000000..ad2a5f314
--- /dev/null
+++ b/package/util-linux/patches/patch-disk-utils_fsck_cramfs_c
@@ -0,0 +1,11 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/disk-utils/fsck.cramfs.c 2004-12-11 15:53:16.000000000 +0100
++++ util-linux-2.12r/disk-utils/fsck.cramfs.c 2008-10-16 11:44:16.000000000 +0200
+@@ -76,7 +76,6 @@ static uid_t euid; /* effective UID */
+
+ #define PAD_SIZE 512
+
+-#include <asm/page.h>
+ #ifdef PAGE_SIZE
+ #define PAGE_CACHE_SIZE ((int) PAGE_SIZE)
+ #elif defined __ia64__
diff --git a/package/util-linux/patches/patch-fdisk_cfdisk_c b/package/util-linux/patches/patch-fdisk_cfdisk_c
new file mode 100644
index 000000000..7ae258710
--- /dev/null
+++ b/package/util-linux/patches/patch-fdisk_cfdisk_c
@@ -0,0 +1,12 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/fdisk/cfdisk.c 2005-09-09 23:44:57.000000000 +0200
++++ util-linux-2.12r/fdisk/cfdisk.c 2008-10-16 12:30:58.000000000 +0200
+@@ -353,7 +353,7 @@ xmalloc (size_t size) {
+ /* Some libc's have their own basename() */
+ static char *
+ my_basename(char *devname) {
+- char *s = rindex(devname, '/');
++ char *s = strrchr(devname, '/');
+ return s ? s+1 : devname;
+ }
+
diff --git a/package/util-linux/patches/patch-fdisk_fdiskbsdlabel_c b/package/util-linux/patches/patch-fdisk_fdiskbsdlabel_c
new file mode 100644
index 000000000..7c57b9e40
--- /dev/null
+++ b/package/util-linux/patches/patch-fdisk_fdiskbsdlabel_c
@@ -0,0 +1,54 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/fdisk/fdiskbsdlabel.c 2003-07-13 23:12:47.000000000 +0200
++++ util-linux-2.12r/fdisk/fdiskbsdlabel.c 2008-10-16 12:28:32.000000000 +0200
+@@ -538,10 +538,10 @@ xbsd_write_bootstrap (void)
+
+ /* We need a backup of the disklabel (xbsd_dlabel might have changed). */
+ d = &disklabelbuffer[BSD_LABELSECTOR * SECTOR_SIZE];
+- bcopy (d, &dl, sizeof (struct xbsd_disklabel));
++ memcpy (&dl, d, sizeof (struct xbsd_disklabel));
+
+ /* The disklabel will be overwritten by 0's from bootxx anyway */
+- bzero (d, sizeof (struct xbsd_disklabel));
++ memset (d, 0 ,sizeof (struct xbsd_disklabel));
+
+ snprintf (path, sizeof(path), "%s/boot%s", bootdir, dkbasename);
+ if (!xbsd_get_bootstrap (path, &disklabelbuffer[xbsd_dlabel.d_secsize],
+@@ -555,7 +555,7 @@ xbsd_write_bootstrap (void)
+ exit ( EXIT_FAILURE );
+ }
+
+- bcopy (&dl, d, sizeof (struct xbsd_disklabel));
++ memcpy (d, &dl, sizeof (struct xbsd_disklabel));
+
+ #if defined (__powerpc__) || defined (__hppa__)
+ sector = 0;
+@@ -657,7 +657,7 @@ xbsd_initlabel (struct partition *p, str
+ struct geom g;
+
+ get_geometry (fd, &g);
+- bzero (d, sizeof (struct xbsd_disklabel));
++ memset (d, 0, sizeof (struct xbsd_disklabel));
+
+ d -> d_magic = BSD_DISKMAGIC;
+
+@@ -740,8 +740,8 @@ xbsd_readlabel (struct partition *p, str
+ if (BSD_BBSIZE != read (fd, disklabelbuffer, BSD_BBSIZE))
+ fatal (unable_to_read);
+
+- bcopy (&disklabelbuffer[BSD_LABELSECTOR * SECTOR_SIZE + BSD_LABELOFFSET],
+- d, sizeof (struct xbsd_disklabel));
++ memcpy (d, &disklabelbuffer[BSD_LABELSECTOR * SECTOR_SIZE + BSD_LABELOFFSET],
++ sizeof (struct xbsd_disklabel));
+
+ if (d -> d_magic != BSD_DISKMAGIC || d -> d_magic2 != BSD_DISKMAGIC)
+ return 0;
+@@ -776,7 +776,7 @@ xbsd_writelabel (struct partition *p, st
+ /* This is necessary if we want to write the bootstrap later,
+ otherwise we'd write the old disklabel with the bootstrap.
+ */
+- bcopy (d, &disklabelbuffer[BSD_LABELSECTOR * SECTOR_SIZE + BSD_LABELOFFSET],
++ memcpy (&disklabelbuffer[BSD_LABELSECTOR * SECTOR_SIZE + BSD_LABELOFFSET], d,
+ sizeof (struct xbsd_disklabel));
+
+ #if defined (__alpha__) && BSD_LABELSECTOR == 0
diff --git a/package/util-linux/patches/patch-fdisk_llseek_c b/package/util-linux/patches/patch-fdisk_llseek_c
new file mode 100644
index 000000000..a067c34e7
--- /dev/null
+++ b/package/util-linux/patches/patch-fdisk_llseek_c
@@ -0,0 +1,11 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/fdisk/llseek.c 2003-07-13 23:13:33.000000000 +0200
++++ util-linux-2.12r/fdisk/llseek.c 2008-10-16 12:30:16.000000000 +0200
+@@ -16,6 +16,7 @@ extern long long ext2_llseek (unsigned i
+
+ #ifdef HAVE_LLSEEK
+ #include <syscall.h>
++#define my_llseek lseek
+
+ #else /* HAVE_LLSEEK */
+
diff --git a/package/util-linux/patches/patch-fdisk_sfdisk_c b/package/util-linux/patches/patch-fdisk_sfdisk_c
new file mode 100644
index 000000000..02f0358fe
--- /dev/null
+++ b/package/util-linux/patches/patch-fdisk_sfdisk_c
@@ -0,0 +1,68 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/fdisk/sfdisk.c 2005-01-04 23:31:57.000000000 +0100
++++ util-linux-2.12r/fdisk/sfdisk.c 2008-10-16 12:42:16.000000000 +0200
+@@ -171,16 +171,6 @@ fatal(char *s, ...) {
+ *
+ * Note: we use 512-byte sectors here, irrespective of the hardware ss.
+ */
+-#undef use_lseek
+-#if defined (__alpha__) || defined (__ia64__) || defined (__x86_64__) || defined (__s390x__)
+-#define use_lseek
+-#endif
+-
+-#ifndef use_lseek
+-static __attribute__used
+-_syscall5(int, _llseek, unsigned int, fd, ulong, hi, ulong, lo,
+- loff_t *, res, unsigned int, wh);
+-#endif
+
+ static int
+ sseek(char *dev, unsigned int fd, unsigned long s) {
+@@ -188,12 +178,8 @@ sseek(char *dev, unsigned int fd, unsign
+ in = ((loff_t) s << 9);
+ out = 1;
+
+-#ifndef use_lseek
+- if (_llseek (fd, in>>32, in & 0xffffffff, &out, SEEK_SET) != 0) {
+-#else
+- if ((out = lseek(fd, in, SEEK_SET)) != in) {
+-#endif
+- perror("llseek");
++ if ((out = lseek64(fd, in, SEEK_SET)) != in) {
++ perror("lseek64");
+ error(_("seek error on %s - cannot seek to %lu\n"), dev, s);
+ return 0;
+ }
+@@ -1730,12 +1716,12 @@ read_stdin(unsigned char **fields, unsig
+ eof = 1;
+ return RD_EOF;
+ }
+- if (!(lp = index(lp, '\n')))
++ if (!(lp = strchr(lp, '\n')))
+ fatal(_("long or incomplete input line - quitting\n"));
+ *lp = 0;
+
+ /* remove comments, if any */
+- if ((lp = index(line+2, '#')) != 0)
++ if ((lp = strchr(line+2, '#')) != 0)
+ *lp = 0;
+
+ /* recognize a few commands - to be expanded */
+@@ -1745,7 +1731,7 @@ read_stdin(unsigned char **fields, unsig
+ }
+
+ /* dump style? - then bad input is fatal */
+- if ((ip = index(line+2, ':')) != 0) {
++ if ((ip = strchr(line+2, ':')) != 0) {
+ struct dumpfld *d;
+
+ nxtfld:
+@@ -2514,7 +2500,7 @@ main(int argc, char **argv) {
+
+ if (argc < 1)
+ fatal(_("no command?\n"));
+- if ((progn = rindex(argv[0], '/')) == NULL)
++ if ((progn = strrchr(argv[0], '/')) == NULL)
+ progn = argv[0];
+ else
+ progn++;
diff --git a/package/util-linux/patches/patch-fdisk_sfdisk_c.orig b/package/util-linux/patches/patch-fdisk_sfdisk_c.orig
new file mode 100644
index 000000000..9b9560f00
--- /dev/null
+++ b/package/util-linux/patches/patch-fdisk_sfdisk_c.orig
@@ -0,0 +1,12 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/fdisk/sfdisk.c 2005-01-04 23:31:57.000000000 +0100
++++ util-linux-2.12r/fdisk/sfdisk.c 2008-10-16 12:32:33.000000000 +0200
+@@ -2514,7 +2514,7 @@ main(int argc, char **argv) {
+
+ if (argc < 1)
+ fatal(_("no command?\n"));
+- if ((progn = rindex(argv[0], '/')) == NULL)
++ if ((progn = strrchr(argv[0], '/')) == NULL)
+ progn = argv[0];
+ else
+ progn++;
diff --git a/package/util-linux/patches/patch-misc-utils_logger_c b/package/util-linux/patches/patch-misc-utils_logger_c
new file mode 100644
index 000000000..59fba39b7
--- /dev/null
+++ b/package/util-linux/patches/patch-misc-utils_logger_c
@@ -0,0 +1,12 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/misc-utils/logger.c 2004-09-06 23:13:49.000000000 +0200
++++ util-linux-2.12r/misc-utils/logger.c 2008-10-16 11:47:36.000000000 +0200
+@@ -198,7 +198,7 @@ main(int argc, char **argv) {
+ } else {
+ if (p != buf)
+ *p++ = ' ';
+- bcopy(*argv++, p, len);
++ memcpy(p, *argv++, len);
+ *(p += len) = '\0';
+ }
+ }
diff --git a/package/util-linux/patches/patch-misc-utils_namei_c b/package/util-linux/patches/patch-misc-utils_namei_c
new file mode 100644
index 000000000..07945d906
--- /dev/null
+++ b/package/util-linux/patches/patch-misc-utils_namei_c
@@ -0,0 +1,12 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/misc-utils/namei.c 2004-12-23 00:03:39.000000000 +0100
++++ util-linux-2.12r/misc-utils/namei.c 2008-10-16 11:48:55.000000000 +0200
+@@ -242,7 +242,7 @@ namei(char *file, int lev) {
+ * call namei()
+ */
+
+- bzero(sym, BUFSIZ);
++ memset(sym, 0, BUFSIZ);
+ if(readlink(buf, sym, BUFSIZ) == -1){
+ (void)printf(_(" ? problems reading symlink %s - %s (%d)\n"), buf, ERR);
+ return;
diff --git a/package/util-linux/patches/patch-misc-utils_whereis_c b/package/util-linux/patches/patch-misc-utils_whereis_c
new file mode 100644
index 000000000..4c1f25868
--- /dev/null
+++ b/package/util-linux/patches/patch-misc-utils_whereis_c
@@ -0,0 +1,20 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/misc-utils/whereis.c 2001-03-15 11:09:58.000000000 +0100
++++ util-linux-2.12r/misc-utils/whereis.c 2008-10-16 11:50:03.000000000 +0200
+@@ -323,14 +323,14 @@ findin(char *dir, char *cp) {
+ char dirbuf[1024];
+ struct stat statbuf;
+
+- dd = index(dir, '*');
++ dd = strchr(dir, '*');
+ if (!dd)
+ goto noglob;
+
+ l = strlen(dir);
+ if (l < sizeof(dirbuf)) { /* refuse excessively long names */
+ strcpy (dirbuf, dir);
+- d = index(dirbuf, '*');
++ d = strchr(dirbuf, '*');
+ *d = 0;
+ dirp = opendir(dirbuf);
+ if (dirp == NULL)
diff --git a/package/util-linux/patches/patch-mount_mntent_c b/package/util-linux/patches/patch-mount_mntent_c
new file mode 100644
index 000000000..7445e1bf4
--- /dev/null
+++ b/package/util-linux/patches/patch-mount_mntent_c
@@ -0,0 +1,30 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/mount/mntent.c 2004-10-13 22:57:34.000000000 +0200
++++ util-linux-2.12r/mount/mntent.c 2008-10-16 12:00:45.000000000 +0200
+@@ -6,7 +6,7 @@
+ */
+
+ #include <stdio.h>
+-#include <string.h> /* for index */
++#include <string.h> /* for strchr */
+ #include <ctype.h> /* for isdigit */
+ #include <sys/stat.h> /* for umask */
+ #include "mntent.h"
+@@ -158,7 +158,7 @@ my_getmntent (mntFILE *mfp) {
+ return NULL;
+
+ mfp->mntent_lineno++;
+- s = index (buf, '\n');
++ s = strchr (buf, '\n');
+ if (s == NULL) {
+ /* Missing final newline? Otherwise extremely */
+ /* long line - assume file was corrupted */
+@@ -166,7 +166,7 @@ my_getmntent (mntFILE *mfp) {
+ fprintf(stderr, _("[mntent]: warning: no final "
+ "newline at the end of %s\n"),
+ mfp->mntent_file);
+- s = index (buf, 0);
++ s = strchr (buf, 0);
+ } else {
+ mfp->mntent_errs = 1;
+ goto err;
diff --git a/package/util-linux/patches/patch-mount_mount_by_label_c b/package/util-linux/patches/patch-mount_mount_by_label_c
new file mode 100644
index 000000000..dd40fc7c4
--- /dev/null
+++ b/package/util-linux/patches/patch-mount_mount_by_label_c
@@ -0,0 +1,12 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/mount/mount_by_label.c 2004-12-22 00:15:33.000000000 +0100
++++ util-linux-2.12r/mount/mount_by_label.c 2008-10-16 12:01:50.000000000 +0200
+@@ -213,7 +213,7 @@ uuidcache_init(void) {
+ fseek(procpt, 0, SEEK_SET);
+
+ while (fgets(line, sizeof(line), procpt)) {
+- if (!index(line, '\n'))
++ if (!strchr(line, '\n'))
+ break;
+
+ if (sscanf (line, " %d %d %d %[^\n ]",
diff --git a/package/util-linux/patches/patch-mount_mount_c b/package/util-linux/patches/patch-mount_mount_c
new file mode 100644
index 000000000..8ffdf8ee0
--- /dev/null
+++ b/package/util-linux/patches/patch-mount_mount_c
@@ -0,0 +1,17 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/mount/mount.c 2004-12-21 23:00:36.000000000 +0100
++++ util-linux-2.12r/mount/mount.c 2008-10-16 12:00:29.000000000 +0200
+@@ -488,11 +488,11 @@ guess_fstype_and_mount(const char *spec,
+
+ /* Accept a comma-separated list of types, and try them one by one */
+ /* A list like "nonfs,.." indicates types not to use */
+- if (*types && strncmp(*types, "no", 2) && index(*types,',')) {
++ if (*types && strncmp(*types, "no", 2) && strchr(*types,',')) {
+ char *t = strdup(*types);
+ char *p;
+
+- while((p = index(t,',')) != NULL) {
++ while((p = strchr(t,',')) != NULL) {
+ *p = 0;
+ args.type = *types = t;
+ if(do_mount_syscall (&args) == 0)
diff --git a/package/util-linux/patches/patch-mount_sundries_c b/package/util-linux/patches/patch-mount_sundries_c
new file mode 100644
index 000000000..860b8c10b
--- /dev/null
+++ b/package/util-linux/patches/patch-mount_sundries_c
@@ -0,0 +1,12 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/mount/sundries.c 2004-12-21 20:12:31.000000000 +0100
++++ util-linux-2.12r/mount/sundries.c 2008-10-16 12:00:59.000000000 +0200
+@@ -138,7 +138,7 @@ matching_type (const char *type, const c
+ if (strncmp(p, type, len) == 0 &&
+ (p[len] == 0 || p[len] == ','))
+ return !no;
+- p = index(p,',');
++ p = strchr(p,',');
+ if (!p)
+ break;
+ p++;
diff --git a/package/util-linux/patches/patch-mount_umount_c b/package/util-linux/patches/patch-mount_umount_c
new file mode 100644
index 000000000..ee0eb3920
--- /dev/null
+++ b/package/util-linux/patches/patch-mount_umount_c
@@ -0,0 +1,12 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/mount/umount.c 2005-09-10 20:07:38.000000000 +0200
++++ util-linux-2.12r/mount/umount.c 2008-10-16 12:02:22.000000000 +0200
+@@ -338,7 +338,7 @@ umount_one (const char *spec, const char
+ if (res < 0)
+ umnt_err2 = errno;
+ /* Do not complain about remote NFS mount points */
+- if (errno == ENOENT && index(spec, ':'))
++ if (errno == ENOENT && strchr(spec, ':'))
+ umnt_err2 = 0;
+ }
+ }
diff --git a/package/util-linux/patches/patch-text-utils_colcrt_c b/package/util-linux/patches/patch-text-utils_colcrt_c
new file mode 100644
index 000000000..3e2b90e94
--- /dev/null
+++ b/package/util-linux/patches/patch-text-utils_colcrt_c
@@ -0,0 +1,14 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/text-utils/colcrt.c 2001-03-15 11:09:59.000000000 +0100
++++ util-linux-2.12r/text-utils/colcrt.c 2008-10-16 12:49:47.000000000 +0200
+@@ -252,8 +252,8 @@ void pflush(int ol)
+ }
+ putwchar('\n');
+ }
+- bcopy(page[ol], page, (267 - ol) * 132 * sizeof(wchar_t));
+- bzero(page[267- ol], ol * 132 * sizeof(wchar_t));
++ memcpy(page, page[ol], (267 - ol) * 132 * sizeof(wchar_t));
++ memset(page[267- ol], 0, ol * 132 * sizeof(wchar_t));
+ outline -= ol;
+ outcol = 0;
+ first = 1;
diff --git a/package/util-linux/patches/patch-text-utils_display_c b/package/util-linux/patches/patch-text-utils_display_c
new file mode 100644
index 000000000..f1b17a774
--- /dev/null
+++ b/package/util-linux/patches/patch-text-utils_display_c
@@ -0,0 +1,12 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/text-utils/display.c 2002-03-09 00:05:39.000000000 +0100
++++ util-linux-2.12r/text-utils/display.c 2008-10-16 12:52:48.000000000 +0200
+@@ -163,7 +163,7 @@ static void bpad(PR *pr)
+ pr->cchar[0] = 's';
+ pr->cchar[1] = 0;
+ for (p1 = pr->fmt; *p1 != '%'; ++p1);
+- for (p2 = ++p1; *p1 && index(spec, *p1); ++p1);
++ for (p2 = ++p1; *p1 && strchr(spec, *p1); ++p1);
+ while ((*p2++ = *p1++) != 0) ;
+ }
+
diff --git a/package/util-linux/patches/patch-text-utils_parse_c b/package/util-linux/patches/patch-text-utils_parse_c
new file mode 100644
index 000000000..d94a81851
--- /dev/null
+++ b/package/util-linux/patches/patch-text-utils_parse_c
@@ -0,0 +1,34 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- util-linux-2.12r.orig/text-utils/parse.c 2002-03-09 00:07:00.000000000 +0100
++++ util-linux-2.12r/text-utils/parse.c 2008-10-16 12:51:11.000000000 +0200
+@@ -64,7 +64,7 @@ void addfile(char *name)
+ exit(1);
+ }
+ while (fgets(buf, sizeof(buf), fp)) {
+- if ((p = index(buf, '\n')) == NULL) {
++ if ((p = strchr(buf, '\n')) == NULL) {
+ (void)fprintf(stderr, _("hexdump: line too long.\n"));
+ while ((ch = getchar()) != '\n' && ch != EOF);
+ continue;
+@@ -171,7 +171,7 @@ int size(FS *fs)
+ * skip any special chars -- save precision in
+ * case it's a %s format.
+ */
+- while (index(spec + 1, *++fmt));
++ while (strchr(spec + 1, *++fmt));
+ if (*fmt == '.' && isdigit((unsigned char)*++fmt)) {
+ prec = atoi(fmt);
+ while (isdigit((unsigned char)*++fmt));
+@@ -244,10 +244,10 @@ void rewrite(FS *fs)
+ if (fu->bcnt) {
+ sokay = USEBCNT;
+ /* skip to conversion character */
+- for (++p1; index(spec, *p1); ++p1);
++ for (++p1; strchr(spec, *p1); ++p1);
+ } else {
+ /* skip any special chars, field width */
+- while (index(spec + 1, *++p1));
++ while (strchr(spec + 1, *++p1));
+ if (*p1 == '.' &&
+ isdigit((unsigned char)*++p1)) {
+ sokay = USEPREC;