Name: systemd
# Verify ChangeLog and NEWS when updating (since there are incompatible/breaking changes very often)
Version: 221
-Release: 7
+Release: 17
Epoch: 1
License: GPL v2+ (udev), LGPL v2.1+ (the rest)
Group: Base
-Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.xz
-# Source0-md5: b4d5a253841cf28a98b7ec99c45e3716
+Source0: https://github.com/systemd/systemd/archive/v%{version}.tar.gz
+# Source0-md5: 729ff21073e20dfb211e2155769bf33c
Source1: %{name}-sysv-convert
Source2: %{name}_booted.c
Source3: network.service
Source17: rc-inetd.service
Source18: default.preset
Source19: prefdm.service
+Source20: sigpwr-container-shutdown.service
+
# rules
Source101: udev-alsa.rules
Source102: udev.rules
Source103: udev-links.conf
+Source104: udev-uinput.rules
+Source105: udev-steam_controller.rules
# scripts / helpers
Source110: udev-net.helper
Source111: start_udev
Patch11: optional-tmp-on-tmpfs.patch
Patch12: uids_gids.patch
Patch13: sysctl.patch
+Patch14: journal-gatewayd-fdopen.patch
+Patch15: empty_notify_dos.patch
+Patch16: cryptsetup_generator_cmdline_parsing.patch
URL: http://www.freedesktop.org/wiki/Software/systemd
BuildRequires: acl-devel
-BuildRequires: attr-devel
%{?with_audit:BuildRequires: audit-libs-devel}
BuildRequires: autoconf >= 2.64
BuildRequires: automake >= 1:1.11
BuildRequires: binutils >= 3:2.22.52.0.1-2
%{?with_cryptsetup:BuildRequires: cryptsetup-devel >= 1.6.0}
-BuildRequires: dbus-devel >= 1.3.2
+BuildRequires: dbus-devel >= 1.4.0
BuildRequires: docbook-dtd45-xml
BuildRequires: docbook-style-xsl
-BuildRequires: elfutils-devel
+BuildRequires: elfutils-devel >= 0.158
BuildRequires: gettext-tools
BuildRequires: glibc-misc
%{?with_efi:BuildRequires: gnu-efi}
BuildRequires: gnutls-devel >= 3.1.4
-BuildRequires: gobject-introspection-devel >= 1.31.1
BuildRequires: gperf
BuildRequires: intltool >= 0.40.0
-BuildRequires: kmod-devel >= 14
+BuildRequires: kmod-devel >= 15
BuildRequires: libapparmor-devel
-BuildRequires: libblkid-devel >= 2.20
+BuildRequires: libblkid-devel >= 2.24
BuildRequires: libcap-devel
%{?with_consoled:BuildRequires: libdrm-devel >= 2.4}
%{?with_consoled:BuildRequires: libevdev-devel >= 1.2}
BuildRequires: libgcrypt-devel >= 1.4.5
+#BuildRequires: libidn-devel
+#BuildRequires: liblzma-devel
%{?with_microhttpd:BuildRequires: libmicrohttpd-devel >= 0.9.33}
-BuildRequires: libmount-devel
+BuildRequires: libmount-devel >= 2.20
BuildRequires: libseccomp-devel >= 1.0.0
%{?with_selinux:BuildRequires: libselinux-devel >= 2.1.9}
BuildRequires: libtool >= 2:2.2
BuildRequires: libxslt-progs
-BuildRequires: lz4-devel
+BuildRequires: lz4-devel >= r119
BuildRequires: m4
-%{?with_pam:BuildRequires: pam-devel}
+%{?with_pam:BuildRequires: pam-devel >= 1.1.2}
BuildRequires: pkgconfig >= 0.9.0
BuildRequires: python-devel
BuildRequires: python-lxml
BuildRequires: python3-devel
BuildRequires: python3-lxml
BuildRequires: python3-modules
+BuildRequires: rpm-build >= 5.4.15-28
%endif
%{?with_qrencode:BuildRequires: qrencode-devel}
BuildRequires: rpm-pythonprov
%{?with_cryptsetup:Requires: cryptsetup >= 1.6.0}
Requires: dbus >= 1.4.16-6
Requires: filesystem >= 4.0-39
-Requires: kmod >= 14
+Requires: glibc >= 2.16
+Requires: kmod >= 15
%{?with_microhttpd:Requires: libmicrohttpd >= 0.9.33}
Requires: libutempter
Requires: polkit
Requires: setup >= 2.8.0-2
Requires: udev-core = %{epoch}:%{version}-%{release}
Requires: udev-libs = %{epoch}:%{version}-%{release}
-Requires: uname(release) >= 3.7
+Requires: util-linux >= 2.26
+Requires: uname(release) >= 3.0
+Suggests: uname(release) >= 3.8
Suggests: fsck >= 2.25.0
Suggests: service(klogd)
Suggests: service(syslog)
Conflicts: libvirt-utils < 0.9.9-4
Conflicts: lighttpd < 1.4.30-5
Conflicts: lirc < 0.9.0-20
+# Needed for vgscan --cache ( perhaps < 2.02.96 would be enough, but not tested)
+Conflicts: lvm2 < 2.02.132
Conflicts: mailman < 5:2.1.14-4
Conflicts: memcached < 1.4.11-2
Conflicts: mpd < 0.16.5-4
Group: Base
Requires: coreutils
Requires: filesystem >= 3.0-45
-Requires: kmod >= 14
-Requires: libblkid >= 2.20
+Requires: kmod >= 15
+Requires: libblkid >= 2.24
%{?with_selinux:Requires: libselinux >= 2.1.9}
Requires: setup >= 2.9.0-3
Requires: udev-libs = %{epoch}:%{version}-%{release}
-Requires: uname(release) >= 2.6.32
-#Suggests: uname(release) >= 3.7
+Requires: uname(release) >= 3.7
Obsoletes: udev-compat
Obsoletes: udev-initrd < %{epoch}:%{version}-%{release}}
Conflicts: geninitrd < 12639
%patch11 -p1
%patch12 -p1
%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+
cp -p %{SOURCE2} src/systemd_booted.c
%build
+%{__intltoolize}
%{__libtoolize}
%{__aclocal} -I m4
%{__autoconf}
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/var/lib/{%{name}/{catalog,coredump},machines} \
$RPM_BUILD_ROOT{%{_sysconfdir}/{modprobe.d,systemd/system-preset},%{_sbindir}}
+install -d $RPM_BUILD_ROOT%{systemduserunitdir}/sockets.target.wants
%{__make} -j1 install \
DESTDIR=$RPM_BUILD_ROOT
# 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
+cp -a %{SOURCE104} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/70-uinput.rules
+cp -a %{SOURCE105} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/70-steam_controller.rules
# http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
ln -s /dev/null $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/80-net-setup-link.rules
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
+# Add inside container only SIGPWR handler which is used by lxc-stop
+install -p %{SOURCE20} $RPM_BUILD_ROOT%{systemdunitdir}/sigpwr-container-shutdown.service
+install -d $RPM_BUILD_ROOT%{systemdunitdir}/sigpwr.target.wants
+ln -s ../sigpwr-container-shutdown.service $RPM_BUILD_ROOT%{systemdunitdir}/sigpwr.target.wants
+
# As of 207 the systemd-sysctl tool no longer natively reads the file /etc/sysctl.conf.
# If desired, the file should be symlinked from /etc/sysctl.d/99-sysctl.conf.
ln -s /etc/sysctl.conf $RPM_BUILD_ROOT/etc/sysctl.d/99-sysctl.conf
# install Python2 files, binaries built and saved earlier
install -d $RPM_BUILD_ROOT%{py_sitedir}/systemd
cp -a $RPM_BUILD_ROOT%{py3_sitedir}/systemd/*.py $RPM_BUILD_ROOT%{py_sitedir}/systemd
-install -p .libs/python/*.so $RPM_BUILD_ROOT%{py_sitedir}/systemd
+install -p .libs/python2/*.so $RPM_BUILD_ROOT%{py_sitedir}/systemd
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
%else
%dir %{_sysconfdir}/systemd/system-preset
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system-preset/default.preset
%dir %{_sysconfdir}/tmpfiles.d
-%dir %{_libexecdir}/binfmt.d
%dir %{_libexecdir}/modules-load.d
%dir %{_libexecdir}/sysctl.d
%{_libexecdir}/sysctl.d/50-default.conf
%{systemdunitdir}/rescue.service
%{systemdunitdir}/serial-getty@.service
%{systemdunitdir}/single.service
+%{systemdunitdir}/sigpwr-container-shutdown.service
%{systemdunitdir}/sys-kernel-config.service
%{systemdunitdir}/systemd-ask-password-console.service
%{systemdunitdir}/systemd-ask-password-wall.service
%dir %{systemdunitdir}/rescue.target.wants
%dir %{systemdunitdir}/runlevel[12345].target.wants
%dir %{systemdunitdir}/shutdown.target.wants
+%dir %{systemdunitdir}/sigpwr.target.wants
%dir %{systemdunitdir}/sockets.target.wants
%dir %{systemdunitdir}/sysinit.target.wants
%dir %{systemdunitdir}/syslog.target.wants
%{systemdunitdir}/multi-user.target.wants/systemd-update-utmp-runlevel.service
%{systemdunitdir}/multi-user.target.wants/systemd-user-sessions.service
%{systemdunitdir}/rescue.target.wants/systemd-update-utmp-runlevel.service
+%{systemdunitdir}/sigpwr.target.wants/sigpwr-container-shutdown.service
%{systemdunitdir}/sockets.target.wants/systemd-initctl.socket
%{systemdunitdir}/sockets.target.wants/systemd-journald-audit.socket
%{systemdunitdir}/sockets.target.wants/systemd-journald-dev-log.socket
%{systemdunitdir}/sysinit.target.wants/systemd-update-utmp.service
%{systemdunitdir}/sysinit.target.wants/systemd-vconsole-setup.service
%{systemdunitdir}/timers.target.wants/systemd-tmpfiles-clean.timer
+%dir %{systemduserunitdir}/sockets.target.wants
%{_mandir}/man8/systemd-ask-password-console.path.8*
%{_mandir}/man8/systemd-ask-password-console.service.8*
%{_mandir}/man8/systemd-ask-password-wall.path.8*
%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-uinput.rules
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/rules.d/70-steam_controller.rules
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/rules.d/80-net-setup-link.rules
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/udev.conf