# TODO:
-# - systemd have more rules, check them and add if possible
# - get rules patches from systemd (if any)
#
# Conditional build:
%bcond_without selinux # without SELinux support
+%bcond_with apidocs # with API docs
-Summary: Device manager for the Linux 2.6 kernel series
-Summary(pl.UTF-8): Zarządca urządzeń dla Linuksa 2.6
+Summary: Device manager for the Linux kernel
+Summary(pl.UTF-8): Zarządca urządzeń dla jądra Linuksa
Name: udev
-Version: 2.1.1
-Release: 0.1
+Version: 3.2.9
+Release: 2
Epoch: 2
License: GPL v2+ (udev), LGPL v2.1+ (the rest)
Group: Base
Source0: http://dev.gentoo.org/~blueness/eudev/eudev-%{version}.tar.gz
-# Source0-md5: dd945ce34314b4544e9036153d3a97e9
+# Source0-md5: dedfb1964f6098fe9320de827957331f
# rules
Source101: udev-alsa.rules
Source102: udev.rules
Source121: fbdev.blacklist
Patch0: udev-ploop-rules.patch
Patch1: udev-libexecdir.patch
-URL: http://www.gentoo.org/proj/en/eudev/
+# 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://wiki.gentoo.org/wiki/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
-BuildRequires: glib2-devel >= 1:2.22.0
-BuildRequires: glibc-misc
-BuildRequires: gobject-introspection-devel >= 1.31.1
-BuildRequires: gperf
-BuildRequires: gtk-doc >= 1.18
+%{?with_apidocs:BuildRequires: gtk-doc >= 1.18}
BuildRequires: kmod-devel >= 14
BuildRequires: libblkid-devel >= 2.20
%{?with_selinux:BuildRequires: libselinux-devel >= 2.1.9}
%define _libexecdir %{_prefix}/lib
%description
-udev is the device manager for the Linux 2.6 kernel series. Its
-primary function is managing device nodes in /dev. It is the successor
-of devfs and hotplug.
+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 Linuksa 2.6. Jego główną funkcją jest
-zarządzanie węzłami urządzeń w katalogu /dev. Jest następcą devfs i
-hotpluga.
+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
Requires: uname(release) >= 2.6.32
#Suggests: uname(release) >= 3.0
Obsoletes: udev-compat
-Obsoletes: udev-initrd < %{epoch}:%{version}-%{release}}
+Obsoletes: udev-initrd < %{epoch}:%{version}-%{release}
Conflicts: geninitrd < 12639
Conflicts: rc-scripts < 0.4.5.3-1
Conflicts: systemd-units < 1:183
%description apidocs -l pl.UTF-8
Dokumentacja API libudev.
-%package glib
-Summary: Shared libgudev library - GObject bindings for libudev
-Summary(pl.UTF-8): Biblioteka współdzielona libgudev - wiązania GObject do libudev
-Group: Libraries
-Requires: glib2 >= 1:2.22.0
-Requires: udev-libs = %{epoch}:%{version}-%{release}
-
-%description glib
-Shared libgudev library - GObject bindings for libudev.
-
-%description glib -l pl.UTF-8
-Biblioteka współdzielona libgudev - wiązania GObject do libudev.
-
-%package glib-devel
-Summary: Header file for libgudev library
-Summary(pl.UTF-8): Plik nagłówkowy biblioteki libgudev
-Group: Development/Libraries
-Requires: glib2-devel >= 1:2.22.0
-Requires: udev-devel = %{epoch}:%{version}-%{release}
-Requires: udev-glib = %{epoch}:%{version}-%{release}
-Obsoletes: udev-glib-static
-
-%description glib-devel
-Header file for libgudev library.
-
-%description glib-devel -l pl.UTF-8
-Plik nagłówkowy biblioteki libgudev.
-
-%package glib-apidocs
-Summary: libgudev API documentation
-Summary(pl.UTF-8): Dokumentacja API libgudev
-Group: Documentation
-Requires: gtk-doc-common
-
-%description glib-apidocs
-libgudev API documentation.
-
-%description glib-apidocs -l pl.UTF-8
-Dokumentacja API libgudev.
-
%prep
%setup -q -n eudev-%{version}
%patch0 -p1
%patch1 -p1
+%patch2 -p1
%build
+%if %{with apidocs}
%{__gtkdocize}
+%endif
%{__libtoolize}
%{__aclocal} -I m4
%{__autoconf}
--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-gtk-doc \
--enable-keymap \
--enable-libkmod \
--enable-manpages \
--enable-modules \
- --enable-rule-generator \
--enable-shared \
--enable-static \
--with-html-dir=%{_gtkdocdir} \
%{__ln} -s %{_sbindir}/udevadm $RPM_BUILD_ROOT/bin/
%{__ln} -s /lib/udev $RPM_BUILD_ROOT/usr/lib/
-# install custom udev rules from pld package
+# 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-pld.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
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
-%post glib -p /sbin/ldconfig
-%postun glib -p /sbin/ldconfig
-
%files
%defattr(644,root,root,755)
%dev(c,1,3) %attr(666,root,root) /dev/null
%attr(755,root,root) /lib/udev/udevd
-%attr(755,root,root) /lib/udev/accelerometer
-
-%attr(755,root,root) /lib/udev/write_cd_rules
-%attr(755,root,root) /lib/udev/write_net_rules
-/lib/udev/rule_generator.functions
-
%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-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-evdev.hwdb
/lib/udev/hwdb.d/60-keyboard.hwdb
+/lib/udev/hwdb.d/60-sensor.hwdb
+/lib/udev/hwdb.d/70-mouse.hwdb
+/lib/udev/hwdb.d/70-pointingstick.hwdb
+/lib/udev/hwdb.d/70-touchpad.hwdb
%attr(755,root,root) %{_sbindir}/start_udev
%attr(755,root,root) %{_sbindir}/udevd
%attr(755,root,root) %{_sbindir}/udevadm
-%attr(755,root,root) /bin/udevadm
+%attr(755,root,root) %{_bindir}/udevadm
%dir %{_sysconfdir}/udev
%dir %{_sysconfdir}/udev/rules.d
%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-pld.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/42-usb-hid-pm.rules
/lib/udev/rules.d/50-udev-default.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-keyboard.rules
+/lib/udev/rules.d/60-evdev.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-serial.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/61-accelerometer.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/75-cd-aliases-generator.rules
+/lib/udev/rules.d/70-joystick.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-persistent-net-generator.rules
/lib/udev/rules.d/75-probe_mtd.rules
-/lib/udev/rules.d/75-tty-description.rules
/lib/udev/rules.d/78-sound-card.rules
/lib/udev/rules.d/80-drivers.rules
-/lib/udev/rules.d/95-udev-late.rules
+/lib/udev/rules.d/80-net-name-slot.rules
%{_mandir}/man5/udev.conf.5*
%{_mandir}/man7/udev.7*
%{_mandir}/man8/udevadm.8*
%{_pkgconfigdir}/libudev.pc
%{_npkgconfigdir}/udev.pc
+%if %{with apidocs}
%files apidocs
%defattr(644,root,root,755)
%{_gtkdocdir}/libudev
-
-%files glib
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libgudev-1.0.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libgudev-1.0.so.0
-%{_libdir}/girepository-1.0/GUdev-1.0.typelib
-
-%files glib-devel
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libgudev-1.0.so
-%{_includedir}/gudev-1.0
-%{_pkgconfigdir}/gudev-1.0.pc
-%{_datadir}/gir-1.0/GUdev-1.0.gir
-
-%files glib-apidocs
-%defattr(644,root,root,755)
-%{_gtkdocdir}/gudev
+%endif