1 |
commit: f492c407747e2c266c71ea9f19193f8fecd3bd8f |
2 |
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Aug 26 21:33:28 2020 +0000 |
4 |
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Aug 26 21:46:37 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=f492c407 |
7 |
|
8 |
eudev: Enable kmod support |
9 |
|
10 |
This will allow us to use (e)udev to load required kernel modules. |
11 |
|
12 |
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org> |
13 |
|
14 |
defaults/software.sh | 13 ++++++++++--- |
15 |
gkbuilds/eudev.gkbuild | 4 +--- |
16 |
gkbuilds/kmod.gkbuild | 24 +++++++++++++++++++----- |
17 |
gkbuilds/xz.gkbuild | 19 +++++++++++++++++++ |
18 |
4 files changed, 49 insertions(+), 11 deletions(-) |
19 |
|
20 |
diff --git a/defaults/software.sh b/defaults/software.sh |
21 |
index d8dbfc9..619b026 100644 |
22 |
--- a/defaults/software.sh |
23 |
+++ b/defaults/software.sh |
24 |
@@ -74,7 +74,7 @@ GKPKG_DROPBEAR_BINPKG="${GKPKG_DROPBEAR_BINPKG:-%%CACHE%%/dropbear-${GKPKG_DROPB |
25 |
|
26 |
GKPKG_EUDEV_PN="eudev" |
27 |
GKPKG_EUDEV_PV="${GKPKG_EUDEV_PV:-VERSION_EUDEV}" |
28 |
-GKPKG_EUDEV_DEPS="util-linux" |
29 |
+GKPKG_EUDEV_DEPS="util-linux zlib xz kmod" |
30 |
GKPKG_EUDEV_SRCTAR="${GKPKG_EUDEV_SRCTAR:-${DISTDIR}/eudev-${GKPKG_EUDEV_PV}.tar.gz}" |
31 |
GKPKG_EUDEV_SRCDIR="${GKPKG_EUDEV_SRCDIR:-eudev-${GKPKG_EUDEV_PV}}" |
32 |
GKPKG_EUDEV_BINPKG="${GKPKG_EUDEV_BINPKG:-%%CACHE%%/eudev-${GKPKG_EUDEV_PV}-%%ARCH%%.tar.xz}" |
33 |
@@ -116,7 +116,7 @@ GKPKG_HWIDS_BINPKG="${GKPKG_HWIDS_BINPKG:-%%CACHE%%/hwids-${GKPKG_HWIDS_PV}-%%AR |
34 |
|
35 |
GKPKG_ISCSI_PN="open-iscsi" |
36 |
GKPKG_ISCSI_PV="${GKPKG_ISCSI_PV:-VERSION_ISCSI}" |
37 |
-GKPKG_ISCSI_DEPS="kmod zlib util-linux" |
38 |
+GKPKG_ISCSI_DEPS="util-linux zlib xz kmod" |
39 |
GKPKG_ISCSI_SRCTAR="${GKPKG_ISCSI_SRCTAR:-${DISTDIR}/open-iscsi-${GKPKG_ISCSI_PV}.tar.gz}" |
40 |
GKPKG_ISCSI_SRCDIR="${GKPKG_ISCSI_SRCDIR:-open-iscsi-${GKPKG_ISCSI_PV}}" |
41 |
GKPKG_ISCSI_BINPKG="${GKPKG_ISCSI_BINPKG:-%%CACHE%%/iscsi-${GKPKG_ISCSI_PV}-%%ARCH%%.tar.xz}" |
42 |
@@ -130,7 +130,7 @@ GKPKG_JSON_C_BINPKG="${GKPKG_JSON_C_BINPKG:-%%CACHE%%/json-c-${GKPKG_JSON_C_PV}- |
43 |
|
44 |
GKPKG_KMOD_PN="kmod" |
45 |
GKPKG_KMOD_PV="${GKPKG_KMOD_PV:-VERSION_KMOD}" |
46 |
-GKPKG_KMOD_DEPS="zlib" |
47 |
+GKPKG_KMOD_DEPS="zlib xz" |
48 |
GKPKG_KMOD_SRCTAR="${GKPKG_KMOD_SRCTAR:-${DISTDIR}/kmod-${GKPKG_KMOD_PV}.tar.xz}" |
49 |
GKPKG_KMOD_SRCDIR="${GKPKG_KMOD_SRCDIR:-kmod-${GKPKG_KMOD_PV}}" |
50 |
GKPKG_KMOD_BINPKG="${GKPKG_KMOD_BINPKG:-%%CACHE%%/kmod-${GKPKG_KMOD_PV}-%%ARCH%%.tar.xz}" |
51 |
@@ -219,6 +219,13 @@ GKPKG_XFSPROGS_SRCTAR="${GKPKG_XFSPROGS_SRCTAR:-${DISTDIR}/xfsprogs-${GKPKG_XFSP |
52 |
GKPKG_XFSPROGS_SRCDIR="${GKPKG_XFSPROGS_SRCDIR:-xfsprogs-${GKPKG_XFSPROGS_PV}}" |
53 |
GKPKG_XFSPROGS_BINPKG="${GKPKG_XFSPROGS_BINPKG:-%%CACHE%%/xfsprogs-${GKPKG_XFSPROGS_PV}-%%ARCH%%.tar.xz}" |
54 |
|
55 |
+GKPKG_XZ_PN="xz" |
56 |
+GKPKG_XZ_PV="${GKPKG_XZ_PV:-VERSION_XZ}" |
57 |
+GKPKG_XZ_DEPS="" |
58 |
+GKPKG_XZ_SRCTAR="${GKPKG_XZ_SRCTAR:-${DISTDIR}/xz-${GKPKG_XZ_PV}.tar.gz}" |
59 |
+GKPKG_XZ_SRCDIR="${GKPKG_XZ_SRCDIR:-xz-${GKPKG_XZ_PV}}" |
60 |
+GKPKG_XZ_BINPKG="${GKPKG_XZ_BINPKG:-%%CACHE%%/xz-${GKPKG_XZ_PV}-%%ARCH%%.tar.xz}" |
61 |
+ |
62 |
GKPKG_ZLIB_PN="zlib" |
63 |
GKPKG_ZLIB_PV="${GKPKG_ZLIB_PV:-VERSION_ZLIB}" |
64 |
GKPKG_ZLIB_DEPS="" |
65 |
|
66 |
diff --git a/gkbuilds/eudev.gkbuild b/gkbuilds/eudev.gkbuild |
67 |
index 54f2c0d..0677f0e 100644 |
68 |
--- a/gkbuilds/eudev.gkbuild |
69 |
+++ b/gkbuilds/eudev.gkbuild |
70 |
@@ -10,11 +10,9 @@ src_configure() { |
71 |
--disable-selinux |
72 |
--disable-rule-generator |
73 |
--disable-hwdb |
74 |
+ --enable-kmod |
75 |
) |
76 |
|
77 |
- # Cannot link against static kmod, https://lists.freedesktop.org/archives/systemd-devel/2013-June/011173.html |
78 |
- myconf+=( --disable-kmod ) |
79 |
- |
80 |
gkconf "${myconf[@]}" |
81 |
} |
82 |
|
83 |
|
84 |
diff --git a/gkbuilds/kmod.gkbuild b/gkbuilds/kmod.gkbuild |
85 |
index 44a2df3..bf0f355 100644 |
86 |
--- a/gkbuilds/kmod.gkbuild |
87 |
+++ b/gkbuilds/kmod.gkbuild |
88 |
@@ -7,16 +7,24 @@ src_prepare() { |
89 |
sed -i \ |
90 |
-e '/--enable-static is not supported by kmod/s:as_fn_error:echo:' \ |
91 |
configure || die "Failed to re-enable static support" |
92 |
+ |
93 |
+ # List of symbols which are clashing with (e)udev |
94 |
+ cat <<-EOF >> kmod.syms |
95 |
+ mkdir_p _kmod_mkdir_p |
96 |
+ mkdir_parents _kmod_mkdir_parents |
97 |
+ path_is_absolute _kmod_path_is_absolute |
98 |
+ path_make_absolute_cwd _kmod_path_make_absolute_cwd |
99 |
+ EOF |
100 |
} |
101 |
|
102 |
src_configure() { |
103 |
local myconf=( |
104 |
- --without-xz |
105 |
- --with-zlib |
106 |
- --without-openssl |
107 |
+ --enable-static |
108 |
--disable-python |
109 |
--disable-tools |
110 |
- --enable-static |
111 |
+ --with-xz |
112 |
+ --with-zlib |
113 |
+ --without-openssl |
114 |
) |
115 |
|
116 |
gkconf "${myconf[@]}" |
117 |
@@ -27,10 +35,16 @@ src_install() { |
118 |
|
119 |
# remove hardcoded $BROOT |
120 |
sed -i \ |
121 |
- -e 's/-L\/[^ ]*/-L${libdir}/' \ |
122 |
+ -e 's/-L\/[^ ]*/-L${libdir}/g' \ |
123 |
"${D}"/usr/lib*/pkgconfig/*.pc \ |
124 |
|| die |
125 |
|
126 |
+ # rename internal symbols to avoid clashing with (e)udev |
127 |
+ $(tc-getOBJCOPY) \ |
128 |
+ --redefine-syms=kmod.syms \ |
129 |
+ "${D}"/usr/lib*/libkmod.a \ |
130 |
+ || die |
131 |
+ |
132 |
rm -rf \ |
133 |
"${D}"/usr/share/ |
134 |
} |
135 |
|
136 |
diff --git a/gkbuilds/xz.gkbuild b/gkbuilds/xz.gkbuild |
137 |
new file mode 100644 |
138 |
index 0000000..8d2e6f5 |
139 |
--- /dev/null |
140 |
+++ b/gkbuilds/xz.gkbuild |
141 |
@@ -0,0 +1,19 @@ |
142 |
+# Copyright 1999-2020 Gentoo Authors |
143 |
+# Distributed under the terms of the GNU General Public License v2 |
144 |
+ |
145 |
+src_configure() { |
146 |
+ local myconf=( |
147 |
+ --enable-threads |
148 |
+ --enable-static |
149 |
+ --disable-nls |
150 |
+ --disable-xz |
151 |
+ --disable-xzdec |
152 |
+ --disable-lzmadec |
153 |
+ --disable-lzmainfo |
154 |
+ --disable-lzma-links |
155 |
+ --disable-scripts |
156 |
+ --disable-doc |
157 |
+ ) |
158 |
+ |
159 |
+ gkconf "${myconf[@]}" |
160 |
+} |