]> TLD Linux GIT Repositories - packages/udev.git/blob - udev.spec
- release 3
[packages/udev.git] / udev.spec
1 # TODO:
2 #   - get rules patches from systemd (if any)
3 #
4 # Conditional build:
5 %bcond_without  selinux         # without SELinux support
6 %bcond_with     apidocs         # with API docs
7
8 Summary:        Device manager for the Linux kernel
9 Summary(pl.UTF-8):      Zarządca urządzeń dla jądra Linuksa
10 Name:           udev
11 Version:        3.1.2
12 Release:        3
13 Epoch:          2
14 License:        GPL v2+ (udev), LGPL v2.1+ (the rest)
15 Group:          Base
16 Source0:        http://dev.gentoo.org/~blueness/eudev/eudev-%{version}.tar.gz
17 # Source0-md5:  07ab33fe310d250f06fc28f010e3fde2
18 # rules
19 Source101:      udev-alsa.rules
20 Source102:      udev.rules
21 Source103:      udev-links.conf
22 # scripts / helpers
23 Source110:      udev-net.helper
24 Source111:      start_udev
25 # misc
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 BuildRequires:  glib2-devel >= 1:2.22.0
41 BuildRequires:  glibc-misc
42 BuildRequires:  gobject-introspection-devel >= 1.31.1
43 BuildRequires:  gperf
44 %{?with_apidocs:BuildRequires:  gtk-doc >= 1.18}
45 BuildRequires:  kmod-devel >= 14
46 BuildRequires:  libblkid-devel >= 2.20
47 %{?with_selinux:BuildRequires:  libselinux-devel >= 2.1.9}
48 BuildRequires:  libtool >= 2:2.2
49 BuildRequires:  libxslt-progs
50 BuildRequires:  m4
51 BuildRequires:  pkgconfig >= 0.9.0
52 BuildRequires:  python-modules
53 BuildRequires:  rpmbuild(macros) >= 1.628
54 BuildRequires:  sed >= 4.0
55 BuildRequires:  usbutils >= 0.82
56 BuildRequires:  xz-devel
57 BuildRequires:  zlib-devel
58 Requires:       udev-core = %{epoch}:%{version}-%{release}
59 Provides:       dev = 3.5.0
60 Obsoletes:      dev
61 Obsoletes:      hotplug
62 Obsoletes:      hotplug-input
63 Obsoletes:      hotplug-net
64 Obsoletes:      hotplug-pci
65 Obsoletes:      udev-dev
66 Obsoletes:      udev-extras < 20090628
67 Obsoletes:      udev-tools
68 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
69
70 %define         _bindir         /bin
71 %define         _sbindir        /sbin
72 %define         _libexecdir     %{_prefix}/lib
73
74 %description
75 udev is the device manager for the Linux kernel. Its primary function
76 is managing device nodes in /dev. It is the successor of devfs and
77 hotplug.
78
79 %description -l pl.UTF-8
80 udev jest zarządcą urządzeń dla jądra Linuksa. Jego główną funkcją
81 jest zarządzanie węzłami urządzeń w katalogu /dev. Jest następcą devfs
82 i hotpluga.
83
84 %package core
85 Summary:        A userspace implementation of devfs - core part of udev
86 Summary(pl.UTF-8):      Implementacja devfs w przestrzeni użytkownika - główna część udev
87 Group:          Base
88 Requires:       coreutils
89 Requires:       filesystem >= 3.0-45
90 Requires:       kmod >= 14
91 Requires:       libblkid >= 2.20
92 %{?with_selinux:Requires:       libselinux >= 2.1.9}
93 Requires:       setup >= 2.6.1-1
94 Requires:       udev-libs = %{epoch}:%{version}-%{release}
95 Requires:       uname(release) >= 2.6.32
96 #Suggests:      uname(release) >= 3.0
97 Obsoletes:      udev-compat
98 Obsoletes:      udev-initrd < %{epoch}:%{version}-%{release}}
99 Conflicts:      geninitrd < 12639
100 Conflicts:      rc-scripts < 0.4.5.3-1
101 Conflicts:      systemd-units < 1:183
102 Conflicts:      udev < 1:118-1
103
104 %description core
105 A userspace implementation of devfs - core part of udev.
106
107 %description core -l pl.UTF-8
108 Implementacja devfs w przestrzeni użytkownika - główna część udev.
109
110 %package libs
111 Summary:        Shared library to access udev device information
112 Summary(pl.UTF-8):      Biblioteka współdzielona do dostępu do informacji o urządzeniach udev
113 Group:          Libraries
114
115 %description libs
116 Shared libudev library to access udev device information.
117
118 %description libs -l pl.UTF-8
119 Biblioteka współdzielona libudev służąca do dostępu do informacji o
120 urządzeniach udev.
121
122 %package devel
123 Summary:        Header file for libudev library
124 Summary(pl.UTF-8):      Plik nagłówkowy biblioteki libudev
125 Group:          Development/Libraries
126 Requires:       udev-libs = %{epoch}:%{version}-%{release}
127 Obsoletes:      udev-static
128
129 %description devel
130 Header file for libudev library.
131
132 %description devel -l pl.UTF-8
133 Plik nagłówkowy biblioteki libudev.
134
135 %package apidocs
136 Summary:        libudev API documentation
137 Summary(pl.UTF-8):      Dokumentacja API libudev
138 Group:          Documentation
139 Requires:       gtk-doc-common
140
141 %description apidocs
142 libudev API documentation.
143
144 %description apidocs -l pl.UTF-8
145 Dokumentacja API libudev.
146
147 %package glib
148 Summary:        Shared libgudev library - GObject bindings for libudev
149 Summary(pl.UTF-8):      Biblioteka współdzielona libgudev - wiązania GObject do libudev
150 Group:          Libraries
151 Requires:       glib2 >= 1:2.22.0
152 Requires:       udev-libs = %{epoch}:%{version}-%{release}
153
154 %description glib
155 Shared libgudev library - GObject bindings for libudev.
156
157 %description glib -l pl.UTF-8
158 Biblioteka współdzielona libgudev - wiązania GObject do libudev.
159
160 %package glib-devel
161 Summary:        Header file for libgudev library
162 Summary(pl.UTF-8):      Plik nagłówkowy biblioteki libgudev
163 Group:          Development/Libraries
164 Requires:       glib2-devel >= 1:2.22.0
165 Requires:       udev-devel = %{epoch}:%{version}-%{release}
166 Requires:       udev-glib = %{epoch}:%{version}-%{release}
167 Obsoletes:      udev-glib-static
168
169 %description glib-devel
170 Header file for libgudev library.
171
172 %description glib-devel -l pl.UTF-8
173 Plik nagłówkowy biblioteki libgudev.
174
175 %package glib-apidocs
176 Summary:        libgudev API documentation
177 Summary(pl.UTF-8):      Dokumentacja API libgudev
178 Group:          Documentation
179 Requires:       gtk-doc-common
180
181 %description glib-apidocs
182 libgudev API documentation.
183
184 %description glib-apidocs -l pl.UTF-8
185 Dokumentacja API libgudev.
186
187 %prep
188 %setup -q -n eudev-%{version}
189 %patch0 -p1
190 %patch1 -p1
191 %patch2 -p1
192
193 %build
194 %if %{with apidocs}
195 %{__gtkdocize}
196 %endif
197 %{__libtoolize}
198 %{__aclocal} -I m4
199 %{__autoconf}
200 %{__autoheader}
201 %{__automake}
202 %configure \
203         --libexecdir=/lib \
204         --bindir=%{_sbindir} \
205         %{?debug:--enable-debug} \
206         %{__enable_disable apidocs gtk-doc} \
207         %{__enable_disable selinux} \
208         --disable-silent-rules \
209         --enable-introspection \
210         --enable-blkid \
211         --enable-gudev \
212         --enable-keymap \
213         --enable-libkmod \
214         --enable-manpages \
215         --enable-modules \
216         --enable-shared \
217         --enable-static \
218         --with-html-dir=%{_gtkdocdir} \
219         --with-rootprefix="" \
220         --with-rootlibdir=/%{_lib} \
221         --with-udevlibexecdir=/lib/udev
222
223 %{__make} -j1
224
225 %install
226 rm -rf $RPM_BUILD_ROOT
227 install -d $RPM_BUILD_ROOT/var/lib/%{name}/coredump \
228         $RPM_BUILD_ROOT{%{_sysconfdir}/{udev/hwdb,modprobe}.d,%{_bindir},%{_sbindir},/usr/lib}
229
230 %{__make} install \
231         DESTDIR=$RPM_BUILD_ROOT
232
233 # compatibility symlinks to udevd binary
234 %{__ln} -s %{_sbindir}/udevd $RPM_BUILD_ROOT/lib/udev/udevd
235
236 # compat symlinks for "/ merged into /usr" programs
237 %{__ln} -s %{_sbindir}/udevadm $RPM_BUILD_ROOT/bin/
238 %{__ln} -s /lib/udev $RPM_BUILD_ROOT/usr/lib/
239
240 # install custom udev rules
241 %{__cp} -a %{SOURCE101} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/40-alsa-restore.rules
242 %{__cp} -a %{SOURCE102} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/70-udev-tld.rules
243
244 # install udev configs
245 %{__cp} -a %{SOURCE103} $RPM_BUILD_ROOT%{_sysconfdir}/udev/links.conf
246
247 # install udev executables (scripts, helpers, etc.)
248 install -p %{SOURCE110} $RPM_BUILD_ROOT/lib/udev/net_helper
249 install -p %{SOURCE111} $RPM_BUILD_ROOT%{_sbindir}/start_udev
250
251 # install misc udev stuff
252 %{__cp} -a %{SOURCE120} $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/udev_blacklist.conf
253 %{__cp} -a %{SOURCE121} $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/fbdev-blacklist.conf
254
255 :>$RPM_BUILD_ROOT%{_sysconfdir}/udev/hwdb.bin
256
257 install -d $RPM_BUILD_ROOT/var/log
258 :> $RPM_BUILD_ROOT/var/log/btmp
259 :> $RPM_BUILD_ROOT/var/log/wtmp
260
261 %clean
262 rm -rf $RPM_BUILD_ROOT
263
264 %triggerpostun core -- dev
265 if [ "$2" = 0 ]; then
266         # need to kill and restart udevd as after obsoleting dev package the
267         # /dev tree will remain empty. umask is needed as otherwise udev will
268         # create devices with strange permissions (udev bug probably)
269         umask 000
270         /sbin/start_udev || exit 0
271 fi
272
273 %triggerpostun core -- udev < 108
274 %{__sed} -i -e 's#IMPORT{program}="/sbin/#IMPORT{program}="#g' /etc/udev/rules.d/*.rules
275 %if "%{_lib}" != "lib"
276 %{__sed} -i -e 's#/%{_lib}/udev/#/lib/udev/#g' /etc/udev/rules.d/*.rules
277 %endif
278
279 %triggerpostun core -- udev < 165
280 /sbin/udevadm info --convert-db
281
282 %post core
283 /sbin/udevadm hwdb --update || :
284 if [ $1 -gt 1 ]; then
285         if grep -qs devtmpfs /proc/mounts && [ -n "$(pidof udevd)" ]; then
286                 /sbin/udevadm control --exit
287                 /lib/udev/udevd --daemon
288         fi
289 fi
290
291 %post   libs -p /sbin/ldconfig
292 %postun libs -p /sbin/ldconfig
293
294 %post   glib -p /sbin/ldconfig
295 %postun glib -p /sbin/ldconfig
296
297 %files
298 %defattr(644,root,root,755)
299 %dev(c,1,3) %attr(666,root,root) /dev/null
300 %dev(c,5,1) %attr(660,root,console) /dev/console
301 %dev(c,1,5) %attr(666,root,root) /dev/zero
302
303 %files core
304 %defattr(644,root,root,755)
305
306 /usr/lib/udev
307
308 %attr(755,root,root) /lib/udev/collect
309
310 %attr(755,root,root) /lib/udev/net_helper
311
312 %attr(755,root,root) /lib/udev/ata_id
313 %attr(755,root,root) /lib/udev/cdrom_id
314 %attr(755,root,root) /lib/udev/mtd_probe
315 %attr(755,root,root) /lib/udev/scsi_id
316 %attr(755,root,root) /lib/udev/v4l_id
317
318 %attr(755,root,root) /lib/udev/udevd
319
320 %attr(755,root,root) /lib/udev/accelerometer
321 %dir /lib/udev/hwdb.d
322 /lib/udev/hwdb.d/20-OUI.hwdb
323 /lib/udev/hwdb.d/20-acpi-vendor.hwdb
324 /lib/udev/hwdb.d/20-bluetooth-vendor-product.hwdb
325 /lib/udev/hwdb.d/20-pci-classes.hwdb
326 /lib/udev/hwdb.d/20-pci-vendor-model.hwdb
327 /lib/udev/hwdb.d/20-sdio-classes.hwdb
328 /lib/udev/hwdb.d/20-sdio-vendor-model.hwdb
329 /lib/udev/hwdb.d/20-usb-classes.hwdb
330 /lib/udev/hwdb.d/20-usb-vendor-model.hwdb
331 /lib/udev/hwdb.d/60-evdev.hwdb
332 /lib/udev/hwdb.d/60-keyboard.hwdb
333 /lib/udev/hwdb.d/70-mouse.hwdb
334 /lib/udev/hwdb.d/70-touchpad.hwdb
335
336 %attr(755,root,root) %{_sbindir}/start_udev
337 %attr(755,root,root) %{_sbindir}/udevd
338 %attr(755,root,root) %{_sbindir}/udevadm
339 %attr(755,root,root) %{_bindir}/udevadm
340
341 %dir %{_sysconfdir}/udev
342 %dir %{_sysconfdir}/udev/rules.d
343 %dir %{_sysconfdir}/udev/hwdb.d
344 %ghost %{_sysconfdir}/udev/hwdb.bin
345
346 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modprobe.d/fbdev-blacklist.conf
347 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modprobe.d/udev_blacklist.conf
348 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/links.conf
349 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/rules.d/40-alsa-restore.rules
350 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/rules.d/70-udev-tld.rules
351
352 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/udev.conf
353
354 # rules below are NOT supposed to be changed by users
355 /lib/udev/rules.d/42-usb-hid-pm.rules
356 /lib/udev/rules.d/50-udev-default.rules
357 /lib/udev/rules.d/60-cdrom_id.rules
358 /lib/udev/rules.d/60-block.rules
359 /lib/udev/rules.d/60-drm.rules
360 /lib/udev/rules.d/60-evdev.rules
361 /lib/udev/rules.d/60-persistent-alsa.rules
362 /lib/udev/rules.d/60-persistent-input.rules
363 /lib/udev/rules.d/60-persistent-storage-tape.rules
364 /lib/udev/rules.d/60-persistent-storage.rules
365 /lib/udev/rules.d/60-persistent-v4l.rules
366 /lib/udev/rules.d/60-serial.rules
367 /lib/udev/rules.d/61-accelerometer.rules
368 /lib/udev/rules.d/64-btrfs.rules
369 /lib/udev/rules.d/70-mouse.rules
370 /lib/udev/rules.d/70-touchpad.rules
371 /lib/udev/rules.d/75-net-description.rules
372 /lib/udev/rules.d/75-probe_mtd.rules
373 /lib/udev/rules.d/78-sound-card.rules
374 /lib/udev/rules.d/80-drivers.rules
375 /lib/udev/rules.d/80-net-name-slot.rules
376 %{_mandir}/man5/udev.conf.5*
377 %{_mandir}/man7/udev.7*
378 %{_mandir}/man8/udevadm.8*
379 %{_mandir}/man8/udevd.8*
380
381 %files libs
382 %defattr(644,root,root,755)
383 %attr(755,root,root) /%{_lib}/libudev.so.*.*.*
384 %attr(755,root,root) %ghost /%{_lib}/libudev.so.1
385
386 %files devel
387 %defattr(644,root,root,755)
388 %attr(755,root,root) %{_libdir}/libudev.so
389 %{_includedir}/libudev.h
390 %{_includedir}/udev.h
391 %{_pkgconfigdir}/libudev.pc
392 %{_npkgconfigdir}/udev.pc
393
394 %if %{with apidocs}
395 %files apidocs
396 %defattr(644,root,root,755)
397 %{_gtkdocdir}/libudev
398 %endif
399
400 %files glib
401 %defattr(644,root,root,755)
402 %attr(755,root,root) %{_libdir}/libgudev-1.0.so.*.*.*
403 %attr(755,root,root) %ghost %{_libdir}/libgudev-1.0.so.0
404 %{_libdir}/girepository-1.0/GUdev-1.0.typelib
405
406 %files glib-devel
407 %defattr(644,root,root,755)
408 %attr(755,root,root) %{_libdir}/libgudev-1.0.so
409 %{_includedir}/gudev-1.0
410 %{_pkgconfigdir}/gudev-1.0.pc
411 %{_datadir}/gir-1.0/GUdev-1.0.gir
412
413 %if %{with apidocs}
414 %files glib-apidocs
415 %defattr(644,root,root,755)
416 %{_gtkdocdir}/gudev
417 %endif