commit:     f492c407747e2c266c71ea9f19193f8fecd3bd8f
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 26 21:33:28 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Wed Aug 26 21:46:37 2020 +0000
URL:        https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=f492c407

eudev: Enable kmod support

This will allow us to use (e)udev to load required kernel modules.

Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 defaults/software.sh   | 13 ++++++++++---
 gkbuilds/eudev.gkbuild |  4 +---
 gkbuilds/kmod.gkbuild  | 24 +++++++++++++++++++-----
 gkbuilds/xz.gkbuild    | 19 +++++++++++++++++++
 4 files changed, 49 insertions(+), 11 deletions(-)

diff --git a/defaults/software.sh b/defaults/software.sh
index d8dbfc9..619b026 100644
--- a/defaults/software.sh
+++ b/defaults/software.sh
@@ -74,7 +74,7 @@ 
GKPKG_DROPBEAR_BINPKG="${GKPKG_DROPBEAR_BINPKG:-%%CACHE%%/dropbear-${GKPKG_DROPB
 
 GKPKG_EUDEV_PN="eudev"
 GKPKG_EUDEV_PV="${GKPKG_EUDEV_PV:-VERSION_EUDEV}"
-GKPKG_EUDEV_DEPS="util-linux"
+GKPKG_EUDEV_DEPS="util-linux zlib xz kmod"
 
GKPKG_EUDEV_SRCTAR="${GKPKG_EUDEV_SRCTAR:-${DISTDIR}/eudev-${GKPKG_EUDEV_PV}.tar.gz}"
 GKPKG_EUDEV_SRCDIR="${GKPKG_EUDEV_SRCDIR:-eudev-${GKPKG_EUDEV_PV}}"
 
GKPKG_EUDEV_BINPKG="${GKPKG_EUDEV_BINPKG:-%%CACHE%%/eudev-${GKPKG_EUDEV_PV}-%%ARCH%%.tar.xz}"
@@ -116,7 +116,7 @@ 
GKPKG_HWIDS_BINPKG="${GKPKG_HWIDS_BINPKG:-%%CACHE%%/hwids-${GKPKG_HWIDS_PV}-%%AR
 
 GKPKG_ISCSI_PN="open-iscsi"
 GKPKG_ISCSI_PV="${GKPKG_ISCSI_PV:-VERSION_ISCSI}"
-GKPKG_ISCSI_DEPS="kmod zlib util-linux"
+GKPKG_ISCSI_DEPS="util-linux zlib xz kmod"
 
GKPKG_ISCSI_SRCTAR="${GKPKG_ISCSI_SRCTAR:-${DISTDIR}/open-iscsi-${GKPKG_ISCSI_PV}.tar.gz}"
 GKPKG_ISCSI_SRCDIR="${GKPKG_ISCSI_SRCDIR:-open-iscsi-${GKPKG_ISCSI_PV}}"
 
GKPKG_ISCSI_BINPKG="${GKPKG_ISCSI_BINPKG:-%%CACHE%%/iscsi-${GKPKG_ISCSI_PV}-%%ARCH%%.tar.xz}"
@@ -130,7 +130,7 @@ 
GKPKG_JSON_C_BINPKG="${GKPKG_JSON_C_BINPKG:-%%CACHE%%/json-c-${GKPKG_JSON_C_PV}-
 
 GKPKG_KMOD_PN="kmod"
 GKPKG_KMOD_PV="${GKPKG_KMOD_PV:-VERSION_KMOD}"
-GKPKG_KMOD_DEPS="zlib"
+GKPKG_KMOD_DEPS="zlib xz"
 
GKPKG_KMOD_SRCTAR="${GKPKG_KMOD_SRCTAR:-${DISTDIR}/kmod-${GKPKG_KMOD_PV}.tar.xz}"
 GKPKG_KMOD_SRCDIR="${GKPKG_KMOD_SRCDIR:-kmod-${GKPKG_KMOD_PV}}"
 
GKPKG_KMOD_BINPKG="${GKPKG_KMOD_BINPKG:-%%CACHE%%/kmod-${GKPKG_KMOD_PV}-%%ARCH%%.tar.xz}"
@@ -219,6 +219,13 @@ 
GKPKG_XFSPROGS_SRCTAR="${GKPKG_XFSPROGS_SRCTAR:-${DISTDIR}/xfsprogs-${GKPKG_XFSP
 GKPKG_XFSPROGS_SRCDIR="${GKPKG_XFSPROGS_SRCDIR:-xfsprogs-${GKPKG_XFSPROGS_PV}}"
 
