File patterns-micro.spec of Package patterns-micro

#
# spec file for package patterns-micro
#
# Copyright (c) 2023 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/
#


%bcond_with betatest

Name:           patterns-micro
Version:        6.2
Release:        0
Summary:        Patterns for SUSE Linux Micro
License:        MIT
Group:          Metapackages
URL:            http://en.opensuse.org/Patterns
Source0:        %name.rpmlintrc
ExclusiveArch:  x86_64 %arm32 aarch64 ppc64le s390x riscv64

%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 defaults
Summary:        SL Micro defaults
Group:          Metapackages
Provides:       pattern() = micro_defaults
Provides:       pattern-category() = SL-Micro
Provides:       pattern-icon() = pattern-kubic
Provides:       pattern-order() = 9020
Obsoletes:      patterns-microos-defaults
Provides:       patterns-microos-defaults
Requires:       audit
Requires:       pattern() = transactional_base
Requires:       pattern() = bootloader
Requires:       suseconnect-ng
Requires:       rollback-helper
# jsc#SMO-376 - pick the SL-Micro flavor
%if 0%{?is_leapmicro}
Requires:       (registries-conf-default if libcontainers-common)
%else
Requires:       (registries-conf-suse if libcontainers-common)
%endif
# bsc#1239053, bsc#1214886
Requires:	pam_pwquality
Requires:	systemd-coredump

%description defaults
This provides default packages for SUSE Linux Micro which can be optionally
replaced by alternatives.

%package elemental_client
Summary:        Elemental Client
Group:          Metapackages
Provides:       pattern() = micro_elemental_client
Provides:       pattern-category() = SL-Micro
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-order() = 9055
Provides:       pattern-visible()
Requires:       elemental

%description elemental_client
This are packages which are required to run Elemental Client on SL Micro

%package onlyDVD
Summary:        Packages only for the DVD of SL Micro
Group:          Metapackages
Provides:       pattern-category() = SL-Micro
Requires:       bcache-tools
Requires:       cryptsetup
Requires:       firewalld
Requires:       iscsiuio
#extra items for DVD, not every install
Requires:       ModemManager
Requires:       NetworkManager-wwan
Requires:       lvm2
Requires:       multipath-tools
Requires:       nvme-cli
Requires:       open-iscsi
%ifarch %ix86 x86_64 aarch64
Requires:       hyper-v
Requires:       open-vm-tools
%endif
Requires:       pam_pwquality
Requires:       policycoreutils-python-utils
Requires:       qemu-guest-agent
Requires:       spice-vdagent
# Removed due to the installer not based on Linuxrc
# Requires:       tftpboot-installation-openSUSE-MicroOS-%{_target_cpu}
%ifarch %ix86 x86_64
Requires:       ucode-amd
Requires:       ucode-intel
%endif
Requires:       wpa_supplicant
Requires:       man
Provides:       pattern() = micro_onlyDVD
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-order() = 9900
Requires:       pattern() = cloud
Requires:       pattern() = hardware
Requires:       pattern() = ima_evm
Requires:       pattern() = ra_agent
Requires:       pattern() = sssd_ldap

%description onlyDVD
Additional packages on a SL Micro DVD.

%package alt_onlyDVD
Summary:        Alternative Packages only for the DVD of SL Micro
Group:          Metapackages
Provides:       pattern-category() = SL-Micro
Requires:       kernel-default-base
Provides:       pattern() = micro_alt_onlyDVD
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-order() = 9901
Requires:       pattern() = cloud
Requires:       pattern() = cockpit
Requires:       pattern() = ima+evm
Requires:       pattern() = ra+verifier
Requires:       pattern() = selinux
Requires:       pattern() = salt_minion
Requires:       pattern() = sssd_ldap
Requires:       pattern() = micro_elemental_client

%description alt_onlyDVD
Alternative additional packages on a SL Micro DVD.

