aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/util-linux
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-09-01 19:09:11 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-09-01 19:09:57 +0100
commitd62ee7eaf2ba025c3f64b2d4e10dc7cec4637612 (patch)
treef36fe3008f36ff75cbdd31b630f8f13f1f205ebb /meta/recipes-core/util-linux
parentcaab7fc509bf27706ff3248689f6afd04225cfda (diff)
downloadopenembedded-core-contrib-d62ee7eaf2ba025c3f64b2d4e10dc7cec4637612.tar.gz
packages: Separate out most of the remaining packages into recipes
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-core/util-linux')
-rw-r--r--meta/recipes-core/util-linux/files/MCONFIG223
-rw-r--r--meta/recipes-core/util-linux/files/debian-bug392236.patch203
-rw-r--r--meta/recipes-core/util-linux/files/defines.h10
-rw-r--r--meta/recipes-core/util-linux/files/fdiskbsdlabel_thumb.diff12
-rw-r--r--meta/recipes-core/util-linux/files/fix-make-c.patch41
-rw-r--r--meta/recipes-core/util-linux/files/gcc34.patch23
-rw-r--r--meta/recipes-core/util-linux/files/glibc-fix.patch22
-rw-r--r--meta/recipes-core/util-linux/files/make_include17
-rw-r--r--meta/recipes-core/util-linux/files/optional-uuid.patch55
-rw-r--r--meta/recipes-core/util-linux/files/swapargs.h3
-rw-r--r--meta/recipes-core/util-linux/files/umount.diff19
-rw-r--r--meta/recipes-core/util-linux/files/uuid.patch22
-rw-r--r--meta/recipes-core/util-linux/util-linux-2.17.2/tls.patch70
-rw-r--r--meta/recipes-core/util-linux/util-linux-2.17.2/uclibc-compile.patch13
-rw-r--r--meta/recipes-core/util-linux/util-linux-2.17.2/util-linux-ng-replace-siginterrupt.patch23
-rw-r--r--meta/recipes-core/util-linux/util-linux.inc237
-rw-r--r--meta/recipes-core/util-linux/util-linux_2.17.2.bb11
17 files changed, 1004 insertions, 0 deletions
diff --git a/meta/recipes-core/util-linux/files/MCONFIG b/meta/recipes-core/util-linux/files/MCONFIG
new file mode 100644
index 0000000000..3fea2c02d7
--- /dev/null
+++ b/meta/recipes-core/util-linux/files/MCONFIG
@@ -0,0 +1,223 @@
+# MCONFIG -- Configuration stuff for util-linux
+# Created: Sat Feb 4 15:50:30 1995
+# Copyright 1995 Rickard E. Faith (faith@cs.unc.edu)
+
+# For a user-mode install, make (at least) three changes:
+# - remove the `-o root' part in INSTALLSUID
+# - set USE_TTY_GROUP=no
+# - define DESTDIR
+
+# 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/')
+
+# If HAVE_PAM is set to "yes", then login, chfn, chsh, and newgrp
+# will use PAM for authentication. Additionally, passwd will not be
+# installed as it is not PAM aware.
+HAVE_PAM=no
+
+# If HAVE_SHADOW is set to "yes", then login, chfn, chsh, newgrp, passwd,
+# and vipw will not be built or installed from the login-utils
+# subdirectory.
+HAVE_SHADOW=yes
+
+# If HAVE_PASSWD is set to "yes", then passwd will not be built or
+# installed from the login-utils subdirectory (but login, chfn, chsh,
+# newgrp, and vipw *will* be installed).
+HAVE_PASSWD=no
+
+# If you use chfn and chsh from this package, REQUIRE_PASSWORD will require
+# non-root users to enter the account password before updating /etc/passwd.
+REQUIRE_PASSWORD=yes
+#REQUIRE_PASSWORD=no
+
+# If you use chsh from this package, ONLY_LISTED_SHELLS will require that
+# the selected shell be listed in /etc/shells -- otherwise only a warning is
+# printed. This prevents someone from setting their shell to /bin/false.
+ONLY_LISTED_SHELLS=yes
+#ONLY_LISTED_SHELLS=no
+
+
+# If HAVE_SYSVINIT is set to "yes", then simpleinit and shutdown will not
+# be built or installed from the login-utils subdirectory. (The shutdown
+# and halt that come with the SysVinit package should be used with the init
+# found in that package.)
+HAVE_SYSVINIT=no
+
+# If HAVE_SYSVINIT_UTILS is set to "yes", then last, mesg, and wall will
+# not be built or installed from the login-utils subdirectory. (The
+# shutdown and init from the SysVinit package do not depend on the last,
+# mesg, and wall from that package.)
+HAVE_SYSVINIT_UTILS=no
+
+# 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
+
+# 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
+
+# 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.
+# Note that this is only useful if login/xterm/etc. change the group of the
+# user's tty to "tty" [The login in util-linux does this correctly, and
+# xterm will do it correctly if X is compiled with USE_TTY_GROUP set
+# properly.]
+USE_TTY_GROUP=no
+
+# 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
+
+# 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
+
+# If HAVE_RESET is set to "yes", then reset won't be installed. The version
+# of reset that comes with the ncurses package is less aggressive.
+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
+
+# If HAVE_FDUTILS is set to "yes", then setfdprm won't be installed.
+HAVE_FDUTILS=no
+
+# If SILENT_PG is set to "yes", then pg will not ring the bell
+# when an invalid key is pressed
+SILENT_PG=no
+
+# 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
+
+# Different optimizations for different cpus.
+# gcc 3.0 likes options -mcpu=i486 instead of -m486
+ifeq "$(ARCH)" "intel"
+ ifeq "$(HAVE_OLD_GCC)" "yes"
+ CPUHEAD=-m
+ else
+ CPUHEAD=-mcpu=i
+ endif
+ ifeq "$(CPU)" "i386"
+ CPUTAIL=386
+ else
+ CPUTAIL=486
+ endif
+ CPUOPT= $(CPUHEAD)$(CPUTAIL)
+ OPT= -pipe -O2 $(CPUOPT) -fomit-frame-pointer
+else
+ ifeq "$(ARCH)" "arm"
+ OPT= -pipe -O2 -fsigned-char -fomit-frame-pointer
+ else
+ OPT= -O2 -fomit-frame-pointer
+ endif
+endif
+
+WARNFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes
+
+LIB=../lib
+
+ERR_O=$(LIB)/err.o
+
+# Set HAVE_SLANG to yes if you have slang (and prefer to use that for cfdisk)
+# (If neither HAVE_NCURSES nor HAVE_SLANG is defined, cfdisk is not made.)
+# HAVE_SLANG=yes
+# There is a subdirectory /usr/include/slang containing slcurses.h
+# SLANGFLAGS=-I/usr/include/slang
+# No such subdirectory - slcurses.h lives in /usr/include
+# (no extra definition required).
+LIBSLANG=-lslang
+
+#
+# Paths used for compilation (not all are actually used, see CFLAGS below)
+#
+DEV_DIR= /dev
+ETC_DIR= /etc
+SBIN_DIR= /sbin
+USRSBIN_DIR= /usr/sbin
+USRLIB_DIR= /usr/lib
+USRBIN_DIR= /usr/bin
+USRGAMES_DIR= /usr/games
+USRSHAREMISC_DIR=/usr/share/misc
+LOCALE_DIR= /usr/share/locale
+BIN_DIR= /bin
+VAR_PATH= /var
+LOG_DIR= /var/log
+MAN_DIR= /usr/share/man
+INFO_DIR= /usr/share/info
+
+#
+# Paths used for install
+#
+DEVDIR= $(DESTDIR)$(DEV_DIR)
+ETCDIR= $(DESTDIR)$(ETC_DIR)
+SBINDIR= $(DESTDIR)$(SBIN_DIR)
+USRSBINDIR= $(DESTDIR)$(USRSBIN_DIR)
+USRLIBDIR= $(DESTDIR)$(USRLIB_DIR)
+USRBINDIR= $(DESTDIR)$(USRBIN_DIR)
+USRGAMESDIR= $(DESTDIR)$(USRGAMES_DIR)
+USRSHAREMISCDIR=$(DESTDIR)$(USRSHAREMISC_DIR)
+LOCALEDIR= $(DESTDIR)$(LOCALE_DIR)
+BINDIR= $(DESTDIR)$(BIN_DIR)
+VARPATH= $(DESTDIR)$(VAR_PATH)
+LOGDIR= $(DESTDIR)$(LOG_DIR)
+MANDIR= $(DESTDIR)$(MAN_DIR)
+MAN1DIR= $(MANDIR)/man1
+MAN3DIR= $(MANDIR)/man3
+MAN5DIR= $(MANDIR)/man5
+MAN6DIR= $(MANDIR)/man6
+MAN8DIR= $(MANDIR)/man8
+INFODIR= $(DESTDIR)$(INFO_DIR)
+
+# Directory for shutdown, halt, reboot, etc.
+SHUTDOWNDIR= $(SBINDIR)
+
+# Modes
+DIRMODE= 755
+BINMODE= 755
+MANMODE= 644
+DATMODE= 644
+INFOMODE= 644
+SUIDMODE= 4755
+
+CHMOD= chmod
+INSTALL= install
+INSTALLDIR= $(INSTALL) -d -m $(DIRMODE)
+INSTALLBIN= $(INSTALL) -m $(BINMODE)
+INSTALLMAN= $(INSTALL) -m $(MANMODE)
+INSTALLDAT= $(INSTALL) -m $(DATMODE)
+INSTALLSUID= $(INSTALL) -m $(SUIDMODE)
+
+ifeq "$(DISABLE_NLS)" "yes"
+NLSFLAGS = -DDISABLE_NLS
+endif
+
+CFLAGS := $(OPT) -I$(LIB) $(WARNFLAGS) \
+ $(CURSESFLAGS) $(SLANGFLAGS) $(NLSFLAGS) \
+ -D_FILE_OFFSET_BITS=64 \
+ -DSBINDIR=\"$(SBIN_DIR)\" \
+ -DUSRSBINDIR=\"$(USRSBIN_DIR)\" \
+ -DLOGDIR=\"$(LOG_DIR)\" \
+ -DVARPATH=\"$(VAR_PATH)\" \
+ -DLOCALEDIR=\"$(LOCALE_DIR)\" \
+ $(CFLAGS)
+
+
+%.o: %.c
+ $(CC) -c $(CFLAGS) $< -o $@
+
+%: %.cc
+ $(CXX) $(CFLAGS) $< -o $@
+
diff --git a/meta/recipes-core/util-linux/files/debian-bug392236.patch b/meta/recipes-core/util-linux/files/debian-bug392236.patch
new file mode 100644
index 0000000000..fcd2046e34
--- /dev/null
+++ b/meta/recipes-core/util-linux/files/debian-bug392236.patch
@@ -0,0 +1,203 @@
+Index: util-linux-2.12r/fdisk/llseek.c
+===================================================================
+--- util-linux-2.12r.orig/fdisk/llseek.c 2003-07-13 23:13:33.000000000 +0200
++++ util-linux-2.12r/fdisk/llseek.c 2007-04-04 19:01:14.000000000 +0200
+@@ -14,30 +14,23 @@
+
+ #ifdef __linux__
+
+-#ifdef HAVE_LLSEEK
+-#include <syscall.h>
+-
+-#else /* HAVE_LLSEEK */
++#include <sys/syscall.h>
++#ifndef HAVE_LLSEEK
+
+ #if defined(__alpha__) || defined(__ia64__) || defined(__s390x__)
+
+ #define my_llseek lseek
+
+ #else
+-#include <linux/unistd.h> /* for __NR__llseek */
+-
+-static int _llseek (unsigned int, unsigned long,
+- unsigned long, long long *, unsigned int);
+
+-#ifdef __NR__llseek
++#ifdef SYS__llseek
+
+-static _syscall5(int,_llseek,unsigned int,fd,unsigned long,offset_high,
+- unsigned long, offset_low,long long *,result,
+- unsigned int, origin)
++#define _llseek(fd, offset_high, offset_low, result, origin) \
++ syscall(SYS__llseek, fd, offset_high, offset_low, result, origin)
+
+ #else
+
+-/* no __NR__llseek on compilation machine - might give it explicitly */
++/* no SYS__llseek on compilation machine - might give it explicitly */
+ static int _llseek (unsigned int fd, unsigned long oh,
+ unsigned long ol, long long *result,
+ unsigned int origin) {
+Index: util-linux-2.12r/fdisk/sfdisk.c
+===================================================================
+--- util-linux-2.12r.orig/fdisk/sfdisk.c 2005-01-04 23:31:57.000000000 +0100
++++ util-linux-2.12r/fdisk/sfdisk.c 2007-04-04 19:01:14.000000000 +0200
+@@ -48,7 +48,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+ #include <sys/utsname.h>
+-#include <linux/unistd.h> /* _syscall */
++#include <sys/syscall.h>
+ #include "nls.h"
+ #include "common.h"
+
+@@ -177,9 +177,8 @@
+ #endif
+
+ #ifndef use_lseek
+-static __attribute__used
+-_syscall5(int, _llseek, unsigned int, fd, ulong, hi, ulong, lo,
+- loff_t *, res, unsigned int, wh);
++#define _llseek(fd, hi, lo, res, wh) \
++ syscall(SYS__llseek, fd, hi, lo, res, wh)
+ #endif
+
+ static int
+Index: util-linux-2.12r/lib/my_reboot.c
+===================================================================
+--- util-linux-2.12r.orig/lib/my_reboot.c 1999-07-09 04:56:36.000000000 +0200
++++ util-linux-2.12r/lib/my_reboot.c 2007-04-04 19:01:14.000000000 +0200
+@@ -23,10 +23,11 @@
+ #else /* no USE_LIBC */
+
+ /* direct syscall version */
+-#include <linux/unistd.h>
++#include <sys/syscall.h>
+
+-#ifdef _syscall3
+-_syscall3(int, reboot, int, magic, int, magic_too, int, cmd);
++#ifdef SYS_reboot
++#define reboot(magic, magic2, cmd) \
++ syscall(SYS_reboot, magic, magic2, cmd)
+ #else
+ /* Let us hope we have a 3-argument reboot here */
+ extern int reboot(int, int, int);
+Index: util-linux-2.12r/misc-utils/setterm.c
+===================================================================
+--- util-linux-2.12r.orig/misc-utils/setterm.c 2003-10-17 18:17:51.000000000 +0200
++++ util-linux-2.12r/misc-utils/setterm.c 2007-04-04 19:01:14.000000000 +0200
+@@ -119,14 +119,13 @@
+
+ #if __GNU_LIBRARY__ < 5
+ #ifndef __alpha__
+-# include <linux/unistd.h>
+-#define __NR_klogctl __NR_syslog
+-_syscall3(int, klogctl, int, type, char*, buf, int, len);
++# include <sys/syscall.h>
++#define klogctl(type, buf, len) \
++ syscall(SYS_syslog, type, buf, len)
+ #else /* __alpha__ */
+ #define klogctl syslog
+ #endif
+ #endif
+-extern int klogctl(int type, char *buf, int len);
+
+ /* Constants. */
+
+Index: util-linux-2.12r/mount/swapon.c
+===================================================================
+--- util-linux-2.12r.orig/mount/swapon.c 2004-12-22 10:50:19.000000000 +0100
++++ util-linux-2.12r/mount/swapon.c 2007-04-04 19:01:14.000000000 +0200
+@@ -82,11 +82,11 @@
+ #else
+ /* We want a swapon with two args, but have an old libc.
+ Build the kernel call by hand. */
+-#include <linux/unistd.h>
+-static
+-_syscall2(int, swapon, const char *, path, int, flags);
+-static
+-_syscall1(int, swapoff, const char *, path);
++#include <sys/syscall.h>
++#define swapon(path, flags) \
++ syscall(SYS_swapon, path, flags)
++#define swapoff(path) \
++ syscall(SYS_swapoff, path)
+ #endif
+ #else
+ /* just do as libc says */
+Index: util-linux-2.12r/mount/umount.c
+===================================================================
+--- util-linux-2.12r.orig/mount/umount.c 2007-04-04 19:01:14.000000000 +0200
++++ util-linux-2.12r/mount/umount.c 2007-04-04 19:02:22.000000000 +0200
+@@ -37,14 +37,13 @@
+ #else /* MNT_FORCE */
+
+ /* Does the present kernel source know about umount2? */
+-#include <linux/unistd.h>
+-#ifdef __NR_umount2
++#include <sys/syscall.h>
++#ifdef SYS_umount2
+
+-int umount2(const char *path, int flags);
++#define umount2(path, flags) \
++ syscall(SYS_umount2, path, flags)
+
+-_syscall2(int, umount2, const char *, path, int, flags);
+-
+-#else /* __NR_umount2 */
++#else /* SYS_umount2 */
+
+ static int
+ umount2(const char *path, int flags) {
+@@ -52,7 +51,7 @@
+ errno = ENOSYS;
+ return -1;
+ }
+-#endif /* __NR_umount2 */
++#endif /* SYS_umount2 */
+
+ #if !defined(MNT_FORCE)
+ /* dare not try to include <linux/mount.h> -- lots of errors */
+Index: util-linux-2.12r/partx/partx.c
+===================================================================
+--- util-linux-2.12r.orig/partx/partx.c 2004-08-23 22:13:27.000000000 +0200
++++ util-linux-2.12r/partx/partx.c 2007-04-04 19:01:14.000000000 +0200
+@@ -338,10 +338,9 @@
+ #endif
+
+ #ifdef NEED__llseek
+-#include <linux/unistd.h> /* _syscall */
+-static
+-_syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo,
+- long long *, res, uint, wh);
++#include <sys/syscall.h>
++#define _llseek(fd, hi, lo, res, wh) \
++ syscall(SYS__llseek, fd, hi, lo, res, wh)
+ #endif
+
+ static int
+Index: util-linux-2.12r/sys-utils/dmesg.c
+===================================================================
+--- util-linux-2.12r.orig/sys-utils/dmesg.c 2004-05-04 18:38:12.000000000 +0200
++++ util-linux-2.12r/sys-utils/dmesg.c 2007-04-04 19:01:14.000000000 +0200
+@@ -29,7 +29,7 @@
+ * Only function 3 is allowed to non-root processes.
+ */
+
+-#include <linux/unistd.h>
++#include <sys/syscall.h>
+ #include <stdio.h>
+ #include <getopt.h>
+ #include <stdlib.h>
+@@ -38,8 +38,8 @@
+ #if __GNU_LIBRARY__ < 5
+
+ #ifndef __alpha__
+-# define __NR_klogctl __NR_syslog
+- static inline _syscall3(int, klogctl, int, type, char *, b, int, len);
++# define klogctl(type, b, len) \
++ syscall(SYS_syslog, type, b, len)
+ #else /* __alpha__ */
+ #define klogctl syslog
+ #endif
diff --git a/meta/recipes-core/util-linux/files/defines.h b/meta/recipes-core/util-linux/files/defines.h
new file mode 100644
index 0000000000..6ce6b86df5
--- /dev/null
+++ b/meta/recipes-core/util-linux/files/defines.h
@@ -0,0 +1,10 @@
+#define UTIL_LINUX_VERSION "2.12"
+#define util_linux_version "util-linux-2.12"
+
+#define HAVE_blkpg_h
+#define HAVE_kd_h
+#define HAVE_locale_h
+#define HAVE_langinfo_h
+#define HAVE_sys_user_h
+#define HAVE_asm_types_h
+//#define NEED_tqueue_h
diff --git a/meta/recipes-core/util-linux/files/fdiskbsdlabel_thumb.diff b/meta/recipes-core/util-linux/files/fdiskbsdlabel_thumb.diff
new file mode 100644
index 0000000000..e6f82b5b46
--- /dev/null
+++ b/meta/recipes-core/util-linux/files/fdiskbsdlabel_thumb.diff
@@ -0,0 +1,12 @@
+--- util-linux-2.12r/fdisk/fdiskbsdlabel.h.orig 2006-01-21 23:53:51.000000000 +0100
++++ util-linux-2.12r/fdisk/fdiskbsdlabel.h 2006-01-21 23:54:35.000000000 +0100
+@@ -52,6 +52,9 @@
+ #elif defined (__s390__) || defined (__s390x__)
+ #define BSD_LABELSECTOR 1
+ #define BSD_LABELOFFSET 0
++#elif defined (__thumb__)
++#define BSD_LABELSECTOR 1
++#define BSD_LABELOFFSET 0
+ #else
+ #error unknown architecture
+ #endif
diff --git a/meta/recipes-core/util-linux/files/fix-make-c.patch b/meta/recipes-core/util-linux/files/fix-make-c.patch
new file mode 100644
index 0000000000..bf1082e85c
--- /dev/null
+++ b/meta/recipes-core/util-linux/files/fix-make-c.patch
@@ -0,0 +1,41 @@
+From: Karel Zak <kzak@redhat.com>
+Date: Mon, 11 May 2009 09:49:00 +0000 (+0200)
+Subject: build-sys: fix "make -C" bug
+X-Git-Url: http://git.kernel.org/?p=utils%2Futil-linux-ng%2Futil-linux-ng.git;a=commitdiff_plain;h=2ef7d41e6bbb7c842c06e911ffc562335a467b5d
+
+build-sys: fix "make -C" bug
+
+Running:
+
+./configure --with-fsprobe=builtin
+make -C mount mount
+
+causes the following error:
+
+gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -include ../config.h
+-I../include -DLOCALEDIR=\"/home/matthew/util-linux-ng/share/locale\"
+-fsigned-char -I../libs/blkid/src -g -O2 -MT mount-setproctitle.o
+-MD -MP -MF .deps/mount-setproctitle.Tpo -c -o mount-setproctitle.o
+`test -f '../lib/setproctitle.c' || echo './'`../lib/setproctitle.c mv
+-f .deps/mount-setproctitle.Tpo .deps/mount-setproctitle.Po
+make -C
+make: option requires an argument -- 'C'
+Usage: make [options] [target] ...
+...
+
+Reported-by: Matthew Burgess <matthew@linuxfromscratch.org>
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+
+diff --git a/config/include-Makefile.am b/config/include-Makefile.am
+index b42a0c3..d5da619 100644
+--- a/config/include-Makefile.am
++++ b/config/include-Makefile.am
+@@ -17,6 +17,7 @@ dist_noinst_DATA = $(dist_man_MANS)
+ # Paths to in-tree libraries (use ul_ prefix to avoid possible collisions)
+ #
+ ul_libblkid_srcdir = $(top_srcdir)/libs/blkid/src
++ul_libblkid_builddir = $(top_builddir)/libs/blkid/src
+ ul_libblkid_la = $(top_builddir)/libs/blkid/src/libblkid.la
+
+ $(ul_libblkid_la):
diff --git a/meta/recipes-core/util-linux/files/gcc34.patch b/meta/recipes-core/util-linux/files/gcc34.patch
new file mode 100644
index 0000000000..8c4a20cdca
--- /dev/null
+++ b/meta/recipes-core/util-linux/files/gcc34.patch
@@ -0,0 +1,23 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- util-linux-2.12o/disk-utils/fsck.cramfs.c~gcc34
++++ util-linux-2.12o/disk-utils/fsck.cramfs.c
+@@ -77,15 +77,7 @@
+ #define PAD_SIZE 512
+
+ #include <asm/page.h>
+-#ifdef PAGE_SIZE
+-#define PAGE_CACHE_SIZE ((int) PAGE_SIZE)
+-#elif defined __ia64__
+-#define PAGE_CACHE_SIZE (16384)
+-#elif defined __alpha__
+-#define PAGE_CACHE_SIZE (8192)
+-#else
+ #define PAGE_CACHE_SIZE (4096)
+-#endif
+
+ /* Guarantee access to at least 8kB at a time */
+ #define ROMBUFFER_BITS 13
diff --git a/meta/recipes-core/util-linux/files/glibc-fix.patch b/meta/recipes-core/util-linux/files/glibc-fix.patch
new file mode 100644
index 0000000000..6d0c2fcefa
--- /dev/null
+++ b/meta/recipes-core/util-linux/files/glibc-fix.patch
@@ -0,0 +1,22 @@
+--- /tmp/cmos.c 2006-11-21 11:38:55.000000000 +0100
++++ util-linux-2.12r/hwclock/cmos.c 2006-11-21 11:41:45.458554000 +0100
+@@ -46,15 +46,16 @@
+
+ #include <unistd.h> /* for geteuid() */
+ #include <fcntl.h> /* for O_RDWR */
++#include <linux/version.h>
+ #include <errno.h>
+ #include "../defines.h" /* for HAVE_sys_io_h */
+ #include "nls.h"
+
+ #if defined(__i386__)
+-#ifdef HAVE_sys_io_h
+-#include <sys/io.h>
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
++#include <asm/io.h>
+ #else
+-#include <asm/io.h> /* for inb, outb */
++#include <sys/io.h> /* for inb, outb */
+ #endif
+ #elif defined(__alpha__)
+ /* <asm/io.h> fails to compile, probably because of u8 etc */
diff --git a/meta/recipes-core/util-linux/files/make_include b/meta/recipes-core/util-linux/files/make_include
new file mode 100644
index 0000000000..e6abcd91f7
--- /dev/null
+++ b/meta/recipes-core/util-linux/files/make_include
@@ -0,0 +1,17 @@
+VERSION=2.12
+CC=gcc
+CFLAGS=
+LDFLAGS=
+HAVE_OLD_GCC=yes
+HAVE_RAW_H=yes
+HAVE_NCURSES=yes
+CURSESFLAGS=-DNCH=1
+LIBCURSES=-lncurses
+HAVE_TERMCAP=no
+NEED_LIBCRYPT=yes
+FOREIGN = --foreign-user
+HAVE_XGETTEXT=yes
+HAVE_OPENPTY=yes
+HAVE_PIVOT_ROOT=yes
+HAVE_GOOD_RPC=yes
+HAVE_ZLIB=yes
diff --git a/meta/recipes-core/util-linux/files/optional-uuid.patch b/meta/recipes-core/util-linux/files/optional-uuid.patch
new file mode 100644
index 0000000000..2d0ea43cd2
--- /dev/null
+++ b/meta/recipes-core/util-linux/files/optional-uuid.patch
@@ -0,0 +1,55 @@
+From: Karel Zak <kzak@redhat.com>
+Date: Tue, 12 May 2009 19:22:19 +0000 (+0200)
+Subject: blkid: make libuuid optional
+X-Git-Url: http://git.kernel.org/?p=utils%2Futil-linux-ng%2Futil-linux-ng.git;a=commitdiff_plain;h=cdd17c7a73cab10a34bf80616225b8215ac4e2ed
+
+blkid: make libuuid optional
+
+read.c:28:23: error: uuid/uuid.h: No such file or directory
+make[3]: *** [read.lo] Error 1
+make[3]: *** Waiting for unfinished jobs....
+
+Reported-by: Olaf <mailinglists@ban-solms.de>
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+
+diff --git a/libs/blkid/src/config.c b/libs/blkid/src/config.c
+index 2e59218..9091736 100644
+--- a/libs/blkid/src/config.c
++++ b/libs/blkid/src/config.c
+@@ -24,9 +24,6 @@
+ #include <errno.h>
+ #endif
+ #include <stdint.h>
+-#ifdef HAVE_LIBUUID
+-#include <uuid/uuid.h>
+-#endif
+ #include <stdarg.h>
+
+ #include "blkdev.h"
+diff --git a/libs/blkid/src/evaluate.c b/libs/blkid/src/evaluate.c
+index a9c9fba..f0ae126 100644
+--- a/libs/blkid/src/evaluate.c
++++ b/libs/blkid/src/evaluate.c
+@@ -27,9 +27,6 @@
+ #include <errno.h>
+ #endif
+ #include <stdint.h>
+-#ifdef HAVE_LIBUUID
+-#include <uuid/uuid.h>
+-#endif
+ #include <stdarg.h>
+
+ #include "pathnames.h"
+diff --git a/libs/blkid/src/read.c b/libs/blkid/src/read.c
+index 4163874..b5e9cd0 100644
+--- a/libs/blkid/src/read.c
++++ b/libs/blkid/src/read.c
+@@ -25,7 +25,6 @@
+ #endif
+
+ #include "blkidP.h"
+-#include "uuid/uuid.h"
+
+ #ifdef HAVE_STRTOULL
+ #define STRTOULL strtoull /* defined in stdlib.h if you try hard enough */
diff --git a/meta/recipes-core/util-linux/files/swapargs.h b/meta/recipes-core/util-linux/files/swapargs.h
new file mode 100644
index 0000000000..e960eef05f
--- /dev/null
+++ b/meta/recipes-core/util-linux/files/swapargs.h
@@ -0,0 +1,3 @@
+#define SWAPON_HAS_TWO_ARGS
+#include <asm/page.h>
+#include <sys/swap.h>
diff --git a/meta/recipes-core/util-linux/files/umount.diff b/meta/recipes-core/util-linux/files/umount.diff
new file mode 100644
index 0000000000..78330789ef
--- /dev/null
+++ b/meta/recipes-core/util-linux/files/umount.diff
@@ -0,0 +1,19 @@
+*** util-linux-2.12r/mount/umount.c.orig 2005-09-10 20:07:38.000000000 +0200
+--- util-linux-2.12r/mount/umount.c 2006-06-07 21:14:04.000000000 +0200
+***************
+*** 40,46 ****
+ #include <linux/unistd.h>
+ #ifdef __NR_umount2
+
+! static int umount2(const char *path, int flags);
+
+ _syscall2(int, umount2, const char *, path, int, flags);
+
+--- 40,46 ----
+ #include <linux/unistd.h>
+ #ifdef __NR_umount2
+
+! int umount2(const char *path, int flags);
+
+ _syscall2(int, umount2, const char *, path, int, flags);
+
diff --git a/meta/recipes-core/util-linux/files/uuid.patch b/meta/recipes-core/util-linux/files/uuid.patch
new file mode 100644
index 0000000000..3208e0a865
--- /dev/null
+++ b/meta/recipes-core/util-linux/files/uuid.patch
@@ -0,0 +1,22 @@
+Index: util-linux-ng-2.15/libs/blkid/src/Makefile.am
+===================================================================
+--- util-linux-ng-2.15.orig/libs/blkid/src/Makefile.am 2009-05-19 17:01:15.000000000 +0100
++++ util-linux-ng-2.15/libs/blkid/src/Makefile.am 2009-05-19 17:08:11.000000000 +0100
+@@ -7,7 +7,7 @@
+ common_ldadd =
+
+ if HAVE_UUID
+-common_ldadd += -luuid #TODO $(UUID_LIBS)
++common_ldadd += -luuid
+ endif
+
+ # includes
+@@ -26,7 +26,7 @@
+ $(top_srcdir)/lib/md5.c
+
+ libblkid_la_LIBADD = probers/libblkid_probers.la $(common_ldadd)
+-libblkid_la_DEPENDENCIES = $(libblkid_la_LIBADD) blkid.sym
++libblkid_la_DEPENDENCIES = probers/libblkid_probers.la blkid.sym
+
+ # TODO: for unknown reason "make distcheck" requires
+ # full path to the version script
diff --git a/meta/recipes-core/util-linux/util-linux-2.17.2/tls.patch b/meta/recipes-core/util-linux/util-linux-2.17.2/tls.patch
new file mode 100644
index 0000000000..bdb29cae1f
--- /dev/null
+++ b/meta/recipes-core/util-linux/util-linux-2.17.2/tls.patch
@@ -0,0 +1,70 @@
+Index: util-linux-ng-2.16/m4/tls.m4
+===================================================================
+--- util-linux-ng-2.16.orig/m4/tls.m4 2009-07-04 01:20:03.000000000 +0200
++++ util-linux-ng-2.16/m4/tls.m4 2009-07-30 01:57:30.151697033 +0200
+@@ -18,31 +18,26 @@
+ # version as well.
+ #
+ AC_DEFUN([AX_TLS], [
+- AC_MSG_CHECKING(for thread local storage (TLS) class)
+- AC_CACHE_VAL(ac_cv_tls, [
+- ax_tls_keywords="__thread __declspec(thread) none"
+- for ax_tls_keyword in $ax_tls_keywords; do
+- case $ax_tls_keyword in
+- none) ac_cv_tls=none ; break ;;
+- *)
+- AC_TRY_COMPILE(
+- [#include <stdlib.h>
+- static void
+- foo(void) {
+- static ] $ax_tls_keyword [ int bar;
+- exit(1);
+- }],
+- [],
+- [ac_cv_tls=$ax_tls_keyword ; break],
+- ac_cv_tls=none
+- )
+- esac
+- done
+-])
++ AC_CACHE_CHECK([for thread local storage (TLS) class],
++ ac_cv_tls,
++ [AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }],
++ [chktls_save_LDFLAGS="$LDFLAGS"
++ LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
++ chktls_save_CFLAGS="$CFLAGS"
++ CFLAGS="-fPIC $CFLAGS"
++ dnl If -shared works, test if TLS works in a shared library.
++ AC_LINK_IFELSE([int f() { return 0; }],
++ AC_LINK_IFELSE([__thread int a; int b; int f() { return a = b; }],
++ [ac_cv_tls=yes],
++ [ac_cv_tls=no]),
++ [ac_cv_tls=yes])
++ CFLAGS="$chktls_save_CFLAGS"
++ LDFLAGS="$chktls_save_LDFLAGS"], [ac_cv_tls=no])
++ ])
+
+- if test "$ac_cv_tls" != "none"; then
+- dnl AC_DEFINE([TLS], [], [If the compiler supports a TLS storage class define it to that here])
+- AC_DEFINE_UNQUOTED([TLS], $ac_cv_tls, [If the compiler supports a TLS storage class define it to that here])
+- fi
+- AC_MSG_RESULT($ac_cv_tls)
++ AS_IF([test "x$ac_cv_tls" = "xyes"],
++ [AC_DEFINE([TLS], 1,
++ [Define this if the compiler supports __thread for Thread-Local Storage])
++ $1],
++ [$2])
+ ])
+Index: util-linux-ng-2.16/shlibs/uuid/src/gen_uuid.c
+===================================================================
+--- util-linux-ng-2.16.orig/shlibs/uuid/src/gen_uuid.c 2009-07-30 02:31:48.518159459 +0200
++++ util-linux-ng-2.16/shlibs/uuid/src/gen_uuid.c 2009-07-30 02:32:04.867871183 +0200
+@@ -99,7 +99,7 @@
+ #endif
+
+ #ifdef TLS
+-#define THREAD_LOCAL static TLS
++#define THREAD_LOCAL static __thread
+ #else
+ #define THREAD_LOCAL static
+ #endif
diff --git a/meta/recipes-core/util-linux/util-linux-2.17.2/uclibc-compile.patch b/meta/recipes-core/util-linux/util-linux-2.17.2/uclibc-compile.patch
new file mode 100644
index 0000000000..b2e8a8b95a
--- /dev/null
+++ b/meta/recipes-core/util-linux/util-linux-2.17.2/uclibc-compile.patch
@@ -0,0 +1,13 @@
+Index: util-linux-ng-2.16/misc-utils/cal.c
+===================================================================
+--- util-linux-ng-2.16.orig/misc-utils/cal.c 2009-07-03 16:20:01.000000000 -0700
++++ util-linux-ng-2.16/misc-utils/cal.c 2009-07-18 23:21:37.000000000 -0700
+@@ -407,7 +407,7 @@
+ strcpy(day_headings,"");
+ strcpy(j_day_headings,"");
+
+-#ifdef HAVE_LANGINFO_H
++#ifdef HAVE_LANGINFO_H && !defined(__UCLIBC__)
+ # define weekday(wd) nl_langinfo(ABDAY_1+wd)
+ #else
+ # define weekday(wd) _time_info->abbrev_wkday[wd]
diff --git a/meta/recipes-core/util-linux/util-linux-2.17.2/util-linux-ng-replace-siginterrupt.patch b/meta/recipes-core/util-linux/util-linux-2.17.2/util-linux-ng-replace-siginterrupt.patch
new file mode 100644
index 0000000000..4b5eb73760
--- /dev/null
+++ b/meta/recipes-core/util-linux/util-linux-2.17.2/util-linux-ng-replace-siginterrupt.patch
@@ -0,0 +1,23 @@
+Index: util-linux-ng-2.14/login-utils/login.c
+===================================================================
+--- util-linux-ng-2.14.orig/login-utils/login.c 2008-05-28 16:01:02.000000000 -0700
++++ util-linux-ng-2.14/login-utils/login.c 2009-03-04 18:31:42.000000000 -0800
+@@ -358,6 +358,7 @@
+ char *childArgv[10];
+ char *buff;
+ int childArgc = 0;
++ struct sigaction act;
+ #ifdef HAVE_SECURITY_PAM_MISC_H
+ int retcode;
+ pam_handle_t *pamh = NULL;
+@@ -373,7 +374,9 @@
+ pid = getpid();
+
+ signal(SIGALRM, timedout);
+- siginterrupt(SIGALRM,1); /* we have to interrupt syscalls like ioclt() */
++ (void) sigaction(SIGALRM, NULL, &act);
++ act.sa_flags &= ~SA_RESTART;
++ sigaction(SIGALRM, &act, NULL);
+ alarm((unsigned int)timeout);
+ signal(SIGQUIT, SIG_IGN);
+ signal(SIGINT, SIG_IGN);
diff --git a/meta/recipes-core/util-linux/util-linux.inc b/meta/recipes-core/util-linux/util-linux.inc
new file mode 100644
index 0000000000..571b53c99c
--- /dev/null
+++ b/meta/recipes-core/util-linux/util-linux.inc
@@ -0,0 +1,237 @@
+DESCRIPTION = "Util-linux is a suite of essential utilities for any Linux system."
+SECTION = "base"
+
+# note that `lscpu' is under GPLv3+
+LICENSE = "GPLv2+ & LGPLv2.1+ & BSD"
+LICENSE_util-linux-lscpu = "GPLv3+"
+
+LIC_FILES_CHKSUM = "file://README.licensing;md5=1530e36fe1304d4535513de90a290df9 \
+ file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://licenses/COPYING.GPL;md5=8ca43cbc842c2336e835926c2166c28b \
+ file://licenses/COPYING.UCB;md5=263860f8968d8bafa5392cab74285262 \
+ file://getopt/COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+DEPENDS = "udev zlib ncurses virtual/libintl gettext"
+DEPENDS_virtclass-native = "zlib-native ncurses-native lzo-native gettext-native"
+
+inherit autotools
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/util-linux-ng/v${MAJOR_VERSION}/util-linux-ng-${PV}.tar.bz2 \
+ file://MCONFIG \
+ file://swapargs.h \
+ file://defines.h \
+ file://make_include \
+ "
+
+PACKAGES_prepend = "util-linux-fdisk util-linux-cfdisk util-linux-sfdisk util-linux-swaponoff util-linux-losetup util-linux-umount util-linux-mount util-linux-readprofile "
+
+PACKAGES_virtclass-native = ""
+
+S = "${WORKDIR}/util-linux-ng-${PV}"
+
+EXTRA_OECONF = "--disable-use-tty-group --disable-makeinstall-chown --enable-elvtune --enable-init --enable-kill --enable-last \
+ --enable-mesg --enable-partx --enable-raw --enable-rdev --enable-reset \
+ --disable-login-utils --enable-write --enable-arch --enable-mount --with-fsprobe=builtin --enable-libuuid --enable-libblkid --enable-fsck"
+
+FILES_${PN}-doc += "/usr/share/getopt/getopt-*.*"
+
+FILES_util-linux-fdisk = "/sbin/fdisk.${PN}"
+FILES_util-linux-cfdisk = "/sbin/cfdisk"
+FILES_util-linux-sfdisk = "/sbin/sfdisk"
+FILES_util-linux-swaponoff = "/sbin/swapon.${PN} /sbin/swapoff.${PN}"
+FILES_util-linux-losetup = "/sbin/losetup.${PN}"
+FILES_util-linux-mount = "/bin/mount.${PN}"
+FILES_util-linux-umount = "/bin/umount.${PN}"
+FILES_util-linux-readprofile = "/usr/sbin/readprofile"
+
+RRECOMMENDS_${PN} = "util-linux-fdisk util-linux-cfdisk util-linux-sfdisk util-linux-mount util-linux-readprofile "
+RDEPENDS_${PN} = "util-linux-umount util-linux-swaponoff util-linux-losetup"
+
+RRECOMMENDS_${PN}_virtclass-native = ""
+RDEPENDS_${PN}_virtclass-native = ""
+
+do_compile () {
+ set -e
+ install ${WORKDIR}/MCONFIG ${S}/MCONFIG
+ install ${WORKDIR}/make_include ${S}/make_include
+ install ${WORKDIR}/swapargs.h ${S}/mount/swapargs.h
+ install ${WORKDIR}/defines.h ${S}/defines.h
+ oe_runmake ARCH=${TARGET_ARCH} CPU= CPUOPT= \
+ 'OPT=${CFLAGS}' 'CC=${CC}' 'LD=${LD}' \
+ 'LDFLAGS=${LDFLAGS}'
+}
+
+checklink() {
+ local targ link value
+ targ="$1"
+ link="$2"
+ ext="$3"
+ if test -h "$link"
+ then
+ value="$(readlink "$link")"
+ if test "$value" = "$targ"
+ then
+ rm "$link"
+ ln -s "$targ"."${PN}" "$link$ext"
+ return 0
+ else
+ echo "$link: '$value' found '$targ' expected" >&2
+ return 1
+ fi
+ else
+ echo "$link: not a symbolic link" >&2
+ return 1
+ fi
+}
+
+do_install () {
+ # with ccache the timestamps on compiled files may
+ # end up earlier than on their inputs, this allows
+ # for the resultant compilation in the install step.
+ oe_runmake ARCH=${TARGET_ARCH} CPU= CPUOPT= \
+ 'OPT=${CFLAGS}' 'CC=${CC}' 'LD=${LD}' \
+ 'LDFLAGS=${LDFLAGS}' 'DESTDIR=${D}' install
+
+ mkdir -p ${D}${base_bindir}
+
+ sbinprogs="agetty blockdev ctrlaltdel cfdisk vipw vigr"
+ sbinprogs_a="pivot_root hwclock mkswap shutdown mkfs.minix fsck.minix losetup swapon fdisk readprofile fsck blkid sln"
+ usrbinprogs_a="chfn chsh hexdump last logger mesg newgrp renice wall setsid chrt"
+ binprogs_a="dmesg kill more umount mount login reset"
+
+ if [ "${base_sbindir}" != "${sbindir}" ]; then
+ mkdir -p ${D}${base_sbindir}
+ for p in $sbinprogs $sbinprogs_a; do
+ if [ -f "${D}${sbindir}/$p" ]; then
+ mv "${D}${sbindir}/$p" "${D}${base_sbindir}/$p"
+ fi
+ done
+ fi
+
+ if [ "${base_bindir}" != "${bindir}" ]; then
+ mkdir -p ${D}${base_bindir}
+ for p in $binprogs_a; do
+ if [ -f "${D}${bindir}/$p" ]; then
+ mv "${D}${bindir}/$p" "${D}${base_bindir}/$p"
+ fi
+ done
+ fi
+
+ for p in $usrbinprogs_a; do
+ if [ -f "${D}${bindir}/$p" ]; then
+ mv "${D}${bindir}/$p" "${D}${bindir}/$p.${PN}"
+ fi
+ done
+
+ for p in $binprogs_a; do
+ if [ -f "${D}${base_bindir}/$p" ]; then
+ mv "${D}${base_bindir}/$p" "${D}${base_bindir}/$p.${PN}"
+ fi
+ done
+
+ for p in $sbinprogs_a; do
+ if [ -f "${D}${base_sbindir}/$p" ]; then
+ mv "${D}${base_sbindir}/$p" "${D}${base_sbindir}/$p.${PN}"
+ fi
+ done
+
+ install -d ${D}${sysconfdir}/default/
+ echo 'MOUNTALL="-t nonfs,nosmbfs,noncpfs"' > ${D}${sysconfdir}/default/mountall
+
+ ln -sf ${sbindir}/swapon ${D}${sbindir}/swapoff.${PN}
+ ln -sf ${sbindir}/shutdown ${D}${sbindir}/reboot.${PN}
+ ln -sf ${sbindir}/shutdown ${D}${sbindir}/halt.${PN}
+ ln -sf ${sbindir}/shutdown ${D}${sbindir}/fastboot
+ ln -sf ${sbindir}/shutdown ${D}${sbindir}/fasthalt
+}
+
+pkg_postinst_${PN} () {
+ update-alternatives --install ${base_bindir}/dmesg dmesg dmesg.${PN} 100
+ update-alternatives --install ${base_bindir}/kill kill kill.${PN} 100
+ update-alternatives --install ${base_bindir}/more more more.${PN} 100
+ update-alternatives --install ${base_sbindir}/mkswap mkswap mkswap.${PN} 100
+ test -x ${base_sbindir}/pivot_root.${PN} && \
+ update-alternatives --install ${base_sbindir}/pivot_root pivot_root pivot_root.${PN} 100
+# update-alternatives --install ${base_sbindir}/sln sln sln.${PN} 100
+ update-alternatives --install ${base_sbindir}/mkfs.minix mkfs.minix mkfs.minix.${PN} 100
+ update-alternatives --install ${base_sbindir}/fsck.minix fsck.minix fsck.minix.${PN} 100
+ update-alternatives --install ${bindir}/hexdump hexdump hexdump.${PN} 100
+ update-alternatives --install ${bindir}/last last last.${PN} 100
+ update-alternatives --install ${bindir}/logger logger logger.${PN} 100
+ update-alternatives --install ${bindir}/mesg mesg mesg.${PN} 100
+ update-alternatives --install ${bindir}/renice renice renice.${PN} 100
+ update-alternatives --install ${bindir}/wall wall wall.${PN} 100
+
+ # There seems to be problem, atleast on nslu2, with these, untill they are
+ # fixed the busybox ones have higher priority
+ update-alternatives --install ${base_sbindir}/hwclock hwclock hwclock.${PN} 10
+ update-alternatives --install ${base_sbindir}/shutdown shutdown shutdown.${PN} 10
+ update-alternatives --install ${base_sbindir}/reboot reboot reboot.${PN} 10
+ update-alternatives --install ${base_sbindir}/halt halt halt.${PN} 10
+}
+
+pkg_prerm_${PN} () {
+ test -x ${base_sbindir}/pivot_root.${PN} && \
+ update-alternatives --remove pivot_root pivot_root.${PN}
+ update-alternatives --remove dmesg dmesg.${PN}
+ update-alternatives --remove kill kill.${PN}
+ update-alternatives --remove more more.${PN}
+ update-alternatives --remove halt halt.${PN}
+ update-alternatives --remove hwclock hwclock.${PN}
+ update-alternatives --remove mkswap mkswap.${PN}
+ update-alternatives --remove reboot reboot.${PN}
+ update-alternatives --remove shutdown shutdown.${PN}
+# update-alternatives --remove sln sln.${PN}
+ update-alternatives --remove mkfs.minix mkfs.minix.${PN}
+ update-alternatives --remove fsck.minix fsck.minix.${PN}
+ update-alternatives --remove hexdump hexdump.${PN}
+ update-alternatives --remove last last.${PN}
+ update-alternatives --remove logger logger.${PN}
+ update-alternatives --remove mesg mesg.${PN}
+ update-alternatives --remove renice renice.${PN}
+ update-alternatives --remove wall wall.${PN}
+}
+
+pkg_postinst_util-linux-fdisk () {
+ update-alternatives --install ${base_sbindir}/fdisk fdisk fdisk.${PN} 100
+}
+
+pkg_prerm_util-linux-fdisk () {
+ update-alternatives --remove fdisk fdisk.${PN}
+}
+
+pkg_postinst_util-linux-mount () {
+ update-alternatives --install ${base_bindir}/mount mount mount.${PN} 100
+}
+
+pkg_prerm_util-linux-mount () {
+ update-alternatives --remove mount mount.${PN}
+}
+
+pkg_postinst_util-linux-umount () {
+ update-alternatives --install ${base_bindir}/umount umount umount.${PN} 100
+}
+
+pkg_prerm_util-linux-umount () {
+ update-alternatives --remove umount umount.${PN}
+}
+
+pkg_postinst_util-linux-losetup () {
+ update-alternatives --install ${base_sbindir}/losetup losetup losetup.${PN} 100
+}
+
+pkg_prerm_util-linux-losetup () {
+ update-alternatives --remove losetup losetup.${PN}
+}
+
+pkg_postinst_util-linux-swaponoff () {
+ update-alternatives --install ${base_sbindir}/swapoff swapoff swapoff.${PN} 100
+ update-alternatives --install ${base_sbindir}/swapon swapon swapon.${PN} 100
+}
+
+pkg_prerm_util-linux-swaponoff () {
+ update-alternatives --remove swapoff swapoff.${PN}
+ update-alternatives --remove swapon swapon.${PN}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-core/util-linux/util-linux_2.17.2.bb b/meta/recipes-core/util-linux/util-linux_2.17.2.bb
new file mode 100644
index 0000000000..9efe64a6c6
--- /dev/null
+++ b/meta/recipes-core/util-linux/util-linux_2.17.2.bb
@@ -0,0 +1,11 @@
+MAJOR_VERSION = "2.17"
+require util-linux.inc
+PR="r0"
+
+SRC_URI += "file://uclibc-compile.patch \
+ file://util-linux-ng-replace-siginterrupt.patch"
+
+# fallocate is glibc 2.10, fallocate64 is glibc 2.11
+# we need to disable it for older versions
+EXTRA_OECONF += "ac_cv_func_fallocate=no"
+EXTRA_OECONF_virtclass-native += "--disable-fallocate --disable-use-tty-group"