GKPKG_XFSPROGS_BINPKG="${GKPKG_XFSPROGS_BINPKG:-%%CACHE%%/xfsprogs-${GKPKG_XFSPROGS_PV}-%%ARCH%%.tar.xz}"
 
+GKPKG_XZ_PN="xz"
+GKPKG_XZ_PV="${GKPKG_XZ_PV:-VERSION_XZ}"
+GKPKG_XZ_DEPS=""
+GKPKG_XZ_SRCTAR="${GKPKG_XZ_SRCTAR:-${DISTDIR}/xz-${GKPKG_XZ_PV}.tar.gz}"
+GKPKG_XZ_SRCDIR="${GKPKG_XZ_SRCDIR:-xz-${GKPKG_XZ_PV}}"
+GKPKG_XZ_BINPKG="${GKPKG_XZ_BINPKG:-%%CACHE%%/xz-${GKPKG_XZ_PV}-%%ARCH%%.tar.xz}"
+
 GKPKG_ZLIB_PN="zlib"
 GKPKG_ZLIB_PV="${GKPKG_ZLIB_PV:-VERSION_ZLIB}"
 GKPKG_ZLIB_DEPS=""

diff --git a/gkbuilds/eudev.gkbuild b/gkbuilds/eudev.gkbuild
index 54f2c0d..0677f0e 100644
--- a/gkbuilds/eudev.gkbuild
+++ b/gkbuilds/eudev.gkbuild
@@ -10,11 +10,9 @@ src_configure() {
                --disable-selinux
                --disable-rule-generator
                --disable-hwdb
+               --enable-kmod
        )
 
-       # Cannot link against static kmod, 
https://lists.freedesktop.org/archives/systemd-devel/2013-June/011173.html
-       myconf+=( --disable-kmod )
-
        gkconf "${myconf[@]}"
 }
 

diff --git a/gkbuilds/kmod.gkbuild b/gkbuilds/kmod.gkbuild
index 44a2df3..bf0f355 100644
--- a/gkbuilds/kmod.gkbuild
+++ b/gkbuilds/kmod.gkbuild
@@ -7,16 +7,24 @@ src_prepare() {
        sed -i \
                -e '/--enable-static is not supported by 
kmod/s:as_fn_error:echo:' \
                configure || die "Failed to re-enable static support"
+
+       # List of symbols which are clashing with (e)udev
+       cat <<-EOF >> kmod.syms
+       mkdir_p                 _kmod_mkdir_p
+       mkdir_parents           _kmod_mkdir_parents
+       path_is_absolute        _kmod_path_is_absolute
+       path_make_absolute_cwd  _kmod_path_make_absolute_cwd
+       EOF
 }
 
 src_configure() {
        local myconf=(
-               --without-xz
-               --with-zlib
-               --without-openssl
+               --enable-static
                --disable-python
                --disable-tools
-               --enable-static
+               --with-xz
+               --with-zlib
+               --without-openssl
        )
 
        gkconf "${myconf[@]}"
@@ -27,10 +35,16 @@ src_install() {
 
        # remove hardcoded $BROOT
        sed -i \
-               -e 's/-L\/[^ ]*/-L${libdir}/' \
+               -e 's/-L\/[^ ]*/-L${libdir}/g' \
                "${D}"/usr/lib*/pkgconfig/*.pc \
                || die
 
+       # rename internal symbols to avoid clashing with (e)udev
+       $(tc-getOBJCOPY) \
+               --redefine-syms=kmod.syms \
+               "${D}"/usr/lib*/libkmod.a \
+               || die
+
        rm -rf \
                "${D}"/usr/share/
 }

diff --git a/gkbuilds/xz.gkbuild b/gkbuilds/xz.gkbuild
new file mode 100644
index 0000000..8d2e6f5
--- /dev/null
+++ b/gkbuilds/xz.gkbuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+src_configure() {
+       local myconf=(
+               --enable-threads
+               --enable-static
+               --disable-nls
+               --disable-xz
+               --disable-xzdec
+               --disable-lzmadec
+               --disable-lzmainfo
+               --disable-lzma-links
+               --disable-scripts
+               --disable-doc
+       )
+
+       gkconf "${myconf[@]}"
+}

Reply via email to