File patterns-uyuni.spec of Package patterns-uyuni

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


%global debug_package %{nil}

Name:           patterns-uyuni
Version:        2024.08
Release:        0
Summary:        Patterns for Uyuni
License:        GPL-2.0-or-later
Group:          Metapackages
URL:            https://github.com/uyuni-project/uyuni
Source0:        %name-rpmlintrc
# Macros are not part of package-translations for SLE15
%if 0%{?suse_version} > 1320
BuildRequires:  patterns-rpm-macros
%else
BuildRequires:  package-translations
%endif
BuildRequires:  perl(URI::Escape)

%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.

# Macros are provided patterns-rpm-macros for SLE15
%if 0%{?suse_version} <= 1320
%{expand:%(perl /usr/share/package-translations/create_macros)}
%endif

## START patterns-uyuni_server
%package -n patterns-uyuni_server
%pattern_primaryfunctions
%{!?java_version: %global java_version 11}
Summary:        Uyuni Server
Group:          Metapackages
Provides:       pattern() = uyuni_server
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-order() = 3010
Provides:       pattern-visible()

Requires:       python3-ws4py
Requires:       salt-api
Requires:       salt-master

Requires:       cobbler = 3.3.3

Requires:       Uyuni-Server-release
Requires:       java-%{java_version}-openjdk
%if 0%{?suse_version}
# Actual version set by prjconf, default is 14
%{!?postgresql_version_min: %global postgresql_version_min 14}
%{!?postgresql_version_max: %global postgresql_version_max 15}
Requires:       postgresql-contrib-implementation >= %{postgresql_version_min}
Requires:       postgresql-server-implementation >= %{postgresql_version_min}
Conflicts:      postgresql-contrib-implementation > %{postgresql_version_max}
Conflicts:      postgresql-server-implementation > %{postgresql_version_max}
%else
Requires:       postgresql-contrib >= 12
Requires:       postgresql-server >= 12
%endif
Requires:       release-notes-uyuni
Requires:       smdba
Requires:       spacewalk-base-minimal
Requires:       spacewalk-postgresql
Requires:       spacewalk-reports
Requires:       spacewalk-utils
Requires:       supportutils-plugin-susemanager
Requires:       susemanager
Requires:       susemanager-tools
Requires:       uyuni-docs_en
Requires:       uyuni-docs_en-pdf
%ifarch %ix86 x86_64
Requires:       syslinux
%else
Requires:       syslinux-x86_64
%endif
Requires:       cpu-mitigations-formula
Requires:       liberate-formula
Requires:       openvpn-formula
Recommends:     grafana-formula
Recommends:     locale-formula
Recommends:     prometheus-exporters-formula
Recommends:     prometheus-formula
Recommends:     prometheus-jmx_exporter-tomcat
Recommends:     registry-formula
Recommends:     spacecmd
Recommends:     susemanager-tftpsync

# Server: Retail packages
Recommends:     bind-formula
Recommends:     dhcpd-formula
Recommends:     tftpd-formula
Recommends:     virtualization-formulas
Recommends:     vsftpd-formula
# end of Server Retail packages

# Server: Monitoring
Recommends:     golang-github-QubitProducts-exporter_exporter
Recommends:     golang-github-lusitaniae-apache_exporter
Recommends:     golang-github-prometheus-node_exporter
Recommends:     prometheus-jmx_exporter
Recommends:     prometheus-postgres_exporter
# End of Server Monitoring

%description -n patterns-uyuni_server
Uyuni Server packages.

%files -n patterns-uyuni_server
%defattr(-,root,root)
%dir %{_docdir}/patterns-uyuni-server
%{_docdir}/patterns-uyuni-server/uyuni_server.txt

## END patterns-uyuni_server
#####################################################################

## START patterns-uyuni_retail
%package -n patterns-uyuni_retail
%pattern_primaryfunctions
Summary:        Uyuni for Retail
Group:          Metapackages
Provides:       pattern() = uyuni_retail
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-order() = 3011
Provides:       pattern-visible()

Requires:       bind-formula
Requires:       branch-network-formula
Requires:       dhcpd-formula
Requires:       image-sync-formula
Requires:       pxe-formula
Requires:       saltboot-formula
Requires:       tftpd-formula
Requires:       vsftpd-formula
Recommends:     virtualization-host-formula
Requires:       python3-susemanager-retail
Requires:       susemanager-retail-tools

%description -n patterns-uyuni_retail
Uyuni for Retail packages.

%files -n patterns-uyuni_retail
%defattr(-,root,root)
%dir %{_docdir}/patterns-uyuni-retail
%{_docdir}/patterns-uyuni-retail/uyuni_retail.txt

## END patterns-uyuni_retail
#####################################################################

## START patterns-uyuni_proxy
%package -n patterns-uyuni_proxy
%pattern_primaryfunctions
Summary:        Uyuni Proxy
Group:          Metapackages
Provides:       pattern() = uyuni_proxy
Provides:       pattern-icon() = pattern-generic
Provides:       pattern-order() = 3010
Provides:       pattern-visible()

Requires:       Uyuni-Proxy-release
Requires:       release-notes-uyuni-proxy
Requires:       spacewalk-proxy-broker
Requires:       spacewalk-proxy-common
Requires:       spacewalk-proxy-installer
Requires:       spacewalk-proxy-management
Requires:       spacewalk-proxy-package-manager
Requires:       spacewalk-proxy-redirect
Requires:       spacewalk-ssl-cert-check
Requires:       supportutils-plugin-susemanager-client
Requires:       supportutils-plugin-susemanager-proxy

Requires:       python3-rhnlib

Recommends:     spacewalk-proxy-docs
Recommends:     susemanager-tftpsync-recv

# Monitoring
Recommends:     golang-github-boynux-squid_exporter
Recommends:     golang-github-QubitProducts-exporter_exporter
Recommends:     golang-github-lusitaniae-apache_exporter
Recommends:     golang-github-prometheus-node_exporter
Recommends:     prometheus-blackbox_exporter
# End of Monitoring

%description -n patterns-uyuni_proxy
Uyuni Proxy packages.

%files -n patterns-uyuni_proxy
%defattr(-,root,root)
%dir %{_docdir}/patterns-uyuni-proxy
%{_docdir}/patterns-uyuni-proxy/uyuni_proxy.txt

## END patterns-uyuni_proxy
#####################################################################

%prep
# empty on purpose

%build
# empty on purpose

%install

mkdir -p %{buildroot}%{_docdir}/patterns-uyuni-server/
echo 'This file marks the pattern uyuni_server to be installed.' > %{buildroot}%{_docdir}/patterns-uyuni-server/uyuni_server.txt

mkdir -p %{buildroot}%{_docdir}/patterns-uyuni-retail/
echo 'This file marks the pattern uyuni_retail to be installed.' > %{buildroot}%{_docdir}/patterns-uyuni-retail/uyuni_retail.txt

mkdir -p %{buildroot}%{_docdir}/patterns-uyuni-proxy/
echo 'This file marks the pattern uyuni_proxy to be installed.' > %{buildroot}%{_docdir}/patterns-uyuni-proxy/uyuni_proxy.txt

%changelog
openSUSE Build Service is sponsored by