aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/module-init-tools
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-kernel/module-init-tools
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadopenembedded-core-contrib-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-kernel/module-init-tools')
-rw-r--r--meta/recipes-kernel/module-init-tools/files/disable_man.patch23
-rw-r--r--meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch19
-rw-r--r--meta/recipes-kernel/module-init-tools/files/ignore_arch_directory.patch28
-rw-r--r--meta/recipes-kernel/module-init-tools/files/modutils_extension.patch22
-rw-r--r--meta/recipes-kernel/module-init-tools/files/no-static-binaries.patch23
-rw-r--r--meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.12.bb12
-rw-r--r--meta/recipes-kernel/module-init-tools/module-init-tools.inc24
-rw-r--r--meta/recipes-kernel/module-init-tools/module-init-tools_3.12.bb39
8 files changed, 190 insertions, 0 deletions
diff --git a/meta/recipes-kernel/module-init-tools/files/disable_man.patch b/meta/recipes-kernel/module-init-tools/files/disable_man.patch
new file mode 100644
index 0000000000..daf58248b1
--- /dev/null
+++ b/meta/recipes-kernel/module-init-tools/files/disable_man.patch
@@ -0,0 +1,23 @@
+# disable man page build
+#
+# by Kevin Tian <kevin.tian@intel.com>, 2010-07-21
+
+diff --git a/Makefile.am b/Makefile.am
+index 6f83c12..32972a8 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -39,13 +39,12 @@ modindex_LDADD = $(LDADD) libmodtools.a
+ MAN5 = modprobe.conf.5 modules.dep.5 depmod.conf.5 modprobe.d.5
+ MAN8 = depmod.8 insmod.8 lsmod.8 rmmod.8 modprobe.8 modinfo.8
+ SGML = $(addprefix doc/, $(MAN5:%.5=%.sgml) $(MAN8:%.8=%.sgml))
+-dist_man_MANS = $(MAN5) $(MAN8)
+ # If they haven't overridden mandir, fix it (never /man!)
+ mandir =$(shell if [ @mandir@ = $(prefix)/man ]; then if [ $(prefix) = / ]; then echo /usr/share/man; else echo $(prefix)/share/man; fi; else echo @mandir@; fi)
+
+ TESTSUITE := $(shell test -e @srcdir@/tests && find @srcdir@/tests -type f ! -name '*~')
+
+-EXTRA_DIST = generate-modprobe.conf FAQ CODING stress_modules.sh install-with-care $(SGML) $(man_MANS) $(TESTSUITE)
++EXTRA_DIST = generate-modprobe.conf FAQ CODING stress_modules.sh install-with-care
+
+ sbin_PROGRAMS = insmod modprobe rmmod depmod modinfo
+ if BUILD_STATIC_UTILS
diff --git a/meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch b/meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch
new file mode 100644
index 0000000000..9550255315
--- /dev/null
+++ b/meta/recipes-kernel/module-init-tools/files/grab_module_memset.patch
@@ -0,0 +1,19 @@
+# this patch is from Mark Hatle <mark.hatle@windriver.com>, who ran into
+# a random segfault using the latest module-init-tools (3.12) and finally
+# trace back to depmod.c:grab_module, which appears that the new malloc(...)
+# setups up things, but never clears the memory that was just allocated.
+#
+# Kevin Tian <kevin.tian@intel.com>, 2010-08-06
+
+diff --git a/depmod.c b/depmod.c
+index 647e5e6..46e03e0 100644
+--- a/depmod.c
++++ b/depmod.c
+@@ -313,6 +313,7 @@ static struct module *grab_module(const char *dirname, const char *filename)
+
+ new = NOFAIL(malloc(sizeof(*new)
+ + strlen(dirname?:"") + 1 + strlen(filename) + 1));
++ memset(new, 0x00, sizeof(*new) + strlen(dirname?:"") + 1 + strlen(filename) + 1);
+ if (dirname)
+ sprintf(new->pathname, "%s/%s", dirname, filename);
+ else
diff --git a/meta/recipes-kernel/module-init-tools/files/ignore_arch_directory.patch b/meta/recipes-kernel/module-init-tools/files/ignore_arch_directory.patch
new file mode 100644
index 0000000000..7b30824802
--- /dev/null
+++ b/meta/recipes-kernel/module-init-tools/files/ignore_arch_directory.patch
@@ -0,0 +1,28 @@
+# not sure the reason yet. Keep for a while and verify later.
+#
+# comments added by Kevin Tian <kevin.tian@intel.com>, 2010-07-21
+
+diff -ruN module-init-tools-3.12.orig/modprobe.8 module-init-tools-3.12/modprobe.8
+--- module-init-tools-3.12/modprobe.8.orig
++++ module-init-tools-3.12/modprobe.8
+@@ -27,6 +27,7 @@
+ (see \fBmodprobe.conf\fR(5)). \fBmodprobe\fR will also use module
+ options specified on the kernel command line in the form of
+ <module>\&.<option>\&.
++All files in the \fI/etc/modprobe.d/arch/\fR directory are ignored.
+ .PP
+ Note that unlike in 2.4 series Linux kernels (which are not supported
+ by this tool) this version of \fBmodprobe\fR does not
+--- module-init-tools-3.12/modprobe.c.orig
++++ module-init-tools-3.12/modprobe.c
+@@ -1052,6 +1052,10 @@
+ DIR *dir;
+ int ret = 0;
+
++ /* ignore everything in this directory */
++ if (streq(filename, "/etc/modprobe.d/arch"))
++ return 1;
++
+ dir = opendir(filename);
+ if (dir) {
+ struct file_entry {
diff --git a/meta/recipes-kernel/module-init-tools/files/modutils_extension.patch b/meta/recipes-kernel/module-init-tools/files/modutils_extension.patch
new file mode 100644
index 0000000000..128c9531a1
--- /dev/null
+++ b/meta/recipes-kernel/module-init-tools/files/modutils_extension.patch
@@ -0,0 +1,22 @@
+# poky uses new name to differentiate from modutils, so reflect this new name in source
+#
+# comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-21
+--- module-init-tools-3.0-pre10.orig/generate-modprobe.conf
++++ module-init-tools-3.0-pre10/generate-modprobe.conf
+@@ -45,12 +45,12 @@
+ cp $TESTING_MODPROBE_CONF $MODPROBECONF
+ elif [ "$STDIN" = "1" ]; then
+ cat > $MODPROBECONF
+-elif [ -x /sbin/modprobe.old ]; then
++elif [ -x /sbin/modprobe.24 ]; then
+ # In sbin.
+- /sbin/modprobe.old -c > $MODPROBECONF || modprobe_abort
+-elif modprobe.old -c >/dev/null 2>&1; then
++ /sbin/modprobe.24 -c > $MODPROBECONF || modprobe_abort
++elif modprobe.24 -c >/dev/null 2>&1; then
+ # Somewhere in path.
+- modprobe.old -c > $MODPROBECONF || modprobe_abort
++ modprobe.24 -c > $MODPROBECONF || modprobe_abort
+ elif /sbin/modprobe -V 2>/dev/null | grep -q 'modprobe version'; then
+ # Running /sbin/modprobe gives old version.
+ /sbin/modprobe -c > $MODPROBECONF || modprobe_abort
diff --git a/meta/recipes-kernel/module-init-tools/files/no-static-binaries.patch b/meta/recipes-kernel/module-init-tools/files/no-static-binaries.patch
new file mode 100644
index 0000000000..ca83ec0755
--- /dev/null
+++ b/meta/recipes-kernel/module-init-tools/files/no-static-binaries.patch
@@ -0,0 +1,23 @@
+# Building a native, statically-linked insmod can result in ld failing because
+# it can't find a static libc. A native, static insmod is unnecessary anyway,
+# so this patch just removes it.
+#
+# - jdike@linux.intel.com
+#
+# Change to a simpler method by just disabling static link flag, since even
+# removing those lines don't prevent insmod.static from compile
+#
+# by Kevin Tian <kevin.tian@intel.com>, 2010-07-21
+
+Index: module-init-tools-3.2.2/Makefile.am
+===================================================================
+--- module-init-tools-3.2.2.orig/Makefile.am 2010-05-26 15:43:16.000000000 -0400
++++ module-init-tools-3.2.2/Makefile.am 2010-05-26 16:04:06.232990785 -0400
+@@ -10,7 +10,6 @@
+ modindex_SOURCES = modindex.c zlibsupport.c zlibsupport.h testing.h
+
+ insmod_static_SOURCES = insmod.c
+-insmod_static_LDFLAGS = -static
+ # We don't want the $(zlib_flags) here: that makes a dynamic executable
+ insmod_static_LDADD = libmodtools.a
+
diff --git a/meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.12.bb b/meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.12.bb
new file mode 100644
index 0000000000..08bf1a95e5
--- /dev/null
+++ b/meta/recipes-kernel/module-init-tools/module-init-tools-cross_3.12.bb
@@ -0,0 +1,12 @@
+require module-init-tools.inc
+PR = "r1"
+inherit cross
+PROVIDES += "virtual/${TARGET_PREFIX}depmod virtual/${TARGET_PREFIX}depmod-2.6"
+
+SRC_URI += "file://no-static-binaries.patch"
+
+EXTRA_OECONF_append = " --program-prefix=${TARGET_PREFIX}"
+
+do_install_append () {
+ mv ${D}${bindir}/${TARGET_PREFIX}depmod ${D}${bindir}/${TARGET_PREFIX}depmod-2.6
+}
diff --git a/meta/recipes-kernel/module-init-tools/module-init-tools.inc b/meta/recipes-kernel/module-init-tools/module-init-tools.inc
new file mode 100644
index 0000000000..f1319ad90d
--- /dev/null
+++ b/meta/recipes-kernel/module-init-tools/module-init-tools.inc
@@ -0,0 +1,24 @@
+DESCRIPTION = "This package contains a set of programs for loading, inserting, and removing kernel modules for Linux (versions 2.5.48 and above). It serves the same function that the modutils package serves for Linux 2.4"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://lsmod.c;md5=743c873ec42632d2ce37d3c440f366dd"
+SECTION = "base"
+
+PACKAGES =+ "module-init-tools-insmod-static module-init-tools-depmod"
+RDEPENDS_${PN} += "module-init-tools-depmod"
+
+FILES_module-init-tools-depmod = "${sbindir}/depmod.26"
+FILES_module-init-tools-insmod-static = "${sbindir}/insmod.static"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/kernel/module-init-tools/module-init-tools-${PV}.tar.bz2 \
+ file://ignore_arch_directory.patch \
+ file://modutils_extension.patch \
+ file://disable_man.patch \
+ file://grab_module_memset.patch"
+
+inherit autotools
+
+# module-init-tools uses AX_ENABLE_BUILDDIR to move rest of configuration steps
+# into a subdir. However this macro is not quite cross friendly. Instead of
+# mangling that macro, a easier way is to take the disable option
+EXTRA_OECONF = "--disable-builddir"
diff --git a/meta/recipes-kernel/module-init-tools/module-init-tools_3.12.bb b/meta/recipes-kernel/module-init-tools/module-init-tools_3.12.bb
new file mode 100644
index 0000000000..6c312b4cec
--- /dev/null
+++ b/meta/recipes-kernel/module-init-tools/module-init-tools_3.12.bb
@@ -0,0 +1,39 @@
+require module-init-tools.inc
+PR = "r1"
+
+# autotools set prefix to /usr, however we want them in /bin and /sbin
+bindir = "/bin"
+sbindir = "/sbin"
+
+do_install() {
+ autotools_do_install
+ for f in bin/lsmod sbin/insmod sbin/rmmod sbin/modprobe sbin/modinfo sbin/depmod; do
+ mv ${D}/$f ${D}/$f.26
+ done
+}
+
+pkg_postinst_module-init-tools() {
+ for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/modinfo; do
+ bn=`basename $f`
+ update-alternatives --install /$f $bn /$f.26 60
+ done
+ update-alternatives --install /bin/lsmod bin-lsmod /bin/lsmod.26 60
+ update-alternatives --install /sbin/lsmod lsmod /bin/lsmod.26 60
+}
+
+pkg_prerm_module-init-tools() {
+ for f in sbin/insmod sbin/modprobe sbin/rmmod sbin/modinfo; do
+ bn=`basename $f`
+ update-alternatives --remove $bn /$f.26
+ done
+ update-alternatives --remove bin-lsmod /bin/lsmod.26
+ update-alternatives --remove lsmod /bin/lsmod.26
+}
+
+pkg_postinst_module-init-tools-depmod() {
+ update-alternatives --install /sbin/depmod depmod /sbin/depmod.26 60
+}
+
+pkg_prerm_module-init-tools-depmod() {
+ update-alternatives --remove depmod /sbin/depmod.26
+}