diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2010-08-27 15:14:24 +0100 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-08-27 15:29:45 +0100 |
commit | 29d6678fd546377459ef75cf54abeef5b969b5cf (patch) | |
tree | 8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-kernel/module-init-tools | |
parent | da49de6885ee1bc424e70bc02f21f6ab920efb55 (diff) | |
download | openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.bz2 openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.xz openembedded-core-29d6678fd546377459ef75cf54abeef5b969b5cf.zip |
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')
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 000000000..daf58248b --- /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 000000000..955025531 --- /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 000000000..7b3082480 --- /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 000000000..128c9531a --- /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 000000000..ca83ec075 --- /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 000000000..08bf1a95e --- /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 000000000..f1319ad90 --- /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 000000000..6c312b4ce --- /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 +} |