SHA256
1
0
forked from cockpit/cockpit

Accepting request 791691 from home:lnussel:branches:systemsmanagement:cockpit

- new version 215

Note even though the diff might look wild it's actually synced up with
upstream. I sent most changes there and they were accepted.

License string and libpwquality change are still pending approval, the test has
been merged.
What's left is this:
ae413cf9cf

OBS-URL: https://build.opensuse.org/request/show/791691
OBS-URL: https://build.opensuse.org/package/show/systemsmanagement:cockpit/cockpit?expand=0&rev=26
This commit is contained in:
Klaus Kämpf 2020-04-15 08:21:19 +00:00 committed by Git OBS Bridge
parent 64c45561f6
commit 55b44b2d8a
6 changed files with 293 additions and 342 deletions

View File

@ -0,0 +1,79 @@
From 43541b196f8816b743f83e38a4e33367610dbde8 Mon Sep 17 00:00:00 2001
From: Ludwig Nussel <ludwig.nussel@suse.de>
Date: Tue, 31 Mar 2020 13:12:18 +0200
Subject: [PATCH] openSUSE Tumbleweed branding
---
Makefile.am | 1 +
src/branding/opensuse-tumbleweed/Makefile.am | 11 ++++++++++
src/branding/opensuse-tumbleweed/branding.css | 30 +++++++++++++++++++++++++++
tools/cockpit.spec | 2 +-
4 files changed, 43 insertions(+), 1 deletion(-)
create mode 100644 src/branding/opensuse-tumbleweed/Makefile.am
create mode 100644 src/branding/opensuse-tumbleweed/branding.css
diff --git a/Makefile.am b/Makefile.am
index bee855890..f76b4a349 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -444,6 +444,7 @@ include src/branding/debian/Makefile.am
include src/branding/default/Makefile.am
include src/branding/fedora/Makefile.am
include src/branding/kubernetes/Makefile.am
+include src/branding/opensuse-tumbleweed/Makefile.am
include src/branding/registry/Makefile.am
include src/branding/rhel/Makefile.am
include src/branding/scientific/Makefile.am
diff --git a/src/branding/opensuse-tumbleweed/Makefile.am b/src/branding/opensuse-tumbleweed/Makefile.am
new file mode 100644
index 000000000..f45234ccb
--- /dev/null
+++ b/src/branding/opensuse-tumbleweed/Makefile.am
@@ -0,0 +1,11 @@
+tumbleweedbrandingdir = $(datadir)/cockpit/branding/opensuse-tumbleweed
+
+tumbleweedbranding_DATA = \
+ src/branding/opensuse-tumbleweed/branding.css \
+ $(NULL)
+
+EXTRA_DIST += $(tumbleweedbranding_DATA)
+
+install-data-hook::
+ $(LN_S) -f /usr/share/wallpapers/default-1920x1200.jpg $(DESTDIR)$(tumbleweedbrandingdir)/default-1920x1200.jpg
+ $(LN_S) -f /usr/share/pixmaps/distribution-logos/square-hicolor.svg $(DESTDIR)$(tumbleweedbrandingdir)/square-hicolor.svg
diff --git a/src/branding/opensuse-tumbleweed/branding.css b/src/branding/opensuse-tumbleweed/branding.css
new file mode 100644
index 000000000..e9191d4ef
--- /dev/null
+++ b/src/branding/opensuse-tumbleweed/branding.css
@@ -0,0 +1,30 @@
+.navbar-pf {
+ border-color: #73ba25 !important;
+}
+
+body.login-pf {
+ background: url("default-1920x1200.jpg") no-repeat 50% 0;
+ background-size: cover;
+ background-color: #42474c;
+}
+
+#badge {
+ width: 5em;
+ height: 5em;
+ background-image: url("square-hicolor.svg");
+ background-size: contain;
+ background-repeat: no-repeat;
+}
+
+#brand {
+ font-size: 18pt;
+ text-transform: uppercase;
+}
+
+#brand:before {
+ content: "${NAME}";
+}
+
+#index-brand:before {
+ content: "${NAME}";
+}

View File

