All, I am about to release udev-186-r1, which will move everything currently in /lib/udev to /usr/lib/udev.
For packages that install udev rules in ${FILESDIR}, we need an eclass that tests the version of udev installed on the user's system and installs the udev rules in the proper place. I'm not sure how many packages do this, so if it is a very small number of packages, it may not be worth the eclass. It would be good to discuss that as well as reviewing the proposed eclass. Thanks, William
# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/eclass/systemd.eclass,v 1.11 2012/01/07 17:53:47 mgorny Exp $ # @ECLASS: udev-rules.eclass # @MAINTAINER: # udev-b...@gentoo.org # @BLURB: helper functions to install udev rules # @DESCRIPTION: # This eclass provides a set of functions to install udev rules. # With versions of udev prior to 186, udev rules for extra packages were # installed in /lib/udev/rules.d, but with newer versions they are installed in # /usr/lib/udev/rules.d. # @EXAMPLE: # # @CODE # inherit udev-rules # # src_install() { # udev_dorules "${FILESDIR}"/foo.rules "${FILESDIR}"/bar.rules # udev_newrules "${FILESDIR}"/old.rules.name baz.rules # } # @CODE case ${EAPI:-0} in 0|1|2|3|4) ;; *) die "${ECLASS}.eclass API in EAPI ${EAPI} not yet established." esac # @FUNCTION: _udev_get_rulesdir # @INTERNAL # @DESCRIPTION: # Get unprefixed udev rules directory. _udev_get_rulesdir() { local dir if has_version '<sys-fs/udev-186-r1'; then dir=/lib/udev/rules.d else dir=/usr/lib/udev/rules.d fi echo -n $dir } # @FUNCTION: udev_get_rulesdir # @DESCRIPTION: # Output the path for the udev rules directory (not including ${D}). udev_get_rulesdir() { has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= debug-print-function ${FUNCNAME} "${@}" echo -n "${EPREFIX}$(_udev_get_rulesdir)" } # @FUNCTION: udev_dorules # @USAGE: rulesfile [...] # @DESCRIPTION: # Install udev rule(s). Uses doins, thus it is fatal in EAPI 4 # and non-fatal in earlier EAPIs. udev_dorules() { debug-print-function ${FUNCNAME} "${@}" ( insinto "$(_udev_get_rulesdir)" doins "${@}" ) } # @FUNCTION: udev_newrules # @USAGE: oldname newname # @DESCRIPTION: # Install udev rules file with a new name. Uses newins, thus it is fatal # in EAPI 4 and non-fatal in earlier EAPIs. udev_newrules() { debug-print-function ${FUNCNAME} "${@}" ( insinto "$(_udev_get_rulesdir)" newins "${@}" ) }
pgpQTVhkDkOnL.pgp
Description: PGP signature