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