%bcond_without qrencode # QRencode support
%bcond_without selinux # without SELinux support
%bcond_with efi # EFI boot support [missing files in 220]
+%bcond_without python3 # Python 3.x support
%bcond_with tests # "make check" (requires systemd already installed)
Summary: A System and Service Manager
Name: systemd
# Verify ChangeLog and NEWS when updating (since there are incompatible/breaking changes very often)
Version: 221
-Release: 0.1
+Release: 1
Epoch: 1
License: GPL v2+ (udev), LGPL v2.1+ (the rest)
Group: Base
BuildRequires: python-devel
BuildRequires: python-lxml
BuildRequires: python-modules
+%if %{with python3}
+BuildRequires: python3-devel
+BuildRequires: python3-lxml
+BuildRequires: python3-modules
+%endif
%{?with_qrencode:BuildRequires: qrencode-devel}
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.628
Pliki nagłówkowe bibliotek systemd.
%package -n python-systemd
-Summary: Systemd Python bindings
-Summary(pl.UTF-8): Wiązania do Systemd dla Pythona
+Summary: Systemd Python 2.x bindings
+Summary(pl.UTF-8): Wiązania do Systemd dla Pythona 2.x
Group: Development/Languages/Python
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
Requires: python
%description -n python-systemd
-Systemd Python bindings.
+Systemd Python 2.x bindings.
+
+%description -n python-systemd -l pl.UTF-8
+Wiązania do Systemd dla Pythona 2.x.
+
+%package -n python3-systemd
+Summary: Systemd Python 3.x bindings
+Summary(pl.UTF-8): Wiązania do Systemd dla Pythona 3.x
+Group: Development/Languages/Python
+Requires: %{name}-libs = %{epoch}:%{version}-%{release}
+Requires: python3
+
+%description -n python3-systemd
+Systemd Python 3.x bindings.
%description -n python-systemd -l pl.UTF-8
-Wiązania do Systemd dla Pythona.
+Wiązania do Systemd dla Pythona 3.x.
%package -n bash-completion-systemd
Summary: bash-completion for systemd
Summary(pl.UTF-8): Plik nagłówkowy biblioteki libudev
Group: Development/Libraries
Requires: udev-libs = %{epoch}:%{version}-%{release}
+Obsoletes: udev-apidocs
Obsoletes: udev-static
%description -n udev-devel
%description -n udev-devel -l pl.UTF-8
Plik nagłówkowy biblioteki libudev.
-%package -n udev-apidocs
-Summary: libudev API documentation
-Summary(pl.UTF-8): Dokumentacja API libudev
-Group: Documentation
-%if "%{_rpmversion}" >= "5"
-BuildArch: noarch
-%endif
-
-%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: glib2 >= 1:2.22.0
-Requires: udev-libs = %{epoch}:%{version}-%{release}
-
-%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: glib2-devel >= 1:2.22.0
-Requires: udev-devel = %{epoch}:%{version}-%{release}
-Requires: udev-glib = %{epoch}:%{version}-%{release}
-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-apidocs
-Summary: libgudev API documentation
-Summary(pl.UTF-8): Dokumentacja API libgudev
-Group: Documentation
-%if "%{_rpmversion}" >= "5"
-BuildArch: noarch
-%endif
-
-%description -n udev-glib-apidocs
-libgudev API documentation.
-
-%description -n udev-glib-apidocs -l pl.UTF-8
-Dokumentacja API libgudev.
-
%package -n bash-completion-udev
Summary: bash-completion for udev
Summary(pl.UTF-8): Bashowe dopełnianie składni dla udev
%{__autoconf}
%{__autoheader}
%{__automake}
+
+for PYTHON in "%{__python}" %{?with_python3:"%{__python3}"} ; do
+
%configure \
QUOTAON=/sbin/quotaon \
QUOTACHECK=/sbin/quotacheck \
KILL=/bin/kill \
KMOD=/sbin/kmod \
KEXEC=/sbin/kexec \
+ PYTHON="$PYTHON" \
+ PYTHON_BINARY="$PYTHON" \
%{?debug:--enable-debug} \
%{__enable_disable audit} \
%{__enable_disable cryptsetup libcryptsetup} \
--with-rootprefix="" \
--with-rootlibdir=/%{_lib}
+%{__make} clean-python
+
%{__make}
+
+python_libs=.libs/$(basename $PYTHON)
+mkdir -p $python_libs
+cp -a .libs/{_daemon,_journal,_reader,id128,login}.so $python_libs
+done
+
./libtool --mode=link --tag=CC %{__cc} %{rpmcppflags} %{rpmcflags} -o systemd_booted %{rpmldflags} src/systemd_booted.c -L. -lsystemd-daemon
%{?with_tests:%{__make} check}
install -d $RPM_BUILD_ROOT/var/lib/{%{name}/coredump,machines} \
$RPM_BUILD_ROOT{%{_sysconfdir}/{modprobe.d,systemd/system-preset},%{_sbindir}}
-%{__make} install \
+%{__make} -j1 install \
DESTDIR=$RPM_BUILD_ROOT
./libtool --mode=install install -p -m755 systemd_booted $RPM_BUILD_ROOT/bin/systemd_booted
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
+# http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
+ln -s /dev/null $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/80-net-setup-link.rules
+
# install udev configs
cp -a %{SOURCE103} $RPM_BUILD_ROOT%{_sysconfdir}/udev/links.conf
%{__rm} $RPM_BUILD_ROOT/%{_lib}/security/pam_systemd.la
%{__rm} $RPM_BUILD_ROOT/%{_lib}/libnss_myhostname.la
%{__rm} $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
+%py_comp $RPM_BUILD_ROOT%{py_sitedir}
+%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
+%else
%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/systemd/*.la
+%endif
%py_postclean
+
%find_lang %{name}
%clean
%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 -f %{name}.lang
%defattr(644,root,root,755)
%doc DISTRO_PORTING NEWS README TODO
/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
+%attr(755,root,root) %{_sysconfdir}/X11/xinit/xinitrc.d/50-systemd-user.sh
%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
%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
%attr(755,root,root) /lib/systemd/system-generators/systemd-hibernate-resume-generator
%attr(755,root,root) /lib/systemd/system-generators/systemd-system-update-generator
%attr(755,root,root) /lib/systemd/system-generators/systemd-sysv-generator
+%dir /lib/systemd/network
+/lib/systemd/network/99-default.link
/lib/udev/rules.d/70-uaccess.rules
/lib/udev/rules.d/71-seat.rules
/lib/udev/rules.d/73-seat-late.rules
%{_libexecdir}/kernel/install.d/90-loaderentry.install
%dir %{_libexecdir}/systemd/catalog
%{_libexecdir}/systemd/catalog/systemd.catalog
+%lang(be) %{_libexecdir}/systemd/catalog/systemd.be.catalog
+%lang(be) %{_libexecdir}/systemd/catalog/systemd.be@latin.catalog
%lang(fr) %{_libexecdir}/systemd/catalog/systemd.fr.catalog
%lang(it) %{_libexecdir}/systemd/catalog/systemd.it.catalog
%lang(pl) %{_libexecdir}/systemd/catalog/systemd.pl.catalog
%lang(pt_BR) %{_libexecdir}/systemd/catalog/systemd.pt_BR.catalog
%lang(ru) %{_libexecdir}/systemd/catalog/systemd.ru.catalog
+%lang(zh_TW) %{_libexecdir}/systemd/catalog/systemd.zh_TW.catalog
%dir %{_libexecdir}/sysusers.d
%{_libexecdir}/sysusers.d/basic.conf
%{_libexecdir}/sysusers.d/systemd.conf
%{_libexecdir}/tmpfiles.d/legacy.conf
%{_libexecdir}/tmpfiles.d/systemd.conf
%{_libexecdir}/tmpfiles.d/systemd-nologin.conf
+%{_libexecdir}/tmpfiles.d/systemd-nspawn.conf
%if %{with microhttpd}
%{_libexecdir}/tmpfiles.d/systemd-remote.conf
%endif
%dir %{_libexecdir}/systemd/user
%{_libexecdir}/systemd/user/basic.target
%{_libexecdir}/systemd/user/bluetooth.target
+%{_libexecdir}/systemd/user/busnames.target
%{_libexecdir}/systemd/user/default.target
%{_libexecdir}/systemd/user/exit.target
%{_libexecdir}/systemd/user/paths.target
%{_libexecdir}/systemd/user/sockets.target
%{_libexecdir}/systemd/user/sound.target
%{_libexecdir}/systemd/user/timers.target
+%{_libexecdir}/systemd/user/systemd-bus-proxyd.service
+%{_libexecdir}/systemd/user/systemd-bus-proxyd.socket
%{_libexecdir}/systemd/user/systemd-exit.service
%dir %{_libexecdir}/systemd/user-generators
+%{_libexecdir}/systemd/user-generators/systemd-dbus1-generator
%dir /lib/systemd/pld-helpers.d
%dir /lib/systemd/system-generators
%dir /lib/systemd/system-preset
%{_mandir}/man8/systemd-tmpfiles.8*
%{_npkgconfigdir}/systemd.pc
+%{systemdunitdir}/org.freedesktop.hostname1.busname
+%{systemdunitdir}/org.freedesktop.import1.busname
+%{systemdunitdir}/org.freedesktop.locale1.busname
+%{systemdunitdir}/org.freedesktop.login1.busname
+%{systemdunitdir}/org.freedesktop.machine1.busname
+%{systemdunitdir}/org.freedesktop.network1.busname
+%{systemdunitdir}/org.freedesktop.resolve1.busname
+%{systemdunitdir}/org.freedesktop.systemd1.busname
+%{systemdunitdir}/org.freedesktop.timedate1.busname
%{systemdunitdir}/proc-sys-fs-binfmt_misc.automount
%{systemdunitdir}/dev-hugepages.mount
%{systemdunitdir}/dev-mqueue.mount
%{systemdunitdir}/systemd-backlight@.service
%{systemdunitdir}/systemd-binfmt.service
%{systemdunitdir}/systemd-bootchart.service
+%{systemdunitdir}/systemd-bus-proxyd.service
%{systemdunitdir}/systemd-firstboot.service
%{systemdunitdir}/systemd-fsck-root.service
%{systemdunitdir}/systemd-fsck@.service
%{systemdunitdir}/user.slice
%exclude %{systemdunitdir}/rc-inetd.service
%{systemdunitdir}/syslog.socket
+%{systemdunitdir}/systemd-bus-proxyd.socket
%{systemdunitdir}/systemd-initctl.socket
%{systemdunitdir}/systemd-journal-remote.socket
%{systemdunitdir}/systemd-journald-audit.socket
%{systemdunitdir}/systemd-udevd-kernel.socket
%{systemdunitdir}/basic.target
%{systemdunitdir}/bluetooth.target
+%{systemdunitdir}/busnames.target
%{?with_cryptsetup:%{systemdunitdir}/cryptsetup-pre.target}
%{?with_cryptsetup:%{systemdunitdir}/cryptsetup.target}
%{systemdunitdir}/ctrl-alt-del.target
%{systemdunitdir}/umount.target
%{systemdunitdir}/systemd-tmpfiles-clean.timer
%dir %{systemdunitdir}/basic.target.wants
+%dir %{systemdunitdir}/busnames.target.wants
%dir %{systemdunitdir}/dbus.target.wants
+%dir %{systemdunitdir}/final.target.wants
%dir %{systemdunitdir}/graphical.target.wants
%dir %{systemdunitdir}/halt.target.wants
%dir %{systemdunitdir}/initrd.target.wants
%dir %{systemdunitdir}/sysinit.target.wants
%dir %{systemdunitdir}/syslog.target.wants
%dir %{systemdunitdir}/timers.target.wants
+%{systemdunitdir}/busnames.target.wants/org.freedesktop.hostname1.busname
+%{systemdunitdir}/busnames.target.wants/org.freedesktop.import1.busname
+%{systemdunitdir}/busnames.target.wants/org.freedesktop.locale1.busname
+%{systemdunitdir}/busnames.target.wants/org.freedesktop.login1.busname
+%{systemdunitdir}/busnames.target.wants/org.freedesktop.machine1.busname
+%{systemdunitdir}/busnames.target.wants/org.freedesktop.network1.busname
+%{systemdunitdir}/busnames.target.wants/org.freedesktop.resolve1.busname
+%{systemdunitdir}/busnames.target.wants/org.freedesktop.systemd1.busname
+%{systemdunitdir}/busnames.target.wants/org.freedesktop.timedate1.busname
+%{systemdunitdir}/final.target.wants/halt-local.service
%{systemdunitdir}/graphical.target.wants/display-manager.service
%{systemdunitdir}/graphical.target.wants/systemd-update-utmp-runlevel.service
%{systemdunitdir}/local-fs.target.wants/pld-clean-tmp.service
%{_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.socket.8
+%{_mandir}/man8/systemd-bus-proxyd@.service.8.gz
%{?with_cryptsetup:%{_mandir}/man8/systemd-cryptsetup.8*}
%{?with_cryptsetup:%{_mandir}/man8/systemd-cryptsetup@.service.8*}
%{_mandir}/man8/systemd-fsck-root.service.8*
%dir %{_sysconfdir}/systemd/network
%dir %{_sysconfdir}/systemd/system/network-online.target.wants
%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service
-%dir /lib/systemd/network
/lib/systemd/network/80-container-host0.network
/lib/systemd/network/80-container-ve.network
-/lib/systemd/network/99-default.link
%{systemdunitdir}/dbus-org.freedesktop.network1.service
%{systemdunitdir}/systemd-networkd-wait-online.service
%{systemdunitdir}/systemd-networkd.service
%attr(755,root,root) %{py_sitedir}/systemd/id128.so
%attr(755,root,root) %{py_sitedir}/systemd/login.so
+%if %{with python3}
+%files -n python3-systemd
+%defattr(644,root,root,755)
+%dir %{py3_sitedir}/systemd
+%{py3_sitedir}/systemd/*.py
+%dir %{py3_sitedir}/systemd/__pycache__
+%{py3_sitedir}/systemd/__pycache__/*.py[co]
+%attr(755,root,root) %{py3_sitedir}/systemd/_daemon.so
+%attr(755,root,root) %{py3_sitedir}/systemd/_journal.so
+%attr(755,root,root) %{py3_sitedir}/systemd/_reader.so
+%attr(755,root,root) %{py3_sitedir}/systemd/id128.so
+%attr(755,root,root) %{py3_sitedir}/systemd/login.so
+%endif
+
%files -n bash-completion-systemd
%defattr(644,root,root,755)
%{_datadir}/bash-completion/completions/bootctl
%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/80-net-setup-link.rules
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/udev/udev.conf
%{_includedir}/libudev.h
%{_pkgconfigdir}/libudev.pc
%{_npkgconfigdir}/udev.pc
-
-%files -n udev-apidocs
-%defattr(644,root,root,755)
-#%{_gtkdocdir}/libudev
-
-#%files -n udev-glib
-#%defattr(644,root,root,755)
-#%attr(755,root,root) %{_libdir}/libgudev-1.0.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir}/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-apidocs
-#%defattr(644,root,root,755)
-#%{_gtkdocdir}/gudev
+%{_mandir}/man3/libudev.3*
+%{_mandir}/man3/udev_*.3*
%files -n bash-completion-udev
%defattr(644,root,root,755)