2 # - get rules patches from systemd (if any)
5 %bcond_without selinux # without SELinux support
6 %bcond_with apidocs # with API docs
8 Summary: Device manager for the Linux kernel
9 Summary(pl.UTF-8): Zarządca urządzeń dla jądra Linuksa
14 License: GPL v2+ (udev), LGPL v2.1+ (the rest)
16 Source0: http://dev.gentoo.org/~blueness/eudev/eudev-%{version}.tar.gz
17 # Source0-md5: dedfb1964f6098fe9320de827957331f
19 Source101: udev-alsa.rules
21 Source103: udev-links.conf
23 Source110: udev-net.helper
26 Source120: udev.blacklist
27 Source121: fbdev.blacklist
28 Patch0: udev-ploop-rules.patch
29 Patch1: udev-libexecdir.patch
30 # http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
31 # don't remove it entirely, just change default value to disabled
32 Patch2: udev-net.ifnames.patch
33 URL: https://wiki.gentoo.org/wiki/Project:Eudev
34 BuildRequires: attr-devel
35 BuildRequires: autoconf >= 2.64
36 BuildRequires: automake >= 1:1.11
37 BuildRequires: binutils >= 3:2.22.52.0.1-2
38 BuildRequires: dbus-devel >= 1.3.2
39 BuildRequires: docbook-style-xsl
40 %{?with_apidocs:BuildRequires: gtk-doc >= 1.18}
41 BuildRequires: gobject-introspection-devel >= 1.31.1
42 BuildRequires: kmod-devel >= 14
43 BuildRequires: libblkid-devel >= 2.20
44 %{?with_selinux:BuildRequires: libselinux-devel >= 2.1.9}
45 BuildRequires: libtool >= 2:2.2
46 BuildRequires: libxslt-progs
48 BuildRequires: pkgconfig >= 0.9.0
49 BuildRequires: python-modules
50 BuildRequires: rpmbuild(macros) >= 1.628
51 BuildRequires: sed >= 4.0
52 BuildRequires: usbutils >= 0.82
53 BuildRequires: xz-devel
54 BuildRequires: zlib-devel
55 Requires: udev-core = %{epoch}:%{version}-%{release}
59 Obsoletes: hotplug-input
60 Obsoletes: hotplug-net
61 Obsoletes: hotplug-pci
63 Obsoletes: udev-extras < 20090628
65 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
68 %define _sbindir /sbin
69 %define _libexecdir %{_prefix}/lib
72 udev is the device manager for the Linux kernel. Its primary function
73 is managing device nodes in /dev. It is the successor of devfs and
76 %description -l pl.UTF-8
77 udev jest zarządcą urządzeń dla jądra Linuksa. Jego główną funkcją
78 jest zarządzanie węzłami urządzeń w katalogu /dev. Jest następcą devfs
82 Summary: A userspace implementation of devfs - core part of udev
83 Summary(pl.UTF-8): Implementacja devfs w przestrzeni użytkownika - główna część udev
86 Requires: filesystem >= 3.0-45
88 Requires: libblkid >= 2.20
89 %{?with_selinux:Requires: libselinux >= 2.1.9}
90 Requires: setup >= 2.6.1-1
91 Requires: udev-libs = %{epoch}:%{version}-%{release}
92 Requires: uname(release) >= 2.6.32
93 #Suggests: uname(release) >= 3.0
94 Obsoletes: udev-compat
95 Obsoletes: udev-initrd < %{epoch}:%{version}-%{release}
96 Conflicts: geninitrd < 12639
97 Conflicts: rc-scripts < 0.4.5.3-1
98 Conflicts: systemd-units < 1:183
99 Conflicts: udev < 1:118-1
102 A userspace implementation of devfs - core part of udev.
104 %description core -l pl.UTF-8
105 Implementacja devfs w przestrzeni użytkownika - główna część udev.
108 Summary: Shared library to access udev device information
109 Summary(pl.UTF-8): Biblioteka współdzielona do dostępu do informacji o urządzeniach udev
113 Shared libudev library to access udev device information.
115 %description libs -l pl.UTF-8
116 Biblioteka współdzielona libudev służąca do dostępu do informacji o
120 Summary: Header file for libudev library
121 Summary(pl.UTF-8): Plik nagłówkowy biblioteki libudev
122 Group: Development/Libraries
123 Requires: udev-libs = %{epoch}:%{version}-%{release}
124 Obsoletes: udev-static
127 Header file for libudev library.
129 %description devel -l pl.UTF-8
130 Plik nagłówkowy biblioteki libudev.
133 Summary: libudev API documentation
134 Summary(pl.UTF-8): Dokumentacja API libudev
136 Requires: gtk-doc-common
139 libudev API documentation.
141 %description apidocs -l pl.UTF-8
142 Dokumentacja API libudev.
145 %setup -q -n eudev-%{version}
161 --bindir=%{_sbindir} \
162 %{?debug:--enable-debug} \
163 %{__enable_disable apidocs gtk-doc} \
164 %{__enable_disable selinux} \
165 --disable-silent-rules \
166 --enable-introspection \
175 --with-html-dir=%{_gtkdocdir} \
176 --with-rootprefix="" \
177 --with-rootlibdir=/%{_lib} \
178 --with-udevlibexecdir=/lib/udev
183 rm -rf $RPM_BUILD_ROOT
184 install -d $RPM_BUILD_ROOT/var/lib/%{name}/coredump \
185 $RPM_BUILD_ROOT{%{_sysconfdir}/{udev/hwdb,modprobe}.d,%{_bindir},%{_sbindir},/usr/lib}
188 DESTDIR=$RPM_BUILD_ROOT
190 # compatibility symlinks to udevd binary
191 %{__ln} -s %{_sbindir}/udevd $RPM_BUILD_ROOT/lib/udev/udevd
193 # compat symlinks for "/ merged into /usr" programs
194 %{__ln} -s %{_sbindir}/udevadm $RPM_BUILD_ROOT/bin/
195 %{__ln} -s /lib/udev $RPM_BUILD_ROOT/usr/lib/
197 # install custom udev rules
198 %{__cp} -a %{SOURCE101} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/40-alsa-restore.rules
199 %{__cp} -a %{SOURCE102} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/70-udev-tld.rules
201 # install udev configs
202 %{__cp} -a %{SOURCE103} $RPM_BUILD_ROOT%{_sysconfdir}/udev/links.conf
204 # install udev executables (scripts, helpers, etc.)
205 install -p %{SOURCE110} $RPM_BUILD_ROOT/lib/udev/net_helper
206 install -p %{SOURCE111} $RPM_BUILD_ROOT%{_sbindir}/start_udev
208 # install misc udev stuff
209 %{__cp} -a %{SOURCE120} $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/udev_blacklist.conf
210 %{__cp} -a %{SOURCE121} $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/fbdev-blacklist.conf
212 :>$RPM_BUILD_ROOT%{_sysconfdir}/udev/hwdb.bin
214 install -d $RPM_BUILD_ROOT/var/log
215 :> $RPM_BUILD_ROOT/var/log/btmp
216 :> $RPM_BUILD_ROOT/var/log/wtmp
219 rm -rf $RPM_BUILD_ROOT
221 %triggerpostun core -- dev
222 if [ "$2" = 0 ]; then
223 # need to kill and restart udevd as after obsoleting dev package the
224 # /dev tree will remain empty. umask is needed as otherwise udev will
225 # create devices with strange permissions (udev bug probably)
227 /sbin/start_udev || exit 0
230 %triggerpostun core -- udev < 108
231 %{__sed} -i -e 's#IMPORT{program}="/sbin/#IMPORT{program}="#g' /etc/udev/rules.d/*.rules
232 %if "%{_lib}" != "lib"
233 %{__sed} -i -e 's#/%{_lib}/udev/#/lib/udev/#g' /etc/udev/rules.d/*.rules
236 %triggerpostun core -- udev < 165
237 /sbin/udevadm info --convert-db
240 /sbin/udevadm hwdb --update || :
241 if [ $1 -gt 1 ]; then
242 if grep -qs devtmpfs /proc/mounts && [ -n "$(pidof udevd)" ]; then
243 /sbin/udevadm control --exit
244 /lib/udev/udevd --daemon
248 %post libs -p /sbin/ldconfig
249 %postun libs -p /sbin/ldconfig
252 %defattr(644,root,root,755)
253 %dev(c,1,3) %attr(666,root,root) /dev/null
254 %dev(c,5,1) %attr(660,root,console) /dev/console
255 %dev(c,1,5) %attr(666,root,root) /dev/zero
258 %defattr(644,root,root,755)
262 %attr(755,root,root) /lib/udev/collect
264 %attr(755,root,root) /lib/udev/net_helper
266 %attr(755,root,root) /lib/udev/ata_id
267 %attr(755,root,root) /lib/udev/cdrom_id
268 %attr(755,root,root) /lib/udev/mtd_probe
269 %attr(755,root,root) /lib/udev/scsi_id
270 %attr(755,root,root) /lib/udev/v4l_id
272 %attr(755,root,root) /lib/udev/udevd
274 %dir /lib/udev/hwdb.d
275 /lib/udev/hwdb.d/20-OUI.hwdb
276 /lib/udev/hwdb.d/20-acpi-vendor.hwdb
277 /lib/udev/hwdb.d/20-bluetooth-vendor-product.hwdb
278 /lib/udev/hwdb.d/20-net-ifname.hwdb
279 /lib/udev/hwdb.d/20-pci-classes.hwdb
280 /lib/udev/hwdb.d/20-pci-vendor-model.hwdb
281 /lib/udev/hwdb.d/20-sdio-classes.hwdb
282 /lib/udev/hwdb.d/20-sdio-vendor-model.hwdb
283 /lib/udev/hwdb.d/20-usb-classes.hwdb
284 /lib/udev/hwdb.d/20-usb-vendor-model.hwdb
285 /lib/udev/hwdb.d/20-vmbus-class.hwdb
286 /lib/udev/hwdb.d/60-evdev.hwdb
287 /lib/udev/hwdb.d/60-keyboard.hwdb
288 /lib/udev/hwdb.d/60-sensor.hwdb
289 /lib/udev/hwdb.d/70-mouse.hwdb
290 /lib/udev/hwdb.d/70-pointingstick.hwdb
291 /lib/udev/hwdb.d/70-touchpad.hwdb
293 %attr(755,root,root) %{_sbindir}/start_udev
294 %attr(755,root,root) %{_sbindir}/udevd
295 %attr(755,root,root) %{_sbindir}/udevadm
296 %attr(755,root,root) %{_bindir}/udevadm
298 %dir %{_sysconfdir}/udev
299 %dir %{_sysconfdir}/udev/rules.d
300 %dir %{_sysconfdir}/udev/hwdb.d
301 %ghost %{_sysconfdir}/udev/hwdb.bin
303 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modprobe.d/fbdev-blacklist.conf
304 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modprobe.d/udev_blacklist.conf
305 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/links.conf
306 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/rules.d/40-alsa-restore.rules
307 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/rules.d/70-udev-tld.rules
309 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/udev.conf
311 # rules below are NOT supposed to be changed by users
312 /lib/udev/rules.d/50-udev-default.rules
313 /lib/udev/rules.d/60-cdrom_id.rules
314 /lib/udev/rules.d/60-block.rules
315 /lib/udev/rules.d/60-drm.rules
316 /lib/udev/rules.d/60-evdev.rules
317 /lib/udev/rules.d/60-input-id.rules
318 /lib/udev/rules.d/60-persistent-alsa.rules
319 /lib/udev/rules.d/60-persistent-input.rules
320 /lib/udev/rules.d/60-persistent-storage-tape.rules
321 /lib/udev/rules.d/60-persistent-storage.rules
322 /lib/udev/rules.d/60-persistent-v4l.rules
323 /lib/udev/rules.d/60-sensor.rules
324 /lib/udev/rules.d/60-serial.rules
325 /lib/udev/rules.d/64-btrfs.rules
326 /lib/udev/rules.d/70-joystick.rules
327 /lib/udev/rules.d/70-mouse.rules
328 /lib/udev/rules.d/70-touchpad.rules
329 /lib/udev/rules.d/75-net-description.rules
330 /lib/udev/rules.d/75-probe_mtd.rules
331 /lib/udev/rules.d/78-sound-card.rules
332 /lib/udev/rules.d/80-drivers.rules
333 /lib/udev/rules.d/80-net-name-slot.rules
334 %{_mandir}/man5/udev.conf.5*
335 %{_mandir}/man7/udev.7*
336 %{_mandir}/man8/udevadm.8*
337 %{_mandir}/man8/udevd.8*
340 %defattr(644,root,root,755)
341 %attr(755,root,root) /%{_lib}/libudev.so.*.*.*
342 %attr(755,root,root) %ghost /%{_lib}/libudev.so.1
345 %defattr(644,root,root,755)
346 %attr(755,root,root) %{_libdir}/libudev.so
347 %{_includedir}/libudev.h
348 %{_includedir}/udev.h
349 %{_pkgconfigdir}/libudev.pc
350 %{_npkgconfigdir}/udev.pc
354 %defattr(644,root,root,755)
355 %{_gtkdocdir}/libudev