File patterns-microos.spec of Package patterns-microos
#
# spec file for package patterns-microos
#
# Copyright (c) 2020 SUSE LLC
#
# 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 https://bugs.opensuse.org/
#
%if 0%{?is_opensuse}
%define prodname openSUSE Leap Micro
%else
%define prodname SUSE Linux Enterprise Micro
%endif
Name: patterns-microos
Version: 5.1.0
Release: 0
Summary: Patterns for %{prodname}
License: MIT
Group: Metapackages
URL: http://en.opensuse.org/Patterns
Source0: %{name}-rpmlintrc
ExclusiveArch: x86_64 armv7l armv7hl aarch64 ppc64le s390x
%description
This is an internal package that is used to create the patterns as part
of the installation source setup. Installation of this package does
not make sense.
%package basesystem
Summary: %{prodname} Base System (alias pattern for microos-base)
Group: Metapackages
Provides: pattern() = basesystem
Provides: pattern-icon() = pattern-kubic
Requires: pattern() = microos-base
Obsoletes: patterns-base-basesystem
%description basesystem
This is the %{prodname} runtime system. It contains only a minimal multiuser
booting system.
%package base
Summary: %{prodname}
Group: Metapackages
Provides: pattern() = microos-base
Provides: pattern-category() = MicroOS
Provides: pattern-icon() = pattern-kubic
Provides: pattern-order() = 9010
Provides: pattern-visible()
Requires: distribution-release
Requires: aaa_base
Requires: audit
Requires: bash
Requires: btrfsmaintenance
Requires: btrfsprogs
Requires: ca-certificates
Requires: ca-certificates-mozilla
Requires: chrony
Requires: coreutils
Requires: cracklib-dict-small
Requires: dosfstools
Requires: dracut
Requires: elfutils
Requires: filesystem
Requires: glibc
Requires: haveged
Requires: health-checker
Requires: health-checker-plugins-MicroOS
Requires: hwinfo
Requires: iputils
### bsc#1174393
Requires: issue-generator
Requires: kbd
Requires: kdump
Requires: kernel-base
Requires: kmod
Requires: glibc-locale-base
Requires: less
Requires: libnss_usrfiles2
Requires: login
Requires: logrotate
Requires: microos-tools
### not in SLES Requires: nano
Requires: net-tools
Requires: openssh
Requires: pam
Requires: parted
Requires: pkgconfig
Requires: procps
Requires: rebootmgr
Requires: rpm
Requires: shadow
Requires: snapper
Requires: sudo
Requires: supportutils
Requires: sysconfig
Requires: sysfsutils
#Requires: branding-SLE
# FIX branding to similar to SLES
%ifnarch s390x
Requires: grub2-branding
%endif
Requires: system-group-hardware
Requires: system-group-wheel
Requires: system-group-kvm
Requires: system-user-nobody
Requires: systemd
### fix branding
Requires: systemd-presets-branding
### not in SLES Requires: tallow
Requires: terminfo
Requires: timezone
Requires: transactional-update
Requires: transactional-update-zypp-config
Requires: udev
Requires: vlan
Requires: which
Requires: wicked
Requires: xfsprogs
Requires: yast2-logs
Requires: zypper
Requires: zypper-needs-restarting
Requires: vim-small
### not in SLES Requires: pattern() = bootloader
Conflicts: gettext-runtime-mini
Conflicts: krb5-mini
%description base
This is the %{prodname} runtime system. It contains only a minimal multiuser
booting system.
%package defaults
Summary: %{prodname} defaults
Group: Metapackages
Provides: pattern() = microos-defaults
Provides: pattern-category() = MicroOS
Provides: pattern-icon() = pattern-kubic
Provides: pattern-order() = 9011
Requires: pattern() = microos-base
Requires: pattern() = microos-bootloader
Requires: suseconnect-ng
Requires: rollback-helper
%description defaults
This provides default packages for %{prodname} which can be optionally
replaced by alternatives.
%package hardware
Summary: Hardware Support
Group: Metapackages
Provides: pattern() = microos-hardware
Provides: pattern-category() = MicroOS
Provides: pattern-icon() = pattern-kubic
Provides: pattern-order() = 9030
Provides: pattern-visible()
Requires: fcoe-utils
Requires: kernel-firmware-all
#Obsolete CaaSP Patterns
Provides: patterns-caasp-hardware
Obsoletes: patterns-caasp-hardware <= 4.0
%ifarch armv7l armv7hl
Requires: kernel-lpae
%else
Requires: kernel-default
%endif
%ifnarch s390x
Requires: irqbalance
%endif
%description hardware
Packages required to install %{prodname} on real hardware.
%package bootloader
Summary: Bootloader
Group: Metapackages
Provides: pattern() = microos-bootloader
#
Requires: grub2
Requires: (grub2-snapper-plugin if snapper)
%ifarch x86_64
# XXX: not sure this really belongs here. More like a kernel
# rather than bootloader related thing?
Requires: biosdevname
%endif
%ifnarch s390x ppc64 ppc64le
Requires: (grub2-branding-openSUSE if branding-openSUSE)
%endif
%ifarch x86_64
Requires: grub2-x86_64-efi
%endif
%ifarch aarch64
Requires: grub2-arm64-efi
%endif
%ifarch armv7l armv7hl
Requires: grub2-arm-efi
Requires: grub2-arm-uboot
%endif
%ifarch aarch64 x86_64
Requires: mokutil
Requires: shim
%endif
%description bootloader
This pattern holds files required for booting the system
%package selinux
Summary: SELinux Support
Group: Metapackages
Provides: pattern() = microos-selinux
Provides: pattern-category() = MicroOS
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9055
Provides: pattern-visible()
Requires: container-selinux
Requires: policycoreutils
Requires: selinux-policy-targeted
Requires: selinux-tools
%description selinux
This are packages which are required to enable SELinux on
%{prodname}
%package salt_minion
Summary: Salt Minion
Group: Metapackages
Provides: pattern() = microos-salt_minion
Provides: pattern-category() = MicroOS
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9901
Requires: salt-minion
%description salt_minion
Packages to manage the host using Salt or management solutions which utilize Salt, e.g. SUSE Manager
%package kvm_host
Summary: KVM Virtualization Host
Group: Metapackages
Provides: pattern() = microos-kvm_host
Provides: pattern-category() = MicroOS
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9050
Provides: pattern-visible()
Requires: guestfs-tools
Requires: python3-libvirt-python
Requires: qemu-tools
# fix issue because qemu-kvm is not present on all arch and
# we would like to deprecate it for the futur (will be only
# updated if already installed on the system)
%ifarch %ix86 x86_64
Requires: qemu-x86
%endif
%ifarch ppc ppc64 ppc64le
Requires: qemu-ppc
%endif
%ifarch s390x
Requires: qemu-s390
%endif
%ifarch %arm aarch64 armv7hl
Requires: qemu-arm
Requires: qemu-ipxe
%endif
Requires: tftp
Requires: libvirt-daemon-qemu
Recommends: tigervnc
Recommends: virt-install
Recommends: vm-install
%description kvm_host
Packages to run virtual machines using the KVM hypervisor
%package container_runtime
Summary: Container Runtime for non-clustered systems
Group: Metapackages
Provides: pattern() = microos-container_runtime
Provides: pattern-category() = Containers
Provides: pattern-icon() = pattern-kubic
Provides: pattern-order() = 9040
Provides: pattern-visible()
#Obsolete CaaSP Patterns
Provides: patterns-caasp-container-runtime
Obsoletes: patterns-caasp-container-runtime <= 4.0
Requires: podman
Requires: podman-cni-config
Requires: toolbox
Requires: pattern() = basesystem
%description container_runtime
This pattern installs the default container runtime packages for non-clustered systems.
%package cockpit
Summary: Web based remote system management
Group: Metapackages
Provides: pattern() = microos-cockpit
Provides: pattern-category() = MicroOS
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9060
Provides: pattern-visible()
Requires: cockpit-system
Requires: cockpit-ws
Requires: cockpit
Requires: cockpit-wicked
Requires: (cockpit-podman if podman)
Requires: cockpit-dashboard
%if 0%{?is_opensuse}
Requires: cockpit-branding-openSUSE-Leap-Micro
%endif
%description cockpit
Packages required to run the Cockpit system management service.
For the web service the cockpit-ws container is required.
%package sssd_ldap
Summary: LDAP client
Group: Metapackages
Provides: pattern() = microos_sssd_ldap
Provides: pattern-category() = MicroOS
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9070
Provides: pattern-visible()
Requires: sssd
Requires: sssd-ldap
%description sssd_ldap
Packages required to enable LDAP client support via sssd on
%{prodname}.
%package fips
Summary: FIPS 140-2 specific packages
Group: Metapackages
Provides: pattern() = microos-fips
Provides: pattern-category() = MicroOS
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9090
Provides: pattern-visible()
Provides: patterns-sles-fips = %{version}
Obsoletes: patterns-sles-fips < %{version}
Provides: patterns-server-enterprise-fips = %{version}
Obsoletes: patterns-server-enterprise-fips < %{version}
Provides: patterns-server-enterprise-fips-32bit = %{version}
Obsoletes: patterns-server-enterprise-fips-32bit < %{version}
Requires: (dracut-fips if dracut)
Requires: (libcryptsetup12-hmac if libcryptsetup12)
Requires: (libcryptsetup12-hmac-32bit if libcryptsetup12-32bit)
Requires: (libfreebl3-hmac if libfreebl3)
Requires: (libfreebl3-hmac-32bit if libfreebl3-32bit)
Requires: (libgcrypt20-hmac if libgcrypt20)
Requires: (libgnutls30-hmac if libgnutls30)
Requires: (libgnutls30-hmac-32bit if libgnutls30-32bit)
Requires: (libopenssl1_0_0-hmac if libopenssl1_0_0)
Requires: (libopenssl1_0_0-hmac-32bit if libopenssl1_0_0-32bit)
Requires: (libopenssl1_1-hmac if libopenssl1_1)
Requires: (libopenssl1_1-hmac-32bit if libopenssl1_1-32bit)
Requires: (libsoftokn3-hmac if libsoftokn3)
Requires: (libsoftokn3-hmac-32bit if libsoftokn3-32bit)
Requires: (openssh-fips if openssh-clients)
Requires: (openssh-fips if openssh-server)
Requires: (strongswan-hmac if strongswan)
%description fips
This pattern installs the FIPS 140-2 specific packages that complete the various
cryptographic modules in use. It is required if you want to run the
machine with "fips=1".
Please note that this pattern only enables FIPS 140-2 compliant operation, it does
not directly make the system FIPS 140-2 certified nor validated.
Please refer to SUSE official statements on the state of FIPS 140-2 certification.
%prep
# empty on purpose
%build
# empty on purpose
%install
mkdir -p %{buildroot}%{_docdir}/patterns-microos/
for i in basesystem base defaults hardware bootloader selinux salt_minion kvm_host container_runtime cockpit sssd_ldap fips; do
echo "This file marks the pattern $i to be installed." >%{buildroot}%{_docdir}/patterns-microos/$i.txt
done
%files basesystem
%dir %{_docdir}/patterns-microos
%{_docdir}/patterns-microos/basesystem.txt
%files base
%dir %{_docdir}/patterns-microos
%{_docdir}/patterns-microos/base.txt
%files defaults
%dir %{_docdir}/patterns-microos
%{_docdir}/patterns-microos/defaults.txt
%files hardware
%dir %{_docdir}/patterns-microos
%{_docdir}/patterns-microos/hardware.txt
%files bootloader
%dir %{_docdir}/patterns-microos
%{_docdir}/patterns-microos/bootloader.txt
%files selinux
%dir %{_docdir}/patterns-microos
%{_docdir}/patterns-microos/selinux.txt
%files salt_minion
%dir %{_docdir}/patterns-microos
%{_docdir}/patterns-microos/salt_minion.txt
%files kvm_host
%dir %{_docdir}/patterns-microos
%{_docdir}/patterns-microos/kvm_host.txt
%files container_runtime
%dir %{_docdir}/patterns-microos
%{_docdir}/patterns-microos/container_runtime.txt
%files cockpit
%dir %{_docdir}/patterns-microos
%{_docdir}/patterns-microos/cockpit.txt
%files sssd_ldap
%dir %{_docdir}/patterns-microos
%{_docdir}/patterns-microos/sssd_ldap.txt
%files fips
%dir %{_docdir}/patterns-microos
%{_docdir}/patterns-microos/fips.txt
%changelog