summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYegor Yefremov <yegor_sub1@visionsystems.de>2011-07-22 16:53:12 +0200
committerPeter Korsgaard <jacmet@sunsite.dk>2011-07-27 09:41:44 +0200
commit6378cac4e633600d1e2d6cdcd729049fda090fb3 (patch)
treefe0bb1592e2e7bde3b2fee8b4d00b484c90607dd
parent04d0689cc419c0181ddf0f6d4089df97699e9ee3 (diff)
downloadbuildroot-novena-6378cac4e633600d1e2d6cdcd729049fda090fb3.tar.gz
buildroot-novena-6378cac4e633600d1e2d6cdcd729049fda090fb3.zip
util-linux: convert to autotarget and bump to 2.19.1
[Peter: fix deps, restructure, add unshare] Signed-off-by: Chih-Min Chao <cmchao@gmail.com> Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-rw-r--r--package/util-linux/Config.in121
-rw-r--r--package/util-linux/util-linux-2.13-pre17-hardcode-a-out-constants.patch41
-rw-r--r--package/util-linux/util-linux-no-nls-fix.patch25
-rw-r--r--package/util-linux/util-linux-susv3-legacy.patch429
-rw-r--r--package/util-linux/util-linux-uclibc-build-fix.patch16
-rw-r--r--package/util-linux/util-linux-umount2-fix.patch20
-rw-r--r--package/util-linux/util-linux.mk134
7 files changed, 178 insertions, 608 deletions
diff --git a/package/util-linux/Config.in b/package/util-linux/Config.in
index 434dae952..b59a31ab2 100644
--- a/package/util-linux/Config.in
+++ b/package/util-linux/Config.in
@@ -1,8 +1,8 @@
-config BR2_PACKAGE_UTIL-LINUX
+config BR2_PACKAGE_UTIL_LINUX
bool "util-linux"
- select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
- select BR2_PACKAGE_LIBINTL if BR2_NEEDS_GETTEXT_IF_LOCALE
- depends on BR2_INET_RPC
+ depends on BR2_LARGEFILE
+ depends on BR2_USE_WCHAR
+ depends on BR2_PROGRAM_INVOCATION
help
Various useful/essential Linux utilities.
@@ -10,5 +10,114 @@ config BR2_PACKAGE_UTIL-LINUX
http://www.kernel.org/pub/linux/utils/util-linux/
-comment "util-linux requires a toolchain with RPC support"
- depends on !BR2_INET_RPC
+if BR2_PACKAGE_UTIL_LINUX
+
+############################################
+# default enabled and should be disabled by
+# --disable-foo
+#
+
+config BR2_PACKAGE_UTIL_LINUX_MOUNT
+ bool "build mount utilties"
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_FSCK
+ bool "build \"fsck\""
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_LIBUUID
+ bool "build libuuid and uuid utilities"
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_UUIDD
+ bool "build \"uuidd\""
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_LIBBLKID
+ bool "build libblkid and blkid utilities"
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_AGETTY
+ bool "build \"agetty\""
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_CRAMFS
+ bool "build \"fsck.cramfs, mkfs.cramfs\""
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT
+ bool "build \"switch_root\""
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT
+ bool "build \"pivot_root\""
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_FALLOCATE
+ bool "build \"fallocate\""
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_UNSHARE
+ bool "build \"unshare\""
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_RENAME
+ bool "build \"rename\""
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS
+ bool "build \"chrt, ionice, teskset\""
+ default y
+
+config BR2_PACKAGE_UTIL_LINUX_WALL
+ bool "build \"wall\""
+ default y
+
+############################################
+# default disabled and should be enabled by
+# --enable-foo
+#
+config BR2_PACKAGE_UTIL_LINUX_ARCH
+ bool "build \"arch\""
+ default n
+
+config BR2_PACKAGE_UTIL_LINUX_INIT
+ bool "build \"simpleinit, shutdown, initctl\""
+ default n
+
+config BR2_PACKAGE_UTIL_LINUX_KILL
+ bool "build \"kill\""
+ default n
+
+config BR2_PACKAGE_UTIL_LINUX_LAST
+ bool "build \"last\""
+ default n
+
+config BR2_PACKAGE_UTIL_LINUX_MESG
+ bool "build \"kill\""
+ default n
+
+config BR2_PACKAGE_UTIL_LINUX_PARTX
+ bool "build \"addpart, delpart, partx\""
+ default n
+
+config BR2_PACKAGE_UTIL_LINUX_RAW
+ bool "build \"raw\""
+ default n
+
+config BR2_PACKAGE_UTIL_LINUX_RESET
+ bool "build \"reset\""
+ default n
+
+config BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS
+ bool "build \"chfn, chsh, login, newgrp, vipw\""
+ default n
+
+config BR2_PACKAGE_UTIL_LINUX_WRITE
+ bool "build \"addpart, delpart, partx\""
+ default n
+
+endif
+
+comment "util-linux requires a toolchain with LARGEFILE/WCHAR/PROGRAM_INVOCATION support"
+ depends on !(BR2_LARGEFILE && BR2_USE_WCHAR && BR2_PROGRAM_INVOCATION)
diff --git a/package/util-linux/util-linux-2.13-pre17-hardcode-a-out-constants.patch b/package/util-linux/util-linux-2.13-pre17-hardcode-a-out-constants.patch
deleted file mode 100644
index b115c410e..000000000
--- a/package/util-linux/util-linux-2.13-pre17-hardcode-a-out-constants.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Hardcode a.out related constants
-
-The OMAGIC, NMAGIC and ZMAGIC constants, related to the legacy a.out
-binary format, are no longer available in the headers of all
-architectures, due to this binary format being deprecated. For that
-reason, util-linux fails to build.
-
-We therefore take the approach used in newer versions of
-util-linux-ng: hardcoding those values. See
-http://git.kernel.org/?p=utils/util-linux-ng/util-linux-ng.git;a=commitdiff;h=e9eb4dad0ece03914f67f6d1ded74cfbbe694ba4
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- text-utils/more.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-Index: util-linux-2.13-pre7/text-utils/more.c
-===================================================================
---- util-linux-2.13-pre7.orig/text-utils/more.c
-+++ util-linux-2.13-pre7/text-utils/more.c
-@@ -53,7 +53,6 @@
- #include <sys/stat.h>
- #include <sys/file.h>
- #include <sys/wait.h>
--#include <a.out.h>
- #include <locale.h>
- #include "xstrncpy.h"
- #include "nls.h"
-@@ -504,9 +503,9 @@
-
- if (fread(twobytes, 2, 1, f) == 1) {
- switch(twobytes[0] + (twobytes[1]<<8)) {
-- case OMAGIC: /* 0407 */
-- case NMAGIC: /* 0410 */
-- case ZMAGIC: /* 0413 */
-+ case 0407: /* a.out obj */
-+ case 0410: /* a.out exec */
-+ case 0413: /* a.out demand exec */
- case 0405:
- case 0411:
- case 0177545:
diff --git a/package/util-linux/util-linux-no-nls-fix.patch b/package/util-linux/util-linux-no-nls-fix.patch
deleted file mode 100644
index c02009f08..000000000
--- a/package/util-linux/util-linux-no-nls-fix.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-[PATCH]: fix util-linux build without NLS support
-
-util-linux partly supports builds without NLS support, but it forgets to
-provide a dummy setlocale() macro.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- include/nls.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
-Index: util-linux-2.13-pre7/include/nls.h
-===================================================================
---- util-linux-2.13-pre7.orig/include/nls.h
-+++ util-linux-2.13-pre7/include/nls.h
-@@ -19,6 +19,10 @@
- # define textdomain(Domain) /* empty */
- # define _(Text) (Text)
- # define N_(Text) (Text)
-+# undef LC_ALL
-+# define LC_ALL 0
-+# undef setlocale
-+# define setlocale(category, locale)
- #endif
-
-
diff --git a/package/util-linux/util-linux-susv3-legacy.patch b/package/util-linux/util-linux-susv3-legacy.patch
deleted file mode 100644
index 2239119a5..000000000
--- a/package/util-linux/util-linux-susv3-legacy.patch
+++ /dev/null
@@ -1,429 +0,0 @@
-[PATCH] replace susv3 legacy functions with modern equivalents
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- fdisk/cfdisk.c | 2 +-
- fdisk/fdiskbsdlabel.c | 16 ++++++++--------
- fdisk/sfdisk.c | 10 +++++-----
- login-utils/login.c | 6 +++---
- login-utils/shutdown.c | 2 +-
- login-utils/ttymsg.c | 2 +-
- login-utils/vipw.c | 4 ++--
- login-utils/wall.c | 2 +-
- misc-utils/logger.c | 2 +-
- misc-utils/namei.c | 2 +-
- misc-utils/whereis.c | 4 ++--
- mount/mntent.c | 4 ++--
- mount/mount.c | 4 ++--
- mount/mount_by_label.c | 2 +-
- mount/sundries.c | 2 +-
- mount/umount.c | 2 +-
- partx/partx.c | 2 +-
- text-utils/colcrt.c | 4 ++--
- text-utils/display.c | 2 +-
- text-utils/parse.c | 8 ++++----
- 20 files changed, 41 insertions(+), 41 deletions(-)
-
-Index: util-linux-2.13-pre7/fdisk/fdiskbsdlabel.c
-===================================================================
---- util-linux-2.13-pre7.orig/fdisk/fdiskbsdlabel.c
-+++ util-linux-2.13-pre7/fdisk/fdiskbsdlabel.c
-@@ -538,10 +538,10 @@
-
- /* 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));
-+ memmove (&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 @@
- exit ( EXIT_FAILURE );
- }
-
-- bcopy (&dl, d, sizeof (struct xbsd_disklabel));
-+ memmove (d, &dl, sizeof (struct xbsd_disklabel));
-
- #if defined (__powerpc__) || defined (__hppa__)
- sector = 0;
-@@ -657,7 +657,7 @@
- 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 @@
- 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));
-+ memmove (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,8 +776,8 @@
- /* 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],
-- sizeof (struct xbsd_disklabel));
-+ memmove (&disklabelbuffer[BSD_LABELSECTOR * SECTOR_SIZE + BSD_LABELOFFSET],
-+ d, sizeof (struct xbsd_disklabel));
-
- #if defined (__alpha__) && BSD_LABELSECTOR == 0
- alpha_bootblock_checksum (disklabelbuffer);
-Index: util-linux-2.13-pre7/login-utils/ttymsg.c
-===================================================================
---- util-linux-2.13-pre7.orig/login-utils/ttymsg.c
-+++ util-linux-2.13-pre7/login-utils/ttymsg.c
-@@ -111,7 +111,7 @@
- if (wret >= 0) {
- left -= wret;
- if (iov != localiov) {
-- bcopy(iov, localiov,
-+ memmove(localiov, iov,
- iovcnt * sizeof(struct iovec));
- iov = localiov;
- }
-Index: util-linux-2.13-pre7/login-utils/vipw.c
-===================================================================
---- util-linux-2.13-pre7.orig/login-utils/vipw.c
-+++ util-linux-2.13-pre7/login-utils/vipw.c
-@@ -313,8 +313,8 @@
- bindtextdomain(PACKAGE, LOCALEDIR);
- textdomain(PACKAGE);
-
-- bzero(tmp_file, FILENAMELEN);
-- progname = (rindex(argv[0], '/')) ? rindex(argv[0], '/') + 1 : argv[0];
-+ memset(tmp_file, 0, FILENAMELEN);
-+ progname = (strrchr(argv[0], '/')) ? strrchr(argv[0], '/') + 1 : argv[0];
- if (!strcmp(progname, "vigr")) {
- program = VIGR;
- xstrncpy(orig_file, GROUP_FILE, sizeof(orig_file));
-Index: util-linux-2.13-pre7/misc-utils/logger.c
-===================================================================
---- util-linux-2.13-pre7.orig/misc-utils/logger.c
-+++ util-linux-2.13-pre7/misc-utils/logger.c
-@@ -198,7 +198,7 @@
- } else {
- if (p != buf)
- *p++ = ' ';
-- bcopy(*argv++, p, len);
-+ memmove(p, *argv++, len);
- *(p += len) = '\0';
- }
- }
-Index: util-linux-2.13-pre7/misc-utils/namei.c
-===================================================================
---- util-linux-2.13-pre7.orig/misc-utils/namei.c
-+++ util-linux-2.13-pre7/misc-utils/namei.c
-@@ -242,7 +242,7 @@
- * 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;
-Index: util-linux-2.13-pre7/text-utils/colcrt.c
-===================================================================
---- util-linux-2.13-pre7.orig/text-utils/colcrt.c
-+++ util-linux-2.13-pre7/text-utils/colcrt.c
-@@ -252,8 +252,8 @@
- }
- putwchar('\n');
- }
-- bcopy(page[ol], page, (267 - ol) * 132 * sizeof(wchar_t));
-- bzero(page[267- ol], ol * 132 * sizeof(wchar_t));
-+ memmove(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;
-Index: util-linux-2.13-pre7/fdisk/sfdisk.c
-===================================================================
---- util-linux-2.13-pre7.orig/fdisk/sfdisk.c
-+++ util-linux-2.13-pre7/fdisk/sfdisk.c
-@@ -40,7 +40,7 @@
- #include <unistd.h> /* read, write */
- #include <fcntl.h> /* O_RDWR */
- #include <errno.h> /* ERANGE */
--#include <string.h> /* index() */
-+#include <string.h> /* strchr() */
- #include <ctype.h>
- #include <getopt.h>
- #include <sys/ioctl.h>
-@@ -1709,12 +1709,12 @@
- 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 */
-@@ -1724,7 +1724,7 @@
- }
-
- /* dump style? - then bad input is fatal */
-- if ((ip = index(line+2, ':')) != 0) {
-+ if ((ip = strchr(line+2, ':')) != 0) {
- struct dumpfld *d;
-
- nxtfld:
-@@ -2491,7 +2491,7 @@
-
- if (argc < 1)
- fatal(_("no command?\n"));
-- if ((progn = rindex(argv[0], '/')) == NULL)
-+ if ((progn = strrchr(argv[0], '/')) == NULL)
- progn = argv[0];
- else
- progn++;
-Index: util-linux-2.13-pre7/login-utils/login.c
-===================================================================
---- util-linux-2.13-pre7.orig/login-utils/login.c
-+++ util-linux-2.13-pre7/login-utils/login.c
-@@ -337,7 +337,7 @@
- */
- gethostname(tbuf, sizeof(tbuf));
- xstrncpy(thishost, tbuf, sizeof(thishost));
-- domain = index(tbuf, '.');
-+ domain = strchr(tbuf, '.');
-
- username = tty_name = hostname = NULL;
- fflag = hflag = pflag = 0;
-@@ -356,7 +356,7 @@
- exit(1);
- }
- hflag = 1;
-- if (domain && (p = index(optarg, '.')) &&
-+ if (domain && (p = strchr(optarg, '.')) &&
- strcasecmp(p, domain) == 0)
- *p = 0;
-
-@@ -1101,7 +1101,7 @@
- childArgv[childArgc++] = buff;
- } else {
- tbuf[0] = '-';
-- xstrncpy(tbuf + 1, ((p = rindex(pwd->pw_shell, '/')) ?
-+ xstrncpy(tbuf + 1, ((p = strrchr(pwd->pw_shell, '/')) ?
- p + 1 : pwd->pw_shell),
- sizeof(tbuf)-1);
-
-Index: util-linux-2.13-pre7/login-utils/shutdown.c
-===================================================================
---- util-linux-2.13-pre7.orig/login-utils/shutdown.c
-+++ util-linux-2.13-pre7/login-utils/shutdown.c
-@@ -279,7 +279,7 @@
- if (fgets (line, sizeof(line), fp) != NULL &&
- strncasecmp (line, "HALT_ACTION", 11) == 0 &&
- iswhitespace(line[11])) {
-- p = index(line, '\n');
-+ p = strchr(line, '\n');
- if (p)
- *p = 0; /* strip final '\n' */
- p = line+11;
-Index: util-linux-2.13-pre7/misc-utils/whereis.c
-===================================================================
---- util-linux-2.13-pre7.orig/misc-utils/whereis.c
-+++ util-linux-2.13-pre7/misc-utils/whereis.c
-@@ -323,14 +323,14 @@
- 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)
-Index: util-linux-2.13-pre7/mount/mntent.c
-===================================================================
---- util-linux-2.13-pre7.orig/mount/mntent.c
-+++ util-linux-2.13-pre7/mount/mntent.c
-@@ -158,7 +158,7 @@
- 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 @@
- 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;
-Index: util-linux-2.13-pre7/mount/mount.c
-===================================================================
---- util-linux-2.13-pre7.orig/mount/mount.c
-+++ util-linux-2.13-pre7/mount/mount.c
-@@ -488,11 +488,11 @@
-
- /* 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)
-Index: util-linux-2.13-pre7/mount/mount_by_label.c
-===================================================================
---- util-linux-2.13-pre7.orig/mount/mount_by_label.c
-+++ util-linux-2.13-pre7/mount/mount_by_label.c
-@@ -213,7 +213,7 @@
- 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 ]",
-Index: util-linux-2.13-pre7/mount/sundries.c
-===================================================================
---- util-linux-2.13-pre7.orig/mount/sundries.c
-+++ util-linux-2.13-pre7/mount/sundries.c
-@@ -138,7 +138,7 @@
- if (strncmp(p, type, len) == 0 &&
- (p[len] == 0 || p[len] == ','))
- return !no;
-- p = index(p,',');
-+ p = strchr(p,',');
- if (!p)
- break;
- p++;
-Index: util-linux-2.13-pre7/mount/umount.c
-===================================================================
---- util-linux-2.13-pre7.orig/mount/umount.c
-+++ util-linux-2.13-pre7/mount/umount.c
-@@ -332,7 +332,7 @@
- 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;
- }
- }
-Index: util-linux-2.13-pre7/partx/partx.c
-===================================================================
---- util-linux-2.13-pre7.orig/partx/partx.c
-+++ util-linux-2.13-pre7/partx/partx.c
-@@ -130,7 +130,7 @@
- case 'n':
- p = optarg;
- lower = atoi(p);
-- p = index(p, '-');
-+ p = strchr(p, '-');
- if (p)
- upper = atoi(p+1);
- else
-Index: util-linux-2.13-pre7/text-utils/display.c
-===================================================================
---- util-linux-2.13-pre7.orig/text-utils/display.c
-+++ util-linux-2.13-pre7/text-utils/display.c
-@@ -163,7 +163,7 @@
- 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) ;
- }
-
-Index: util-linux-2.13-pre7/text-utils/parse.c
-===================================================================
---- util-linux-2.13-pre7.orig/text-utils/parse.c
-+++ util-linux-2.13-pre7/text-utils/parse.c
-@@ -64,7 +64,7 @@
- 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 @@
- * 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 @@
- 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;
-Index: util-linux-2.13-pre7/fdisk/cfdisk.c
-===================================================================
---- util-linux-2.13-pre7.orig/fdisk/cfdisk.c
-+++ util-linux-2.13-pre7/fdisk/cfdisk.c
-@@ -348,7 +348,7 @@
- /* 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;
- }
-
-Index: util-linux-2.13-pre7/login-utils/wall.c
-===================================================================
---- util-linux-2.13-pre7.orig/login-utils/wall.c
-+++ util-linux-2.13-pre7/login-utils/wall.c
-@@ -87,7 +87,7 @@
- textdomain(PACKAGE);
-
- progname = argv[0];
-- p = rindex(progname, '/');
-+ p = strrchr(progname, '/');
- if (p)
- progname = p+1;
-
diff --git a/package/util-linux/util-linux-uclibc-build-fix.patch b/package/util-linux/util-linux-uclibc-build-fix.patch
new file mode 100644
index 000000000..f9da863f4
--- /dev/null
+++ b/package/util-linux/util-linux-uclibc-build-fix.patch
@@ -0,0 +1,16 @@
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: util-linux-2.19.1/configure.ac
+===================================================================
+--- util-linux-2.19.1.orig/configure.ac
++++ util-linux-2.19.1/configure.ac
+@@ -250,7 +250,7 @@ esac
+
+
+ AC_MSG_CHECKING(whether program_invocation_short_name is defined)
+-AC_TRY_COMPILE([#include <argp.h>],
++AC_TRY_COMPILE([#include <errno.h>],
+ [program_invocation_short_name = "test";],
+ AC_DEFINE(HAVE_PROGRAM_INVOCATION_SHORT_NAME, 1,
+ [Define if program_invocation_short_name is defined])
+
diff --git a/package/util-linux/util-linux-umount2-fix.patch b/package/util-linux/util-linux-umount2-fix.patch
deleted file mode 100644
index 14b6c3481..000000000
--- a/package/util-linux/util-linux-umount2-fix.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-[PATCH] fix multiple definitions of umount2 issue
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- mount/umount.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: util-linux-2.13-pre7/mount/umount.c
-===================================================================
---- util-linux-2.13-pre7.orig/mount/umount.c
-+++ util-linux-2.13-pre7/mount/umount.c
-@@ -29,7 +29,7 @@
- #include "nfsmount.h"
- #include <arpa/inet.h>
-
--#if defined(MNT_FORCE) && !defined(__sparc__) && !defined(__arm__)
-+#if 1
- /* Interesting ... it seems libc knows about MNT_FORCE and presumably
- about umount2 as well -- need not do anything */
- #else /* MNT_FORCE */
diff --git a/package/util-linux/util-linux.mk b/package/util-linux/util-linux.mk
index 445b4d1c7..a63055aa8 100644
--- a/package/util-linux/util-linux.mk
+++ b/package/util-linux/util-linux.mk
@@ -3,100 +3,60 @@
# util-linux
#
#############################################################
-UTIL-LINUX_VERSION:=2.13-pre7
-UTIL-LINUX_SOURCE:=util-linux-$(UTIL-LINUX_VERSION).tar.bz2
-UTIL-LINUX_SITE:=$(BR2_KERNEL_MIRROR)/linux/utils/util-linux/testing
-UTIL-LINUX_DIR:=$(BUILD_DIR)/util-linux-$(UTIL-LINUX_VERSION)
-UTIL-LINUX_CAT:=$(BZCAT)
-UTIL-LINUX_BINARY:=$(UTIL-LINUX_DIR)/misc-utils/chkdupexe
-UTIL-LINUX_TARGET_BINARY:=$(TARGET_DIR)/usr/bin/chkdupexe
+UTIL_LINUX_VERSION = $(UTIL_LINUX_VERSION_MAJOR).1
+UTIL_LINUX_VERSION_MAJOR = 2.19
+UTIL_LINUX_SOURCE = util-linux-$(UTIL_LINUX_VERSION).tar.bz2
+UTIL_LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/util-linux/v$(UTIL_LINUX_VERSION_MAJOR)
-# schedutils isn't support for all archs
-ifneq ($(BR2_i386)$(BR2_powerpc)$(BR2_x86_64)$(BR2_ia64)$(BR2_alpha),)
-UTIL-LINUX_SCHED_UTILS:=--enable-schedutils
-else
-UTIL-LINUX_SCHED_UTILS:=--disable-schedutils
-endif
+UTIL_LINUX_CONF_OPT += --disable-rpath --disable-makeinstall-chown
-ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
-UTIL-LINUX_DEPENDENCIES += gettext libintl
-UTIL-LINUX_MAKE_OPT = LIBS=-lintl
+# If both util-linux and busybox are selected, make certain util-linux
+# wins the fight over who gets to have their utils actually installed
+ifeq ($(BR2_PACKAGE_BUSYBOX),y)
+UTIL_LINUX_DEPENDENCIES += busybox
endif
ifeq ($(BR2_PACKAGE_NCURSES),y)
-UTIL-LINUX_DEPENDENCIES += ncurses
-endif
-
-$(DL_DIR)/$(UTIL-LINUX_SOURCE):
- $(call DOWNLOAD,$(UTIL-LINUX_SITE),$(UTIL-LINUX_SOURCE))
-
-$(UTIL-LINUX_DIR)/.unpacked: $(DL_DIR)/$(UTIL-LINUX_SOURCE)
- $(UTIL-LINUX_CAT) $(DL_DIR)/$(UTIL-LINUX_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
- toolchain/patch-kernel.sh $(UTIL-LINUX_DIR) package/util-linux/ util-linux\*.patch
- touch $(UTIL-LINUX_DIR)/.unpacked
-
-$(UTIL-LINUX_DIR)/.configured: $(UTIL-LINUX_DIR)/.unpacked
- (cd $(UTIL-LINUX_DIR); rm -rf config.cache; \
- $(TARGET_CONFIGURE_OPTS) \
- $(TARGET_CONFIGURE_ARGS) \
- ac_cv_lib_blkid_blkid_known_fstype=no \
- ./configure $(QUIET) \
- --target=$(GNU_TARGET_NAME) \
- --host=$(GNU_TARGET_NAME) \
- --build=$(GNU_HOST_NAME) \
- --disable-use-tty-group \
- --prefix=/ \
- --exec-prefix=/ \
- --sysconfdir=/etc \
- --datadir=/usr/share \
- --localstatedir=/var \
- --mandir=/usr/man \
- --infodir=/usr/info \
- $(UTIL-LINUX_SCHED_UTILS) \
- $(DISABLE_NLS) \
- $(DISABLE_LARGEFILE) \
- ARCH=$(ARCH) \
- )
- touch $(UTIL-LINUX_DIR)/.configured
-
-$(UTIL-LINUX_BINARY): $(UTIL-LINUX_DIR)/.configured
- $(MAKE) \
- -C $(UTIL-LINUX_DIR) \
- ARCH=$(ARCH) \
- CC="$(TARGET_CC)" \
- OPT="$(TARGET_CFLAGS)" \
- $(UTIL-LINUX_MAKE_OPT) \
- HAVE_SLANG="NO"
-
-$(UTIL-LINUX_TARGET_BINARY): $(UTIL-LINUX_BINARY)
- $(MAKE) ARCH=$(ARCH) DESTDIR=$(TARGET_DIR) USE_TTY_GROUP=no -C $(UTIL-LINUX_DIR) install
- rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/share/info \
- $(TARGET_DIR)/usr/share/man $(TARGET_DIR)/usr/share/doc
-
-#If both util-linux and busybox are selected, make certain util-linux
-#wins the fight over who gets to have their utils actually installed
-ifeq ($(BR2_PACKAGE_BUSYBOX),y)
-UTIL-LINUX_DEPENDENCIES := busybox $(UTIL-LINUX_DEPENDENCIES)
+UTIL_LINUX_DEPENDENCIES += ncurses
+else
+UTIL_LINUX_CONF_OPT += --without-ncurses
endif
-util-linux: $(UTIL-LINUX_DEPENDENCIES) $(UTIL-LINUX_TARGET_BINARY)
-
-util-linux-source: $(DL_DIR)/$(UTIL-LINUX_SOURCE)
-
-util-linux-clean:
- #There is no working 'uninstall' target. Just skip it...
- #$(MAKE) DESTDIR=$(TARGET_DIR) -C $(UTIL-LINUX_DIR) uninstall
- -$(MAKE) -C $(UTIL-LINUX_DIR) clean
-
-util-linux-dirclean:
- rm -rf $(UTIL-LINUX_DIR)
-
-#############################################################
+#############################################
#
-# Toplevel Makefile options
+# disable default utilities
#
-#############################################################
-ifeq ($(BR2_PACKAGE_UTIL-LINUX),y)
-TARGETS+=util-linux
-endif
+UTIL_LINUX_CONF_OPT += \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_MOUNT),,--disable-mount) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_FSCK),,--disable-fsck) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBUUID),,--disable-libuuid) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_UUID),,--disable-uuid) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),,--disable-libblkid) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_AGETTY),,--disable-agetty) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_CRAMFS),,--disable-cramfs) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT),,--disable-switch_root) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT),,--disable-pivot_root) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_FALLOCATE),,--disable-fallocate) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_UNSHARE),,--disable-unshare) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_RENAME),,--disable-rename) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS),,--disable-schedutils) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_WALL),,--disable-wall)
+
+#############################################
+#
+# enable extra utilities
+#
+UTIL_LINUX_CONF_OPT += \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_ARCH),--enable-arch) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_INIT),--enable-init) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_KILL),--enable-kill) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_LAST),--enable-last) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_MESG),--enable-mesg) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_PARTX),--enable-partx) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_RAW),--enable-raw) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_RESET),--enable-reset) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS),--enable-login-utils) \
+ $(if $(BR2_PACKAGE_UTIL_LINUX_WRITE),--enable-write)
+
+$(eval $(call AUTOTARGETS,package,util-linux))