summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuli Suominen <ssuominen@gentoo.org>2013-05-27 15:38:50 +0000
committerSamuli Suominen <ssuominen@gentoo.org>2013-05-27 15:38:50 +0000
commit95d1a5abd3f2e24969c73655d911a2a5eeba9ca3 (patch)
tree20c8a6477ae82c42a381730cf8c133dff941e2ec /sys-apps
parentMigrate to EAPI 5. Use mirror:// in SRC_URI. (diff)
downloadgentoo-2-95d1a5abd3f2e24969c73655d911a2a5eeba9ca3.tar.gz
gentoo-2-95d1a5abd3f2e24969c73655d911a2a5eeba9ca3.tar.bz2
gentoo-2-95d1a5abd3f2e24969c73655d911a2a5eeba9ca3.zip
Avoid calling syscall() with -1 patch from upstream for http://bugs.funtoo.org/browse/FL-534 as requested by lxnay
(Portage version: 2.2.0_alpha174/cvs/Linux x86_64, signed Manifest commit with key 4868F14D)
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/kmod/ChangeLog9
-rw-r--r--sys-apps/kmod/files/kmod-13-errno_syscall.patch31
-rw-r--r--sys-apps/kmod/kmod-13-r1.ebuild109
3 files changed, 148 insertions, 1 deletions
diff --git a/sys-apps/kmod/ChangeLog b/sys-apps/kmod/ChangeLog
index 1dfe3cd296dd..f4582e0a12b2 100644
--- a/sys-apps/kmod/ChangeLog
+++ b/sys-apps/kmod/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for sys-apps/kmod
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/kmod/ChangeLog,v 1.82 2013/04/10 03:12:15 williamh Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/kmod/ChangeLog,v 1.83 2013/05/27 15:38:49 ssuominen Exp $
+
+*kmod-13-r1 (27 May 2013)
+
+ 27 May 2013; Samuli Suominen <ssuominen@gentoo.org> +kmod-13-r1.ebuild,
+ +files/kmod-13-errno_syscall.patch:
+ Avoid calling syscall() with -1 patch from upstream for
+ http://bugs.funtoo.org/browse/FL-534 as requested by lxnay
10 Apr 2013; William Hubbs <williamh@gentoo.org> kmod-13.ebuild,
kmod-9999.ebuild:
diff --git a/sys-apps/kmod/files/kmod-13-errno_syscall.patch b/sys-apps/kmod/files/kmod-13-errno_syscall.patch
new file mode 100644
index 000000000000..8909ef58c295
--- /dev/null
+++ b/sys-apps/kmod/files/kmod-13-errno_syscall.patch
@@ -0,0 +1,31 @@
+From 5eac795b8b067842caec32f96d55a7554c3c67f9 Mon Sep 17 00:00:00 2001
+From: Jan Luebbe <jlu@pengutronix.de>
+Date: Thu, 02 May 2013 14:47:12 +0000
+Subject: libkmod: Avoid calling syscall() with -1
+
+At least in qemu 1.4.1 for vexpress/arm-cortexa9, this resulted in an
+illegal instruction error. Solve that by returning an error when
+__NR_finit_module is -1.
+---
+diff --git a/libkmod/missing.h b/libkmod/missing.h
+index edb88b9..b45bbe2 100644
+--- a/libkmod/missing.h
++++ b/libkmod/missing.h
+@@ -20,8 +20,15 @@
+ #endif
+
+ #ifndef HAVE_FINIT_MODULE
++#include <errno.h>
++
+ static inline int finit_module(int fd, const char *uargs, int flags)
+ {
++ if (__NR_finit_module == -1) {
++ errno = ENOSYS;
++ return -1;
++ }
++
+ return syscall(__NR_finit_module, fd, uargs, flags);
+ }
+ #endif
+--
+cgit v0.9.1
diff --git a/sys-apps/kmod/kmod-13-r1.ebuild b/sys-apps/kmod/kmod-13-r1.ebuild
new file mode 100644
index 000000000000..e0a3209585c2
--- /dev/null
+++ b/sys-apps/kmod/kmod-13-r1.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/kmod/kmod-13-r1.ebuild,v 1.1 2013/05/27 15:38:49 ssuominen Exp $
+
+EAPI=5
+
+VIRTUAL_MODUTILS=1
+
+inherit autotools eutils libtool multilib linux-mod
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="git://git.kernel.org/pub/scm/utils/kernel/${PN}/${PN}.git"
+ inherit git-2
+else
+ SRC_URI="mirror://kernel/linux/utils/kernel/kmod/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+fi
+
+DESCRIPTION="library and tools for managing linux kernel modules"
+HOMEPAGE="http://git.kernel.org/?p=utils/kernel/kmod/kmod.git"
+
+LICENSE="LGPL-2"
+SLOT="0"
+IUSE="debug doc lzma static-libs +tools zlib"
+
+# Upstream does not support running the test suite with custom configure flags.
+# I was also told that the test suite is intended for kmod developers.
+# So we have to restrict it.
+# See bug #408915.
+RESTRICT="test"
+
+RDEPEND="!sys-apps/module-init-tools
+ !sys-apps/modutils
+ lzma? ( >=app-arch/xz-utils-5.0.4-r1 )
+ zlib? ( >=sys-libs/zlib-1.2.6 )" #427130
+DEPEND="${RDEPEND}
+ dev-libs/libxslt
+ doc? ( dev-util/gtk-doc )
+ lzma? ( virtual/pkgconfig )
+ zlib? ( virtual/pkgconfig )"
+
+pkg_setup() {
+ CONFIG_CHECK="~MODULES ~MODULE_UNLOAD"
+
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-errno_syscall.patch
+
+ if [ ! -e configure ]; then
+ if use doc; then
+ gtkdocize --copy --docdir libkmod/docs || die
+ else
+ touch libkmod/docs/gtk-doc.make
+ fi
+ eautoreconf
+ else
+ elibtoolize
+ fi
+}
+
+src_configure()
+{
+ econf \
+ --bindir=/bin \
+ --with-rootlibdir=/$(get_libdir) \
+ $(use_enable static-libs static) \
+ $(use_enable tools) \
+ $(use_enable debug) \
+ $(use_enable doc gtk-doc) \
+ $(use_with lzma xz) \
+ $(use_with zlib)
+}
+
+src_install()
+{
+ default
+ prune_libtool_files
+
+ if use tools; then
+ local bincmd sbincmd
+ for sbincmd in depmod insmod lsmod modinfo modprobe rmmod; do
+ dosym /bin/kmod /sbin/${sbincmd}
+ done
+
+ # These are also usable as normal user
+ for bincmd in lsmod modinfo; do
+ dosym kmod /bin/${bincmd}
+ done
+ fi
+
+ cat <<-EOF > "${T}"/usb-load-ehci-first.conf
+ softdep uhci_hcd pre: ehci_hcd
+ softdep ohci_hcd pre: ehci_hcd
+ EOF
+
+ insinto /lib/modprobe.d
+ doins "${T}"/usb-load-ehci-first.conf #260139
+}
+
+pkg_postinst() {
+ # Upgrade path from sys-apps/module-init-tools
+ if [[ -d ${ROOT}/lib/modules/${KV_FULL} ]]; then
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ update_depmod
+ fi
+ fi
+}