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: udev-167.ebuild ChangeLog
Date: Wed, 30 Mar 2011 19:07:07
Message-Id: 20110330190657.AADAC20054@flycatcher.gentoo.org
1 zzam 11/03/30 19:06:57
2
3 Modified: ChangeLog
4 Added: udev-167.ebuild
5 Log:
6 Version bumped. udev-167 defaults to using subdir udev in /run if it exists, but as this does not exist on gentoo, it normally falls back to using /dev/.udev, so this is fine.
7
8 (Portage version: 2.1.9.45/cvs/Linux x86_64)
9
10 Revision Changes Path
11 1.567 sys-fs/udev/ChangeLog
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/ChangeLog?rev=1.567&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/ChangeLog?rev=1.567&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/ChangeLog?r1=1.566&r2=1.567
16
17 Index: ChangeLog
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v
20 retrieving revision 1.566
21 retrieving revision 1.567
22 diff -u -r1.566 -r1.567
23 --- ChangeLog 30 Mar 2011 19:03:22 -0000 1.566
24 +++ ChangeLog 30 Mar 2011 19:06:57 -0000 1.567
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.566 2011/03/30 19:03:22 zzam Exp $
29 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/ChangeLog,v 1.567 2011/03/30 19:06:57 zzam Exp $
30 +
31 +*udev-167 (30 Mar 2011)
32 +
33 + 30 Mar 2011; Matthias Schwarzott <zzam@g.o> +udev-167.ebuild:
34 + Version bumped. udev-167 defaults to using subdir udev in /run if it exists,
35 + but as this does not exist on gentoo, it normally falls back to using
36 + /dev/.udev, so this is fine.
37
38 30 Mar 2011; Matthias Schwarzott <zzam@g.o> udev-164-r2.ebuild,
39 -files/udev-164-remove-noopenvz.patch:
40
41
42
43 1.1 sys-fs/udev/udev-167.ebuild
44
45 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/udev-167.ebuild?rev=1.1&view=markup
46 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-fs/udev/udev-167.ebuild?rev=1.1&content-type=text/plain
47
48 Index: udev-167.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.ebuild,v 1.1 2011/03/30 19:06:57 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
204 # backport some patches
205 if [[ -n "${PATCHSET}" ]]; then
206 EPATCH_SOURCE="${WORKDIR}/${PATCHSET}" EPATCH_SUFFIX="patch" \
207 EPATCH_FORCE="yes" epatch
208 fi
209
210 # change rules back to group uucp instead of dialout for now
211 sed -e 's/GROUP="dialout"/GROUP="uucp"/' \
212 -i rules/{rules.d,arch}/*.rules \
213 || die "failed to change group dialout to uucp"
214
215 if [[ ${PV} != 9999 ]]; then
216 # Make sure there is no sudden changes to upstream rules file
217 # (more for my own needs than anything else ...)
218 MD5=$(md5sum < "${S}/rules/rules.d/50-udev-default.rules")
219 MD5=${MD5/ -/}
220 if [[ ${MD5} != a9954d57e97aa0ad2e0ed53899d9559a ]]
221 then
222 echo
223 eerror "50-udev-default.rules has been updated, please validate!"
224 eerror "md5sum: ${MD5}"
225 die "50-udev-default.rules has been updated, please validate!"
226 fi
227 fi
228
229 sed_libexec_dir \
230 rules/rules.d/50-udev-default.rules \
231 rules/rules.d/78-sound-card.rules \
232 extras/rule_generator/write_*_rules \
233 || die "sed failed"
234
235 if [[ ${PV} == 9999 ]]; then
236 gtkdocize --copy
237 eautoreconf
238 fi
239
240 cd "${WORKDIR}/${scriptname}"
241 sed_libexec_dir \
242 helpers/* \
243 rc/*/*
244 }
245
246 src_compile() {
247 filter-flags -fprefetch-loop-arrays
248
249 econf \
250 --prefix=/usr \
251 --sysconfdir=/etc \
252 --sbindir=/sbin \
253 --libdir=/usr/$(get_libdir) \
254 --with-rootlibdir=/$(get_libdir) \
255 --libexecdir="${udev_libexec_dir}" \
256 --enable-logging \
257 --enable-static \
258 $(use_with selinux) \
259 $(use_enable extras) \
260 --disable-introspection
261 # we don't have gobject-introspection in portage tree
262
263 emake || die "compiling udev failed"
264 }
265
266 src_install() {
267 emake -C "${WORKDIR}/${scriptname}" \
268 DESTDIR="${D}" LIBDIR="$(get_libdir)" \
269 KV_min="${KV_min}" KV_reliable="${KV_reliable}" \
270 install || die "make install failed"
271
272 into /
273 emake DESTDIR="${D}" install || die "make install failed"
274
275 exeinto "${udev_libexec_dir}"
276 keepdir "${udev_libexec_dir}"/state
277 keepdir "${udev_libexec_dir}"/devices
278
279 # create symlinks for these utilities to /sbin
280 # where multipath-tools expect them to be (Bug #168588)
281 dosym "..${udev_libexec_dir}/scsi_id" /sbin/scsi_id
282
283 # Add gentoo stuff to udev.conf
284 echo "# If you need to change mount-options, do it in /etc/fstab" \
285 >> "${D}"/etc/udev/udev.conf
286
287 # let the dir exist at least
288 keepdir /etc/udev/rules.d
289
290 # Now installing rules
291 cd "${S}"/rules
292 insinto "${udev_libexec_dir}"/rules.d/
293
294 # support older kernels
295 doins misc/30-kernel-compat.rules
296
297 # Adding arch specific rules
298 if [[ -f arch/40-${ARCH}.rules ]]
299 then
300 doins "arch/40-${ARCH}.rules"
301 fi
302 cd "${S}"
303
304 insinto /etc/modprobe.d
305 newins "${FILESDIR}"/blacklist-146 blacklist.conf
306 newins "${FILESDIR}"/pnp-aliases pnp-aliases.conf
307
308 # documentation
309 dodoc ChangeLog README TODO || die "failed installing docs"
310
311 # keep doc in just one directory, Bug #281137
312 rm -rf "${D}/usr/share/doc/${PN}"
313 if use extras; then
314 dodoc extras/keymap/README.keymap.txt || die "failed installing docs"
315 fi
316 }
317
318 pkg_preinst() {
319 # moving old files to support newer modprobe, 12 May 2009
320 local f dir=${ROOT}/etc/modprobe.d/
321 for f in pnp-aliases blacklist; do
322 if [[ -f $dir/$f && ! -f $dir/$f.conf ]]
323 then
324 elog "Moving $dir/$f to $f.conf"
325 mv -f "$dir/$f" "$dir/$f.conf"
326 fi
327 done
328
329 if [[ -d ${ROOT}/lib/udev-state ]]
330 then
331 mv -f "${ROOT}"/lib/udev-state/* "${D}"/lib/udev/state/
332 rm -r "${ROOT}"/lib/udev-state
333 fi
334
335 if [[ -f ${ROOT}/etc/udev/udev.config &&
336 ! -f ${ROOT}/etc/udev/udev.rules ]]
337 then
338 mv -f "${ROOT}"/etc/udev/udev.config "${ROOT}"/etc/udev/udev.rules
339 fi
340
341 # delete the old udev.hotplug symlink if it is present
342 if [[ -h ${ROOT}/etc/hotplug.d/default/udev.hotplug ]]
343 then
344 rm -f "${ROOT}"/etc/hotplug.d/default/udev.hotplug
345 fi
346
347 # delete the old wait_for_sysfs.hotplug symlink if it is present
348 if [[ -h ${ROOT}/etc/hotplug.d/default/05-wait_for_sysfs.hotplug ]]
349 then
350 rm -f "${ROOT}"/etc/hotplug.d/default/05-wait_for_sysfs.hotplug
351 fi
352
353 # delete the old wait_for_sysfs.hotplug symlink if it is present
354 if [[ -h ${ROOT}/etc/hotplug.d/default/10-udev.hotplug ]]
355 then
356 rm -f "${ROOT}"/etc/hotplug.d/default/10-udev.hotplug
357 fi
358
359 has_version "=${CATEGORY}/${PN}-103-r3"
360 previous_equal_to_103_r3=$?
361
362 has_version "<${CATEGORY}/${PN}-104-r5"
363 previous_less_than_104_r5=$?
364
365 has_version "<${CATEGORY}/${PN}-106-r5"
366 previous_less_than_106_r5=$?
367
368 has_version "<${CATEGORY}/${PN}-113"
369 previous_less_than_113=$?
370 }
371
372 # 19 Nov 2008
373 fix_old_persistent_net_rules() {
374 local rules=${ROOT}/etc/udev/rules.d/70-persistent-net.rules
375 [[ -f ${rules} ]] || return
376
377 elog
378 elog "Updating persistent-net rules file"
379
380 # Change ATTRS to ATTR matches, Bug #246927
381 sed -i -e 's/ATTRS{/ATTR{/g' "${rules}"
382
383 # Add KERNEL matches if missing, Bug #246849
384 sed -ri \
385 -e '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \
386 "${rules}"
387 }
388
389 # See Bug #129204 for a discussion about restarting udevd
390 restart_udevd() {
391 if [[ ${NO_RESTART} = "1" ]]; then
392 ewarn "Not restarting udevd, as your kernel is too old!"
393 return
394 fi
395
396 # need to merge to our system
397 [[ ${ROOT} = / ]] || return
398
399 # check if root of init-process is identical to ours (not in chroot)
400 [[ -r /proc/1/root && /proc/1/root/ -ef /proc/self/root/ ]] || return
401
402 # abort if there is no udevd running
403 [[ -n $(pidof udevd) ]] || return
404
405 # abort if no /dev/.udev exists
406 [[ -e /dev/.udev ]] || return
407
408 elog
409 elog "restarting udevd now."
410
411 killall -15 udevd &>/dev/null
412 sleep 1
413 killall -9 udevd &>/dev/null
414
415 /sbin/udevd --daemon
416 sleep 3
417 if [[ ! -n $(pidof udevd) ]]; then
418 eerror "FATAL: udev died, please check your kernel is"
419 eerror "new enough and configured correctly for ${P}."
420 eerror
421 eerror "Please have a look at this before rebooting."
422 eerror "If in doubt, please downgrade udev back to your old version"
423 ebeep
424 fi
425 }
426
427 postinst_init_scripts() {
428 # FIXME: we may need some code that detects if this is a system bootstrap
429 # and auto-enables udev then
430 #
431 # FIXME: inconsistent handling of init-scripts here
432 # * udev is added to sysinit in openrc-ebuild
433 # * we add udev-postmount to default in here
434 #
435
436 # migration to >=openrc-0.4
437 if [[ -e "${ROOT}"/etc/runlevels/sysinit && ! -e "${ROOT}"/etc/runlevels/sysinit/udev ]]
438 then
439 ewarn
440 ewarn "You need to add the udev init script to the runlevel sysinit,"
441 ewarn "else your system will not be able to boot"
442 ewarn "after updating to >=openrc-0.4.0"
443 ewarn "Run this to enable udev for >=openrc-0.4.0:"
444 ewarn "\trc-update add udev sysinit"
445 ewarn
446 fi
447
448 # add udev-postmount to default runlevel instead of that ugly injecting
449 # like a hotplug event, 2009/10/15
450
451 # already enabled?
452 [[ -e "${ROOT}"/etc/runlevels/default/udev-postmount ]] && return
453
454 local enable_postmount=0
455 [[ -e "${ROOT}"/etc/runlevels/sysinit/udev ]] && enable_postmount=1
456 [[ "${ROOT}" = "/" && -d /dev/.udev/ ]] && enable_postmount=1
457
458 if [[ ${enable_postmount} = 1 ]]
459 then
460 local initd=udev-postmount
461
462 if [[ -e ${ROOT}/etc/init.d/${initd} ]] && \
463 [[ ! -e ${ROOT}/etc/runlevels/default/${initd} ]]
464 then
465 ln -snf /etc/init.d/${initd} "${ROOT}"/etc/runlevels/default/${initd}
466 elog "Auto-adding '${initd}' service to your default runlevel"
467 fi
468 else
469 elog "You should add the udev-postmount service to default runlevel."
470 elog "Run this to add it:"
471 elog "\trc-update add udev-postmount default"
472 fi
473 }
474
475 pkg_postinst() {
476 fix_old_persistent_net_rules
477
478 # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
479 # So try to remove it here (will only work if empty).
480 rmdir "${ROOT}"/dev/loop 2>/dev/null
481 if [[ -d "${ROOT}"/dev/loop ]]; then
482 ewarn "Please make sure your remove /dev/loop,"
483 ewarn "else losetup may be confused when looking for unused devices."
484 fi
485
486 restart_udevd
487
488 postinst_init_scripts
489
490 # people want reminders, I'll give them reminders. Odds are they will
491 # just ignore them anyway...
492
493 # delete 40-scsi-hotplug.rules, it is integrated in 50-udev.rules, 19 Jan 2007
494 if [[ $previous_equal_to_103_r3 = 0 ]] &&
495 [[ -e ${ROOT}/etc/udev/rules.d/40-scsi-hotplug.rules ]]
496 then
497 ewarn "Deleting stray 40-scsi-hotplug.rules"
498 ewarn "installed by sys-fs/udev-103-r3"
499 rm -f "${ROOT}"/etc/udev/rules.d/40-scsi-hotplug.rules
500 fi
501
502 # Removing some device-nodes we thought we need some time ago, 25 Jan 2007
503 if [[ -d ${ROOT}/lib/udev/devices ]]
504 then
505 rm -f "${ROOT}"/lib/udev/devices/{null,zero,console,urandom}
506 fi
507
508 # Removing some old file, 29 Jan 2007
509 if [[ $previous_less_than_104_r5 = 0 ]]
510 then
511 rm -f "${ROOT}"/etc/dev.d/net/hotplug.dev
512 rmdir --ignore-fail-on-non-empty "${ROOT}"/etc/dev.d/net 2>/dev/null
513 fi
514
515 # 19 Mar 2007
516 if [[ $previous_less_than_106_r5 = 0 ]] &&
517 [[ -e ${ROOT}/etc/udev/rules.d/95-net.rules ]]
518 then
519 rm -f "${ROOT}"/etc/udev/rules.d/95-net.rules
520 fi
521
522 # Try to remove /etc/dev.d as that is obsolete, 23 Apr 2007
523 if [[ -d ${ROOT}/etc/dev.d ]]
524 then
525 rmdir --ignore-fail-on-non-empty "${ROOT}"/etc/dev.d/default "${ROOT}"/etc/dev.d 2>/dev/null
526 if [[ -d ${ROOT}/etc/dev.d ]]
527 then
528 ewarn "You still have the directory /etc/dev.d on your system."
529 ewarn "This is no longer used by udev and can be removed."
530 fi
531 fi
532
533 # 64-device-mapper.rules now gets installed by sys-fs/device-mapper
534 # remove it if user don't has sys-fs/device-mapper installed, 27 Jun 2007
535 if [[ $previous_less_than_113 = 0 ]] &&
536 [[ -f ${ROOT}/etc/udev/rules.d/64-device-mapper.rules ]] &&
537 ! has_version sys-fs/device-mapper
538 then
539 rm -f "${ROOT}"/etc/udev/rules.d/64-device-mapper.rules
540 einfo "Removed unneeded file 64-device-mapper.rules"
541 fi
542
543 # requested in bug #275974, added 2009/09/05
544 ewarn
545 ewarn "If after the udev update removable devices or CD/DVD drives"
546 ewarn "stop working, try re-emerging HAL before filling a bug report"
547
548 # requested in Bug #225033:
549 elog
550 elog "persistent-net does assigning fixed names to network devices."
551 elog "If you have problems with the persistent-net rules,"
552 elog "just delete the rules file"
553 elog "\trm ${ROOT}etc/udev/rules.d/70-persistent-net.rules"
554 elog "and then reboot."
555 elog
556 elog "This may however number your devices in a different way than they are now."
557
558 ewarn
559 ewarn "If you build an initramfs including udev, then please"
560 ewarn "make sure that the /sbin/udevadm binary gets included,"
561 ewarn "and your scripts changed to use it,as it replaces the"
562 ewarn "old helper apps udevinfo, udevtrigger, ..."
563
564 ewarn
565 ewarn "mount options for directory /dev are no longer"
566 ewarn "set in /etc/udev/udev.conf, but in /etc/fstab"
567 ewarn "as for other directories."
568
569 ewarn
570 ewarn "If you use /dev/md/*, /dev/loop/* or /dev/rd/*,"
571 ewarn "then please migrate over to using the device names"
572 ewarn "/dev/md*, /dev/loop* and /dev/ram*."
573 ewarn "The devfs-compat rules have been removed."
574 ewarn "For reference see Bug #269359."
575
576 ewarn
577 ewarn "Rules for /dev/hd* devices have been removed"
578 ewarn "Please migrate to libata."
579
580 elog
581 elog "For more information on udev on Gentoo, writing udev rules, and"
582 elog " fixing known issues visit:"
583 elog " http://www.gentoo.org/doc/en/udev-guide.xml"
584 }