Compare commits

...

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

9 changed files with 796 additions and 320 deletions

View File

@ -1,2 +0,0 @@
cc1cf3d45dff77e495aa2be61dd005365f2438d7 SOURCES/cockpit-310.5.tar.xz
a37e1d6ad4b1b25729682c54ab7e4dcdcfd894a7 SOURCES/cockpit.css.gz

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

322
.gitignore vendored
View File

@ -1,2 +1,320 @@
SOURCES/cockpit-310.5.tar.xz /cockpit-0.*/
SOURCES/cockpit.css.gz /x86_64
/noarch
.build*.log
*.src.rpm
/cockpit-0.24.tar.bz2
/cockpit-0.25.tar.bz2
/cockpit-0.26.tar.bz2
/cockpit-0.27.tar.bz2
/cockpit-0.28.tar.bz2
/cockpit-0.29.tar.bz2
/cockpit-0.30.tar.bz2
/cockpit-0.31.tar.bz2
/cockpit-0.32.tar.bz2
/cockpit-0.33.tar.bz2
/cockpit-0.34.tar.bz2
/cockpit-0.35.tar.bz2
/cockpit-0.36.tar.bz2
/cockpit-0.37.tar.bz2
/cockpit-0.38.tar.bz2
/cockpit-0.39.tar.bz2
/cockpit-0.40.tar.bz2
/cockpit-0.41.tar.bz2
/cockpit-0.42.tar.bz2
/cockpit-0.43.tar.bz2
/cockpit-0.44.tar.bz2
/cockpit-0.45.tar.bz2
/cockpit-0.46.tar.bz2
/cockpit-0.48.tar.bz2
/cockpit-0.49.tar.bz2
/cockpit-0.50.tar.bz2
/cockpit-0.51.tar.bz2
/cockpit-0.52.tar.bz2
/cockpit-0.53.tar.bz2
/cockpit-0.54.tar.bz2
/cockpit-0.55.tar.bz2
/cockpit-0.56.tar.bz2
/cockpit.pam
/cockpit-0.57.tar.bz2
/cockpit-0.58.tar.bz2
/cockpit-0.59.tar.bz2
/cockpit-0.60.tar.bz2
/cockpit-0.61.tar.bz2
/cockpit-0.62.tar.bz2
/cockpit-0.63.tar.bz2
/cockpit-0.64.tar.bz2
/cockpit-0.65.tar.bz2
/cockpit-0.66.tar.bz2
/cockpit-0.67.tar.bz2
/cockpit-0.68.tar.bz2
/cockpit-0.69.tar.bz2
/cockpit-0.70.tar.bz2
/cockpit-0.71.tar.bz2
/cockpit-0.73.tar.bz2
/cockpit-0.74.tar.bz2
/cockpit-0.75.tar.bz2
/cockpit-0.76.tar.bz2
/cockpit-0.77.tar.bz2
/cockpit-0.78.tar.bz2
/cockpit-0.79.tar.bz2
/cockpit-0.80.tar.bz2
/cockpit-0.81.tar.bz2
/cockpit-0.82.tar.bz2
/cockpit-0.83.tar.bz2
/cockpit-0.84.tar.bz2
/cockpit-0.86.tar.bz2
/cockpit-0.87.tar.bz2
/cockpit-0.88.tar.bz2
/cockpit-0.89.tar.bz2
/cockpit-0.90.tar.bz2
/cockpit-0.91.tar.xz
/cockpit-0.92.tar.xz
/cockpit-0.93.tar.xz
/cockpit-0.94.tar.xz
/cockpit-0.95.tar.xz
/cockpit-0.102.tar.xz
/cockpit-0.103.tar.xz
/cockpit-0.104.tar.xz
/cockpit-0.105.tar.xz
/cockpit-0.106.tar.xz
/cockpit-0.107.tar.xz
/cockpit-0.108.tar.xz
/cockpit-0.109.tar.xz
/cockpit-0.111.tar.xz
/cockpit-0.112.tar.xz
/cockpit-0.113.tar.xz
/cockpit-0.114.tar.xz
/cockpit-0.115.tar.xz
/cockpit-0.116.tar.xz
/cockpit-0.117.tar.xz
/cockpit-118.tar.xz
/cockpit-119.tar.xz
/cockpit-120.tar.xz
/cockpit-121.tar.xz
/cockpit-122.tar.xz
/cockpit-123.tar.xz
/cockpit-124.tar.xz
/cockpit-125.tar.xz
/cockpit-126.tar.xz
/cockpit-129.tar.xz
/cockpit-130.tar.xz
/cockpit-131.tar.xz
/cockpit-132.tar.xz
/cockpit-133.tar.xz
/cockpit-134.tar.xz
/cockpit-137.tar.xz
/cockpit-138.tar.xz
/cockpit-139.tar.xz
/cockpit-142.tar.xz
/cockpit-143.tar.xz
/cockpit-145.tar.xz
/cockpit-146.tar.xz
/cockpit-149.tar.xz
/cockpit-150.tar.xz
/cockpit-151.tar.xz
/cockpit-152.tar.xz
/cockpit-153.tar.xz
/cockpit-154.tar.xz
/cockpit-155.tar.xz
/cockpit-156.tar.xz
/cockpit-157.tar.xz
/cockpit-158.tar.xz
/cockpit-159.tar.xz
/cockpit-160.tar.xz
/cockpit-161.tar.xz
/cockpit-163.tar.xz
/cockpit-164.tar.xz
/cockpit-165.tar.xz
/cockpit-166.tar.xz
/cockpit-167.tar.xz
/cockpit-168.tar.xz
/cockpit-170.tar.xz
/cockpit-171.tar.xz
/cockpit-173.tar.xz
/cockpit-174.tar.xz
/cockpit-175.tar.xz
/cockpit-177.tar.xz
/cockpit-178.tar.xz
/cockpit-179.tar.xz
/cockpit-180.tar.xz
/cockpit-181.tar.xz
/cockpit-182.tar.xz
/cockpit-183.tar.xz
/cockpit-184.tar.xz
/cockpit-185.tar.xz
/cockpit-187.tar.xz
/cockpit-188.tar.xz
/cockpit-189.tar.xz
/cockpit-190.tar.xz
/cockpit-191.tar.xz
/cockpit-192.tar.xz
/cockpit-193.tar.xz
/cockpit-194.tar.xz
/cockpit-198.tar.xz
/cockpit-199.tar.xz
/cockpit-200.tar.xz
/cockpit-201.tar.xz
/cockpit-202.tar.xz
/cockpit-202.1.tar.xz
/cockpit-203.tar.xz
/cockpit-204.tar.xz
/cockpit-205.tar.xz
/cockpit-205.1.tar.xz
/cockpit-206.tar.xz
/cockpit-207.tar.xz
/cockpit-208.tar.xz
/cockpit-209.tar.xz
/cockpit-210.tar.xz
/cockpit-211.tar.xz
/cockpit-211.1.tar.xz
/cockpit-212.tar.xz
/cockpit-213.tar.xz
/cockpit-214.tar.xz
/cockpit-214.1.tar.xz
/cockpit-215.tar.xz
/cockpit-216.tar.xz
/cockpit-217.tar.xz
/cockpit-218.tar.xz
/cockpit-219.tar.xz
/cockpit-220.tar.xz
/cockpit-221.tar.xz
/cockpit-221.1.tar.xz
/cockpit-222.tar.xz
/cockpit-222.1.tar.xz
/cockpit-223.tar.xz
/cockpit-224.tar.xz
/cockpit-225.tar.xz
/cockpit-226.tar.xz
/cockpit-227.tar.xz
/cockpit-228.tar.xz
/cockpit-229.tar.xz
/cockpit-230.tar.xz
/cockpit-231.tar.xz
/cockpit-232.tar.xz
/cockpit-233.tar.xz
/cockpit-233.1.tar.xz
/cockpit-234.tar.xz
/cockpit-235.tar.xz
/cockpit-236.tar.xz
/cockpit-237.tar.xz
/cockpit-238.tar.xz
/cockpit-238.1.tar.xz
/cockpit-239.tar.xz
/cockpit-240.tar.xz
/cockpit-241.tar.xz
/cockpit-242.tar.xz
/cockpit-243.tar.xz
/cockpit-244.tar.xz
/cockpit-244.1.tar.xz
/cockpit-245.tar.xz
/cockpit-246.tar.xz
/cockpit-247.tar.xz
/cockpit-248.tar.xz
/cockpit-249.tar.xz
/cockpit-250.tar.xz
/cockpit-251.tar.xz
/cockpit-252.tar.xz
/cockpit-253.tar.xz
/cockpit-254.tar.xz
/cockpit-255.tar.xz
/cockpit-255.1.tar.xz
/cockpit-256.tar.xz
/cockpit-257.tar.xz
/cockpit-258.tar.xz
/cockpit-259.tar.xz
/cockpit-260.tar.xz
/cockpit-261.tar.xz
/cockpit-262.tar.xz
/cockpit-263.tar.xz
/cockpit-264.tar.xz
/cockpit-265.tar.xz
/cockpit-266.tar.xz
/cockpit-267.tar.xz
/cockpit-268.tar.xz
/cockpit-268.1.tar.xz
/cockpit-269.tar.xz
/cockpit-270.tar.xz
/cockpit-271.tar.xz
/cockpit-272.tar.xz
/cockpit-273.tar.xz
/cockpit-274.tar.xz
/cockpit-274.1.tar.xz
/cockpit-275.tar.xz
/cockpit-276.tar.xz
/cockpit-276.1.tar.xz
/cockpit-277.tar.xz
/cockpit-278.tar.xz
/cockpit-279.tar.xz
/cockpit-280.tar.xz
/cockpit-280.1.tar.xz
/cockpit-281.tar.xz
/cockpit-282.tar.xz
/cockpit-283.tar.xz
/cockpit-284.tar.xz
/cockpit-285.tar.xz
/cockpit-286.tar.xz
/cockpit-287.tar.xz
/cockpit-288.tar.xz
/cockpit-288.1.tar.xz
/cockpit-289.tar.xz
/cockpit-290.tar.xz
/cockpit-291.tar.xz
/cockpit-292.tar.xz
/cockpit-293.tar.xz
/cockpit-294.tar.xz
/cockpit-294.1.tar.xz
/cockpit-295.tar.xz
/cockpit-296.tar.xz
/cockpit-297.tar.xz
/cockpit-299.tar.xz
/cockpit-300.tar.xz
/cockpit-301.tar.xz
/cockpit-302.tar.xz
/cockpit-303.tar.xz
/cockpit-304.tar.xz
/cockpit-305.tar.xz
/cockpit-306.tar.xz
/cockpit-307.tar.xz
/cockpit-308.tar.xz
/cockpit-309.tar.xz
/cockpit-310.tar.xz
/cockpit-310.1.tar.xz
/cockpit-310.2.tar.xz
/cockpit-311.tar.xz
/cockpit-311.1.tar.xz
/cockpit-312.tar.xz
/cockpit-313.tar.xz
/cockpit-314.tar.xz
/cockpit-315.tar.xz
/cockpit-316.tar.xz
/cockpit-317.tar.xz
/cockpit-318.tar.xz
/cockpit-319.tar.xz
/cockpit-320.tar.xz
/cockpit-321.tar.xz
/cockpit-322.tar.xz
/cockpit-323.tar.xz
/cockpit-324.tar.xz
/cockpit-325.tar.xz
/cockpit-326.tar.xz
/cockpit-327.tar.xz
/cockpit-328.tar.xz
/cockpit-329.tar.xz
/cockpit-329.1.tar.xz
/cockpit-330.tar.xz
/cockpit-331.tar.xz
/cockpit-332.tar.xz
/cockpit-333.tar.xz
/cockpit-334.tar.xz
/cockpit-335.tar.xz
/cockpit-336.tar.xz
/cockpit-336.1.tar.xz
/cockpit-336.2.tar.xz
/cockpit-337.tar.xz
/cockpit-338.tar.xz
/cockpit-339.tar.xz
/cockpit-340.tar.xz
/cockpit-341.tar.xz
/cockpit-341.1.tar.xz
/cockpit-342.tar.xz

