diff --git a/.cockpit-appstream.metadata b/.cockpit-appstream.metadata
index 3699072..8477c07 100644
--- a/.cockpit-appstream.metadata
+++ b/.cockpit-appstream.metadata
@@ -1 +1 @@
-d2296e9e881f359d901ac3f73f471d056497d91b SOURCES/cockpit-211.3.tar.xz
+803c615a15fddbd11dd15877f09e6357efa3ef9d SOURCES/cockpit-224.2.tar.xz
diff --git a/.gitignore b/.gitignore
index ae96b4b..fdf33be 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/cockpit-211.3.tar.xz
+SOURCES/cockpit-224.2.tar.xz
diff --git a/SPECS/cockpit-appstream.spec b/SPECS/cockpit-appstream.spec
index 50c53c2..0832553 100644
--- a/SPECS/cockpit-appstream.spec
+++ b/SPECS/cockpit-appstream.spec
@@ -1,7 +1,23 @@
# This spec file has been automatically updated
-Version: 211.3
+Version: 224.2
Release: 1%{?dist}
#
+# Copyright (C) 2014-2020 Red Hat, Inc.
+#
+# Cockpit is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# Cockpit is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Cockpit; If not, see .
+#
+
# This file is maintained at the following location:
# https://github.com/cockpit-project/cockpit/blob/master/tools/cockpit.spec
#
@@ -50,6 +66,12 @@ Release: 1%{?dist}
%define vdo_on_demand 1
%endif
+%if 0%{?suse_version}
+%define pamdir /%{_lib}/security
+%else
+%define pamdir %{_libdir}/security
+%endif
+
Name: cockpit-appstream
Summary: Web Console for Linux servers
@@ -69,26 +91,39 @@ BuildRequires: pkgconfig(polkit-agent-1) >= 0.105
BuildRequires: pam-devel
BuildRequires: autoconf automake
+BuildRequires: make
BuildRequires: /usr/bin/python3
BuildRequires: gettext >= 0.19.7
%if %{defined build_dashboard}
-BuildRequires: libssh-devel >= 0.8
+BuildRequires: libssh-devel >= 0.8.5
%endif
BuildRequires: openssl-devel
BuildRequires: gnutls-devel >= 3.4.3
BuildRequires: zlib-devel
BuildRequires: krb5-devel >= 1.11
BuildRequires: libxslt-devel
-BuildRequires: docbook-style-xsl
BuildRequires: glib-networking
BuildRequires: sed
BuildRequires: glib2-devel >= 2.37.4
+# this is for runtimedir in the tls proxy ace21c8879
BuildRequires: systemd-devel >= 235
+%if 0%{?suse_version}
+BuildRequires: distribution-release
+BuildRequires: libpcp-devel
+BuildRequires: pcp-devel
+BuildRequires: libpcp3
+BuildRequires: libpcp_import1
+BuildRequires: openssh
+BuildRequires: distribution-logos
+BuildRequires: wallpaper-branding
+%else
BuildRequires: pcp-libs-devel
+BuildRequires: openssh-clients
+BuildRequires: docbook-style-xsl
+%endif
BuildRequires: krb5-server
BuildRequires: gdb
-BuildRequires: openssh-clients
# For documentation
BuildRequires: xmlto
@@ -101,15 +136,19 @@ Requires: cockpit-ws
Requires: cockpit-system
# Optional components
-%if 0%{?rhel} == 0
-Recommends: cockpit-dashboard
+Recommends: (cockpit-storaged if udisks2)
+Recommends: cockpit-packagekit
+Suggests: cockpit-pcp
+
%ifarch x86_64 %{arm} aarch64 ppc64le i686 s390x
+%if 0%{?fedora} == 31 && 0%{?build_optional}
+%define build_docker 1
Recommends: (cockpit-docker if /usr/bin/docker)
%endif
+%endif
+
+%if 0%{?rhel} == 0
Recommends: (cockpit-networkmanager if NetworkManager)
-Recommends: (cockpit-storaged if udisks2)
-Recommends: cockpit-packagekit
-Suggests: cockpit-pcp
Suggests: cockpit-selinux
%endif
%if 0%{?rhel} && 0%{?centos} == 0
@@ -128,28 +167,46 @@ exec 2>&1
--with-selinux-config-type=etc_t \
--with-appstream-data-packages='[ "appstream-data" ]' \
--with-nfs-client-package='"nfs-utils"' \
+%if 0%{?suse_version}
+ --docdir=%_defaultdocdir/%{name} \
+%endif
+ --with-pamdir='%{pamdir}' \
%{?vdo_on_demand:--with-vdo-package='"vdo"'}
make -j4 %{?extra_flags} all
%check
exec 2>&1
-make -j4 check
+# 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 DESTDIR=%{buildroot}
+%make_install
make install-tests 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
# shipped in firewalld since 0.6, everywhere in Fedora/RHEL 8
rm -f %{buildroot}/%{_prefix}/%{__lib}/firewalld/services/cockpit.xml
-install -p -m 644 AUTHORS COPYING README.md %{buildroot}%{_docdir}/cockpit/
+install -D -p -m 644 AUTHORS COPYING README.md %{buildroot}%{_docdir}/cockpit/
# Build the package lists for resource packages
echo '%dir %{_datadir}/cockpit/base1' > base.list
+echo '%dir %{_datadir}/cockpit/base1/fonts' >> base.list
find %{buildroot}%{_datadir}/cockpit/base1 -type f >> base.list
echo '%{_sysconfdir}/cockpit/machines.d' >> base.list
echo %{buildroot}%{_datadir}/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy >> base.list
+echo '%dir %{_datadir}/cockpit/ssh' >> base.list
find %{buildroot}%{_datadir}/cockpit/ssh -type f >> base.list
echo '%{_libexecdir}/cockpit-ssh' >> base.list
@@ -203,16 +260,12 @@ find %{buildroot}%{_datadir}/cockpit/selinux -type f >> selinux.list
echo '%dir %{_datadir}/cockpit/playground' > tests.list
find %{buildroot}%{_datadir}/cockpit/playground -type f >> tests.list
-%ifarch x86_64 %{arm} aarch64 ppc64le i686 s390x
-%if 0%{?fedora}
+%if 0%{?build_docker}
echo '%dir %{_datadir}/cockpit/docker' > docker.list
find %{buildroot}%{_datadir}/cockpit/docker -type f >> docker.list
%else
rm -rf %{buildroot}/%{_datadir}/cockpit/docker
-touch docker.list
-%endif
-%else
-rm -rf %{buildroot}/%{_datadir}/cockpit/docker
+rm -f %{buildroot}/%{_prefix}/share/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml
touch docker.list
%endif
@@ -243,23 +296,47 @@ for pkg in apps dashboard docker machines packagekit pcp playground storaged; do
rm -rf %{buildroot}/%{_datadir}/cockpit/$pkg
done
# files from -tests
-rm -r %{buildroot}/%{_prefix}/%{__lib}/cockpit-test-assets %{buildroot}/%{_sysconfdir}/cockpit/cockpit.conf
+rm -r %{buildroot}/%{_prefix}/%{__lib}/cockpit-test-assets
# files from -pcp
rm -r %{buildroot}/%{_libexecdir}/cockpit-pcp %{buildroot}/%{_localstatedir}/lib/pcp/
# files from -machines
rm -f %{buildroot}/%{_prefix}/share/metainfo/org.cockpit-project.cockpit-machines.metainfo.xml
# files from -storaged
rm -f %{buildroot}/%{_prefix}/share/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml
+# files from -docker
+rm -f %{buildroot}/%{_prefix}/share/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml
%endif
sed -i "s|%{buildroot}||" *.list
+%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
+# need this in SUSE as post build checks dislike stale symlinks
+install -m 644 -D /dev/null %{buildroot}/run/cockpit/motd
+%else
+%global _debugsource_packages 1
+%global _debuginfo_subpackages 0
+
+%define find_debug_info %{_rpmconfigdir}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_include_minidebuginfo:-m} %{?_find_debuginfo_dwz_opts} %{?_find_debuginfo_opts} %{?_debugsource_packages:-S debugsourcefiles.list} "%{_builddir}/%{?buildsubdir}"
+
+# Redefine how debug info is built to slip in our extra debug files
+%define __debug_install_post \
+ %{find_debug_info} \
+ cat debug.partial >> %{_builddir}/%{?buildsubdir}/debugfiles.list \
+%{nil}
+
# Build the package lists for debug package, and move debug files to installed locations
find %{buildroot}/usr/src/debug%{_datadir}/cockpit -type f -o -type l > debug.partial
sed -i "s|%{buildroot}/usr/src/debug||" debug.partial
sed -n 's/\.map\(\.gz\)\?$/\0/p' *.list >> debug.partial
sed -i '/\.map\(\.gz\)\?$/d' *.list
tar -C %{buildroot}/usr/src/debug -cf - . | tar -C %{buildroot} -xf -
+%endif
+# /suse_version
rm -rf %{buildroot}/usr/src/debug
# On RHEL kdump, networkmanager, selinux, and sosreport are part of the system package
@@ -275,17 +352,6 @@ rm -f %{buildroot}%{_datadir}/pixmaps/cockpit-sosreport.png
%find_lang cockpit
%endif
-%global _debugsource_packages 1
-%global _debuginfo_subpackages 0
-
-%define find_debug_info %{_rpmconfigdir}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_include_minidebuginfo:-m} %{?_find_debuginfo_dwz_opts} %{?_find_debuginfo_opts} %{?_debugsource_packages:-S debugsourcefiles.list} "%{_builddir}/%{?buildsubdir}"
-
-# Redefine how debug info is built to slip in our extra debug files
-%define __debug_install_post \
- %{find_debug_info} \
- cat debug.partial >> %{_builddir}/%{?buildsubdir}/debugfiles.list \
-%{nil}
-
# -------------------------------------------------------------------------------
# Basic Sub-packages
@@ -345,9 +411,11 @@ embed or extend Cockpit.
Summary: Cockpit admin interface package for configuring and troubleshooting a system
BuildArch: noarch
Requires: cockpit-bridge >= %{version}-%{release}
+%if !0%{?suse_version}
Requires: shadow-utils
+%endif
Requires: grep
-Requires: libpwquality
+Requires: /usr/bin/pwscore
Requires: /usr/bin/date
Provides: cockpit-shell = %{version}-%{release}
Provides: cockpit-systemd = %{version}-%{release}
@@ -360,10 +428,12 @@ Requires: NetworkManager >= 1.6
Provides: cockpit-kdump = %{version}-%{release}
Requires: kexec-tools
Recommends: 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} >= 29
# 0.7.0 (actually) supports task cancellation.
@@ -371,16 +441,17 @@ Provides: cockpit-sosreport = %{version}-%{release}
Recommends: (reportd >= 0.7.1 if abrt)
%endif
# NPM modules which are also available as packages
-Provides: bundled(js-jquery) = 3.4.1
-Provides: bundled(js-moment) = 2.24.0
+Provides: bundled(js-jquery) = 3.5.1
+Provides: bundled(js-moment) = 2.27.0
Provides: bundled(nodejs-flot) = 0.8.3
Provides: bundled(xstatic-bootstrap-datepicker-common) = 1.9.0
-Provides: bundled(xstatic-patternfly-common) = 3.59.4
+Provides: bundled(xstatic-patternfly-common) = 3.59.5
%description system
This package contains the Cockpit shell and system configuration interfaces.
%files system -f system.list
+%dir %{_datadir}/cockpit/shell/images
%package ws
Summary: Cockpit Web Service
@@ -410,10 +481,14 @@ authentication via sssd/FreeIPA.
%doc %{_mandir}/man8/remotectl.8.gz
%doc %{_mandir}/man8/pam_cockpit_cert.8.gz
%doc %{_mandir}/man8/pam_ssh_add.8.gz
+%dir %{_sysconfdir}/cockpit
%config(noreplace) %{_sysconfdir}/cockpit/ws-certs.d
%config(noreplace) %{_sysconfdir}/pam.d/cockpit
%config %{_sysconfdir}/issue.d/cockpit.issue
%config %{_sysconfdir}/motd.d/cockpit
+%ghost /run/cockpit/motd
+%ghost %dir /run/cockpit
+%dir %{_datadir}/cockpit/motd
%{_datadir}/cockpit/motd/update-motd
%{_datadir}/cockpit/motd/inactive.motd
%{_unitdir}/cockpit.service
@@ -430,8 +505,8 @@ authentication via sssd/FreeIPA.
%{_unitdir}/system-cockpithttps.slice
%{_prefix}/%{__lib}/tmpfiles.d/cockpit-tempfiles.conf
%{_sbindir}/remotectl
-%{_libdir}/security/pam_ssh_add.so
-%{_libdir}/security/pam_cockpit_cert.so
+%{pamdir}/pam_ssh_add.so
+%{pamdir}/pam_cockpit_cert.so
%{_libexecdir}/cockpit-ws
%{_libexecdir}/cockpit-wsinstance-factory
%{_libexecdir}/cockpit-tls
@@ -526,13 +601,15 @@ utility setroubleshoot to diagnose and resolve SELinux issues.
%endif
-%else # build basic packages
+#/ build basic packages
+%else
# RPM requires this
%description
Dummy package from building optional packages only; never install or publish me.
-%endif # build basic packages
+#/ build basic packages
+%endif
# -------------------------------------------------------------------------------
# Sub-packages that are optional extensions
@@ -548,13 +625,18 @@ Recommends: udisks2-iscsi >= 2.6
Recommends: device-mapper-multipath
Recommends: clevis-luks
Requires: %{__python3}
+%if 0%{?suse_version}
+Requires: python3-dbus-python
+%else
Requires: python3-dbus
+%endif
BuildArch: noarch
%description -n cockpit-storaged
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
@@ -569,7 +651,6 @@ 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
-%config(noreplace) %{_sysconfdir}/cockpit/cockpit.conf
%{_prefix}/%{__lib}/cockpit-test-assets
%package -n cockpit-machines
@@ -577,7 +658,11 @@ BuildArch: noarch
Summary: Cockpit user interface for virtual machines
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
@@ -596,7 +681,7 @@ If "virt-install" is installed, you can also create new virtual machines.
%package -n cockpit-pcp
Summary: Cockpit PCP integration
Requires: cockpit-bridge >= 134.x
-Requires: pcp
+Requires(post): pcp
%description -n cockpit-pcp
Cockpit support for reading PCP metrics and loading PCP archives.
@@ -613,21 +698,19 @@ Cockpit support for reading PCP metrics and loading PCP archives.
%if %{defined build_dashboard}
%package -n cockpit-dashboard
-Summary: Cockpit remote servers and dashboard
+Summary: Cockpit remote server dashboard
BuildArch: noarch
Requires: cockpit-ssh >= 135
Conflicts: cockpit-ws < 135
%description -n cockpit-dashboard
-Cockpit support for connecting to remote servers (through ssh),
-bastion hosts, and a basic dashboard.
+Cockpit page for showing performance graphs for up to 20 remote servers.
%files -n cockpit-dashboard -f dashboard.list
%endif
-%ifarch x86_64 %{arm} aarch64 ppc64le i686 s390x
-%if 0%{?fedora}
+%if 0%{?build_docker}
%package -n cockpit-docker
Summary: Cockpit user interface for Docker containers
Requires: cockpit-bridge >= 122
@@ -640,8 +723,7 @@ The Cockpit components for interacting with Docker and user interface.
This package is not yet complete.
%files -n cockpit-docker -f docker.list
-
-%endif
+%{_datadir}/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml
%endif
%package -n cockpit-packagekit
@@ -656,10 +738,50 @@ via PackageKit.
%files -n cockpit-packagekit -f packagekit.list
-%endif # build optional extension packages
+#/ build optional extension packages
+%endif
# The changelog is automatically generated and merged
%changelog
+* Wed Aug 19 2020 Matej Marusak - 224.2-1
+- lib: Include current directory in FileAutoComplete option listing (rhbz#1866995)
+- lib: Make sure that the expandable part of table rows has unique key (rhbz#1865821)
+
+* Wed Aug 05 2020 Matej Marusak - 224.1-1
+- machines: add padding to storage pools list cells (rhbz#1857500)
+- machines: Fix OS autodetection in create VM dialog (rhbz#1862333)
+- machines: Fix TypeError for OSRow in VM creation dialog (rhbz#1862106)
+
+* Thu Jul 23 2020 Martin Pitt - 224-1
+- Translation updates
+- Machines: Remove creation of user account (rhbz#1853918)
+- Machines: Fix reboot after PXE installation (rhbz#1853408, rhbz#1859045)
+- Machines: Fix notification for transient VMs (rhbz#1853649)
+- Machines: Make Storage/Network lists consistent with VM list (rhbz#1854257)
+- Machines: Fix close button on NIC Edit modal dialog header (rhbz#1857044)
+
+* Thu Jul 09 2020 Martin Pitt - 223-1
+- Translation updates
+
+* Fri Jun 26 2020 Matej Marusak - 222.1-1
+- Some integration test fixes for dist-git gating
+
+* Wed Jun 24 2020 Matej Marusak - 222-1
+- Localization updates
+
+* Sun Jun 14 2020 Martin Pitt - 221-1
+- machines: Remove --noreboot parameter to virt-install for VM installation
+ (rhbz#1750637)
+- Translation updates
+
+* Thu May 28 2020 Matej Marusak - 220-1
+- Storage: Improve side panel on details page
+
+* Thu May 14 2020 Matej Marusak - 219-1
+- New upstream release 219
+- Send key functionality for the virtual machines (rhbz#1693487)
+- Fix dnf-automatic timer parsing (rhbz#1829685)
+
* Thu Mar 12 2020 Martin Pitt - 211.3-1
- Fix CJK translations (rhbz#1807333)