diff --git a/.cockpit.metadata b/.cockpit.metadata index 62efc42..7e2e2e5 100644 --- a/.cockpit.metadata +++ b/.cockpit.metadata @@ -1 +1 @@ -b88c95b0f9b613e27161704c1e0145e7adaeab92 SOURCES/cockpit-209.tar.xz +dfb45151b16145a9b9fae12fb30dc2cd4370852e SOURCES/cockpit-222.1.tar.xz diff --git a/.gitignore b/.gitignore index 04b0ebe..9551321 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/cockpit-209.tar.xz +SOURCES/cockpit-222.1.tar.xz diff --git a/SPECS/cockpit.spec b/SPECS/cockpit.spec index 91d4795..060ee66 100644 --- a/SPECS/cockpit.spec +++ b/SPECS/cockpit.spec @@ -1,6 +1,6 @@ # This spec file has been automatically updated -Version: 209 -Release: 2%{?dist} +Version: 222.1 +Release: 1%{?dist} # # This file is maintained at the following location: # https://github.com/cockpit-project/cockpit/blob/master/tools/cockpit.spec @@ -50,6 +50,12 @@ Release: 2%{?dist} %define vdo_on_demand 1 %endif +%if 0%{?suse_version} +%define pamdir /%{_lib}/security +%else +%define pamdir %{_libdir}/security +%endif + Name: cockpit Summary: Web Console for Linux servers @@ -72,23 +78,35 @@ BuildRequires: autoconf automake 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 +119,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,12 +150,28 @@ 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} @@ -143,13 +181,15 @@ 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 @@ -164,9 +204,6 @@ touch dashboard.list echo '%dir %{_datadir}/cockpit/pcp' >> pcp.list find %{buildroot}%{_datadir}/cockpit/pcp -type f >> pcp.list -echo '%dir %{_datadir}/cockpit/realmd' >> system.list -find %{buildroot}%{_datadir}/cockpit/realmd -type f >> system.list - echo '%dir %{_datadir}/cockpit/tuned' >> system.list find %{buildroot}%{_datadir}/cockpit/tuned -type f >> system.list @@ -206,22 +243,18 @@ 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 # when not building basic packages, remove their files %if 0%{?build_basic} == 0 -for pkg in base1 branding motd kdump networkmanager realmd 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; do rm -r %{buildroot}/%{_datadir}/cockpit/$pkg rm -f %{buildroot}/%{_datadir}/metainfo/org.cockpit-project.cockpit-${pkg}.metainfo.xml done @@ -246,23 +279,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 that don't match the distro as they may contain +# stale symlinks +pushd %{buildroot}/%{_datadir}/cockpit/branding +ls -1 | (. /etc/os-release; grep -v "default\|$ID") | xargs rm -vr +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 @@ -278,17 +335,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 @@ -348,11 +394,12 @@ 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-realmd = %{version}-%{release} Provides: cockpit-shell = %{version}-%{release} Provides: cockpit-systemd = %{version}-%{release} Provides: cockpit-tuned = %{version}-%{release} @@ -364,10 +411,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. @@ -375,8 +424,8 @@ 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.25.3 Provides: bundled(nodejs-flot) = 0.8.3 Provides: bundled(xstatic-bootstrap-datepicker-common) = 1.9.0 Provides: bundled(xstatic-patternfly-common) = 3.59.4 @@ -385,6 +434,7 @@ Provides: bundled(xstatic-patternfly-common) = 3.59.4 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 @@ -414,10 +464,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 @@ -434,8 +488,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 @@ -530,13 +584,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 @@ -552,13 +608,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 @@ -573,7 +634,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 @@ -581,7 +641,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 @@ -600,7 +664,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. @@ -617,21 +681,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 @@ -644,8 +706,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 @@ -660,10 +721,73 @@ 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 +* Fri Jun 26 2020 Martin Pitt - 222.1-1 +- Some integration test fixes for dist-git gating + +* Wed Jun 24 2020 Matej Marusak - 222-1 +- Logs: More flexible text filters +- Services, Dashboard: Hide some buttons when access is limited +- Webserver: Lock down cockpit.service privileges +- Localization updates (rhbz#1820538) + +* Mon Jun 15 2020 Martin Pitt - 221.1-1 +- Put back missing base1/patternfly.css +- Services: Don't offer 'Start Service' in Limited Access mode + +* Sun Jun 14 2020 Martin Pitt - 221-1 +- Support for Cross-Origin-Resource-Policy +- Accounts: Some buttons are hidden when access is limited +- Developers: Importing "base1/patternfly.css" is deprecated +- Translation updates (rhbz#1820538) + +* Thu May 28 2020 Matej Marusak - 220-1 +- New navigation with integrated switching of hosts +- Logs: Inline help for filtering +- Fix cockpit-system AppStream dependency (rhbz#1838003) + +* Wed May 13 2020 Matej Marusak - 219-1 +- Rebase to upstream version 219 +- Accept upper-case login names for ssh/polkit agent challenges (rhbz#1825749) +- Show last/failed login (rhbz#1784772) +- Modernize services page (rhbz#1791193) +- Search in journal (rhbz#1710731) +- The default mode is not consistent with the mode in the created bond (rhbz#1817948) +- Fix deadlock in channel pressure handling (rhbz#1751783) + +* Thu Mar 12 2020 Martin Pitt - 211.3-1 +- Fix CJK translations (rhbz#1807856) + +* Mon Feb 24 2020 Martin Pitt - 211.2-2 +- Fix weak dependencies of cockpit/cockpit-system rhbz#1803858 + +* Wed Feb 19 2020 Matej Marusak - 211.2-1 +- Users: Fix reboot warnings of changed roles +- Translation updates (rhbz#1754958) +- Fix CPU mitigations to recognize kernel options at the beginning of line + +* Sun Jan 26 2020 Martin Pitt - 211.1-1 + +- system: Fix graph layout across all browsers (rhbz#1792623) +- websocket: Fix unaligned access in send_prefixed_message_rfc6455() + +* Thu Jan 23 2020 Martin Pitt - 211-1 +- Fix HTTPS requests > 4 KiB (rhbz#1785509) +- Better support for various TLS certificate formats +- Switch from Zanata to Weblate +- Overview layout optimizations +- Translation updates (rhbz#1754958) + +* Thu Jan 09 2020 Martin Pitt - 210-1 +- Overview: Add CPU utilization to usage card +- Dashboard: Support SSH identity unlocking when adding new machines +- SElinux: Introduce an Ansible automation script +- Translation updates (partially fixes rhbz#1754958) + * Mon Dec 16 2019 Matej Marusak - 209-2 - Remove SELinux policy hack from spec file