# TODO:
-# - pldize vconsole setup:
-# http://cgit.freedesktop.org/systemd/systemd/tree/src/vconsole/vconsole-setup.c
-# - initrd needs love (does not build and is probably completly unusable in current form)
# - merge rpm macros provided by systemd with ours
#
-# - check removed syslog.target
-# - add systemd-journal, systemd-journal-gateway groups and systemd-journal-gateway user
-# - package new files
-#
# Conditional build:
%bcond_without audit # without audit support
%bcond_without cryptsetup # without cryptsetup support
%bcond_without qrencode # QRencode support
%bcond_without selinux # without SELinux support
%bcond_without tcpd # libwrap (tcp_wrappers) support
-
-%bcond_with 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
+%bcond_with tests # "make check" (requires systemd already installed)
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: 198
-Release: 0.1
+Version: 207
+Release: 1
Epoch: 1
-License: GPL v2+
+License: GPL v2+ (udev), LGPL v2.1+ (the rest)
Group: Base
Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.xz
-# Source0-md5: 26a75e2a310f8c1c1ea9ec26ddb171c5
+# Source0-md5: 7799f3cc9d289b8db1c1fa56ae7ecd88
Source1: %{name}-sysv-convert
Source2: %{name}_booted.c
Source3: network.service
Patch3: pld-sysv-network.patch
Patch4: tmpfiles-not-fatal.patch
Patch6: udev-so.patch
-Patch7: udev-uClibc.patch
Patch8: udev-ploop-rules.patch
Patch9: udevadm-in-sbin.patch
Patch10: net-rename-revert.patch
Patch11: nss-in-rootlib.patch
-# hack set to allow static udev build
-Patch100: static-udev.patch
+Patch12: proc-hidepid.patch
+Patch14: dont-hash-null-keys.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.4.3}
+%{?with_cryptsetup:BuildRequires: cryptsetup-devel >= 1.6.0}
BuildRequires: dbus-devel >= 1.3.2
BuildRequires: docbook-style-xsl
BuildRequires: glib2-devel >= 1:2.22.0
BuildRequires: gperf
BuildRequires: gtk-doc >= 1.18
BuildRequires: intltool >= 0.40.0
-BuildRequires: kmod-devel >= 5
+BuildRequires: kmod-devel >= 14
BuildRequires: libblkid-devel >= 2.20
BuildRequires: libcap-devel
BuildRequires: libgcrypt-devel >= 1.4.5
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.628
BuildRequires: sed >= 4.0
+%{?with_tests:BuildRequires: systemd}
BuildRequires: usbutils >= 0.82
BuildRequires: xz-devel
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 >= 2.1.9}
-%{?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 = %{epoch}:%{version}-%{release}
Requires: %{name}-units = %{epoch}:%{version}-%{release}
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
Requires: /etc/os-release
Requires: SysVinit-tools
Requires: agetty
-%{?with_cryptsetup:Requires: cryptsetup >= 1.4.3}
+%{?with_cryptsetup:Requires: cryptsetup >= 1.6.0}
Requires: dbus >= 1.4.16-6
Requires: filesystem >= 4.0-3
+Requires: kmod >= 14
Requires: libutempter
+Requires: polkit
Requires: rc-scripts >= 0.4.5.3-7
Requires: setup >= 2.8.0-2
Requires: udev-core = %{epoch}:%{version}-%{release}
Requires: udev-libs = %{epoch}:%{version}-%{release}
-Requires: virtual(module-tools)
+Requires: uname(release) >= 3.0
Suggests: ConsoleKit
Suggests: fsck >= 2.20
-Suggests: kmod >= 5
Suggests: service(klogd)
Suggests: service(syslog)
+Provides: group(systemd-journal)
Provides: udev-acl = %{epoch}:%{version}-%{release}
Obsoletes: systemd-no-compat-tmpfiles
Obsoletes: udev-systemd
Obsoletes: SysVinit
Obsoletes: readahead < 1:1.5.7-3
Obsoletes: virtual(init-daemon)
+Conflicts: rc-scripts < 0.4.5.5-2
Conflicts: upstart
%description init
Ten pakiet zawiera ogólną konfigurację, ustawienia można nadpisać
poprzez katalog %{_sysconfdir}/systemd/system.
+%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
+License: LGPL v2.1+
+Group: Base
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Provides: group(systemd-journal-gateway)
+Provides: user(systemd-journal-gateway)
+Conflicts: systemd < 1:206-3
+
+%description journal-gateway
+systemd-journal-gatewayd serves journal events over the network using
+HTTP.
+
+%description journal-gateway -l pl.UTF-8
+systemd-journal-gatewayd serwuje zdarzenia dziennika po sieci poprzez
+HTTP.
+
%package inetd
Summary: Native inet service support for systemd via socket activation
Summary(pl.UTF-8): Natywna obsługa usług inet dla systemd
%description inetd
Native inet service support for systemd via socket activation.
-This package contains inet service generator that provides
-the functionality of rc-inetd service and replaces a separate
-inet daemon with systemd socket activation feature.
+This package contains inet service generator that provides the
+functionality of rc-inetd service and replaces a separate inet daemon
+with systemd socket activation feature.
%description inetd -l pl.UTF-8
Natywna obsługa usług inet dla systemd.
Summary(pl.UTF-8): Pliki nagłówkowe bibliotek systemd
Group: Development/Libraries
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
+Obsoletes: systemd-static
%description devel
Header files for systemd libraries.
%description devel -l pl.UTF-8
Pliki nagłówkowe bibliotek systemd.
+%package -n python-systemd
+Summary: Systemd Python bindings
+Summary(pl.UTF-8): Wiązania do Systemd dla Pythona
+Group: Development/Languages/Python
+Requires: %{name}-libs = %{epoch}:%{version}-%{release}
+Requires: python
+
+%description -n python-systemd
+Systemd Python bindings.
+
+%description -n python-systemd -l pl.UTF-8
+Wiązania do Systemd dla Pythona.
+
%package -n bash-completion-systemd
Summary: bash-completion for systemd
Summary(pl.UTF-8): Bashowe dopełnianie składni dla systemd
Group: Applications/Shells
-Requires: %{name} = %{epoch}:%{version}
-Requires: bash-completion
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: bash-completion >= 2.0
%description -n bash-completion-systemd
bash-completion for systemd.
%description -n bash-completion-systemd -l pl.UTF-8
Bashowe dopełnianie składni dla systemd.
+%package -n zsh-completion-systemd
+Summary: zsh completion for systemd commands
+Summary(pl.UTF-8): Uzupełnianie parametrów w zsh dla poleceń systemd
+Group: Applications/Shells
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description -n zsh-completion-systemd
+zsh completion for systemd commands.
+
+%description -n zsh-completion-systemd -l pl.UTF-8
+Uzupełnianie parametrów w zsh dla poleceń systemd.
+
%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
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: udev-libs = %{epoch}:%{version}-%{release}
Requires: coreutils
Requires: filesystem >= 3.0-45
-Requires: kmod-libs >= 5
+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
-Obsoletes: udev-compat
-%{!?with_initrd:Obsoletes: udev-initrd < %{epoch}:%{version}-%{release}}
%description -n udev-core
A userspace implementation of devfs - core part of udev.
Summary(pl.UTF-8): Plik nagłówkowy biblioteki libudev
Group: Development/Libraries
Requires: udev-libs = %{epoch}:%{version}-%{release}
+Obsoletes: udev-static
%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
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
+Requires: udev-libs = %{epoch}:%{version}-%{release}
%description -n udev-glib
Shared libgudev library - GObject bindings for libudev.
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}
-Requires: glib2-devel >= 1:2.22.0
+Obsoletes: udev-glib-static
%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
%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.
-
%package -n bash-completion-udev
Summary: bash-completion for udev
Summary(pl.UTF-8): Bashowe dopełnianie składni dla udev
Group: Applications/Shells
-Requires: udev = %{epoch}:%{version}
-Requires: bash-completion
+Requires: bash-completion >= 2.0
+Requires: udev = %{epoch}:%{version}-%{release}
%description -n bash-completion-udev
bash-completion for udev.
%description -n bash-completion-udev -l pl.UTF-8
Bashowe dopełnianie składni dla udev.
+%package -n zsh-completion-udev
+Summary: zsh completion for udev commands
+Summary(pl.UTF-8): Uzupełnianie parametrów w zsh dla poleceń udev
+Group: Applications/Shells
+Requires: %{name} = %{epoch}:%{version}-%{release}
-%package -n python-systemd
-Summary: Systemd Python bindings
-Summary(pl.UTF-8): Wiązania do Systemd dla Pythona
-Group: Development/Languages/Python
-%pyrequires_eq python
-Requires: %{name}-libs = %{epoch}:%{version}-%{release}
-
-%description -n python-systemd
-Systemd Python bindings.
+%description -n zsh-completion-udev
+zsh completion for udev commands.
-%description -n python-systemd -l pl.UTF-8
-Wiązania do Systemd dla Pythona.
+%description -n zsh-completion-udev -l pl.UTF-8
+Uzupełnianie parametrów w zsh dla poleceń udev.
%prep
%setup -q
%patch3 -p1
%patch4 -p1
%patch6 -p1
-%if %{with uClibc}
-%patch7 -p1
-%endif
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
+%patch12 -p1
+# possible cause of infinite loop inside systemd-login
+#patch14 -p1
cp -p %{SOURCE2} src/systemd_booted.c
%build
%{__autoconf}
%{__autoheader}
%{__automake}
-%if %{with initrd}
-patch -p1 <%{PATCH100}
-%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 \
- --disable-audit \
- --disable-gtk-doc \
- --disable-gudev \
- --disable-introspection \
- --disable-keymap \
- --disable-microhttpd \
- --disable-pam \
- --disable-qrencode \
- --disable-selinux \
- --enable-chkconfig \
- --enable-split-usr \
- --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}
-
-%{__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 <%{PATCH100}
-%endif
-
%configure \
QUOTAON=/sbin/quotaon \
QUOTACHECK=/sbin/quotacheck \
SETCAP=/sbin/setcap \
KILL=/bin/kill \
+ KMOD=/sbin/kmod \
+ KEXEC=/sbin/kexec \
%{?debug:--enable-debug} \
%{__enable_disable audit} \
%{__enable_disable cryptsetup libcryptsetup} \
--enable-gtk-doc \
--enable-introspection \
--enable-split-usr \
- --enable-static \
--with-html-dir=%{_gtkdocdir} \
--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-firmware-path=/lib/firmware \
--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}
-%{__make}
+%{__make} -j1
./libtool --mode=link --tag=CC %{__cc} %{rpmcppflags} %{rpmcflags} -o systemd_booted %{rpmldflags} src/systemd_booted.c -L. -lsystemd-daemon
+%{?with_tests:%{__make} check}
+
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/var/lib/%{name}/coredump \
ln -s /lib/udev/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}
+mv $RPM_BUILD_ROOT/{,s}bin/udevadm
+ln -s %{_sbindir}/udevadm $RPM_BUILD_ROOT/bin
ln -s /lib/udev $RPM_BUILD_ROOT/usr/lib/
# install custom udev rules from pld package
mv $RPM_BUILD_ROOT%{_mandir}/man8/{systemd-,}udevd.8
echo ".so man8/udevd.8" >$RPM_BUILD_ROOT%{_mandir}/man8/systemd-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 ../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
+# 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 rc-inetd replacement
-cp -p %{SOURCE16} $RPM_BUILD_ROOT/lib/systemd/system-generators/pld-rc-inetd-generator
+cp -p %{SOURCE16} $RPM_BUILD_ROOT%{systemdunitdir}-generators/pld-rc-inetd-generator
cp -p %{SOURCE17} $RPM_BUILD_ROOT%{systemdunitdir}/rc-inetd.service
cp -p %{SOURCE18} $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system-preset/default.preset
cp -p %{SOURCE19} $RPM_BUILD_ROOT%{systemdunitdir}/prefdm.service
# handled by rc-local sysv service, no need for generator
-%{__rm} $RPM_BUILD_ROOT/lib/systemd/system-generators/systemd-rc-local-generator
+%{__rm} $RPM_BUILD_ROOT%{systemdunitdir}-generators/systemd-rc-local-generator
# provided by rc-scripts
-%{__rm} $RPM_BUILD_ROOT/lib/systemd/system/rc-local.service
+%{__rm} $RPM_BUILD_ROOT%{systemdunitdir}/rc-local.service
# Make sure these directories are properly owned:
# - halt,kexec,poweroff,reboot: generic ones used by ConsoleKit-systemd,
# - syslog _might_ be used by some syslog implementation (none for now),
# - isn't dbus populated by dbus-systemd only (so to be moved there)?
-install -d $RPM_BUILD_ROOT%{systemdunitdir}/{dbus,halt,kexec,poweroff,reboot,syslog}.target.wants
+install -d $RPM_BUILD_ROOT%{systemdunitdir}/{basic,dbus,halt,initrd,kexec,poweroff,reboot,shutdown,syslog}.target.wants
+
+# Make sure the shutdown/sleep drop-in dirs exist
+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}
# Install SysV conversion tool for systemd
install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}
+# Create directory for service helper scripts
+install -d $RPM_BUILD_ROOT/lib/systemd/pld-helpers.d
+
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
+%pre
+%groupadd -g 288 systemd-journal
+
%post
+# should we?
+#setfacl -nm g:logs:rx,d:g:logs:rx /var/log/journal
/bin/systemd-machine-id-setup > /dev/null 2>&1 || :
/bin/systemctl daemon-reexec > /dev/null 2>&1 || :
if [ $1 -ge 1 ]; then
/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
fi
+if [ "$1" = "0" ]; then
+ %groupremove systemd-journal
+fi
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%postun inetd
%systemd_reload
+%pre journal-gateway
+%groupadd -g 287 systemd-journal-gateway
+%useradd -u 287 -g 287 -d /var/log/journal -s /bin/false -c "Systemd Journal Gateway" systemd-journal-gateway
+
+%post journal-gateway
+%systemd_post systemd-journal-gatewayd.socket systemd-journal-gatewayd.service
+
+%preun journal-gateway
+%systemd_preun systemd-journal-gatewayd.socket systemd-journal-gatewayd.service
+
+%postun journal-gateway
+%systemd_reload
+
+if [ "$1" = "0" ]; then
+ %userremove systemd-journal-gateway
+ %groupremove systemd-journal-gateway
+fi
+
%triggerpostun -n udev-core -- dev
if [ "$2" = 0 ]; then
# need to kill and restart udevd as after obsoleting dev package the
/etc/dbus-1/system.d/org.freedesktop.hostname1.conf
/etc/dbus-1/system.d/org.freedesktop.locale1.conf
/etc/dbus-1/system.d/org.freedesktop.login1.conf
+/etc/dbus-1/system.d/org.freedesktop.machine1.conf
/etc/dbus-1/system.d/org.freedesktop.systemd1.conf
/etc/dbus-1/system.d/org.freedesktop.timedate1.conf
%ghost %config(noreplace) %{_sysconfdir}/machine-id
%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/journald.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/logind.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system.conf
%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
+%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) /bin/loginctl
+%attr(755,root,root) /bin/machinectl
%attr(755,root,root) /bin/systemd
%attr(755,root,root) /bin/systemd-ask-password
%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}/bootctl
%attr(755,root,root) %{_bindir}/hostnamectl
+%attr(755,root,root) %{_bindir}/kernel-install
%attr(755,root,root) %{_bindir}/localectl
%attr(755,root,root) %{_bindir}/systemd-cat
%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-run
%attr(755,root,root) %{_bindir}/systemd-stdio-bridge
%attr(755,root,root) %{_bindir}/systemd-sysv-convert
%attr(755,root,root) %{_bindir}/timedatectl
%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-ac-power
+%attr(755,root,root) /lib/systemd/systemd-activate
+%attr(755,root,root) /lib/systemd/systemd-backlight
%attr(755,root,root) /lib/systemd/systemd-binfmt
%attr(755,root,root) /lib/systemd/systemd-bootchart
%attr(755,root,root) /lib/systemd/systemd-cgroups-agent
%attr(755,root,root) /lib/systemd/systemd-fsck
%attr(755,root,root) /lib/systemd/systemd-hostnamed
%attr(755,root,root) /lib/systemd/systemd-initctl
-%{?with_microhttpd:%attr(755,root,root) /lib/systemd/systemd-journal-gatewayd}
%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-machined
%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-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-udevd
%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
/lib/udev/rules.d/70-uaccess.rules
/lib/udev/rules.d/73-seat-late.rules
/lib/udev/rules.d/99-systemd.rules
%dir %{_libexecdir}/systemd
+%dir %{_libexecdir}/systemd/system-shutdown
+%dir %{_libexecdir}/systemd/system-sleep
%dir %{_libexecdir}/systemd/catalog
%{_libexecdir}/systemd/catalog/systemd.catalog
%{_libexecdir}/systemd/user
%{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
%{_mandir}/man1/journalctl.1*
%{_mandir}/man1/localectl.1*
%{_mandir}/man1/loginctl.1*
+%{_mandir}/man1/machinectl.1*
%{_mandir}/man1/systemd.1*
%{_mandir}/man1/systemd-ask-password.1*
%{_mandir}/man1/systemd-bootchart.1*
%{_mandir}/man1/systemd-machine-id-setup.1*
%{_mandir}/man1/systemd-notify.1*
%{_mandir}/man1/systemd-nspawn.1*
+%{_mandir}/man1/systemd-run.1*
%{_mandir}/man1/systemd-tty-ask-password-agent.1*
%{_mandir}/man1/timedatectl.1*
%{_mandir}/man5/binfmt.d.5*
+%{_mandir}/man5/bootchart.conf.5*
# cfl with rc-scripts
#%{_mandir}/man5/crypttab.5*
%{_mandir}/man5/hostname.5*
%{_mandir}/man5/os-release.5*
%{_mandir}/man5/sysctl.d.5*
%{_mandir}/man5/systemd.*.5*
+%{_mandir}/man5/systemd-sleep.conf.5*
+%{_mandir}/man5/systemd-system.conf.5*
+%{_mandir}/man5/systemd-user.conf.5*
%{_mandir}/man5/vconsole.conf.5*
%{_mandir}/man7/bootup.7*
%{_mandir}/man7/daemon.7*
%{_mandir}/man7/kernel-command-line.7*
+%{_mandir}/man7/systemd.directives.7*
+%{_mandir}/man7/systemd.index.7*
%{_mandir}/man7/systemd.journal-fields.7*
%{_mandir}/man7/systemd.special.7*
%{_mandir}/man7/systemd.time.7*
+%{_mandir}/man8/kernel-install.8*
%{_mandir}/man8/nss-myhostname.8*
+%{_mandir}/man8/systemd-activate.8*
+%{_mandir}/man8/systemd-backlight.8*
%{_mandir}/man8/systemd-binfmt.8*
%{?with_cryptsetup:%{_mandir}/man8/systemd-cryptsetup-generator.8*}
%{_mandir}/man8/systemd-fsck.8*
+%{_mandir}/man8/systemd-efi-boot-generator.8*
+%{_mandir}/man8/systemd-gpt-auto-generator.8*
%{_mandir}/man8/systemd-fstab-generator.8*
%{_mandir}/man8/systemd-getty-generator.8*
%{_mandir}/man8/systemd-hostnamed.8*
%{_mandir}/man8/systemd-initctl.8*
-%{?with_microhttpd:%{_mandir}/man8/systemd-journal-gatewayd.8*}
%{_mandir}/man8/systemd-journald.8*
%{_mandir}/man8/systemd-localed.8*
%{_mandir}/man8/systemd-logind.8*
+%{_mandir}/man8/systemd-machined.8*
%{_mandir}/man8/systemd-modules-load.8*
%{_mandir}/man8/systemd-quotacheck.8*
%{_mandir}/man8/systemd-random-seed.8*
%dir /var/lib/%{name}/coredump
%attr(640,root,root) %ghost /var/log/btmp
%attr(664,root,utmp) %ghost /var/log/wtmp
+%dir /var/log/journal
%if %{with pam}
%attr(755,root,root) /%{_lib}/security/pam_systemd.so
%attr(755,root,root) /sbin/runlevel
%attr(755,root,root) /sbin/shutdown
%attr(755,root,root) /sbin/telinit
-%{_mandir}/man1/init.1
+%{_mandir}/man1/init.1*
+%{_mandir}/man5/crypttab.5*
%{_mandir}/man8/halt.8*
-%{_mandir}/man8/poweroff.8
-%{_mandir}/man8/reboot.8
+%{_mandir}/man8/poweroff.8*
+%{_mandir}/man8/reboot.8*
%{_mandir}/man8/runlevel.8*
%{_mandir}/man8/shutdown.8*
%{_mandir}/man8/telinit.8*
%dir %{_sysconfdir}/modules-load.d
%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/modules-load.d/modules.conf
%dir %{_sysconfdir}/sysctl.d
+%{_sysconfdir}/sysctl.d/99-sysctl.conf
%dir %{_sysconfdir}/systemd
%dir %{_sysconfdir}/systemd/system
%dir %{_sysconfdir}/systemd/system-preset
%dir %{_libexecdir}/binfmt.d
%dir %{_libexecdir}/modules-load.d
%dir %{_libexecdir}/sysctl.d
+%dir /lib/systemd/pld-helpers.d
+%dir /lib/systemd/system-generators
%dir /lib/systemd/system-sleep
%dir /lib/systemd/system-shutdown
-%{_libexecdir}/sysctl.d/coredump.conf
+%{_libexecdir}/sysctl.d/50-coredump.conf
+%{_libexecdir}/sysctl.d/50-default.conf
%attr(755,root,root) /bin/systemctl
%attr(755,root,root) /bin/systemd-tmpfiles
%attr(755,root,root) /bin/systemd_booted
%{systemdunitdir}/*.mount
%{systemdunitdir}/*.path
%{systemdunitdir}/*.service
+%{systemdunitdir}/*.slice
%exclude %{systemdunitdir}/rc-inetd.service
%{systemdunitdir}/*.socket
%{systemdunitdir}/*.target
%dir %{systemdunitdir}/final.target.wants
%dir %{systemdunitdir}/graphical.target.wants
%dir %{systemdunitdir}/halt.target.wants
+%dir %{systemdunitdir}/initrd.target.wants
%dir %{systemdunitdir}/kexec.target.wants
%dir %{systemdunitdir}/local-fs.target.wants
%dir %{systemdunitdir}/multi-user.target.wants
%dir %{systemdunitdir}/sockets.target.wants
%dir %{systemdunitdir}/sysinit.target.wants
%dir %{systemdunitdir}/syslog.target.wants
-%{systemdunitdir}/basic.target.wants/*
+%dir %{systemdunitdir}/timers.target.wants
%{systemdunitdir}/final.target.wants/*
%{systemdunitdir}/graphical.target.wants/*
%{systemdunitdir}/local-fs.target.wants/*
%{systemdunitdir}/multi-user.target.wants/systemd-logind.service
%{systemdunitdir}/multi-user.target.wants/systemd-user-sessions.service
%{systemdunitdir}/runlevel[12345].target.wants/*
-%{systemdunitdir}/shutdown.target.wants/*
%{systemdunitdir}/sockets.target.wants/*
%{?with_cryptsetup:%{systemdunitdir}/sysinit.target.wants/cryptsetup.target}
%{systemdunitdir}/sysinit.target.wants/dev-hugepages.mount
%{systemdunitdir}/sysinit.target.wants/dev-mqueue.mount
+%{systemdunitdir}/sysinit.target.wants/kmod-static-nodes.service
%{systemdunitdir}/sysinit.target.wants/proc-sys-fs-binfmt_misc.automount
%{systemdunitdir}/sysinit.target.wants/sys-*.mount
%{systemdunitdir}/sysinit.target.wants/systemd-*
+%{systemdunitdir}/timers.target.wants/*.timer
%{_mandir}/man8/systemd-ask-password-console.path.8*
%{_mandir}/man8/systemd-ask-password-console.service.8*
%{_mandir}/man8/systemd-ask-password-wall.path.8*
%{_mandir}/man8/systemd-ask-password-wall.service.8*
+%{_mandir}/man8/systemd-backlight@.service.8*
%{_mandir}/man8/systemd-binfmt.service.8*
%{?with_cryptsetup:%{_mandir}/man8/systemd-cryptsetup.8*}
%{?with_cryptsetup:%{_mandir}/man8/systemd-cryptsetup@.service.8*}
%{_mandir}/man8/systemd-hybrid-sleep.service.8*
%{_mandir}/man8/systemd-initctl.service.8*
%{_mandir}/man8/systemd-initctl.socket.8*
-%{?with_microhttpd:%{_mandir}/man8/systemd-journal-gatewayd.service.8*}
-%{?with_microhttpd:%{_mandir}/man8/systemd-journal-gatewayd.socket.8*}
%{_mandir}/man8/systemd-journald.service.8*
%{_mandir}/man8/systemd-journald.socket.8*
%{_mandir}/man8/systemd-kexec.service.8*
%{_mandir}/man8/systemd-localed.service.8*
%{_mandir}/man8/systemd-logind.service.8*
+%{_mandir}/man8/systemd-machined.service.8*
%{_mandir}/man8/systemd-modules-load.service.8*
%{_mandir}/man8/systemd-poweroff.service.8*
%{_mandir}/man8/systemd-quotacheck.service.8*
-%{_mandir}/man8/systemd-random-seed-load.service.8*
-%{_mandir}/man8/systemd-random-seed-save.service.8*
+%{_mandir}/man8/systemd-random-seed.service.8*
%{_mandir}/man8/systemd-readahead-collect.service.8*
%{_mandir}/man8/systemd-readahead-done.service.8*
%{_mandir}/man8/systemd-readahead-done.timer.8*
%{_mandir}/man8/systemd-tmpfiles-clean.service.8*
%{_mandir}/man8/systemd-tmpfiles-clean.timer.8*
%{_mandir}/man8/systemd-tmpfiles-setup.service.8*
+%{_mandir}/man8/systemd-tmpfiles-setup-dev.service.8*
%{_mandir}/man8/systemd-udevd.service.8*
%{_mandir}/man8/systemd-udevd-control.socket.8*
%{_mandir}/man8/systemd-udevd-kernel.socket.8*
%{_mandir}/man8/systemd-update-utmp-runlevel.service.8*
-%{_mandir}/man8/systemd-update-utmp-shutdown.service.8*
+%{_mandir}/man8/systemd-update-utmp.service.8*
%{_mandir}/man8/systemd-user-sessions.service.8*
%{_mandir}/man8/systemd-vconsole-setup.service.8*
+%if %{with microhttpd}
+%files journal-gateway
+%defattr(644,root,root,755)
+%attr(755,root,root) /lib/systemd/systemd-journal-gatewayd
+%{_mandir}/man8/systemd-journal-gatewayd.8*
+%{_mandir}/man8/systemd-journal-gatewayd.service.8*
+%{_mandir}/man8/systemd-journal-gatewayd.socket.8*
+%endif
+
%files inetd
%defattr(644,root,root,755)
-%attr(755,root,root) /lib/systemd/system-generators/pld-rc-inetd-generator
+%attr(755,root,root) %{systemdunitdir}-generators/pld-rc-inetd-generator
%{systemdunitdir}/rc-inetd.service
%files analyze
%{_mandir}/man3/SD_*.3*
%{_mandir}/man3/sd*.3*
+%files -n python-systemd
+%defattr(644,root,root,755)
+%dir %{py_sitedir}/systemd
+%{py_sitedir}/systemd/*.py[co]
+%attr(755,root,root) %{py_sitedir}/systemd/_daemon.so
+%attr(755,root,root) %{py_sitedir}/systemd/_journal.so
+%attr(755,root,root) %{py_sitedir}/systemd/_reader.so
+%attr(755,root,root) %{py_sitedir}/systemd/id128.so
+%attr(755,root,root) %{py_sitedir}/systemd/login.so
+
%files -n bash-completion-systemd
%defattr(644,root,root,755)
%{_datadir}/bash-completion/completions/hostnamectl
%{_datadir}/bash-completion/completions/journalctl
+%{_datadir}/bash-completion/completions/kernel-install
%{_datadir}/bash-completion/completions/localectl
%{_datadir}/bash-completion/completions/loginctl
%{_datadir}/bash-completion/completions/systemctl
+%{_datadir}/bash-completion/completions/systemd-analyze
%{_datadir}/bash-completion/completions/systemd-coredumpctl
+%{_datadir}/bash-completion/completions/systemd-run
%{_datadir}/bash-completion/completions/timedatectl
+%files -n zsh-completion-systemd
+%defattr(644,root,root,755)
+%{_datadir}/zsh/site-functions/_hostnamectl
+%{_datadir}/zsh/site-functions/_journalctl
+%{_datadir}/zsh/site-functions/_kernel-install
+%{_datadir}/zsh/site-functions/_localectl
+%{_datadir}/zsh/site-functions/_loginctl
+%{_datadir}/zsh/site-functions/_machinectl
+%{_datadir}/zsh/site-functions/_sd_hosts_or_user_at_host
+%{_datadir}/zsh/site-functions/_systemctl
+%{_datadir}/zsh/site-functions/_systemd
+%{_datadir}/zsh/site-functions/_systemd-analyze
+%{_datadir}/zsh/site-functions/_systemd-coredumpctl
+%{_datadir}/zsh/site-functions/_systemd-delta
+%{_datadir}/zsh/site-functions/_systemd-inhibit
+%{_datadir}/zsh/site-functions/_systemd-nspawn
+%{_datadir}/zsh/site-functions/_systemd-tmpfiles
+%{_datadir}/zsh/site-functions/_timedatectl
+
%files -n udev
%defattr(644,root,root,755)
%dev(c,1,3) %attr(666,root,root) /dev/null
%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/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
%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-pci-classes.hwdb
-/lib/udev/hwdb.d/20-pci-vendor-product.hwdb
+/lib/udev/hwdb.d/20-pci-vendor-model.hwdb
/lib/udev/hwdb.d/20-usb-classes.hwdb
-/lib/udev/hwdb.d/20-usb-vendor-product.hwdb
+/lib/udev/hwdb.d/20-usb-vendor-model.hwdb
+/lib/udev/hwdb.d/60-keyboard.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
+%attr(755,root,root) /bin/udevadm
%dir %{_sysconfdir}/udev
%dir %{_sysconfdir}/udev/rules.d
# rules below are NOT supposed to be changed by users
/lib/udev/rules.d/42-usb-hid-pm.rules
+/lib/udev/rules.d/50-firmware.rules
/lib/udev/rules.d/50-udev-default.rules
/lib/udev/rules.d/60-cdrom_id.rules
+/lib/udev/rules.d/60-keyboard.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/78-sound-card.rules
/lib/udev/rules.d/80-drivers.rules
/lib/udev/rules.d/80-net-name-slot.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*
%{_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
%{_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
-
%files -n bash-completion-udev
%defattr(644,root,root,755)
%{_datadir}/bash-completion/completions/udevadm
-%files -n python-systemd
+%files -n zsh-completion-udev
%defattr(644,root,root,755)
-%dir %{py_sitedir}/systemd
-%{py_sitedir}/systemd/*.py*
-%attr(755,root,root) %{py_sitedir}/systemd/*.so
+%{_datadir}/zsh/site-functions/_udevadm