3
README.packit Normal file
View File

@ -0,0 +1,3 @@
This repository is maintained by packit.
https://packit.dev/
The file was generated using packit 1.9.0.post1.dev4+g48b4c222.

View File

@ -12,7 +12,7 @@
# Lesser General Public License for more details. # Lesser General Public License for more details.
# #
# You should have received a copy of the GNU Lesser General Public License # You should have received a copy of the GNU Lesser General Public License
# along with Cockpit; If not, see <http://www.gnu.org/licenses/>. # along with Cockpit; If not, see <https://www.gnu.org/licenses/>.
# #
# This file is maintained at the following location: # This file is maintained at the following location:
@ -49,51 +49,22 @@ Summary: Web Console for Linux servers
License: LGPL-2.1-or-later License: LGPL-2.1-or-later
URL: https://cockpit-project.org/ URL: https://cockpit-project.org/
Version: 310.5 Version: 342
Release: 1%{?dist} Release: 1%{?dist}
Source0: https://github.com/cockpit-project/cockpit/releases/download/%{version}/cockpit-%{version}.tar.xz 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}) %if 0%{?fedora} >= 41 || 0%{?rhel}
# and cockpit-appstream (building optional packages like cockpit-{pcp}) ExcludeArch: %{ix86}
# 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
%endif %endif
%else %define enable_multihost 1
%define build_basic 1 %if 0%{?fedora} >= 41 || 0%{?rhel} >= 10
%define build_optional 1 %define enable_multihost 0
%endif %endif
# Allow root login in Cockpit on RHEL 8 and lower as it also allows password login over SSH. # Ship custom SELinux policy
%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"
%define selinuxtype targeted %define selinuxtype targeted
%define selinux_configure_arg --enable-selinux-policy=%{selinuxtype} %define selinux_configure_arg --enable-selinux-policy=%{selinuxtype}
%endif
BuildRequires: gcc BuildRequires: gcc
BuildRequires: pkgconfig(gio-unix-2.0) BuildRequires: pkgconfig(gio-unix-2.0)
@ -104,16 +75,7 @@ BuildRequires: pam-devel
BuildRequires: autoconf automake BuildRequires: autoconf automake
BuildRequires: make BuildRequires: make
BuildRequires: python3-devel 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 BuildRequires: gettext >= 0.21
%endif
%if 0%{?build_basic}
BuildRequires: libssh-devel >= 0.8.5
%endif
BuildRequires: openssl-devel BuildRequires: openssl-devel
BuildRequires: gnutls-devel >= 3.4.3 BuildRequires: gnutls-devel >= 3.4.3
BuildRequires: zlib-devel BuildRequires: zlib-devel
@ -127,19 +89,10 @@ BuildRequires: glib2-devel >= 2.50.0
BuildRequires: systemd-devel >= 235 BuildRequires: systemd-devel >= 235
%if 0%{?suse_version} %if 0%{?suse_version}
BuildRequires: distribution-release BuildRequires: distribution-release
%if %{build_pcp}
BuildRequires: libpcp-devel
BuildRequires: pcp-devel
BuildRequires: libpcp3
BuildRequires: libpcp_import1
%endif
BuildRequires: openssh BuildRequires: openssh
BuildRequires: distribution-logos BuildRequires: distribution-logos
BuildRequires: wallpaper-branding BuildRequires: wallpaper-branding
%else %else
%if %{build_pcp}
BuildRequires: pcp-libs-devel
%endif
BuildRequires: openssh-clients BuildRequires: openssh-clients
BuildRequires: docbook-style-xsl BuildRequires: docbook-style-xsl
%endif %endif
@ -162,7 +115,7 @@ Requires: cockpit-system
# Optional components # Optional components
Recommends: (cockpit-storaged if udisks2) Recommends: (cockpit-storaged if udisks2)
Recommends: (cockpit-packagekit if dnf) Recommends: (cockpit-packagekit if dnf)
Suggests: cockpit-pcp Suggests: python3-pcp
%if 0%{?rhel} == 0 %if 0%{?rhel} == 0
Recommends: (cockpit-networkmanager if NetworkManager) Recommends: (cockpit-networkmanager if NetworkManager)
@ -174,23 +127,27 @@ Suggests: cockpit-selinux
Requires: subscription-manager-cockpit Requires: subscription-manager-cockpit
%endif %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 %prep
%setup -q -n cockpit-%{version} %setup -q -n cockpit-%{version}
%build %build
%configure \ %configure \
%{?selinux_configure_arg} \ %{?selinux_configure_arg} \
--with-cockpit-user=cockpit-ws \
--with-cockpit-ws-instance-user=cockpit-wsinstance \
%if 0%{?suse_version} %if 0%{?suse_version}
--docdir=%_defaultdocdir/%{name} \ --docdir=%_defaultdocdir/%{name} \
%endif %endif
--with-pamdir='%{pamdir}' \ --with-pamdir='%{pamdir}' \
%if 0%{?build_basic} == 0 %if %{enable_multihost}
--disable-ssh \ --enable-multihost \
%endif
%if %{build_pcp} == 0
--disable-pcp \
%endif %endif
%make_build %make_build
@ -198,18 +155,18 @@ Requires: subscription-manager-cockpit
%check %check
make -j$(nproc) check make -j$(nproc) check
%if 0%{?rhel} == 0
export NO_QUNIT=1
%pytest
%endif
%install %install
%make_install %make_install
make install-tests DESTDIR=%{buildroot}
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
install -p -m 644 tools/cockpit.pam $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/cockpit install -p -m 644 tools/cockpit.pam $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/cockpit
rm -f %{buildroot}/%{_libdir}/cockpit/*.so rm -f %{buildroot}/%{_libdir}/cockpit/*.so
install -D -p -m 644 AUTHORS COPYING README.md %{buildroot}%{_docdir}/cockpit/ 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 # Build the package lists for resource packages
# cockpit-bridge is the basic dependency for all cockpit-* packages, so centrally own the page directory # 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' > 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 find %{buildroot}%{_datadir}/cockpit/base1 -type f -o -type l >> base.list
echo '%{_sysconfdir}/cockpit/machines.d' >> base.list echo '%{_sysconfdir}/cockpit/machines.d' >> base.list
echo %{buildroot}%{_datadir}/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy >> 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 echo '%dir %{_datadir}/cockpit/shell' >> system.list
find %{buildroot}%{_datadir}/cockpit/shell -type f >> 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 echo '%dir %{_datadir}/cockpit/selinux' > selinux.list
find %{buildroot}%{_datadir}/cockpit/selinux -type f >> 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' > static.list
echo '%dir %{_datadir}/cockpit/static/fonts' >> static.list echo '%dir %{_datadir}/cockpit/static/fonts' >> static.list
find %{buildroot}%{_datadir}/cockpit/static -type f >> 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 sed -i "s|%{buildroot}||" *.list
%if ! 0%{?suse_version} %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 # On RHEL kdump, networkmanager, selinux, and sosreport are part of the system package
%if 0%{?rhel} %if 0%{?rhel}
cat kdump.list sosreport.list networkmanager.list selinux.list >> system.list 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_sosreport.metainfo.xml
rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-kdump.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_selinux.metainfo.xml
rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-networkmanager.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}/icons/hicolor/64x64/apps/cockpit-sosreport.png
%endif %endif
# ------------------------------------------------------------------------------- # -------------------------------------------------------------------------------
# Basic Sub-packages # Sub-packages
%if 0%{?build_basic}
%description %description
The Cockpit Web Console enables users to administer GNU/Linux servers using a The Cockpit Web Console enables users to administer GNU/Linux servers using a
@ -340,34 +245,29 @@ It offers network configuration, log inspection, diagnostic reports, SELinux
troubleshooting, interactive command-line sessions, and more. troubleshooting, interactive command-line sessions, and more.
%files %files
%license COPYING
%{_docdir}/cockpit/AUTHORS %{_docdir}/cockpit/AUTHORS
%{_docdir}/cockpit/COPYING %{_docdir}/cockpit/COPYING
%{_docdir}/cockpit/README.md %{_docdir}/cockpit/README.md
%{_datadir}/metainfo/cockpit.appdata.xml %{_datadir}/metainfo/org.cockpit_project.cockpit.appdata.xml
%{_datadir}/pixmaps/cockpit.png %{_datadir}/icons/hicolor/128x128/apps/cockpit.png
%doc %{_mandir}/man1/cockpit.1.gz %doc %{_mandir}/man1/cockpit.1.gz
%package bridge %package bridge
Summary: Cockpit bridge server-side component Summary: Cockpit bridge server-side component
Requires: glib-networking BuildArch: noarch
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 %description bridge
The Cockpit bridge component installed server side and runs commands on the The Cockpit bridge component installed server side and runs commands on the
system on behalf of the web based user interface. system on behalf of the web based user interface.
%files bridge -f base.list %files bridge -f base.list
%license COPYING
%doc %{_mandir}/man1/cockpit-bridge.1.gz %doc %{_mandir}/man1/cockpit-bridge.1.gz
%{_bindir}/cockpit-bridge %{_bindir}/cockpit-bridge
%{_libexecdir}/cockpit-askpass %{_libexecdir}/cockpit-askpass
%{python3_sitelib}/%{name}*
%package doc %package doc
Summary: Cockpit deployment and developer guide Summary: Cockpit deployment and developer guide
@ -379,6 +279,7 @@ deploy Cockpit on their machines as well as helps developers who want to
embed or extend Cockpit. embed or extend Cockpit.
%files doc %files doc
%license COPYING
%exclude %{_docdir}/cockpit/AUTHORS %exclude %{_docdir}/cockpit/AUTHORS
%exclude %{_docdir}/cockpit/COPYING %exclude %{_docdir}/cockpit/COPYING
%exclude %{_docdir}/cockpit/README.md %exclude %{_docdir}/cockpit/README.md
@ -398,110 +299,58 @@ Provides: cockpit-shell = %{version}-%{release}
Provides: cockpit-systemd = %{version}-%{release} Provides: cockpit-systemd = %{version}-%{release}
Provides: cockpit-tuned = %{version}-%{release} Provides: cockpit-tuned = %{version}-%{release}
Provides: cockpit-users = %{version}-%{release} Provides: cockpit-users = %{version}-%{release}
Obsoletes: cockpit-dashboard < %{version}-%{release}
%if 0%{?rhel} %if 0%{?rhel}
Requires: NetworkManager >= 1.6 Requires: NetworkManager >= 1.6
Requires: kexec-tools
Requires: sos Requires: sos
Requires: sudo Requires: sudo
Recommends: PackageKit Recommends: PackageKit
Recommends: setroubleshoot-server >= 3.3.3 Recommends: setroubleshoot-server >= 3.3.3
Recommends: /usr/bin/kdumpctl
Suggests: NetworkManager-team Suggests: NetworkManager-team
Suggests: python3-pcp
Provides: cockpit-kdump = %{version}-%{release} Provides: cockpit-kdump = %{version}-%{release}
Provides: cockpit-networkmanager = %{version}-%{release} Provides: cockpit-networkmanager = %{version}-%{release}
Provides: cockpit-selinux = %{version}-%{release} Provides: cockpit-selinux = %{version}-%{release}
Provides: cockpit-sosreport = %{version}-%{release} Provides: cockpit-sosreport = %{version}-%{release}
%endif %endif
%if 0%{?fedora}
Recommends: (reportd if abrt)
%endif
Provides: bundled(npm(@patternfly/patternfly)) = 5.1.0 Provides: bundled(npm(@patternfly/patternfly)) = 6.2.3
Provides: bundled(npm(@patternfly/react-core)) = 5.1.2 Provides: bundled(npm(@patternfly/react-core)) = 6.2.2
Provides: bundled(npm(@patternfly/react-icons)) = 5.1.2 Provides: bundled(npm(@patternfly/react-icons)) = 6.2.2
Provides: bundled(npm(@patternfly/react-styles)) = 5.1.2 Provides: bundled(npm(@patternfly/react-styles)) = 6.2.2
Provides: bundled(npm(@patternfly/react-table)) = 5.1.2 Provides: bundled(npm(@patternfly/react-table)) = 6.2.2
Provides: bundled(npm(@patternfly/react-tokens)) = 5.1.2 Provides: bundled(npm(@patternfly/react-tokens)) = 6.2.2
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(argparse)) = 1.0.10
Provides: bundled(npm(array-buffer-byte-length)) = 1.0.0 Provides: bundled(npm(attr-accept)) = 2.2.5
Provides: bundled(npm(attr-accept)) = 2.2.2
Provides: bundled(npm(autolinker)) = 3.16.2 Provides: bundled(npm(autolinker)) = 3.16.2
Provides: bundled(npm(available-typed-arrays)) = 1.0.5 Provides: bundled(npm(dequal)) = 2.0.3
Provides: bundled(npm(call-bind)) = 1.0.5 Provides: bundled(npm(file-selector)) = 2.1.2
Provides: bundled(npm(date-fns)) = 3.2.0 Provides: bundled(npm(focus-trap)) = 7.6.4
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(js-tokens)) = 4.0.0
Provides: bundled(npm(json-stable-stringify-without-jsonify)) = 1.0.1 Provides: bundled(npm(json-stable-stringify-without-jsonify)) = 1.0.1
Provides: bundled(npm(lodash)) = 4.17.21 Provides: bundled(npm(lodash)) = 4.17.21
Provides: bundled(npm(loose-envify)) = 1.4.0 Provides: bundled(npm(loose-envify)) = 1.4.0
Provides: bundled(npm(object-assign)) = 4.1.1 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(prop-types)) = 15.8.1
Provides: bundled(npm(react-dom)) = 18.2.0 Provides: bundled(npm(react-dom)) = 18.3.1
Provides: bundled(npm(react-dropzone)) = 14.2.3 Provides: bundled(npm(react-dropzone)) = 14.3.8
Provides: bundled(npm(react-is)) = 16.13.1 Provides: bundled(npm(react-is)) = 16.13.1
Provides: bundled(npm(react)) = 18.2.0 Provides: bundled(npm(react)) = 18.3.1
Provides: bundled(npm(regexp.prototype.flags)) = 1.5.1
Provides: bundled(npm(remarkable)) = 2.0.1 Provides: bundled(npm(remarkable)) = 2.0.1
Provides: bundled(npm(scheduler)) = 0.23.0 Provides: bundled(npm(scheduler)) = 0.23.2
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(sprintf-js)) = 1.0.3
Provides: bundled(npm(stop-iteration-iterator)) = 1.0.0
Provides: bundled(npm(tabbable)) = 6.2.0 Provides: bundled(npm(tabbable)) = 6.2.0
Provides: bundled(npm(throttle-debounce)) = 5.0.0 Provides: bundled(npm(throttle-debounce)) = 5.0.2
Provides: bundled(npm(tslib)) = 2.6.2 Provides: bundled(npm(tslib)) = 2.8.1
Provides: bundled(npm(uuid)) = 9.0.1 Provides: bundled(npm(uuid)) = 11.1.0
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
%description system %description system
This package contains the Cockpit shell and system configuration interfaces. This package contains the Cockpit shell and system configuration interfaces.
%files system -f system.list %files system -f system.list
%license COPYING
%dir %{_datadir}/cockpit/shell/images %dir %{_datadir}/cockpit/shell/images
%package ws %package ws
@ -509,14 +358,13 @@ Summary: Cockpit Web Service
Requires: glib-networking Requires: glib-networking
Requires: openssl Requires: openssl
Requires: glib2 >= 2.50.0 Requires: glib2 >= 2.50.0
Requires: (selinux-policy >= %{_selinux_policy_version} if selinux-policy-%{selinuxtype}) Requires: (%{name}-ws-selinux = %{version}-%{release} if selinux-policy-base)
Requires(post): (policycoreutils if selinux-policy-%{selinuxtype})
Conflicts: firewalld < 0.6.0-1
Recommends: sscg >= 2.3 Recommends: sscg >= 2.3
Recommends: system-logos Recommends: system-logos
Suggests: sssd-dbus >= 2.6.2 Suggests: sssd-dbus >= 2.6.2
# for cockpit-desktop # for cockpit-desktop
Suggests: python3 Suggests: python3
Obsoletes: cockpit-tests < 331
# prevent hard python3 dependency for cockpit-desktop, it falls back to other browsers # prevent hard python3 dependency for cockpit-desktop, it falls back to other browsers
%global __requires_exclude_from ^%{_libexecdir}/cockpit-client$ %global __requires_exclude_from ^%{_libexecdir}/cockpit-client$
@ -528,6 +376,7 @@ If sssd-dbus is installed, you can enable client certificate/smart card
authentication via sssd/FreeIPA. authentication via sssd/FreeIPA.
%files ws -f static.list %files ws -f static.list
%license COPYING
%doc %{_mandir}/man1/cockpit-desktop.1.gz %doc %{_mandir}/man1/cockpit-desktop.1.gz
%doc %{_mandir}/man5/cockpit.conf.5.gz %doc %{_mandir}/man5/cockpit.conf.5.gz
%doc %{_mandir}/man8/cockpit-ws.8.gz %doc %{_mandir}/man8/cockpit-ws.8.gz
@ -540,20 +389,24 @@ authentication via sssd/FreeIPA.
%ghost %{_sysconfdir}/issue.d/cockpit.issue %ghost %{_sysconfdir}/issue.d/cockpit.issue
%ghost %{_sysconfdir}/motd.d/cockpit %ghost %{_sysconfdir}/motd.d/cockpit
%ghost %attr(0644, root, root) %{_sysconfdir}/cockpit/disallowed-users %ghost %attr(0644, root, root) %{_sysconfdir}/cockpit/disallowed-users
%dir %{_datadir}/cockpit/motd %dir %{_datadir}/cockpit/issue
%{_datadir}/cockpit/motd/update-motd %{_datadir}/cockpit/issue/update-issue
%{_datadir}/cockpit/motd/inactive.motd %{_datadir}/cockpit/issue/inactive.issue
%{_unitdir}/cockpit.service %{_unitdir}/cockpit.service
%{_unitdir}/cockpit-motd.service %{_unitdir}/cockpit-issue.service
%{_unitdir}/cockpit.socket %{_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.socket
%{_unitdir}/cockpit-wsinstance-http.service %{_unitdir}/cockpit-wsinstance-http.service
%{_unitdir}/cockpit-wsinstance-https-factory.socket %{_unitdir}/cockpit-wsinstance-https-factory.socket
%{_unitdir}/cockpit-wsinstance-https-factory@.service %{_unitdir}/cockpit-wsinstance-https-factory@.service
%{_unitdir}/cockpit-wsinstance-https@.socket %{_unitdir}/cockpit-wsinstance-https@.socket
%{_unitdir}/cockpit-wsinstance-https@.service %{_unitdir}/cockpit-wsinstance-https@.service
%{_unitdir}/cockpit-wsinstance-socket-user.service
%{_unitdir}/system-cockpithttps.slice %{_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_ssh_add.so
%{pamdir}/pam_cockpit_cert.so %{pamdir}/pam_cockpit_cert.so
%{_libexecdir}/cockpit-ws %{_libexecdir}/cockpit-ws
@ -564,43 +417,32 @@ authentication via sssd/FreeIPA.
%{_libexecdir}/cockpit-desktop %{_libexecdir}/cockpit-desktop
%{_libexecdir}/cockpit-certificate-ensure %{_libexecdir}/cockpit-certificate-ensure
%{_libexecdir}/cockpit-certificate-helper %{_libexecdir}/cockpit-certificate-helper
%attr(4750, root, cockpit-wsinstance) %{_libexecdir}/cockpit-session %{_libexecdir}/cockpit-session
%{_datadir}/cockpit/branding %{_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}
%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
%post ws %post ws
if [ -x %{_sbindir}/selinuxenabled ]; then
%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
%selinux_relabel_post -s %{selinuxtype}
fi
# set up dynamic motd/issue symlinks on first-time install; don't bring them back on upgrades if admin removed them # 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 # disable root login on first-time install; so existing installations aren't changed
if [ "$1" = 1 ]; then if [ "$1" = 1 ]; then
mkdir -p /etc/motd.d /etc/issue.d mkdir -p /etc/motd.d /etc/issue.d
ln -s ../../run/cockpit/motd /etc/motd.d/cockpit ln -s ../../run/cockpit/issue /etc/motd.d/cockpit
ln -s ../../run/cockpit/motd /etc/issue.d/cockpit.issue 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 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 printf "root\n" >> /etc/cockpit/disallowed-users
%endif
chmod 644 /etc/cockpit/disallowed-users chmod 644 /etc/cockpit/disallowed-users
fi 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 %systemd_post cockpit.socket cockpit.service
# firewalld only partially picks up changes to its services files without this # firewalld only partially picks up changes to its services files without this
test -f %{_bindir}/firewall-cmd && firewall-cmd --reload --quiet || true test -f %{_bindir}/firewall-cmd && firewall-cmd --reload --quiet || true
@ -613,15 +455,45 @@ if test -f %{_sysconfdir}/pam.d/cockpit && grep -q pam_cockpit_cert %{_sysconfd
echo '**** WARNING:' echo '**** WARNING:'
fi 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 %preun ws
%systemd_preun cockpit.socket cockpit.service %systemd_preun cockpit.socket cockpit.service
%postun ws %postun ws
if [ -x %{_sbindir}/selinuxenabled ]; then %systemd_postun_with_restart cockpit.socket cockpit.service
%package ws-selinux
Summary: SELinux security policy for cockpit-ws
# older -ws contained the SELinux policy, now split out
Conflicts: %{name}-ws < 337-1.2025
Requires(post): selinux-policy-%{selinuxtype} >= %{_selinux_policy_version}
Requires(post): libselinux-utils
Requires(post): policycoreutils
%description ws-selinux
SELinux policy module for the cockpit-ws package.
%files ws-selinux
%license COPYING
%{_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}
%pre ws-selinux
%selinux_relabel_pre -s %{selinuxtype}
%post ws-selinux
%selinux_modules_install -s %{selinuxtype} %{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
%selinux_relabel_post -s %{selinuxtype}
%postun ws-selinux
%selinux_modules_uninstall -s %{selinuxtype} %{name} %selinux_modules_uninstall -s %{selinuxtype} %{name}
%selinux_relabel_post -s %{selinuxtype} %selinux_relabel_post -s %{selinuxtype}
fi
%systemd_postun_with_restart cockpit.socket cockpit.service
# ------------------------------------------------------------------------------- # -------------------------------------------------------------------------------
# Sub-packages that are part of cockpit-system in RHEL/CentOS, but separate in Fedora # Sub-packages that are part of cockpit-system in RHEL/CentOS, but separate in Fedora
@ -632,14 +504,15 @@ fi
Summary: Cockpit user interface for kernel crash dumping Summary: Cockpit user interface for kernel crash dumping
Requires: cockpit-bridge >= %{required_base} Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base} Requires: cockpit-shell >= %{required_base}
Requires: kexec-tools Requires: /usr/bin/kdumpctl
BuildArch: noarch BuildArch: noarch
%description kdump %description kdump
The Cockpit component for configuring kernel crash dumping. The Cockpit component for configuring kernel crash dumping.
%files kdump -f kdump.list %files kdump -f kdump.list
%{_datadir}/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml %license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_kdump.metainfo.xml
%package sosreport %package sosreport
Summary: Cockpit user interface for diagnostic reports Summary: Cockpit user interface for diagnostic reports
@ -653,8 +526,9 @@ The Cockpit component for creating diagnostic reports with the
sosreport tool. sosreport tool.
%files sosreport -f sosreport.list %files sosreport -f sosreport.list
%{_datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml %license COPYING
%{_datadir}/pixmaps/cockpit-sosreport.png %{_datadir}/metainfo/org.cockpit_project.cockpit_sosreport.metainfo.xml
%{_datadir}/icons/hicolor/64x64/apps/cockpit-sosreport.png
%package networkmanager %package networkmanager
Summary: Cockpit user interface for networking, using NetworkManager Summary: Cockpit user interface for networking, using NetworkManager
@ -669,7 +543,8 @@ BuildArch: noarch
The Cockpit component for managing networking. This package uses NetworkManager. The Cockpit component for managing networking. This package uses NetworkManager.
%files networkmanager -f networkmanager.list %files networkmanager -f networkmanager.list
%{_datadir}/metainfo/org.cockpit-project.cockpit-networkmanager.metainfo.xml %license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_networkmanager.metainfo.xml
%endif %endif
@ -687,25 +562,11 @@ This package contains the Cockpit user interface integration with the
utility setroubleshoot to diagnose and resolve SELinux issues. utility setroubleshoot to diagnose and resolve SELinux issues.
%files selinux -f selinux.list %files selinux -f selinux.list
%{_datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml %license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_selinux.metainfo.xml
%endif %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 %package -n cockpit-storaged
Summary: Cockpit user interface for storage, using udisks Summary: Cockpit user interface for storage, using udisks
Requires: cockpit-shell >= %{required_base} Requires: cockpit-shell >= %{required_base}
@ -729,42 +590,15 @@ BuildArch: noarch
The Cockpit component for managing storage. This package uses udisks. The Cockpit component for managing storage. This package uses udisks.
%files -n cockpit-storaged -f storaged.list %files -n cockpit-storaged -f storaged.list
%{_datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml %license COPYING
%{_datadir}/metainfo/org.cockpit_project.cockpit_storaged.metainfo.xml
%package -n cockpit-tests %post storaged
Summary: Tests for Cockpit
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-system >= %{required_base}
Requires: openssh-clients
Provides: cockpit-test-assets = %{version}-%{release}
%description -n cockpit-tests # version 332 moved the btrfs temp mounts db to /run
This package contains tests and files used while testing Cockpit. if [ "$1" = 2 ] && [ -d /var/lib/cockpit/btrfs ]; then
These files are not required for running Cockpit. rm -rf --one-file-system /var/lib/cockpit/btrfs || true
fi
%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
%package -n cockpit-packagekit %package -n cockpit-packagekit
Summary: Cockpit user interface for packages Summary: Cockpit user interface for packages
@ -780,27 +614,188 @@ The Cockpit components for installing OS updates and Cockpit add-ons,
via PackageKit. via PackageKit.
%files -n cockpit-packagekit -f packagekit.list %files -n cockpit-packagekit -f packagekit.list
%license COPYING
#/ build optional extension packages
%endif
# The changelog is automatically generated and merged # The changelog is automatically generated and merged
%changelog %changelog
* Thu Jul 03 2025 Martin Pitt <mpitt@redhat.com> - 310.5-1 * Wed Jul 09 2025 Packit <hello@packit.dev> - 342-1
- Avoid faillocking account on changed sudo password (jira#RHEL-96193) - Bug fixes and translation updates
* Tue Apr 02 2024 Martin Pitt <mpitt@redhat.com> - 310.4-1 * Fri Jun 27 2025 Packit <hello@packit.dev> - 341.1-1
- sosreport: Fix command injection with crafted report names [CVE-2024-2947] - Stratis gating fixes
(jira#RHEL-30452)
* Thu Feb 15 2024 Martin Pitt <mpitt@redhat.com> - 310.3-1 * Wed Jun 25 2025 Packit <hello@packit.dev> - 341-1
- Translation updates (jira#RHEL-16681) - services: show link to podman page for quadlets
Lots of bug fixes
* Fri Jun 06 2025 Python Maint <python-maint@redhat.com> - 340-2
- Rebuilt for Python 3.14
* Wed Jun 04 2025 Packit <hello@packit.dev> - 340-1
- Storage: Prevent modifying partitions in unsupported places
- Bug fixes and translation updates
* Tue Jun 03 2025 Python Maint <python-maint@redhat.com> - 339-2
- Rebuilt for Python 3.14
* Wed May 21 2025 Packit <hello@packit.dev> - 339-1
- Add cockpit/ws arm64 container
- Storage: Disk Self-Test error warnings on the overview page
- Bug fixes and translation updates
* Wed May 07 2025 Packit <hello@packit.dev> - 338-1
- Translation updates
- Bug fixes
* Wed Apr 23 2025 Packit <hello@packit.dev> - 337-1
- Upgraded to Patternfly 6
- Support dnf needs-restarting
* Fri Mar 28 2025 Packit <hello@packit.dev> - 336.2-1
- storage: Revert "Use mdraid metadata version 1.0 when in Anaconda mode" (rhbz#2352953)
- Translation updates (rhbz#2354986)
* Wed Mar 26 2025 Packit <hello@packit.dev> - 336.1-1
- storage: Fix passphrase remembering with "Reuse encryption" (rhbz#2354497)
- Translation updates (rhbz#2354986)
* Mon Mar 24 2025 Packit <hello@packit.dev> - 336-1
- storage: Implement deletion of multi-device btrfs (rhbz#2352385)
- storage: Use mdraid metadata version 1.0 when in Anaconda mode (rhbz#2352953)
- Add a channel capabilities system
* Wed Mar 12 2025 Packit <hello@packit.dev> - 335-1
- storage: SMART support
* Thu Feb 27 2025 Packit <hello@packit.dev> - 334-1
- https://issues.redhat.com/browse/RHEL-32834
* Thu Feb 13 2025 Packit <hello@packit.dev> - 333-1
- various bug fixes and improvements
* Sat Feb 01 2025 Björn Esser <besser82@fedoraproject.org> - 332-2
- Add explicit BR: libxcrypt-devel
* Wed Jan 29 2025 Packit <hello@packit.dev> - 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 <releng@fedoraproject.org> - 331-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Dec 18 2024 Packit <hello@packit.dev> - 331-1
- ws: Prevent search engine indexing with robots.txt
- container/ws: Support using an external SSH agent
* Wed Dec 04 2024 Packit <hello@packit.dev> - 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 <hello@packit.dev> - 329.1-1
- cockpit.js: Put back cockpit.{resolve,reject}() to fix subscription-manager-cockpit
* Wed Nov 20 2024 Packit <hello@packit.dev> - 329-1
- Shell: Extra warnings when connecting to remote hosts
* Wed Nov 06 2024 Packit <hello@packit.dev> - 328-1
- Bug fixes and performance improvements
* Wed Oct 23 2024 Packit <hello@packit.dev> - 327-1
- Connect to similar servers without Cockpit installed
* Wed Oct 09 2024 Packit <hello@packit.dev> - 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 <hello@packit.dev> - 325-1
- storage: Expose Stratis virtual filesystem sizes
- client: Properly handle unknown SSH host keys
* Wed Sep 04 2024 Packit <hello@packit.dev> - 324-1
- Bug fixes and performance improvements
* Tue Aug 20 2024 Packit <hello@packit.dev> - 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 <hello@packit.dev> - 322-1
- shell: Deprecate host switcher
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 321-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Wed Jul 10 2024 Packit <hello@packit.dev> - 321-1
- Bug fixes and performance improvements
* Wed Jul 03 2024 Packit <hello@packit.dev> - 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 <hello@packit.dev> - 319-1
- List btrfs snapshots in subvolume detail view
* Mon Jun 17 2024 Martin Pitt <mpitt@redhat.com> - 318-2
- Rebuilt for Python 3.13
* Wed Jun 12 2024 Packit <hello@packit.dev> - 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 <python-maint@redhat.com> - 317-2
- Rebuilt for Python 3.13
* Wed May 29 2024 Packit <hello@packit.dev> - 317-1
- webserver: System user changes
- metrics: Prefer valkey over redis on Fedora
* Thu Apr 25 2024 Packit <hello@packit.dev> - 316-1
- cockpit.js API: Fix format_bytes() units
* Wed Apr 10 2024 Packit <hello@packit.dev> - 315-1
- systemd: Check proper ssh service unit on Debian/Ubuntu
- Translation updates
* Thu Mar 28 2024 Packit <hello@packit.dev> - 314-1
- Diagnostic reports: Fix command injection vulnerability with crafted report names
- Storage: Improvements to read-only encrypted filesystems
* Wed Mar 13 2024 Packit <hello@packit.dev> - 313-1
- assorted bug fixes and improvements
* Wed Feb 28 2024 Packit <hello@packit.dev> - 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 <hello@packit.dev> - 311.1-1
- Update documentation links to RHEL 9 (RHEL-3954)
- Storage: Various bug fixes
* Wed Feb 14 2024 Packit <hello@packit.dev> - 311-1
- Bug fixes and stability improvements
* Wed Feb 07 2024 Packit <hello@packit.dev> - 310.2-1
- selinux: Cover migration to /run
- ws: Handle HEAD requests correctly, for curl 8.6.0
* Fri Feb 02 2024 Packit <hello@packit.dev> - 310.1-1
- bridge: Fix race condition/crash in file watching channels
* Wed Jan 31 2024 Packit <hello@packit.dev> - 310-1 * Wed Jan 31 2024 Packit <hello@packit.dev> - 310-1
- Storage: support for btrfs - Storage: support for btrfs
- Storage: improved support for swap - Storage: improved support for swap
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 309-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 309-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jan 18 2024 Packit <hello@packit.dev> - 309-1 * Thu Jan 18 2024 Packit <hello@packit.dev> - 309-1
- Storage: Introduce btrfs support - Storage: Introduce btrfs support
@ -817,7 +812,10 @@ via PackageKit.
- Performance and stability improvements - Performance and stability improvements
* Wed Nov 01 2023 Packit <hello@packit.dev> - 304-1 * Wed Nov 01 2023 Packit <hello@packit.dev> - 304-1
- Bug fixes Storage: Support for RAID layouts with LVM2
* Thu Oct 19 2023 Adam Williamson <awilliam@redhat.com> - 303-2
- Rebuild for untagged selinux-policy (cockpit-ws dep)
* Wed Oct 18 2023 Packit <hello@packit.dev> - 303-1 * Wed Oct 18 2023 Packit <hello@packit.dev> - 303-1
- Apps: Warn if appstream data package is missing - Apps: Warn if appstream data package is missing
@ -842,11 +840,17 @@ via PackageKit.
* Wed Jul 26 2023 Packit <hello@packit.dev> - 297-1 * Wed Jul 26 2023 Packit <hello@packit.dev> - 297-1
- users: allow administrators to change the user shell - 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 <releng@fedoraproject.org> - 296-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jul 12 2023 Packit <hello@packit.dev> - 296-1 * Wed Jul 12 2023 Packit <hello@packit.dev> - 296-1
- Performance and stability improvements - Performance and stability improvements
* Wed Jun 28 2023 Python Maint <python-maint@redhat.com> - 295-2
- Rebuilt for Python 3.12
* Wed Jun 28 2023 Packit <hello@packit.dev> - 295-1 * Wed Jun 28 2023 Packit <hello@packit.dev> - 295-1
- Cockpit Client can now connect to servers without Cockpit installed - Cockpit Client can now connect to servers without Cockpit installed

14
gating.yaml Normal file
View File

@ -0,0 +1,14 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
--- !Policy
product_versions:
- rhel-9
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

113
packit.yaml Normal file
View File

@ -0,0 +1,113 @@
upstream_project_url: https://github.com/cockpit-project/cockpit
specfile_path: cockpit.spec
actions:
post-upstream-clone:
# build patched spec
- tools/node-modules make_package_lock_json
- cp tools/cockpit.spec .
# packit will compute and set the version by itself
- tools/fix-spec ./cockpit.spec 0
create-archive:
- tools/make-dist
srpm_build_deps:
- automake
- gcc
- gettext
- glib2-devel
- make
- nodejs
- npm
- systemd-devel
# use the nicely formatted release NEWS from our upstream release, instead of git shortlog
copy_upstream_release_description: true
jobs:
- job: tests
identifier: self
trigger: pull_request
targets: &test_targets
- fedora-41
- fedora-42
- fedora-latest-stable-aarch64
- fedora-rawhide
- centos-stream-9-x86_64
- centos-stream-9-aarch64
- centos-stream-10
# current Fedora runs reverse dependency testing against https://copr.fedorainfracloud.org/coprs/g/cockpit/main-builds/
- job: tests
identifier: revdeps
trigger: pull_request
targets:
- fedora-latest-stable
tf_extra_params:
environments:
- artifacts:
- type: repository-file
id: https://copr.fedorainfracloud.org/coprs/g/cockpit/main-builds/repo/fedora-$releasever/group_cockpit-main-builds-fedora-$releasever.repo
tmt:
context:
revdeps: "yes"
# run build/unit tests on test targets
- job: copr_build
trigger: pull_request
targets: *test_targets
# run extra build/unit tests on some interesting architectures
- job: copr_build
trigger: pull_request
targets:
# big-endian
- fedora-latest-stable-s390x
# for cross-project testing
- job: copr_build
trigger: commit
branch: "^main$"
owner: "@cockpit"
project: "main-builds"
preserve_project: True
- job: copr_build
trigger: release
owner: "@cockpit"
project: "cockpit-preview"
preserve_project: True
actions:
# same as the global one, but specifying actions: does not inherit
post-upstream-clone:
# build patched spec
- tools/node-modules make_package_lock_json
- cp tools/cockpit.spec .
# packit will compute and set the version by itself
- tools/fix-spec ./cockpit.spec 0
# HACK: tarball for releases (copr_build, koji, etc.), copying spec's Source0; this
# really should be the default, see https://github.com/packit/packit-service/issues/1505
create-archive:
- sh -exc "curl -L -O https://github.com/cockpit-project/cockpit/releases/download/${PACKIT_PROJECT_VERSION}/${PACKIT_PROJECT_NAME_VERSION}.tar.xz"
- sh -exc "ls ${PACKIT_PROJECT_NAME_VERSION}.tar.xz"
- job: propose_downstream
trigger: release
dist_git_branches:
- fedora-development
- fedora-41
- fedora-42
- job: koji_build
trigger: commit
dist_git_branches:
- fedora-development
- fedora-41
- fedora-42
- job: bodhi_update
trigger: commit
dist_git_branches:
# rawhide updates are created automatically
- fedora-41
- fedora-42

24
plans/all.fmf Normal file
View File

@ -0,0 +1,24 @@
discover:
how: fmf
dist-git-source: true
execute:
how: tmt
# Let's handle them upstream only, don't break Fedora/RHEL reverse dependency gating
environment:
TEST_AUDIT_NO_SELINUX: 1
/main:
summary: Non-storage tests
discover+:
test: /test/browser/main
/storage-basic:
summary: Basic storage tests
discover+:
test: /test/browser/storage-basic
/storage-extra:
summary: More expensive storage tests (LVM, LUKS, Anaconda)
discover+:
test: /test/browser/storage-extra

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (cockpit-342.tar.xz) = eb2817efec6fb2573603dcbe51afeb732795ae691f36cfce99d9815eeb7ff10e666083dee0f75032ddf54625e6f843f3f06b027d447c517fd96f6e769b95acd7