@ -0,0 +1,41 @@
From 0f38a3a889b71351dae831d017958bec955daaaa Mon Sep 17 00:00:00 2001
From: Ludwig Nussel <ludwig.nussel@suse.de>
Date: Thu, 26 Mar 2020 18:12:07 +0100
Subject: [PATCH] test: handle XDG_CONFIG_DIRS
Previously the test would fail in an environment where XDG_CONFIG_DIRS
was set as it takes precedence over the built in defaults. So let's just
set XDG_CONFIG_DIRS and test that feature instead.
---
src/common/test-config.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/common/test-config.c b/src/common/test-config.c
index cf5b8746b..4b5153153 100644
--- a/src/common/test-config.c
+++ b/src/common/test-config.c
@@ -27,7 +27,6 @@
/* Mock override cockpitconf.c */
extern const gchar *cockpit_config_file;
-extern const gchar *cockpit_config_dirs[];
static void
test_get_strings (void)
@@ -134,11 +133,11 @@ test_get_strvs (void)
static void
test_load_dir (void)
{
- cockpit_config_dirs[0] = SRCDIR "/src/ws/mock-config";
+ g_setenv("XDG_CONFIG_DIRS", "/does-not-exist:" SRCDIR "/src/ws/mock-config", 1);
cockpit_config_file = "cockpit.conf";
g_assert_cmpstr (cockpit_conf_string ("Section2", "value1"), ==, "string");
- g_assert_cmpstr (cockpit_conf_get_dirs ()[0], ==, SRCDIR "/src/ws/mock-config");
+ g_assert_cmpstr (cockpit_conf_get_dirs ()[1], ==, SRCDIR "/src/ws/mock-config");
cockpit_conf_cleanup ();
}
--
2.16.4

BIN
cockpit-195.tar.xz (Stored with Git LFS)

Binary file not shown.

BIN
cockpit-215.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Fri Mar 27 10:50:51 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- new version 215
-------------------------------------------------------------------
Thu Aug 22 09:50:14 UTC 2019 - Ludwig Nussel <lnussel@suse.de>
- new version 200
-------------------------------------------------------------------
Fri Jun 21 13:44:05 UTC 2019 - Boris Manojlovic <boris@steki.net>

View File

