-#
# TODO:
-# - remove compat-pld-var-run.tmpfiles and maybe tmpfiles-not-fatal.patch
-# after enough packages provide their own tmpfiles.d configs for
-# /var/run directories
+# - pldize vconsole setup:
+# http://cgit.freedesktop.org/systemd/systemd/tree/src/vconsole/vconsole-setup.c
+# - udev initrd needs love (is probably completly unusable in current form)
#
# Conditional build:
%bcond_without audit # without audit support
%bcond_without cryptsetup # without cryptsetup support
-%bcond_without gtk # build gtk tools
%bcond_without pam # PAM authentication support
-%bcond_with plymouth # plymouth support
+%bcond_without plymouth # do not install plymouth units
%bcond_without selinux # without SELinux support
%bcond_without tcpd # libwrap (tcp_wrappers) support
+%bcond_without initrd # build without udev-initrd
+%bcond_with uClibc # link initrd version with static uClibc
+%bcond_with klibc # link initrd version with static klibc
+%bcond_with dietlibc # link initrd version with static dietlibc (currently broken and unsupported)
+%bcond_without glibc # link initrd version with static glibc
+
+%ifarch sparc sparc64
+%define with_glibc 1
+%endif
+
+# if one of the *libc is enabled disable default uClibc
+%if %{with dietlibc} && %{with uClibc}
+%undefine with_uClibc
+%endif
+
+%if %{with glibc} && %{with uClibc}
+%undefine with_uClibc
+%endif
+
+%if %{with klibc} && %{with uClibc}
+%undefine with_uClibc
+%endif
+
Summary: A System and Service Manager
Summary(pl.UTF-8): systemd - zarządca systemu i usług dla Linuksa
Name: systemd
-Version: 44
-Release: 3
+# Verify ChangeLog and NEWS when updating (since there are incompatible/breaking changes very often)
+Version: 183
+Release: 0.7
+Epoch: 1
License: GPL v2+
Group: Base
Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.xz
-# Source0-md5: 11f44ff74c87850064e4351518bcff17
+# Source0-md5: e1e5e0f376fa2a4cb4bc31a2161c09f2
Source1: %{name}-sysv-convert
Source2: %{name}_booted.c
Source3: network.service
-Source4: compat-pld-media.tmpfiles
-Source5: compat-pld-var-run.tmpfiles
+Source4: var-lock.mount
+Source5: var-run.mount
Source10: pld-storage-init-late.service
Source11: pld-storage-init.service
Source12: pld-wait-storage.service
Source13: pld-storage-init.sh
+Source14: pld-clean-tmp.service
+Source15: pld-clean-tmp.sh
+# 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: target-pld.patch
Patch1: config-pld.patch
Patch2: shut-sysv-up.patch
Patch3: pld-sysv-network.patch
Patch4: tmpfiles-not-fatal.patch
-Patch5: CVE-2012-1174.patch
+Patch5: kmsg-to-syslog.patch
+Patch6: udev-so.patch
+Patch7: udev-uClibc.patch
+Patch8: udev-ploop-rules.patch
+Patch9: udevlibexecdir.patch
+Patch10: static-udev.patch
+Patch11: systemd-udev-service.patch
+Patch12: udevadm-in-sbin.patch
URL: http://www.freedesktop.org/wiki/Software/systemd
BuildRequires: acl-devel
%{?with_audit:BuildRequires: audit-libs-devel}
%{?with_cryptsetup:BuildRequires: cryptsetup-luks-devel}
BuildRequires: dbus-devel >= 1.3.2
BuildRequires: docbook-style-xsl
+BuildRequires: glib2-devel >= 1:2.22.0
+BuildRequires: glibc-misc
+BuildRequires: gobject-introspection-devel >= 0.6.2
BuildRequires: gperf
+BuildRequires: gtk-doc >= 1.10
BuildRequires: intltool >= 0.40.0
BuildRequires: kmod-devel >= 5
+BuildRequires: libblkid-devel >= 2.20
BuildRequires: libcap-devel
%{?with_selinux:BuildRequires: libselinux-devel >= 2.1.0}
BuildRequires: libtool >= 2:2.2
BuildRequires: libxslt-progs
BuildRequires: m4
%{?with_pam:BuildRequires: pam-devel}
+BuildRequires: pciutils
BuildRequires: pkgconfig >= 0.9.0
-BuildRequires: rpmbuild(macros) >= 1.627
-BuildRequires: udev-devel >= 1:172
-# not required for building from release (which contains *.c for *.vala)
-#BuildRequires: vala >= 0.10.0
+BuildRequires: python-modules
+BuildRequires: rpmbuild(macros) >= 1.628
+BuildRequires: sed >= 4.0
+BuildRequires: usbutils >= 0.82
BuildRequires: xz-devel
-%if %{with gtk}
-BuildRequires: glib2-devel >= 1:2.26.1
-BuildRequires: gtk+2-devel >= 2:2.24.0
-BuildRequires: libgee-devel
-BuildRequires: libnotify-devel >= 0.7.0
+BuildRequires: zlib-devel
+%if %{with initrd}
+BuildRequires: acl-static
+BuildRequires: attr-static
+%{?with_dietlibc:BuildRequires: dietlibc-static}
+BuildRequires: glib2-static >= 1:2.22.0
+%{?with_glibc:BuildRequires: glibc-static}
+%{?with_klibc:BuildRequires: klibc-static}
+BuildRequires: kmod-libs-static >= 5
+BuildRequires: libblkid-static >= 2.20
+%{?with_glibc:BuildRequires: libselinux-static}
+%{?with_glibc:BuildRequires: libsepol-static}
+%{?with_klibc:BuildRequires: linux-libc-headers}
+BuildRequires: pcre-static
+%{?with_uClibc:BuildRequires: uClibc-static >= 4:0.9.30.3}
+BuildRequires: xz-static
+BuildRequires: zlib-static
%endif
-Requires: %{name}-libs = %{version}-%{release}
-Requires: %{name}-units = %{version}-%{release}
+Requires: %{name}-libs = %{epoch}:%{version}-%{release}
+Requires: %{name}-units = %{epoch}:%{version}-%{release}
Requires: /etc/os-release
Requires: SysVinit-tools
Requires: agetty
Requires: dbus >= 1.4.16-6
Requires: filesystem >= 4.0-2
Requires: libutempter
-Requires: rc-scripts >= 0.4.5.1-7
+Requires: rc-scripts >= 0.4.5.3-7
Requires: setup >= 2.8.0-2
Requires: udev-core >= 1:175-5
Requires: udev-libs >= 1:172
Requires: virtual(module-tools)
-Suggests: %{name}-no-compat-tmpfiles
Suggests: ConsoleKit
Suggests: fsck >= 2.20
Suggests: kmod >= 5
Suggests: service(klogd)
Suggests: service(syslog)
Provides: udev-acl
+Obsoletes: systemd-no-compat-tmpfiles
# systemd takes care of that and causes problems
Conflicts: binfmt-detector
# sytemd wants pam with pam_systemd.so in system-auth...
Conflicts: sudo < 1:1.7.8p2-4
# for prefdm script
Conflicts: xinitrc-ng < 1.0
+# systemd scripts use options not present in older versions
+Conflicts: kpartx < 0.4.9-7
+Conflicts: multipath-tools < 0.4.9-7
+# no tmpfs on /media, use /run/media/$USER for mounting
+Conflicts: udisks2 < 1.92.0
+# packages that have dirs under /var/run and/or /var/lock must provide tmpfiles configs
+Conflicts: ConsoleKit-dirs < 0.4.5-7
+Conflicts: NetworkManager < 2:0.9.2.0-3
+Conflicts: Zope < 2.11.8-2
+Conflicts: amavisd-new < 1:2.7.0-1
+Conflicts: apache-base < 2.2.21-4
+Conflicts: apache-mod_bw < 0.92-3
+Conflicts: apache-mod_fastcgi < 2.4.6-6
+Conflicts: apache1-base < 1.3.42-5
+Conflicts: apache1-mod_fastcgi < 2.4.6-2
+Conflicts: asterisk < 10.0.1-2
+Conflicts: autossh-init < 1.4b-3
+Conflicts: balance < 3.54-2
+Conflicts: bind < 7:9.8.1.P1-4
+Conflicts: bopm < 3.1.3-4
+Conflicts: callweaver < 1.2.1-9
+Conflicts: cassandra-bin < 0.8.9-2
+Conflicts: clamav < 0.97.3-3
+Conflicts: cups < 1:1.5.0-10
+Conflicts: dbus < 1.4.16-4
+Conflicts: dovecot < 1:2.0.16-3
+Conflicts: dspam < 3.9.0-6
+Conflicts: fail2ban < 0.8.4-4
+Conflicts: filesystem < 4.0-3
+Conflicts: gammu-smsd < 1:1.31.0-3
+# Break gdm2.20 installs
+#Conflicts: gdm < 2:3.2.1.1-9
+Conflicts: greylistd < 0.8.8-2
+Conflicts: inn < 2.4.6-7
+Conflicts: ipsec-tools < 0.8.0-3
+Conflicts: jabber-common < 0-9
+Conflicts: laptop-mode-tools < 1.58-2
+Conflicts: libgpod < 0.8.0-6
+Conflicts: libvirt-utils < 0.9.9-4
+Conflicts: lighttpd < 1.4.30-5
+Conflicts: lirc < 0.9.0-20
+Conflicts: mailman < 5:2.1.14-4
+Conflicts: memcached < 1.4.11-2
+Conflicts: mpd < 0.16.5-4
+Conflicts: mrtg < 2.17.0-3
+Conflicts: munin-common < 1.4.5-5
+Conflicts: nagios-nrpe < 2.13-2
+Conflicts: ndisc6-rdnssd < 1.0.1-3
+Conflicts: nscd < 6:2.14.1-5
+Conflicts: nss_ldapd-nslcd < 0.8.4-2
+Conflicts: openct < 0.6.20-3
+Conflicts: openl2tp < 1.8-3
+Conflicts: openldap-overlay-nssov < 2.4.28-4
+Conflicts: openldap-servers < 2.4.28-4
+Conflicts: openvpn < 2.2.2-2
+Conflicts: pam-pam_mount < 2.12-3
+Conflicts: pam-pam_ssh < 1.97-2
+Conflicts: pcsc-lite < 1.8.1-2
+Conflicts: php-dirs < 1.2-3
+Conflicts: policyd < 2.0.10-3
+Conflicts: pound < 2.6-2
+Conflicts: pptp < 1.7.2-3
+Conflicts: proftpd-common < 2:1.3.4a-2
+Conflicts: pulseaudio-server < 1.1-2
+Conflicts: quagga < 0.99.20-3
+Conflicts: radvd < 1.8.5-2
+Conflicts: rc-scripts < 0.4.5.2-3
+Conflicts: red5 < 0.9.0-2
+Conflicts: redis-server < 2.4.2-4
+Conflicts: smokeping < 2.4.2-10
+Conflicts: smtp-gated < 1.4.17-2
+Conflicts: socat < 1.7.2.0-2
+Conflicts: speech-dispatcher < 0.7.1-2
+Conflicts: sphinx < 2.0.3-4
+Conflicts: splashutils < 1.5.4.3-3
+Conflicts: stunnel < 4.50-2
+Conflicts: tenshi < 0.12-2
+Conflicts: tor < 0.2.2.35-2
+Conflicts: ucarp < 1.5.2-3
+Conflicts: udisks < 1.0.4-3
+Conflicts: util-vserver < 0.30.216-1.pre3002.3
+Conflicts: vpnc < 0.5.3-2
+Conflicts: web2ldap < 1.1.0rc1-2
+Conflicts: wesnoth-server < 1:1.10-2
+Conflicts: wpa_supplicant < 0.7.3-10
+Conflicts: xl2tpd < 1.3.0-2
+# end of tmpfiles conflicts
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define _sbindir /sbin
%define _libexecdir %{_prefix}/lib
%description
Summary: Plymouth support units for systemd
Summary(pl.UTF-8): Jednostki wspierające Plymouth dla systemd
Group: Base
-Requires: %{name}-units = %{version}-%{release}
+Requires: %{name}-units = %{epoch}:%{version}-%{release}
+Requires: plymouth
%description plymouth
Plymouth (graphical boot) support units for systemd.
%description plymouth -l pl.UTF-8
Jednostki wspierające Plymouth (graficzny start systemu) dla systemd.
-%package gtk
-Summary: Graphical frontend for systemd
-Summary(pl.UTF-8): Graficzny interfejs do systemd
-Group: Base
-Requires: %{name} = %{version}-%{release}
-Requires: polkit
-
-%description gtk
-Graphical front-end for systemd.
-
-%description gtk -l pl.UTF-8
-Graficzny interfejs do systemd.
-
%package analyze
Summary: Tool for processing systemd profiling information
Group: Base
-Requires: %{name} = %{version}-%{release}
+Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: python-dbus
Requires: python-modules
Requires: python-pycairo
Summary: Header files for systemd libraries
Summary(pl.UTF-8): Pliki nagłówkowe bibliotek systemd
Group: Development/Libraries
-Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name}-libs = %{epoch}:%{version}-%{release}
%description devel
Header files for systemd libraries.
Summary: bash-completion for systemd
Summary(pl.UTF-8): Bashowe dopełnianie składni dla systemd
Group: Applications/Shells
-Requires: %{name}
+Requires: %{name} = %{epoch}:%{version}
Requires: bash-completion
%description -n bash-completion-systemd
%description -n bash-completion-systemd -l pl.UTF-8
Bashowe dopełnianie składni dla systemd
-%package no-compat-tmpfiles
-Summary: Force update of packages that provide tmpfiles.d configuration
+%package -n udev
+Summary: Device manager for the Linux 2.6 kernel series
+Summary(pl.UTF-8): Zarządca urządzeń dla Linuksa 2.6
Group: Base
-Requires(post): sed > 4.0
-Conflicts: ConsoleKit-dirs < 0.4.5-7
-Conflicts: NetworkManager < 2:0.9.2.0-3
-Conflicts: Zope < 2.11.8-2
-Conflicts: amavisd-new < 1:2.7.0-1
-Conflicts: apache-base < 2.2.21-4
-Conflicts: apache-mod_bw < 0.92-3
-Conflicts: apache-mod_fastcgi < 2.4.6-6
-Conflicts: apache1-base < 1.3.42-5
-Conflicts: apache1-mod_fastcgi < 2.4.6-2
-Conflicts: asterisk < 10.0.1-2
-Conflicts: autossh-init < 1.4b-3
-Conflicts: balance < 3.54-2
-Conflicts: bind < 7:9.8.1.P1-4
-Conflicts: bopm < 3.1.3-4
-Conflicts: callweaver < 1.2.1-9
-Conflicts: cassandra-bin < 0.8.9-2
-Conflicts: clamav < 0.97.3-3
-Conflicts: cups < 1:1.5.0-10
-Conflicts: dbus < 1.4.16-4
-Conflicts: dovecot < 1:2.0.16-3
-Conflicts: dspam < 3.9.0-6
-Conflicts: fail2ban < 0.8.4-4
-Conflicts: filesystem < 4.0-3
-Conflicts: gammu-smsd < 1:1.31.0-3
-# Break gdm2.20 installs
-#Conflicts: gdm < 2:3.2.1.1-9
-Conflicts: greylistd < 0.8.8-2
-Conflicts: inn < 2.4.6-7
-Conflicts: ipsec-tools < 0.8.0-3
-Conflicts: jabber-common < 0-9
-Conflicts: laptop-mode-tools < 1.58-2
-Conflicts: libgpod < 0.8.0-6
-Conflicts: libvirt-utils < 0.9.9-4
-Conflicts: lighttpd < 1.4.30-5
-Conflicts: lirc < 0.9.0-20
-Conflicts: mailman < 5:2.1.14-4
-Conflicts: memcached < 1.4.11-2
-Conflicts: mpd < 0.16.5-4
-Conflicts: mrtg < 2.17.0-3
-Conflicts: munin-common < 1.4.5-5
-Conflicts: nagios-nrpe < 2.13-2
-Conflicts: ndisc6-rdnssd < 1.0.1-3
-Conflicts: nscd < 6:2.14.1-5
-Conflicts: nss_ldapd-nslcd < 0.8.4-2
-Conflicts: openct < 0.6.20-3
-Conflicts: openl2tp < 1.8-3
-Conflicts: openldap-overlay-nssov < 2.4.28-4
-Conflicts: openldap-servers < 2.4.28-4
-Conflicts: openvpn < 2.2.2-2
-Conflicts: pam-pam_mount < 2.12-3
-Conflicts: pam-pam_ssh < 1.97-2
-Conflicts: pcsc-lite < 1.8.1-2
-Conflicts: php-dirs < 1.2-3
-Conflicts: policyd < 2.0.10-3
-Conflicts: pound < 2.6-2
-Conflicts: pptp < 1.7.2-3
-Conflicts: proftpd-common < 2:1.3.4a-2
-Conflicts: pulseaudio-server < 1.1-2
-Conflicts: quagga < 0.99.20-3
-Conflicts: radvd < 1.8.5-2
-Conflicts: rc-scripts < 0.4.5.2-3
-Conflicts: red5 < 0.9.0-2
-Conflicts: redis-server < 2.4.2-4
-Conflicts: smokeping < 2.4.2-10
-Conflicts: smtp-gated < 1.4.17-2
-Conflicts: socat < 1.7.2.0-2
-Conflicts: speech-dispatcher < 0.7.1-2
-Conflicts: sphinx < 2.0.3-4
-Conflicts: splashutils < 1.5.4.3-3
-Conflicts: stunnel < 4.50-2
-Conflicts: tenshi < 0.12-2
-Conflicts: tor < 0.2.2.35-2
-Conflicts: ucarp < 1.5.2-3
-Conflicts: udisks < 1.0.4-3
-Conflicts: util-vserver < 0.30.216-1.pre3002.3
-Conflicts: vpnc < 0.5.3-2
-Conflicts: web2ldap < 1.1.0rc1-2
-Conflicts: wesnoth-server < 1:1.10-2
-Conflicts: wpa_supplicant < 0.7.3-10
-Conflicts: xl2tpd < 1.3.0-2
+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-compat
+Obsoletes: udev-dev
+Obsoletes: udev-extras < 20090628
+Obsoletes: udev-tools
+
+%description -n udev
+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.
+
+%description -n udev -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.
+
+%package -n udev-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(post,preun,postun): systemd-units >= 38
+Requires: udev-libs = %{epoch}:%{version}-%{release}
+Requires: coreutils
+Requires: filesystem >= 3.0-45
+Requires: setup >= 2.6.1-1
+Requires: systemd-units >= 0.38
+Requires: uname(release) >= 2.6.32
+Obsoletes: udev-systemd
+Conflicts: rc-scripts < 0.4.5.3-1
+Conflicts: udev < 1:118-1
+
+%description -n udev-core
+A userspace implementation of devfs - core part of udev.
+
+%description -n udev-core -l pl.UTF-8
+Implementacja devfs w przestrzeni użytkownika - główna część udev.
+
+%package -n udev-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 -n udev-libs
+Shared libudev library to access udev device information.
+
+%description -n udev-libs -l pl.UTF-8
+Biblioteka współdzielona libudev służąca do dostępu do informacji o
+urządzeniach udev.
+
+%package -n udev-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}
+
+%description -n udev-devel
+Header file for libudev library.
+
+%description -n udev-devel -l pl.UTF-8
+Plik nagłówkowy biblioteki libudev.
+
+%package -n udev-static
+Summary: Static libudev library
+Summary(pl.UTF-8): Biblioteka statyczna libudev
+Group: Development/Libraries
+Requires: udev-devel = %{epoch}:%{version}-%{release}
+
+%description -n udev-static
+Static libudev library.
+
+%description -n udev-static -l pl.UTF-8
+Biblioteka statyczna libudev.
+
+%package -n udev-apidocs
+Summary: libudev API documentation
+Summary(pl.UTF-8): Dokumentacja API libudev
+Group: Documentation
+Requires: gtk-doc-common
+
+%description -n udev-apidocs
+libudev API documentation.
+
+%description -n udev-apidocs -l pl.UTF-8
+Dokumentacja API libudev.
+
+%package -n udev-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: udev-libs = %{epoch}:%{version}-%{release}
+Requires: glib2 >= 1:2.22.0
+
+%description -n udev-glib
+Shared libgudev library - GObject bindings for libudev.
+
+%description -n udev-glib -l pl.UTF-8
+Biblioteka współdzielona libgudev - wiązania GObject do libudev.
+
+%package -n udev-glib-devel
+Summary: Header file for libgudev library
+Summary(pl.UTF-8): Plik nagłówkowy biblioteki libgudev
+Group: Development/Libraries
+Requires: udev-devel = %{epoch}:%{version}-%{release}
+Requires: udev-glib = %{epoch}:%{version}-%{release}
+Requires: glib2-devel >= 1:2.22.0
+
+%description -n udev-glib-devel
+Header file for libgudev library.
+
+%description -n udev-glib-devel -l pl.UTF-8
+Plik nagłówkowy biblioteki libgudev.
+
+%package -n udev-glib-static
+Summary: Static libgudev library
+Summary(pl.UTF-8): Biblioteka statyczna libgudev
+Group: Development/Libraries
+Requires: udev-glib-devel = %{epoch}:%{version}-%{release}
+
+%description -n udev-glib-static
+Static libgudev library.
+
+%description -n udev-glib-static -l pl.UTF-8
+Biblioteka statyczna libgudev.
+
+%package -n udev-glib-apidocs
+Summary: libgudev API documentation
+Summary(pl.UTF-8): Dokumentacja API libgudev
+Group: Documentation
+Requires: gtk-doc-common
+
+%description -n udev-glib-apidocs
+libgudev API documentation.
-%description no-compat-tmpfiles
-Force update of packages that provide tmpfiles.d configuration
+%description -n udev-glib-apidocs -l pl.UTF-8
+Dokumentacja API libgudev.
+
+%package -n udev-initrd
+Summary: A userspace implementation of devfs - static binary for initrd
+Summary(pl.UTF-8): Implementacja devfs w przestrzeni użytkownika - statyczna binarka dla initrd
+Group: Base
+Requires: udev-core = %{epoch}:%{version}-%{release}
+Conflicts: geninitrd < 10000.10
+
+%description -n udev-initrd
+A userspace implementation of devfs - static binary for initrd.
+
+%description -n udev-initrd -l pl.UTF-8
+Implementacja devfs w przestrzeni użytkownika - statyczna binarka dla
+initrd.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
-%patch2 -p1
+#patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
+%if %{with uClibc}
+%patch7 -p1
+%endif
+%patch8 -p1
+%patch9 -p1
+%patch11 -p1
+%patch12 -p1
cp -p %{SOURCE2} src/systemd_booted.c
+%{__mv} src/udev/keymap/keyboard-force-release.sh{,.in}
+
%build
+%{__gtkdocize}
+%{__libtoolize}
%{__aclocal} -I m4
%{__autoconf}
%{__autoheader}
%{__automake}
+%if %{with initrd}
+patch -p1 <%{PATCH10}
%configure \
+%if "%{?configure_cache}" == "1"
+ --cache-file=%{?configure_cache_file}%{!?configure_cache_file:configure}-initrd.cache \
+%endif
+ %{?with_uClibc:CC="%{_target_cpu}-uclibc-gcc"} \
+ %{?with_dietlibc:CC="diet %{__cc} %{rpmcflags} %{rpmldflags} -Os -D_BSD_SOURCE"} \
+ %{?with_klibc:CC="%{_bindir}/klcc"} \
+ %{?debug:--enable-debug} \
+ --disable-silent-rules \
+ --disable-shared \
+ --enable-static \
+ --with-distro=pld \
+ --with-rootprefix="" \
+ --with-rootlibdir=/%{_lib} \
+ --disable-rule_generator \
+ --disable-gudev \
+ --disable-keymap \
+ --disable-gtk-doc \
+ --disable-introspection \
+ --disable-logging \
+ --with-pci-ids-path=%{_sysconfdir}/pci.ids \
+ --disable-audit \
+ --disable-cryptsetup \
+ --disable-pam \
+ --disable-plymouth \
+ --disable-selinux \
+ --disable-tcpd \
+ --enable-split-usr
+
+%{__make} \
+ libudev-core.la \
+ systemd-udevd \
+ udevadm \
+ ata_id \
+ cdrom_id \
+ collect \
+ scsi_id \
+ v4l_id \
+ accelerometer \
+ mtd_probe \
+ LDFLAGS="-all-static" \
+ KMOD_LIBS="-lkmod -lz -llzma"
+
+mkdir udev-initrd
+cp -a systemd-udevd \
+ udevadm \
+ ata_id \
+ cdrom_id \
+ collect \
+ scsi_id \
+ v4l_id \
+ accelerometer \
+ mtd_probe \
+ udev-initrd/
+
+%{__make} clean
+patch -p1 -R <%{PATCH10}
+%endif
+
+%configure \
+ %{?debug:--enable-debug} \
%{__enable_disable audit} \
%{__enable_disable cryptsetup libcryptsetup} \
- %{__enable_disable gtk} \
%{__enable_disable pam} \
%{__enable_disable plymouth} \
%{__enable_disable selinux} \
%{__enable_disable tcpd tcpwrap} \
--disable-silent-rules \
- --disable-static \
+ --enable-shared \
+ --enable-static \
--with-distro=pld \
- --with-rootprefix= \
+ --with-rootprefix="" \
--with-rootlibdir=/%{_lib} \
+ --with-html-dir=%{_gtkdocdir} \
+ --with-pci-ids-path=%{_sysconfdir}/pci.ids \
+ --enable-gtk-doc \
+ --enable-introspection \
--enable-split-usr
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/var/lib/%{name}/coredump
+install -d $RPM_BUILD_ROOT/var/lib/%{name}/coredump \
+ $RPM_BUILD_ROOT{%{_sysconfdir}/modprobe.d,%{_sbindir}}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-./libtool --mode=install install -m755 systemd_booted $RPM_BUILD_ROOT/bin/systemd_booted
+./libtool --mode=install install -p -m755 systemd_booted $RPM_BUILD_ROOT/bin/systemd_booted
+
+# compatibility symlinks to udevd binary
+ln -s /lib/systemd/systemd-udevd $RPM_BUILD_ROOT/lib/udev/udevd
+ln -s /lib/systemd/systemd-udevd $RPM_BUILD_ROOT%{_sbindir}/udevd
+
+# compat symlinks for "/ merged into /usr" programs
+mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/udevadm
+ln -s %{_sbindir}/udevadm $RPM_BUILD_ROOT%{_bindir}
+ln -s /lib/udev $RPM_BUILD_ROOT/usr/lib/
+
+# install custom udev rules from pld package
+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
+
+# 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
+
+echo ".so man8/systemd-udevd.8" >$RPM_BUILD_ROOT%{_mandir}/man8/udevd.8
+
+%if %{with initrd}
+install -d $RPM_BUILD_ROOT%{_libdir}/initrd/udev
+install -p udev-initrd/udevadm $RPM_BUILD_ROOT%{_libdir}/initrd
+install -p udev-initrd/systemd-udevd $RPM_BUILD_ROOT%{_libdir}/initrd
+# hardlink udevd -> systemd-udevd
+ln $RPM_BUILD_ROOT%{_libdir}/initrd/{systemd-,}udevd
+ln -s udevd $RPM_BUILD_ROOT%{_libdir}/initrd/udevstart
+install -p udev-initrd/*_id $RPM_BUILD_ROOT%{_libdir}/initrd/udev
+install -p udev-initrd/collect $RPM_BUILD_ROOT%{_libdir}/initrd/udev
+install -p udev-initrd/mtd_probe $RPM_BUILD_ROOT%{_libdir}/initrd/udev
+%endif
# Main binary has been moved, but we don't want to break existing installs
ln -s ../lib/systemd/systemd $RPM_BUILD_ROOT/bin/systemd
ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/random.service
# add static (non-NetworkManager) networking
-install %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/network.service
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/network.service
-# install compatibility tmpfiles configs
-install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/compat-pld-media.conf
-install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/compat-pld-var-run.conf
+# restore bind-mounts /var/run -> run and /var/lock -> /run/lock
+# we don't have those directories symlinked
+cp -p %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}/var-lock.mount
+cp -p %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}/var-run.mount
+ln -s ../var-lock.mount $RPM_BUILD_ROOT%{systemdunitdir}/local-fs.target.wants
+ln -s ../var-run.mount $RPM_BUILD_ROOT%{systemdunitdir}/local-fs.target.wants
+
+# and remove tmp on tmpfs mount
+%{__rm} $RPM_BUILD_ROOT%{systemdunitdir}/tmp.mount
+%{__rm} $RPM_BUILD_ROOT%{systemdunitdir}/local-fs.target.wants/tmp.mount
# Install and enable storage subsystems support services (RAID, LVM, etc.)
-install %{SOURCE10} $RPM_BUILD_ROOT%{systemdunitdir}/pld-storage-init-late.service
-install %{SOURCE11} $RPM_BUILD_ROOT%{systemdunitdir}/pld-storage-init.service
-install %{SOURCE12} $RPM_BUILD_ROOT%{systemdunitdir}/pld-wait-storage.service
-install %{SOURCE13} $RPM_BUILD_ROOT/lib/systemd/pld-storage-init
+cp -p %{SOURCE10} $RPM_BUILD_ROOT%{systemdunitdir}/pld-storage-init-late.service
+cp -p %{SOURCE11} $RPM_BUILD_ROOT%{systemdunitdir}/pld-storage-init.service
+cp -p %{SOURCE12} $RPM_BUILD_ROOT%{systemdunitdir}/pld-wait-storage.service
+cp -p %{SOURCE14} $RPM_BUILD_ROOT%{systemdunitdir}/pld-clean-tmp.service
+install -p %{SOURCE13} $RPM_BUILD_ROOT/lib/systemd/pld-storage-init
+install -p %{SOURCE15} $RPM_BUILD_ROOT/lib/systemd/pld-clean-tmp
+
+ln -s ../pld-storage-init-late.service $RPM_BUILD_ROOT%{systemdunitdir}/local-fs.target.wants
+ln -s ../pld-storage-init.service $RPM_BUILD_ROOT%{systemdunitdir}/local-fs.target.wants
+ln -s ../pld-clean-tmp.service $RPM_BUILD_ROOT%{systemdunitdir}/local-fs.target.wants
-ln -s ../pld-storage-init-late.service $RPM_BUILD_ROOT%{systemdunitdir}/local-fs.target.wants/pld-storage-init-late.service
-ln -s ../pld-storage-init.service $RPM_BUILD_ROOT%{systemdunitdir}/local-fs.target.wants/pld-storage-init.service
+# handled by rc-local sysv service, no need for generator
+%{__rm} $RPM_BUILD_ROOT/lib/systemd/system-generators/systemd-rc-local-generator
# Make sure these directories are properly owned:
# - halt,kexec,poweroff,reboot: generic ones used by ConsoleKit-systemd,
:> $RPM_BUILD_ROOT/var/log/btmp
:> $RPM_BUILD_ROOT/var/log/wtmp
-%if %{without gtk}
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/systemadm.1*
-%endif
-
%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
%{__rm} $RPM_BUILD_ROOT/%{_lib}/security/pam_systemd.la
%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
/bin/systemctl daemon-reload > /dev/null 2>&1 || :
fi
-%triggerpostun units -- %{name}-units < 43-7
+%triggerpostun units -- systemd-units < 43-7
# Remove design fialures
rm -f %{_sysconfdir}/systemd/system/network.target.wants/ifcfg@*.service >/dev/null 2>&1 || :
rm -f %{_sysconfdir}/systemd/system/network.target.wants/network-post.service >/dev/null 2>&1 || :
rm -f %{_sysconfdir}/systemd/system/multi-user.target.wants/network-post.service >/dev/null 2>&1 || :
/bin/systemctl reenable network.service >/dev/null 2>&1 || :
-%post no-compat-tmpfiles
-%{__sed} -i -e '/^#/!s/^/# /g' %{_sysconfdir}/tmpfiles.d/compat-pld-var-run.conf
+%post plymouth
+%systemd_reload
+
+%postun plymouth
+%systemd_reload
+
+%triggerpostun -n udev-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 -n udev-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 -n udev-core -- udev < 165
+/sbin/udevadm info --convert-db
+
+%triggerpostun -n udev-core -- udev-core < 1:183
+/bin/systemctl --quiet enable systemd-udev-settle.service || :
+%{__rm} -f /etc/systemd/system/basic.target.wants/udev-settle.service || :
+
+%post -n udev-core
+if [ $1 -gt 1 ]; then
+ if [ ! -x /bin/systemd_booted ] || ! /bin/systemd_booted; then
+ if grep -qs devtmpfs /proc/mounts && [ -n "$(pidof udevd)" ]; then
+ /sbin/udevadm control --exit
+ /lib/systemd/systemd-udevd --daemon
+ fi
+ else
+ SYSTEMD_LOG_LEVEL=warning SYSTEMD_LOG_TARGET=syslog \
+ /bin/systemctl --quiet try-restart systemd-udev.service || :
+ fi
+fi
+%systemd_post systemd-udev-settle.service
+
+%preun -n udev-core
+%systemd_preun systemd-udev-settle.service
+
+%postun -n udev-core
+%systemd_reload
+
+%post -n udev-libs -p /sbin/ldconfig
+%postun -n udev-libs -p /sbin/ldconfig
+
+%post -n udev-glib -p /sbin/ldconfig
+%postun -n udev-glib -p /sbin/ldconfig
%files
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/machine-info
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/timezone
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vconsole.conf
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/*.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/journald.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/logind.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/user.conf
%dir %{_sysconfdir}/systemd/user
%dir %{_sysconfdir}/systemd/system/*.target.wants
%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system/*.target.wants/*.service
%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system/*.target.wants/*.target
/etc/xdg/systemd
+%attr(755,root,root) /bin/journalctl
+%attr(755,root,root) /bin/loginctl
%attr(755,root,root) /bin/systemd
%attr(755,root,root) /bin/systemd-ask-password
-%attr(755,root,root) /bin/systemd-journalctl
-%attr(755,root,root) /bin/systemd-loginctl
+%attr(755,root,root) /bin/systemd-inhibit
%attr(755,root,root) /bin/systemd-machine-id-setup
%attr(755,root,root) /bin/systemd-notify
%attr(755,root,root) /bin/systemd-tty-ask-password-agent
%attr(755,root,root) %{_bindir}/systemd-cat
%attr(755,root,root) %{_bindir}/systemd-cgtop
%attr(755,root,root) %{_bindir}/systemd-cgls
+%attr(755,root,root) %{_bindir}/systemd-delta
+%attr(755,root,root) %{_bindir}/systemd-detect-virt
%attr(755,root,root) %{_bindir}/systemd-nspawn
%attr(755,root,root) %{_bindir}/systemd-stdio-bridge
%attr(755,root,root) %{_bindir}/systemd-sysv-convert
+%attr(755,root,root) /lib/systemd/pld-clean-tmp
%attr(755,root,root) /lib/systemd/pld-storage-init
-%attr(755,root,root) /lib/systemd/systemd-*
+%attr(755,root,root) /lib/systemd/systemd-ac-power
+%attr(755,root,root) /lib/systemd/systemd-binfmt
+%attr(755,root,root) /lib/systemd/systemd-cgroups-agent
+%attr(755,root,root) /lib/systemd/systemd-coredump
+%attr(755,root,root) /lib/systemd/systemd-cryptsetup
+%attr(755,root,root) /lib/systemd/systemd-fsck
+%attr(755,root,root) /lib/systemd/systemd-hostnamed
+%attr(755,root,root) /lib/systemd/systemd-initctl
+%attr(755,root,root) /lib/systemd/systemd-journald
+%attr(755,root,root) /lib/systemd/systemd-localed
+%attr(755,root,root) /lib/systemd/systemd-logind
+%attr(755,root,root) /lib/systemd/systemd-modules-load
+%attr(755,root,root) /lib/systemd/systemd-multi-seat-x
+%attr(755,root,root) /lib/systemd/systemd-quotacheck
+%attr(755,root,root) /lib/systemd/systemd-random-seed
+%attr(755,root,root) /lib/systemd/systemd-readahead-collect
+%attr(755,root,root) /lib/systemd/systemd-readahead-replay
+%attr(755,root,root) /lib/systemd/systemd-remount-fs
+%attr(755,root,root) /lib/systemd/systemd-reply-password
+%attr(755,root,root) /lib/systemd/systemd-shutdown
+%attr(755,root,root) /lib/systemd/systemd-shutdownd
+%attr(755,root,root) /lib/systemd/systemd-sleep
+%attr(755,root,root) /lib/systemd/systemd-sysctl
+%attr(755,root,root) /lib/systemd/systemd-timedated
+%attr(755,root,root) /lib/systemd/systemd-timestamp
+%attr(755,root,root) /lib/systemd/systemd-update-utmp
+%attr(755,root,root) /lib/systemd/systemd-user-sessions
+%attr(755,root,root) /lib/systemd/systemd-vconsole-setup
%dir /lib/systemd/system-generators
%attr(755,root,root) /lib/systemd/systemd
%attr(755,root,root) /lib/systemd/system-generators/systemd-*-generator
%dir %{_libexecdir}/systemd
%{_libexecdir}/systemd/user
%dir %{_libexecdir}/systemd/user-generators
-%config(noreplace,missingok) %{_libexecdir}/tmpfiles.d/*.conf
+%config(noreplace,missingok) %{_libexecdir}/tmpfiles.d/legacy.conf
+%config(noreplace,missingok) %{_libexecdir}/tmpfiles.d/systemd.conf
+%config(noreplace,missingok) %{_libexecdir}/tmpfiles.d/tmp.conf
+%config(noreplace,missingok) %{_libexecdir}/tmpfiles.d/x11.conf
%{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml
%{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy
%dir %{_datadir}/systemd
%{_datadir}/systemd/kbd-model-map
+%{_mandir}/man1/journalctl.1*
+%{_mandir}/man1/loginctl.1*
%{_mandir}/man1/systemd.1*
-%{_mandir}/man1/systemd-*.1*
+%{_mandir}/man1/systemd-ask-password.1*
+%{_mandir}/man1/systemd-cat.1*
+%{_mandir}/man1/systemd-cgls.1*
+%{_mandir}/man1/systemd-cgtop.1*
+%{_mandir}/man1/systemd-delta.1*
+%{_mandir}/man1/systemd-detect-virt.1*
+%{_mandir}/man1/systemd-inhibit.1*
+%{_mandir}/man1/systemd-machine-id-setup.1*
+%{_mandir}/man1/systemd-notify.1*
+%{_mandir}/man1/systemd-nspawn.1*
%{_mandir}/man5/binfmt.d.5*
%{_mandir}/man5/hostname.5*
+%{_mandir}/man5/journald.conf.5*
%{_mandir}/man5/locale.conf.5*
+%{_mandir}/man5/logind.conf.5*
%{_mandir}/man5/machine-id.5*
%{_mandir}/man5/machine-info.5*
%{_mandir}/man5/modules-load.d.5*
%{_mandir}/man5/os-release.5*
%{_mandir}/man5/sysctl.d.5*
%{_mandir}/man5/systemd.*.5*
-%{_mandir}/man5/systemd-journald.conf.5*
-%{_mandir}/man5/systemd-logind.conf.5*
%{_mandir}/man5/timezone.5*
%{_mandir}/man5/vconsole.conf.5*
%{_mandir}/man7/daemon.7*
%{_mandir}/man7/sd-login.7*
%{_mandir}/man7/sd-readahead.7*
%{_mandir}/man7/systemd.special.7*
+%{_mandir}/man7/systemd.journal-fields.7*
%dir /var/lib/%{name}
%dir /var/lib/%{name}/coredump
%attr(640,root,root) %ghost /var/log/btmp
%dir %{_sysconfdir}/systemd
%dir %{_sysconfdir}/systemd/system
%dir %{_sysconfdir}/tmpfiles.d
-%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/tmpfiles.d/*.conf
%dir %{_libexecdir}/binfmt.d
%dir %{_libexecdir}/modules-load.d
%dir %{_libexecdir}/sysctl.d
-%{_libexecdir}/sysctl.d/coredump.conf
+# Don't package the kernel.core_pattern setting until systemd-coredump
+# is a part of an actual systemd release and it's made clear how to
+# get the core dumps out of the journal.
+#%{_libexecdir}/sysctl.d/coredump.conf
%attr(755,root,root) /bin/systemctl
%attr(755,root,root) /bin/systemd-tmpfiles
%attr(755,root,root) /bin/systemd_booted
%{systemdunitdir}/*.socket
%{systemdunitdir}/*.target
%{systemdunitdir}/*.timer
+%exclude %{systemdunitdir}/systemd-udev*.*
%if %{with plymouth}
%exclude %{systemdunitdir}/plymouth*.service
%exclude %{systemdunitdir}/systemd-ask-password-plymouth.*
%config(noreplace,missingok) %{systemdunitdir}/runlevel[12345].target.wants/*
%config(noreplace,missingok) %{systemdunitdir}/shutdown.target.wants/*
%config(noreplace,missingok) %{systemdunitdir}/sockets.target.wants/*
-%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/cryptsetup.target
+%{?with_cryptsetup:%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/cryptsetup.target}
%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/dev-hugepages.mount
%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/dev-mqueue.mount
%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/proc-sys-fs-binfmt_misc.automount
%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/plymouth-start.service
%endif
-%if %{with gtk}
-%files gtk
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/systemadm
-%attr(755,root,root) %{_bindir}/systemd-gnome-ask-password-agent
-%{_mandir}/man1/systemadm.1*
-%endif
-
%files analyze
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/systemd-analyze
%defattr(644,root,root,755)
/etc/bash_completion.d/systemd-bash-completion.sh
-%files no-compat-tmpfiles
+%files -n udev
+%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 -n udev-core
+%defattr(644,root,root,755)
+
+%dir /lib/udev
+/usr/lib/udev
+
+# /lib/udev/devices/ are not read anymore; systemd-tmpfiles
+# should be used to create dead device nodes as workarounds for broken
+# subsystems.
+%dir /lib/udev/devices
+
+%attr(755,root,root) /lib/udev/collect
+
+%attr(755,root,root) /lib/udev/keyboard-force-release.sh
+
+%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/mtd_probe
+%attr(755,root,root) /lib/udev/scsi_id
+%attr(755,root,root) /lib/udev/v4l_id
+
+%attr(755,root,root) /lib/systemd/systemd-udevd
+%attr(755,root,root) /lib/udev/udevd
+
+%attr(755,root,root) /lib/udev/keymap
+%dir /lib/udev/keymaps
+/lib/udev/keymaps/*
+
+%attr(755,root,root) /lib/udev/accelerometer
+%attr(755,root,root) /lib/udev/findkeyboards
+
+%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
+
+%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-pld.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-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/75-net-description.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-keyboard-force-release.rules
+/lib/udev/rules.d/95-keymap.rules
+/lib/udev/rules.d/95-udev-late.rules
+
+%{_mandir}/man7/udev.7*
+%{_mandir}/man8/systemd-udevd.8*
+%{_mandir}/man8/udevadm.8*
+%{_mandir}/man8/udevd.8*
+
+%{systemdunitdir}/sockets.target.wants/systemd-udev-control.socket
+%{systemdunitdir}/sockets.target.wants/systemd-udev-kernel.socket
+%{systemdunitdir}/systemd-udev-control.socket
+%{systemdunitdir}/systemd-udev-kernel.socket
+%{systemdunitdir}/systemd-udev-settle.service
+%{systemdunitdir}/systemd-udev-trigger.service
+%{systemdunitdir}/systemd-udev.service
+
+%files -n udev-libs
%defattr(644,root,root,755)
-# empty package
+%attr(755,root,root) /%{_lib}/libudev.so.*.*.*
+%attr(755,root,root) %ghost /%{_lib}/libudev.so.1
+
+%files -n udev-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libudev.so
+%{_includedir}/libudev.h
+%{_pkgconfigdir}/libudev.pc
+%{_npkgconfigdir}/udev.pc
+
+%files -n udev-static
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libudev.a
+
+%files -n udev-apidocs
+%defattr(644,root,root,755)
+%{_gtkdocdir}/libudev
+
+%files -n udev-glib
+%defattr(644,root,root,755)
+%attr(755,root,root) /%{_lib}/libgudev-1.0.so.*.*.*
+%attr(755,root,root) %ghost /%{_lib}/libgudev-1.0.so.0
+%{_libdir}/girepository-1.0/GUdev-1.0.typelib
+
+%files -n udev-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 -n udev-glib-static
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgudev-1.0.a
+
+%files -n udev-glib-apidocs
+%defattr(644,root,root,755)
+%{_gtkdocdir}/gudev
+
+%if %{with initrd}
+%files -n udev-initrd
+%defattr(644,root,root,755)
+%dir %{_libdir}/initrd/udev
+%attr(755,root,root) %{_libdir}/initrd/systemd-udevd
+%attr(755,root,root) %{_libdir}/initrd/udevd
+%attr(755,root,root) %{_libdir}/initrd/udevadm
+%attr(755,root,root) %{_libdir}/initrd/udevstart
+%attr(755,root,root) %{_libdir}/initrd/udev/*_id
+%attr(755,root,root) %{_libdir}/initrd/udev/collect
+%attr(755,root,root) %{_libdir}/initrd/udev/mtd_probe
+%endif