1 |
1 |
# Copyright 1999-2023 Gentoo Authors
|
2 |
2 |
# Distributed under the terms of the GNU General Public License v2
|
3 |
3 |
|
4 |
|
EAPI=7
|
|
4 |
EAPI=8
|
5 |
5 |
|
6 |
6 |
KV_MIN=2.6.39
|
7 |
7 |
|
8 |
|
inherit autotools linux-info multilib-minimal toolchain-funcs
|
|
8 |
inherit linux-info multilib-minimal toolchain-funcs udev
|
9 |
9 |
|
10 |
10 |
if [[ ${PV} = 9999* ]]; then
|
11 |
11 |
EGIT_REPO_URI="https://github.com/eudev-project/eudev.git"
|
12 |
|
inherit git-r3
|
|
12 |
inherit autotools git-r3
|
13 |
13 |
else
|
14 |
|
SRC_URI="https://github.com/eudev-project/eudev/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
15 |
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
|
14 |
MY_PV=${PV/_pre/-pre}
|
|
15 |
SRC_URI="https://github.com/eudev-project/eudev/releases/download/v${MY_PV}/${PN}-${MY_PV}.tar.gz"
|
|
16 |
S="${WORKDIR}"/${PN}-${MY_PV}
|
|
17 |
|
|
18 |
if [[ ${PV} != *_pre* ]] ; then
|
|
19 |
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
|
20 |
fi
|
16 |
21 |
fi
|
17 |
22 |
|
18 |
23 |
DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
|
19 |
|
HOMEPAGE="https://github.com/gentoo/eudev"
|
|
24 |
HOMEPAGE="https://github.com/eudev-project/eudev"
|
20 |
25 |
|
21 |
26 |
LICENSE="LGPL-2.1 MIT GPL-2"
|
22 |
27 |
SLOT="0"
|
23 |
|
IUSE="+kmod introspection rule-generator selinux split-usr static-libs test"
|
|
28 |
IUSE="+kmod rule-generator selinux split-usr static-libs test"
|
24 |
29 |
RESTRICT="!test? ( test )"
|
25 |
30 |
|
26 |
|
DEPEND=">=sys-apps/util-linux-2.20
|
|
31 |
DEPEND="
|
|
32 |
>=sys-apps/util-linux-2.20
|
27 |
33 |
>=sys-kernel/linux-headers-${KV_MIN}
|
28 |
34 |
virtual/libcrypt:=
|
29 |
|
introspection? ( >=dev-libs/gobject-introspection-1.38 )
|
30 |
35 |
kmod? ( >=sys-apps/kmod-16 )
|
31 |
36 |
selinux? ( >=sys-libs/libselinux-2.1.9 )
|
32 |
37 |
!sys-apps/gentoo-systemd-integration
|
33 |
|
!sys-apps/systemd"
|
34 |
|
RDEPEND="${DEPEND}
|
|
38 |
!sys-apps/systemd
|
|
39 |
"
|
|
40 |
RDEPEND="
|
|
41 |
${DEPEND}
|
35 |
42 |
acct-group/input
|
36 |
43 |
acct-group/kvm
|
37 |
44 |
acct-group/render
|
... | ... | |
53 |
60 |
!sys-apps/systemd-utils[udev]
|
54 |
61 |
!sys-fs/udev
|
55 |
62 |
!sys-apps/systemd
|
56 |
|
!sys-apps/hwids[udev]"
|
57 |
|
BDEPEND="dev-util/gperf
|
|
63 |
!sys-apps/hwids[udev]
|
|
64 |
"
|
|
65 |
BDEPEND="
|
|
66 |
dev-util/gperf
|
58 |
67 |
virtual/os-headers
|
59 |
68 |
virtual/pkgconfig
|
60 |
|
>=sys-devel/make-3.82-r4
|
61 |
|
test? ( app-text/tree dev-lang/perl )"
|
|
69 |
test? (
|
|
70 |
app-text/tree
|
|
71 |
dev-lang/perl
|
|
72 |
)
|
|
73 |
"
|
62 |
74 |
PDEPEND=">=sys-fs/udev-init-scripts-26"
|
63 |
75 |
|
64 |
76 |
MULTILIB_WRAPPED_HEADERS=(
|
... | ... | |
67 |
79 |
|
68 |
80 |
pkg_pretend() {
|
69 |
81 |
ewarn
|
70 |
|
ewarn "As of 2013-01-29, ${P} provides the new interface renaming functionality,"
|
|
82 |
ewarn "As of 2013-01-29, ${PN} provides the new interface renaming functionality,"
|
71 |
83 |
ewarn "as described in the URL below:"
|
72 |
84 |
ewarn "https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
|
73 |
85 |
ewarn
|
... | ... | |
94 |
106 |
}
|
95 |
107 |
|
96 |
108 |
src_prepare() {
|
97 |
|
# change rules back to group uucp instead of dialout for now
|
|
109 |
default
|
|
110 |
|
|
111 |
# Change rules back to group uucp instead of dialout for now
|
98 |
112 |
sed -e 's/GROUP="dialout"/GROUP="uucp"/' -i rules/*.rules \
|
99 |
113 |
|| die "failed to change group dialout to uucp"
|
100 |
114 |
|
101 |
|
default
|
102 |
|
eautoreconf
|
|
115 |
if [[ ${PV} == 9999* ]] ; then
|
|
116 |
eautoreconf
|
|
117 |
fi
|
103 |
118 |
}
|
104 |
119 |
|
105 |
120 |
rootprefix() {
|
... | ... | |
116 |
131 |
# bug #502950
|
117 |
132 |
export cc_cv_CFLAGS__flto=no
|
118 |
133 |
|
119 |
|
# Keep sorted by ./configure --help and only pass --disable flags
|
120 |
|
# when *required* to avoid external deps or unnecessary compile
|
121 |
|
local econf_args
|
122 |
|
econf_args=(
|
|
134 |
local myeconfargs=(
|
123 |
135 |
ac_cv_search_cap_init=
|
124 |
136 |
ac_cv_header_sys_capability_h=yes
|
|
137 |
|
125 |
138 |
DBUS_CFLAGS=' '
|
126 |
139 |
DBUS_LIBS=' '
|
|
140 |
|
127 |
141 |
--with-rootprefix="${EPREFIX}$(rootprefix)"
|
128 |
142 |
--with-rootrundir=/run
|
129 |
143 |
--exec-prefix="${EPREFIX}"
|
... | ... | |
138 |
152 |
|
139 |
153 |
# Only build libudev for non-native_abi, and only install it to libdir,
|
140 |
154 |
# that means all options only apply to native_abi
|
141 |
|
if multilib_is_native_abi; then
|
142 |
|
econf_args+=(
|
|
155 |
if multilib_is_native_abi ; then
|
|
156 |
myeconfargs+=(
|
143 |
157 |
--with-rootlibdir="${EPREFIX}$(rootprefix)/$(get_libdir)"
|
144 |
|
$(use_enable introspection)
|
145 |
158 |
$(use_enable kmod)
|
146 |
159 |
$(use_enable static-libs static)
|
147 |
160 |
$(use_enable selinux)
|
148 |
161 |
$(use_enable rule-generator)
|
149 |
162 |
)
|
150 |
163 |
else
|
151 |
|
econf_args+=(
|
|
164 |
myeconfargs+=(
|
152 |
165 |
--disable-static
|
153 |
|
--disable-introspection
|
154 |
166 |
--disable-kmod
|
155 |
167 |
--disable-selinux
|
156 |
168 |
--disable-rule-generator
|
... | ... | |
158 |
170 |
)
|
159 |
171 |
fi
|
160 |
172 |
|
161 |
|
ECONF_SOURCE="${S}" econf "${econf_args[@]}"
|
|
173 |
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
162 |
174 |
}
|
163 |
175 |
|
164 |
176 |
multilib_src_compile() {
|
165 |
|
if multilib_is_native_abi; then
|
|
177 |
if multilib_is_native_abi ; then
|
166 |
178 |
emake
|
167 |
179 |
else
|
168 |
180 |
emake -C src/shared
|
... | ... | |
171 |
183 |
}
|
172 |
184 |
|
173 |
185 |
multilib_src_test() {
|
174 |
|
# make sandbox get out of the way
|
175 |
|
# these are safe because there is a fake root filesystem put in place,
|
|
186 |
# Make sandbox get out of the way.
|
|
187 |
# These are safe because there is a fake root filesystem put in place,
|
176 |
188 |
# but sandbox seems to evaluate the paths of the test i/o instead of the
|
177 |
|
# paths of the actual i/o that results.
|
178 |
|
# also only test for native abi
|
179 |
|
if multilib_is_native_abi; then
|
|
189 |
# paths of the actual i/o that results. Also only test for native abi
|
|
190 |
if multilib_is_native_abi ; then
|
180 |
191 |
addread /sys
|
181 |
192 |
addwrite /dev
|
182 |
193 |
addwrite /run
|
183 |
194 |
|
184 |
|
default_src_test
|
|
195 |
default
|
185 |
196 |
fi
|
186 |
197 |
}
|
187 |
198 |
|
188 |
199 |
multilib_src_install() {
|
189 |
|
if multilib_is_native_abi; then
|
|
200 |
if multilib_is_native_abi ; then
|
190 |
201 |
emake DESTDIR="${D}" install
|
191 |
202 |
else
|
192 |
203 |
emake -C src/libudev DESTDIR="${D}" install
|
... | ... | |
202 |
213 |
use rule-generator && doinitd "${FILESDIR}"/udev-postmount
|
203 |
214 |
}
|
204 |
215 |
|
|
216 |
pkg_postrm() {
|
|
217 |
udev_reload
|
|
218 |
}
|
|
219 |
|
205 |
220 |
pkg_postinst() {
|
|
221 |
udev_reload
|
|
222 |
|
206 |
223 |
mkdir -p "${EROOT}"/run
|
207 |
224 |
|
208 |
225 |
# "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
|