Gentoo Archives: gentoo-commits

From: "Samuli Suominen (ssuominen)" <ssuominen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-fs/udev: udev-199-r1.ebuild ChangeLog
Date: Thu, 28 Mar 2013 18:30:19
Message-Id: 20130328183014.CB67E2171D@flycatcher.gentoo.org
1 ssuominen 13/03/28 18:30:14
2
3 Modified: ChangeLog
4 Added: udev-199-r1.ebuild
5 Log:
6 Backport upstream patch for enabling/disabling the deprecated firmware loader wrt #463604 by Egor Y. Egorov
7
8 (Portage version: 2.2.0_alpha169/cvs/Linux x86_64, signed Manifest commit with key 4868F14D)
9
10 Revision Changes Path
11 1.882 sys-fs/udev/ChangeLog
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/ChangeLog?rev=1.882&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/ChangeLog?rev=1.882&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/ChangeLog?r1=1.881&r2=1.882
16
17 Index: ChangeLog
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v
20 retrieving revision 1.881
21 retrieving revision 1.882
22 diff -u -r1.881 -r1.882
23 --- ChangeLog 27 Mar 2013 08:38:47 -0000 1.881
24 +++ ChangeLog 28 Mar 2013 18:30:14 -0000 1.882
25 @@ -1,6 +1,12 @@
26 # ChangeLog for sys-fs/udev
27 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
28 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.881 2013/03/27 08:38:47 ssuominen Exp $
29 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.882 2013/03/28 18:30:14 ssuominen Exp $
30 +
31 +*udev-199-r1 (28 Mar 2013)
32 +
33 + 28 Mar 2013; Samuli Suominen <ssuominen@g.o> +udev-199-r1.ebuild:
34 + Backport upstream patch for enabling/disabling the deprecated firmware loader
35 + wrt #463604 by Egor Y. Egorov
36
37 27 Mar 2013; Samuli Suominen <ssuominen@g.o> udev-199.ebuild,
38 udev-9999.ebuild:
39
40
41
42 1.1 sys-fs/udev/udev-199-r1.ebuild
43
44 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/udev-199-r1.ebuild?rev=1.1&view=markup
45 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/udev-199-r1.ebuild?rev=1.1&content-type=text/plain
46
47 Index: udev-199-r1.ebuild
48 ===================================================================
49 # Copyright 1999-2013 Gentoo Foundation
50 # Distributed under the terms of the GNU General Public License v2
51 # $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/udev-199-r1.ebuild,v 1.1 2013/03/28 18:30:14 ssuominen Exp $
52
53 EAPI=5
54
55 # accept4() patch is only in non-live version
56 if [[ ${PV} = 9999* ]]; then
57 KV_min=2.6.39
58 else
59 KV_min=2.6.32
60 fi
61
62 inherit autotools eutils linux-info multilib toolchain-funcs versionator
63
64 if [[ ${PV} = 9999* ]]; then
65 EGIT_REPO_URI="git://anongit.freedesktop.org/systemd/systemd"
66 inherit git-2
67 else
68 patchset=3
69 SRC_URI="http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz"
70 if [[ -n "${patchset}" ]]; then
71 SRC_URI="${SRC_URI}
72 http://dev.gentoo.org/~ssuominen/${P}-patches-${patchset}.tar.xz
73 http://dev.gentoo.org/~williamh/dist/${P}-patches-${patchset}.tar.xz"
74 fi
75 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
76 fi
77
78 DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
79 HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd"
80
81 LICENSE="LGPL-2.1 MIT GPL-2"
82 SLOT="0"
83 IUSE="acl doc firmware-loader gudev hwdb introspection keymap +kmod +openrc selinux static-libs"
84
85 RESTRICT="test"
86
87 COMMON_DEPEND=">=sys-apps/util-linux-2.20
88 acl? ( sys-apps/acl )
89 gudev? ( >=dev-libs/glib-2 )
90 introspection? ( >=dev-libs/gobject-introspection-1.31.1 )
91 kmod? ( >=sys-apps/kmod-12 )
92 selinux? ( >=sys-libs/libselinux-2.1.9 )
93 !<sys-libs/glibc-2.11
94 !sys-apps/systemd"
95
96 DEPEND="${COMMON_DEPEND}
97 virtual/os-headers
98 virtual/pkgconfig
99 !<sys-kernel/linux-headers-${KV_min}
100 doc? ( >=dev-util/gtk-doc-1.18 )
101 keymap? ( dev-util/gperf )"
102
103 if [[ ${PV} = 9999* ]]; then
104 DEPEND="${DEPEND}
105 app-text/docbook-xsl-stylesheets
106 dev-libs/libxslt
107 dev-util/gperf
108 >=dev-util/intltool-0.50"
109 fi
110
111 RDEPEND="${COMMON_DEPEND}
112 openrc? ( !<sys-apps/openrc-0.9.9 )
113 !sys-apps/coldplug
114 !<sys-fs/lvm2-2.02.97-r1
115 !sys-fs/device-mapper
116 !<sys-fs/udev-init-scripts-22
117 !<sys-kernel/dracut-017-r1
118 !<sys-kernel/genkernel-3.4.25
119 !<sec-policy/selinux-base-2.20120725-r10"
120
121 PDEPEND=">=virtual/udev-197-r1
122 hwdb? ( >=sys-apps/hwids-20130309-r1[udev] )
123 openrc? ( >=sys-fs/udev-init-scripts-23 )"
124
125 S=${WORKDIR}/systemd-${PV}
126
127 #QA_MULTILIB_PATHS="lib/systemd/systemd-udevd"
128
129 udev_check_KV() {
130 if kernel_is lt ${KV_min//./ }; then
131 return 1
132 fi
133 return 0
134 }
135
136 check_default_rules() {
137 # Make sure there are no sudden changes to upstream rules file
138 # (more for my own needs than anything else ...)
139 local udev_rules_md5=3708dcb06e69ef2d3597cad0c98625e1
140 MD5=$(md5sum < "${S}"/rules/50-udev-default.rules)
141 MD5=${MD5/ -/}
142 if [[ ${MD5} != ${udev_rules_md5} ]]; then
143 eerror "50-udev-default.rules has been updated, please validate!"
144 eerror "md5sum: ${MD5}"
145 die "50-udev-default.rules has been updated, please validate!"
146 fi
147 }
148
149 pkg_setup() {
150 CONFIG_CHECK="~BLK_DEV_BSG ~DEVTMPFS ~!IDE ~INOTIFY_USER ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2 ~SIGNALFD ~EPOLL"
151
152 linux-info_pkg_setup
153
154 if ! udev_check_KV; then
155 eerror "Your kernel version (${KV_FULL}) is too old to run ${P}"
156 eerror "It must be at least ${KV_min}!"
157 fi
158
159 KV_FULL_SRC=${KV_FULL}
160 get_running_version
161 if ! udev_check_KV; then
162 eerror
163 eerror "Your running kernel version (${KV_FULL}) is too old"
164 eerror "for this version of udev."
165 eerror "You must upgrade your kernel or downgrade udev."
166 fi
167 }
168
169 src_prepare() {
170 if ! [[ ${PV} = 9999* ]]; then
171 # secure_getenv() disable for non-glibc systems wrt bug #443030
172 if ! [[ $(grep -r secure_getenv * | wc -l) -eq 16 ]]; then
173 eerror "The line count for secure_getenv() failed, see bug #443030"
174 die
175 fi
176
177 # gperf disable if keymaps are not requested wrt bug #452760
178 if ! [[ $(grep -i gperf Makefile.am | wc -l) -eq 27 ]]; then
179 eerror "The line count for gperf references failed, see bug 452760"
180 die
181 fi
182 fi
183
184 # backport some patches
185 if [[ -n "${patchset}" ]]; then
186 EPATCH_SUFFIX=patch EPATCH_FORCE=yes epatch
187 fi
188
189 # These are missing from upstream 50-udev-default.rules
190 cat <<-EOF > "${T}"/40-gentoo.rules
191 # Gentoo specific usb group
192 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="usb"
193 # Keep this for Linux 2.6.32 kernels with accept4() support like .60 wrt #457868
194 SUBSYSTEM=="mem", KERNEL=="null|zero|full|random|urandom", MODE="0666"
195 EOF
196
197 # Remove requirements for gettext and intltool wrt bug #443028
198 if ! has_version dev-util/intltool && ! [[ ${PV} = 9999* ]]; then
199 sed -i \
200 -e '/INTLTOOL_APPLIED_VERSION=/s:=.*:=0.40.0:' \
201 -e '/XML::Parser perl module is required for intltool/s|^|:|' \
202 configure || die
203 eval export INTLTOOL_{EXTRACT,MERGE,UPDATE}=/bin/true
204 eval export {MSG{FMT,MERGE},XGETTEXT}=/bin/true
205 fi
206
207 # apply user patches
208 epatch_user
209
210 # compile with older versions of gcc #451110
211 version_is_at_least 4.6 $(gcc-version) || \
212 sed -i 's:static_assert:alsdjflkasjdfa:' src/shared/macro.h
213
214 # change rules back to group uucp instead of dialout for now wrt #454556
215 sed -e 's/GROUP="dialout"/GROUP="uucp"/' \
216 -i rules/*.rules \
217 || die "failed to change group dialout to uucp"
218
219 if [[ ! -e configure ]]; then
220 if use doc; then
221 gtkdocize --docdir docs || die "gtkdocize failed"
222 else
223 echo 'EXTRA_DIST =' > docs/gtk-doc.make
224 fi
225 eautoreconf
226 else
227 check_default_rules
228 elibtoolize
229 fi
230
231 if ! use elibc_glibc; then #443030
232 echo '#define secure_getenv(x) NULL' >> config.h.in
233 sed -i -e '/error.*secure_getenv/s:.*:#define secure_getenv(x) NULL:' src/shared/missing.h || die
234 fi
235
236 # link udevd(8) to systemd-udevd.service(8) manpage
237 echo '.so systemd-udevd.service.8' > "${T}"/udevd.8
238 }
239
240 src_configure() {
241 use keymap || export ac_cv_path_GPERF=true #452760
242
243 local econf_args
244
245 econf_args=(
246 ac_cv_search_cap_init=
247 ac_cv_header_sys_capability_h=yes
248 DBUS_CFLAGS=' '
249 DBUS_LIBS=' '
250 --bindir=/bin
251 --docdir=/usr/share/doc/${PF}
252 --libdir=/usr/$(get_libdir)
253 --with-html-dir=/usr/share/doc/${PF}/html
254 --with-rootprefix=
255 --with-rootlibdir=/$(get_libdir)
256 --with-bashcompletiondir=/usr/share/bash-completion
257 --without-python
258 --disable-audit
259 --disable-coredump
260 --disable-hostnamed
261 --disable-ima
262 --disable-libcryptsetup
263 --disable-localed
264 --disable-logind
265 --disable-myhostname
266 --disable-nls
267 --disable-pam
268 --disable-quotacheck
269 --disable-readahead
270 --enable-split-usr
271 --disable-tcpwrap
272 --disable-timedated
273 --disable-xz
274 --disable-polkit
275 $(use_enable acl)
276 $(use_enable doc gtk-doc)
277 $(use_enable gudev)
278 $(use_enable keymap)
279 $(use_enable kmod)
280 $(use_enable selinux)
281 $(use_enable static-libs static)
282 )
283 if use introspection; then
284 econf_args+=(
285 --enable-introspection=$(usex introspection)
286 )
287 fi
288 if use firmware-loader; then
289 econf_args+=(
290 --with-firmware-path="/lib/firmware/updates:/lib/firmware"
291 )
292 fi
293 econf "${econf_args[@]}"
294 }
295
296 src_compile() {
297 echo 'BUILT_SOURCES: $(BUILT_SOURCES)' > "${T}"/Makefile.extra
298 emake -f Makefile -f "${T}"/Makefile.extra BUILT_SOURCES
299 local targets=(
300 libudev-private.la
301 systemd-udevd
302 udevadm
303 libudev.la
304 ata_id
305 cdrom_id
306 collect
307 scsi_id
308 v4l_id
309 accelerometer
310 mtd_probe
311 man/udev.7
312 man/udevadm.8
313 man/systemd-udevd.8
314 man/systemd-udevd.service.8
315 )
316 use keymap && targets+=( keymap )
317 use gudev && targets+=( libgudev-1.0.la )
318
319 emake "${targets[@]}"
320 if use doc; then
321 emake -C docs/libudev
322 use gudev && emake -C docs/gudev
323 fi
324 }
325
326 src_install() {
327 local lib_LTLIBRARIES="libudev.la" \
328 pkgconfiglib_DATA="src/libudev/libudev.pc"
329
330 local targets=(
331 install-libLTLIBRARIES
332 install-includeHEADERS
333 install-libgudev_includeHEADERS
334 install-binPROGRAMS
335 install-rootlibexecPROGRAMS
336 install-udevlibexecPROGRAMS
337 install-dist_udevconfDATA
338 install-dist_udevhomeSCRIPTS
339 install-dist_udevkeymapDATA
340 install-dist_udevkeymapforcerelDATA
341 install-dist_udevrulesDATA
342 install-girDATA
343 install-man7
344 install-man8
345 install-pkgconfiglibDATA
346 install-sharepkgconfigDATA
347 install-typelibsDATA
348 install-dist_docDATA
349 libudev-install-hook
350 install-directories-hook
351 install-dist_bashcompletionDATA
352 )
353
354 if use gudev; then
355 lib_LTLIBRARIES+=" libgudev-1.0.la"
356 pkgconfiglib_DATA+=" src/gudev/gudev-1.0.pc"
357 fi
358
359 # add final values of variables:
360 targets+=(
361 rootlibexec_PROGRAMS=systemd-udevd
362 bin_PROGRAMS=udevadm
363 lib_LTLIBRARIES="${lib_LTLIBRARIES}"
364 MANPAGES="man/udev.7 man/udevadm.8 \
365 man/systemd-udevd.service.8"
366 MANPAGES_ALIAS="man/systemd-udevd.8"
367 pkgconfiglib_DATA="${pkgconfiglib_DATA}"
368 INSTALL_DIRS='$(sysconfdir)/udev/rules.d \
369 $(sysconfdir)/udev/hwdb.d'
370 dist_bashcompletion_DATA="shell-completion/bash/udevadm"
371 )
372 emake -j1 DESTDIR="${D}" "${targets[@]}"
373 if use doc; then
374 emake -C docs/libudev DESTDIR="${D}" install
375 use gudev && emake -C docs/gudev DESTDIR="${D}" install
376 fi
377 dodoc TODO
378
379 prune_libtool_files --all
380 rm -f \
381 "${D}"/lib/udev/rules.d/99-systemd.rules \
382 "${D}"/usr/share/doc/${PF}/LICENSE.*
383
384 # see src_prepare() for content of these files
385 insinto /lib/udev/rules.d
386 doins "${T}"/40-gentoo.rules
387 doman "${T}"/udevd.8
388
389 # install udevadm compatibility symlink
390 dosym {../bin,sbin}/udevadm
391
392 # install udevd to /sbin and remove empty and redudant directory
393 # /lib/systemd because systemd is installed to /usr wrt #462750
394 mv "${D}"/{lib/systemd/systemd-,sbin/}udevd || die
395 rm -r "${D}"/lib/systemd
396 }
397
398 pkg_preinst() {
399 local htmldir
400 for htmldir in gudev libudev; do
401 if [[ -d ${ROOT}usr/share/gtk-doc/html/${htmldir} ]]; then
402 rm -rf "${ROOT}"usr/share/gtk-doc/html/${htmldir}
403 fi
404 if [[ -d ${D}/usr/share/doc/${PF}/html/${htmldir} ]]; then
405 dosym ../../doc/${PF}/html/${htmldir} \
406 /usr/share/gtk-doc/html/${htmldir}
407 fi
408 done
409 preserve_old_lib /{,usr/}$(get_libdir)/libudev$(get_libname 0)
410 }
411
412 pkg_postinst() {
413 mkdir -p "${ROOT}"run
414
415 # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
416 # So try to remove it here (will only work if empty).
417 rmdir "${ROOT}"dev/loop 2>/dev/null
418 if [[ -d ${ROOT}dev/loop ]]; then
419 ewarn "Please make sure your remove /dev/loop,"
420 ewarn "else losetup may be confused when looking for unused devices."
421 fi
422
423 # people want reminders, I'll give them reminders. Odds are they will
424 # just ignore them anyway...
425
426 # 64-device-mapper.rules is related to sys-fs/device-mapper which we block
427 # in favor of sys-fs/lvm2
428 old_dm_rules=${ROOT}etc/udev/rules.d/64-device-mapper.rules
429 if [[ -f ${old_dm_rules} ]]; then
430 rm -f "${old_dm_rules}"
431 einfo "Removed unneeded file ${old_dm_rules}"
432 fi
433
434 local fstab="${ROOT}"etc/fstab dev path fstype rest
435 while read -r dev path fstype rest; do
436 if [[ ${path} == /dev && ${fstype} != devtmpfs ]]; then
437 ewarn "You need to edit your /dev line in ${fstab} to have devtmpfs"
438 ewarn "filesystem. Otherwise udev won't be able to boot."
439 ewarn "See, http://bugs.gentoo.org/453186"
440 fi
441 done < "${fstab}"
442
443 if [[ -d ${ROOT}usr/lib/udev ]]; then
444 ewarn
445 ewarn "Please re-emerge all packages on your system which install"
446 ewarn "rules and helpers in /usr/lib/udev. They should now be in"
447 ewarn "/lib/udev."
448 ewarn
449 ewarn "One way to do this is to run the following command:"
450 ewarn "emerge -av1 \$(qfile -q -S -C /usr/lib/udev)"
451 ewarn "Note that qfile can be found in app-portage/portage-utils"
452 fi
453
454 local old_net_name="${ROOT}"etc/udev/rules.d/80-net-name-slot.rules
455 if [[ -f ${old_net_name} ]]; then
456 local old_net_sum=bebf4bd1b6b668e9ff34a3999aa6ff32
457 MD5=$(md5sum < "${old_net_name}")
458 MD5=${MD5/ -/}
459 if [[ ${MD5} == ${old_net_sum} ]]; then
460 ewarn "Removing unmodified file ${old_net_name} from old udev installation to enable"
461 ewarn "the new predictable network interface naming."
462 rm -f "${old_net_name}"
463 fi
464 fi
465
466 local old_cd_rules="${ROOT}"etc/udev/rules.d/70-persistent-cd.rules
467 local old_net_rules="${ROOT}"etc/udev/rules.d/70-persistent-net.rules
468 for old_rules in "${old_cd_rules}" "${old_net_rules}"; do
469 if [[ -f ${old_rules} ]]; then
470 ewarn
471 ewarn "File ${old_rules} is from old udev installation but if you still use it,"
472 ewarn "rename it to something else starting with 70- to silence this deprecation"
473 ewarn "warning."
474 fi
475 done
476
477 if has_version sys-apps/biosdevname; then
478 ewarn
479 ewarn "You have sys-apps/biosdevname installed which has been deprecated"
480 ewarn "in favor of the predictable network interface names."
481 fi
482
483 ewarn
484 ewarn "The new predictable network interface names are used by default, see:"
485 ewarn "http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames"
486 ewarn
487 ewarn "Example command to get the information for the new interface name before booting"
488 ewarn "(replace <ifname> with, for example, eth0):"
489 ewarn "# udevadm test-builtin net_id /sys/class/net/<ifname> 2> /dev/null"
490 ewarn
491 ewarn "You can use kernel command net.ifnames= to control this feature."
492
493 ewarn
494 ewarn "You need to restart udev as soon as possible to make the upgrade go"
495 ewarn "into effect."
496 ewarn "The method you use to do this depends on your init system."
497
498 preserve_old_lib_notify /{,usr/}$(get_libdir)/libudev$(get_libname 0)
499
500 elog
501 elog "For more information on udev on Gentoo, writing udev rules, and"
502 elog " fixing known issues visit:"
503 elog " http://www.gentoo.org/doc/en/udev-guide.xml"
504
505 # Keep this here in case the database format changes so it gets updated
506 # when required. Despite that this file is owned by sys-apps/hwids.
507 if use hwdb && has_version sys-apps/hwids; then
508 udevadm hwdb --update --root="${ROOT%/}"
509 fi
510 }