# Conditional build: %bcond_without selinux # without SELinux support %bcond_with apidocs # with API docs Summary: Device manager for the Linux kernel Summary(pl.UTF-8): Zarządca urządzeń dla jądra Linuksa Name: udev Version: 3.2.14 Release: 1 Epoch: 2 License: GPL v2+ (udev), LGPL v2.1+ (the rest) Group: Base Source0: https://github.com/eudev-project/eudev/releases/download/v%{version}/eudev-%{version}.tar.gz # Source0-md5: ee1789b524304dfe6d4775b4b39f6d3c # rules Source101: udev-alsa.rules Source102: udev.rules Source103: udev-links.conf # scripts / helpers Source110: udev-net.helper Source111: start_udev # misc Source120: udev.blacklist Source121: fbdev.blacklist Patch0: udev-ploop-rules.patch Patch1: udev-libexecdir.patch # http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames # don't remove it entirely, just change default value to disabled Patch2: udev-net.ifnames.patch URL: https://github.com/eudev-project/eudev BuildRequires: attr-devel BuildRequires: autoconf >= 2.64 BuildRequires: automake >= 1:1.11 BuildRequires: binutils >= 3:2.22.52.0.1-2 BuildRequires: dbus-devel >= 1.3.2 BuildRequires: docbook-style-xsl %{?with_apidocs:BuildRequires: gtk-doc >= 1.18} BuildRequires: gobject-introspection-devel >= 1.31.1 BuildRequires: gperf BuildRequires: kmod-devel >= 14 BuildRequires: libblkid-devel >= 2.20 %{?with_selinux:BuildRequires: libselinux-devel >= 2.1.9} BuildRequires: libtool >= 2:2.2 BuildRequires: libxslt-progs BuildRequires: m4 BuildRequires: pkgconfig >= 0.9.0 BuildRequires: python3-modules BuildRequires: rpmbuild(macros) >= 1.628 BuildRequires: sed >= 4.0 BuildRequires: usbutils >= 0.82 BuildRequires: xz-devel BuildRequires: zlib-devel Requires: udev-core = %{epoch}:%{version}-%{release} Provides: dev = 3.5.0 Obsoletes: dev Obsoletes: hotplug Obsoletes: hotplug-input Obsoletes: hotplug-net Obsoletes: hotplug-pci Obsoletes: udev-dev Obsoletes: udev-extras < 20090628 Obsoletes: udev-tools BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _bindir /bin %define _sbindir /sbin %define _libexecdir %{_prefix}/lib %description udev is the device manager for the Linux kernel. Its primary function is managing device nodes in /dev. It is the successor of devfs and hotplug. %description -l pl.UTF-8 udev jest zarządcą urządzeń dla jądra Linuksa. Jego główną funkcją jest zarządzanie węzłami urządzeń w katalogu /dev. Jest następcą devfs i hotpluga. %package core Summary: A userspace implementation of devfs - core part of udev Summary(pl.UTF-8): Implementacja devfs w przestrzeni użytkownika - główna część udev Group: Base Requires: coreutils Requires: filesystem >= 3.0-45 Requires: kmod >= 14 Requires: libblkid >= 2.20 %{?with_selinux:Requires: libselinux >= 2.1.9} Requires: setup >= 2.6.1-1 Requires: udev-libs = %{epoch}:%{version}-%{release} Requires: uname(release) >= 2.6.32 #Suggests: uname(release) >= 3.0 Obsoletes: udev-compat Obsoletes: udev-initrd < %{epoch}:%{version}-%{release} Conflicts: geninitrd < 12639 Conflicts: rc-scripts < 0.4.5.3-1 Conflicts: systemd-units < 1:183 Conflicts: udev < 1:118-1 %description core A userspace implementation of devfs - core part of udev. %description core -l pl.UTF-8 Implementacja devfs w przestrzeni użytkownika - główna część udev. %package libs Summary: Shared library to access udev device information Summary(pl.UTF-8): Biblioteka współdzielona do dostępu do informacji o urządzeniach udev Group: Libraries %description libs Shared libudev library to access udev device information. %description libs -l pl.UTF-8 Biblioteka współdzielona libudev służąca do dostępu do informacji o urządzeniach udev. %package devel Summary: Header file for libudev library Summary(pl.UTF-8): Plik nagłówkowy biblioteki libudev Group: Development/Libraries Requires: udev-libs = %{epoch}:%{version}-%{release} Obsoletes: udev-static %description devel Header file for libudev library. %description devel -l pl.UTF-8 Plik nagłówkowy biblioteki libudev. %package apidocs Summary: libudev API documentation Summary(pl.UTF-8): Dokumentacja API libudev Group: Documentation Requires: gtk-doc-common %description apidocs libudev API documentation. %description apidocs -l pl.UTF-8 Dokumentacja API libudev. %prep %setup -q -n eudev-%{version} %patch0 -p1 %patch1 -p1 %patch2 -p1 %build %if %{with apidocs} %{__gtkdocize} %endif %{__libtoolize} %{__aclocal} -I m4 %{__autoconf} %{__autoheader} %{__automake} %configure \ --libexecdir=/lib \ --bindir=%{_sbindir} \ %{?debug:--enable-debug} \ %{__enable_disable apidocs gtk-doc} \ %{__enable_disable selinux} \ --disable-silent-rules \ --enable-introspection \ --enable-blkid \ --enable-gudev \ --enable-keymap \ --enable-libkmod \ --enable-manpages \ --enable-modules \ --enable-shared \ --enable-static \ --with-html-dir=%{_gtkdocdir} \ --with-rootprefix="" \ --with-rootlibdir=/%{_lib} \ --with-udevlibexecdir=/lib/udev %{__make} -j1 %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT/var/lib/%{name}/coredump \ $RPM_BUILD_ROOT{%{_sysconfdir}/{udev/hwdb,modprobe}.d,%{_bindir},%{_sbindir},/usr/lib} %{__make} install \ DESTDIR=$RPM_BUILD_ROOT # compatibility symlinks to udevd binary %{__ln} -s %{_sbindir}/udevd $RPM_BUILD_ROOT/lib/udev/udevd # compat symlinks for "/ merged into /usr" programs %{__ln} -s %{_sbindir}/udevadm $RPM_BUILD_ROOT/bin/ %{__ln} -s /lib/udev $RPM_BUILD_ROOT/usr/lib/ # install custom udev rules %{__cp} -a %{SOURCE101} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/40-alsa-restore.rules %{__cp} -a %{SOURCE102} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/70-udev-tld.rules # install udev configs %{__cp} -a %{SOURCE103} $RPM_BUILD_ROOT%{_sysconfdir}/udev/links.conf # install udev executables (scripts, helpers, etc.) install -p %{SOURCE110} $RPM_BUILD_ROOT/lib/udev/net_helper install -p %{SOURCE111} $RPM_BUILD_ROOT%{_sbindir}/start_udev # install misc udev stuff %{__cp} -a %{SOURCE120} $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/udev_blacklist.conf %{__cp} -a %{SOURCE121} $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/fbdev-blacklist.conf :>$RPM_BUILD_ROOT%{_sysconfdir}/udev/hwdb.bin install -d $RPM_BUILD_ROOT/var/log :> $RPM_BUILD_ROOT/var/log/btmp :> $RPM_BUILD_ROOT/var/log/wtmp %clean rm -rf $RPM_BUILD_ROOT %triggerpostun core -- dev if [ "$2" = 0 ]; then # need to kill and restart udevd as after obsoleting dev package the # /dev tree will remain empty. umask is needed as otherwise udev will # create devices with strange permissions (udev bug probably) umask 000 /sbin/start_udev || exit 0 fi %triggerpostun core -- udev < 108 %{__sed} -i -e 's#IMPORT{program}="/sbin/#IMPORT{program}="#g' /etc/udev/rules.d/*.rules %if "%{_lib}" != "lib" %{__sed} -i -e 's#/%{_lib}/udev/#/lib/udev/#g' /etc/udev/rules.d/*.rules %endif %triggerpostun core -- udev < 165 /sbin/udevadm info --convert-db %post core /sbin/udevadm hwdb --update || : if [ $1 -gt 1 ]; then if grep -qs devtmpfs /proc/mounts && [ -n "$(pidof udevd)" ]; then /sbin/udevadm control --exit /lib/udev/udevd --daemon fi fi %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig %files %defattr(644,root,root,755) %dev(c,1,3) %attr(666,root,root) /dev/null %dev(c,5,1) %attr(660,root,console) /dev/console %dev(c,1,5) %attr(666,root,root) /dev/zero %files core %defattr(644,root,root,755) /usr/lib/udev %attr(755,root,root) /lib/udev/collect %attr(755,root,root) /lib/udev/net_helper %attr(755,root,root) /lib/udev/ata_id %attr(755,root,root) /lib/udev/cdrom_id %attr(755,root,root) /lib/udev/dmi_memory_id %attr(755,root,root) /lib/udev/fido_id %attr(755,root,root) /lib/udev/mtd_probe %attr(755,root,root) /lib/udev/scsi_id %attr(755,root,root) /lib/udev/v4l_id %attr(755,root,root) /lib/udev/udevd %dir /lib/udev/hwdb.d /lib/udev/hwdb.d/20-OUI.hwdb /lib/udev/hwdb.d/20-acpi-vendor.hwdb /lib/udev/hwdb.d/20-bluetooth-vendor-product.hwdb /lib/udev/hwdb.d/20-dmi-id.hwdb /lib/udev/hwdb.d/20-net-ifname.hwdb /lib/udev/hwdb.d/20-pci-classes.hwdb /lib/udev/hwdb.d/20-pci-vendor-model.hwdb /lib/udev/hwdb.d/20-sdio-classes.hwdb /lib/udev/hwdb.d/20-sdio-vendor-model.hwdb /lib/udev/hwdb.d/20-usb-classes.hwdb /lib/udev/hwdb.d/20-usb-vendor-model.hwdb /lib/udev/hwdb.d/20-vmbus-class.hwdb /lib/udev/hwdb.d/60-autosuspend.hwdb /lib/udev/hwdb.d/60-autosuspend-fingerprint-reader.hwdb /lib/udev/hwdb.d/60-evdev.hwdb /lib/udev/hwdb.d/60-input-id.hwdb /lib/udev/hwdb.d/60-keyboard.hwdb /lib/udev/hwdb.d/60-seat.hwdb /lib/udev/hwdb.d/60-sensor.hwdb /lib/udev/hwdb.d/70-analyzers.hwdb /lib/udev/hwdb.d/70-av-production.hwdb /lib/udev/hwdb.d/70-cameras.hwdb /lib/udev/hwdb.d/70-joystick.hwdb /lib/udev/hwdb.d/70-mouse.hwdb /lib/udev/hwdb.d/70-pda.hwdb /lib/udev/hwdb.d/70-pointingstick.hwdb /lib/udev/hwdb.d/70-touchpad.hwdb /lib/udev/hwdb.d/80-ieee1394-unit-function.hwdb %attr(755,root,root) %{_sbindir}/start_udev %attr(755,root,root) %{_sbindir}/udevd %attr(755,root,root) %{_sbindir}/udevadm %attr(755,root,root) %{_bindir}/udevadm %dir %{_sysconfdir}/udev %dir %{_sysconfdir}/udev/rules.d %dir %{_sysconfdir}/udev/hwdb.d %ghost %{_sysconfdir}/udev/hwdb.bin %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modprobe.d/fbdev-blacklist.conf %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/modprobe.d/udev_blacklist.conf %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/links.conf %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/rules.d/40-alsa-restore.rules %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/rules.d/70-udev-tld.rules %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/udev.conf # rules below are NOT supposed to be changed by users /lib/udev/rules.d/50-udev-default.rules /lib/udev/rules.d/60-autosuspend.rules /lib/udev/rules.d/60-cdrom_id.rules /lib/udev/rules.d/60-block.rules /lib/udev/rules.d/60-drm.rules /lib/udev/rules.d/60-evdev.rules /lib/udev/rules.d/60-fido-id.rules /lib/udev/rules.d/60-input-id.rules /lib/udev/rules.d/60-persistent-alsa.rules /lib/udev/rules.d/60-persistent-input.rules /lib/udev/rules.d/60-persistent-storage-tape.rules /lib/udev/rules.d/60-persistent-storage.rules /lib/udev/rules.d/60-persistent-v4l.rules /lib/udev/rules.d/60-sensor.rules /lib/udev/rules.d/60-serial.rules /lib/udev/rules.d/64-btrfs.rules /lib/udev/rules.d/70-camera.rules /lib/udev/rules.d/70-joystick.rules /lib/udev/rules.d/70-memory.rules /lib/udev/rules.d/70-mouse.rules /lib/udev/rules.d/70-touchpad.rules /lib/udev/rules.d/75-net-description.rules /lib/udev/rules.d/75-probe_mtd.rules /lib/udev/rules.d/78-sound-card.rules /lib/udev/rules.d/80-drivers.rules /lib/udev/rules.d/80-net-name-slot.rules /lib/udev/rules.d/81-net-dhcp.rules %{_mandir}/man5/udev.conf.5* %{_mandir}/man7/hwdb.7* %{_mandir}/man7/udev.7* %{_mandir}/man8/udevadm.8* %{_mandir}/man8/udevd.8* %files libs %defattr(644,root,root,755) %attr(755,root,root) /%{_lib}/libudev.so.*.*.* %attr(755,root,root) %ghost /%{_lib}/libudev.so.1 %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libudev.so %{_includedir}/libudev.h %{_includedir}/udev.h %{_pkgconfigdir}/libudev.pc %{_npkgconfigdir}/udev.pc %if %{with apidocs} %files apidocs %defattr(644,root,root,755) %{_gtkdocdir}/libudev %endif