diff --git a/macros.systemd.upstream b/macros.systemd.upstream new file mode 100644 index 00000000..dc19f937 --- /dev/null +++ b/macros.systemd.upstream @@ -0,0 +1,73 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- */ +# +# This file is part of systemd. +# +# Copyright 2012 Lennart Poettering +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. +# +# systemd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see . + +# RPM macros for packages installing systemd unit files + +%_unitdir @systemunitdir@ +%_presetdir @systempresetdir@ +%_udevhwdbdir @udevhwdbdir@ +%_udevrulesdir @udevrulesdir@ +%_journalcatalogdir @catalogdir@ +%_tmpfilesdir @tmpfilesdir@ +%_sysctldir @sysctldir@ + +%systemd_requires \ +Requires(post): systemd \ +Requires(preun): systemd \ +Requires(postun): systemd \ +%{nil} + +%systemd_post() \ +if [ $1 -eq 1 ] ; then \ + # Initial installation \ + @rootbindir@/systemctl preset %{?*} >/dev/null 2>&1 || : \ +fi \ +%{nil} + +%systemd_preun() \ +if [ $1 -eq 0 ] ; then \ + # Package removal, not upgrade \ + @rootbindir@/systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \ + @rootbindir@/systemctl stop %{?*} > /dev/null 2>&1 || : \ +fi \ +%{nil} + +%systemd_postun() \ +@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \ +%{nil} + +%systemd_postun_with_restart() \ +@rootbindir@/systemctl daemon-reload >/dev/null 2>&1 || : \ +if [ $1 -ge 1 ] ; then \ + # Package upgrade, not uninstall \ + @rootbindir@/systemctl try-restart %{?*} >/dev/null 2>&1 || : \ +fi \ +%{nil} + +%udev_hwdb_update() \ +@rootbindir@/udevadm hwdb --update >/dev/null 2>&1 || : \ +%{nil} + +%udev_rules_update() \ +@rootbindir@/udevadm control --reload >/dev/null 2>&1 || : \ +%{nil} + +%journal_catalog_update() \ +@rootbindir@/journalctl --update-catalog >/dev/null 2>&1 || : \ +%{nil} diff --git a/systemd-mini.changes b/systemd-mini.changes index 11123c97..0a35d39c 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Jun 19 08:44:52 UTC 2013 - mhrusecky@suse.com + +- Dropped backward compatibility +- Added check for upstream rpm macros changes + +------------------------------------------------------------------- +Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com + +- Split out RPM macros into separate package to simplify dependencies + ------------------------------------------------------------------- Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org diff --git a/systemd-mini.spec b/systemd-mini.spec index d1e49afe..024ccfed 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -110,6 +110,7 @@ Source6: baselibs.conf Source7: libgcrypt.m4 Source8: systemd-journald.init Source9: nss-myhostname-config +Source10: macros.systemd.upstream Source1060: boot.udev Source1061: write_dev_root_rule @@ -215,6 +216,7 @@ Summary: Development headers for systemd License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: %{name} = %{version} +Requires: systemd-rpm-macros %if 0%{?bootstrap} Conflicts: systemd-devel %endif @@ -367,6 +369,8 @@ This package marks the installation to not use syslog but only the journal. %prep %setup -q -n systemd-%{version} +echo "Checking whether upstream rpm macros changed..." +[ -z "`diff -Naru "%{S:10}" src/core/macros.systemd.in`" ] || exit 1 # only needed for bootstrap %if 0%{?bootstrap} @@ -490,9 +494,7 @@ sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants - -mkdir -p %{buildroot}%{_sysconfdir}/rpm -install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm +rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} @@ -922,7 +924,9 @@ fi %dir %{_datadir}/bash-completion/completions %ghost /var/lib/systemd/catalog/database %{_datadir}/bash-completion/completions/* +%if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd +%endif %dir /var/lib/systemd %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated diff --git a/systemd-rpm-macros.changes b/systemd-rpm-macros.changes new file mode 100644 index 00000000..3d222ce2 --- /dev/null +++ b/systemd-rpm-macros.changes @@ -0,0 +1,6 @@ +------------------------------------------------------------------- +Mon Jun 17 10:49:50 UTC 2013 - mhrusecky@suse.com + +- New package with systemd rpm macros to avoid unnecessary build time + dependencies + diff --git a/systemd-rpm-macros.spec b/systemd-rpm-macros.spec new file mode 100644 index 00000000..0268d064 --- /dev/null +++ b/systemd-rpm-macros.spec @@ -0,0 +1,57 @@ +# +# spec file for package systemd-rpm-macros +# +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +#!BuildIgnore: util-linux + +Name: systemd-rpm-macros +Version: 1 +Release: 0 +Summary: RPM macros for systemd +License: LGPL-2.1+ +Group: System/Base +Url: http://en.opensuse.org/openSUSE:Systemd_packaging_guidelines +Source0: macros.systemd +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildArch: noarch + +%description +Starting with openSUSE 12.1, several RPM macros must be used to package systemd +services files. This package provides these macros. + +%prep + +%build + +%install +mkdir -p %{buildroot}%{_sysconfdir}/rpm +install -m644 %{S:0} %{buildroot}%{_sysconfdir}/rpm +UNITDIR="`cat %{S:0} | sed -n 's|.*_unitdir[[:blank:]]*||p'`" +for i in $UNITDIR `dirname $UNITDIR`; do + mkdir -p %{buildroot}$i + echo $i >> unitdir +done + +%post + +%postun + +%files -f unitdir +%defattr(-,root,root) +%{_sysconfdir}/rpm/macros.systemd + +%changelog diff --git a/systemd.changes b/systemd.changes index 11123c97..702cc8d2 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Jun 19 08:44:06 UTC 2013 - mhrusecky@suse.com + +- Dropped backward compatibility +- Added check for upstream rpm macros changes + +------------------------------------------------------------------- +Mon Jun 18 12:13:25 UTC 2013 - mhrusecky@suse.com + +- Split out RPM macros into separate package to simplify dependencies + ------------------------------------------------------------------- Tue Jun 18 00:33:10 UTC 2013 - crrodriguez@opensuse.org diff --git a/systemd.spec b/systemd.spec index 0c475aa2..daba57f1 100644 --- a/systemd.spec +++ b/systemd.spec @@ -105,6 +105,7 @@ Source6: baselibs.conf Source7: libgcrypt.m4 Source8: systemd-journald.init Source9: nss-myhostname-config +Source10: macros.systemd.upstream Source1060: boot.udev Source1061: write_dev_root_rule @@ -210,6 +211,7 @@ Summary: Development headers for systemd License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: %{name} = %{version} +Requires: systemd-rpm-macros %if 0%{?bootstrap} Conflicts: systemd-devel %endif @@ -362,6 +364,8 @@ This package marks the installation to not use syslog but only the journal. %prep %setup -q -n systemd-%{version} +echo "Checking whether upstream rpm macros changed..." +[ -z "`diff -Naru "%{S:10}" src/core/macros.systemd.in`" ] || exit 1 # only needed for bootstrap %if 0%{?bootstrap} @@ -485,9 +489,7 @@ sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants - -mkdir -p %{buildroot}%{_sysconfdir}/rpm -install -m644 %{S:4} %{buildroot}%{_sysconfdir}/rpm +rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants} @@ -917,7 +919,9 @@ fi %dir %{_datadir}/bash-completion/completions %ghost /var/lib/systemd/catalog/database %{_datadir}/bash-completion/completions/* +%if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd +%endif %dir /var/lib/systemd %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated