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