1
0
forked from cockpit/cockpit
Adam Majer 2023-09-08 12:52:24 +00:00 committed by Git OBS Bridge
parent c9500eee8c
commit 10376074a4

View File

@ -1,22 +1,32 @@
# #
# spec file for package cockpit
#
# Copyright (c) 2023 SUSE LLC
# Copyright (C) 2014-2020 Red Hat, Inc. # Copyright (C) 2014-2020 Red Hat, Inc.
# #
# All modifications and additions to the file contributed by third parties # Cockpit is free software; you can redistribute it and/or modify it
# remain the property of their copyright owners, unless otherwise agreed # under the terms of the GNU Lesser General Public License as published by
# upon. The license for this file, and modifications and additions to the # the Free Software Foundation; either version 2.1 of the License, or
# file, is the same license as for the pristine package itself (unless the # (at your option) any later version.
# 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 # Cockpit is distributed in the hope that it will be useful, but
# license that conforms to the Open Source Definition (Version 1.9) # WITHOUT ANY WARRANTY; without even the implied warranty of
# published by the Open Source Initiative. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# Please submit bugfixes or comments via https://bugs.opensuse.org/ #
# You should have received a copy of the GNU Lesser General Public License
# along with Cockpit; If not, see <http://www.gnu.org/licenses/>.
# #
#
# This file is maintained at the following location:
# https://github.com/cockpit-project/cockpit/blob/main/tools/cockpit.spec
#
# If you are editing this file in another location, changes will likely
# be clobbered the next time an automated release is done.
#
# Check first cockpit-devel@lists.fedorahosted.org
#
# earliest base that the subpackages work on; this is still required as long as
# we maintain the basic/optional split, then it can be replaced with just %{version}.
%define required_base 266 %define required_base 266
# we generally want CentOS packages to be like RHEL; special cases need to check %{centos} explicitly # we generally want CentOS packages to be like RHEL; special cases need to check %{centos} explicitly
@ -111,63 +121,62 @@ Patch103: 0004-leap-gnu18-removal.patch
%endif %endif
%endif %endif
BuildRequires: gcc BuildRequires: gcc
BuildRequires: pam-devel BuildRequires: pkgconfig(gio-unix-2.0)
BuildRequires: pkgconfig(gio-unix-2.0) BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(polkit-agent-1) >= 0.105
BuildRequires: pkgconfig(polkit-agent-1) >= 0.105 BuildRequires: pam-devel
BuildRequires: /usr/bin/python3 BuildRequires: autoconf automake
BuildRequires: autoconf BuildRequires: make
BuildRequires: automake BuildRequires: /usr/bin/python3
BuildRequires: make
%if ( 0%{?rhel} && 0%{?rhel} <= 8 ) || 0%{?suse_version} <= 1500 %if ( 0%{?rhel} && 0%{?rhel} <= 8 ) || 0%{?suse_version} <= 1500
# RHEL 8's gettext does not yet have metainfo.its # RHEL 8's gettext does not yet have metainfo.its
BuildRequires: gettext >= 0.19.7 BuildRequires: gettext >= 0.19.7
%if 0%{?rhel} %if 0%{?rhel}
BuildRequires: libappstream-glib-devel BuildRequires: libappstream-glib-devel
%else %else
# Suse's package has a different name # Suse's package has a different name
BuildRequires: appstream-glib-devel BuildRequires: appstream-glib-devel
%endif %endif
%else %else
BuildRequires: gettext >= 0.21 BuildRequires: gettext >= 0.21
%endif %endif
%if 0%{?build_basic} %if 0%{?build_basic}
BuildRequires: libssh-devel >= 0.8.5 BuildRequires: libssh-devel >= 0.8.5
%endif %endif
BuildRequires: glib-networking BuildRequires: openssl-devel
BuildRequires: gnutls-devel >= 3.4.3 BuildRequires: gnutls-devel >= 3.4.3
BuildRequires: libxslt-devel BuildRequires: zlib-devel
BuildRequires: openssl-devel BuildRequires: pkgconfig(krb5) >= 1.11
BuildRequires: sed BuildRequires: libxslt-devel
BuildRequires: zlib-devel BuildRequires: glib-networking
BuildRequires: pkgconfig(krb5) >= 1.11 BuildRequires: sed
BuildRequires: glib2-devel >= 2.50.0 BuildRequires: glib2-devel >= 2.50.0
# this is for runtimedir in the tls proxy ace21c8879 # this is for runtimedir in the tls proxy ace21c8879
BuildRequires: pkgconfig(libsystemd) >= 235 BuildRequires: pkgconfig(libsystemd) >= 235
%if 0%{?suse_version} %if 0%{?suse_version}
BuildRequires: distribution-logos BuildRequires: distribution-release
BuildRequires: distribution-release BuildRequires: libpcp-devel
BuildRequires: libpcp-devel BuildRequires: pcp-devel
BuildRequires: libpcp3 BuildRequires: libpcp3
BuildRequires: libpcp_import1 BuildRequires: libpcp_import1
BuildRequires: openssh BuildRequires: openssh
BuildRequires: pcp-devel BuildRequires: distribution-logos
BuildRequires: wallpaper-branding BuildRequires: wallpaper-branding
# needed for /var/lib/pcp directory ownership # needed for /var/lib/pcp directory ownership
BuildRequires: pcp BuildRequires: pcp
%else %else
BuildRequires: docbook-style-xsl BuildRequires: pcp-libs-devel
BuildRequires: openssh-clients BuildRequires: openssh-clients
BuildRequires: pcp-libs-devel BuildRequires: docbook-style-xsl
%endif %endif
BuildRequires: gdb BuildRequires: krb5-server
BuildRequires: krb5-server BuildRequires: gdb
# For documentation # For documentation
BuildRequires: xmlto BuildRequires: xmlto
%if 0%{?with_selinux} %if 0%{?with_selinux}
BuildRequires: selinux-policy BuildRequires: selinux-policy
@ -176,30 +185,30 @@ BuildRequires: selinux-policy-devel
%endif %endif
# for rebuilding nodejs bits # for rebuilding nodejs bits
BuildRequires: npm BuildRequires: npm
BuildRequires: local-npm-registry BuildRequires: sassc
BuildRequires: sassc BuildRequires: local-npm-registry
# This is the "cockpit" metapackage. It should only # This is the "cockpit" metapackage. It should only
# Require, Suggest or Recommend other cockpit-xxx subpackages # Require, Suggest or Recommend other cockpit-xxx subpackages
Requires: cockpit-bridge Requires: cockpit-bridge
Requires: cockpit-system Requires: cockpit-ws
Requires: cockpit-ws Requires: cockpit-system
# Optional components # Optional components
Recommends: (cockpit-storaged if udisks2) Recommends: (cockpit-storaged if udisks2)
Recommends: (cockpit-packagekit if dnf) Recommends: (cockpit-packagekit if dnf)
Suggests: cockpit-pcp Suggests: cockpit-pcp
%if 0%{?rhel} == 0 %if 0%{?rhel} == 0
Recommends: (cockpit-networkmanager if NetworkManager) Recommends: (cockpit-networkmanager if NetworkManager)
# c-ostree is not in RHEL 8/9 # c-ostree is not in RHEL 8/9
Recommends: (cockpit-ostree if rpm-ostree) Recommends: (cockpit-ostree if rpm-ostree)
Suggests: cockpit-selinux Suggests: cockpit-selinux
%endif %endif
%if 0%{?rhel} && 0%{?centos} == 0 %if 0%{?rhel} && 0%{?centos} == 0
Requires: subscription-manager-cockpit Requires: subscription-manager-cockpit
%endif %endif
%if %{cockpit_enable_python} %if %{cockpit_enable_python}
@ -468,17 +477,18 @@ troubleshooting, interactive command-line sessions, and more.
%{_datadir}/pixmaps/cockpit.png %{_datadir}/pixmaps/cockpit.png
%doc %{_mandir}/man1/cockpit.1.gz %doc %{_mandir}/man1/cockpit.1.gz
%package bridge %package bridge
Summary: Cockpit bridge server-side component Summary: Cockpit bridge server-side component
Requires: glib-networking Requires: glib-networking
Provides: cockpit-ssh = %{version}-%{release} Provides: cockpit-ssh = %{version}-%{release}
# 233 dropped jquery.js, pages started to bundle it (commit 049e8b8dce) # 233 dropped jquery.js, pages started to bundle it (commit 049e8b8dce)
Conflicts: cockpit-dashboard < 233 Conflicts: cockpit-dashboard < 233
Conflicts: cockpit-docker < 233 Conflicts: cockpit-networkmanager < 233
Conflicts: cockpit-networkmanager < 233 Conflicts: cockpit-storaged < 233
Conflicts: cockpit-storaged < 233 Conflicts: cockpit-system < 233
Conflicts: cockpit-system < 233 Conflicts: cockpit-tests < 233
Conflicts: cockpit-tests < 233 Conflicts: cockpit-docker < 233
%description bridge %description bridge
The Cockpit bridge component installed server side and runs commands on the The Cockpit bridge component installed server side and runs commands on the
@ -493,8 +503,8 @@ system on behalf of the web based user interface.
%endif %endif
%package doc %package doc
Summary: Cockpit deployment and developer guide Summary: Cockpit deployment and developer guide
BuildArch: noarch BuildArch: noarch
%description doc %description doc
The Cockpit Deployment and Developer Guide shows sysadmins how to The Cockpit Deployment and Developer Guide shows sysadmins how to
@ -508,35 +518,35 @@ embed or extend Cockpit.
%{_docdir}/cockpit %{_docdir}/cockpit
%package system %package system
Summary: Cockpit admin interface package for configuring and troubleshooting a system Summary: Cockpit admin interface package for configuring and troubleshooting a system
BuildArch: noarch BuildArch: noarch
Requires: cockpit-bridge >= %{version}-%{release} Requires: cockpit-bridge >= %{version}-%{release}
%if !0%{?suse_version} %if !0%{?suse_version}
Requires: shadow-utils Requires: shadow-utils
%endif %endif
Requires: /usr/bin/date Requires: grep
Requires: /usr/bin/pwscore Requires: /usr/bin/pwscore
Requires: grep Requires: /usr/bin/date
Provides: cockpit-shell = %{version}-%{release} Provides: cockpit-shell = %{version}-%{release}
Provides: cockpit-systemd = %{version}-%{release} Provides: cockpit-systemd = %{version}-%{release}
Provides: cockpit-tuned = %{version}-%{release} Provides: cockpit-tuned = %{version}-%{release}
Provides: cockpit-users = %{version}-%{release} Provides: cockpit-users = %{version}-%{release}
Obsoletes: cockpit-dashboard < %{version}-%{release} Obsoletes: cockpit-dashboard < %{version}-%{release}
%if 0%{?rhel} %if 0%{?rhel}
Requires: NetworkManager >= 1.6 Requires: NetworkManager >= 1.6
Requires: kexec-tools Requires: kexec-tools
Requires: sos Requires: sos
Requires: sudo Requires: sudo
Recommends: PackageKit Recommends: PackageKit
Recommends: setroubleshoot-server >= 3.3.3 Recommends: setroubleshoot-server >= 3.3.3
Suggests: NetworkManager-team Suggests: NetworkManager-team
Provides: cockpit-kdump = %{version}-%{release} Provides: cockpit-kdump = %{version}-%{release}
Provides: cockpit-networkmanager = %{version}-%{release} Provides: cockpit-networkmanager = %{version}-%{release}
Provides: cockpit-selinux = %{version}-%{release} Provides: cockpit-selinux = %{version}-%{release}
Provides: cockpit-sosreport = %{version}-%{release} Provides: cockpit-sosreport = %{version}-%{release}
%endif %endif
%if 0%{?fedora} %if 0%{?fedora}
Recommends: (reportd if abrt) Recommends: (reportd if abrt)
%endif %endif
#NPM_PROVIDES #NPM_PROVIDES
@ -548,25 +558,25 @@ This package contains the Cockpit shell and system configuration interfaces.
%dir %{_datadir}/cockpit/shell/images %dir %{_datadir}/cockpit/shell/images
%package ws %package ws
Summary: Cockpit Web Service Summary: Cockpit Web Service
Requires: glib-networking Requires: glib-networking
Requires: glib2 >= 2.50.0 Requires: openssl
Requires: openssl Requires: glib2 >= 2.50.0
%if 0%{?with_selinux} %if 0%{?with_selinux}
Requires: (selinux-policy >= %{_selinux_policy_version} if selinux-policy-%{selinuxtype}) Requires: (selinux-policy >= %{_selinux_policy_version} if selinux-policy-%{selinuxtype})
Requires(post): (policycoreutils if selinux-policy-%{selinuxtype}) Requires(post): (policycoreutils if selinux-policy-%{selinuxtype})
%endif %endif
Conflicts: firewalld < 0.6.0-1 Conflicts: firewalld < 0.6.0-1
Recommends: sscg >= 2.3 Recommends: sscg >= 2.3
Recommends: system-logos Recommends: system-logos
Suggests: sssd-dbus Suggests: sssd-dbus
%if 0%{?suse_version} %if 0%{?suse_version}
Requires(pre): permissions Requires(pre): permissions
Requires: distribution-logos Requires: distribution-logos
Requires: wallpaper-branding Requires: wallpaper-branding
%endif %endif
# for cockpit-desktop # for cockpit-desktop
Suggests: python3 Suggests: python3
# prevent hard python3 dependency for cockpit-desktop, it falls back to other browsers # prevent hard python3 dependency for cockpit-desktop, it falls back to other browsers
%global __requires_exclude_from ^%{_libexecdir}/cockpit-client$ %global __requires_exclude_from ^%{_libexecdir}/cockpit-client$
@ -716,11 +726,11 @@ done
%if 0%{?rhel} == 0 %if 0%{?rhel} == 0
%package kdump %package kdump
Summary: Cockpit user interface for kernel crash dumping Summary: Cockpit user interface for kernel crash dumping
Requires: cockpit-bridge >= %{required_base} Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base} Requires: cockpit-shell >= %{required_base}
Requires: kexec-tools Requires: kexec-tools
BuildArch: noarch BuildArch: noarch
%description kdump %description kdump
The Cockpit component for configuring kernel crash dumping. The Cockpit component for configuring kernel crash dumping.
@ -730,11 +740,11 @@ The Cockpit component for configuring kernel crash dumping.
%if !0%{?suse_version} %if !0%{?suse_version}
%package sosreport %package sosreport
Summary: Cockpit user interface for diagnostic reports Summary: Cockpit user interface for diagnostic reports
Requires: cockpit-bridge >= %{required_base} Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base} Requires: cockpit-shell >= %{required_base}
Requires: sos Requires: sos
BuildArch: noarch BuildArch: noarch
%description sosreport %description sosreport
The Cockpit component for creating diagnostic reports with the The Cockpit component for creating diagnostic reports with the
@ -746,14 +756,14 @@ sosreport tool.
%endif %endif
%package networkmanager %package networkmanager
Summary: Cockpit user interface for networking, using NetworkManager Summary: Cockpit user interface for networking, using NetworkManager
Requires: NetworkManager >= 1.6 Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-bridge >= %{required_base} Requires: cockpit-shell >= %{required_base}
Requires: cockpit-shell >= %{required_base} Requires: NetworkManager >= 1.6
Conflicts: cockpit-wicked Conflicts: cockpit-wicked
# Optional components # Optional components
Recommends: NetworkManager-team Recommends: NetworkManager-team
BuildArch: noarch BuildArch: noarch
%description networkmanager %description networkmanager
The Cockpit component for managing networking. This package uses NetworkManager. The Cockpit component for managing networking. This package uses NetworkManager.
@ -766,9 +776,9 @@ The Cockpit component for managing networking. This package uses NetworkManager
%if 0%{?rhel} == 0 && ( 0%{?suse_version} >= 1500 || 0%{?is_smo} ) %if 0%{?rhel} == 0 && ( 0%{?suse_version} >= 1500 || 0%{?is_smo} )
%package selinux %package selinux
Summary: Cockpit SELinux package Summary: Cockpit SELinux package
Requires: cockpit-bridge >= %{required_base} Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base} Requires: cockpit-shell >= %{required_base}
Requires: policycoreutils-python-utils >= 3.1 Requires: policycoreutils-python-utils >= 3.1
# setroubleshoot is available on SLE Micro starting with 5.5) # setroubleshoot is available on SLE Micro starting with 5.5)
%if !0%{?is_smo} || ( 0%{?is_smo} && 0%{?sle_version} >= 150500 ) %if !0%{?is_smo} || ( 0%{?is_smo} && 0%{?sle_version} >= 150500 )
@ -801,22 +811,22 @@ Dummy package from building optional packages only; never install or publish me.
%if 0%{?build_optional} %if 0%{?build_optional}
%package -n cockpit-storaged %package -n cockpit-storaged
Summary: Cockpit user interface for storage, using udisks Summary: Cockpit user interface for storage, using udisks
Requires: %{__python3} Requires: cockpit-shell >= %{required_base}
Requires: cockpit-shell >= %{required_base} Requires: udisks2 >= 2.9
Requires: udisks2 >= 2.9 Requires: %{__python3}
%if 0%{?suse_version} %if 0%{?suse_version}
Requires: libudisks2-0_lvm2 >= 2.9 Requires: libudisks2-0_lvm2 >= 2.9
Recommends: multipath-tools Recommends: multipath-tools
Requires: python3-dbus-python Requires: python3-dbus-python
%else %else
Recommends: clevis-luks Recommends: udisks2-lvm2 >= 2.9
Recommends: device-mapper-multipath Recommends: udisks2-iscsi >= 2.9
Recommends: udisks2-iscsi >= 2.9 Recommends: device-mapper-multipath
Recommends: udisks2-lvm2 >= 2.9 Recommends: clevis-luks
Requires: python3-dbus Requires: python3-dbus
%endif %endif
BuildArch: noarch BuildArch: noarch
%description -n cockpit-storaged %description -n cockpit-storaged
The Cockpit component for managing storage. This package uses udisks. The Cockpit component for managing storage. This package uses udisks.
@ -827,11 +837,11 @@ The Cockpit component for managing storage. This package uses udisks.
%if 0%{?build_tests} %if 0%{?build_tests}
%package -n cockpit-tests %package -n cockpit-tests
Summary: Tests for Cockpit Summary: Tests for Cockpit
Requires: cockpit-bridge >= %{required_base} Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-system >= %{required_base} Requires: cockpit-system >= %{required_base}
Requires: openssh-clients Requires: openssh-clients
Provides: cockpit-test-assets = %{version}-%{release} Provides: cockpit-test-assets = %{version}-%{release}
%description -n cockpit-tests %description -n cockpit-tests
This package contains tests and files used while testing Cockpit. This package contains tests and files used while testing Cockpit.
@ -846,7 +856,7 @@ These files are not required for running Cockpit.
%endif %endif
%package devel %package devel
Summary: Development files for for Cockpit Summary: Development files for for Cockpit
%description devel %description devel
This package contains files used to develop cockpit modules This package contains files used to develop cockpit modules
@ -855,9 +865,9 @@ This package contains files used to develop cockpit modules
%{_datadir}/cockpit/devel %{_datadir}/cockpit/devel
%package -n cockpit-pcp %package -n cockpit-pcp
Summary: Cockpit PCP integration Summary: Cockpit PCP integration
Requires: cockpit-bridge >= %{required_base} Requires: cockpit-bridge >= %{required_base}
Requires: pcp Requires: pcp
%description -n cockpit-pcp %description -n cockpit-pcp
Cockpit support for reading PCP metrics and loading PCP archives. Cockpit support for reading PCP metrics and loading PCP archives.
@ -870,13 +880,13 @@ Cockpit support for reading PCP metrics and loading PCP archives.
systemctl reload-or-try-restart pmlogger systemctl reload-or-try-restart pmlogger
%package -n cockpit-packagekit %package -n cockpit-packagekit
Summary: Cockpit user interface for packages Summary: Cockpit user interface for packages
BuildArch: noarch BuildArch: noarch
Requires: PackageKit Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-bridge >= %{required_base} Requires: PackageKit
Recommends: python3-tracer Recommends: python3-tracer
# HACK: https://bugzilla.redhat.com/show_bug.cgi?id=1800468 # HACK: https://bugzilla.redhat.com/show_bug.cgi?id=1800468
Requires: polkit Requires: polkit
%description -n cockpit-packagekit %description -n cockpit-packagekit
The Cockpit components for installing OS updates and Cockpit add-ons, The Cockpit components for installing OS updates and Cockpit add-ons,
@ -887,4 +897,5 @@ via PackageKit.
#/ build optional extension packages #/ build optional extension packages
%endif %endif
# The changelog is automatically generated and merged
%changelog %changelog