Lines 1-6
Link Here
|
1 |
# Copyright 1999-2013 Gentoo Foundation |
1 |
# Copyright 1999-2013 Gentoo Foundation |
2 |
# Distributed under the terms of the GNU General Public License v2 |
2 |
# Distributed under the terms of the GNU General Public License v2 |
3 |
# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/udev-200.ebuild,v 1.15 2013/04/04 12:53:32 ssuominen Exp $ |
3 |
# $Header: $ |
4 |
|
4 |
|
5 |
EAPI=5 |
5 |
EAPI=5 |
6 |
|
6 |
|
Lines 11-30
Link Here
|
11 |
KV_min=2.6.32 |
11 |
KV_min=2.6.32 |
12 |
fi |
12 |
fi |
13 |
|
13 |
|
14 |
inherit autotools eutils linux-info multilib toolchain-funcs versionator |
14 |
inherit autotools eutils linux-info multilib systemd toolchain-funcs versionator flag-o-matic |
15 |
|
15 |
|
16 |
if [[ ${PV} = 9999* ]]; then |
16 |
if [[ ${PV} = 9999* ]]; then |
17 |
EGIT_REPO_URI="git://anongit.freedesktop.org/systemd/systemd" |
17 |
EGIT_REPO_URI="git://anongit.freedesktop.org/systemd/systemd" |
18 |
inherit git-2 |
18 |
inherit git-2 |
19 |
else |
19 |
else |
20 |
patchset=1 |
20 |
patchset= #3 |
21 |
SRC_URI="http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz" |
21 |
SRC_URI="http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz" |
22 |
if [[ -n "${patchset}" ]]; then |
22 |
if [[ -n "${patchset}" ]]; then |
23 |
SRC_URI="${SRC_URI} |
23 |
SRC_URI="${SRC_URI} |
24 |
http://dev.gentoo.org/~ssuominen/${P}-patches-${patchset}.tar.xz |
24 |
http://dev.gentoo.org/~ssuominen/${P}-patches-${patchset}.tar.xz |
25 |
http://dev.gentoo.org/~williamh/dist/${P}-patches-${patchset}.tar.xz" |
25 |
http://dev.gentoo.org/~williamh/dist/${P}-patches-${patchset}.tar.xz" |
26 |
fi |
26 |
fi |
27 |
KEYWORDS="alpha amd64 arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 sh sparc x86" |
27 |
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" |
28 |
fi |
28 |
fi |
29 |
|
29 |
|
30 |
DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)" |
30 |
DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)" |
Lines 32-38
Link Here
|
32 |
|
32 |
|
33 |
LICENSE="LGPL-2.1 MIT GPL-2" |
33 |
LICENSE="LGPL-2.1 MIT GPL-2" |
34 |
SLOT="0" |
34 |
SLOT="0" |
35 |
IUSE="acl doc +firmware-loader gudev hwdb introspection keymap +kmod +openrc selinux static-libs" |
35 |
IUSE="acl doc firmware-loader gudev hwdb introspection keymap +kmod +openrc selinux static-libs logind" |
36 |
|
36 |
|
37 |
RESTRICT="test" |
37 |
RESTRICT="test" |
38 |
|
38 |
|
Lines 43-53
Link Here
|
43 |
kmod? ( >=sys-apps/kmod-12 ) |
43 |
kmod? ( >=sys-apps/kmod-12 ) |
44 |
selinux? ( >=sys-libs/libselinux-2.1.9 ) |
44 |
selinux? ( >=sys-libs/libselinux-2.1.9 ) |
45 |
!<sys-libs/glibc-2.11 |
45 |
!<sys-libs/glibc-2.11 |
46 |
!sys-apps/systemd" |
46 |
!<sys-apps/systemd-${PV}" |
47 |
|
47 |
|
48 |
DEPEND="${COMMON_DEPEND} |
48 |
DEPEND="${COMMON_DEPEND} |
49 |
app-text/docbook-xsl-stylesheets |
|
|
50 |
dev-libs/libxslt |
51 |
virtual/os-headers |
49 |
virtual/os-headers |
52 |
virtual/pkgconfig |
50 |
virtual/pkgconfig |
53 |
!<sys-kernel/linux-headers-${KV_min} |
51 |
!<sys-kernel/linux-headers-${KV_min} |
Lines 56-61
Link Here
|
56 |
|
54 |
|
57 |
if [[ ${PV} = 9999* ]]; then |
55 |
if [[ ${PV} = 9999* ]]; then |
58 |
DEPEND="${DEPEND} |
56 |
DEPEND="${DEPEND} |
|
|
57 |
app-text/docbook-xsl-stylesheets |
58 |
dev-libs/libxslt |
59 |
dev-util/gperf |
59 |
dev-util/gperf |
60 |
>=dev-util/intltool-0.50" |
60 |
>=dev-util/intltool-0.50" |
61 |
fi |
61 |
fi |
Lines 76-83
Link Here
|
76 |
|
76 |
|
77 |
S=${WORKDIR}/systemd-${PV} |
77 |
S=${WORKDIR}/systemd-${PV} |
78 |
|
78 |
|
79 |
#QA_MULTILIB_PATHS="lib/systemd/systemd-udevd" |
|
|
80 |
|
81 |
udev_check_KV() { |
79 |
udev_check_KV() { |
82 |
if kernel_is lt ${KV_min//./ }; then |
80 |
if kernel_is lt ${KV_min//./ }; then |
83 |
return 1 |
81 |
return 1 |
Lines 127-133
Link Here
|
127 |
fi |
125 |
fi |
128 |
|
126 |
|
129 |
# gperf disable if keymaps are not requested wrt bug #452760 |
127 |
# gperf disable if keymaps are not requested wrt bug #452760 |
130 |
if ! [[ $(grep -i gperf Makefile.am | wc -l) -eq 27 ]]; then |
128 |
if ! [[ $(grep -i gperf Makefile.am | wc -l) -eq 27 ]]; then |
131 |
eerror "The line count for gperf references failed, see bug 452760" |
129 |
eerror "The line count for gperf references failed, see bug 452760" |
132 |
die |
130 |
die |
133 |
fi |
131 |
fi |
Lines 140-146
Link Here
|
140 |
|
138 |
|
141 |
# These are missing from upstream 50-udev-default.rules |
139 |
# These are missing from upstream 50-udev-default.rules |
142 |
cat <<-EOF > "${T}"/40-gentoo.rules |
140 |
cat <<-EOF > "${T}"/40-gentoo.rules |
143 |
# Gentoo specific usb group |
141 |
# see src_prepare() for content of these files |
144 |
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="usb" |
142 |
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="usb" |
145 |
# Keep this for Linux 2.6.32 kernels with accept4() support like .60 wrt #457868 |
143 |
# Keep this for Linux 2.6.32 kernels with accept4() support like .60 wrt #457868 |
146 |
SUBSYSTEM=="mem", KERNEL=="null|zero|full|random|urandom", MODE="0666" |
144 |
SUBSYSTEM=="mem", KERNEL=="null|zero|full|random|urandom", MODE="0666" |
Lines 163-174
Link Here
|
163 |
version_is_at_least 4.6 $(gcc-version) || \ |
161 |
version_is_at_least 4.6 $(gcc-version) || \ |
164 |
sed -i 's:static_assert:alsdjflkasjdfa:' src/shared/macro.h |
162 |
sed -i 's:static_assert:alsdjflkasjdfa:' src/shared/macro.h |
165 |
|
163 |
|
|
|
164 |
find . -type f -name "*.[hc]" -exec sed -i.ori 's:/cgroup/systemd:/cgroup/daemon:g' {} + |
165 |
find . -type f -name "*.[hc]" -exec sed -i.ori 's:/run/systemd:/var/run/systemd:g' {} + |
166 |
find . -type f -name "*.[hc]" -exec sed -i.ori 's:name=systemd:name=daemon:g' {} + |
167 |
find . -type f -name "*.[hc]" -exec sed -i.ori 's:systemd-udevd:udevd:g' {} + |
168 |
find . -type f -name "*.[hc]" -exec sed -i.ori 's:/run/udev:/var/run/udev:g' {} + |
169 |
#epatch "${FILESDIR}/${P}"-run-to-var.patch || die |
170 |
|
171 |
epatch "${FILESDIR}/${PN}"-198-logind.patch || die |
172 |
epatch "${FILESDIR}/${PN}"-198-nosystemd-daemon-makefile.patch || die |
173 |
|
166 |
# change rules back to group uucp instead of dialout for now wrt #454556 |
174 |
# change rules back to group uucp instead of dialout for now wrt #454556 |
167 |
sed -e 's/GROUP="dialout"/GROUP="uucp"/' \ |
175 |
sed -e 's/GROUP="dialout"/GROUP="uucp"/' \ |
168 |
-i rules/*.rules \ |
176 |
-i rules/*.rules \ |
169 |
|| die "failed to change group dialout to uucp" |
177 |
|| die "failed to change group dialout to uucp" |
170 |
|
178 |
|
171 |
if [[ ! -e configure ]]; then |
179 |
if ! use elibc_glibc; then #443030 |
|
|
180 |
echo '#define secure_getenv(x) NULL' >> config.h.in |
181 |
sed -i -e '/error.*secure_getenv/s:.*:#define secure_getenv(x) NULL:' src/shared/missing.h || die |
182 |
fi |
183 |
|
184 |
if [ ! -e configure ]; then |
172 |
if use doc; then |
185 |
if use doc; then |
173 |
gtkdocize --docdir docs || die "gtkdocize failed" |
186 |
gtkdocize --docdir docs || die "gtkdocize failed" |
174 |
else |
187 |
else |
Lines 178-210
Link Here
|
178 |
else |
191 |
else |
179 |
check_default_rules |
192 |
check_default_rules |
180 |
elibtoolize |
193 |
elibtoolize |
181 |
fi |
194 |
eautomake |
182 |
|
|
|
183 |
if ! use elibc_glibc; then #443030 |
184 |
echo '#define secure_getenv(x) NULL' >> config.h.in |
185 |
sed -i -e '/error.*secure_getenv/s:.*:#define secure_getenv(x) NULL:' src/shared/missing.h || die |
186 |
fi |
195 |
fi |
187 |
|
196 |
|
188 |
# link udevd(8) to systemd-udevd.service(8) manpage |
197 |
# link udevd(8) to systemd-udevd.service(8) manpage |
189 |
echo '.so systemd-udevd.service.8' > "${T}"/udevd.8 |
198 |
#echo '.so systemd-udevd.service.8' > "${T}"/udevd.8 |
190 |
} |
199 |
} |
191 |
|
200 |
|
192 |
src_configure() { |
201 |
src_configure() { |
193 |
tc-export CC #463846 |
|
|
194 |
use keymap || export ac_cv_path_GPERF=true #452760 |
202 |
use keymap || export ac_cv_path_GPERF=true #452760 |
195 |
|
203 |
|
|
|
204 |
# alternative: systemd daemon NOPs when -DDISABLE_SYSTEMD is set |
205 |
# also not for logind, but does not harm. |
206 |
|
207 |
append-cppflags -DDISABLE_SYSTEMD |
208 |
|
196 |
local econf_args |
209 |
local econf_args |
|
|
210 |
use logind && CPPFLAGS="${CPPFLAGS} -DDISABLE_SD_DAEMON" |
197 |
|
211 |
|
198 |
econf_args=( |
212 |
econf_args=( |
199 |
ac_cv_search_cap_init= |
|
|
200 |
ac_cv_header_sys_capability_h=yes |
201 |
DBUS_CFLAGS=' ' |
202 |
DBUS_LIBS=' ' |
203 |
--bindir=/bin |
213 |
--bindir=/bin |
204 |
--docdir=/usr/share/doc/${PF} |
214 |
--docdir=/usr/share/doc/${PF} |
205 |
--libdir=/usr/$(get_libdir) |
215 |
--libdir=/$(get_libdir) |
|
|
216 |
--libexecdir=/lib |
217 |
--prefix=/ |
218 |
--exec-prefix=/ |
219 |
--includedir=/usr/include |
220 |
--datarootdir=/usr/share |
221 |
--localstatedir=/var |
222 |
--with-dbuspolicydir=/usr/dbus-1/system.d |
223 |
--libdir=/$(get_libdir) |
206 |
--with-html-dir=/usr/share/doc/${PF}/html |
224 |
--with-html-dir=/usr/share/doc/${PF}/html |
207 |
--with-rootprefix= |
225 |
--with-rootprefix=/ |
208 |
--with-rootlibdir=/$(get_libdir) |
226 |
--with-rootlibdir=/$(get_libdir) |
209 |
--with-bashcompletiondir=/usr/share/bash-completion |
227 |
--with-bashcompletiondir=/usr/share/bash-completion |
210 |
--without-python |
228 |
--without-python |
Lines 214-220
Link Here
|
214 |
--disable-ima |
232 |
--disable-ima |
215 |
--disable-libcryptsetup |
233 |
--disable-libcryptsetup |
216 |
--disable-localed |
234 |
--disable-localed |
217 |
--disable-logind |
235 |
$(use_enable logind) |
|
|
236 |
--disable-efi |
237 |
--disable-chkconfig |
238 |
--disable-xattr |
239 |
--disable-gcrypt |
240 |
--disable-qrencode |
241 |
--disable-microhttpd |
242 |
--disable-binfmt |
243 |
--disable-vconsole |
244 |
--disable-bootchart |
245 |
--disable-randomseed |
246 |
--enable-blkid |
218 |
--disable-myhostname |
247 |
--disable-myhostname |
219 |
--disable-nls |
248 |
--disable-nls |
220 |
--disable-pam |
249 |
--disable-pam |
Lines 224-229
Link Here
|
224 |
--disable-tcpwrap |
253 |
--disable-tcpwrap |
225 |
--disable-timedated |
254 |
--disable-timedated |
226 |
--disable-xz |
255 |
--disable-xz |
|
|
256 |
--disable-silent-rules |
227 |
--disable-polkit |
257 |
--disable-polkit |
228 |
$(use_enable acl) |
258 |
$(use_enable acl) |
229 |
$(use_enable doc gtk-doc) |
259 |
$(use_enable doc gtk-doc) |
Lines 233-262
Link Here
|
233 |
$(use_enable selinux) |
263 |
$(use_enable selinux) |
234 |
$(use_enable static-libs static) |
264 |
$(use_enable static-libs static) |
235 |
) |
265 |
) |
|
|
266 |
|
236 |
if use introspection; then |
267 |
if use introspection; then |
237 |
econf_args+=( |
268 |
econf_args+=( |
238 |
--enable-introspection=$(usex introspection) |
269 |
--enable-introspection=$(usex introspection) |
239 |
) |
270 |
) |
240 |
fi |
271 |
fi |
|
|
272 |
|
241 |
if use firmware-loader; then |
273 |
if use firmware-loader; then |
242 |
econf_args+=( |
274 |
econf_args+=( |
243 |
--with-firmware-path="/lib/firmware/updates:/lib/firmware" |
275 |
--with-firmware-path=/lib/firmware/updates:/lib/firmware |
|
|
276 |
) |
277 |
fi |
278 |
|
279 |
if ! use logind; then |
280 |
econf_args+=( |
281 |
DBUS_CFLAGS=' ' |
282 |
DBUS_LIBS=' ' |
283 |
ac_cv_search_cap_init= |
284 |
ac_cv_header_sys_capability_h=yes |
244 |
) |
285 |
) |
245 |
fi |
286 |
fi |
246 |
econf "${econf_args[@]}" |
287 |
econf "${econf_args[@]}" ${CPPFLAGS:+CPPFLAGS="${CPPFLAGS}"} |
247 |
} |
288 |
} |
248 |
|
289 |
|
249 |
src_compile() { |
290 |
src_compile() { |
250 |
echo 'BUILT_SOURCES: $(BUILT_SOURCES)' > "${T}"/Makefile.extra |
291 |
echo 'BUILT_SOURCES: $(BUILT_SOURCES)' > "${T}"/Makefile.extra |
251 |
emake -f Makefile -f "${T}"/Makefile.extra BUILT_SOURCES |
292 |
emake -f Makefile -f "${T}"/Makefile.extra BUILT_SOURCES |
252 |
local pretargets=( |
|
|
253 |
libsystemd-shared.la |
254 |
libudev-private.la |
255 |
libudev.la |
256 |
) |
257 |
local targets=( |
293 |
local targets=( |
|
|
294 |
libudev-private.la |
258 |
systemd-udevd |
295 |
systemd-udevd |
259 |
udevadm |
296 |
udevadm |
|
|
297 |
libudev.la |
260 |
ata_id |
298 |
ata_id |
261 |
cdrom_id |
299 |
cdrom_id |
262 |
collect |
300 |
collect |
Lines 269-279
Link Here
|
269 |
man/systemd-udevd.8 |
307 |
man/systemd-udevd.8 |
270 |
man/systemd-udevd.service.8 |
308 |
man/systemd-udevd.service.8 |
271 |
) |
309 |
) |
|
|
310 |
if use logind; then |
311 |
targets+=( |
312 |
systemd-logind |
313 |
loginctl |
314 |
man/loginctl.1 |
315 |
man/systemd-logind.8 |
316 |
) |
317 |
fi |
272 |
use keymap && targets+=( keymap ) |
318 |
use keymap && targets+=( keymap ) |
273 |
use gudev && targets+=( libgudev-1.0.la ) |
319 |
use gudev && targets+=( libgudev-1.0.la ) |
274 |
|
320 |
|
275 |
emake "${pretargets[@]}" |
321 |
emake udevlibexecdir=/$(get_libdir)/udev "${targets[@]}" |
276 |
emake "${targets[@]}" |
|
|
277 |
if use doc; then |
322 |
if use doc; then |
278 |
emake -C docs/libudev |
323 |
emake -C docs/libudev |
279 |
use gudev && emake -C docs/gudev |
324 |
use gudev && emake -C docs/gudev |
Lines 291-304
Link Here
|
291 |
install-binPROGRAMS |
336 |
install-binPROGRAMS |
292 |
install-rootlibexecPROGRAMS |
337 |
install-rootlibexecPROGRAMS |
293 |
install-udevlibexecPROGRAMS |
338 |
install-udevlibexecPROGRAMS |
|
|
339 |
install-dist_systemunitDATA |
294 |
install-dist_udevconfDATA |
340 |
install-dist_udevconfDATA |
295 |
install-dist_udevhomeSCRIPTS |
341 |
install-dist_udevhomeSCRIPTS |
296 |
install-dist_udevkeymapDATA |
342 |
install-dist_udevkeymapDATA |
297 |
install-dist_udevkeymapforcerelDATA |
343 |
install-dist_udevkeymapforcerelDATA |
298 |
install-dist_udevrulesDATA |
344 |
install-dist_udevrulesDATA |
299 |
install-girDATA |
345 |
install-girDATA |
|
|
346 |
install-man3 |
300 |
install-man7 |
347 |
install-man7 |
301 |
install-man8 |
348 |
install-man8 |
|
|
349 |
install-nodist_systemunitDATA |
302 |
install-pkgconfiglibDATA |
350 |
install-pkgconfiglibDATA |
303 |
install-sharepkgconfigDATA |
351 |
install-sharepkgconfigDATA |
304 |
install-typelibsDATA |
352 |
install-typelibsDATA |
Lines 308-313
Link Here
|
308 |
install-dist_bashcompletionDATA |
356 |
install-dist_bashcompletionDATA |
309 |
) |
357 |
) |
310 |
|
358 |
|
|
|
359 |
if use logind; then |
360 |
targets+=( |
361 |
install-pkgincludeHEADERS |
362 |
libsystemd-login-install-hook |
363 |
install-man1 |
364 |
install-man5 |
365 |
install-nodist_udevrulesDATA |
366 |
install-dist_dbuspolicyDATA |
367 |
) |
368 |
pkgconfiglib_DATA+=" src/login/libsystemd-login.pc" |
369 |
lib_LTLIBRARIES+=" libsystemd-login.la" |
370 |
fi |
371 |
|
311 |
if use gudev; then |
372 |
if use gudev; then |
312 |
lib_LTLIBRARIES+=" libgudev-1.0.la" |
373 |
lib_LTLIBRARIES+=" libgudev-1.0.la" |
313 |
pkgconfiglib_DATA+=" src/gudev/gudev-1.0.pc" |
374 |
pkgconfiglib_DATA+=" src/gudev/gudev-1.0.pc" |
Lines 315-332
Link Here
|
315 |
|
376 |
|
316 |
# add final values of variables: |
377 |
# add final values of variables: |
317 |
targets+=( |
378 |
targets+=( |
|
|
379 |
udevlibexecdir=/lib/udev |
318 |
rootlibexec_PROGRAMS=systemd-udevd |
380 |
rootlibexec_PROGRAMS=systemd-udevd |
319 |
bin_PROGRAMS=udevadm |
381 |
bin_PROGRAMS=udevadm |
320 |
lib_LTLIBRARIES="${lib_LTLIBRARIES}" |
382 |
lib_LTLIBRARIES="${lib_LTLIBRARIES}" |
321 |
MANPAGES="man/udev.7 man/udevadm.8 \ |
383 |
MANPAGES="man/udev.7 man/udevadm.8 \ |
322 |
man/systemd-udevd.service.8" |
384 |
man/systemd-udevd.service.8" |
323 |
MANPAGES_ALIAS="man/systemd-udevd.8" |
385 |
MANPAGES_ALIAS="man/systemd-udevd.8" |
|
|
386 |
dist_systemunit_DATA="units/systemd-udevd-control.socket \ |
387 |
units/systemd-udevd-kernel.socket" |
388 |
nodist_systemunit_DATA="units/systemd-udevd.service \ |
389 |
units/systemd-udev-trigger.service \ |
390 |
units/systemd-udev-settle.service" |
324 |
pkgconfiglib_DATA="${pkgconfiglib_DATA}" |
391 |
pkgconfiglib_DATA="${pkgconfiglib_DATA}" |
|
|
392 |
systemunitdir="$(systemd_get_unitdir)" |
325 |
INSTALL_DIRS='$(sysconfdir)/udev/rules.d \ |
393 |
INSTALL_DIRS='$(sysconfdir)/udev/rules.d \ |
326 |
$(sysconfdir)/udev/hwdb.d' |
394 |
$(sysconfdir)/udev/hwdb.d' |
327 |
dist_bashcompletion_DATA="shell-completion/bash/udevadm" |
395 |
dist_bashcompletion_DATA="shell-completion/bash/udevadm" |
|
|
396 |
|
328 |
) |
397 |
) |
|
|
398 |
if use logind; then |
399 |
targets+=( |
400 |
dist_pkgsysconf_DATA+="src/login/logind.conf" |
401 |
rootlibexec_PROGRAMS+="systemd-logind" |
402 |
bin_PROGRAMS+="loginctl" |
403 |
MANPAGES+="man/loginctl.1 man/logind.conf.5" |
404 |
) |
405 |
fi |
329 |
emake -j1 DESTDIR="${D}" "${targets[@]}" |
406 |
emake -j1 DESTDIR="${D}" "${targets[@]}" |
|
|
407 |
|
330 |
if use doc; then |
408 |
if use doc; then |
331 |
emake -C docs/libudev DESTDIR="${D}" install |
409 |
emake -C docs/libudev DESTDIR="${D}" install |
332 |
use gudev && emake -C docs/gudev DESTDIR="${D}" install |
410 |
use gudev && emake -C docs/gudev DESTDIR="${D}" install |
Lines 338-355
Link Here
|
338 |
"${D}"/lib/udev/rules.d/99-systemd.rules \ |
416 |
"${D}"/lib/udev/rules.d/99-systemd.rules \ |
339 |
"${D}"/usr/share/doc/${PF}/LICENSE.* |
417 |
"${D}"/usr/share/doc/${PF}/LICENSE.* |
340 |
|
418 |
|
341 |
# see src_prepare() for content of these files |
419 |
# install gentoo-specific rules |
342 |
insinto /lib/udev/rules.d |
420 |
insinto /lib/udev/rules.d |
343 |
doins "${T}"/40-gentoo.rules |
421 |
doins "${T}"/40-gentoo.rules |
344 |
doman "${T}"/udevd.8 |
|
|
345 |
|
422 |
|
346 |
# install udevadm compatibility symlink |
423 |
dodir /usr/$(get_libdir) |
347 |
dosym {../bin,sbin}/udevadm |
424 |
mv ${D:-:}/$(get_libdir)/pkgconfig ${D}/usr/$(get_libdir) |
|
|
425 |
|
426 |
gen_usr_ldscript libudev.so |
427 |
|
428 |
dodir /sbin |
429 |
|
430 |
if [ -x ${D}/bin/udevadm ]; then |
431 |
mv ${D}/bin/udevadm ${D}/sbin/udevadm |
432 |
fi |
433 |
# udevadm is now in /usr/bin. <--- I can't believe it !! |
434 |
dosym /sbin/udevadm /bin/udevadm |
435 |
|
436 |
dodir /$(get_libdir)/udev |
437 |
|
438 |
# move udevd where it should be and remove unlogical /lib/systemd |
439 |
mv "${ED}"/lib/systemd/systemd-udevd "${ED}"/sbin/udevd || die |
440 |
rm -r "${ED}"/lib/systemd |
441 |
rm -r "${ED}"/usr/lib/systemd |
442 |
|
443 |
# create symlinks for these utilities to /sbin |
444 |
# where multipath-tools expect them to be (Bug #168588) |
445 |
dosym /lib/udev/scsi_id /sbin/scsi_id |
446 |
|
447 |
dosym /var/run /run |
448 |
mv ${D}/usr/share/man/man8/systemd-udevd.service.8 ${D}/usr/share/man/man8/udevd.8 |
348 |
|
449 |
|
349 |
# install udevd to /sbin and remove empty and redudant directory |
450 |
rm ${D}/usr/share/man/man8/systemd-udevd.8 |
350 |
# /lib/systemd because systemd is installed to /usr wrt #462750 |
451 |
|
351 |
mv "${D}"/{lib/systemd/systemd-,sbin/}udevd || die |
452 |
local manuals |
352 |
rm -r "${D}"/lib/systemd |
453 |
if use logind; then |
|
|
454 |
manuals="man5/logind.conf.5 man1/loginctl.1" |
455 |
fi |
456 |
|
457 |
local man |
458 |
for man in man7/udevd.7 man8/udevd.8 man8/udevadm.8 ${manuals}; do |
459 |
sed -i 's:\\fBsystem.*\\fR(1),::' ${D}/usr/share/man/${man} |
460 |
sed -i 's:systemd-\([^\.]*\)\.service:\1:g' ${D}/usr/share/man/${man} |
461 |
sed -i 's:systemd\\-::g' ${D}/usr/share/man/${man} |
462 |
sed -i '/^\.TH/s:systemd:version:' ${D}/usr/share/man/${man} |
463 |
done |
464 |
|
465 |
# see src_prepare() where this is created |
466 |
#doman "${T}"/udevd.8 |
467 |
|
468 |
if use logind; then |
469 |
# rm -f "${D}"/usr/dbus-1/system.d/org.freedesktop.systemd1.conf |
470 |
exeinto /$(get_libdir)/udev |
471 |
doexe ./.libs/systemd-logind |
472 |
mv ${D}/$(get_libdir)/udev/systemd-logind ${D}/sbin/logind |
473 |
insinto /etc/systemd |
474 |
doins src/login/logind.conf |
475 |
fi |
353 |
} |
476 |
} |
354 |
|
477 |
|
355 |
pkg_preinst() { |
478 |
pkg_preinst() { |
Lines 366-378
Link Here
|
366 |
preserve_old_lib /{,usr/}$(get_libdir)/libudev$(get_libname 0) |
489 |
preserve_old_lib /{,usr/}$(get_libdir)/libudev$(get_libname 0) |
367 |
} |
490 |
} |
368 |
|
491 |
|
|
|
492 |
# This function determines if a directory is a mount point. |
493 |
# It was lifted from dracut. |
494 |
ismounted() { |
495 |
while read a m a; do |
496 |
[[ $m = $1 ]] && return 0 |
497 |
done < "${ROOT}"/proc/mounts |
498 |
return 1 |
499 |
} |
500 |
|
369 |
pkg_postinst() { |
501 |
pkg_postinst() { |
370 |
mkdir -p "${ROOT}"run |
502 |
mkdir -p "${ROOT}"/run |
371 |
|
503 |
|
372 |
# "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766 |
504 |
# "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766 |
373 |
# So try to remove it here (will only work if empty). |
505 |
# So try to remove it here (will only work if empty). |
374 |
rmdir "${ROOT}"dev/loop 2>/dev/null |
506 |
rmdir "${ROOT}"/dev/loop 2>/dev/null |
375 |
if [[ -d ${ROOT}dev/loop ]]; then |
507 |
if [[ -d ${ROOT}/dev/loop ]]; then |
376 |
ewarn "Please make sure your remove /dev/loop," |
508 |
ewarn "Please make sure your remove /dev/loop," |
377 |
ewarn "else losetup may be confused when looking for unused devices." |
509 |
ewarn "else losetup may be confused when looking for unused devices." |
378 |
fi |
510 |
fi |
Lines 388-394
Link Here
|
388 |
einfo "Removed unneeded file ${old_dm_rules}" |
520 |
einfo "Removed unneeded file ${old_dm_rules}" |
389 |
fi |
521 |
fi |
390 |
|
522 |
|
391 |
local fstab="${ROOT}"etc/fstab dev path fstype rest |
523 |
if ismounted /usr; then |
|
|
524 |
ewarn |
525 |
ewarn "Your system has /usr on a separate partition. This means" |
526 |
ewarn "you will need to use an initramfs to pre-mount /usr before" |
527 |
ewarn "udev runs." |
528 |
ewarn |
529 |
ewarn "If this is not set up before your next reboot, udev may work;" |
530 |
ewarn "However, you also may experience failures which are very" |
531 |
ewarn "difficult to troubleshoot." |
532 |
ewarn |
533 |
ewarn "For a more detailed explanation, see the following URL:" |
534 |
ewarn "http://www.freedesktop.org/wiki/Software/systemd/separate-usr-is-broken" |
535 |
ewarn |
536 |
ewarn "For more information on setting up an initramfs, see the" |
537 |
ewarn "following URL:" |
538 |
ewarn "http://www.gentoo.org/doc/en/initramfs-guide.xml" |
539 |
fi |
540 |
|
541 |
local fstab="${ROOT}"/etc/fstab dev path fstype rest |
392 |
while read -r dev path fstype rest; do |
542 |
while read -r dev path fstype rest; do |
393 |
if [[ ${path} == /dev && ${fstype} != devtmpfs ]]; then |
543 |
if [[ ${path} == /dev && ${fstype} != devtmpfs ]]; then |
394 |
ewarn "You need to edit your /dev line in ${fstab} to have devtmpfs" |
544 |
ewarn "You need to edit your /dev line in ${fstab} to have devtmpfs" |
Lines 397-403
Link Here
|
397 |
fi |
547 |
fi |
398 |
done < "${fstab}" |
548 |
done < "${fstab}" |
399 |
|
549 |
|
400 |
if [[ -d ${ROOT}usr/lib/udev ]]; then |
550 |
if [[ -d ${ROOT}/usr/lib/udev ]]; then |
401 |
ewarn |
551 |
ewarn |
402 |
ewarn "Please re-emerge all packages on your system which install" |
552 |
ewarn "Please re-emerge all packages on your system which install" |
403 |
ewarn "rules and helpers in /usr/lib/udev. They should now be in" |
553 |
ewarn "rules and helpers in /usr/lib/udev. They should now be in" |
Lines 408-414
Link Here
|
408 |
ewarn "Note that qfile can be found in app-portage/portage-utils" |
558 |
ewarn "Note that qfile can be found in app-portage/portage-utils" |
409 |
fi |
559 |
fi |
410 |
|
560 |
|
411 |
local old_net_name="${ROOT}"etc/udev/rules.d/80-net-name-slot.rules |
561 |
local old_net_name="${ROOT}"/etc/udev/rules.d/80-net-name-slot.rules |
412 |
if [[ -f ${old_net_name} ]]; then |
562 |
if [[ -f ${old_net_name} ]]; then |
413 |
local old_net_sum=bebf4bd1b6b668e9ff34a3999aa6ff32 |
563 |
local old_net_sum=bebf4bd1b6b668e9ff34a3999aa6ff32 |
414 |
MD5=$(md5sum < "${old_net_name}") |
564 |
MD5=$(md5sum < "${old_net_name}") |
Lines 420-427
Link Here
|
420 |
fi |
570 |
fi |
421 |
fi |
571 |
fi |
422 |
|
572 |
|
423 |
local old_cd_rules="${ROOT}"etc/udev/rules.d/70-persistent-cd.rules |
573 |
local old_cd_rules="${ROOT}"/etc/udev/rules.d/70-persistent-cd.rules |
424 |
local old_net_rules="${ROOT}"etc/udev/rules.d/70-persistent-net.rules |
574 |
local old_net_rules="${ROOT}"/etc/udev/rules.d/70-persistent-net.rules |
425 |
for old_rules in "${old_cd_rules}" "${old_net_rules}"; do |
575 |
for old_rules in "${old_cd_rules}" "${old_net_rules}"; do |
426 |
if [[ -f ${old_rules} ]]; then |
576 |
if [[ -f ${old_rules} ]]; then |
427 |
ewarn |
577 |
ewarn |
Lines 445-451
Link Here
|
445 |
ewarn "(replace <ifname> with, for example, eth0):" |
595 |
ewarn "(replace <ifname> with, for example, eth0):" |
446 |
ewarn "# udevadm test-builtin net_id /sys/class/net/<ifname> 2> /dev/null" |
596 |
ewarn "# udevadm test-builtin net_id /sys/class/net/<ifname> 2> /dev/null" |
447 |
ewarn |
597 |
ewarn |
448 |
ewarn "You can use kernel commandline net.ifnames=0 to disable this feature." |
598 |
ewarn "You can use kernel command net.ifnames= to control this feature." |
449 |
|
599 |
|
450 |
ewarn |
600 |
ewarn |
451 |
ewarn "You need to restart udev as soon as possible to make the upgrade go" |
601 |
ewarn "You need to restart udev as soon as possible to make the upgrade go" |
Lines 455-467
Link Here
|
455 |
preserve_old_lib_notify /{,usr/}$(get_libdir)/libudev$(get_libname 0) |
605 |
preserve_old_lib_notify /{,usr/}$(get_libdir)/libudev$(get_libname 0) |
456 |
|
606 |
|
457 |
elog |
607 |
elog |
458 |
elog "For more information on udev on Gentoo, upgrading, writing udev rules, and" |
608 |
elog "For more information on udev on Gentoo, writing udev rules, and" |
459 |
elog " fixing known issues visit:" |
609 |
elog " fixing known issues visit:" |
460 |
elog " http://wiki.gentoo.org/wiki/Udev/upgrade" |
|
|
461 |
elog " http://www.gentoo.org/doc/en/udev-guide.xml" |
610 |
elog " http://www.gentoo.org/doc/en/udev-guide.xml" |
462 |
|
611 |
|
463 |
# Update hwdb database in case the format is changed by udev version. |
612 |
# Keep this here in case the database format changes so it gets updated |
464 |
if use hwdb && has_version 'sys-apps/hwids[udev]'; then |
613 |
# when required. Despite that this file is owned by sys-apps/hwids. |
|
|
614 |
if use hwdb && has_version sys-apps/hwids; then |
465 |
udevadm hwdb --update --root="${ROOT%/}" |
615 |
udevadm hwdb --update --root="${ROOT%/}" |
466 |
fi |
616 |
fi |
467 |
} |
617 |
} |