diff options
author | Mike Frysinger <vapier@gentoo.org> | 2007-10-08 22:53:19 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2007-10-08 22:53:19 +0000 |
commit | a89067bd147b2483737e1b7bcb5af4525c1ac269 (patch) | |
tree | 7ce22aeea2ad174fb1eadb46fae5a8175825c89e /sys-apps/module-init-tools/module-init-tools-3.4.ebuild | |
parent | clean up (diff) | |
download | gentoo-2-a89067bd147b2483737e1b7bcb5af4525c1ac269.tar.gz gentoo-2-a89067bd147b2483737e1b7bcb5af4525c1ac269.tar.bz2 gentoo-2-a89067bd147b2483737e1b7bcb5af4525c1ac269.zip |
Version bump.
(Portage version: 2.1.3.12)
Diffstat (limited to 'sys-apps/module-init-tools/module-init-tools-3.4.ebuild')
-rw-r--r-- | sys-apps/module-init-tools/module-init-tools-3.4.ebuild | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/sys-apps/module-init-tools/module-init-tools-3.4.ebuild b/sys-apps/module-init-tools/module-init-tools-3.4.ebuild new file mode 100644 index 000000000000..db8da4034609 --- /dev/null +++ b/sys-apps/module-init-tools/module-init-tools-3.4.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/module-init-tools/module-init-tools-3.4.ebuild,v 1.1 2007/10/08 22:53:18 vapier Exp $ + +inherit flag-o-matic eutils toolchain-funcs fixheadtails + +MODUTILS_PV="2.4.27" + +MY_P="${P/_pre/-pre}" +DESCRIPTION="Kernel module tools for the 2.6 kernel" +HOMEPAGE="http://kerneltools.org/" +SRC_URI="mirror://kernel/linux/kernel/people/jcm/module-init-tools/${MY_P}.tar.bz2 + old-linux? ( mirror://kernel/linux/utils/kernel/modutils/v2.4/modutils-${MODUTILS_PV}.tar.bz2 )" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="old-linux" +# The test code runs `make clean && configure` and screws up src_compile() +RESTRICT="test" + +DEPEND="sys-libs/zlib + >=sys-apps/baselayout-1.12.7-r2 + !virtual/modutils" +PROVIDE="virtual/modutils" + +S=${WORKDIR}/${MY_P} + +src_unpack() { + unpack ${A} + + # Patches for old modutils + if use old-linux ; then + cd "${WORKDIR}"/modutils-${MODUTILS_PV} + epatch "${FILESDIR}"/modutils-2.4.27-alias.patch + epatch "${FILESDIR}"/modutils-2.4.27-gcc.patch + epatch "${FILESDIR}"/modutils-2.4.27-flex.patch + epatch "${FILESDIR}"/modutils-2.4.27-no-nested-function.patch + epatch "${FILESDIR}"/modutils-2.4.27-hppa.patch + epatch "${FILESDIR}"/modutils-2.4.27-build.patch #154281 + fi + + # Fixes for new module-init-tools + cd "${S}" + ht_fix_file tests/test-depmod/10badcommand.sh + # Test fails due since it needs to write to /lib/modules so disable it + rm -f tests/test-depmod/01backcompat.sh + + # Fix bug 49926: This patch allows generate-modprobe.conf to + # accept the --assume-kernel=x.x.x option for generating livecds. + # This is a companion to a patch in baselayout-1.9.0 which allows + # the same flag to modules-update. + epatch "${FILESDIR}"/${PN}-3.1_generate-modprobe-assume-kernel.patch + + # Abort if we fail to run modprobe, bug #68689 + epatch "${FILESDIR}"/${PN}-3.2_pre7-abort-on-modprobe-failure.patch + + epatch "${FILESDIR}"/${PN}-3.2.2-handle-dupliate-aliases.patch #149426 + + # make sure we link dynamically with zlib; our zlib.so is in /lib vs + # /usr/lib so it's safe to link with. fixes ugly textrels as well. + sed -i \ + -e 's:-Wl,-Bstatic -lz -Wl,-Bdynamic:-lz:' \ + configure || die + + # make sure we don't try to regen the manpages + touch *.5 +} + +src_compile() { + # Configure script uses BUILDCFLAGS for cross-compiles but this + # defaults to CFLAGS which can be bad mojo + export BUILDCFLAGS=-pipe + export BUILDCC="$(tc-getBUILD_CC)" + + if use old-linux ; then + einfo "Building modutils ..." + cd "${WORKDIR}"/modutils-${MODUTILS_PV} + econf \ + --disable-strip \ + --prefix=/ \ + --enable-insmod-static \ + --disable-zlib \ + || die "econf failed" + emake || die "emake modutils failed" + + einfo "Building module-init-tools ..." + cd "${S}" + fi + + econf \ + --prefix=/ \ + --enable-zlib \ + || die "econf failed" + emake || die "emake module-init-tools failed" +} + +modutils_src_install() { + cd "${WORKDIR}"/modutils-${MODUTILS_PV} + einstall prefix="${D}" || die + docinto modutils-${MODUTILS_PV} + dodoc CREDITS ChangeLog NEWS README TODO + + # remove man pages provided by the man-pages package now #124127 + rm -r "${D}"/usr/share/man/man2 + + cd "${S}" + # This copies the old version of modutils to *.old so it still works + # with kernels <= 2.4; new versions will execve() the .old version if + # a 2.4 kernel is running... + # This code was borrowed from the module-init-tools Makefile + local runme f + for f in lsmod modprobe rmmod depmod insmod insmod.static modinfo ; do + if [[ -L ${D}/sbin/${f} ]] ; then + einfo "Moving symlink $f to ${f}.old" + #runme = the target of the symlink with a .old tagged on. + runme=$(ls -l "${D}"/sbin/${f} | sed 's/.* -> //').old + [[ ! -e ${D}/sbin/${runme} ]] || einfo "${D}/sbin/${runme} not found" + dosym ${runme} /sbin/${f} || die + elif [[ -e ${D}/sbin/${f} ]] ; then + einfo "Moving executable $f to ${f}.old" + fi + mv -f "${D}"/sbin/${f} "${D}"/sbin/${f}.old + done + # Move the man pages as well. We only do this for the man pages of the + # tools that module-init-tools will replace. + for f in "${D}"/usr/share/man/man8/{lsmod,modprobe,rmmod,depmod,insmod}.8 + do + mv -f ${f} ${f%\.*}.old.${f##*\.} + done + # Fix the ksyms links #35601 + for f in ksyms kallsyms ; do + dosym insmod.old /sbin/${f} + dosym insmod.static.old /sbin/${f}.static + done +} + +src_install() { + use old-linux && modutils_src_install + + cd "${S}" + emake install DESTDIR="${D}" || die + dosym modprobe.conf.5 /usr/share/man/man5/modprobe.d.5 + + # Install compat symlink + dosym ../bin/lsmod /sbin/lsmod + use old-linux && dosym ../sbin/insmod.old /bin/lsmod.old + # Install the modules.conf2modprobe.conf tool, so we can update + # modprobe.conf. + into / + dosbin "${S}"/generate-modprobe.conf "${FILESDIR}"/update-modules || die + dosym update-modules /sbin/modules-update + doman "${FILESDIR}"/update-modules.8 + + doman *.[1-8] + docinto / + dodoc AUTHORS ChangeLog INSTALL NEWS README TODO +} + +pkg_postinst() { + # cheat to keep users happy + if [[ -e ${ROOT}/etc/init.d/modules ]] ; then + sed -i 's:modules-update:update-modules:' "${ROOT}"/etc/init.d/modules + fi +} |