%package hardware
Summary:        Hardware Support
Group:          Metapackages
Provides:       pattern() = hardware
Provides:       pattern-category() = SLFO
Provides:       pattern-icon() = pattern-kubic
Provides:       pattern-order() = 9030
Provides:       pattern-visible()
Obsoletes:      patterns-microos-hardware
Obsoletes:      patterns-base-hardware
Provides:       patterns-microos-hardware
Provides:       patterns-base-hardware
Requires:       ethtool
%ifnarch s390x
Requires:       irqbalance
%endif
Requires:       fcoe-utils
Requires:       hwinfo
%ifarch %ix86 x86_64
Requires:       ucode-amd
Requires:       ucode-intel
%endif
Requires:       kernel-firmware-all
# Micro 6.2 thunderbolt enablement
# https://code.opensuse.org/leap/features/issue/242
Requires: 	bolt
Requires: 	bolt-tools
Requires: 	pciutils
Requires: 	usbutils

%description hardware
Packages required to install SUSE Linux Framework One on real hardware.

%package fips
Summary:        FIPS 140-3 Support
Group:          Metapackages
Provides:       pattern() = fips
Provides:       pattern-category() = SLFO
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-order() = 9055
Provides:       pattern-visible()
Obsoletes:      patterns-microos-fips
Provides:       patterns-microos-fips
Requires:       (dracut-fips if dracut)
Requires:       (openssh-fips if openssh-clients)
Requires:       (openssh-fips if openssh-servers)
Requires:	(strongswan-hmac if strongswan)
# needed for fips-mode-setup
# bsc#1224802
Requires:	crypto-policies
Requires:	crypto-policies-scripts
Requires:	(libopenssl-3-fips-provider if libopenssl3)
# the library hmac files are no longer seperated, but were merged
Provides:	patterns-base-fips = %{version}
Obsoletes:	patterns-base-fips

%description fips
This are packages which are required to enable FIPS 140-3 on SUSE Linux Framework One

%package salt_minion
Summary:        Salt Minion
Group:          Metapackages
Provides:       pattern() = salt_minion
Provides:       pattern-category() = SLFO
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-order() = 9901
Provides:       pattern-visible()
Obsoletes:      patterns-microos-salt_minion
Provides:       patterns-microos-salt_minion
Requires:       salt-minion
Provides:	patterns-base-salt_minion = %{version}
Obsoletes:	patterns-base-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() = kvm_host
Provides:       pattern-category() = SLFO
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-order() = 9050
Provides:       pattern-visible()
Obsoletes:      patterns-microos-kvm_host
Provides:       patterns-microos-kvm_host
Requires:       guestfs-tools
Provides:	patterns-base-kvm_host = %{version}
Obsoletes:	patterns-base-kvm_host

# 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 s390x
# TODO check below
# Requires:       qemu-s390
%endif
%ifarch %arm aarch64 armv7hl
Requires:       qemu-ipxe
%endif
# needed for usb passthrough from the host
Requires:       qemu-hw-usb-host
# the virtio gpu pci device for QEMU
Requires:       qemu-hw-display-virtio-gpu-pci
# There is some missing qemu-block compared to the libvirt driver you provide:
Requires:       qemu-block-iscsi
Requires:       qemu-block-ssh
Requires:       qemu-lang
Requires:       qemu-ksm

Requires:       netcat-openbsd
Requires:       gnutls
Requires:       libvirt-daemon-hooks
Requires:       libvirt-daemon-driver-nwfilter
Requires:       libvirt-daemon-proxy
Requires:       libvirt-nss
Requires:       virt-top
# dep of package got weakened to Recommends
Requires:	nfs-kernel-server
# avoid conflict with busybox
Requires:	lzop 
Requires:	pattern() = kvm_server
Requires:	pattern() = kvm_tools

%description kvm_host
Packages to run virtual machines using the KVM hypervisor

%package sssd-ldap
Summary:        LDAP client
Group:          Metapackages
Provides:       pattern() = sssd_ldap
Provides:       pattern-category() = SLFO
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-order() = 9070
Provides:       pattern-visible()
Obsoletes:      patterns-microos-sssd_ldap
Provides:       patterns-microos-sssd_ldap
Requires:       sssd
Requires:       sssd-ldap
Requires:       sssd-ad
Requires:       sssd-krb5
Requires:       adcli
Provides:	patterns-base-sssd-ldap = %{version}
Obsoletes:	patterns-base-sssd-ldap