@ -41,58 +41,36 @@
# build optional extensions like cockpit-docker
%define build_optional 1
# cockpit's firewall service definition moved to firewalld
%if 0%{?fedora} >= 29 || 0%{?rhel} >= 8
%define firewalld_service 0
%else
%define firewalld_service 1
%endif
%define __lib lib
# on RHEL 7.x we build subscriptions; superseded later by
# external subscription-manager-cockpit
%if (0%{?rhel} >= 7 && 0%{?rhel} < 8) && 0%{?centos} == 0
%define build_subscriptions 1
%endif
# cockpit-kubernetes is RHEL 7 and Fedora < 30 only, and 64 bit arches only
%if (0%{?fedora} && 0%{?fedora} < 30) || (0%{?rhel} >= 7 && 0%{?rhel} < 8)
%ifarch aarch64 x86_64 ppc64le s390x
%define build_kubernetes 1
%endif
%endif
# cockpit-machines-ovirt is RHEL 7 and Fedora < 30 only
%if (0%{?fedora} && 0%{?fedora} < 30) || (0%{?rhel} >= 7 && 0%{?rhel} < 8)
%define build_ovirt 1
%endif
%if 0%{?rhel} >= 8
%global go_scl_prefix go-toolset-7-
%else
%global go_scl_prefix %{nil}
%endif
%if 0%{?rhel} >= 7
%if 0%{?rhel}
%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
License: LGPLv2+
License: LGPL-2.1-or-later
URL: https://cockpit-project.org/
Version: 195
Version: 215
%if %{defined wip}
Release: 1.%{wip}%{?dist}
Source0: cockpit-%{version}.tar.gz
%else
Release: 1%{?dist}
Release: 0
Source0: https://github.com/cockpit-project/cockpit/releases/download/%{version}/cockpit-%{version}.tar.xz
%endif
Source1: cockpit.pam
Source1: cockpit.pam
# merged upstream after 215
Patch: 0001-test-handle-XDG_CONFIG_DIRS.patch
Patch1: 0001-openSUSE-Tumbleweed-branding.patch
BuildRequires: gcc
BuildRequires: pkgconfig(gio-unix-2.0)
@ -101,46 +79,39 @@ BuildRequires: pkgconfig(polkit-agent-1) >= 0.105
BuildRequires: pam-devel
BuildRequires: autoconf automake
%if 0%{?fedora} || 0%{?rhel} >= 8 || 0%{?suse_version} > 1315
BuildRequires: /usr/bin/python3
%else
%if 0%{?suse_version}
BuildRequires: python-base
%else
BuildRequires: /usr/bin/python2
%endif
%endif
BuildRequires: intltool
BuildRequires: gettext >= 0.19.7
%if %{defined build_dashboard}
BuildRequires: libssh-devel >= 0.7.1
BuildRequires: libssh-devel >= 0.8
%endif
BuildRequires: openssl-devel
BuildRequires: gnutls-devel >= 3.4.3
BuildRequires: zlib-devel
BuildRequires: krb5-devel
BuildRequires: krb5-devel >= 1.11
BuildRequires: libxslt-devel
%if 0%{?fedora} || 0%{?rhel}
BuildRequires: docbook-style-xsl
%endif
BuildRequires: glib-networking
BuildRequires: sed
BuildRequires: glib2-devel >= 2.37.4
BuildRequires: systemd-devel
%if 0%{?fedora} || 0%{?rhel}
BuildRequires: pcp-libs-devel
%else
%if 0%{?suse_version}
# 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
%endif
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
%if 0%{?fedora} || 0%{?rhel}
BuildRequires: openssh-clients
%endif
# For documentation
BuildRequires: xmlto
@ -152,80 +123,70 @@ Requires: cockpit-ws
Requires: cockpit-system
# Optional components
%if 0%{?fedora} || 0%{?rhel} >= 8
%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-dashboard
Recommends: (cockpit-networkmanager if NetworkManager)
Recommends: (cockpit-storaged if udisks2)
Recommends: cockpit-packagekit
%if 0%{?rhel} >= 8 && 0%{?centos} == 0
Recommends: subscription-manager-cockpit
%endif
Suggests: cockpit-pcp
%if 0%{?build_kubernetes}
Suggests: cockpit-kubernetes
%endif
Suggests: cockpit-selinux
%endif
%if 0%{?rhel} && 0%{?centos} == 0
Recommends: subscription-manager-cockpit
%endif
%prep
%setup -q -n cockpit-%{version}
%autopatch -p1
cp %SOURCE1 tools/cockpit.pam
%build
exec 2>&1
%configure \
--disable-silent-rules \
--with-cockpit-user=cockpit-ws \
--with-cockpit-ws-instance-user=cockpit-wsinstance \
--with-selinux-config-type=etc_t \
%if 0%{?rhel} >= 7 && 0%{?rhel} < 8
--without-storaged-iscsi-sessions \
%endif
%if 0%{?suse_version}
--docdir=%_defaultdocdir/%{name} \
--with-pamdir='/%{_lib}/security' \
%endif
--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
%if ! 0%{?opensuse_bs}
make -j4 check
%else
echo "we are in Build service most test fail as no network"
%endif
%install
make install DESTDIR=%{buildroot}
make install-tests DESTDIR=%{buildroot}
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
install -p -m 644 %{S:1} $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
%if 0%{?firewalld_service} == 0
# shipped in firewalld since 0.6, everywhere in Fedora/RHEL 8
rm -f %{buildroot}/%{_prefix}/%{__lib}/firewalld/services/cockpit.xml
%endif
mkdir -p $RPM_BUILD_ROOT%{_docdir}/cockpit/
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
# RHEL 7 needs to keep cockpit-ssh in dashboard for backwards compat
%if 0%{?rhel} == 7
find %{buildroot}%{_datadir}/cockpit/ssh -type f >> dashboard.list
echo '%{_libexecdir}/cockpit-ssh' >> dashboard.list
%else
echo '%dir %{_datadir}/cockpit/ssh' >> base.list
find %{buildroot}%{_datadir}/cockpit/ssh -type f >> base.list
echo '%{_libexecdir}/cockpit-ssh' >> base.list
%endif
%if %{defined build_dashboard}
echo '%dir %{_datadir}/cockpit/dashboard' >> dashboard.list
@ -238,9 +199,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
@ -259,13 +217,6 @@ find %{buildroot}%{_datadir}/cockpit/kdump -type f >> kdump.list
echo '%dir %{_datadir}/cockpit/sosreport' > sosreport.list
find %{buildroot}%{_datadir}/cockpit/sosreport -type f >> sosreport.list
%if %{defined build_subscriptions}
echo '%dir %{_datadir}/cockpit/subscriptions' >> system.list
find %{buildroot}%{_datadir}/cockpit/subscriptions -type f >> system.list
%else
rm -rf %{buildroot}/%{_datadir}/cockpit/subscriptions
%endif
echo '%dir %{_datadir}/cockpit/storaged' > storaged.list
find %{buildroot}%{_datadir}/cockpit/storaged -type f >> storaged.list
@ -281,51 +232,24 @@ find %{buildroot}%{_datadir}/cockpit/apps -type f >> packagekit.list
echo '%dir %{_datadir}/cockpit/machines' > machines.list
find %{buildroot}%{_datadir}/cockpit/machines -type f >> machines.list
%if 0%{?build_ovirt}
echo '%dir %{_datadir}/cockpit/ovirt' > ovirt.list
find %{buildroot}%{_datadir}/cockpit/ovirt -type f >> ovirt.list
%else
rm -rf %{buildroot}/%{_datadir}/cockpit/ovirt
touch ovirt.list
%endif
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
%ifarch x86_64 %{arm} aarch64 ppc64le i686 s390x
%if 0%{?fedora} || 0%{?rhel} < 8
%if 0%{?build_docker}
echo '%dir %{_datadir}/cockpit/docker' > docker.list
find %{buildroot}%{_datadir}/cockpit/docker -type f >> docker.list
%else
rm -rf %{buildroot}/%{_datadir}/cockpit/docker
rm -f %{buildroot}/%{_prefix}/share/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml
touch docker.list
%endif
%else
rm -rf %{buildroot}/%{_datadir}/cockpit/docker
touch docker.list
%endif
%if 0%{?build_kubernetes}
%if %{defined wip}
%else
rm %{buildroot}/%{_datadir}/cockpit/kubernetes/override.json
%endif
echo '%dir %{_datadir}/cockpit/kubernetes' > kubernetes.list
find %{buildroot}%{_datadir}/cockpit/kubernetes -type f >> kubernetes.list
%else
rm -rf %{buildroot}/%{_datadir}/cockpit/kubernetes
rm -f %{buildroot}/%{_libexecdir}/cockpit-kube-auth
rm -f %{buildroot}/%{_libexecdir}/cockpit-kube-launch
rm %{buildroot}/%{_libexecdir}/cockpit-stub
touch kubernetes.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
@ -335,7 +259,7 @@ done
for lib in systemd tmpfiles.d firewalld; do
rm -r %{buildroot}/%{_prefix}/%{__lib}/$lib
done
for libexec in cockpit-askpass cockpit-session cockpit-ws cockpit-desktop; do
for libexec in cockpit-askpass cockpit-session cockpit-ws cockpit-tls cockpit-wsinstance-factory cockpit-desktop; do
rm %{buildroot}/%{_libexecdir}/$libexec
done
rm -r %{buildroot}/%{_libdir}/security %{buildroot}/%{_sysconfdir}/pam.d %{buildroot}/%{_sysconfdir}/motd.d %{buildroot}/%{_sysconfdir}/issue.d
@ -346,65 +270,34 @@ rm -f %{buildroot}%{_datadir}/metainfo/cockpit.appdata.xml
# when not building optional packages, remove their files
%if 0%{?build_optional} == 0
for pkg in apps dashboard docker kubernetes machines ovirt packagekit pcp playground storaged; do
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
# files from -pcp
rm -r %{buildroot}/%{_libexecdir}/cockpit-pcp %{buildroot}/%{_localstatedir}/lib/pcp/
# files from -kubernetes
rm -f %{buildroot}/%{_libexecdir}/cockpit-kube-auth %{buildroot}/%{_libexecdir}/cockpit-kube-launch %{buildroot}/%{_libexecdir}/cockpit-stub
# 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
%if 0%{?suse_version}
rm -rf %{buildroot}/%{_datadir}/cockpit/branding/fedora
rm -rf %{buildroot}/%{_datadir}/cockpit/branding/scientific
rm -rf %{buildroot}/%{_datadir}/cockpit/branding/rhel
rm -rf %{buildroot}/%{_datadir}/cockpit/branding/debian
rm -rf %{buildroot}/%{_datadir}/cockpit/branding/ubuntu
rm -rf %{buildroot}/%{_datadir}/cockpit/branding/centos
mkdir -p %{buildroot}/%{_rundir}/cockpit/
touch %{buildroot}/%{_rundir}/cockpit/motd
%endif
sed -i "s|%{buildroot}||" *.list
# 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 -
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}/pixmaps/cockpit-sosreport.png
%endif
find %{buildroot} -name "*.map" -exec rm -v {} \;
%if 0%{?rhel}
rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml
%endif
%if 0%{?build_basic}
%find_lang cockpit
%endif
# dwz has trouble with the go binaries
# https://fedoraproject.org/wiki/PackagingDrafts/Go
%global _dwz_low_mem_die_limit 0
%if 0%{?fedora} || 0%{?rhel} >= 8
%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
%endif
%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}"
@ -414,6 +307,29 @@ rm -f %{buildroot}%{_datadir}/metainfo/org.cockpit-project.cockpit-selinux.metai
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
%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}/pixmaps/cockpit-sosreport.png
%endif
%if 0%{?build_basic}
%find_lang cockpit
%endif
# -------------------------------------------------------------------------------
# Basic Sub-packages
@ -434,20 +350,16 @@ troubleshooting, interactive command-line sessions, and more.
%{_datadir}/metainfo/cockpit.appdata.xml
%{_datadir}/pixmaps/cockpit.png
%doc %{_mandir}/man1/cockpit.1.gz
%dir %{_rundir}/cockpit
%dir %{_datadir}/metainfo
%ghost %{_rundir}/cockpit/motd
%package bridge
Summary: Cockpit bridge server-side component
Requires: glib-networking
%if 0%{?rhel} != 7
Provides: cockpit-ssh = %{version}-%{release}
# cockpit-ssh moved from dashboard to bridge in 171
Conflicts: cockpit-dashboard < 170.x
# PR #10430 dropped workaround for ws' inability to understand x-host-key challenge
Conflicts: cockpit-ws < 181.x
%endif
%description bridge
The Cockpit bridge component installed server side and runs commands on the
@ -457,9 +369,6 @@ system on behalf of the web based user interface.
%doc %{_mandir}/man1/cockpit-bridge.1.gz
%{_bindir}/cockpit-bridge
%{_libexecdir}/cockpit-askpass
%dir %{_sysconfdir}/cockpit
%dir %{_datadir}/cockpit/base1/fonts
%dir %{_datadir}/cockpit/ssh
%package doc
Summary: Cockpit deployment and developer guide
@ -484,9 +393,8 @@ Requires: cockpit-bridge >= %{version}-%{release}
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}
@ -494,31 +402,27 @@ Provides: cockpit-users = %{version}-%{release}
%if 0%{?rhel}
Provides: cockpit-networkmanager = %{version}-%{release}
Obsoletes: cockpit-networkmanager
Requires: NetworkManager
Requires: NetworkManager >= 1.6
Provides: cockpit-kdump = %{version}-%{release}
Requires: kexec-tools
# Optional components (only when soft deps are supported)
%if 0%{?fedora} || 0%{?rhel} >= 8
Recommends: polkit
%endif
%if 0%{?rhel} >= 8
Recommends: PackageKit
Recommends: NetworkManager-team
Recommends: setroubleshoot-server >= 3.3.3
%endif
Provides: cockpit-selinux = %{version}-%{release}
Provides: cockpit-sosreport = %{version}-%{release}
%endif
%if %{defined build_subscriptions}
Provides: cockpit-subscriptions = %{version}-%{release}
Requires: subscription-manager >= 1.13
%if 0%{?fedora} >= 29
# 0.7.0 (actually) supports task cancellation.
# 0.7.1 fixes tasks never announcing completion.
Recommends: (reportd >= 0.7.1 if abrt)
%endif
# NPM modules which are also available as packages
Provides: bundled(js-jquery) = 3.4.0
Provides: bundled(js-jquery) = 3.4.1
Provides: bundled(js-moment) = 2.24.0
Provides: bundled(nodejs-flot) = 0.8.3
Provides: bundled(nodejs-promise) = 8.0.3
Provides: bundled(xstatic-bootstrap-datepicker-common) = 1.8.0
Provides: bundled(xstatic-patternfly-common) = 3.58.0
Provides: bundled(xstatic-bootstrap-datepicker-common) = 1.9.0
Provides: bundled(xstatic-patternfly-common) = 3.59.4
%description system
This package contains the Cockpit shell and system configuration interfaces.
@ -531,18 +435,11 @@ Summary: Cockpit Web Service
Requires: glib-networking
Requires: openssl
Requires: glib2 >= 2.37.4
# RHEL/CentOS 7 has firewalld 0.6.x, but does not ship cockpit service
%if 0%{?rhel} != 7
%if 0%{?firewalld_service}
Conflicts: firewalld >= 0.6.0-1
%else
Conflicts: firewalld < 0.6.0-1
%endif
%endif
%if 0%{?fedora} || 0%{?rhel} >= 8
Recommends: sscg >= 2.3
Recommends: system-logos
%endif
Requires: systemd >= 235
Suggests: sssd-dbus
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
@ -550,47 +447,59 @@ Requires(postun): systemd
%description ws
The Cockpit Web Service listens on the network, and authenticates users.
If sssd-dbus is installed, you can enable client certificate/smart card
authentication via sssd/FreeIPA.
%files ws -f cockpit.lang
%doc %{_mandir}/man1/cockpit-desktop.1.gz
%doc %{_mandir}/man5/cockpit.conf.5.gz
%doc %{_mandir}/man8/cockpit-ws.8.gz
%doc %{_mandir}/man8/cockpit-tls.8.gz
%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
%dir %{_sysconfdir}/issue.d
%config %{_sysconfdir}/issue.d/cockpit.issue
# dir is not owned by pam in openSUSE
%dir %{_sysconfdir}/motd.d
%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
%{_unitdir}/cockpit-motd.service
%{_unitdir}/cockpit.socket
%if 0%{?firewalld_service}
%{_prefix}/%{__lib}/firewalld/services/cockpit.xml
%endif
%{_unitdir}/cockpit-wsinstance-http.socket
%{_unitdir}/cockpit-wsinstance-http.service
%{_unitdir}/cockpit-wsinstance-http-redirect.socket
%{_unitdir}/cockpit-wsinstance-http-redirect.service
%{_unitdir}/cockpit-wsinstance-https-factory.socket
%{_unitdir}/cockpit-wsinstance-https-factory@.service
%{_unitdir}/cockpit-wsinstance-https@.socket
%{_unitdir}/cockpit-wsinstance-https@.service
%{_unitdir}/system-cockpithttps.slice
%{_prefix}/%{__lib}/tmpfiles.d/cockpit-tempfiles.conf
%{_sbindir}/remotectl
%if 0%{?suse_version}
/%{_lib}/security/pam_ssh_add.so
%else
%{_libdir}/security/pam_ssh_add.so
%endif
%{pamdir}/pam_ssh_add.so
%{pamdir}/pam_cockpit_cert.so
%{_libexecdir}/cockpit-ws
%{_libexecdir}/cockpit-wsinstance-factory
%{_libexecdir}/cockpit-tls
%{_libexecdir}/cockpit-desktop
%attr(4750, root, cockpit-ws) %{_libexecdir}/cockpit-session
%attr(4750, root, cockpit-wsinstance) %{_libexecdir}/cockpit-session
%attr(775, -, wheel) %{_localstatedir}/lib/cockpit
%{_datadir}/cockpit/static
%{_datadir}/cockpit/branding
%dir %{_sysconfdir}/cockpit
%dir %{_sysconfdir}/motd.d
%{_libexecdir}/firewalld
%{_libexecdir}/firewalld/services
%{_datadir}/cockpit/motd
%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-ws" 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
%post ws
%systemd_post cockpit.socket
@ -634,19 +543,16 @@ The Cockpit component for creating diagnostic reports with the
sosreport tool.
%files sosreport -f sosreport.list
%dir %{_datadir}/metainfo
%{_datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml
%{_datadir}/pixmaps/cockpit-sosreport.png
%package networkmanager
Summary: Cockpit user interface for networking, using NetworkManager
Requires: cockpit-bridge >= 122
Requires: cockpit-shell >= 122
Requires: NetworkManager
# Optional components (only when soft deps are supported)
%if 0%{?fedora} || 0%{?rhel} >= 8
Requires: cockpit-bridge >= 186
Requires: cockpit-shell >= 186
Requires: NetworkManager >= 1.6
# Optional components
Recommends: NetworkManager-team
%endif
BuildArch: noarch
%description networkmanager
@ -662,9 +568,7 @@ The Cockpit component for managing networking. This package uses NetworkManager
Summary: Cockpit SELinux package
Requires: cockpit-bridge >= 122
Requires: cockpit-shell >= 122
%if 0%{?fedora} || 0%{?rhel} >= 8
Requires: setroubleshoot-server >= 3.3.3
%endif
BuildArch: noarch
%description selinux
@ -672,18 +576,19 @@ This package contains the Cockpit user interface integration with the
utility setroubleshoot to diagnose and resolve SELinux issues.
%files selinux -f selinux.list
%dir %{_datadir}/metainfo
%{_datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml
%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
@ -692,30 +597,17 @@ Dummy package from building optional packages only; never install or publish me.
%package -n cockpit-storaged
Summary: Cockpit user interface for storage, using udisks
Requires: cockpit-shell >= 122
Requires: cockpit-shell >= 186
Requires: udisks2 >= 2.6
%if 0%{?rhel} == 7
# Recommends: not supported in RHEL <= 7
Requires: udisks2-lvm2 >= 2.6
Requires: udisks2-iscsi >= 2.6
Requires: device-mapper-multipath
Requires: python
Requires: python-dbus
%else
Recommends: udisks2-lvm2 >= 2.6
Recommends: udisks2-iscsi >= 2.6
Recommends: device-mapper-multipath
Recommends: clevis-luks
Requires: %{__python3}
%if !0%{?suse_version}
Requires: python3-dbus
%else
%if 0%{?suse_version} == 1315
Requires: dbus-1-python
%else
%if 0%{?suse_version}
Requires: python3-dbus-python
%endif
%endif
%else
Requires: python3-dbus
%endif
BuildArch: noarch
@ -723,7 +615,6 @@ BuildArch: noarch
The Cockpit component for managing storage. This package uses udisks.
%files -n cockpit-storaged -f storaged.list
%dir %{_datadir}/metainfo
%dir %{_datadir}/cockpit/storaged/images
%{_datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml
@ -745,21 +636,19 @@ These files are not required for running Cockpit.
%package -n cockpit-machines
BuildArch: noarch
Summary: Cockpit user interface for virtual machines
Requires: cockpit-bridge >= 122
Requires: cockpit-system >= 122
%if 0%{?rhel} == 7 || 0%{?suse_version}
Requires: libvirt
Requires: cockpit-bridge >= 186
Requires: cockpit-system >= 186
%if 0%{?suse_version}
Requires: libvirt-daemon-qemu
%else
Requires: (libvirt-daemon-kvm or libvirt)
Requires: libvirt-daemon-kvm
%endif
Requires: libvirt-client
%if 0%{?fedora} || 0%{?rhel} >= 8
Requires: libvirt-dbus >= 1.2.0
# Optional components
Recommends: virt-install
Recommends: libosinfo
Recommends: python3-gobject-base
%endif
%description -n cockpit-machines
The Cockpit components for managing virtual machines.
@ -767,66 +656,32 @@ The Cockpit components for managing virtual machines.
If "virt-install" is installed, you can also create new virtual machines.
%files -n cockpit-machines -f machines.list
%dir %{_datadir}/metainfo
%{_datadir}/metainfo/org.cockpit-project.cockpit-machines.metainfo.xml
%if 0%{?build_ovirt}
%package -n cockpit-machines-ovirt
BuildArch: noarch
Summary: Cockpit user interface for oVirt virtual machines
Requires: cockpit-bridge >= 122
Requires: cockpit-system >= 122
%if 0%{?rhel} == 7
Requires: libvirt
%else
Requires: (libvirt-daemon-kvm or libvirt)
%endif
Requires: libvirt-client
%description -n cockpit-machines-ovirt
The Cockpit components for managing oVirt virtual machines.
%files -n cockpit-machines-ovirt -f ovirt.list
%endif
%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.
%files -n cockpit-pcp -f pcp.list
%{_libexecdir}/cockpit-pcp
%dir %{_localstatedir}/lib/pcp
%dir %{_localstatedir}/lib/pcp
%dir %{_localstatedir}/lib/pcp/config
%dir %{_localstatedir}/lib/pcp/config/pmlogconf
%dir %{_localstatedir}/lib/pcp/config/pmlogconf/tools
%{_localstatedir}/lib/pcp/config/pmlogconf/tools/cockpit
%post -n cockpit-pcp
# HACK - https://bugzilla.redhat.com/show_bug.cgi?id=1185764
# We can't use "systemctl reload-or-try-restart" since systemctl might
# be out of sync with reality.
/usr/share/pcp/lib/pmlogger condrestart || true
/usr/share/pcp/lib/pmlogger condrestart
%if %{defined build_dashboard}
%package -n cockpit-dashboard
Summary: Cockpit remote servers and dashboard
%if 0%{?rhel} == 7
Provides: cockpit-ssh = %{version}-%{release}
# nothing depends on the dashboard, but we can't use it with older versions of the bridge
Conflicts: cockpit-bridge < 135
# PR #10430 dropped workaround for ws' inability to understand x-host-key challenge
Conflicts: cockpit-ws < 173.1
%else
BuildArch: noarch
Requires: cockpit-ssh >= 135
Conflicts: cockpit-ws < 135
%endif
%description -n cockpit-dashboard
Cockpit support for connecting to remote servers (through ssh),
@ -836,61 +691,26 @@ bastion hosts, and a basic dashboard.
%endif
%ifarch x86_64 %{arm} aarch64 ppc64le i686 s390x
%if 0%{?fedora} || 0%{?rhel} < 8
%if 0%{?build_docker}
%package -n cockpit-docker
Summary: Cockpit user interface for Docker containers
Requires: cockpit-bridge >= 122
Requires: cockpit-shell >= 122
Requires: /usr/bin/docker
Requires: /usr/lib/systemd/system/docker.service
%if 0%{?fedora} || 0%{?suse_version}
Requires: (docker or moby-engine or docker-ce)
Requires: %{__python3}
%else
Requires: python2
%endif
%description -n cockpit-docker
The Cockpit components for interacting with Docker and user interface.
This package is not yet complete.
%files -n cockpit-docker -f docker.list
%dir %{_datadir}/cockpit/docker/images
%endif
%endif
%if 0%{?build_kubernetes}
%package -n cockpit-kubernetes
Summary: Cockpit user interface for Kubernetes cluster
Requires: /usr/bin/kubectl
# Requires: Needs newer localization support
Requires: cockpit-bridge >= 137.x
Requires: cockpit-shell >= 137.x
BuildRequires: %{go_scl_prefix}golang-bin
BuildRequires: %{go_scl_prefix}golang-src
Provides: cockpit-stub = %{version}-%{release}
%description -n cockpit-kubernetes
The Cockpit components for visualizing and configuring a Kubernetes
cluster. Installed on the Kubernetes master. This package is not yet complete.
%if 0%{?rhel} >= 8
%enable_gotoolset7
%endif
%files -n cockpit-kubernetes -f kubernetes.list
%{_libexecdir}/cockpit-kube-auth
%{_libexecdir}/cockpit-kube-launch
%{_libexecdir}/cockpit-stub
%{_datadir}/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml
%endif
%package -n cockpit-packagekit
Summary: Cockpit user interface for packages
BuildArch: noarch
Requires: cockpit-bridge >= 138
Requires: cockpit-bridge >= 186
Requires: PackageKit
%description -n cockpit-packagekit
@ -899,7 +719,8 @@ 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