# - /dev/urandom remains missing, not created with start_udev anymore
#
# Conditional build:
-%bcond_without audit # without audit support
-%bcond_without cryptsetup # without cryptsetup support
+%bcond_without audit # audit support
+%bcond_without consoled # systemd-consoled (embedded terminal)
+%bcond_without cryptsetup # cryptsetup support
%bcond_without microhttpd # use microhttpd for network journal access
%bcond_without pam # PAM authentication support
%bcond_without qrencode # QRencode support
-%bcond_without selinux # without SELinux support
-%bcond_with efi # EFI boot support [missing files in 220]
+%bcond_without selinux # SELinux support
+%bcond_without efi # EFI boot support
%bcond_without python3 # Python 3.x support
%bcond_with tests # "make check" (requires systemd already installed)
+%ifnarch %{ix86} %{x8664} aarch64
+# x32 disabled - maybe it's possible to build x64 EFI, but it requires some hacking (add -m64 to EFI gcc command line?)
+%undefine with_efi
+%endif
Summary: A System and Service Manager
Summary(pl.UTF-8): systemd - zarządca systemu i usług dla Linuksa
Name: systemd
# Verify ChangeLog and NEWS when updating (since there are incompatible/breaking changes very often)
Version: 221
-Release: 1
+Release: 12.1
Epoch: 1
License: GPL v2+ (udev), LGPL v2.1+ (the rest)
Group: Base
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
Patch6: net-rename-revert.patch
Patch7: nss-in-rootlib.patch
Patch8: proc-hidepid.patch
-Patch9: systemd-configfs.patch
+Patch9: %{name}-configfs.patch
Patch10: pld-boot_efi_mount.patch
Patch11: optional-tmp-on-tmpfs.patch
Patch12: uids_gids.patch
+Patch13: sysctl.patch
+Patch14: journal-gatewayd-fdopen.patch
URL: http://www.freedesktop.org/wiki/Software/systemd
BuildRequires: acl-devel
BuildRequires: attr-devel
BuildRequires: docbook-style-xsl
BuildRequires: elfutils-devel
BuildRequires: gettext-tools
-BuildRequires: glib2-devel >= 1:2.22.0
BuildRequires: glibc-misc
%{?with_efi:BuildRequires: gnu-efi}
BuildRequires: gnutls-devel >= 3.1.4
BuildRequires: libapparmor-devel
BuildRequires: libblkid-devel >= 2.20
BuildRequires: libcap-devel
+%{?with_consoled:BuildRequires: libdrm-devel >= 2.4}
+%{?with_consoled:BuildRequires: libevdev-devel >= 1.2}
BuildRequires: libgcrypt-devel >= 1.4.5
%{?with_microhttpd:BuildRequires: libmicrohttpd-devel >= 0.9.33}
BuildRequires: libmount-devel
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
BuildRequires: rpmbuild(macros) >= 1.628
BuildRequires: sed >= 4.0
%{?with_tests:BuildRequires: systemd}
+%{?with_consoled:BuildRequires: unifont-source}
BuildRequires: usbutils >= 0.82
+%{?with_consoled:BuildRequires: xorg-lib-libxkbcommon-devel >= 0.5}
BuildRequires: xz-devel
BuildRequires: zlib-devel
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Requires: udev-core = %{epoch}:%{version}-%{release}
Requires: udev-libs = %{epoch}:%{version}-%{release}
Requires: uname(release) >= 3.7
-Suggests: ConsoleKit
Suggests: fsck >= 2.25.0
Suggests: service(klogd)
Suggests: service(syslog)
Provides: group(systemd-bus-proxy)
-Provides: group(systemd-network)
-Provides: group(systemd-resolve)
-Provides: group(systemd-timesync)
Provides: group(systemd-journal)
Provides: group(systemd-journal-remote)
Provides: group(systemd-journal-upload)
+Provides: group(systemd-network)
+Provides: group(systemd-resolve)
+Provides: group(systemd-timesync)
+Provides: udev-acl = %{epoch}:%{version}-%{release}
Provides: user(systemd-bus-proxy)
+Provides: user(systemd-journal-remote)
+Provides: user(systemd-journal-upload)
Provides: user(systemd-network)
Provides: user(systemd-resolve)
Provides: user(systemd-timesync)
-Provides: user(systemd-journal-remote)
-Provides: user(systemd-journal-upload)
-Provides: udev-acl = %{epoch}:%{version}-%{release}
+# kde4 still can't live without ConsoleKit
+#Obsoletes: ConsoleKit
+#Obsoletes: ConsoleKit-x11
Obsoletes: systemd-no-compat-tmpfiles
Obsoletes: udev-systemd
# sytemd wants pam with pam_systemd.so in system-auth...
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
Conflicts: upstart
# systemd takes care of that and causes problems
Conflicts: binfmt-detector
+# for /lib/systemd/systemd-sysv-install
+Conflicts: chkconfig < 2:1.5-1
%description init
Install this package when you are ready to final switch to systemd.
Ten pakiet zawiera ogólną konfigurację, ustawienia można nadpisać
poprzez katalog %{_sysconfdir}/systemd/system.
+%package consoled
+Summary: Terminal support for systemd
+Summary(pl.UTF-8): Obsługa terminala dla systemd
+Group: Base
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description consoled
+Terminal support for systemd.
+
+%description consoled -l pl.UTF-8
+Obsługa terminala dla systemd.
+
%package journal-gateway
Summary: Gateway for serving journal events over the network using HTTP
Summary(pl.UTF-8): Bramka do serwowania zdarzeń dziennika po sieci poprzez HTTP
virtual network devices.
%description networkd -l pl.UTF-8
-systemd-networkd to usługa systemowa zarządzająca siecią. Wykrywa
-i konfiguruje interfejsy sieciowe gdy się pojawiają, a także tworzy
+systemd-networkd to usługa systemowa zarządzająca siecią. Wykrywa i
+konfiguruje interfejsy sieciowe gdy się pojawiają, a także tworzy
wirtualne urządzenia sieciowe.
%package resolved
Summary(pl.UTF-8): Pliki nagłówkowe bibliotek systemd
Group: Development/Libraries
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
+Requires: %{name}-units = %{epoch}:%{version}-%{release}
Obsoletes: systemd-static
%description devel
%patch10 -p1
%patch11 -p1
%patch12 -p1
+%patch13 -p1
+%patch14 -p1
cp -p %{SOURCE2} src/systemd_booted.c
%build
%{__autoheader}
%{__automake}
-for PYTHON in "%{__python}" %{?with_python3:"%{__python3}"} ; do
+for PYTHON in %{__python} %{?with_python3:%{__python3}}; do
%configure \
QUOTAON=/sbin/quotaon \
KEXEC=/sbin/kexec \
PYTHON="$PYTHON" \
PYTHON_BINARY="$PYTHON" \
+%if "%{?configure_cache}" == "1"
+ --cache-file=%{?configure_cache_file}%{!?configure_cache_file:configure}-$(basename $PYTHON).cache \
+%endif
%{?debug:--enable-debug} \
%{__enable_disable audit} \
%{__enable_disable cryptsetup libcryptsetup} \
%{__enable_disable qrencode} \
--disable-silent-rules \
--enable-compat-libs \
- --enable-split-usr \
--enable-lz4 \
+ --enable-split-usr \
+ %{?with_consoled:--enable-terminal} \
--with-kbd-loadkeys=/usr/bin/loadkeys \
--with-kbd-setfont=/bin/setfont \
- --with-sysvinit-path=/etc/rc.d/init.d \
- --with-sysvrcnd-path=/etc/rc.d \
--with-rc-local-script-path-start=/etc/rc.d/rc.local \
--with-rc-local-script-path-stop=/sbin/halt.local \
--with-rootprefix="" \
- --with-rootlibdir=/%{_lib}
+ --with-rootlibdir=/%{_lib} \
+ --with-sysvinit-path=/etc/rc.d/init.d \
+ --with-sysvrcnd-path=/etc/rc.d
%{__make} clean-python
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/var/lib/{%{name}/coredump,machines} \
+install -d $RPM_BUILD_ROOT/var/lib/{%{name}/{catalog,coredump},machines} \
$RPM_BUILD_ROOT{%{_sysconfdir}/{modprobe.d,systemd/system-preset},%{_sbindir}}
%{__make} -j1 install \
DESTDIR=$RPM_BUILD_ROOT
+touch $RPM_BUILD_ROOT/var/lib/%{name}/random-seed
+
./libtool --mode=install install -p -m755 systemd_booted $RPM_BUILD_ROOT/bin/systemd_booted
# compatibility symlinks to udevd binary
# compat symlinks for "/ merged into /usr" programs
mv $RPM_BUILD_ROOT/{,s}bin/udevadm
ln -s %{_sbindir}/udevadm $RPM_BUILD_ROOT/bin
-ln -s /lib/udev $RPM_BUILD_ROOT/usr/lib/
+ln -s /lib/udev $RPM_BUILD_ROOT%{_prefix}/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
+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 -d $RPM_BUILD_ROOT%{_libexecdir}/systemd/system-{shutdown,sleep}
# Create new-style configuration files so that we can ghost-own them
-touch $RPM_BUILD_ROOT%{_sysconfdir}/{hostname,locale.conf,machine-id,machine-info,timezone,vconsole.conf}
+touch $RPM_BUILD_ROOT%{_sysconfdir}/{hostname,locale.conf,machine-id,machine-info,vconsole.conf}
# Install SysV conversion tool for systemd
install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}
install -d $RPM_BUILD_ROOT/lib/systemd/pld-helpers.d
# to be enabled only when the packages are installed
-%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants/systemd-networkd.service
-%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants/systemd-networkd.socket
-%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants/systemd-resolved.service
+%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants/systemd-networkd.service \
+ $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants/systemd-networkd.socket \
+ $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants/systemd-resolved.service
install -d $RPM_BUILD_ROOT/var/log
:> $RPM_BUILD_ROOT/var/log/btmp
:> $RPM_BUILD_ROOT/var/log/wtmp
%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
-%{__rm} $RPM_BUILD_ROOT/%{_lib}/security/pam_systemd.la
-%{__rm} $RPM_BUILD_ROOT/%{_lib}/libnss_myhostname.la
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
+%{__rm} $RPM_BUILD_ROOT/%{_lib}/security/pam_systemd.la \
+ $RPM_BUILD_ROOT/%{_lib}/libnss_myhostname.la \
+ $RPM_BUILD_ROOT%{_libdir}/*.la
%if %{with python3}
%{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/systemd/*.la
# 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 .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
/etc/dbus-1/system.d/org.freedesktop.systemd1.conf
/etc/dbus-1/system.d/org.freedesktop.timedate1.conf
%attr(755,root,root) %{_sysconfdir}/X11/xinit/xinitrc.d/50-systemd-user.sh
-%ghost %config(noreplace) %{_sysconfdir}/machine-id
+%attr(444,root,root) %ghost %config(noreplace) %{_sysconfdir}/machine-id
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/hostname
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/locale.conf
%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/bootchart.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/coredump.conf
%dir %{_sysconfdir}/systemd/system/sockets.target.wants
%dir %{_sysconfdir}/systemd/system/sysinit.target.wants
%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system/getty.target.wants/getty@tty1.service
-%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system/sysinit.target.wants/systemd-timesyncd.service
%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system/multi-user.target.wants/remote-fs.target
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system/sysinit.target.wants/systemd-timesyncd.service
%config(noreplace) %verify(not md5 mtime size) /etc/pam.d/systemd-user
/etc/xdg/systemd
%attr(755,root,root) /bin/journalctl
%attr(755,root,root) /lib/systemd/systemd-vconsole-setup
%attr(755,root,root) /lib/systemd/systemd
%{?with_cryptsetup:%attr(755,root,root) /lib/systemd/system-generators/systemd-cryptsetup-generator}
-%attr(755,root,root) /lib/systemd/system-generators/systemd-dbus1-generator
%attr(755,root,root) /lib/systemd/system-generators/systemd-debug-generator
%attr(755,root,root) /lib/systemd/system-generators/systemd-efi-boot-generator
%attr(755,root,root) /lib/systemd/system-generators/systemd-fstab-generator
%dir %{_libexecdir}/kernel/install.d
%{_libexecdir}/kernel/install.d/50-depmod.install
%{_libexecdir}/kernel/install.d/90-loaderentry.install
+%if %{with efi}
+%dir %{_libexecdir}/systemd/boot
+%dir %{_libexecdir}/systemd/boot/efi
+%ifarch %{ix86}
+%{_libexecdir}/systemd/boot/efi/linuxia32.efi.stub
+%{_libexecdir}/systemd/boot/efi/systemd-bootia32.efi
+%endif
+%ifarch %{x8664} x32
+%{_libexecdir}/systemd/boot/efi/linuxx64.efi.stub
+%{_libexecdir}/systemd/boot/efi/systemd-bootx64.efi
+%endif
+%ifarch aarch64
+%{_libexecdir}/systemd/boot/efi/linuxaa64.efi.stub
+%{_libexecdir}/systemd/boot/efi/systemd-bootaa64.efi
+%endif
+%endif
%dir %{_libexecdir}/systemd/catalog
%{_libexecdir}/systemd/catalog/systemd.catalog
%lang(be) %{_libexecdir}/systemd/catalog/systemd.be.catalog
%{_mandir}/man8/systemd-update-utmp.8*
%{_mandir}/man8/systemd-user-sessions.8*
%{_mandir}/man8/systemd-vconsole-setup.8*
-%dir /var/lib/machines
+%attr(700,root,root) %dir /var/lib/machines
%dir /var/lib/%{name}
%dir /var/lib/%{name}/coredump
-%attr(640,root,root) %ghost /var/log/btmp
+%dir /var/lib/%{name}/catalog
+%attr(640,root,root) %ghost /var/lib/%{name}/random-seed
+%attr(600,root,utmp) %ghost /var/log/btmp
%attr(664,root,utmp) %ghost /var/log/wtmp
%attr(2755,root,systemd-journal) %dir /var/log/journal
%{_libexecdir}/systemd/user-generators/systemd-dbus1-generator
%dir /lib/systemd/pld-helpers.d
%dir /lib/systemd/system-generators
+%attr(755,root,root) /lib/systemd/system-generators/systemd-dbus1-generator
%dir /lib/systemd/system-preset
/lib/systemd/system-preset/90-systemd.preset
%dir /lib/systemd/system-sleep
%{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
%{_mandir}/man8/systemd-ask-password-wall.service.8*
%{_mandir}/man8/systemd-backlight@.service.8*
%{_mandir}/man8/systemd-binfmt.service.8*
-%{_mandir}/man8/systemd-bus-proxyd.8.gz
+%{_mandir}/man8/systemd-bus-proxyd.8*
%{_mandir}/man8/systemd-bus-proxyd.socket.8
-%{_mandir}/man8/systemd-bus-proxyd@.service.8.gz
+%{_mandir}/man8/systemd-bus-proxyd@.service.8*
%{?with_cryptsetup:%{_mandir}/man8/systemd-cryptsetup.8*}
%{?with_cryptsetup:%{_mandir}/man8/systemd-cryptsetup@.service.8*}
%{_mandir}/man8/systemd-fsck-root.service.8*
%{_mandir}/man8/systemd-user-sessions.service.8*
%{_mandir}/man8/systemd-vconsole-setup.service.8*
+%if %{with consoled}
+%files consoled
+%defattr(644,root,root,755)
+%attr(755,root,root) /lib/systemd/systemd-consoled
+%{_libexecdir}/systemd/user/systemd-consoled.service
+%dir %{_libexecdir}/systemd/user/default.target.wants
+%{_libexecdir}/systemd/user/default.target.wants/systemd-consoled.service
+%{_datadir}/systemd/unifont-glyph-array.bin
+%endif
+
%if %{with microhttpd}
%files journal-gateway
%defattr(644,root,root,755)
%files -n udev-core
%defattr(644,root,root,755)
-/usr/lib/udev
+%{_prefix}/lib/udev
%attr(755,root,root) /lib/udev/collect
%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