summaryrefslogtreecommitdiff
path: root/recipes
diff options
context:
space:
mode:
authorStefan Schmidt <stefan@datenfreihafen.org>2009-08-06 12:16:10 +0200
committerStefan Schmidt <stefan@datenfreihafen.org>2009-08-06 12:16:10 +0200
commit076d31f2981d51b093d86b0751121fe1e10669b1 (patch)
treea130a515b1bda8f331b7e32acc5d68498b7e9cf8 /recipes
parentd25647f18dbc1b71ffc8d76c2d8437856351d894 (diff)
parente09ab92b9f6208c37b8610a6e0b64bdf3e4cf671 (diff)
Merge branch 'org.openembedded.dev' of git@git.openembedded.org:openembedded into org.openembedded.dev
Diffstat (limited to 'recipes')
-rw-r--r--recipes/devmem2/devmem2.bb2
-rw-r--r--recipes/dri/libdrm_2.4.11.bb5
-rw-r--r--recipes/ezx/ezxd_svn.bb2
-rw-r--r--recipes/imagemagick/imagemagick_6.3.5-10.bb2
-rw-r--r--recipes/ipython/ipython_0.10.bb15
-rw-r--r--recipes/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch18
-rw-r--r--recipes/klibc/files/modprobe.patch10
-rw-r--r--recipes/klibc/files/staging.patch14
-rw-r--r--recipes/klibc/files/wc.patch2
-rw-r--r--recipes/klibc/klibc-1.5/fstype-sane-vfat-and-jffs2-for-1.5.patch63
-rw-r--r--recipes/klibc/klibc-1.5/modprobe.patch1985
-rw-r--r--recipes/klibc/klibc-1.5/staging.patch144
-rw-r--r--recipes/klibc/klibc-1.5/wc.patch236
-rw-r--r--recipes/klibc/klibc-common_1.5.15.inc42
-rw-r--r--recipes/klibc/klibc-utils-static_1.5.15.bb98
-rw-r--r--recipes/klibc/klibc_1.5.15.bb2
-rw-r--r--recipes/klibc/klibc_1.5.15.inc146
-rw-r--r--recipes/libsynthesis/libsynthesis_git.bb18
-rw-r--r--recipes/libtool/libtool-cross_2.2.4.bb7
-rw-r--r--recipes/libtool/libtool-cross_2.2.6a.bb7
-rw-r--r--recipes/libtool/libtool-sdk_2.2.4.bb7
-rw-r--r--recipes/libtool/libtool-sdk_2.2.6a.bb7
-rw-r--r--recipes/libtool/libtool_2.2.4.bb12
-rw-r--r--recipes/libtool/libtool_2.2.6a.bb10
-rw-r--r--recipes/mux/mux_git.bb13
-rw-r--r--recipes/python/python-2.6-manifest.inc90
-rw-r--r--recipes/python/python-2.6.2/00-fix-bindir-libdir-for-cross.patch20
-rw-r--r--recipes/python/python-2.6.2/01-use-proper-tools-for-cross-build.patch116
-rw-r--r--recipes/python/python-2.6.2/02-remove-test-for-cross.patch94
-rw-r--r--recipes/python/python-2.6.2/03-fix-tkinter-detection.patch40
-rw-r--r--recipes/python/python-2.6.2/04-default-is-optimized.patch52
-rw-r--r--recipes/python/python-2.6.2/05-enable-ctypes-cross-build.patch28
-rw-r--r--recipes/python/python-2.6.2/99-ignore-optimization-flag.patch19
-rw-r--r--recipes/python/python-2.6.2/sitecustomize.py45
-rw-r--r--recipes/python/python-native_2.6.1.bb5
-rw-r--r--recipes/python/python.inc2
-rw-r--r--recipes/python/python_2.6.2.bb130
-rw-r--r--recipes/uclibc/uclibc_nptl.bb2
-rw-r--r--recipes/util-linux-ng/util-linux-ng-2.16/util-linux-ng-replace-siginterrupt.patch23
-rw-r--r--recipes/util-linux-ng/util-linux-ng_2.16.bb3
-rw-r--r--recipes/xorg-xserver/xserver-xorg-conf_0.1.bb4
-rw-r--r--recipes/xserver-common/xserver-common-1.30/0018-zaurus-fixed-machine-names.patch35
-rw-r--r--recipes/xserver-common/xserver-common-1.30/0019-keymap-fixed-machine-names.patch59
-rw-r--r--recipes/xserver-common/xserver-common-1.30/0020-keymap-fixed-machine-names-again.patch50
-rw-r--r--recipes/xserver-common/xserver-common-1.30/0021-xserver-introduced-MOUSE-variable-for-mouse-argument.patch63
-rw-r--r--recipes/xserver-common/xserver-common-1.30/0022-xserver-fix-syntax-error.patch27
-rw-r--r--recipes/xserver-common/xserver-common_1.30.bb26
47 files changed, 3713 insertions, 87 deletions
diff --git a/recipes/devmem2/devmem2.bb b/recipes/devmem2/devmem2.bb
index 5b72d1c31b..4888d333b1 100644
--- a/recipes/devmem2/devmem2.bb
+++ b/recipes/devmem2/devmem2.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Simple program to read/write from/to any location in memory."
SRC_URI = "http://www.lartmaker.nl/lartware/port/devmem2.c"
LICENSE = "GPL"
-PR = "r2"
+PR = "r3"
S = "${WORKDIR}"
diff --git a/recipes/dri/libdrm_2.4.11.bb b/recipes/dri/libdrm_2.4.11.bb
index 0ea2396372..4f2af1ed73 100644
--- a/recipes/dri/libdrm_2.4.11.bb
+++ b/recipes/dri/libdrm_2.4.11.bb
@@ -3,9 +3,14 @@ DEPENDS = "libpthread-stubs"
LICENSE = "MIT"
SRC_URI = "http://dri.freedesktop.org/libdrm/libdrm-${PV}.tar.bz2"
PROVIDES = "drm"
+PR = "r1"
inherit autotools pkgconfig
do_stage() {
autotools_stage_all
}
+
+PACKAGES =+ "${PN}-intel"
+
+FILES_${PN}-intel = "${libdir}/libdrm_intel.so.*"
diff --git a/recipes/ezx/ezxd_svn.bb b/recipes/ezx/ezxd_svn.bb
index ab1010c48e..ce0542fba2 100644
--- a/recipes/ezx/ezxd_svn.bb
+++ b/recipes/ezx/ezxd_svn.bb
@@ -19,6 +19,8 @@ S = "${WORKDIR}/${PN}"
CFLAGS_append = " -DDEBUG "
+TARGET_CC_ARCH += "${LDFLAGS}"
+
do_configure() {
sed -i -e s:CROSS:CC:g Makefile
}
diff --git a/recipes/imagemagick/imagemagick_6.3.5-10.bb b/recipes/imagemagick/imagemagick_6.3.5-10.bb
index 7b92a8252e..cf9e82f3e2 100644
--- a/recipes/imagemagick/imagemagick_6.3.5-10.bb
+++ b/recipes/imagemagick/imagemagick_6.3.5-10.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "ImageMagick is an image convertion tools"
SECTION = "console/utils"
LICENSE = "GPL"
DEPENDS = "tiff"
-PR = "r3"
+PR = "r4"
SRC_URI = "ftp://ftp.nluug.nl/pub/ImageMagick/ImageMagick-${PV}.tar.bz2 \
file://PerlMagic_MakePatch;patch=1 \
diff --git a/recipes/ipython/ipython_0.10.bb b/recipes/ipython/ipython_0.10.bb
new file mode 100644
index 0000000000..7ab8d724e3
--- /dev/null
+++ b/recipes/ipython/ipython_0.10.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Enhanced Python Shell"
+HOMEPAGE = "http://ipython.scipy.org/moin/"
+SECTION = "devel/python"
+LICENSE = "BSD"
+DEPENDS = "less"
+RDEPENDS = "python-pprint python-io python-shell python-misc python-lang \
+ python-stringold python-codecs python-crypt python-threading \
+ python-pydoc python-debugger python-textutils python-pickle \
+ python-subprocess"
+
+SRC_URI = "http://ipython.scipy.org/dist/ipython-${PV}.tar.gz"
+
+inherit distutils
+
+FILES_${PN} = "/"
diff --git a/recipes/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch b/recipes/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch
index b52b3e309b..6eb604e45c 100644
--- a/recipes/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch
+++ b/recipes/klibc/files/fstype-sane-vfat-and-jffs2-for-1.5.patch
@@ -3,17 +3,17 @@ Index: klibc-1.5/usr/kinit/fstype/fstype.c
--- klibc-1.5.orig/usr/kinit/fstype/fstype.c 2008-02-28 00:48:35.319254938 +0100
+++ klibc-1.5/usr/kinit/fstype/fstype.c 2008-02-28 00:52:20.583257793 +0100
@@ -20,7 +20,7 @@
- #include <endian.h>
#include <netinet/in.h>
+ #include <sys/utsname.h>
#include <sys/vfs.h>
-
+#include <linux/types.h>
#define cpu_to_be32(x) __cpu_to_be32(x) /* Needed by romfs_fs.h */
#include "romfs_fs.h"
-@@ -33,6 +33,12 @@
- #include "lvm2_sb.h"
- #include "iso9660_sb.h"
+@@ -37,6 +37,12 @@
+ #include "ocfs2_fs.h"
+ #include "nilfs_fs.h"
+#if __BYTE_ORDER == __BIG_ENDIAN
+#include <linux/byteorder/big_endian.h>
@@ -24,7 +24,7 @@ Index: klibc-1.5/usr/kinit/fstype/fstype.c
/*
* Slightly cleaned up version of jfs_superblock to
* avoid pulling in other kernel header files.
-@@ -54,6 +60,27 @@
+@@ -59,6 +65,27 @@
/* Swap needs the definition of block size */
#include "swap_fs.h"
@@ -50,14 +50,14 @@ Index: klibc-1.5/usr/kinit/fstype/fstype.c
+}
+
static int gzip_image(const void *buf, unsigned long long *bytes)
- {
+ {277 304
const unsigned char *p = buf;
-@@ -277,6 +304,8 @@
+@@ -490,6 +517,8 @@
{1, "ext3", ext3_image},
{1, "ext2", ext2_image},
{1, "minix", minix_image},
+ {0, "jffs2", jffs2_image},
+ {0, "vfat", vfat_image},
+ {1, "nilfs2", nilfs2_image},
+ {2, "ocfs2", ocfs2_image},
{8, "reiserfs", reiserfs_image},
- {64, "reiserfs", reiserfs_image},
- {32, "jfs", jfs_image},
diff --git a/recipes/klibc/files/modprobe.patch b/recipes/klibc/files/modprobe.patch
index 074b0b6311..61ee340ff9 100644
--- a/recipes/klibc/files/modprobe.patch
+++ b/recipes/klibc/files/modprobe.patch
@@ -7,16 +7,16 @@ Index: klibc-1.5/usr/utils/Kbuild
progs := chroot dd mkdir mkfifo mknod mount pivot_root umount
-progs += true false sleep ln nuke minips cat
--progs += insmod uname halt kill readlink cpio
+-progs += uname halt kill readlink cpio sync dmesg
+progs += true false sleep ln nuke minips cat losetup
-+progs += insmod uname halt kill readlink cpio modprobe
++progs += uname halt kill readlink cpio sync dmesg modprobe
static-y := $(addprefix static/, $(progs))
shared-y := $(addprefix shared/, $(progs))
-@@ -52,7 +52,10 @@
- shared/readlink-y := readlink.o
- static/cpio-y := cpio.o
+@@ -54,7 +54,10 @@
shared/cpio-y := cpio.o
+ static/sync-y := sync.o
+ shared/sync-y := sync.o
-
+static/modprobe-y := modprobe.o
+shared/modprobe-y := modprobe.o
diff --git a/recipes/klibc/files/staging.patch b/recipes/klibc/files/staging.patch
index 215daad456..390c214f94 100644
--- a/recipes/klibc/files/staging.patch
+++ b/recipes/klibc/files/staging.patch
@@ -26,13 +26,13 @@ Index: klibc-1.5/scripts/Kbuild.install
$(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
$(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib
- $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin
- $(Q)set -e ; for d in linux scsi asm-$(KLIBCARCH) asm-generic $(ASMKLIBCARCH); do \
- mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KLIBCCROSS)include/$$d ; \
+ $(Q)set -e ; for d in linux asm asm-$(KLIBCARCH) asm-generic $(ASMKLIBCARCH); do \
for r in $(KLIBCKERNELSRC)/include $(KLIBCKERNELOBJ)/include \
$(KLIBCKERNELOBJ)/include2 ; do \
- [ ! -d $$r/$$d ] || \
-- cp -rfL $$r/$$d/. \
-+ cp -rfd $$r/$$d/. \
+ [ ! -d $$r/$$d ] && continue; \
+ mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KLIBCCROSS)include/$$d ; \
+- cp -rfL $$r/$$d/. \
++ cp -rfd $$r/$$d/. \
$(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/$$d/. ; \
done ; \
done
@@ -116,7 +116,7 @@ Index: klibc-1.5/usr/kinit/run-init/Kbuild
===================================================================
--- klibc-1.5.orig/usr/kinit/run-init/Kbuild 2007-03-04 02:52:10.000000000 +0100
+++ klibc-1.5/usr/kinit/run-init/Kbuild 2008-02-24 15:13:50.221824559 +0100
-@@ -21,5 +21,3 @@
+@@ -25,5 +25,3 @@
# Cleaning
clean-dirs := static shared
@@ -136,7 +136,7 @@ Index: klibc-1.5/usr/utils/Kbuild
===================================================================
--- klibc-1.5.orig/usr/utils/Kbuild 2007-03-04 02:52:10.000000000 +0100
+++ klibc-1.5/usr/utils/Kbuild 2008-02-24 15:13:50.229824358 +0100
-@@ -64,5 +64,3 @@
+@@ -66,5 +66,3 @@
# Clean deletes the static and shared dir
clean-dirs := static shared
diff --git a/recipes/klibc/files/wc.patch b/recipes/klibc/files/wc.patch
index 296a4f9d92..f54c49d3ab 100644
--- a/recipes/klibc/files/wc.patch
+++ b/recipes/klibc/files/wc.patch
@@ -8,7 +8,7 @@ Index: klibc-1.5/usr/utils/Kbuild
progs := chroot dd mkdir mkfifo mknod mount pivot_root umount
-progs += true false sleep ln nuke minips cat losetup
+progs += true false sleep ln nuke minips cat losetup wc
- progs += insmod uname halt kill readlink cpio modprobe
+ progs += uname halt kill readlink cpio sync dmesg modprobe
static-y := $(addprefix static/, $(progs))
@@ -56,6 +56,9 @@
diff --git a/recipes/klibc/klibc-1.5/fstype-sane-vfat-and-jffs2-for-1.5.patch b/recipes/klibc/klibc-1.5/fstype-sane-vfat-and-jffs2-for-1.5.patch
new file mode 100644
index 0000000000..2ba6d98172
--- /dev/null
+++ b/recipes/klibc/klibc-1.5/fstype-sane-vfat-and-jffs2-for-1.5.patch
@@ -0,0 +1,63 @@
+Index: klibc-1.5/usr/kinit/fstype/fstype.c
+===================================================================
+--- klibc-1.5.orig/usr/kinit/fstype/fstype.c 2008-02-28 00:48:35.319254938 +0100
++++ klibc-1.5/usr/kinit/fstype/fstype.c 2008-02-28 00:52:20.583257793 +0100
+@@ -20,7 +20,7 @@
+ #include <endian.h>
+ #include <netinet/in.h>
+ #include <sys/vfs.h>
+-
++#include <linux/types.h>
+ #define cpu_to_be32(x) __cpu_to_be32(x) /* Needed by romfs_fs.h */
+
+ #include "romfs_fs.h"
+@@ -33,6 +33,12 @@
+ #include "lvm2_sb.h"
+ #include "iso9660_sb.h"
+
++#if __BYTE_ORDER == __BIG_ENDIAN
++#include <linux/byteorder/big_endian.h>
++#else
++#include <linux/byteorder/little_endian.h>
++#endif
++
+ /*
+ * Slightly cleaned up version of jfs_superblock to
+ * avoid pulling in other kernel header files.
+@@ -54,6 +60,27 @@
+ /* Swap needs the definition of block size */
+ #include "swap_fs.h"
+
++static int jffs2_image(const unsigned char *buf, unsigned long *blocks)
++{
++ // Very sloppy! ;-E
++ if (*buf == 0x85 && buf[1] == 0x19)
++ return 1;
++
++ return 0;
++}
++
++static int vfat_image(const unsigned char *buf, unsigned long *blocks)
++{
++ const struct romfs_super_block *sb =
++ (const struct romfs_super_block *)buf;
++ if (!strncmp(buf + 54, "FAT12 ", 8)
++ || !strncmp(buf + 54, "FAT16 ", 8)
++ || !strncmp(buf + 82, "FAT32 ", 8))
++ return 1;
++
++ return 0;
++}
++
+ static int gzip_image(const void *buf, unsigned long long *bytes)
+ {
+ const unsigned char *p = buf;
+@@ -277,6 +304,8 @@
+ {1, "ext3", ext3_image},
+ {1, "ext2", ext2_image},
+ {1, "minix", minix_image},
++ {0, "jffs2", jffs2_image},
++ {0, "vfat", vfat_image},
+ {8, "reiserfs", reiserfs_image},
+ {64, "reiserfs", reiserfs_image},
+ {32, "jfs", jfs_image},
diff --git a/recipes/klibc/klibc-1.5/modprobe.patch b/recipes/klibc/klibc-1.5/modprobe.patch
new file mode 100644
index 0000000000..dceaf6103f
--- /dev/null
+++ b/recipes/klibc/klibc-1.5/modprobe.patch
@@ -0,0 +1,1985 @@
+Index: klibc-1.5/usr/utils/Kbuild
+===================================================================
+--- klibc-1.5.orig/usr/utils/Kbuild 2008-03-07 22:01:45.223695348 +0100
++++ klibc-1.5/usr/utils/Kbuild 2008-03-07 22:48:44.660783243 +0100
+@@ -3,8 +3,8 @@
+ #
+
+ progs := chroot dd mkdir mkfifo mknod mount pivot_root umount
+-progs += true false sleep ln nuke minips cat
+-progs += insmod uname halt kill readlink cpio
++progs += true false sleep ln nuke minips cat losetup
++progs += insmod uname halt kill readlink cpio modprobe
+
+ static-y := $(addprefix static/, $(progs))
+ shared-y := $(addprefix shared/, $(progs))
+@@ -52,7 +52,10 @@
+ shared/readlink-y := readlink.o
+ static/cpio-y := cpio.o
+ shared/cpio-y := cpio.o
+-
++static/modprobe-y := modprobe.o
++shared/modprobe-y := modprobe.o
++static/losetup-y := losetup.o
++shared/losetup-y := losetup.o
+ # Additionally linked targets
+ always := static/reboot static/poweroff shared/reboot shared/poweroff
+
+Index: klibc-1.5/usr/utils/list.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ klibc-1.5/usr/utils/list.h 2008-03-07 22:33:22.287688586 +0100
+@@ -0,0 +1,238 @@
++/* Stolen from Linux Kernel Source's list.h -- GPL. */
++#ifndef _MODINITTOOLS_LIST_H
++#define _MODINITTOOLS_LIST_H
++
++#undef offsetof
++#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
++
++/**
++ * container_of - cast a member of a structure out to the containing structure
++ *
++ * @ptr: the pointer to the member.
++ * @type: the type of the container struct this is embedded in.
++ * @member: the name of the member within the struct.
++ *
++ */
++#define container_of(ptr, type, member) ({ \
++ const typeof( ((type *)0)->member ) *__mptr = (ptr); \
++ (type *)( (char *)__mptr - offsetof(type,member) );})
++
++/*
++ * Simple doubly linked list implementation.
++ *
++ * Some of the internal functions ("__xxx") are useful when
++ * manipulating whole lists rather than single entries, as
++ * sometimes we already know the next/prev entries and we can
++ * generate better code by using them directly rather than
++ * using the generic single-entry routines.
++ */
++
++struct list_head {
++ struct list_head *next, *prev;
++};
++
++#define LIST_HEAD_INIT(name) { &(name), &(name) }
++
++#define LIST_HEAD(name) \
++ struct list_head name = LIST_HEAD_INIT(name)
++
++#define INIT_LIST_HEAD(ptr) do { \
++ (ptr)->next = (ptr); (ptr)->prev = (ptr); \
++} while (0)
++
++/*
++ * Insert a new entry between two known consecutive entries.
++ *
++ * This is only for internal list manipulation where we know
++ * the prev/next entries already!
++ */
++static inline void __list_add(struct list_head *new,
++ struct list_head *prev,
++ struct list_head *next)
++{
++ next->prev = new;
++ new->next = next;
++ new->prev = prev;
++ prev->next = new;
++}
++
++/**
++ * list_add - add a new entry
++ * @new: new entry to be added
++ * @head: list head to add it after
++ *
++ * Insert a new entry after the specified head.
++ * This is good for implementing stacks.
++ */
++static inline void list_add(struct list_head *new, struct list_head *head)
++{
++ __list_add(new, head, head->next);
++}
++
++/**
++ * list_add_tail - add a new entry
++ * @new: new entry to be added
++ * @head: list head to add it before
++ *
++ * Insert a new entry before the specified head.
++ * This is useful for implementing queues.
++ */
++static inline void list_add_tail(struct list_head *new, struct list_head *head)
++{
++ __list_add(new, head->prev, head);
++}
++
++/*
++ * Delete a list entry by making the prev/next entries
++ * point to each other.
++ *
++ * This is only for internal list manipulation where we know
++ * the prev/next entries already!
++ */
++static inline void __list_del(struct list_head * prev, struct list_head * next)
++{
++ next->prev = prev;
++ prev->next = next;
++}
++
++/**
++ * list_del - deletes entry from list.
++ * @entry: the element to delete from the list.
++ * Note: list_empty on entry does not return true after this, the entry is
++ * in an undefined state.
++ */
++static inline void list_del(struct list_head *entry)
++{
++ __list_del(entry->prev, entry->next);
++}
++
++/**
++ * list_del_init - deletes entry from list and reinitialize it.
++ * @entry: the element to delete from the list.
++ */
++static inline void list_del_init(struct list_head *entry)
++{
++ __list_del(entry->prev, entry->next);
++ INIT_LIST_HEAD(entry);
++}
++
++/**
++ * list_move - delete from one list and add as another's head
++ * @list: the entry to move
++ * @head: the head that will precede our entry
++ */
++static inline void list_move(struct list_head *list, struct list_head *head)
++{
++ __list_del(list->prev, list->next);
++ list_add(list, head);
++}
++
++/**
++ * list_move_tail - delete from one list and add as another's tail
++ * @list: the entry to move
++ * @head: the head that will follow our entry
++ */
++static inline void list_move_tail(struct list_head *list,
++ struct list_head *head)
++{
++ __list_del(list->prev, list->next);
++ list_add_tail(list, head);
++}
++
++/**
++ * list_empty - tests whether a list is empty
++ * @head: the list to test.
++ */
++static inline int list_empty(struct list_head *head)
++{
++ return head->next == head;
++}
++
++static inline void __list_splice(struct list_head *list,
++ struct list_head *head)
++{
++ struct list_head *first = list->next;
++ struct list_head *last = list->prev;
++ struct list_head *at = head->next;
++
++ first->prev = head;
++ head->next = first;
++
++ last->next = at;
++ at->prev = last;
++}
++
++/**
++ * list_splice - join two lists
++ * @list: the new list to add.
++ * @head: the place to add it in the first list.
++ */
++static inline void list_splice(struct list_head *list, struct list_head *head)
++{
++ if (!list_empty(list))
++ __list_splice(list, head);
++}
++
++/**
++ * list_splice_init - join two lists and reinitialise the emptied list.
++ * @list: the new list to add.
++ * @head: the place to add it in the first list.
++ *
++ * The list at @list is reinitialised
++ */
++static inline void list_splice_init(struct list_head *list,
++ struct list_head *head)
++{
++ if (!list_empty(list)) {
++ __list_splice(list, head);
++ INIT_LIST_HEAD(list);
++ }
++}
++
++/**
++ * list_entry - get the struct for this entry
++ * @ptr: the &struct list_head pointer.
++ * @type: the type of the struct this is embedded in.
++ * @member: the name of the list_struct within the struct.
++ */
++#define list_entry(ptr, type, member) \
++ container_of(ptr, type, member)
++
++/**
++ * list_for_each - iterate over a list
++ * @pos: the &struct list_head to use as a loop counter.
++ * @head: the head for your list.
++ */
++#define list_for_each(pos, head) \
++ for (pos = (head)->next; pos != (head); pos = pos->next)
++
++/**
++ * list_for_each_prev - iterate over a list backwards
++ * @pos: the &struct list_head to use as a loop counter.
++ * @head: the head for your list.
++ */
++#define list_for_each_prev(pos, head) \
++ for (pos = (head)->prev; pos != (head); pos = pos->prev)
++
++/**
++ * list_for_each_safe - iterate over a list safe against removal of list entry
++ * @pos: the &struct list_head to use as a loop counter.
++ * @n: another &struct list_head to use as temporary storage
++ * @head: the head for your list.
++ */
++#define list_for_each_safe(pos, n, head) \
++ for (pos = (head)->next, n = pos->next; pos != (head); \
++ pos = n, n = pos->next)
++
++/**
++ * list_for_each_entry - iterate over list of given type
++ * @pos: the type * to use as a loop counter.
++ * @head: the head for your list.
++ * @member: the name of the list_struct within the struct.
++ */
++#define list_for_each_entry(pos, head, member) \
++ for (pos = list_entry((head)->next, typeof(*pos), member); \
++ &pos->member != (head); \
++ pos = list_entry(pos->member.next, typeof(*pos), member))
++
++#endif
+Index: klibc-1.5/usr/utils/modprobe.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ klibc-1.5/usr/utils/modprobe.c 2008-03-08 03:05:51.847688952 +0100
+@@ -0,0 +1,1710 @@
++/* modprobe.c: insert a module into the kernel, intelligently.
++ Copyright (C) 2001 Rusty Russell.
++ Copyright (C) 2002, 2003 Rusty Russell, IBM Corporation.
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++*/
++#define _GNU_SOURCE /* asprintf */
++
++#include <sys/utsname.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <sys/mman.h>
++#include <fcntl.h>
++#include <stdarg.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <ctype.h>
++#include <string.h>
++#include <errno.h>
++#include <unistd.h>
++#include <dirent.h>
++#include <limits.h>
++#include <elf.h>
++#include <getopt.h>
++#include <fnmatch.h>
++#include <asm/unistd.h>
++#include <sys/wait.h>
++#include <syslog.h>
++#include <zlib.h>
++
++#define streq(a,b) (strcmp((a),(b)) == 0)
++#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
++
++#include "list.h"
++static inline void try_old_version(const char *progname, char *argv[])
++{
++}
++extern long init_module(void *, unsigned long, const char *);
++extern long delete_module(const char *, unsigned int);
++
++struct module {
++ struct list_head list;
++ char *modname;
++ char filename[0];
++};
++
++#ifndef MODULE_DIR
++#define MODULE_DIR "/lib/modules"
++#endif
++
++typedef void (*errfn_t)(const char *fmt, ...);
++
++/* Do we use syslog or stderr for messages? */
++static int log;
++
++static void message(const char *prefix, const char *fmt, va_list *arglist)
++{
++ char *buf, *buf2;
++
++ vasprintf(&buf, fmt, *arglist);
++ asprintf(&buf2, "%s%s", prefix, buf);
++
++ if (log)
++ syslog(LOG_NOTICE, "%s", buf2);
++ else
++ fprintf(stderr, "%s", buf2);
++ free(buf2);
++ free(buf);
++}
++void *grab_contents(gzFile *gzfd, unsigned long *size)
++{