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