From d6846f07e018a41bb2f32252cb4dea893f37746f Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Mar 30 2021 13:26:44 +0000 Subject: import cockpit-238.1-1.el8 --- diff --git a/.cockpit.metadata b/.cockpit.metadata index 7e2e2e5..1fa6933 100644 --- a/.cockpit.metadata +++ b/.cockpit.metadata @@ -1 +1 @@ -dfb45151b16145a9b9fae12fb30dc2cd4370852e SOURCES/cockpit-222.1.tar.xz +e96e3ae84e9873afa290d6e4dd861021d93bc341 SOURCES/cockpit-238.1.tar.xz diff --git a/.gitignore b/.gitignore index 9551321..b693518 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/cockpit-222.1.tar.xz +SOURCES/cockpit-238.1.tar.xz diff --git a/SPECS/cockpit.spec b/SPECS/cockpit.spec index 060ee66..478726c 100644 --- a/SPECS/cockpit.spec +++ b/SPECS/cockpit.spec @@ -1,7 +1,23 @@ # This spec file has been automatically updated -Version: 222.1 +Version: 238.1 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 # @@ -24,26 +40,8 @@ Release: 1%{?dist} %define rhel %{centos} %endif -%if "%{!?__python3:1}" -%define __python3 /usr/bin/python3 -%endif - -# for testing this already gets set in fedora.install, as we want the target -# VERSION_ID, not the mock chroot's one -%if "%{!?os_version_id:1}" -%define os_version_id %(. /etc/os-release; echo $VERSION_ID) -%endif - %define _hardened_build 1 -# define to build the dashboard -%define build_dashboard 1 - -# build basic packages like cockpit-bridge -%define build_basic 1 -# build optional extensions like cockpit-docker -%define build_optional 0 - %define __lib lib %if 0%{?rhel} @@ -63,11 +61,30 @@ License: LGPLv2+ URL: https://cockpit-project.org/ %if %{defined wip} -Source0: cockpit-%{version}.tar.gz +Source0: cockpit-%{version}.tar.xz %else Source0: https://github.com/cockpit-project/cockpit/releases/download/%{version}/cockpit-%{version}.tar.xz %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-{machines,pcp}) +# 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 +%if 0%{?rhel} == 8 && 0%{?epel} == 0 + +%if "%{name}" == "cockpit" +%define build_basic 1 +%define build_optional 0 +%else +%define build_basic 0 +%define build_optional 1 +%endif + +%else +%define build_basic 1 +%define build_optional 1 +%endif + BuildRequires: gcc BuildRequires: pkgconfig(gio-unix-2.0) BuildRequires: pkgconfig(json-glib-1.0) @@ -75,9 +92,10 @@ 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} +%if 0%{?build_basic} BuildRequires: libssh-devel >= 0.8.5 %endif BuildRequires: openssl-devel @@ -88,7 +106,7 @@ BuildRequires: libxslt-devel BuildRequires: glib-networking BuildRequires: sed -BuildRequires: glib2-devel >= 2.37.4 +BuildRequires: glib2-devel >= 2.50.0 # this is for runtimedir in the tls proxy ace21c8879 BuildRequires: systemd-devel >= 235 %if 0%{?suse_version} @@ -123,13 +141,6 @@ 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) Suggests: cockpit-selinux @@ -154,6 +165,9 @@ exec 2>&1 --docdir=%_defaultdocdir/%{name} \ %endif --with-pamdir='%{pamdir}' \ +%if 0%{?build_basic} == 0 + --disable-ssh \ +%endif %{?vdo_on_demand:--with-vdo-package='"vdo"'} make -j4 %{?extra_flags} all @@ -174,33 +188,28 @@ exec 2>&1 %{?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 -D -p -m 644 AUTHORS COPYING README.md %{buildroot}%{_docdir}/cockpit/ +# 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 echo '%dir %{_datadir}/cockpit/base1' > base.list echo '%dir %{_datadir}/cockpit/base1/fonts' >> base.list -find %{buildroot}%{_datadir}/cockpit/base1 -type f >> 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 echo '%dir %{_datadir}/cockpit/ssh' >> base.list find %{buildroot}%{_datadir}/cockpit/ssh -type f >> base.list echo '%{_libexecdir}/cockpit-ssh' >> base.list -%if %{defined build_dashboard} -echo '%dir %{_datadir}/cockpit/dashboard' >> dashboard.list -find %{buildroot}%{_datadir}/cockpit/dashboard -type f >> dashboard.list -%else -rm -rf %{buildroot}/%{_datadir}/cockpit/dashboard -touch dashboard.list -%endif - echo '%dir %{_datadir}/cockpit/pcp' >> pcp.list find %{buildroot}%{_datadir}/cockpit/pcp -type f >> pcp.list @@ -216,6 +225,9 @@ find %{buildroot}%{_datadir}/cockpit/systemd -type f >> system.list echo '%dir %{_datadir}/cockpit/users' >> system.list 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 find %{buildroot}%{_datadir}/cockpit/kdump -type f >> kdump.list @@ -243,25 +255,19 @@ 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 -%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 -rm -f %{buildroot}/%{_prefix}/share/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml -touch docker.list -%endif +echo '%dir %{_datadir}/cockpit/static' > static.list +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 ssh static systemd tuned users; 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 locale man pixmaps polkit-1; do rm -r %{buildroot}/%{_datadir}/$data done -for lib in systemd tmpfiles.d firewalld; do +for lib in systemd tmpfiles.d; do rm -r %{buildroot}/%{_prefix}/%{__lib}/$lib done for libexec in cockpit-askpass cockpit-session cockpit-ws cockpit-tls cockpit-wsinstance-factory cockpit-desktop; do @@ -275,7 +281,7 @@ rm -f %{buildroot}%{_datadir}/metainfo/cockpit.appdata.xml # when not building optional packages, remove their files %if 0%{?build_optional} == 0 -for pkg in apps dashboard docker machines packagekit pcp playground storaged; do +for pkg in apps machines packagekit pcp playground storaged; do rm -rf %{buildroot}/%{_datadir}/cockpit/$pkg done # files from -tests @@ -286,17 +292,15 @@ rm -r %{buildroot}/%{_libexecdir}/cockpit-pcp %{buildroot}/%{_localstatedir}/lib 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 that don't match the distro as they may contain -# stale symlinks +# remove brandings with stale symlinks. Means they don't match +# the distro. pushd %{buildroot}/%{_datadir}/cockpit/branding -ls -1 | (. /etc/os-release; grep -v "default\|$ID") | xargs rm -vr +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 @@ -306,18 +310,6 @@ install -m 644 -D /dev/null %{buildroot}/run/cockpit/motd %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 @@ -361,10 +353,15 @@ troubleshooting, interactive command-line sessions, and more. Summary: Cockpit bridge server-side component Requires: glib-networking Provides: cockpit-ssh = %{version}-%{release} -# cockpit-ssh moved from dashboard to bridge in 171 -Conflicts: cockpit-dashboard < 170.x # 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 +Conflicts: cockpit-storaged < 233 +Conflicts: cockpit-system < 233 +Conflicts: cockpit-tests < 233 +Conflicts: cockpit-docker < 233 %description bridge The Cockpit bridge component installed server side and runs commands on the @@ -404,13 +401,14 @@ Provides: cockpit-shell = %{version}-%{release} Provides: cockpit-systemd = %{version}-%{release} Provides: cockpit-tuned = %{version}-%{release} Provides: cockpit-users = %{version}-%{release} +Obsoletes: cockpit-dashboard %if 0%{?rhel} Provides: cockpit-networkmanager = %{version}-%{release} Obsoletes: cockpit-networkmanager Requires: NetworkManager >= 1.6 Provides: cockpit-kdump = %{version}-%{release} Requires: kexec-tools -Recommends: polkit +Recommends: (sudo or polkit) Recommends: PackageKit Recommends: NetworkManager-team Recommends: setroubleshoot-server >= 3.3.3 @@ -425,10 +423,9 @@ Recommends: (reportd >= 0.7.1 if abrt) %endif # NPM modules which are also available as packages Provides: bundled(js-jquery) = 3.5.1 -Provides: bundled(js-moment) = 2.25.3 -Provides: bundled(nodejs-flot) = 0.8.3 +Provides: bundled(js-moment) = 2.29.1 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. @@ -440,15 +437,11 @@ This package contains the Cockpit shell and system configuration interfaces. Summary: Cockpit Web Service Requires: glib-networking Requires: openssl -Requires: glib2 >= 2.37.4 +Requires: glib2 >= 2.50.0 Conflicts: firewalld < 0.6.0-1 Recommends: sscg >= 2.3 Recommends: system-logos -Requires: systemd >= 235 Suggests: sssd-dbus -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd %description ws The Cockpit Web Service listens on the network, and authenticates users. @@ -456,7 +449,7 @@ 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 cockpit.lang +%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 @@ -495,8 +488,6 @@ authentication via sssd/FreeIPA. %{_libexecdir}/cockpit-tls %{_libexecdir}/cockpit-desktop %attr(4750, root, cockpit-wsinstance) %{_libexecdir}/cockpit-session -%attr(775, -, wheel) %{_localstatedir}/lib/cockpit -%{_datadir}/cockpit/static %{_datadir}/cockpit/branding %pre ws @@ -506,6 +497,7 @@ 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 %post ws +%tmpfiles_create cockpit-tempfiles.conf %systemd_post cockpit.socket # firewalld only partially picks up changes to its services files without this test -f %{_bindir}/firewall-cmd && firewall-cmd --reload --quiet || true @@ -674,46 +666,14 @@ Cockpit support for reading PCP metrics and loading PCP archives. %{_localstatedir}/lib/pcp/config/pmlogconf/tools/cockpit %post -n cockpit-pcp -# HACK - https://bugzilla.redhat.com/show_bug.cgi?id=1185764 -# We can't use "systemctl reload-or-try-restart" since systemctl might -# be out of sync with reality. -/usr/share/pcp/lib/pmlogger condrestart - -%if %{defined build_dashboard} -%package -n cockpit-dashboard -Summary: Cockpit remote server dashboard -BuildArch: noarch -Requires: cockpit-ssh >= 135 -Conflicts: cockpit-ws < 135 - -%description -n cockpit-dashboard -Cockpit page for showing performance graphs for up to 20 remote servers. - -%files -n cockpit-dashboard -f dashboard.list - -%endif - -%if 0%{?build_docker} -%package -n cockpit-docker -Summary: Cockpit user interface for Docker containers -Requires: cockpit-bridge >= 122 -Requires: cockpit-shell >= 122 -Requires: (docker or moby-engine or docker-ce) -Requires: %{__python3} - -%description -n cockpit-docker -The Cockpit components for interacting with Docker and user interface. -This package is not yet complete. - -%files -n cockpit-docker -f docker.list -%{_datadir}/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml -%endif +systemctl reload-or-try-restart pmlogger %package -n cockpit-packagekit Summary: Cockpit user interface for packages BuildArch: noarch Requires: cockpit-bridge >= 186 Requires: PackageKit +Recommends: python3-tracer %description -n cockpit-packagekit The Cockpit components for installing OS updates and Cockpit add-ons, @@ -726,6 +686,58 @@ via PackageKit. # The changelog is automatically generated and merged %changelog +* Mon Feb 22 2021 Martin Pitt - 238.1-1 +- Several UI alignment fixes +- Re-drop unit tests from built packages +- Metrics: Don't show swap column when no swap is present +- Metrics: Don't show duplicate events + +* Wed Feb 17 2021 Martin Pitt - 238-1 +- Web server: Preserve permissions of administrator-provided certificates +- System: Performance page shows busiest CPU cores + +* Fri Feb 05 2021 Martin Pitt - 237-1 +- SSH connections to remote machines are only opened when necessary + +* Fri Jan 22 2021 Matej Marusak - 236-1 +- fslist channels: Include properties of changed files +- Internal stabilization work + +* Fri Jan 08 2021 Martin Pitt - 235-1 +- Login: Improved handling of SSH host keys +- Overview: Editable motd +- Adjust tests for sos 4.x to fix gating tests (rhbz#1895912) + +* Mon Dec 14 2020 Katerina Koukiou - 234-1 +- Improved login page +- Improved bridge code after feedback from recent coverity scanning + +* Fri Nov 27 2020 Katerina Koukiou - 233.1-1 +- Non-admin users no longer see Cockpit in motd (rhbz#1872562) +- Improved host editing +- Replace system's graph page with a completely new USE method page +- Logging of remote IP addresses +- shell: Any page can be the shell +- Accounts: Allow setting weak passwords (rhbz#1652390) +- Terminal: Fix issue with prompt not returning when clicking reset button in disoconnected session (rhbz#1897430) + +* 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 +- ws: Add key usage and constraints to self-signed server certificate (rhbz#1859812) + +* Thu Jul 23 2020 Martin Pitt - 224-1 +- More translation updates (rhbz#1820538) +- Some bug fixes on Services page + +* Thu Jul 09 2020 Martin Pitt - 223-1 +- Webserver: Standard-conformant lifetime of web server Certificate +- Support certificate authentication against Active Directory +- Fix cockpit-desktop privileges (rhbz#1841104) +- Translation updates (rhbz#1820538) + * Fri Jun 26 2020 Martin Pitt - 222.1-1 - Some integration test fixes for dist-git gating