/[gentoo-x86]/sys-fs/udev/udev-187-r2.ebuild
Gentoo

Contents of /sys-fs/udev/udev-187-r2.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Tue Aug 7 18:25:16 2012 UTC (9 months, 2 weeks ago) by williamh
Branch: MAIN
rev bump to move everything back to /lib/udev from /usr/lib/udev.
Also sync live ebuild.

(Portage version: 2.2.0_alpha120/cvs/Linux i686)

1 williamh 1.1 # Copyright 1999-2012 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3     # $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/udev-187-r1.ebuild,v 1.3 2012/08/04 16:09:32 williamh Exp $
4    
5     EAPI=4
6    
7     KV_min=2.6.39
8    
9     inherit autotools eutils linux-info
10    
11     if [[ ${PV} = 9999* ]]
12     then
13     EGIT_REPO_URI="git://anongit.freedesktop.org/systemd/systemd"
14     inherit git-2
15     else
16     patchversion=
17     SRC_URI="http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz"
18     if [[ -n "${patchversion}" ]]
19     then
20     SRC_URI="${SRC_URI}
21     mirror://gentoo/${P}-patches-${patchversion}.tar.bz2"
22     fi
23     KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
24     fi
25    
26     DESCRIPTION="Linux dynamic and persistent device naming support (aka userspace devfs)"
27     HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd"
28    
29     LICENSE="LGPL-2.1 MIT GPL-2"
30     SLOT="0"
31     IUSE="doc gudev hwdb introspection keymap +openrc selinux static-libs"
32    
33     RESTRICT="test"
34    
35     COMMON_DEPEND="gudev? ( dev-libs/glib:2 )
36     introspection? ( dev-libs/gobject-introspection )
37     selinux? ( sys-libs/libselinux )
38     >=sys-apps/kmod-5
39     >=sys-apps/util-linux-2.20
40     !<sys-libs/glibc-2.10"
41    
42     DEPEND="${COMMON_DEPEND}
43     dev-util/gperf
44     >=dev-util/intltool-0.40.0
45     virtual/pkgconfig
46     virtual/os-headers
47     !<sys-kernel/linux-headers-${KV_min}
48     doc? ( dev-util/gtk-doc )"
49    
50     if [[ ${PV} = 9999* ]]
51     then
52     DEPEND="${DEPEND}
53     app-text/docbook-xsl-stylesheets
54     dev-libs/libxslt"
55     fi
56    
57     RDEPEND="${COMMON_DEPEND}
58     hwdb? ( sys-apps/hwids )
59     openrc? ( >=sys-fs/udev-init-scripts-15
60     !<sys-apps/openrc-0.9.9 )
61     !sys-apps/coldplug
62     !<sys-fs/lvm2-2.02.45
63     !sys-fs/device-mapper
64     !<sys-fs/udev-init-scripts-15
65     !<sys-kernel/dracut-017-r1
66     !<sys-kernel/genkernel-3.4.25"
67    
68     S="${WORKDIR}/systemd-${PV}"
69    
70     check_KV()
71     {
72     if kernel_is lt ${KV_min//./ }
73     then
74     return 1
75     fi
76     return 0
77     }
78    
79     check_default_rules()
80     {
81     # Make sure there are no sudden changes to upstream rules file
82     # (more for my own needs than anything else ...)
83     local udev_rules_md5=18843fc4a8dd1d8074b98a583454cb9e
84     MD5=$(md5sum < "${S}/rules/50-udev-default.rules")
85     MD5=${MD5/ -/}
86     if [[ ${MD5} != ${udev_rules_md5} ]]
87     then
88     eerror "50-udev-default.rules has been updated, please validate!"
89     eerror "md5sum: ${MD5}"
90     die "50-udev-default.rules has been updated, please validate!"
91     fi
92     }
93    
94     pkg_setup()
95     {
96     # required kernel options
97     CONFIG_CHECK="~DEVTMPFS"
98     ERROR_DEVTMPFS="DEVTMPFS is not set in this kernel. Udev will not run."
99    
100     linux-info_pkg_setup
101    
102     if ! check_KV
103     then
104     eerror "Your kernel version (${KV_FULL}) is too old to run ${P}"
105     eerror "It must be at least ${KV_min}!"
106     fi
107    
108     KV_FULL_SRC=${KV_FULL}
109     get_running_version
110     if ! check_KV
111     then
112     eerror
113     eerror "Your running kernel version (${KV_FULL}) is too old"
114     eerror "for this version of udev."
115     eerror "You must upgrade your kernel or downgrade udev."
116     fi
117     }
118    
119     src_prepare()
120     {
121     # backport some patches
122     if [[ -n "${patchversion}" ]]
123     then
124     EPATCH_SUFFIX=patch EPATCH_FORCE=yes epatch
125     fi
126    
127     # change rules back to group uucp instead of dialout for now
128     sed -e 's/GROUP="dialout"/GROUP="uucp"/' \
129     -i rules/*.rules \
130     || die "failed to change group dialout to uucp"
131    
132     if [[ ! -e configure ]]
133     then
134     if use doc
135     then
136     gtkdocize --docdir docs || die "gtkdocize failed"
137     else
138     echo 'EXTRA_DIST =' > docs/gtk-doc.make
139     fi
140     eautoreconf
141     else
142     check_default_rules
143     elibtoolize
144     fi
145     }
146    
147     src_configure()
148     {
149     local econf_args
150    
151     econf_args=(
152     ac_cv_search_cap_init=
153     ac_cv_header_sys_capability_h=yes
154     DBUS_CFLAGS=' '
155     DBUS_LIBS=' '
156     --docdir=/usr/share/doc/${PF}
157     --libdir=/usr/$(get_libdir)
158     --with-distro=gentoo
159     --with-firmware-path=/usr/lib/firmware/updates:/usr/lib/firmware:/lib/firmware/updates:/lib/firmware
160     --with-html-dir=/usr/share/doc/${PF}/html
161     --with-pci-ids-path=/usr/share/misc/pci.ids
162     --with-rootlibdir=/$(get_libdir)
163     --with-rootprefix=
164     --with-usb-ids-path=/usr/share/misc/usb.ids
165     --disable-acl
166     --disable-audit
167     --disable-coredump
168     --disable-hostnamed
169     --disable-ima
170     --disable-libcryptsetup
171     --disable-localed
172     --disable-logind
173     --disable-nls
174     --disable-pam
175     --disable-quotacheck
176     --disable-readahead
177     --enable-split-usr
178     --disable-tcpwrap
179     --disable-timedated
180     --disable-xz
181     $(use_enable doc gtk-doc)
182     $(use_enable gudev)
183     $(use_enable introspection)
184     $(use_enable keymap)
185     $(use_enable selinux)
186     $(use_enable static-libs static)
187     )
188     econf "${econf_args[@]}"
189     }
190    
191     src_compile()
192     {
193     echo 'BUILT_SOURCES: $(BUILT_SOURCES)' > "${T}"/Makefile.extra
194     emake -f Makefile -f "${T}"/Makefile.extra BUILT_SOURCES
195     local targets=(
196     systemd-udevd
197     udevadm
198     libudev.la
199     ata_id
200     cdrom_id
201     collect
202     scsi_id
203     v4l_id
204     accelerometer
205     mtd_probe
206     man/udev.7
207     man/udevadm.8
208     man/systemd-udevd.8
209     man/systemd-udevd.service.8
210     )
211     use keymap && targets+=( keymap )
212     use gudev && targets+=( libgudev-1.0.la )
213    
214     emake "${targets[@]}"
215     if use doc
216     then
217     emake -C docs/libudev
218     use gudev && emake -C docs/gudev
219     fi
220     }
221    
222     src_install()
223     {
224     local lib_LTLIBRARIES=libudev.la \
225     pkgconfiglib_DATA=src/libudev/libudev.pc
226    
227     local targets=(
228     install-libLTLIBRARIES
229     install-includeHEADERS
230     install-libgudev_includeHEADERS
231     install-binPROGRAMS
232     install-rootlibexecPROGRAMS
233     install-udevlibexecPROGRAMS
234     install-dist_udevconfDATA
235     install-dist_udevhomeSCRIPTS
236     install-dist_udevkeymapDATA
237     install-dist_udevkeymapforcerelDATA
238     install-dist_udevrulesDATA
239     install-girDATA
240     install-man7
241     install-man8
242     install-pkgconfiglibDATA
243     install-sharepkgconfigDATA
244     install-typelibsDATA
245     install-dist_docDATA
246     udev-confdirs
247     )
248    
249     if use gudev
250     then
251     lib_LTLIBRARIES+=" libgudev-1.0.la"
252     pkgconfiglib_DATA+=" src/gudev/gudev-1.0.pc"
253     fi
254    
255     # add final values of variables:
256     targets+=(
257     rootlibexec_PROGRAMS=systemd-udevd
258     bin_PROGRAMS=udevadm
259     lib_LTLIBRARIES="${lib_LTLIBRARIES}"
260     MANPAGES="man/udev.7 man/udevadm.8 man/systemd-udevd.service.8"
261     MANPAGES_ALIAS="man/systemd-udevd.8"
262     pkgconfiglib_DATA="${pkgconfiglib_DATA}"
263     )
264     emake DESTDIR="${D}" "${targets[@]}"
265     if use doc
266     then
267     emake -C docs/libudev DESTDIR="${D}" install
268     use gudev && emake -C docs/gudev DESTDIR="${D}" install
269     fi
270     dodoc TODO
271    
272     prune_libtool_files --all
273     rm -f "${D}"/lib/udev/rules.d/99-systemd.rules
274     rm -rf "${D}"/usr/share/doc/${PF}/LICENSE.*
275    
276     # install gentoo-specific rules
277     insinto /lib/udev/rules.d
278     doins "${FILESDIR}"/40-gentoo.rules
279    
280     # install udevadm symlink
281     dosym ../usr/bin/udevadm /sbin/udevadm
282     }
283    
284     pkg_preinst()
285     {
286     local htmldir
287     for htmldir in gudev libudev; do
288     if [[ -d ${ROOT}usr/share/gtk-doc/html/${htmldir} ]]
289     then
290     rm -rf "${ROOT}"usr/share/gtk-doc/html/${htmldir}
291     fi
292     if [[ -d ${D}/usr/share/doc/${PF}/html/${htmldir} ]]
293     then
294     dosym ../../doc/${PF}/html/${htmldir} \
295     /usr/share/gtk-doc/html/${htmldir}
296     fi
297     done
298     preserve_old_lib /usr/$(get_libdir)/libudev.so.0
299     }
300    
301     # This function determines if a directory is a mount point.
302     # It was lifted from dracut.
303     ismounted()
304     {
305     while read a m a; do
306     [[ $m = $1 ]] && return 0
307     done < "${ROOT}"/proc/mounts
308     return 1
309     }
310    
311     pkg_postinst()
312     {
313     mkdir -p "${ROOT}"/run
314    
315     # "losetup -f" is confused if there is an empty /dev/loop/, Bug #338766
316     # So try to remove it here (will only work if empty).
317     rmdir "${ROOT}"/dev/loop 2>/dev/null
318     if [[ -d ${ROOT}/dev/loop ]]
319     then
320     ewarn "Please make sure your remove /dev/loop,"
321     ewarn "else losetup may be confused when looking for unused devices."
322     fi
323    
324     # people want reminders, I'll give them reminders. Odds are they will
325     # just ignore them anyway...
326    
327     # 64-device-mapper.rules now gets installed by sys-fs/device-mapper
328     # remove it if user don't has sys-fs/device-mapper installed, 27 Jun 2007
329     if [[ -f ${ROOT}/etc/udev/rules.d/64-device-mapper.rules ]] &&
330     ! has_version sys-fs/device-mapper
331     then
332     rm -f "${ROOT}"/etc/udev/rules.d/64-device-mapper.rules
333     einfo "Removed unneeded file 64-device-mapper.rules"
334     fi
335    
336     ewarn
337     ewarn "If you build an initramfs including udev, then please"
338     ewarn "make sure the /usr/bin/udevadm binary gets included,"
339     ewarn "and your scripts changed to use it,as it replaces the"
340     ewarn "old helper apps udevinfo, udevtrigger, ..."
341    
342     ewarn
343     ewarn "mount options for directory /dev are no longer"
344     ewarn "set in /etc/udev/udev.conf, but in /etc/fstab"
345     ewarn "as for other directories."
346    
347     ewarn
348     ewarn "Rules for /dev/hd* devices have been removed"
349     ewarn "Please migrate to libata."
350    
351     ewarn
352     ewarn "action_modeswitch has been removed by upstream."
353     ewarn "Please use sys-apps/usb_modeswitch."
354    
355     if ismounted /usr
356     then
357     ewarn
358     ewarn "Your system has /usr on a separate partition. This means"
359     ewarn "you will need to use an initramfs to pre-mount /usr before"
360     ewarn "udev runs."
361     ewarn "This must be set up before your next reboot, or you may"
362     ewarn "experience failures which are very difficult to troubleshoot."
363     ewarn "For a more detailed explanation, see the following URL:"
364     ewarn "http://www.freedesktop.org/wiki/Software/systemd/separate-usr-is-broken"
365     ewarn
366     ewarn "For more information on setting up an initramfs, see the"
367     ewarn "following URL:"
368     ewarn "http://www.gentoo.org/doc/en/initramfs-guide.xml"
369     fi
370    
371     ewarn
372     ewarn "The udev-acl functionality has been removed from standalone udev."
373     ewarn "If you are using standalone udev, consolekithandles this"
374     ewarn "functionality."
375    
376     ewarn
377     ewarn "You need to restart udev as soon as possible to make the upgrade go"
378     ewarn "into affect."
379     ewarn "The method you use to do this depends on your init system."
380    
381     ewarn
382     ewarn "Upstream has removed the persistent-net and persistent-cd rules"
383     ewarn "generator. If you need persistent names for these devices,"
384     ewarn "place udev rules for them in ${ROOT}etc/udev/rules.d."
385    
386     preserve_old_lib_notify /usr/$(get_libdir)/libudev.so.0
387    
388     elog
389     elog "For more information on udev on Gentoo, writing udev rules, and"
390     elog " fixing known issues visit:"
391     elog " http://www.gentoo.org/doc/en/udev-guide.xml"
392     }

  ViewVC Help
Powered by ViewVC 1.1.13