patterns-alp/patterns-alp.spec

713 lines
21 KiB
RPMSpec

#
# spec file for package patterns-alp
#
# 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-alp
Version: 6.0
Release: 0
Summary: Patterns for SUSE ALP
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 base
Summary: SUSE ALP
Group: Metapackages
Provides: pattern() = alp_base
Provides: pattern-category() = ALP
Provides: pattern-icon() = pattern-kubic
Provides: pattern-order() = 9010
Provides: pattern-visible()
Obsoletes: patterns-microos-basesystem
Obsoletes: patterns-microos-base
Requires: pattern() = bootloader
# FIXME add if needed Requires: pattern() = minimal_base
%if %{with betatest}
# need to require it as recommends are off
Requires: pattern() = update_test
%endif
### openSUSE base system
Requires: /usr/bin/hostname
Requires: aaa_base
Requires: bash
Requires: btrfsprogs
Requires: ca-certificates
Requires: ca-certificates-mozilla
Requires: coreutils
Requires: coreutils-systemd
Requires: glibc
# FIXME re-add
# Requires: (grub2-branding-openSUSE if grub2)
### Packages formerly provided by bootloader
Requires: (grub2-snapper-plugin if grub2)
###
Suggests: busybox-hostname
Requires: NetworkManager
Requires: NetworkManager-wifi
Requires: iproute2
Requires: lastlog2
Requires: libnss_usrfiles2
Requires: suse-build-key
Requires: pam
Requires: pam-config
Requires: procps
Requires: rebootmgr
Requires: rpm
Requires: shadow
Requires: systemd
Requires: util-linux
Requires: user(nobody)
Requires: group(nobody)
Requires: system-group-hardware
Requires: group(wheel)
Requires: group(kvm)
####
Requires: btrfsmaintenance
Requires: busybox
Requires: chrony
# curl indirectly needed by ignition via dracut's url-lib
Requires: curl
# probably needed for fsck.fat on efi partitions
Requires: /usr/bin/gzip
## FIXME find better way to address generic control file
Requires: distribution-release
Requires: dosfstools
Requires: glibc-locale-base
Suggests: busybox-gzip
Requires: iputils
Requires: issue-generator
Requires: (health-checker if grub2)
Requires: (health-checker-plugins-MicroOS if health-checker)
Requires: kbd
Requires: kdump
Requires: less
Requires: microos-tools
Requires: openssh
Requires: parted
Requires: snapper
Requires: udev
Requires: vim-small
Requires: wtmpdb
# people are addicted to sudo
Requires: sudo
# report from tr-up, jsc#PED-6989
# does not exist, FIXMERequires: systemd-email
Requires: systemd-presets-branding-ALP
Requires: terminfo-base
Requires: timezone
Conflicts: gettext-runtime-mini
Conflicts: krb5-mini
Requires: yast2-logs
Requires: (toolbox if transactional-update)
Requires: pam_pwquality
Requires: supportutils
Requires: which
Requires: xfsprogs
# jsc#SMO-79
Requires: tpm2.0-tools
Requires: tpm2.0-abrmd
Requires: tpm2-0-tss
Requires: tpm2-tss-engine
# jsc#SMO-50
%ifarch x86_64 aarch64
Requires: libmbim
Requires: libmbim-glib4
Requires: libqmi-tools
Requires: libqmi-glib5
%endif
# jsc#CSD-121
Requires: udica
# jsc#SMO-120
Requires: pam_u2f
%ifarch s390x
Requires: libica
Requires: openCryptoki
Requires: openssl-ibmca
%endif
# bsc#1217991
Requires: crypto-policies-scripts
%description base
This is the SUSE ALP runtime system. It contains only a minimal multiuser
booting system.
%package base-transactional
Summary: SUSE ALP using Zypper for transactional systems
Group: Metapackages
Provides: pattern() = alp_base_transactional
Provides: pattern-category() = ALP
Provides: pattern-icon() = pattern-kubic
Provides: pattern-order() = 9011
Provides: pattern-visible()
Requires: transactional-update
Requires: transactional-update-zypp-config
Requires: pattern() = alp_base
# zypper ps is useless in transactional mode. It also checks for
# /run/reboot-needed though which is created by transactional-update
Requires: zypper-needs-restarting
# jsc#PED-6478 (2 packages)
Requires: mailx
Requires: systemd-status-mail
Requires: systemd-presets-branding-ALP-transactional
%description base-transactional
This is the SUSE ALP runtime system using the Zypper package manager
and the transactional update tooling
It contains only a minimal multiuser booting system.
%package base-traditional
Summary: SUSE ALP using Zypper
Group: Metapackages
Provides: pattern() = alp_base_traditional
Provides: pattern-category() = ALP
Provides: pattern-icon() = pattern-kubic
Provides: pattern-order() = 9011
Provides: pattern-visible()
Requires: zypper
Requires: pattern() = alp_base
# zypper ps is useless in transactional mode. It also checks for
# /run/reboot-needed though which is created by transactional-update
Requires: zypper-needs-restarting
%description base-traditional
This is the SUSE ALP runtime system using the Zypper package manager.
It contains only a minimal multiuser booting system.
%package defaults
Summary: SUSE ALP defaults
Group: Metapackages
Provides: pattern() = alp_defaults
Provides: pattern-category() = ALP
Provides: pattern-icon() = pattern-kubic
Provides: pattern-order() = 9020
Obsoletes: patterns-microos-defaults
Requires: audit
Requires: systemd-coredump
Requires: pattern() = alp_base
Requires: suseconnect-ng
Requires: rollback-helper
%description defaults
This provides default packages for SUSE ALP which can be optionally
replaced by alternatives.
%package hardware
Summary: Hardware Support
Group: Metapackages
Provides: pattern() = alp_hardware
Provides: pattern-category() = ALP
Provides: pattern-icon() = pattern-kubic
Provides: pattern-order() = 9030
Provides: pattern-visible()
Obsoletes: patterns-microos-hardware
Requires: ethtool
%ifnarch s390x
Requires: irqbalance
%endif
%ifarch %ix86 x86_64
Requires: ucode-amd
Requires: ucode-intel
%endif
Requires: fcoe-utils
Requires: hwinfo
Requires: kernel-firmware-all
%description hardware
Packages required to install SUSE ALP on real hardware.
%package selinux
Summary: SELinux Support
Group: Metapackages
Provides: pattern() = alp_selinux
Provides: pattern-category() = ALP
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9055
Provides: pattern-visible()
Obsoletes: patterns-microos-selinux
Requires: container-selinux
Requires: policycoreutils
Requires: selinux-policy-targeted
Requires: selinux-tools
%description selinux
This are packages which are required to enable SELinux on SUSE ALP
%package elemental_client
Summary: Elemental Client
Group: Metapackages
Provides: pattern() = alp_elemental_client
Provides: pattern-category() = ALP
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 SUSE ALP
%package fips
Summary: FIPS 140-3 Support
Group: Metapackages
Provides: pattern() = fips
Provides: pattern-category() = ALP
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9055
Provides: pattern-visible()
Obsoletes: 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
Requires: (crypto-policies-scripts if crypto-policies)
Requires: (libopenssl-3-fips-provider if libopenssl-3)
# the library hmac files are no longer seperated, but were merged
%description fips
This are packages which are required to enable FIPS 140-3 on SUSE ALP
%package salt_minion
Summary: Salt Minion
Group: Metapackages
Provides: pattern() = alp_salt_minion
Provides: pattern-category() = MicroOS
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9901
Provides: pattern-visible()
Obsoletes: patterns-microos-salt_minion
Requires: salt-minion
%description salt_minion
Packages to manage the host using Salt or management solutions which utilize Salt, e.g. SUSE Manager
%package cockpit
Summary: Web based remote system managemet
Group: Metapackages
Provides: pattern() = alp_cockpit
Provides: pattern-category() = ALP
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9060
Provides: pattern-visible()
Obsoletes: patterns-microos-cockpit
Requires: cockpit
Requires: cockpit-system
Requires: cockpit-ws
Requires: (cockpit-podman if podman)
Requires: (cockpit-machines if libvirt-daemon-qemu)
Requires: cockpit-networkmanager
Requires: (cockpit-tukit if transactional-update)
Requires: cockpit-storaged
Requires: libudisks2-0_btrfs
Requires: libudisks2-0_lvm2
Requires: cockpit-selinux
# If PackageKit pattern is installed, pull in Cockpit's PackageKit module
Requires: (cockpit-packagekit if patterns-alp-base-packagekit)
%description cockpit
Packages required to run the Cockpit system management service.
For the web service the cockpit-ws container is required.
%package kvm_host
Summary: KVM Virtualization Host
Group: Metapackages
Provides: pattern() = alp_kvm_host
Provides: pattern-category() = ALP
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9050
Provides: pattern-visible()
Obsoletes: patterns-microos-kvm_host
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
# 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-rbd
Requires: qemu-block-ssh
Requires: qemu-lang
%ifarch %ix86 x86_64 s390x
Requires: qemu-kvm
%endif
Requires: qemu-ksm
Requires: tftp
Requires: libvirt-daemon-qemu
Recommends: tigervnc
Recommends: virt-install
Requires: netcat-openbsd
Requires: gnutls
Requires: libvirt-client
Requires: libvirt-daemon-config-network
Requires: libvirt-daemon-hooks
Requires: libvirt-nss
Requires: virt-top
# avoid conflict with busybox
Requires: lzop
# You don't have any option for Audio, but this is not mandatory:
#Requires: qemu-audio-pipewire
#Requires: qemu-audio-pa
#Requires: qemu-audio-dbus
#Requires: qemu-audio-alsa
%description kvm_host
Packages to run virtual machines using the KVM hypervisor
%package sssd-ldap
Summary: LDAP client
Group: Metapackages
Provides: pattern() = alp_sssd_ldap
Provides: pattern-category() = ALP
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9070
Provides: pattern-visible()
Obsoletes: patterns-microos-sssd_ldap
Requires: sssd
Requires: sssd-ldap
Requires: sssd-ad
Requires: sssd-krb5
Requires: adcli
%description sssd-ldap
Packages required to enable LDAP client support via sssd on SUSE ALP.
%package ima-evm
Summary: IMA/EVM Support
Group: Metapackages
Provides: pattern() = alp_ima_evm
Provides: pattern-category() = ALP
Provides: pattern-icon() = pattern-basis-addon
Provides: pattern-order() = 9080
Provides: pattern-visible()
Requires: attr
Requires: dracut-ima
Requires: ima-evm-utils
Requires: keyutils
%description ima-evm
Packages required to enable IMA/EVM on SUSE ALP.
%package ra-agent
Summary: Remote Attestation (Agent) Support
Group: Metapackages
Provides: pattern() = alp_ra_agent
Provides: pattern-category() = ALP
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() = alp_ima_evm
%description ra-agent
Packages required to enable remote attestation via the Rust Keylime
agent on SUSE ALP.
%package ra-verifier
Summary: Remote Attestation (Verifier) Support
Group: Metapackages
Provides: pattern() = alp_ra_verifier
Provides: pattern-category() = ALP
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
%description ra-verifier
Packages required to enable remote attestation via Keylime verifier on
SUSE ALP.
%package cloud
Summary: Support for Cloud
Group: Metapackages
Provides: pattern() = alp_cloud
Provides: pattern-category() = ALP
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9090
Provides: pattern-visible()
Requires: cloud-init
Requires: cloud-init-config-ALP
%description cloud
Packages required to enable SUSE ALP in the Cloud.
%package onlyDVD
Summary: Packages only for the DVD of SUSE ALP
Group: Metapackages
Provides: pattern-category() = ALP
Requires: apparmor-utils
Requires: bcache-tools
Requires: crda
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() = alp_onlyDVD
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9900
Requires: pattern() = alp_cloud
Requires: pattern() = alp_hardware
Requires: pattern() = alp_ima_evm
Requires: pattern() = alp_ra_agent
Requires: pattern() = alp_sssd_ldap
%description onlyDVD
Additional packages on a SUSE ALP DVD.
%package alt_onlyDVD
Summary: Alternative Packages only for the DVD of SUSE ALP
Group: Metapackages
Provides: pattern-category() = ALP
Requires: kernel-default-base
Provides: pattern() = alp_alt_onlyDVD
Provides: pattern-icon() = pattern-generic
Provides: pattern-order() = 9901
Requires: pattern() = alp_cloud
Requires: pattern() = alp_cockpit
Requires: pattern() = alp_ima+evm
Requires: pattern() = alp_ra+verifier
Requires: pattern() = alp_selinux
Requires: pattern() = alp_salt_minion
Requires: pattern() = alp_sssd_ldap
Requires: pattern() = alp_elemental_client
%description alt_onlyDVD
Alternative additional packages on a SUSE ALP DVD.
%package bootloader
#%pattern_basetechnologies
Summary: Bootloader
Group: Metapackages
Provides: pattern() = bootloader
Obsoletes: patterns-microos-bootloader
Requires: (grub2-snapper-plugin if snapper)
#
Requires: grub2
%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
%if 0%{?is_opensuse}
Requires: (grub2-branding-openSUSE if branding-openSUSE)
%else
%if 0%{?sle_version}
Requires: (grub2-branding-SLE if branding-SLE)
%endif
%endif
%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 minimal_base
#%pattern_basetechnologies
Summary: Minimal Appliance Base
Group: Metapackages
Provides: pattern() = minimal_base
Provides: pattern-icon() = pattern-basis
Provides: pattern-order() = 5190
Provides: pattern-visible()
Requires: branding
# those packages are actually useless as they don't use
# %_keyringpath but we need them eg for kiwi
Requires: build-key
Requires: distribution-release
Requires: filesystem
%description minimal_base
This is the minimal runtime system. It is really a minimal system. It is intended as base for Appliances.
%prep
# empty on purpose
%build
# empty on purpose
%install
mkdir -p %{buildroot}%{_docdir}/patterns-alp/
PATTERNS='
base base_transactional base_traditional defaults hardware kvm_host
sssd_ldap ima_evm ra_agent ra_verifier selinux elemental_client fips salt_minion cockpit cloud
onlyDVD alt_onlyDVD
bootloader minimal_base
'
for i in $PATTERNS; do
echo "This file marks the pattern $i to be installed." \
> %{buildroot}%{_docdir}/patterns-alp/${i}.txt
done
%files base
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/base.txt
%files base-transactional
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/base_transactional.txt
%files base-traditional
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/base_traditional.txt
%files defaults
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/defaults.txt
%files hardware
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/hardware.txt
%files kvm_host
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/kvm_host.txt
%files sssd-ldap
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/sssd_ldap.txt
%files ima-evm
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/ima_evm.txt
%files ra-agent
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/ra_agent.txt
%files ra-verifier
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/ra_verifier.txt
%files selinux
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/selinux.txt
%files elemental_client
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/elemental_client.txt
%files fips
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/fips.txt
%files salt_minion
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/salt_minion.txt
%files cockpit
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/cockpit.txt
%files cloud
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/cloud.txt
%files onlyDVD
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/onlyDVD.txt
%files alt_onlyDVD
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/alt_onlyDVD.txt
%files bootloader
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/bootloader.txt
%files minimal_base
%dir %{_docdir}/patterns-alp
%{_docdir}/patterns-alp/minimal_base.txt
%changelog