diff --git a/.cockpit.metadata b/.cockpit.metadata deleted file mode 100644 index 4b1bbf5..0000000 --- a/.cockpit.metadata +++ /dev/null @@ -1,2 +0,0 @@ -2e5a8bc37de3a932441898410b3a42fa1310d28b SOURCES/cockpit-310.4.tar.xz -a37e1d6ad4b1b25729682c54ab7e4dcdcfd894a7 SOURCES/cockpit.css.gz diff --git a/.gitignore b/.gitignore index 506a1a5..527bf3c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -SOURCES/cockpit-310.4.tar.xz -SOURCES/cockpit.css.gz +cockpit-334.1.tar.xz diff --git a/SPECS/cockpit.spec b/cockpit.spec similarity index 87% rename from SPECS/cockpit.spec rename to cockpit.spec index 9306d9d..1458fb0 100644 --- a/SPECS/cockpit.spec +++ b/cockpit.spec @@ -12,7 +12,7 @@ # 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 . +# along with Cockpit; If not, see . # # This file is maintained at the following location: @@ -49,51 +49,22 @@ Summary: Web Console for Linux servers License: LGPL-2.1-or-later URL: https://cockpit-project.org/ -Version: 310.4 +Version: 334.1 Release: 1%{?dist} Source0: https://github.com/cockpit-project/cockpit/releases/download/%{version}/cockpit-%{version}.tar.xz -Source1: cockpit.css.gz -# 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). -# 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 && !0%{?build_all} - -%if "%{name}" == "cockpit" -%define build_basic 1 -%define build_optional 0 -%else -%define build_basic 0 -%define build_optional 1 +%if 0%{?fedora} >= 41 || 0%{?rhel} +ExcludeArch: %{ix86} %endif -%else -%define build_basic 1 -%define build_optional 1 +%define enable_multihost 1 +%if 0%{?fedora} >= 41 || 0%{?rhel} >= 10 +%define enable_multihost 0 %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 %define selinuxtype targeted %define selinux_configure_arg --enable-selinux-policy=%{selinuxtype} -%endif BuildRequires: gcc BuildRequires: pkgconfig(gio-unix-2.0) @@ -104,16 +75,7 @@ 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: 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 BuildRequires: openssl-devel BuildRequires: gnutls-devel >= 3.4.3 BuildRequires: zlib-devel @@ -127,19 +89,10 @@ 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 @@ -162,7 +115,7 @@ Requires: cockpit-system # Optional components Recommends: (cockpit-storaged if udisks2) Recommends: (cockpit-packagekit if dnf) -Suggests: cockpit-pcp +Suggests: python3-pcp %if 0%{?rhel} == 0 Recommends: (cockpit-networkmanager if NetworkManager) @@ -174,23 +127,27 @@ Suggests: cockpit-selinux Requires: subscription-manager-cockpit %endif +BuildRequires: python3-devel +BuildRequires: python3-pip +%if 0%{?rhel} == 0 && !0%{?suse_version} +# All of these are only required for running pytest (which we only do on Fedora) +BuildRequires: procps-ng +BuildRequires: python3-pytest-asyncio +BuildRequires: python3-pytest-timeout +%endif + %prep %setup -q -n cockpit-%{version} %build %configure \ %{?selinux_configure_arg} \ - --with-cockpit-user=cockpit-ws \ - --with-cockpit-ws-instance-user=cockpit-wsinstance \ %if 0%{?suse_version} --docdir=%_defaultdocdir/%{name} \ %endif --with-pamdir='%{pamdir}' \ -%if 0%{?build_basic} == 0 - --disable-ssh \ -%endif -%if %{build_pcp} == 0 - --disable-pcp \ +%if %{enable_multihost} + --enable-multihost \ %endif %make_build @@ -198,18 +155,18 @@ Requires: subscription-manager-cockpit %check make -j$(nproc) check +%if 0%{?rhel} == 0 +export NO_QUNIT=1 +%pytest +%endif + %install %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 install -D -p -m 644 AUTHORS COPYING README.md %{buildroot}%{_docdir}/cockpit/ -# RHEL 8 specific backwards compat API -install -m 644 %{SOURCE1} %{buildroot}%{_datadir}/cockpit/base1/ -ln -s cockpit.css.gz %{buildroot}%{_datadir}/cockpit/base1/patternfly.css.gz - # 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 @@ -217,16 +174,6 @@ echo '%dir %{_datadir}/cockpit/base1' >> 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 -find %{buildroot}%{_datadir}/cockpit/pcp -type f >> pcp.list -%endif echo '%dir %{_datadir}/cockpit/shell' >> system.list find %{buildroot}%{_datadir}/cockpit/shell -type f >> system.list @@ -261,50 +208,10 @@ find %{buildroot}%{_datadir}/cockpit/apps -type f >> packagekit.list echo '%dir %{_datadir}/cockpit/selinux' > selinux.list 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 - echo '%dir %{_datadir}/cockpit/static' > static.list echo '%dir %{_datadir}/cockpit/static/fonts' >> 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 static systemd 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 - 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 -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 -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 -%if 0%{?build_optional} == 0 -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 -# files from -pcp -rm -r %{buildroot}/%{_libexecdir}/cockpit-pcp %{buildroot}/%{_localstatedir}/lib/pcp/ -# files from -storaged -rm -f %{buildroot}/%{_prefix}/share/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml -%endif - sed -i "s|%{buildroot}||" *.list %if ! 0%{?suse_version} @@ -320,17 +227,15 @@ rm -rf %{buildroot}/usr/src/debug # On RHEL kdump, networkmanager, selinux, and sosreport are part of the system package %if 0%{?rhel} 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 +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}/icons/hicolor/64x64/apps/cockpit-sosreport.png %endif # ------------------------------------------------------------------------------- -# Basic Sub-packages - -%if 0%{?build_basic} +# Sub-packages %description The Cockpit Web Console enables users to administer GNU/Linux servers using a @@ -343,22 +248,13 @@ troubleshooting, interactive command-line sessions, and more. %{_docdir}/cockpit/AUTHORS %{_docdir}/cockpit/COPYING %{_docdir}/cockpit/README.md -%{_datadir}/metainfo/cockpit.appdata.xml -%{_datadir}/pixmaps/cockpit.png +%{_datadir}/metainfo/org.cockpit_project.cockpit.appdata.xml +%{_datadir}/icons/hicolor/128x128/apps/cockpit.png %doc %{_mandir}/man1/cockpit.1.gz %package bridge Summary: Cockpit bridge server-side component -Requires: glib-networking -Provides: cockpit-ssh = %{version}-%{release} -# 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 @@ -368,6 +264,7 @@ system on behalf of the web based user interface. %doc %{_mandir}/man1/cockpit-bridge.1.gz %{_bindir}/cockpit-bridge %{_libexecdir}/cockpit-askpass +%{python3_sitelib}/%{name}* %package doc Summary: Cockpit deployment and developer guide @@ -398,105 +295,52 @@ Provides: cockpit-shell = %{version}-%{release} Provides: cockpit-systemd = %{version}-%{release} 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 +Recommends: /usr/bin/kdumpctl Suggests: NetworkManager-team +Suggests: python3-pcp Provides: cockpit-kdump = %{version}-%{release} Provides: cockpit-networkmanager = %{version}-%{release} Provides: cockpit-selinux = %{version}-%{release} Provides: cockpit-sosreport = %{version}-%{release} %endif -%if 0%{?fedora} -Recommends: (reportd 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(@patternfly/patternfly)) = 5.4.2 +Provides: bundled(npm(@patternfly/react-core)) = 5.4.12 +Provides: bundled(npm(@patternfly/react-icons)) = 5.4.2 +Provides: bundled(npm(@patternfly/react-styles)) = 5.4.1 +Provides: bundled(npm(@patternfly/react-table)) = 5.4.14 +Provides: bundled(npm(@patternfly/react-tokens)) = 5.4.1 +Provides: bundled(npm(@xterm/addon-canvas)) = 0.7.0 +Provides: bundled(npm(@xterm/xterm)) = 5.5.0 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(attr-accept)) = 2.2.5 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(dequal)) = 2.0.3 +Provides: bundled(npm(file-selector)) = 2.1.2 +Provides: bundled(npm(focus-trap)) = 7.6.2 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-dom)) = 18.3.1 +Provides: bundled(npm(react-dropzone)) = 14.3.5 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(react)) = 18.3.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(scheduler)) = 0.23.2 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 +Provides: bundled(npm(throttle-debounce)) = 5.0.2 +Provides: bundled(npm(tslib)) = 2.8.1 +Provides: bundled(npm(uuid)) = 11.0.5 %description system This package contains the Cockpit shell and system configuration interfaces. @@ -511,12 +355,12 @@ Requires: openssl Requires: glib2 >= 2.50.0 Requires: (selinux-policy >= %{_selinux_policy_version} if selinux-policy-%{selinuxtype}) Requires(post): (policycoreutils if selinux-policy-%{selinuxtype}) -Conflicts: firewalld < 0.6.0-1 Recommends: sscg >= 2.3 Recommends: system-logos Suggests: sssd-dbus >= 2.6.2 # for cockpit-desktop Suggests: python3 +Obsoletes: cockpit-tests < 331 # prevent hard python3 dependency for cockpit-desktop, it falls back to other browsers %global __requires_exclude_from ^%{_libexecdir}/cockpit-client$ @@ -540,20 +384,24 @@ authentication via sssd/FreeIPA. %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 +%dir %{_datadir}/cockpit/issue +%{_datadir}/cockpit/issue/update-issue +%{_datadir}/cockpit/issue/inactive.issue %{_unitdir}/cockpit.service -%{_unitdir}/cockpit-motd.service +%{_unitdir}/cockpit-issue.service %{_unitdir}/cockpit.socket +%{_unitdir}/cockpit-session-socket-user.service +%{_unitdir}/cockpit-session.socket +%{_unitdir}/cockpit-session@.service %{_unitdir}/cockpit-wsinstance-http.socket %{_unitdir}/cockpit-wsinstance-http.service %{_unitdir}/cockpit-wsinstance-https-factory.socket %{_unitdir}/cockpit-wsinstance-https-factory@.service %{_unitdir}/cockpit-wsinstance-https@.socket %{_unitdir}/cockpit-wsinstance-https@.service +%{_unitdir}/cockpit-wsinstance-socket-user.service %{_unitdir}/system-cockpithttps.slice -%{_prefix}/%{__lib}/tmpfiles.d/cockpit-tempfiles.conf +%{_prefix}/%{__lib}/tmpfiles.d/cockpit-ws.conf %{pamdir}/pam_ssh_add.so %{pamdir}/pam_cockpit_cert.so %{_libexecdir}/cockpit-ws @@ -564,7 +412,7 @@ authentication via sssd/FreeIPA. %{_libexecdir}/cockpit-desktop %{_libexecdir}/cockpit-certificate-ensure %{_libexecdir}/cockpit-certificate-helper -%attr(4750, root, cockpit-wsinstance) %{_libexecdir}/cockpit-session +%{_libexecdir}/cockpit-session %{_datadir}/cockpit/branding %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2 %{_mandir}/man8/%{name}_session_selinux.8cockpit.* @@ -572,11 +420,6 @@ authentication via sssd/FreeIPA. %ghost %{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name} %pre ws -getent group cockpit-ws >/dev/null || groupadd -r cockpit-ws -getent passwd cockpit-ws >/dev/null || useradd -r -g cockpit-ws -d /nonexisting -s /sbin/nologin -c "User for cockpit web service" cockpit-ws -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 %{_sbindir}/selinuxenabled 2>/dev/null; then %selinux_relabel_pre -s %{selinuxtype} fi @@ -591,16 +434,24 @@ fi # 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 + ln -s ../../run/cockpit/issue /etc/motd.d/cockpit + ln -s ../../run/cockpit/issue /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 fi -%tmpfiles_create cockpit-tempfiles.conf +# on upgrades, adjust motd/issue links to changed target if they still exist (changed in 331) +if [ "$1" = 2 ]; then + if [ "$(readlink /etc/motd.d/cockpit 2>/dev/null)" = "../../run/cockpit/motd" ]; then + ln -sfn ../../run/cockpit/issue /etc/motd.d/cockpit + fi + if [ "$(readlink /etc/issue.d/cockpit.issue 2>/dev/null)" = "../../run/cockpit/motd" ]; then + ln -sfn ../../run/cockpit/issue /etc/issue.d/cockpit.issue + fi +fi + +%tmpfiles_create cockpit-ws.conf %systemd_post cockpit.socket cockpit.service # firewalld only partially picks up changes to its services files without this test -f %{_bindir}/firewall-cmd && firewall-cmd --reload --quiet || true @@ -613,6 +464,11 @@ if test -f %{_sysconfdir}/pam.d/cockpit && grep -q pam_cockpit_cert %{_sysconfd echo '**** WARNING:' fi +# remove obsolete system user on upgrade (replaced with DynamicUser in version 330) +if getent passwd cockpit-wsinstance >/dev/null; then + userdel cockpit-wsinstance +fi + %preun ws %systemd_preun cockpit.socket cockpit.service @@ -632,14 +488,14 @@ fi Summary: Cockpit user interface for kernel crash dumping Requires: cockpit-bridge >= %{required_base} Requires: cockpit-shell >= %{required_base} -Requires: kexec-tools +Requires: /usr/bin/kdumpctl BuildArch: noarch %description kdump The Cockpit component for configuring kernel crash dumping. %files kdump -f kdump.list -%{_datadir}/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml +%{_datadir}/metainfo/org.cockpit_project.cockpit_kdump.metainfo.xml %package sosreport Summary: Cockpit user interface for diagnostic reports @@ -653,8 +509,8 @@ The Cockpit component for creating diagnostic reports with the sosreport tool. %files sosreport -f sosreport.list -%{_datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml -%{_datadir}/pixmaps/cockpit-sosreport.png +%{_datadir}/metainfo/org.cockpit_project.cockpit_sosreport.metainfo.xml +%{_datadir}/icons/hicolor/64x64/apps/cockpit-sosreport.png %package networkmanager Summary: Cockpit user interface for networking, using NetworkManager @@ -669,7 +525,7 @@ 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 +%{_datadir}/metainfo/org.cockpit_project.cockpit_networkmanager.metainfo.xml %endif @@ -687,25 +543,10 @@ This package contains the Cockpit user interface integration with the utility setroubleshoot to diagnose and resolve SELinux issues. %files selinux -f selinux.list -%{_datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml +%{_datadir}/metainfo/org.cockpit_project.cockpit_selinux.metainfo.xml %endif -#/ build basic packages -%else - -# RPM requires this -%description -Dummy package from building optional packages only; never install or publish me. - -#/ build basic packages -%endif - -# ------------------------------------------------------------------------------- -# Sub-packages that are optional extensions - -%if 0%{?build_optional} - %package -n cockpit-storaged Summary: Cockpit user interface for storage, using udisks Requires: cockpit-shell >= %{required_base} @@ -729,42 +570,14 @@ BuildArch: noarch The Cockpit component for managing storage. This package uses udisks. %files -n cockpit-storaged -f storaged.list -%{_datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml +%{_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: openssh-clients -Provides: cockpit-test-assets = %{version}-%{release} +%post storaged -%description -n cockpit-tests -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 - -%if %{build_pcp} - -%package -n cockpit-pcp -Summary: Cockpit PCP integration -Requires: cockpit-bridge >= %{required_base} -Requires: pcp - -%description -n cockpit-pcp -Cockpit support for reading PCP metrics and loading PCP archives. - -%files -n cockpit-pcp -f pcp.list -%{_libexecdir}/cockpit-pcp -%{_localstatedir}/lib/pcp/config/pmlogconf/tools/cockpit - -%post -n cockpit-pcp -systemctl reload-or-try-restart pmlogger - -%endif +# version 332 moved the btrfs temp mounts db to /run +if [ "$1" = 2 ] && [ -d /var/lib/cockpit/btrfs ]; then + rm -rf --one-file-system /var/lib/cockpit/btrfs || true +fi %package -n cockpit-packagekit Summary: Cockpit user interface for packages @@ -781,23 +594,138 @@ via PackageKit. %files -n cockpit-packagekit -f packagekit.list -#/ build optional extension packages -%endif - # The changelog is automatically generated and merged %changelog -* Tue Apr 02 2024 Martin Pitt - 310.4-1 -- sosreport: Fix command injection with crafted report names [CVE-2024-2947] - (jira#RHEL-30452) +* Mon Mar 10 2025 Martin Pitt - 334.1-1 +- translation updates (RHEL-80291) -* Thu Feb 15 2024 Martin Pitt - 310.3-1 -- Translation updates (jira#RHEL-16681) - Lots of bug fixes +* Thu Feb 13 2025 Packit - 333-1 +- various bug fixes and improvements + +* Sat Feb 01 2025 Björn Esser - 332-2 +- Add explicit BR: libxcrypt-devel + +* Wed Jan 29 2025 Packit - 332-1 +- containers/ws: Include cockpit-files +- login: Beibooting to all supported OSes +- metrics: Show system boots in metrics + +* Thu Jan 16 2025 Fedora Release Engineering - 331-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Dec 18 2024 Packit - 331-1 +- ws: Prevent search engine indexing with robots.txt +- container/ws: Support using an external SSH agent + +* Wed Dec 04 2024 Packit - 330-1 +- Web server: Increased sandboxing, setuid removal, bootc support +- Development: New install mode using systemd-sysext +- ws container: Move to Fedora 41 + +* Mon Nov 25 2024 Packit - 329.1-1 +- cockpit.js: Put back cockpit.{resolve,reject}() to fix subscription-manager-cockpit + +* Wed Nov 20 2024 Packit - 329-1 +- Shell: Extra warnings when connecting to remote hosts + +* Wed Nov 06 2024 Packit - 328-1 +- Bug fixes and performance improvements + +* Wed Oct 23 2024 Packit - 327-1 +- Connect to similar servers without Cockpit installed + +* Wed Oct 09 2024 Packit - 326-1 +- cockpit-pcp package is now obsolete +- cockpit/ws container: Connect to servers without installed Cockpit +- cockpit/ws container: Support host specific SSH keys +- Storage: Support for Stratis filesystem sizes and limits + +* Wed Sep 25 2024 Packit - 325-1 +- storage: Expose Stratis virtual filesystem sizes +- client: Properly handle unknown SSH host keys + +* Wed Sep 04 2024 Packit - 324-1 +- Bug fixes and performance improvements + +* Tue Aug 20 2024 Packit - 323-1 +- metrics: Install valkey instead of redis on RHEL/CentOS 10 +- login: Prevent multiple logins in a single browser session +- Update documentation links + +* Thu Aug 08 2024 Packit - 322-1 +- shell: Deprecate host switcher + +* Wed Jul 17 2024 Fedora Release Engineering - 321-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jul 10 2024 Packit - 321-1 +- Bug fixes and performance improvements + +* Wed Jul 03 2024 Packit - 320-1 +- pam-ssh-add: Fix insecure killing of session ssh-agent [CVE-2024-6126] +- sosreport: Read report directory from sos config (fix page on Debian/Ubuntu) + +* Wed Jun 26 2024 Packit - 319-1 +- List btrfs snapshots in subvolume detail view + +* Mon Jun 17 2024 Martin Pitt - 318-2 +- Rebuilt for Python 3.13 + +* Wed Jun 12 2024 Packit - 318-1 +- Storage: Extra confirmation before deleting non-empty partitions in Anaconda's Web UI +- Discontinue Intel 32-bit support in Fedora, CentOS, and RHEL +- cockpit.js: Get user primary group ID + +* Sun Jun 09 2024 Python Maint - 317-2 +- Rebuilt for Python 3.13 + +* Wed May 29 2024 Packit - 317-1 +- webserver: System user changes +- metrics: Prefer valkey over redis on Fedora + +* Thu Apr 25 2024 Packit - 316-1 +- cockpit.js API: Fix format_bytes() units + +* Wed Apr 10 2024 Packit - 315-1 +- systemd: Check proper ssh service unit on Debian/Ubuntu +- Translation updates + +* Thu Mar 28 2024 Packit - 314-1 +- Diagnostic reports: Fix command injection vulnerability with crafted report names +- Storage: Improvements to read-only encrypted filesystems + +* Wed Mar 13 2024 Packit - 313-1 +- assorted bug fixes and improvements + +* Wed Feb 28 2024 Packit - 312-1 +- Accounts: support lastlog2 and make the page faster +- Storage: Various Anaconda mode fixes +- Fix package build if cockpit-bridge package is installed + +* Tue Feb 20 2024 Packit - 311.1-1 +- Update documentation links to RHEL 9 (RHEL-3954) +- Storage: Various bug fixes + +* Wed Feb 14 2024 Packit - 311-1 +- Bug fixes and stability improvements + +* Wed Feb 07 2024 Packit - 310.2-1 +- selinux: Cover migration to /run +- ws: Handle HEAD requests correctly, for curl 8.6.0 + +* Fri Feb 02 2024 Packit - 310.1-1 +- bridge: Fix race condition/crash in file watching channels * Wed Jan 31 2024 Packit - 310-1 - Storage: support for btrfs - Storage: improved support for swap +* Wed Jan 24 2024 Fedora Release Engineering - 309-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 309-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Thu Jan 18 2024 Packit - 309-1 - Storage: Introduce btrfs support @@ -814,7 +742,10 @@ via PackageKit. - Performance and stability improvements * Wed Nov 01 2023 Packit - 304-1 -- Bug fixes +Storage: Support for RAID layouts with LVM2 + +* Thu Oct 19 2023 Adam Williamson - 303-2 +- Rebuild for untagged selinux-policy (cockpit-ws dep) * Wed Oct 18 2023 Packit - 303-1 - Apps: Warn if appstream data package is missing @@ -839,11 +770,17 @@ via PackageKit. * Wed Jul 26 2023 Packit - 297-1 - users: allow administrators to change the user shell -- Enable Python bridge on Fedora 38 and CentOS/RHEL 9 +- tools: Enable Python bridge on Fedora 38 + +* Wed Jul 19 2023 Fedora Release Engineering - 296-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Wed Jul 12 2023 Packit - 296-1 - Performance and stability improvements +* Wed Jun 28 2023 Python Maint - 295-2 +- Rebuilt for Python 3.12 + * Wed Jun 28 2023 Packit - 295-1 - Cockpit Client can now connect to servers without Cockpit installed diff --git a/sources b/sources new file mode 100644 index 0000000..39fe3c7 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (cockpit-334.1.tar.xz) = 2ea866ae0ed73ef6c0759cfdabc6a0d05f8acc7b30bb0aba9bb763542a4cb0a7c2ea5faf8cec7844f17374a2aec0441d67b28316a22c045d3e824f0f9614079d