%description sssd-ldap
Packages required to enable LDAP client support via sssd on SUSE Linux Framework One.

%package ima-evm
Summary:        IMA/EVM Support
Group:          Metapackages
Provides:       pattern() = ima_evm
Provides:       pattern-category() = SLFO
Provides:       pattern-icon() = pattern-basis-addon
Provides:       pattern-order() = 9080
Provides:       pattern-visible()
Requires:       attr
Requires:       dracut-ima
Requires:       ima-evm-utils
Requires:       keyutils
Provides:	patterns-base-ima-evm = %{version}
Obsoletes:	patterns-base-ima-evm

%description ima-evm
Packages required to enable IMA/EVM on SUSE Linux Framework One.

%package ra-agent
Summary:        Remote Attestation (Agent) Support
Group:          Metapackages
Provides:       pattern() = ra_agent
Provides:       pattern-category() = SLFO
Provides:       pattern-icon() = pattern-basis-addon
Provides:       pattern-order() = 9085
Provides:       pattern-visible()
%ifarch %{ix86} ia64 x86_64 %{arm} aarch64
Requires:       dmidecode
%endif
Requires:       rust-keylime
Requires:       pattern() = ima_evm
Provides:	patterns-base-ra-agent = %{version}
Obsoletes:	patterns-base-ra-agent

%description ra-agent
Packages required to enable remote attestation via the Rust Keylime
agent on SUSE Linux Framework One.

%package ra-verifier
Summary:        Remote Attestation (Verifier) Support
Group:          Metapackages
Provides:       pattern() = ra_verifier
Provides:       pattern-category() = SLFO
Provides:       pattern-icon() = pattern-basis-addon
Provides:       pattern-order() = 9086
Provides:       pattern-visible()
Requires:       keylime-firewalld
Requires:       keylime-registrar
Requires:       keylime-tenant
Requires:       keylime-verifier
Provides:	patterns-base-ra-verifier = %{version}
Obsoletes:	patterns-base-ra-verifier

%description ra-verifier
Packages required to enable remote attestation via Keylime verifier on
SUSE Linux Framework One.

%package cloud
Summary:        Support for Cloud
Group:          Metapackages
Provides:       pattern() = cloud
Provides:       pattern-category() = SLFO
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-order() = 9090
Provides:       pattern-visible()
Requires:       cloud-init
Requires:       cloud-init-config-suse
Provides:	patterns-base-cloud = %{version}
Obsoletes:	patterns-base-cloud


%description cloud
Packages required to enable SUSE Linux Framework One in the Cloud.

%prep
# empty on purpose

%build
# empty on purpose

%install
mkdir -p %{buildroot}%{_docdir}/patterns-micro/
PATTERNS='
    defaults elemental_client
    onlyDVD alt_onlyDVD hardware kvm_host
    sssd_ldap ima_evm ra_agent ra_verifier fips salt_minion cloud
'
for i in $PATTERNS; do
    echo "This file marks the pattern $i to be installed." \
        > %{buildroot}%{_docdir}/patterns-micro/${i}.txt
done

%files defaults
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/defaults.txt

%files elemental_client
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/elemental_client.txt

%files onlyDVD
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/onlyDVD.txt

%files alt_onlyDVD
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/alt_onlyDVD.txt

%files hardware
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/hardware.txt

%files kvm_host
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/kvm_host.txt

%files sssd-ldap
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/sssd_ldap.txt

%files ima-evm
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/ima_evm.txt

%files ra-agent
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/ra_agent.txt

%files ra-verifier
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/ra_verifier.txt

%files fips
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/fips.txt

%files salt_minion
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/salt_minion.txt

%files cloud
%dir %{_docdir}/patterns-micro
%{_docdir}/patterns-micro/cloud.txt

%changelog
openSUSE Build Service is sponsored by