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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (show annotations) (download)
Fri Aug 24 16:04:52 2012 UTC (8 months, 4 weeks ago) by williamh
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +1 -1 lines
FILE REMOVED
remove old versions

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

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

  ViewVC Help
Powered by ViewVC 1.1.13