Gentoo Archives: gentoo-commits

From: "Matthias Schwarzott (zzam)" <zzam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-fs/udev: ChangeLog udev-167-r1.ebuild
Date: Sun, 03 Apr 2011 12:17:11
Message-Id: 20110403121700.9039220054@flycatcher.gentoo.org
1 zzam 11/04/03 12:17:00
2
3 Modified: ChangeLog
4 Added: udev-167-r1.ebuild
5 Log:
6 Let USE=-extras still build important utils like ata_id and usb_id. Backported from udev-168.
7
8 (Portage version: 2.1.9.45/cvs/Linux x86_64)
9
10 Revision Changes Path
11 1.568 sys-fs/udev/ChangeLog
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/ChangeLog?rev=1.568&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/ChangeLog?rev=1.568&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/ChangeLog?r1=1.567&r2=1.568
16
17 Index: ChangeLog
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v
20 retrieving revision 1.567
21 retrieving revision 1.568
22 diff -u -r1.567 -r1.568
23 --- ChangeLog 30 Mar 2011 19:06:57 -0000 1.567
24 +++ ChangeLog 3 Apr 2011 12:17:00 -0000 1.568
25 @@ -1,6 +1,13 @@
26 # ChangeLog for sys-fs/udev
27 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
28 -# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.567 2011/03/30 19:06:57 zzam Exp $
29 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.568 2011/04/03 12:17:00 zzam Exp $
30 +
31 +*udev-167-r1 (03 Apr 2011)
32 +
33 + 03 Apr 2011; Matthias Schwarzott <zzam@g.o> +udev-167-r1.ebuild,
34 + +files/udev-167-revert-disable-all-extras.patch:
35 + Let USE=-extras still build important utils like ata_id and usb_id.
36 + Backported from udev-168.
37
38 *udev-167 (30 Mar 2011)
39
40
41
42
43 1.1 sys-fs/udev/udev-167-r1.ebuild
44
45 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/udev-167-r1.ebuild?rev=1.1&view=markup
46 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/udev-167-r1.ebuild?rev=1.1&content-type=text/plain
47
48 Index: udev-167-r1.ebuild
49 ===================================================================
50 # Copyright 1999-2011 Gentoo Foundation
51 # Distributed under the terms of the GNU General Public License v2
52 # $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/udev-167-r1.ebuild,v 1.1 2011/04/03 12:17:00 zzam Exp $
53
54 EAPI="1"
55
56 inherit eutils flag-o-matic multilib toolchain-funcs linux-info
57
58 #PATCHSET=${P}-gentoo-patchset-v1
59 scriptversion=164-v2
60 scriptname=${PN}-gentoo-scripts-${scriptversion}
61
62 if [[ ${PV} == "9999" ]]; then
63 EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/hotplug/udev.git"
64 EGIT_BRANCH="master"
65 inherit git autotools
66 else
67 # please update testsys-tarball whenever udev-xxx/test/sys/ is changed
68 SRC_URI="mirror://kernel/linux/utils/kernel/hotplug/${P}.tar.bz2
69 test? ( mirror://gentoo/${PN}-151-testsys.tar.bz2 )
70 mirror://gentoo/${scriptname}.tar.bz2"
71 [[ -n "${PATCHSET}" ]] && SRC_URI="${SRC_URI} mirror://gentoo/${PATCHSET}.tar.bz2"
72 fi
73 DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
74 HOMEPAGE="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
75
76 LICENSE="GPL-2"
77 SLOT="0"
78 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
79 IUSE="selinux extras test"
80
81 COMMON_DEPEND="selinux? ( sys-libs/libselinux )
82 extras? (
83 sys-apps/acl
84 >=sys-apps/usbutils-0.82
85 virtual/libusb:0
86 sys-apps/pciutils
87 dev-libs/glib:2
88 )
89 >=sys-apps/util-linux-2.16
90 >=sys-libs/glibc-2.9"
91
92 DEPEND="${COMMON_DEPEND}
93 extras? (
94 dev-util/gperf
95 dev-util/pkgconfig
96 )
97 virtual/os-headers
98 !<sys-kernel/linux-headers-2.6.29
99 test? ( app-text/tree )"
100
101 RDEPEND="${COMMON_DEPEND}
102 !sys-apps/coldplug
103 !<sys-fs/lvm2-2.02.45
104 !sys-fs/device-mapper
105 >=sys-apps/baselayout-1.12.5"
106
107 if [[ ${PV} == "9999" ]]; then
108 # for documentation processing with xsltproc
109 DEPEND="${DEPEND}
110 app-text/docbook-xsl-stylesheets
111 app-text/docbook-xml-dtd
112 dev-util/gtk-doc"
113 fi
114
115 # required kernel options
116 CONFIG_CHECK="~INOTIFY_USER ~SIGNALFD ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2
117 ~!IDE"
118
119 # We need the lib/rcscripts/addon support
120 PROVIDE="virtual/dev-manager"
121
122 udev_check_KV() {
123 local ok=0
124 if [[ ${KV_MAJOR} == 2 && ${KV_MINOR} == 6 ]]
125 then
126 if kernel_is -ge 2 6 ${KV_PATCH_reliable} ; then
127 ok=2
128 elif kernel_is -ge 2 6 ${KV_PATCH_min} ; then
129 ok=1
130 fi
131 fi
132 return $ok
133 }
134
135 pkg_setup() {
136 linux-info_pkg_setup
137
138 udev_libexec_dir="/$(get_libdir)/udev"
139
140 # udev requires signalfd introduced in kernel 2.6.25,
141 # but a glibc compiled against >=linux-headers-2.6.27 uses the
142 # new signalfd syscall introduced in kernel 2.6.27 without falling back
143 # to the old one. So we just depend on 2.6.27 here, see Bug #281312.
144 KV_PATCH_min=25
145 KV_PATCH_reliable=27
146 KV_min=2.6.${KV_PATCH_min}
147 KV_reliable=2.6.${KV_PATCH_reliable}
148
149 # always print kernel version requirements
150 ewarn
151 ewarn "${P} does not support Linux kernel before version ${KV_min}!"
152 if [[ ${KV_PATCH_min} != ${KV_PATCH_reliable} ]]; then
153 ewarn "For a reliable udev, use at least kernel ${KV_reliable}"
154 fi
155
156 echo
157 # We don't care about the secondary revision of the kernel.
158 # 2.6.30.4 -> 2.6.30 is all we check
159 udev_check_KV
160 case "$?" in
161 2) einfo "Your kernel version (${KV_FULL}) is new enough to run ${P} reliably." ;;
162 1) ewarn "Your kernel version (${KV_FULL}) is new enough to run ${P},"
163 ewarn "but it may be unreliable in some cases."
164 ebeep ;;
165 0) eerror "Your kernel version (${KV_FULL}) is too old to run ${P}"
166 ebeep ;;
167 esac
168 echo
169
170 KV_FULL_SRC=${KV_FULL}
171 get_running_version
172 udev_check_KV
173 if [[ "$?" = "0" ]]; then
174 eerror
175 eerror "udev cannot be restarted after emerging,"
176 eerror "as your running kernel version (${KV_FULL}) is too old."
177 eerror "You really need to use a newer kernel after a reboot!"
178 NO_RESTART=1
179 ebeep
180 fi
181 }
182
183 sed_libexec_dir() {
184 sed -e "s#/lib/udev#${udev_libexec_dir}#" -i "$@"
185 }
186
187 src_unpack() {
188 if [[ ${PV} == "9999" ]] ; then
189 git_src_unpack
190 else
191 unpack ${A}
192
193 if use test; then
194 mv "${WORKDIR}"/test/sys "${S}"/test/
195 fi
196 fi
197
198 #cd "${WORKDIR}/${scriptname}"
199
200 cd "${S}"
201
202 # patches go here...
203 epatch "${FILESDIR}/udev-167-revert-disable-all-extras.patch"
204
205 # backport some patches
206 if [[ -n "${PATCHSET}" ]]; then
207 EPATCH_SOURCE="${WORKDIR}/${PATCHSET}" EPATCH_SUFFIX="patch" \
208 EPATCH_FORCE="yes" epatch
209 fi
210
211 # change rules back to group uucp instead of dialout for now
212 sed -e 's/GROUP="dialout"/GROUP="uucp"/' \
213 -i rules/{rules.d,arch}/*.rules \
214 || die "failed to change group dialout to uucp"
215
216 if [[ ${PV} != 9999 ]]; then
217 # Make sure there is no sudden changes to upstream rules file
218 # (more for my own needs than anything else ...)
219 MD5=$(md5sum < "${S}/rules/rules.d/50-udev-default.rules")
220 MD5=${MD5/ -/}
221 if [[ ${MD5} != a9954d57e97aa0ad2e0ed53899d9559a ]]
222 then
223 echo
224 eerror "50-udev-default.rules has been updated, please validate!"
225 eerror "md5sum: ${MD5}"
226 die "50-udev-default.rules has been updated, please validate!"
227 fi
228 fi
229
230 sed_libexec_dir \
231 rules/rules.d/50-udev-default.rules \
232 rules/rules.d/78-sound-card.rules \
233 extras/rule_generator/write_*_rules \
234 || die "sed failed"
235
236 if [[ ${PV} == 9999 ]]; then
237 gtkdocize --copy
238 eautoreconf
239 fi
240
241 cd "${WORKDIR}/${scriptname}"
242 sed_libexec_dir \
243 helpers/* \
244 rc/*/*
245 }
246
247 src_compile() {
248 filter-flags -fprefetch-loop-arrays
249
250 econf \
251 --prefix=/usr \
252 --sysconfdir=/etc \
253 --sbindir=/sbin \
254 --libdir=/usr/$(get_libdir) \
255 --with-rootlibdir=/$(get_libdir) \
256 --libexecdir="${udev_libexec_dir}" \
257 --enable-logging \
258 --enable-static \
259 $(use_with selinux) \
260 $(use_enable extras) \
261 --disable-introspection
262 # we don't have gobject-introspection in portage tree
263
264 emake || die "compiling udev failed"
265 }
266
267 src_install() {
268 emake -C "${WORKDIR}/${scriptname}" \
269 DESTDIR="${D}" LIBDIR="$(get_libdir)" \
270 KV_min="${KV_min}" KV_reliable="${KV_reliable}" \
271 install || die "make install failed"
272
273 into /
274 emake DESTDIR="${D}" install || die "make install failed"
275
276 exeinto "${udev_libexec_dir}"
277 keepdir "${udev_libexec_dir}"/state
278 keepdir "${udev_libexec_dir}"/devices
279
280 # create symlinks for these utilities to /sbin
281 # where multipath-tools expect them to be (Bug #168588)
282 dosym "..${udev_libexec_dir}/scsi_id" /sbin/scsi_id
283
284 # Add gentoo stuff to udev.conf
285 echo "# If you need to change mount-options, do it in /etc/fstab" \
286 >> "${D}"/etc/udev/udev.conf
287
288 # let the dir exist at least
289 keepdir /etc/udev/rules.d
290
291 # Now installing rules
292 cd "${S}"/rules
293 insinto "${udev_libexec_dir}"/rules.d/
294
295 # support older kernels
296 doins misc/30-kernel-compat.rules
297
298 # Adding arch specific rules
299 if [[ -f arch/40-${ARCH}.rules ]]
300 then
301 doins "arch/40-${ARCH}.rules"
302 fi
303 cd "${S}"
304
305 insinto /etc/modprobe.d
306 newins "${FILESDIR}"/blacklist-146 blacklist.conf
307 newins "${FILESDIR}"/pnp-aliases pnp-aliases.conf
308
309 # documentation
310 dodoc ChangeLog README TODO || die "failed installing docs"
311
312 # keep doc in just one directory, Bug #281137
313 rm -rf "${D}/usr/share/doc/${PN}"
314 if use extras; then
315 dodoc extras/keymap/README.keymap.txt || die "failed installing docs"
316 fi
317 }
318
319 pkg_preinst() {
320 # moving old files to support newer modprobe, 12 May 2009
321 local f dir=${ROOT}/etc/modprobe.d/
322 for f in pnp-aliases blacklist; do
323 if [[ -f $dir/$f && ! -f $dir/$f.conf ]]
324 then
325 elog "Moving $dir/$f to $f.conf"
326 mv -f "$dir/$f" "$dir/$f.conf"
327 fi
328 done
329
330 if [[ -d ${ROOT}/lib/udev-state ]]
331 then
332 mv -f "${ROOT}"/lib/udev-state/* "${D}"/lib/udev/state/
333 rm -r "${ROOT}"/lib/udev-state
334 fi
335
336 if [[ -f ${ROOT}/etc/udev/udev.config &&
337 ! -f ${ROOT}/etc/udev/udev.rules ]]
338 then
339 mv -f "${ROOT}"/etc/udev/udev.config "${ROOT}"/etc/udev/udev.rules
340 fi
341
342 # delete the old udev.hotplug symlink if it is present
343 if [[ -h ${ROOT}/etc/hotplug.d/default/udev.hotplug ]]
344 then
345 rm -f "${ROOT}"/etc/hotplug.d/default/udev.hotplug
346 fi
347
348 # delete the old wait_for_sysfs.hotplug symlink if it is present
349 if [[ -h ${ROOT}/etc/hotplug.d/default/05-wait_for_sysfs.hotplug ]]
350 then
351 rm -f "${ROOT}"/etc/hotplug.d/default/05-wait_for_sysfs.hotplug
352 fi
353
354 # delete the old wait_for_sysfs.hotplug symlink if it is present
355 if [[ -h ${ROOT}/etc/hotplug.d/default/10-udev.hotplug ]]
356 then
357 rm -f "${ROOT}"/etc/hotplug.d/default/10-udev.hotplug
358 fi
359
360 has_version "=${CATEGORY}/${PN}-103-r3"
361 previous_equal_to_103_r3=$?
362
363 has_version "<${CATEGORY}/${PN}-104-r5"
364 previous_less_than_104_r5=$?
365
366 has_version "<${CATEGORY}/${PN}-106-r5"
367 previous_less_than_106_r5=$?
368
369 has_version "<${CATEGORY}/${PN}-113"
370 previous_less_than_113=$?
371 }
372
373 # 19 Nov 2008
374 fix_old_persistent_net_rules() {
375 local rules=${ROOT}/etc/udev/rules.d/70-persistent-net.rules
376 [[ -f ${rules} ]] || return
377
378 elog
379 elog "Updating persistent-net rules file"
380
381 # Change ATTRS to ATTR matches, Bug #246927
382 sed -i -e 's/ATTRS{/ATTR{/g' "${rules}"
383
384 # Add KERNEL matches if missing, Bug #246849
385 sed -ri \
386 -e '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \
387 "${rules}"
388 }
389
390 # See Bug #129204 for a discussion about restarting udevd
391 restart_udevd() {
392 if [[ ${NO_RESTART} = "1" ]]; then
393 ewarn "Not restarting udevd, as your kernel is too old!"
394 return
395 fi
396
397 # need to merge to our system
398 [[ ${ROOT} = / ]] || return
399
400 # check if root of init-process is identical to ours (not in chroot)
401 [[ -r /proc/1/root && /proc/1/root/ -ef /proc/self/root/ ]] || return
402
403 # abort if there is no udevd running
404 [[ -n $(pidof udevd) ]] || return
405
406 # abort if no /dev/.udev exists
407 [[ -e /dev/.udev ]] || return
408
409 elog
410 elog "restarting udevd now."
411
412 killall -15 udevd &>/dev/null
413 sleep 1
414 killall -9 udevd &>/dev/null
415
416 /sbin/udevd --daemon
417 sleep 3
418 if [[ ! -n $(pidof udevd) ]]; then
419 eerror "FATAL: udev died, please check your kernel is"
420 eerror "new enough and configured correctly for ${P}."
421 eerror
422 eerror "Please have a look at this before rebooting."
423 eerror "If in doubt, please downgrade udev back to your old version"
424 ebeep
425 fi
426 }
427
428 postinst_init_scripts() {
429 # FIXME: we may need some code that detects if this is a system bootstrap
430 # and auto-enables udev then
431 #
432 # FIXME: inconsistent handling of init-scripts here
433 # * udev is added to sysinit in openrc-ebuild
434 # * we add udev-postmount to default in here
435 #
436
437 # migration to >=openrc-0.4
438 if [[ -e "${ROOT}"/etc/runlevels/sysinit && ! -e "${ROOT}"/etc/runlevels/sysinit/udev ]]
439 then
440 ewarn
441 ewarn "You need to add the udev init script to the runlevel sysinit,"
442 ewarn "else your system will not be able to boot"
443 ewarn "after updating to >=openrc-0.4.0"
444 ewarn "Run this to enable udev for >=openrc-0.4.0:"
445 ewarn "\trc-update add udev sysinit"
446 ewarn
447 fi
448
449 # add udev-postmount to default runlevel instead of that ugly injecting
450 # like a hotplug event, 2009/10/15
451
452 # already enabled?
453 [[ -e "${ROOT}"/etc/runlevels/default/udev-postmount ]] && return
454
455 local enable_postmount=0
456 [[ -e "${ROOT}"/etc/runlevels/sysinit/udev ]] && enable_postmount=1
457 [[ "${ROOT}" = "/" && -d /dev/.udev/ ]] && enable_postmount=1
458
459 if [[ ${enable_postmount} = 1 ]]
460 then
461 local initd=udev-postmount
462
463 if [[ -e ${ROOT}/etc/init.d/${initd} ]] && \
464 [[ ! -e ${ROOT}/etc/runlevels/default/${initd} ]]
465 then
466 ln -snf /etc/init.d/${initd} "${ROOT}"/etc/runlevels/default/${initd}
467 elog "Auto-adding '${initd}' service to your default runlevel"
468 fi
469 else
470 elog "You should add the udev-postmount service to default runlevel."
471 elog "Run this to add it:"
472 elog "\trc-update add udev-postmount default"
473 fi
474 }
475
476 pkg_postinst() {
477 fix_old_persistent_net_rules
478
479 # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
480 # So try to remove it here (will only work if empty).
481 rmdir "${ROOT}"/dev/loop 2>/dev/null
482 if [[ -d "${ROOT}"/dev/loop ]]; then
483 ewarn "Please make sure your remove /dev/loop,"
484 ewarn "else losetup may be confused when looking for unused devices."
485 fi
486
487 restart_udevd
488
489 postinst_init_scripts
490
491 # people want reminders, I'll give them reminders. Odds are they will
492 # just ignore them anyway...
493
494 # delete 40-scsi-hotplug.rules, it is integrated in 50-udev.rules, 19 Jan 2007
495 if [[ $previous_equal_to_103_r3 = 0 ]] &&
496 [[ -e ${ROOT}/etc/udev/rules.d/40-scsi-hotplug.rules ]]
497 then
498 ewarn "Deleting stray 40-scsi-hotplug.rules"
499 ewarn "installed by sys-fs/udev-103-r3"
500 rm -f "${ROOT}"/etc/udev/rules.d/40-scsi-hotplug.rules
501 fi
502
503 # Removing some device-nodes we thought we need some time ago, 25 Jan 2007
504 if [[ -d ${ROOT}/lib/udev/devices ]]
505 then
506 rm -f "${ROOT}"/lib/udev/devices/{null,zero,console,urandom}
507 fi
508
509 # Removing some old file, 29 Jan 2007
510 if [[ $previous_less_than_104_r5 = 0 ]]
511 then
512 rm -f "${ROOT}"/etc/dev.d/net/hotplug.dev
513 rmdir --ignore-fail-on-non-empty "${ROOT}"/etc/dev.d/net 2>/dev/null
514 fi
515
516 # 19 Mar 2007
517 if [[ $previous_less_than_106_r5 = 0 ]] &&
518 [[ -e ${ROOT}/etc/udev/rules.d/95-net.rules ]]
519 then
520 rm -f "${ROOT}"/etc/udev/rules.d/95-net.rules
521 fi
522
523 # Try to remove /etc/dev.d as that is obsolete, 23 Apr 2007
524 if [[ -d ${ROOT}/etc/dev.d ]]
525 then
526 rmdir --ignore-fail-on-non-empty "${ROOT}"/etc/dev.d/default "${ROOT}"/etc/dev.d 2>/dev/null
527 if [[ -d ${ROOT}/etc/dev.d ]]
528 then
529 ewarn "You still have the directory /etc/dev.d on your system."
530 ewarn "This is no longer used by udev and can be removed."
531 fi
532 fi
533
534 # 64-device-mapper.rules now gets installed by sys-fs/device-mapper
535 # remove it if user don't has sys-fs/device-mapper installed, 27 Jun 2007
536 if [[ $previous_less_than_113 = 0 ]] &&
537 [[ -f ${ROOT}/etc/udev/rules.d/64-device-mapper.rules ]] &&
538 ! has_version sys-fs/device-mapper
539 then
540 rm -f "${ROOT}"/etc/udev/rules.d/64-device-mapper.rules
541 einfo "Removed unneeded file 64-device-mapper.rules"
542 fi
543
544 # requested in bug #275974, added 2009/09/05
545 ewarn
546 ewarn "If after the udev update removable devices or CD/DVD drives"
547 ewarn "stop working, try re-emerging HAL before filling a bug report"
548
549 # requested in Bug #225033:
550 elog
551 elog "persistent-net does assigning fixed names to network devices."
552 elog "If you have problems with the persistent-net rules,"
553 elog "just delete the rules file"
554 elog "\trm ${ROOT}etc/udev/rules.d/70-persistent-net.rules"
555 elog "and then reboot."
556 elog
557 elog "This may however number your devices in a different way than they are now."
558
559 ewarn
560 ewarn "If you build an initramfs including udev, then please"
561 ewarn "make sure that the /sbin/udevadm binary gets included,"
562 ewarn "and your scripts changed to use it,as it replaces the"
563 ewarn "old helper apps udevinfo, udevtrigger, ..."
564
565 ewarn
566 ewarn "mount options for directory /dev are no longer"
567 ewarn "set in /etc/udev/udev.conf, but in /etc/fstab"
568 ewarn "as for other directories."
569
570 ewarn
571 ewarn "If you use /dev/md/*, /dev/loop/* or /dev/rd/*,"
572 ewarn "then please migrate over to using the device names"
573 ewarn "/dev/md*, /dev/loop* and /dev/ram*."
574 ewarn "The devfs-compat rules have been removed."
575 ewarn "For reference see Bug #269359."
576
577 ewarn
578 ewarn "Rules for /dev/hd* devices have been removed"
579 ewarn "Please migrate to libata."
580
581 elog
582 elog "For more information on udev on Gentoo, writing udev rules, and"
583 elog " fixing known issues visit:"
584 elog " http://www.gentoo.org/doc/en/udev-guide.xml"
585 }