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