systemd-presets-branding-op.../systemd-presets-branding-openSUSE.spec
Marcus Meissner d35d212d2e Accepting request 556009 from home:kukuk:branches:Base:System
- If we do a fresh installation, call systemctl preset-all in the
  %posttrans section. Some services need to be installed before
  systemd or do not strictly require systemd, so systemd would only
  be installed after them and the systemd units of this package
  never enabled.

- Enable klog.service and rsyslog.service by default, currently
  they enable themself always in post install section.

OBS-URL: https://build.opensuse.org/request/show/556009
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd-presets-branding-openSUSE?expand=0&rev=102
2017-12-11 16:11:14 +00:00

99 lines
3.1 KiB
RPMSpec

#
# spec file for package systemd-presets-branding-openSUSE
#
# Copyright (c) 2017 SUSE LINUX 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/
#
%define generic_name systemd-presets-branding
Name: %{generic_name}-openSUSE
Version: 12.2
Release: 0
Summary: Systemd default presets for openSUSE
License: GPL-2.0+
Group: System/Base
Source0: default-SUSE.preset
Source1: default-openSUSE.preset
Source2: 99-default-disable.preset
Source3: branding-preset-states
# FIXME: why systemd is required ?
BuildRequires: systemd
#!BuildIgnore: systemd-presets-branding
PreReq: coreutils
Provides: %{generic_name} = %{version}
Supplements: packageand(systemd:branding-openSUSE)
Conflicts: otherproviders(%{generic_name})
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
Requires(pre): bash
Requires(post): bash
%description
Default presets for systemd on openSUSE distribution.
%prep
%setup -q -T -c
%build
%install
mkdir -p %{buildroot}%{_prefix}/lib/%{generic_name}
mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-preset
# everything that must be enabled to have a working system.
# shared across all brands
install -m644 %{SOURCE0} %{buildroot}%{_prefix}/lib/systemd/system-preset/90-default-SUSE.preset
# everything that must be enabled only in openSUSE
install -m644 %{SOURCE1} %{buildroot}%{_prefix}/lib/systemd/system-preset/90-default-openSUSE.preset
install -m644 %{SOURCE2} %{buildroot}%{_prefix}/lib/systemd/system-preset/
install -m755 %{SOURCE3} %{buildroot}%{_prefix}/lib/%{generic_name}/
%pre
# On initial installation, branding-preset-states does not yet exist,
# which is why we also check for the file to be present/executable
if [ $1 -gt 1 -a -x %{_prefix}/lib/%{generic_name}/branding-preset-states ] ; then
#
# Save the old state so we can detect which package have its
# default changed later.
#
# Note: the old version of the script is used here.
#
%{_prefix}/lib/%{generic_name}/branding-preset-states save
elif [ $1 -eq 1 ]; then
touch /run/rpm-%{name}-preset-all
fi
%post
if [ $1 -gt 1 ] ; then
#
# Now that the updated presets are installed, find the ones
# that have been changed and apply "systemct preset" on them.
#
%{_prefix}/lib/%{generic_name}/branding-preset-states apply-changes
fi
%posttrans
if [ -f /run/rpm-%{name}-preset-all ]; then
systemctl preset-all
fi
rm -f /run/rpm-%{name}-preset-all
%files
%defattr(-,root,root)
%{_prefix}/lib/%{generic_name}/
%{_prefix}/lib/systemd/system-preset/*
%changelog