Compare commits

..

No commits in common. "c8" and "imports/c8s/cockpit-appstream-249-1.el8" have entirely different histories.

3 changed files with 173 additions and 398 deletions

View File

@ -1,2 +1,2 @@
89104bee2348d0999a2aa1d9798971ae2db6bdb7 SOURCES/cockpit-310.3.tar.xz
c40c7f66f1ff9f2e0fa7ca614dd4cabdfe7d8189 SOURCES/cockpit-machines-308.3.tar.xz
9a7e3e57e2074aac2d004e73d0d4213c4e6d0ef2 SOURCES/cockpit-249.tar.xz
eab8de554e5fcb49f892de3c130a1d38fac75b41 SOURCES/cockpit-machines-248.tar.gz

4
.gitignore vendored
View File

@ -1,2 +1,2 @@
SOURCES/cockpit-310.3.tar.xz
SOURCES/cockpit-machines-308.3.tar.xz
SOURCES/cockpit-249.tar.xz
SOURCES/cockpit-machines-248.tar.gz

View File

@ -1,3 +1,6 @@
# This spec file has been automatically updated
Version: 249
Release: 1%{?dist}
#
# Copyright (C) 2014-2020 Red Hat, Inc.
#
@ -23,12 +26,16 @@
#
# Check first cockpit-devel@lists.fedorahosted.org
#
# Globals that may be defined elsewhere
# * Version 122
# * wip 1
#
# 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
# earliest base that the subpackages work on; the instances of this get computed/updated
# by tools/gen-spec-dependencies during "make dist", but keep a hardcoded fallback
%define required_base 122
%define machines_version 308.3
%define machines_version 248
# we generally want CentOS packages to be like RHEL; special cases need to check %{centos} explicitly
%if 0%{?centos}
@ -48,21 +55,21 @@
Name: cockpit-appstream
Summary: Web Console for Linux servers
License: LGPL-2.1-or-later
License: LGPLv2+
URL: https://cockpit-project.org/
Version: 310.3
Release: 3%{?dist}
%if %{defined wip}
Source0: cockpit-%{version}.tar.xz
%else
Source0: https://github.com/cockpit-project/cockpit/releases/download/%{version}/cockpit-%{version}.tar.xz
Source1: https://github.com/cockpit-project/cockpit-machines/releases/download/%{machines_version}/cockpit-machines-%{machines_version}.tar.xz
Source1: https://github.com/cockpit-project/cockpit-machines/releases/download/%{machines_version}/cockpit-machines-%{machines_version}.tar.gz
%endif
# in RHEL 8 the source package is duplicated: cockpit (building basic packages like cockpit-{bridge,system})
# and cockpit-appstream (building optional packages like cockpit-{pcp})
# This split does not apply to EPEL/COPR nor packit c8s builds, only to our own
# image-prepare rhel-8-Y builds (which will disable build_all).
# This split does not apply to EPEL/COPR.
# In Fedora ELN/RHEL 9+ there is just one source package, which ships rpms in both BaseOS and AppStream
%define build_all 0
%if 0%{?rhel} == 8 && 0%{?epel} == 0 && !0%{?build_all}
%if 0%{?rhel} == 8 && 0%{?epel} == 0
%if "%{name}" == "cockpit"
%define build_basic 1
@ -77,25 +84,11 @@ Source1: https://github.com/cockpit-project/cockpit-machines/releases/dow
%define build_optional 1
%endif
# Allow root login in Cockpit on RHEL 8 and lower as it also allows password login over SSH.
%if 0%{?rhel} && 0%{?rhel} <= 8
%define disallow_root 0
%else
%define disallow_root 1
%endif
# pcp stopped building on ix86
%define build_pcp 1
%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10
%ifarch %ix86
%define build_pcp 0
%endif
%endif
# Ship custom SELinux policy (but not for cockpit-appstream)
%if "%{name}" == "cockpit"
# Ship custom SELinux policy only in Fedora and RHEL-9 onward
%if 0%{?rhel} >= 9 || 0%{?fedora}
%define selinuxtype targeted
%define selinux_configure_arg --enable-selinux-policy=%{selinuxtype}
%define with_selinux 1
%define selinux_policy_version %(rpm --quiet -q selinux-policy && rpm -q --queryformat "%{V}-%{R}" selinux-policy || echo 1)
%endif
BuildRequires: gcc
@ -106,14 +99,8 @@ BuildRequires: pam-devel
BuildRequires: autoconf automake
BuildRequires: make
BuildRequires: python3-devel
%if 0%{?rhel} && 0%{?rhel} <= 8
# RHEL 8's gettext does not yet have metainfo.its
BuildRequires: /usr/bin/python3
BuildRequires: gettext >= 0.19.7
BuildRequires: libappstream-glib-devel
%else
BuildRequires: gettext >= 0.21
%endif
%if 0%{?build_basic}
BuildRequires: libssh-devel >= 0.8.5
%endif
@ -130,19 +117,15 @@ BuildRequires: glib2-devel >= 2.50.0
BuildRequires: systemd-devel >= 235
%if 0%{?suse_version}
BuildRequires: distribution-release
%if %{build_pcp}
BuildRequires: libpcp-devel
BuildRequires: pcp-devel
BuildRequires: libpcp3
BuildRequires: libpcp_import1
%endif
BuildRequires: openssh
BuildRequires: distribution-logos
BuildRequires: wallpaper-branding
%else
%if %{build_pcp}
BuildRequires: pcp-libs-devel
%endif
BuildRequires: openssh-clients
BuildRequires: docbook-style-xsl
%endif
@ -152,8 +135,10 @@ BuildRequires: gdb
# For documentation
BuildRequires: xmlto
%if 0%{?with_selinux}
BuildRequires: selinux-policy
BuildRequires: selinux-policy-devel
%endif
# This is the "cockpit" metapackage. It should only
# Require, Suggest or Recommend other cockpit-xxx subpackages
@ -164,17 +149,15 @@ Requires: cockpit-system
# Optional components
Recommends: (cockpit-storaged if udisks2)
Recommends: (cockpit-packagekit if dnf)
Recommends: cockpit-packagekit
Suggests: cockpit-pcp
%if 0%{?rhel} == 0
Recommends: (cockpit-networkmanager if NetworkManager)
# c-ostree is not in RHEL 8/9
Recommends: (cockpit-ostree if rpm-ostree)
Suggests: cockpit-selinux
%endif
%if 0%{?rhel} && 0%{?centos} == 0
Requires: subscription-manager-cockpit
Recommends: subscription-manager-cockpit
%endif
%prep
@ -182,10 +165,12 @@ Requires: subscription-manager-cockpit
%setup -q -n cockpit-%{version}
%build
exec 2>&1
%configure \
%{?selinux_configure_arg} \
--disable-silent-rules \
--with-cockpit-user=cockpit-ws \
--with-cockpit-ws-instance-user=cockpit-wsinstance \
--with-selinux-config-type=etc_t \
%if 0%{?suse_version}
--docdir=%_defaultdocdir/%{name} \
%endif
@ -193,41 +178,67 @@ Requires: subscription-manager-cockpit
%if 0%{?build_basic} == 0
--disable-ssh \
%endif
%if %{build_pcp} == 0
--disable-pcp \
make -j4 %{?extra_flags} all
%if 0%{?with_selinux}
make -f /usr/share/selinux/devel/Makefile cockpit.pp
bzip2 -9 cockpit.pp
%endif
%make_build
%check
make -j$(nproc) check
exec 2>&1
# HACK: Fedora koji builders are very slow, unreliable, and inaccessible for debugging; https://github.com/cockpit-project/cockpit/issues/13909
%if 0%{?fedora} >= 0
%ifarch s390x
%define testsuite_fail || true
%endif
%endif
# HACK: RHEL i686 builders hang after running all tests; not a supported architecture, so don't bother
%if 0%{?rhel} >= 8
%ifarch i686
%define testsuite_skip #
%endif
%endif
%{?testsuite_skip} make -j4 check %{?testsuite_fail}
%install
%make_install
make install-tests DESTDIR=%{buildroot}
make -C %{_builddir}/cockpit-machines-%{machines_version}/cockpit-machines install DESTDIR=%{buildroot} PREFIX=/usr
make -C %{_builddir}/cockpit-machines-%{machines_version}/cockpit-machines install DESTDIR=%{buildroot}
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
install -p -m 644 tools/cockpit.pam $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/cockpit
rm -f %{buildroot}/%{_libdir}/cockpit/*.so
install -D -p -m 644 AUTHORS COPYING README.md %{buildroot}%{_docdir}/cockpit/
%if 0%{?with_selinux}
install -D -m 644 %{name}.pp.bz2 %{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
install -D -m 644 -t %{buildroot}%{_mandir}/man8 selinux/%{name}_session_selinux.8cockpit
install -D -m 644 -t %{buildroot}%{_mandir}/man8 selinux/%{name}_ws_selinux.8cockpit
# create this directory in the build root so that %ghost sees the desired mode
install -d -m 700 %{buildroot}%{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
%endif
# only ship deprecated PatternFly API for stable releases
%if 0%{?fedora} <= 33 || 0%{?rhel} <= 8
ln -s cockpit.css.gz %{buildroot}/%{_datadir}/cockpit/base1/patternfly.css.gz
%endif
# Build the package lists for resource packages
# cockpit-bridge is the basic dependency for all cockpit-* packages, so centrally own the page directory
echo '%dir %{_datadir}/cockpit' > base.list
echo '%dir %{_datadir}/cockpit/base1' >> base.list
echo '%dir %{_datadir}/cockpit/base1' > base.list
echo '%dir %{_datadir}/cockpit/base1/fonts' >> base.list
find %{buildroot}%{_datadir}/cockpit/base1 -type f -o -type l >> base.list
echo '%{_sysconfdir}/cockpit/machines.d' >> base.list
echo %{buildroot}%{_datadir}/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy >> base.list
%if 0%{?build_basic}
echo '%dir %{_datadir}/cockpit/ssh' >> base.list
find %{buildroot}%{_datadir}/cockpit/ssh -type f >> base.list
%endif
echo '%{_libexecdir}/cockpit-ssh' >> base.list
%if %{build_pcp}
echo '%dir %{_datadir}/cockpit/pcp' > pcp.list
echo '%dir %{_datadir}/cockpit/pcp' >> pcp.list
find %{buildroot}%{_datadir}/cockpit/pcp -type f >> pcp.list
%endif
echo '%dir %{_datadir}/cockpit/tuned' >> system.list
find %{buildroot}%{_datadir}/cockpit/tuned -type f >> system.list
echo '%dir %{_datadir}/cockpit/shell' >> system.list
find %{buildroot}%{_datadir}/cockpit/shell -type f >> system.list
@ -241,7 +252,7 @@ find %{buildroot}%{_datadir}/cockpit/users -type f >> system.list
echo '%dir %{_datadir}/cockpit/metrics' >> system.list
find %{buildroot}%{_datadir}/cockpit/metrics -type f >> system.list
echo '%dir %{_datadir}/cockpit/kdump' > kdump.list
echo '%dir %{_datadir}/cockpit/kdump' >> kdump.list
find %{buildroot}%{_datadir}/cockpit/kdump -type f >> kdump.list
echo '%dir %{_datadir}/cockpit/sosreport' > sosreport.list
@ -253,7 +264,7 @@ find %{buildroot}%{_datadir}/cockpit/storaged -type f >> storaged.list
echo '%dir %{_datadir}/cockpit/networkmanager' > networkmanager.list
find %{buildroot}%{_datadir}/cockpit/networkmanager -type f >> networkmanager.list
echo '%dir %{_datadir}/cockpit/packagekit' > packagekit.list
echo '%dir %{_datadir}/cockpit/packagekit' >> packagekit.list
find %{buildroot}%{_datadir}/cockpit/packagekit -type f >> packagekit.list
echo '%dir %{_datadir}/cockpit/apps' >> packagekit.list
@ -274,24 +285,23 @@ find %{buildroot}%{_datadir}/cockpit/static -type f >> static.list
# when not building basic packages, remove their files
%if 0%{?build_basic} == 0
for pkg in base1 branding motd kdump networkmanager selinux shell sosreport static systemd users metrics; do
for pkg in base1 branding motd kdump networkmanager selinux shell sosreport ssh static systemd tuned users metrics; do
rm -r %{buildroot}/%{_datadir}/cockpit/$pkg
rm -f %{buildroot}/%{_datadir}/metainfo/org.cockpit-project.cockpit-${pkg}.metainfo.xml
done
for data in doc man pixmaps polkit-1; do
for data in doc locale man pixmaps polkit-1; do
rm -r %{buildroot}/%{_datadir}/$data
done
rm -r %{buildroot}/%{_prefix}/%{__lib}/tmpfiles.d
find %{buildroot}/%{_unitdir}/ -type f ! -name 'cockpit-session*' -delete
for libexec in cockpit-askpass cockpit-session cockpit-ws cockpit-tls cockpit-wsinstance-factory cockpit-client cockpit-client.ui cockpit-desktop cockpit-certificate-helper cockpit-certificate-ensure; do
rm -f %{buildroot}/%{_libexecdir}/$libexec
for lib in systemd tmpfiles.d; do
rm -r %{buildroot}/%{_prefix}/%{__lib}/$lib
done
rm -r %{buildroot}/%{_sysconfdir}/pam.d %{buildroot}/%{_sysconfdir}/motd.d %{buildroot}/%{_sysconfdir}/issue.d
rm -f %{buildroot}/%{_libdir}/security/pam_*
rm -f %{buildroot}/usr/bin/cockpit-bridge
for libexec in cockpit-askpass cockpit-session cockpit-ws cockpit-tls cockpit-wsinstance-factory cockpit-desktop cockpit-certificate-helper cockpit-certificate-ensure; do
rm %{buildroot}/%{_libexecdir}/$libexec
done
rm -r %{buildroot}/%{_libdir}/security %{buildroot}/%{_sysconfdir}/pam.d %{buildroot}/%{_sysconfdir}/motd.d %{buildroot}/%{_sysconfdir}/issue.d
rm %{buildroot}/usr/bin/cockpit-bridge %{buildroot}/usr/sbin/remotectl
rm -f %{buildroot}%{_libexecdir}/cockpit-ssh
rm -f %{buildroot}%{_datadir}/metainfo/cockpit.appdata.xml
rm -rf %{buildroot}%{python3_sitelib}/cockpit*
%endif
# when not building optional packages, remove their files
@ -300,9 +310,7 @@ for pkg in apps packagekit pcp playground storaged; do
rm -rf %{buildroot}/%{_datadir}/cockpit/$pkg
done
# files from -tests
rm -f %{buildroot}/%{pamdir}/mock-pam-conv-mod.so
rm -f %{buildroot}/%{_unitdir}/cockpit-session.socket
rm -f %{buildroot}/%{_unitdir}/cockpit-session@.service
rm -r %{buildroot}/%{_prefix}/%{__lib}/cockpit-test-assets
# files from -pcp
rm -r %{buildroot}/%{_libexecdir}/cockpit-pcp %{buildroot}/%{_localstatedir}/lib/pcp/
# files from -storaged
@ -311,7 +319,13 @@ rm -f %{buildroot}/%{_prefix}/share/metainfo/org.cockpit-project.cockpit-storage
sed -i "s|%{buildroot}||" *.list
%if ! 0%{?suse_version}
%if 0%{?suse_version}
# remove brandings with stale symlinks. Means they don't match
# the distro.
pushd %{buildroot}/%{_datadir}/cockpit/branding
find -L * -type l -printf "%H\n" | sort -u | xargs rm -rv
popd
%else
%global _debugsource_packages 1
%global _debuginfo_subpackages 0
@ -327,10 +341,13 @@ cat kdump.list sosreport.list networkmanager.list selinux.list >> system.list
rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml
rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml
rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml
rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-networkmanager.metainfo.xml
rm -f %{buildroot}%{_datadir}/pixmaps/cockpit-sosreport.png
%endif
%if 0%{?build_basic}
%find_lang cockpit
%endif
# -------------------------------------------------------------------------------
# Basic Sub-packages
@ -347,6 +364,7 @@ troubleshooting, interactive command-line sessions, and more.
%{_docdir}/cockpit/AUTHORS
%{_docdir}/cockpit/COPYING
%{_docdir}/cockpit/README.md
%dir %{_datadir}/cockpit
%{_datadir}/metainfo/cockpit.appdata.xml
%{_datadir}/pixmaps/cockpit.png
%doc %{_mandir}/man1/cockpit.1.gz
@ -356,6 +374,8 @@ troubleshooting, interactive command-line sessions, and more.
Summary: Cockpit bridge server-side component
Requires: glib-networking
Provides: cockpit-ssh = %{version}-%{release}
# PR #10430 dropped workaround for ws' inability to understand x-host-key challenge
Conflicts: cockpit-ws < 181.x
# 233 dropped jquery.js, pages started to bundle it (commit 049e8b8dce)
Conflicts: cockpit-dashboard < 233
Conflicts: cockpit-networkmanager < 233
@ -404,103 +424,27 @@ Provides: cockpit-tuned = %{version}-%{release}
Provides: cockpit-users = %{version}-%{release}
Obsoletes: cockpit-dashboard < %{version}-%{release}
%if 0%{?rhel}
Requires: NetworkManager >= 1.6
Requires: kexec-tools
Requires: sos
Requires: sudo
Recommends: PackageKit
Recommends: setroubleshoot-server >= 3.3.3
Suggests: NetworkManager-team
Provides: cockpit-kdump = %{version}-%{release}
Provides: cockpit-networkmanager = %{version}-%{release}
Requires: NetworkManager >= 1.6
Provides: cockpit-kdump = %{version}-%{release}
Requires: kexec-tools
Recommends: (sudo or polkit)
Recommends: PackageKit
Recommends: NetworkManager-team
Recommends: setroubleshoot-server >= 3.3.3
Provides: cockpit-selinux = %{version}-%{release}
Provides: cockpit-sosreport = %{version}-%{release}
Requires: sos
%endif
%if 0%{?fedora}
Recommends: (reportd if abrt)
%if 0%{?fedora} >= 29
# 0.7.0 (actually) supports task cancellation.
# 0.7.1 fixes tasks never announcing completion.
Recommends: (reportd >= 0.7.1 if abrt)
%endif
Provides: bundled(npm(@patternfly/patternfly)) = 5.1.0
Provides: bundled(npm(@patternfly/react-core)) = 5.1.2
Provides: bundled(npm(@patternfly/react-icons)) = 5.1.2
Provides: bundled(npm(@patternfly/react-styles)) = 5.1.2
Provides: bundled(npm(@patternfly/react-table)) = 5.1.2
Provides: bundled(npm(@patternfly/react-tokens)) = 5.1.2
Provides: bundled(npm(argparse)) = 1.0.10
Provides: bundled(npm(array-buffer-byte-length)) = 1.0.0
Provides: bundled(npm(attr-accept)) = 2.2.2
Provides: bundled(npm(autolinker)) = 3.16.2
Provides: bundled(npm(available-typed-arrays)) = 1.0.5
Provides: bundled(npm(call-bind)) = 1.0.5
Provides: bundled(npm(date-fns)) = 3.2.0
Provides: bundled(npm(deep-equal)) = 2.2.3
Provides: bundled(npm(define-data-property)) = 1.1.1
Provides: bundled(npm(define-properties)) = 1.2.1
Provides: bundled(npm(es-get-iterator)) = 1.1.3
Provides: bundled(npm(file-selector)) = 0.6.0
Provides: bundled(npm(focus-trap)) = 7.5.2
Provides: bundled(npm(for-each)) = 0.3.3
Provides: bundled(npm(function-bind)) = 1.1.2
Provides: bundled(npm(functions-have-names)) = 1.2.3
Provides: bundled(npm(get-intrinsic)) = 1.2.2
Provides: bundled(npm(gopd)) = 1.0.1
Provides: bundled(npm(has-bigints)) = 1.0.2
Provides: bundled(npm(has-property-descriptors)) = 1.0.1
Provides: bundled(npm(has-proto)) = 1.0.1
Provides: bundled(npm(has-symbols)) = 1.0.3
Provides: bundled(npm(has-tostringtag)) = 1.0.0
Provides: bundled(npm(hasown)) = 2.0.0
Provides: bundled(npm(internal-slot)) = 1.0.6
Provides: bundled(npm(is-arguments)) = 1.1.1
Provides: bundled(npm(is-array-buffer)) = 3.0.2
Provides: bundled(npm(is-bigint)) = 1.0.4
Provides: bundled(npm(is-boolean-object)) = 1.1.2
Provides: bundled(npm(is-callable)) = 1.2.7
Provides: bundled(npm(is-date-object)) = 1.0.5
Provides: bundled(npm(is-map)) = 2.0.2
Provides: bundled(npm(is-number-object)) = 1.0.7
Provides: bundled(npm(is-regex)) = 1.1.4
Provides: bundled(npm(is-set)) = 2.0.2
Provides: bundled(npm(is-shared-array-buffer)) = 1.0.2
Provides: bundled(npm(is-string)) = 1.0.7
Provides: bundled(npm(is-symbol)) = 1.0.4
Provides: bundled(npm(is-typed-array)) = 1.1.12
Provides: bundled(npm(is-weakmap)) = 2.0.1
Provides: bundled(npm(is-weakset)) = 2.0.2
Provides: bundled(npm(isarray)) = 2.0.5
Provides: bundled(npm(js-sha1)) = 0.6.0
Provides: bundled(npm(js-sha256)) = 0.10.1
Provides: bundled(npm(js-tokens)) = 4.0.0
Provides: bundled(npm(json-stable-stringify-without-jsonify)) = 1.0.1
Provides: bundled(npm(lodash)) = 4.17.21
Provides: bundled(npm(loose-envify)) = 1.4.0
Provides: bundled(npm(object-assign)) = 4.1.1
Provides: bundled(npm(object-inspect)) = 1.13.1
Provides: bundled(npm(object-is)) = 1.1.5
Provides: bundled(npm(object-keys)) = 1.1.1
Provides: bundled(npm(object.assign)) = 4.1.5
Provides: bundled(npm(prop-types)) = 15.8.1
Provides: bundled(npm(react-dom)) = 18.2.0
Provides: bundled(npm(react-dropzone)) = 14.2.3
Provides: bundled(npm(react-is)) = 16.13.1
Provides: bundled(npm(react)) = 18.2.0
Provides: bundled(npm(regexp.prototype.flags)) = 1.5.1
Provides: bundled(npm(remarkable)) = 2.0.1
Provides: bundled(npm(scheduler)) = 0.23.0
Provides: bundled(npm(set-function-length)) = 1.2.0
Provides: bundled(npm(set-function-name)) = 2.0.1
Provides: bundled(npm(side-channel)) = 1.0.4
Provides: bundled(npm(sprintf-js)) = 1.0.3
Provides: bundled(npm(stop-iteration-iterator)) = 1.0.0
Provides: bundled(npm(tabbable)) = 6.2.0
Provides: bundled(npm(throttle-debounce)) = 5.0.0
Provides: bundled(npm(tslib)) = 2.6.2
Provides: bundled(npm(uuid)) = 9.0.1
Provides: bundled(npm(which-boxed-primitive)) = 1.0.2
Provides: bundled(npm(which-collection)) = 1.0.1
Provides: bundled(npm(which-typed-array)) = 1.1.13
Provides: bundled(npm(xterm-addon-canvas)) = 0.5.0
Provides: bundled(npm(xterm)) = 5.3.0
# NPM modules which are also available as packages
Provides: bundled(js-jquery) = 3.5.1
Provides: bundled(xstatic-bootstrap-datepicker-common) = 1.9.0
Provides: bundled(xstatic-patternfly-common) = 3.59.5
%description system
This package contains the Cockpit shell and system configuration interfaces.
@ -513,17 +457,14 @@ Summary: Cockpit Web Service
Requires: glib-networking
Requires: openssl
Requires: glib2 >= 2.50.0
Requires: (selinux-policy >= %{_selinux_policy_version} if selinux-policy-%{selinuxtype})
%if 0%{?with_selinux}
Requires: (selinux-policy >= %{selinux_policy_version} if selinux-policy-%{selinuxtype})
Requires(post): (policycoreutils if selinux-policy-%{selinuxtype})
%endif
Conflicts: firewalld < 0.6.0-1
Recommends: sscg >= 2.3
Recommends: system-logos
Suggests: sssd-dbus >= 2.6.2
# for cockpit-desktop
Suggests: python3
# prevent hard python3 dependency for cockpit-desktop, it falls back to other browsers
%global __requires_exclude_from ^%{_libexecdir}/cockpit-client$
Suggests: sssd-dbus
%description ws
The Cockpit Web Service listens on the network, and authenticates users.
@ -531,11 +472,12 @@ The Cockpit Web Service listens on the network, and authenticates users.
If sssd-dbus is installed, you can enable client certificate/smart card
authentication via sssd/FreeIPA.
%files ws -f static.list
%files ws -f cockpit.lang -f static.list
%doc %{_mandir}/man1/cockpit-desktop.1.gz
%doc %{_mandir}/man5/cockpit.conf.5.gz
%doc %{_mandir}/man8/cockpit-ws.8.gz
%doc %{_mandir}/man8/cockpit-tls.8.gz
%doc %{_mandir}/man8/remotectl.8.gz
%doc %{_mandir}/man8/pam_ssh_add.8.gz
%dir %{_sysconfdir}/cockpit
%config(noreplace) %{_sysconfdir}/cockpit/ws-certs.d
@ -543,7 +485,6 @@ authentication via sssd/FreeIPA.
# created in %post, so that users can rm the files
%ghost %{_sysconfdir}/issue.d/cockpit.issue
%ghost %{_sysconfdir}/motd.d/cockpit
%ghost %attr(0644, root, root) %{_sysconfdir}/cockpit/disallowed-users
%dir %{_datadir}/cockpit/motd
%{_datadir}/cockpit/motd/update-motd
%{_datadir}/cockpit/motd/inactive.motd
@ -552,28 +493,32 @@ authentication via sssd/FreeIPA.
%{_unitdir}/cockpit.socket
%{_unitdir}/cockpit-wsinstance-http.socket
%{_unitdir}/cockpit-wsinstance-http.service
%{_unitdir}/cockpit-wsinstance-http-redirect.socket
%{_unitdir}/cockpit-wsinstance-http-redirect.service
%{_unitdir}/cockpit-wsinstance-https-factory.socket
%{_unitdir}/cockpit-wsinstance-https-factory@.service
%{_unitdir}/cockpit-wsinstance-https@.socket
%{_unitdir}/cockpit-wsinstance-https@.service
%{_unitdir}/system-cockpithttps.slice
%{_prefix}/%{__lib}/tmpfiles.d/cockpit-tempfiles.conf
%{_sbindir}/remotectl
%{pamdir}/pam_ssh_add.so
%{pamdir}/pam_cockpit_cert.so
%{_libexecdir}/cockpit-ws
%{_libexecdir}/cockpit-wsinstance-factory
%{_libexecdir}/cockpit-tls
%{_libexecdir}/cockpit-client
%{_libexecdir}/cockpit-client.ui
%{_libexecdir}/cockpit-desktop
%{_libexecdir}/cockpit-certificate-ensure
%{_libexecdir}/cockpit-certificate-helper
%attr(4750, root, cockpit-wsinstance) %{_libexecdir}/cockpit-session
%{_datadir}/cockpit/branding
%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
%{_mandir}/man8/%{name}_session_selinux.8cockpit.*
%{_mandir}/man8/%{name}_ws_selinux.8cockpit.*
%ghost %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
%if 0%{?with_selinux}
%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
%{_mandir}/man8/%{name}_session_selinux.8cockpit.*
%{_mandir}/man8/%{name}_ws_selinux.8cockpit.*
%ghost %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
%endif
%pre ws
getent group cockpit-ws >/dev/null || groupadd -r cockpit-ws
@ -581,27 +526,25 @@ getent passwd cockpit-ws >/dev/null || useradd -r -g cockpit-ws -d /nonexisting
getent group cockpit-wsinstance >/dev/null || groupadd -r cockpit-wsinstance
getent passwd cockpit-wsinstance >/dev/null || useradd -r -g cockpit-wsinstance -d /nonexisting -s /sbin/nologin -c "User for cockpit-ws instances" cockpit-wsinstance
%if 0%{?with_selinux}
if %{_sbindir}/selinuxenabled 2>/dev/null; then
%selinux_relabel_pre -s %{selinuxtype}
fi
%endif
%post ws
if [ -x %{_sbindir}/selinuxenabled ]; then
%if 0%{?with_selinux}
if %{_sbindir}/selinuxenabled 2>/dev/null; then
%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
%selinux_relabel_post -s %{selinuxtype}
fi
%endif
# set up dynamic motd/issue symlinks on first-time install; don't bring them back on upgrades if admin removed them
# disable root login on first-time install; so existing installations aren't changed
if [ "$1" = 1 ]; then
mkdir -p /etc/motd.d /etc/issue.d
ln -s ../../run/cockpit/motd /etc/motd.d/cockpit
ln -s ../../run/cockpit/motd /etc/issue.d/cockpit.issue
printf "# List of users which are not allowed to login to Cockpit\n" > /etc/cockpit/disallowed-users
%if 0%{?disallow_root}
printf "root\n" >> /etc/cockpit/disallowed-users
%endif
chmod 644 /etc/cockpit/disallowed-users
ln -s /run/cockpit/motd /etc/motd.d/cockpit
ln -s /run/cockpit/motd /etc/issue.d/cockpit.issue
fi
%tmpfiles_create cockpit-tempfiles.conf
@ -610,7 +553,7 @@ fi
test -f %{_bindir}/firewall-cmd && firewall-cmd --reload --quiet || true
# check for deprecated PAM config
if test -f %{_sysconfdir}/pam.d/cockpit && grep -q pam_cockpit_cert %{_sysconfdir}/pam.d/cockpit; then
if grep --color=auto pam_cockpit_cert %{_sysconfdir}/pam.d/cockpit; then
echo '**** WARNING:'
echo '**** WARNING: pam_cockpit_cert is a no-op and will be removed in a'
echo '**** WARNING: future release; remove it from your /etc/pam.d/cockpit.'
@ -621,10 +564,12 @@ fi
%systemd_preun cockpit.socket cockpit.service
%postun ws
if [ -x %{_sbindir}/selinuxenabled ]; then
%if 0%{?with_selinux}
if %{_sbindir}/selinuxenabled 2>/dev/null; then
%selinux_modules_uninstall -s %{selinuxtype} %{name}
%selinux_relabel_post -s %{selinuxtype}
fi
%endif
%systemd_postun_with_restart cockpit.socket cockpit.service
# -------------------------------------------------------------------------------
@ -634,8 +579,8 @@ fi
%package kdump
Summary: Cockpit user interface for kernel crash dumping
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base}
Requires: cockpit-bridge >= 122
Requires: cockpit-shell >= 122
Requires: kexec-tools
BuildArch: noarch
@ -647,8 +592,8 @@ The Cockpit component for configuring kernel crash dumping.
%package sosreport
Summary: Cockpit user interface for diagnostic reports
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base}
Requires: cockpit-bridge >= 122
Requires: cockpit-shell >= 122
Requires: sos
BuildArch: noarch
@ -662,8 +607,8 @@ sosreport tool.
%package networkmanager
Summary: Cockpit user interface for networking, using NetworkManager
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base}
Requires: cockpit-bridge >= 186
Requires: cockpit-shell >= 186
Requires: NetworkManager >= 1.6
# Optional components
Recommends: NetworkManager-team
@ -673,7 +618,6 @@ BuildArch: noarch
The Cockpit component for managing networking. This package uses NetworkManager.
%files networkmanager -f networkmanager.list
%{_datadir}/metainfo/org.cockpit-project.cockpit-networkmanager.metainfo.xml
%endif
@ -681,8 +625,8 @@ The Cockpit component for managing networking. This package uses NetworkManager
%package selinux
Summary: Cockpit SELinux package
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base}
Requires: cockpit-bridge >= 122
Requires: cockpit-shell >= 122
Requires: setroubleshoot-server >= 3.3.3
BuildArch: noarch
@ -700,8 +644,7 @@ utility setroubleshoot to diagnose and resolve SELinux issues.
# RPM requires this
%description
Cockpit packages for RHEL/CentOS 8 AppStream: Machines, PCP, Storage, and
Software Updates.
Dummy package from building optional packages only; never install or publish me.
#/ build basic packages
%endif
@ -713,13 +656,10 @@ Software Updates.
%package -n cockpit-storaged
Summary: Cockpit user interface for storage, using udisks
Requires: cockpit-shell >= %{required_base}
Requires: udisks2 >= 2.9
Recommends: udisks2-lvm2 >= 2.9
Recommends: udisks2-iscsi >= 2.9
%if ! 0%{?rhel}
Recommends: udisks2-btrfs >= 2.9
%endif
Requires: cockpit-shell >= 186
Requires: udisks2 >= 2.6
Recommends: udisks2-lvm2 >= 2.6
Recommends: udisks2-iscsi >= 2.6
Recommends: device-mapper-multipath
Recommends: clevis-luks
Requires: %{__python3}
@ -734,12 +674,13 @@ BuildArch: noarch
The Cockpit component for managing storage. This package uses udisks.
%files -n cockpit-storaged -f storaged.list
%dir %{_datadir}/cockpit/storaged/images
%{_datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml
%package -n cockpit-tests
Summary: Tests for Cockpit
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-system >= %{required_base}
Requires: cockpit-bridge >= 138
Requires: cockpit-system >= 138
Requires: openssh-clients
Provides: cockpit-test-assets = %{version}-%{release}
@ -748,29 +689,24 @@ This package contains tests and files used while testing Cockpit.
These files are not required for running Cockpit.
%files -n cockpit-tests -f tests.list
%{pamdir}/mock-pam-conv-mod.so
%{_unitdir}/cockpit-session.socket
%{_unitdir}/cockpit-session@.service
%{_prefix}/%{__lib}/cockpit-test-assets
%package -n cockpit-machines
BuildArch: noarch
Summary: Cockpit user interface for virtual machines
Requires: cockpit-bridge >= 215
Requires: libvirt-daemon-driver-qemu
Requires: libvirt-daemon-driver-network
Requires: libvirt-daemon-driver-nodedev
Requires: libvirt-daemon-driver-storage-core
Requires: (libvirt-daemon-driver-interface if virt-install)
Requires: (libvirt-daemon-config-network if virt-install)
Recommends: libvirt-daemon-driver-storage-disk
Requires: qemu-kvm
Requires: cockpit-bridge >= 186
Requires: cockpit-system >= 186
%if 0%{?suse_version}
Requires: libvirt-daemon-qemu
%else
Requires: libvirt-daemon-kvm
%endif
Requires: libvirt-client
Requires: libvirt-dbus >= 1.2.0
# Optional components
Recommends: virt-install >= 3.0.0
Recommends: virt-install
Recommends: libosinfo
Recommends: python3-gobject-base
Suggests: qemu-virtiofsd
%description -n cockpit-machines
The Cockpit components for managing virtual machines.
@ -780,11 +716,9 @@ If "virt-install" is installed, you can also create new virtual machines.
%files -n cockpit-machines -f machines.list
%{_datadir}/metainfo/org.cockpit-project.machines.metainfo.xml
%if %{build_pcp}
%package -n cockpit-pcp
Summary: Cockpit PCP integration
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-bridge >= 238.1.1
Requires: pcp
%description -n cockpit-pcp
@ -797,12 +731,10 @@ Cockpit support for reading PCP metrics and loading PCP archives.
%post -n cockpit-pcp
systemctl reload-or-try-restart pmlogger
%endif
%package -n cockpit-packagekit
Summary: Cockpit user interface for packages
BuildArch: noarch
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-bridge >= 186
Requires: PackageKit
Recommends: python3-tracer
# HACK: https://bugzilla.redhat.com/show_bug.cgi?id=1800468
@ -819,170 +751,13 @@ via PackageKit.
# The changelog is automatically generated and merged
%changelog
* Thu May 02 2024 Martin Pitt <mpitt@redhat.com> - 310.3-3
- Machines: Fix detaching host devices for running VMs (RHEL-34694)
* Tue Feb 20 2024 Martin Pitt <mpitt@redhat.com> - 310.3-2
- Machines: Mass SPICE replacement
- Machines: Pre-formatted Block Device storage pool support
- Machines: Translation updates (jira#RHEL-14230)
* Thu Feb 15 2024 Martin Pitt <mpitt@redhat.com> - 310.3-1
- Translation updates (jira#RHEL-16681)
Lots of bug fixes
* Wed Jan 31 2024 Martin Pitt <mpitt@redhat.com> - 310-1
- Storage: support for btrfs
- Storage: improved support for swap
- Machines: Action to Replace SPICE devices (RHEL-17433)
- Machines: Create external snapshots when supported
- Machines: Fix VM creation on s390x (RHEL-22241)
* Thu Jan 18 2024 Martin Pitt <mpitt@redhat.com> - 309-1
- Machines: Fix deletion of SSH keys (jira#RHEL-19598)
* Fri Dec 15 2023 Martin Pitt <mpitt@redhat.com> - 307-1
- Storage redesign
- Machines: Stop configuring SPICE by default for new VMs (jira#RHEL-18058)
* Wed Nov 29 2023 Martin Pitt <mpitt@redhat.com> - 306-1
- Machines: Change "Add disk" default behavior
* Thu Nov 23 2023 Martin Pitt <mpitt@redhat.com> - 305-1
- Performance and stability improvements
* Wed Nov 01 2023 Martin Pitt <mpitt@redhat.com> - 304-1
- Storage: Support for RAID layouts with LVM2
* Thu Oct 19 2023 Martin Pitt <mpitt@redhat.com> - 303-1
- Apps: Warn if appstream data package is missing
- Storage: Partitions can be resized
* Wed Sep 20 2023 Martin Pitt <mpitt@redhat.com> - 301-1
- WireGuard support
- Metrics: link to network interface details
* Wed Sep 06 2023 Martin Pitt <mpitt@redhat.com> - 300-1
- Celebrating the Nürnberg life release!
- Storage: Support for growing block devices of a Stratis pool
* Wed Aug 23 2023 Martin Pitt <mpitt@redhat.com> - 299-1
- Storage: Support for no-overprovisioning with Stratis
- Storage: Cockpit can now add caches to encrypted Stratis pools
* Wed Jul 26 2023 Martin Pitt <mpitt@redhat.com> - 297-1
- Bug fixes
* Wed Jul 12 2023 Martin Pitt <mpitt@redhat.com> - 296-1
- Machines: Fix "Edit" button CSS for transient VMs (rhbz#2215597)
- Machines: Fix format detection for CD/DVD images (rhbz#2215599)
* Wed Jun 28 2023 Martin Pitt <mpitt@redhat.com> - 295-1
- Machines: Vsock device support
- Machines: Confirm shutdown actions
- Machines: Show virtual interface's TAP device
* Tue May 16 2023 Martin Pitt <mpitt@redhat.com> - 292-1
- Metrics: Add disk IO per service
- Several right-to-left language fixes
- Machines: Apply watchdog changes on next boot if hotplug fails
* Tue May 09 2023 Martin Pitt <mpitt@redhat.com> - 291-1
- Update to PatternFly 5 Alpha
- Machines: Option to use RAW volume during VM creation
- Machines: Redesign VMs CPU configuration
* Wed Apr 06 2023 Katerina Koukiou <kkoukiou@redhat.com> - 289-1
- Machines: Show an alert when virtualization is disabled in BIOS/EFI
- Storage: Mounting filesystems at boot time
- Machines: Create VM based on cloud image and start it later (rhbz#1913548)
* Thu Feb 23 2023 Martin Pitt <mpitt@redhat.com> - 286.1-1
- Translation updates (rhbz#2139719)
* Wed Feb 22 2023 Martin Pitt <mpitt@redhat.com> - 286-1
- Stability and performance improvements
* Wed Feb 08 2023 Martin Pitt <mpitt@redhat.com> - 285-1
- Stability and performance improvements
* Thu Jan 26 2023 Martin Pitt <mpitt@redhat.com> - 284-1
- Storage: Set up a system to use NBDE
- Machines: Option to forcefully revert a snapshot
- Fix tabular numbers font
* Wed Jan 11 2023 Katerina Koukiou <kkoukiou@redhat.com> - 283-1
- Machines: Summarize system and user session differences
- Machines: Virtual watchdog device support
* Wed Nov 23 2022 Matej Marusak <mmarusak@redhat.com> - 278-1
- Machines: Allow TRIM/UNMAP requests by default for newly added disks
- Machines: Insert and eject CD & DVD media
* Thu Aug 25 2022 Matej Marusak <mmarusak@redhat.com> - 275-1
- Machines: Offer downloading RHEL OS only for RHEL >= 8 (rhbz#2118236)
* Thu Jul 21 2022 Martin Pitt <mpitt@redhat.com> - 273-1
- Software Updates: Optionally reboot after updating
- Machines: Show toast notication if VM's storage deletion fails (rhbz#2105984)
* Thu Jun 23 2022 Matej Marusak <mmarusak@redhat.com> - 272-1
- Translation updates
* Wed May 25 2022 Martin Pitt <mpitt@redhat.com> - 270-1
- Machines: Redesign content removal dialogs
* Mon May 16 2022 Martin Pitt <mpitt@redhat.com> - 269-1
- Show base-10 units by default (rhbz#1970119)
- Apps: Fix i18n (rhbz#2018389)
- Software Updates: Install kpatches only (rhbz#2039989)
- Machines: Fix deleting net interfaces with non-unique MAC address (rhbz#1867478)
- Machines: Create disks with random/customizable serial number (rhbz#2036330)
- Machines: Fix network interface source icon (rhbz#2063680)
* Fri Feb 25 2022 Martin Pitt <mpitt@redhat.com> - 264-1
- Machines: Fix broken VM deletion dialog layout
- Translation updates
* Thu Feb 17 2022 Martin Pitt <mpitt@redhat.com> - 263-1
- Overview: Show scheduled shutdowns
- Networking: Add firewall service description
- Shell: Fix browser history
* Tue Jan 25 2022 Matej Marusak <mmarusak@redhat.com> - 261-1
- storage: Unmounting or deleting a busy filesystem is now supported
- Tests improvements and stabilization
- Machines: Delete disks only after VM is successfully undefined and destroyed (rhbz#2031678)
- Machines: Do not change "startVm" value when selecting Unattended installation (rhbz#2033603)
* Tue Dec 14 2021 Martin Pitt <mpitt@redhat.com> - 259-1
- Use official VDO LVM API
* Fri Nov 12 2021 Katerina Koukiou <kkoukiou@redhat.com> - 257-1
- Machines: Now officially supported on Arch Linux (https://archlinux.org/)
- Machines: Support selecting between consoles of the same type
* Thu Oct 14 2021 Martin Pitt <mpitt@redhat.com> - 255-1
- Machines: Parse supported disk bus types from domcapabities (rhbz#1862779)
- Machines: Stop exposing unattended installation option for ISO installation
media (rhbz#1868594)
* Thu Aug 19 2021 Matej Marusak <mmarusak@redhat.com> - 251-1
- Machines: Always show current disk bus type (rhbz#1985256)
* Wed Aug 04 2021 Martin Pitt <mpitt@redhat.com> - 250-1
- Software Updates: Introduce basic kpatch support
- Software Updates: Handle unregistered RHEL systems with non-CDN OS repository
(rhbz#1970057)
- Machines: Read qemu.conf to get spice/vnc address (rhbz#1963701)
* Wed Jul 21 2021 Matej Marusak <mmarusak@redhat.com> - 249-1
- Machines: Fix input for "Target Path" when Creating storage pool (rhbz#1866225)
- Machines: Don't round or floor memory and storage size unnecessarily (rhbz#1979152)
- Machines: Use cockpit's proxy API for monitoring libvirt service changes (rhbz#1974223)
- Machines: Fix ooops when press the down arrow several times when inputting custom path (rhbz#1977554)
* Fri Jul 09 2021 Katerina Koukiou <kkoukiou@redhat.com> - 248-1
* Thu Jul 09 2021 Katerina Koukiou <kkoukiou@redhat.com> - 248-1
- Machines: Share host files with the guest using virtiofs
- Machines: Show list of pass-through devices
@ -1002,7 +777,7 @@ via PackageKit.
- Several UI alignment fixes
- Updates: Show PackageKit errors properly
* Fri Feb 19 2021 Katerina Koukiou <kkoukiou@redhat.com> - 238-1
* Thu Feb 19 2021 Katerina Koukiou <kkoukiou@redhat.com> - 238-1
- machines: VM disk creation supports a custom path
- Updates: List outdated software that needs a restart