# TODO:
-# - initrd needs love (does not build and is probably completly unusable in current form)
# - merge rpm macros provided by systemd with ours
#
# Conditional build:
%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
-
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: 199
+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: 4bb13f84ce211e93f0141774a90a2322
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
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: 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
Suggests: kmod >= 5
Suggests: service(klogd)
Suggests: service(syslog)
-Provides: user(systemd-journal-gateway)
-Provides: group(systemd-journal-gateway)
Provides: group(systemd-journal)
+Provides: group(systemd-journal-gateway)
Provides: udev-acl = %{epoch}:%{version}-%{release}
+Provides: user(systemd-journal-gateway)
Obsoletes: systemd-no-compat-tmpfiles
Obsoletes: udev-systemd
# systemd takes care of that and causes problems
%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.
%description devel -l pl.UTF-8
Pliki nagłówkowe bibliotek systemd.
+%package static
+Summary: Static systemd libraries
+Summary(pl.UTF-8): Statyczne biblioteki systemd
+Group: Development/Libraries
+Requires: %{name}-devel = %{epoch}:%{version}-%{release}
+
+%description static
+Static systemd libraries.
+
+%description static -l pl.UTF-8
+Statyczne biblioteki systemd.
+
%package -n bash-completion-systemd
Summary: bash-completion for systemd
Summary(pl.UTF-8): Bashowe dopełnianie składni dla systemd
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: 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
+Obsoletes: udev-compat
+Obsoletes: udev-initrd < %{epoch}:%{version}-%{release}}
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}}
+Conflicts: geninitrd < 12639
%description -n udev-core
A userspace implementation of devfs - core part of udev.
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
%description -n udev-glib-devel
Header file for libgudev library.
%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 >= 2.0
+Requires: udev = %{epoch}:%{version}
%description -n bash-completion-udev
bash-completion for udev.
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}
+Requires: python
%description -n python-systemd
Systemd Python bindings.
%patch3 -p1
%patch4 -p1
%patch6 -p1
-%if %{with uClibc}
-%patch7 -p1
-%endif
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
+%patch12 -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 \
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
# - 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,kexec,poweroff,reboot,syslog}.target.wants
# 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}
%dir %{_libexecdir}/sysctl.d
%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
%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}/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}/man3/SD_*.3*
%{_mandir}/man3/sd*.3*
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libsystemd-daemon.a
+%{_libdir}/libsystemd-id128.a
+%{_libdir}/libsystemd-journal.a
+%{_libdir}/libsystemd-login.a
+
%files -n bash-completion-systemd
%defattr(644,root,root,755)
%{_datadir}/bash-completion/completions/hostnamectl
/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
%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
%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