Sync from SUSE:SLFO:Main cockpit revision 21a2e7ce1e498ed32d992cd3fe187529

This commit is contained in:
Adrian Schröter 2024-05-03 11:44:08 +02:00
commit 7b72ee545f
25 changed files with 8885 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

View File

@ -0,0 +1,22 @@
commit fc0e3304732a9aaff1487833342d5fc8ea26ce04
Author: Ludwig Nussel <ludwig.nussel@suse.de>
Date: Fri Aug 6 15:11:23 2021 +0200
selinux: allow login to read motd file
Index: cockpit/selinux/cockpit.te
===================================================================
--- cockpit.orig/selinux/cockpit.te
+++ cockpit/selinux/cockpit.te
@@ -202,3 +202,11 @@ optional_policy(`
optional_policy(`
gnome_exec_keyringd(cockpit_session_t)
')
+
+# login may read motd file through pam
+optional_policy(`
+ gen_require(`
+ type local_login_t;
+ ')
+ cockpit_read_pid_files(local_login_t)
+')

View File

@ -0,0 +1,13 @@
Index: cockpit-251.3/pkg/selinux/setroubleshoot-view.jsx
===================================================================
--- cockpit-251.3.orig/pkg/selinux/setroubleshoot-view.jsx
+++ cockpit-251.3/pkg/selinux/setroubleshoot-view.jsx
@@ -458,7 +458,7 @@ export class SETroubleshootPage extends
<PageSection>
<Stack hasGutter>
<StackItem>{modifications}</StackItem>
- <StackItem>{troubleshooting}</StackItem>
+ <StackItem>{ !this.props.connected || troubleshooting}</StackItem>
</Stack>
</PageSection>
</Page>

View File

@ -0,0 +1,11 @@
--- cockpit/src/Makefile.am.orig
+++ cockpit/src/Makefile.am
@@ -44,7 +44,7 @@
$(NULL)
AM_CFLAGS = \
- -std=gnu18 \
+ -std=gnu11 \
-pthread \
-Wall \
-Werror=strict-prototypes \

44
README.packaging Normal file
View File

@ -0,0 +1,44 @@
The upstream cockpit spec file is rather complex and ugly. It does
contain information we need though, such as the bundled node
modules. Therefore the package reuses the upstream spec file and
applies openSUSE specifics that upstream doesn't accept on top. For
that purpose a git repo tracks the spec file changes:
https://github.com/lnussel/cockpit
There' an opensuse-$VERSION branch for each release
For simple fixes it's fine to just submit the spec file by OBS
means, I'll retrofit in git. Don't worry about that.
For version updates the git workflow really is needed to maintain
mental health though.
The following workflow is used to update the package to a newer
version:
- create a branch for the new version based on the old one:
git checkout -b opensuse-$NEW_VERSION opensuse-$OLD_VERSION
- use interactive rebase to amend the commits marked as EDIT THIS:
git rebase -i $NEW_VERSION
* for the very fist commit download the new tarball and extract
the spec file from it. Copy the spec file over
tools/cockpit.spec. That is basically what changed between the
versions wrt spec file.
* the second one adjust the spec file to have $NEW_VERSION. For
whatever reason the upstream spec file alwas has version 0.
* the rest of the changes should just apply.
- copy the spec file back into the OBS checkout and continue with
regular tasks related to updating packages.
- If any further spec file changes were needed, copy the spec back
into the git tree and commit there. Amend and reorder as needed.
- When done, push the git repo.
Sending fixes upstream:
if you have any changes that should go upstream, create a new, clean
branch and cherry pick *one* commit into it. Upstream wants pull
requests with only one commit
NOTE: ONLY the .spec file should be in the git.
IDEA: maybe other things should be removed from the git tree then?

32
_service Normal file
View File

@ -0,0 +1,32 @@
<services>
<service name="obs_scm" mode="manual">
<param name="url">https://github.com/dgdavid/cockpit-suse-theme.git</param>
<param name="versionformat"></param>
<param name="scm">git</param>
<param name="revision">main</param>
</service>
<service mode="buildtime" name="tar">
<param name="obsinfo">cockpit-suse-theme.obsinfo</param>
<!-- On SLE15.4 extra '-' gets added to the filename so we need to
define the name explicitly -->
<param name="filename">cockpit-suse-theme</param>
</service>
<service name="obs_scm" mode="manual">
<param name="versionformat">@PARENT_TAG@</param>
<param name="url">https://github.com/cockpit-project/cockpit.git/</param>
<param name="scm">git</param>
<param name="revision">309</param>
<param name="submodules">disable</param>
</service>
<service name="node_modules" mode="manual">
<param name="cpio">node_modules.obscpio</param>
<param name="output">node_modules.spec.inc</param>
<param name="source-offset">1000</param>
</service>
<service mode="buildtime" name="tar">
<param name="obsinfo">cockpit.obsinfo</param>
</service>
<service mode="buildtime" name="set_version">
<param name="basename">cockpit</param>
</service>
</services>

6
_servicedata Normal file
View File

@ -0,0 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">http://github.com/cockpit-project/cockpit.git</param>
<param name="changesrevision">046b3d4b381cd60f9d44756fc51f15ed7e17d0b5</param></service><service name="tar_scm">
<param name="url">https://github.com/dgdavid/cockpit-suse-theme.git</param>
<param name="changesrevision">fe08b35e64ad45f4b56cd636fdfec8fb18d69ab7</param></service></servicedata>

BIN
cockpit-309.obscpio (Stored with Git LFS) Normal file

Binary file not shown.

2
cockpit-rpmlintrc Normal file
View File

@ -0,0 +1,2 @@
# False positive
addFilter('explicit-lib-dependency.*libvirt-client');

BIN
cockpit-suse-theme.obscpio (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,4 @@
name: cockpit-suse-theme
version:
mtime: 1655379139
commit: fe08b35e64ad45f4b56cd636fdfec8fb18d69ab7

511
cockpit.changes Normal file
View File

@ -0,0 +1,511 @@
-------------------------------------------------------------------
Wed Mar 13 11:26:28 UTC 2024 - Miika Alikirri <miika.alikirri@suse.com>
- Allow root login on Micro 6
-------------------------------------------------------------------
Mon Mar 4 13:24:23 UTC 2024 - Adam Majer <adam.majer@suse.de>
- cockpit.pam: respect /etc/cockpit/disallowed-users
This means by default root cannot login with password to cockpit
(bsc#1216080)
-------------------------------------------------------------------
Thu Feb 29 16:40:06 UTC 2024 - Cathy Hu <cathy.hu@suse.com>
- Remove SELinux file context for /usr/bin/cockpit-bridge, this
is already defined in the main selinux-policy package (bsc#1220385).
Modified selinux_libdir.patch
-------------------------------------------------------------------
Thu Feb 15 12:21:55 UTC 2024 - Adam Majer <adam.majer@suse.de>
- suse-microos-branding.patch: fix branding for SLE Micro
(bsc#1219929)
- don't clobber existing links with empty files
-------------------------------------------------------------------
Wed Jan 31 11:02:35 UTC 2024 - Adam Majer <adam.majer@suse.de>
- new version 309:
* storage redesign
* initial btrfs support
https://cockpit-project.org/blog/cockpit-309.html
-------------------------------------------------------------------
Thu Jan 25 09:36:45 UTC 2024 - Luna D Dragon <luna.dragon@suse.com>
- suse_docs.patch: replace with suse docs and move docs with out eqiv
to docs-rh (bsc#1219088)
- hide-docs.patch: obsolete by above, removed
-------------------------------------------------------------------
Thu Jan 25 09:08:12 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Provide users/groups cockpit-wsinstance and cockpit-ws: they are
generated by cockpit-ws %pre script.
-------------------------------------------------------------------
Wed Jan 24 12:55:20 UTC 2024 - Adam Majer <adam.majer@suse.de>
- hide-docs.patch: hide RHEL docs in shell/manifest.json
-------------------------------------------------------------------
Fri Jan 12 16:40:17 UTC 2024 - Adam Majer <adam.majer@suse.de>
- enable python-bridge for suse distros
- vendor.tar.gz -- submodules in vendor/ subdirectory. These are not part
of original tarball because obs service wants to bundle node_modules
there too....
-------------------------------------------------------------------
Thu Dec 21 15:22:27 UTC 2023 - Adam Majer <adam.majer@suse.de> - 307
- new version 307:
https://cockpit-project.org/blog/cockpit-307.html
https://cockpit-project.org/blog/cockpit-306.html
https://cockpit-project.org/blog/cockpit-305.html
https://cockpit-project.org/blog/cockpit-304.html
https://cockpit-project.org/blog/cockpit-303.html
https://cockpit-project.org/blog/cockpit-302.html
https://cockpit-project.org/blog/cockpit-301.html
- css-overrides.patch, storage-btrfs.patch: refreshed
-------------------------------------------------------------------
Wed Sep 20 16:17:59 UTC 2023 - Miika Alikirri <miika.alikirri@suse.com>
- Port SLE selinux bug fix from SLE Micro 5.5
* Copied selinux_libdir.patch from SLEM package
-------------------------------------------------------------------
Fri Sep 8 12:53:26 UTC 2023 - Adam Majer <adam.majer@suse.de> - 300.1
- new version 300.1
https://cockpit-project.org/blog/cockpit-300.html
https://cockpit-project.org/blog/cockpit-299.html
-------------------------------------------------------------------
Fri Sep 8 12:29:33 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Re-add pwscore dependency for SLE
-------------------------------------------------------------------
Thu Aug 31 10:00:06 UTC 2023 - Miika Alikirri <miika.alikirri@suse.com>
- Fix building for SLE15.5 and SLE15.4
-------------------------------------------------------------------
Fri Aug 18 13:15:17 UTC 2023 - Adam Majer <adam.majer@suse.de>
- new version 298:
https://cockpit-project.org/blog/cockpit-298.html
-------------------------------------------------------------------
Tue Aug 15 13:53:14 UTC 2023 - Zdenek Kubala <zkubala@suse.cz>
- set setroubleshoot-server dependency and do not apply
0002-selinux-temporary-remove-setroubleshoot-section-patch for
cockpit-selinux when build for SLE Micro 5.5
-------------------------------------------------------------------
Thu Aug 3 11:35:47 UTC 2023 - Adam Majer <adam.majer@suse.de>
- new version 297:
- https://cockpit-project.org/blog/cockpit-297.html
- hide-docs.patch: refreshed
-------------------------------------------------------------------
Mon Jul 17 12:19:27 UTC 2023 - Adam Majer <adam.majer@suse.de>
- new version 296:
- https://cockpit-project.org/blog/cockpit-296.html
- https://cockpit-project.org/blog/cockpit-295.html
- https://cockpit-project.org/blog/cockpit-294.html
- 0004-leap-gnu18-removal.patch: added support for Leap thanks to Lubos
-------------------------------------------------------------------
Tue Jun 13 12:39:20 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Add fake openSUSE branding target when building on non-openSUSE
builds so branding does not need to be removed
- Remove tests package so we don't have to ship a test PAM module
-------------------------------------------------------------------
Fri Jun 2 13:26:45 UTC 2023 - Adam Majer <adam.majer@suse.de>
- new version 293:
- https://cockpit-project.org/blog/cockpit-293.html
- refreshed: css-overrides.patch
-------------------------------------------------------------------
Tue May 30 15:05:45 UTC 2023 - Adam Majer <adam.majer@suse.de>
- new version 292:
- https://cockpit-project.org/blog/cockpit-292.html
- refreshed patches: css-overrides.patch, hide-pcp.patch,
0001-selinux-allow-login-to-read-motd-file.patch
-------------------------------------------------------------------
Tue Feb 7 15:47:35 UTC 2023 - Stefan Schubert <schubi@suse.com>
- Migration of PAM settings to /usr/lib/pam.d.
-------------------------------------------------------------------
Wed Jan 25 11:13:36 UTC 2023 - Luna D Dragon <luna.dragon@suse.com>
- restore dependency on /usr/bin/pwscore (bsc#1202277)
- remove remove-pwscore.patch
-------------------------------------------------------------------
Mon Nov 28 13:34:07 UTC 2022 - Zdenek Kubala <zkubala@suse.cz>
- enable build of cockpit-selinux module
- changes to keep it sync with sle micro
(0002-selinux-temporary-remove-setroubleshoot-section.patch)
-------------------------------------------------------------------
Tue Sep 20 08:20:16 UTC 2022 - Adam Majer <adam.majer@suse.de>
- new version 276.1
- login: Use valid selectors when testing for :is() / :where() support.
- stability and performance improvements
- previous changes https://cockpit-project.org/blog/cockpit-275.html
- css-overrides.patch, hide-docs.patch, remove-pwscore.patch: refreshed
- kdump-close.patch, kdump-refactor.patch, kdump-suse.patch: upstreamed
and removed
-------------------------------------------------------------------
Tue Sep 13 09:46:17 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Fix cockpit-storage dependencies
- Merge SUSE branding into cockpit package
-------------------------------------------------------------------
Mon Sep 5 08:09:56 UTC 2022 - Jacek Tomasiak <jtomasiak@suse.com>
- Update kdump-suse.patch to match upstream.
-------------------------------------------------------------------
Wed Aug 24 12:25:42 UTC 2022 - Jacek Tomasiak <jtomasiak@suse.com>
- Add kdump-close.patch required by patches below.
- Add kdump-refactor.patch and kdump-suse.patch to support SUSE
kdump config management in cockpit.
-------------------------------------------------------------------
Wed Aug 24 07:37:46 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Use a list of available brandings to include in cockpit-ws
package instead of resolving by symlinks.
-------------------------------------------------------------------
Thu Jul 28 08:41:13 UTC 2022 - Jacek Tomasiak <jtomasiak@suse.com>
- Update suse-microos-branding.patch for new /etc/os-release ID.
- Add storage-btrfs.patch to enable BTRFS use in cockpit-storage.
-------------------------------------------------------------------
Thu Jun 23 09:27:17 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Add conflict between cockpit-networkmanager and cockpit-wicked
as they use the same URL paths.
-------------------------------------------------------------------
Mon Jun 20 08:15:34 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Re-arrange patches and apply them manually again.
Some were accidentally added and should be sle only
-------------------------------------------------------------------
Fri Jun 17 10:09:09 UTC 2022 - Adam Majer <adam.majer@suse.de>
- css-overrides.patch: css overrides for better theming support
-------------------------------------------------------------------
Fri Jun 10 08:22:31 UTC 2022 - Adam Majer <adam.majer@suse.de>
- new version 271
https://cockpit-project.org/blog/cockpit-271.html
- cockpit-redhatfont.diff: not needed, dropped
- 0001-selinux-allow-login-to-read-motd-file.patch, hide-docs.patch,
hide-pcp.patch remove-pwscore.patch: refreshed
-------------------------------------------------------------------
Fri Mar 18 14:28:24 UTC 2022 - Jacek Tomasiak <jtomasiak@suse.com>
- re-add suse-microos-branding.patch from GitHub
- add hide-docs.patch (bsc#1197003)
-------------------------------------------------------------------
Tue Mar 15 13:42:38 UTC 2022 - Jacek Tomasiak <jtomasiak@suse.com>
- make package compatible with OBS version (bsc#1197224):
* move branding images to distribution-logos-SLE package
* re-add dependency on distribution-logos
* remove branding patch and assets (suse-microos-branding.patch,
suse-microos-branding.tar.gz); moved to GitHub fork
* remove local __python3 macro
* apply SLE specific patches only on SLE
-------------------------------------------------------------------
Mon Feb 28 10:41:31 UTC 2022 - Jacek Tomasiak <jtomasiak@suse.com>
- add hide-pcp.patch to hide references to PCP (Performance
Co-Pilot) and metric collection (bsc#1195943). The cockpit-pcp
package is not included in SLE Micro 5.2 base and these parts
require it.
-------------------------------------------------------------------
Mon Jan 31 15:30:24 UTC 2022 - Jacek Tomasiak <jtomasiak@suse.com>
- change self-signed cert group from cockpit-wsintance to
cockpit-ws on upgrade
-------------------------------------------------------------------
Mon Jan 31 08:26:46 UTC 2022 - Jacek Tomasiak <jtomasiak@suse.com>
- update to new LTS version from openSUSE:Factory
- port remove-pwscore.patch
* remove dependency on pwscore (bsc#1182924)
* remove password strenth indicator
- port branding changes as suse-microos "theme"
* remove suse_cockpit_assets.tar.gz
* add suse-microos-branding.tar.gz
* remove branding_tests.patch
* add suse-microos-branding.patch
- remove files not needed to build this version anymore
* webpack-warnings-are-not-errors.patch
* github_package.patch
* nodejs_output_helper.bash
- remove cockpit.permissions workaround (bsc#1169614)
-------------------------------------------------------------------
Fri Jan 28 14:54:44 UTC 2022 - Adam Majer <adam.majer@suse.de>
- new version 251.3
* https://cockpit-project.org/blog/cockpit-251.html
with additional fixes
* Fix "Administrative Access" prompt for "Duo" MFA
-------------------------------------------------------------------
Thu Aug 19 14:54:46 UTC 2021 - Ludwig Nussel <lnussel@suse.de>
- add --legacy-peer-deps to fix build
-------------------------------------------------------------------
Tue Aug 3 14:46:16 UTC 2021 - Ludwig Nussel <lnussel@suse.de>
- new version 250
https://cockpit-project.org/blog/cockpit-250.html
- fix pam_motd selinux denial (0001-selinux-allow-login-to-read-motd-file.patch)
-------------------------------------------------------------------
Thu May 27 11:01:03 UTC 2021 - Adam Majer <adam.majer@suse.de>
- new version 245
https://cockpit-project.org/blog/cockpit-245.html
-------------------------------------------------------------------
Tue May 18 08:06:31 UTC 2021 - Ludwig Nussel <lnussel@suse.de>
- new version 244.1
https://cockpit-project.org/blog/cockpit-244.html
- enable SELinux
-------------------------------------------------------------------
Mon May 3 14:11:01 UTC 2021 - Ludwig Nussel <lnussel@suse.de>
- install all of pkg/lib in -devel package. Cockpit-machines needs more
-------------------------------------------------------------------
Fri Apr 30 15:51:43 UTC 2021 - Ludwig Nussel <lnussel@suse.de>
- new version 243
https://cockpit-project.org/blog/cockpit-243.html
https://cockpit-project.org/blog/cockpit-242.html
https://cockpit-project.org/blog/cockpit-241.html
https://cockpit-project.org/blog/cockpit-240.html
https://cockpit-project.org/blog/cockpit-239.html
-------------------------------------------------------------------
Wed Feb 24 17:03:41 UTC 2021 - Adam Majer <adam.majer@suse.de>
- new version 238.1
https://cockpit-project.org/blog/cockpit-238.html
https://cockpit-project.org/blog/cockpit-237.html
- No longer recompress tarball at buildtime
-------------------------------------------------------------------
Thu Feb 4 16:18:13 UTC 2021 - Ludwig Nussel <lnussel@suse.de>
- Rebuild from git leveraging local-npm-registry (needs
cockpit-redhatfont.diff)
-------------------------------------------------------------------
Fri Jan 22 15:38:53 UTC 2021 - Ludwig Nussel <lnussel@suse.de>
- new version 236
https://cockpit-project.org/blog/cockpit-236.html
-------------------------------------------------------------------
Fri Jan 22 08:53:25 UTC 2021 - Ludwig Nussel <lnussel@suse.de>
- new version 235
https://cockpit-project.org/blog/cockpit-235.html
https://cockpit-project.org/blog/cockpit-234.html
https://cockpit-project.org/blog/cockpit-233.html
-------------------------------------------------------------------
Fri Nov 27 12:39:21 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- new version 232
https://cockpit-project.org/blog/cockpit-232.html
https://cockpit-project.org/blog/cockpit-231.html
-------------------------------------------------------------------
Thu Oct 15 08:16:01 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- new version 230
https://cockpit-project.org/blog/cockpit-230.html
-------------------------------------------------------------------
Tue Oct 6 06:24:58 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- new version 229
https://cockpit-project.org/blog/cockpit-229.html
-------------------------------------------------------------------
Thu Oct 1 11:32:48 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- new version 228
https://cockpit-project.org/blog/cockpit-228.html
https://cockpit-project.org/blog/cockpit-227.html
https://cockpit-project.org/blog/cockpit-226.html
- enable cockpit-machines to manage libvirt
-------------------------------------------------------------------
Thu Sep 10 12:49:00 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- adjust spec file to match upstream
-------------------------------------------------------------------
Fri Sep 4 12:09:16 UTC 2020 - Thorsten Kukuk <kukuk@suse.com>
- cockpit-ws: don't require systemd (allows to build a very small
cockpit-ws container)
-------------------------------------------------------------------
Mon Aug 31 15:46:35 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- Add README.packaging for packagers
-------------------------------------------------------------------
Fri Aug 14 12:09:24 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- new version 225:
https://cockpit-project.org/blog/cockpit-223.html
https://cockpit-project.org/blog/cockpit-224.html
https://cockpit-project.org/blog/cockpit-225.html
-------------------------------------------------------------------
Wed Aug 12 09:33:17 UTC 2020 - Thorsten Kukuk <kukuk@suse.com>
- Require group wheel
- Add permission macros [bsc#1169614]
- Create tmpfiles in %post install
-------------------------------------------------------------------
Fri Jun 26 12:09:09 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- new version 222:
https://cockpit-project.org/blog/cockpit-222.html
changelog from 221:
https://cockpit-project.org/blog/cockpit-221.html
- enable docker module
-------------------------------------------------------------------
Tue Jun 9 12:11:54 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- new version 220:
https://cockpit-project.org/blog/cockpit-220.html
-------------------------------------------------------------------
Tue Jun 9 08:46:59 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- disable selinux, sosreport and machines subpackages due to missing
dependencies
-------------------------------------------------------------------
Wed Apr 29 13:26:03 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- remove badness overrides to allow Factory submission
-------------------------------------------------------------------
Wed Apr 29 07:50:41 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- remove branding with stale symlinks. Can't rely on /etc/os-release as OBS may
use the dummy-release package.
-------------------------------------------------------------------
Tue Apr 28 09:18:22 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
- use pkgconfig(systemd) and pkgconfig(krb5)
- fix build with glib update (0001-bridge-Pass-connectable-to-TLS-client-connection.patch)
-------------------------------------------------------------------
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>
- updated to latest release 195
-------------------------------------------------------------------
Thu Mar 7 13:23:36 UTC 2019 - Alex <aevseev@gmail.com>
- New upstream version - 189
-------------------------------------------------------------------
Mon Feb 4 18:24:55 UTC 2019 - aevseev@gmail.com
- New upstream version - 186
-------------------------------------------------------------------
Wed Oct 24 13:37:31 UTC 2018 - aevseev@gmail.com
- New upstream version - 180
-------------------------------------------------------------------
Fri Sep 7 10:24:09 UTC 2018 - aevseev@gmail.com
- New upstream version - 177
-------------------------------------------------------------------
Mon Aug 27 08:28:01 UTC 2018 - aevseev@gmail.com
- First build. Version - 176.
-------------------------------------------------------------------
Tue Oct 13 11:41:44 UTC 2015 - kkaempf@suse.com
- Update to 0.79
* Vagrant file for Cockpit development
* Use libvirt for testing
* Display only last lines of Kubernetes container logs
See https://github.com/cockpit-project/cockpit/releases
- Add branding-symlinks.patch, SUSE doesn't carry Fedora pixmaps
-------------------------------------------------------------------
Sat Feb 7 13:22:23 UTC 2015 - kkaempf@suse.com
- Initial release 0.38

4
cockpit.obsinfo Normal file
View File

@ -0,0 +1,4 @@
name: cockpit
version: 309
mtime: 1705581060
commit: 2db54daf07654e7fdaba849ca186b74c79305bec

10
cockpit.pam Normal file
View File

@ -0,0 +1,10 @@
#%PAM-1.0
auth substack common-auth
# List of users to deny access to Cockpit, by default root is included.
auth required pam_listfile.so item=user sense=deny file=/etc/cockpit/disallowed-users onerr=succeed
account required pam_nologin.so
account include common-account
password include common-password
session required pam_loginuid.so
session optional pam_keyinit.so force revoke
session include common-session

938
cockpit.spec Normal file
View File

@ -0,0 +1,938 @@
#
# Copyright (C) 2014-2020 Red Hat, Inc.
#
# Cockpit is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Cockpit is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Cockpit; If not, see <http://www.gnu.org/licenses/>.
#
#
# This file is maintained at the following location:
# https://github.com/cockpit-project/cockpit/blob/main/tools/cockpit.spec
#
# If you are editing this file in another location, changes will likely
# be clobbered the next time an automated release is done.
#
# Check first cockpit-devel@lists.fedorahosted.org
#
# earliest base that the subpackages work on; this is still required as long as
# we maintain the basic/optional split, then it can be replaced with just %{version}.
%define required_base 266
# we generally want CentOS packages to be like RHEL; special cases need to check %{centos} explicitly
%if 0%{?centos}
%define rhel %{centos}
%endif
%define _hardened_build 1
%define __lib lib
%if %{defined _pamdir}
%define pamdir %{_pamdir}
%else
%define pamdir %{_libdir}/security
%endif
Name: cockpit
Summary: Web Console for Linux servers
License: LGPL-2.1-or-later
URL: https://cockpit-project.org/
Version: 309
Release: 0
Source0: cockpit-%{version}.tar
Source1: cockpit.pam
Source2: cockpit-rpmlintrc
Source3: cockpit-suse-theme.tar
Source10: vendor.tar.gz
Source99: README.packaging
Source98: package-lock.json
Source97: node_modules.spec.inc
%include %{_sourcedir}/node_modules.spec.inc
Patch1: 0001-selinux-allow-login-to-read-motd-file.patch
Patch2: suse_docs.patch
Patch3: suse-microos-branding.patch
Patch4: css-overrides.patch
Patch5: storage-btrfs.patch
# SLE Micro specific patches
Patch101: hide-pcp.patch
Patch102: 0002-selinux-temporary-remove-setroubleshoot-section.patch
# For anything based on SLES 15 codebase (including Leap, SLE Micro)
Patch103: 0004-leap-gnu18-removal.patch
Patch104: selinux_libdir.patch
%if 0%{?fedora} >= 38 || 0%{?rhel} >= 9
%define cockpit_enable_python 1
%endif
# Experimental Python support
%if !%{defined cockpit_enable_python}
%define cockpit_enable_python 0
%endif
# in RHEL 8 the source package is duplicated: cockpit (building basic packages like cockpit-{bridge,system})
# and cockpit-appstream (building optional packages like cockpit-{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
%define build_all 1
%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
%else
%define build_basic 1
%define build_optional 1
%endif
%if 0%{?build_optional} && 0%{?suse_version} == 0
%define build_tests 1
%endif
# Allow root login in Cockpit on SLEM6 and RHEL 8 and lower as it also allows password login over SSH.
%if ( 0%{?rhel} && 0%{?rhel} <= 8 ) || 0%{?suse_version} >= 1600
%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 || 0%{?suse_version} > 1500
%ifarch %ix86
%define build_pcp 0
%endif
%endif
# Ship custom SELinux policy (but not for cockpit-appstream)
%if 0%{?rhel} >= 9 || 0%{?fedora} || 0%{?suse_version} >= 1600 || 0%{?is_smo}
%if "%{name}" == "cockpit"
%define selinuxtype targeted
%define selinux_configure_arg --enable-selinux-policy=%{selinuxtype}
%define with_selinux 1
%endif
%endif
BuildRequires: gcc
BuildRequires: pkgconfig(gio-unix-2.0)
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(polkit-agent-1) >= 0.105
BuildRequires: pam-devel
BuildRequires: autoconf automake
BuildRequires: make
BuildRequires: /usr/bin/python3
BuildRequires: python3-devel
%if ( 0%{?rhel} && 0%{?rhel} <= 8 ) || 0%{?suse_version} <= 1500
# RHEL 8's gettext does not yet have metainfo.its
BuildRequires: gettext >= 0.19.7
%if 0%{?rhel}
BuildRequires: libappstream-glib-devel
%else
# Suse's package has a different name
BuildRequires: appstream-glib-devel
%endif
%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
BuildRequires: pkgconfig(krb5) >= 1.11
BuildRequires: libxslt-devel
BuildRequires: glib-networking
BuildRequires: sed
BuildRequires: glib2-devel >= 2.50.0
# this is for runtimedir in the tls proxy ace21c8879
BuildRequires: pkgconfig(libsystemd) >= 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
# needed for /var/lib/pcp directory ownership
BuildRequires: pcp
%else
%if %{build_pcp}
BuildRequires: pcp-libs-devel
%endif
BuildRequires: openssh-clients
BuildRequires: docbook-style-xsl
%endif
BuildRequires: krb5-server
BuildRequires: gdb
# For documentation
BuildRequires: xmlto
%if 0%{?with_selinux}
BuildRequires: selinux-policy
BuildRequires: selinux-policy-%{selinuxtype}
BuildRequires: selinux-policy-devel
%endif
# for rebuilding nodejs bits
BuildRequires: npm
BuildRequires: sassc
BuildRequires: local-npm-registry
# This is the "cockpit" metapackage. It should only
# Require, Suggest or Recommend other cockpit-xxx subpackages
Requires: cockpit-bridge
Requires: cockpit-ws
Requires: cockpit-system
# Optional components
Recommends: (cockpit-storaged if udisks2)
Recommends: (cockpit-packagekit if dnf)
Suggests: cockpit-pcp
%if 0%{?rhel} == 0
Recommends: (cockpit-networkmanager if NetworkManager)
# c-ostree is not in RHEL 8/9
Recommends: (cockpit-ostree if rpm-ostree)
Suggests: cockpit-selinux
%endif
%if 0%{?rhel} && 0%{?centos} == 0
Requires: subscription-manager-cockpit
%endif
%if 0%{?enable_old_bridge} == 0
BuildRequires: python3-devel
BuildRequires: python3-pip
%if 0%{?rhel} == 0 && 0%{?suse_version} == 0
# All of these are only required for running pytest (which we only do on Fedora)
BuildRequires: procps-ng
BuildRequires: pyproject-rpm-macros
BuildRequires: python3-pytest-asyncio
BuildRequires: python3-pytest-cov
BuildRequires: python3-pytest-timeout
BuildRequires: python3-tox-current-env
%endif
%endif
%prep
%setup -q -n cockpit-%{version} -a 3
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
# SLE Micro specific patches
%if 0%{?is_smo}
%patch101 -p1
# Patches for versions lower then SLE Micro 5.5
%if 0%{?sle_version} < 150500
%patch102 -p1
%endif
%endif
# For anything based on SLES 15 codebase (including Leap, SLEM)
%if 0%{?suse_version} == 1500
%patch103 -p1
%patch104 -p0
%endif
cp %SOURCE1 tools/cockpit.pam
#
rm -rf node_modules package-lock.json
local-npm-registry %{_sourcedir} install --also=dev --legacy-peer-deps
cd vendor; tar zxfO %SOURCE10 | tar xvi; cd ..
%build
find node_modules -name \*.node -print -delete
touch node_modules/.stamp
exec 2>&1
PKG_NAME="Cockpit"
echo "m4_define(VERSION_NUMBER, %version)" > version.m4
autoreconf -fvi -I tools
#
%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%{?enable_old_bridge}
--enable-old-bridge \
%endif
%if 0%{?build_basic} == 0
--disable-ssh \
%endif
%if %{build_pcp} == 0
--disable-pcp \
%endif
%if 0%{?with_selinux}
make -f /usr/share/selinux/devel/Makefile cockpit.pp
bzip2 -9 cockpit.pp
%endif
%make_build
%check
make -j$(nproc) check
%if 0%{?enable_old_bridge} == 0 && 0%{?rhel} == 0 && 0%{?suse_version} == 0
%tox
%endif
%install
# In obs we get write error: stdout
%make_install | tee make_install.log
make install-tests DESTDIR=%{buildroot}
%if 0%{?suse_version} > 1500
mkdir -p $RPM_BUILD_ROOT%{_pam_vendordir}
install -p -m 644 tools/cockpit.pam $RPM_BUILD_ROOT%{_pam_vendordir}/cockpit
%else
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
install -p -m 644 tools/cockpit.pam $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/cockpit
%endif
rm -f %{buildroot}/%{_libdir}/cockpit/*.so
install -D -p -m 644 AUTHORS COPYING README.md %{buildroot}%{_docdir}/cockpit/
# selinux
%if 0%{?with_selinux}
install -D -m 644 %{name}.pp.bz2 %{buildroot}%{_datadir}/selinux/packages/%{selinuxtype}/%{name}.pp.bz2
install -D -m 644 -t %{buildroot}%{_mandir}/man8 selinux/%{name}_session_selinux.8cockpit
install -D -m 644 -t %{buildroot}%{_mandir}/man8 selinux/%{name}_ws_selinux.8cockpit
# create this directory in the build root so that %ghost sees the desired mode
install -d -m 700 %{buildroot}%{_sharedstatedir}/selinux/%{selinuxtype}/active/modules/200/%{name}
%endif
# SUSE branding
mkdir -p %{buildroot}%{_datadir}/cockpit/branding/suse
pushd cockpit-suse-theme
cp src/css-overrides.css %{buildroot}%{_datadir}/cockpit/branding/suse
cp src/fonts.css %{buildroot}%{_datadir}/cockpit/branding/suse
cp -a src/fonts %{buildroot}%{_datadir}/cockpit/branding/suse
popd
# 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
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%{?enable_old_bridge} && 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
echo '%dir %{_datadir}/cockpit/systemd' >> system.list
find %{buildroot}%{_datadir}/cockpit/systemd -type f >> system.list
echo '%dir %{_datadir}/cockpit/users' >> system.list
find %{buildroot}%{_datadir}/cockpit/users -type f >> system.list
echo '%dir %{_datadir}/cockpit/metrics' >> system.list
find %{buildroot}%{_datadir}/cockpit/metrics -type f >> system.list
echo '%dir %{_datadir}/cockpit/kdump' > kdump.list
find %{buildroot}%{_datadir}/cockpit/kdump -type f >> kdump.list
echo '%dir %{_datadir}/cockpit/sosreport' > sosreport.list
find %{buildroot}%{_datadir}/cockpit/sosreport -type f >> sosreport.list
echo '%dir %{_datadir}/cockpit/storaged' > storaged.list
find %{buildroot}%{_datadir}/cockpit/storaged -type f >> storaged.list
echo '%dir %{_datadir}/cockpit/networkmanager' > networkmanager.list
find %{buildroot}%{_datadir}/cockpit/networkmanager -type f >> networkmanager.list
echo '%dir %{_datadir}/cockpit/packagekit' > packagekit.list
find %{buildroot}%{_datadir}/cockpit/packagekit -type f >> packagekit.list
echo '%dir %{_datadir}/cockpit/apps' >> packagekit.list
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
%if 0%{?suse_version} > 1500
rm -r %{buildroot}/%{_pam_vendordir}
%else
rm -r %{buildroot}/%{_sysconfdir}/pam.d
%endif
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 -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
%if 0%{?build_tests} == 0
rm -rf %{buildroot}%{_datadir}/cockpit/playground
rm -f %{buildroot}/%{pamdir}/mock-pam-conv-mod.so
rm -f %{buildroot}/%{_unitdir}/cockpit-session.socket
rm -f %{buildroot}/%{_unitdir}/cockpit-session@.service
%endif
sed -i "s|%{buildroot}||" *.list
%if 0%{?suse_version}
# remove brandings with stale symlinks. Means they don't match
# the distro.
pushd %{buildroot}/%{_datadir}/cockpit/branding
ls --hide={default,kubernetes,opensuse,registry,sle-micro,suse} | xargs rm -rv
popd
# need this in SUSE as post build checks dislike stale symlinks
install -m 644 -D /dev/null %{buildroot}/run/cockpit/motd
test -e %{buildroot}/usr/share/cockpit/branding/opensuse/default-1920x1200.jpg || install -m 644 -D /dev/null %{buildroot}/usr/share/cockpit/branding/opensuse/default-1920x1200.jpg
test -e %{buildroot}/usr/share/cockpit/branding/sle-micro/apple-touch-icon.png || install -m 644 -D /dev/null %{buildroot}/usr/share/cockpit/branding/sle-micro/apple-touch-icon.png
test -e %{buildroot}/usr/share/cockpit/branding/sle-micro/default-1920x1200.png || install -m 644 -D /dev/null %{buildroot}/usr/share/cockpit/branding/sle-micro/default-1920x1200.png
# remove files of not installable packages
rm -r %{buildroot}%{_datadir}/cockpit/sosreport
rm -f %{buildroot}/%{_prefix}/share/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml
rm -f %{buildroot}%{_datadir}/pixmaps/cockpit-sosreport.png
%else
%global _debugsource_packages 1
%global _debuginfo_subpackages 0
%define find_debug_info %{_rpmconfigdir}/find-debuginfo.sh %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_include_minidebuginfo:-m} %{?_find_debuginfo_dwz_opts} %{?_find_debuginfo_opts} %{?_debugsource_packages:-S debugsourcefiles.list} "%{_builddir}/%{?buildsubdir}"
%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}/metainfo/org.cockpit-project.cockpit-networkmanager.metainfo.xml
rm -f %{buildroot}%{_datadir}/pixmaps/cockpit-sosreport.png
%endif
mkdir -p %{buildroot}%{_datadir}/cockpit/devel
cp -a pkg/lib %{buildroot}%{_datadir}/cockpit/devel
# -------------------------------------------------------------------------------
# Basic Sub-packages
%if 0%{?build_basic}
%description
The Cockpit Web Console enables users to administer GNU/Linux servers using a
web browser.
It offers network configuration, log inspection, diagnostic reports, SELinux
troubleshooting, interactive command-line sessions, and more.
%files
%{_docdir}/cockpit/AUTHORS
%{_docdir}/cockpit/COPYING
%{_docdir}/cockpit/README.md
%{_datadir}/metainfo/cockpit.appdata.xml
%{_datadir}/pixmaps/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
system on behalf of the web based user interface.
%files bridge -f base.list
%doc %{_mandir}/man1/cockpit-bridge.1.gz
%{_bindir}/cockpit-bridge
%{_libexecdir}/cockpit-askpass
%if 0%{?enable_old_bridge} == 0
%{python3_sitelib}/%{name}*
%endif
%package doc
Summary: Cockpit deployment and developer guide
BuildArch: noarch
%description doc
The Cockpit Deployment and Developer Guide shows sysadmins how to
deploy Cockpit on their machines as well as helps developers who want to
embed or extend Cockpit.
%files doc
%exclude %{_docdir}/cockpit/AUTHORS
%exclude %{_docdir}/cockpit/COPYING
%exclude %{_docdir}/cockpit/README.md
%{_docdir}/cockpit
%package system
Summary: Cockpit admin interface package for configuring and troubleshooting a system
BuildArch: noarch
Requires: cockpit-bridge >= %{version}-%{release}
%if !0%{?suse_version}
Requires: shadow-utils
%endif
Requires: grep
Requires: /usr/bin/pwscore
Requires: /usr/bin/date
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
Suggests: NetworkManager-team
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
#NPM_PROVIDES
%description system
This package contains the Cockpit shell and system configuration interfaces.
%files system -f system.list
%dir %{_datadir}/cockpit/shell/images
%package ws
Summary: Cockpit Web Service
Requires: glib-networking
Requires: openssl
Requires: glib2 >= 2.50.0
%if 0%{?with_selinux}
Requires: (selinux-policy >= %{_selinux_policy_version} if selinux-policy-%{selinuxtype})
Requires(post): (policycoreutils if selinux-policy-%{selinuxtype})
%endif
Conflicts: firewalld < 0.6.0-1
Recommends: sscg >= 2.3
Recommends: system-logos
Suggests: sssd-dbus >= 2.6.2
%if 0%{?suse_version}
Requires(pre): permissions
Requires: distribution-logos
Requires: wallpaper-branding
%endif
# for cockpit-desktop
Suggests: python3
Provides: group(cockpit-ws)
Provides: group(cockpit-wsinstance)
Provides: user(cockpit-ws)
Provides: user(cockpit-wsinstance)
# prevent hard python3 dependency for cockpit-desktop, it falls back to other browsers
%global __requires_exclude_from ^%{_libexecdir}/cockpit-client$
%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 static.list
%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/pam_ssh_add.8.gz
%dir %{_sysconfdir}/cockpit
%config(noreplace) %{_sysconfdir}/cockpit/ws-certs.d
%if 0%{?suse_version} > 1500
%{_pam_vendordir}/cockpit
%else
%config(noreplace) %{_sysconfdir}/pam.d/cockpit
%endif
# dir is not owned by pam in openSUSE
%dir %{_sysconfdir}/motd.d
# created in %post, so that users can rm the files
%ghost %{_sysconfdir}/issue.d/cockpit.issue
%ghost %{_sysconfdir}/motd.d/cockpit
%ghost %attr(0644, root, root) %{_sysconfdir}/cockpit/disallowed-users
%ghost %dir /run/cockpit
%ghost /run/cockpit/motd
%dir %{_datadir}/cockpit/motd
%{_datadir}/cockpit/motd/update-motd
%{_datadir}/cockpit/motd/inactive.motd
%{_unitdir}/cockpit.service
%{_unitdir}/cockpit-motd.service
%{_unitdir}/cockpit.socket
%{_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}/system-cockpithttps.slice
%{_prefix}/%{__lib}/tmpfiles.d/cockpit-tempfiles.conf
%{pamdir}/pam_ssh_add.so
%{pamdir}/pam_cockpit_cert.so
%{_libexecdir}/cockpit-ws
%{_libexecdir}/cockpit-wsinstance-factory
%{_libexecdir}/cockpit-tls
%{_libexecdir}/cockpit-client
%{_libexecdir}/cockpit-client.ui
%{_libexecdir}/cockpit-desktop
%{_libexecdir}/cockpit-certificate-ensure
%{_libexecdir}/cockpit-certificate-helper
%{?suse_version:%verify(not mode) }%attr(4750, root, cockpit-wsinstance) %{_libexecdir}/cockpit-session
%{_datadir}/cockpit/branding
%if 0%{?with_selinux}
%{_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}
%endif
%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
%if 0%{?suse_version} > 1500
# Prepare for migration to /usr/lib; save any old .rpmsave
for i in pam.d/cockpit ; do
test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i}.rpmsave.old ||:
done
%endif
%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
# 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
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
# switch old self-signed cert group from cockpit-wsintance to cockpit-ws on upgrade
if [ "$1" = 2 ]; then
certfile=/etc/cockpit/ws-certs.d/0-self-signed.cert
test -f $certfile && stat -c '%G' $certfile | grep -q cockpit-wsinstance && chgrp cockpit-ws $certfile
fi
%if 0%{?suse_version}
%set_permissions %{_libexecdir}/cockpit-session
%endif
%tmpfiles_create cockpit-tempfiles.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
# check for deprecated PAM config
if test -f %{_sysconfdir}/pam.d/cockpit && grep -q pam_cockpit_cert %{_sysconfdir}/pam.d/cockpit; then
echo '**** WARNING:'
echo '**** WARNING: pam_cockpit_cert is a no-op and will be removed in a'
echo '**** WARNING: future release; remove it from your /etc/pam.d/cockpit.'
echo '**** WARNING:'
fi
%preun ws
%systemd_preun cockpit.socket cockpit.service
%postun ws
if [ -x %{_sbindir}/selinuxenabled ]; then
%selinux_modules_uninstall -s %{selinuxtype} %{name}
%selinux_relabel_post -s %{selinuxtype}
fi
%systemd_postun_with_restart cockpit.socket cockpit.service
%if 0%{?suse_version}
%verifyscript ws
%verify_permissions -e %{_libexecdir}/cockpit-session
%endif
%if 0%{?suse_version} > 1500
%posttrans ws
# Migration to /usr/lib, restore just created .rpmsave
for i in pam.d/cockpit ; do
test -f %{_sysconfdir}/${i}.rpmsave && mv -v %{_sysconfdir}/${i}.rpmsave %{_sysconfdir}/${i} ||:
done
%endif
# -------------------------------------------------------------------------------
# Sub-packages that are part of cockpit-system in RHEL/CentOS, but separate in Fedora
%if 0%{?rhel} == 0
%package kdump
Summary: Cockpit user interface for kernel crash dumping
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base}
Requires: kexec-tools
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
%if !0%{?suse_version}
%package sosreport
Summary: Cockpit user interface for diagnostic reports
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base}
Requires: sos
BuildArch: noarch
%description sosreport
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
%endif
%package networkmanager
Summary: Cockpit user interface for networking, using NetworkManager
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base}
Requires: NetworkManager >= 1.6
Conflicts: cockpit-wicked
# Optional components
Recommends: NetworkManager-team
BuildArch: noarch
%description networkmanager
The Cockpit component for managing networking. This package uses NetworkManager.
%files networkmanager -f networkmanager.list
%{_datadir}/metainfo/org.cockpit-project.cockpit-networkmanager.metainfo.xml
%endif
%if 0%{?rhel} == 0 && ( 0%{?suse_version} >= 1500 || 0%{?is_smo} )
%package selinux
Summary: Cockpit SELinux package
Requires: cockpit-bridge >= %{required_base}
Requires: cockpit-shell >= %{required_base}
Requires: policycoreutils-python-utils >= 3.1
# setroubleshoot is available on SLE Micro starting with 5.5)
%if !0%{?is_smo} || ( 0%{?is_smo} && 0%{?sle_version} >= 150500 )
Requires: setroubleshoot-server >= 3.3.3
%endif
BuildArch: noarch
%description selinux
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
%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}
Requires: udisks2 >= 2.9
Requires: %{__python3}
%if 0%{?suse_version}
Requires: libudisks2-0_lvm2 >= 2.9
Requires: libudisks2-0_btrfs >= 2.9
Recommends: multipath-tools
Requires: python3-dbus-python
%else
Recommends: udisks2-lvm2 >= 2.9
Recommends: udisks2-iscsi >= 2.9
%if ! 0%{?rhel}
Recommends: udisks2-btrfs >= 2.9
%endif
Recommends: device-mapper-multipath
Recommends: clevis-luks
Requires: python3-dbus
%endif
BuildArch: noarch
%description -n cockpit-storaged
The Cockpit component for managing storage. This package uses udisks.
%files -n cockpit-storaged -f storaged.list
%{_datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml
%if 0%{?build_tests}
%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}
%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
# /build_tests
%endif
%package devel
Summary: Development files for for Cockpit
%description devel
This package contains files used to develop cockpit modules
%files devel
%{_datadir}/cockpit/devel
%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
Summary: Cockpit user interface for packages
BuildArch: noarch
Requires: cockpit-bridge >= %{required_base}
Requires: PackageKit
Recommends: python3-tracer
# HACK: https://bugzilla.redhat.com/show_bug.cgi?id=1800468
Requires: polkit
%description -n cockpit-packagekit
The Cockpit components for installing OS updates and Cockpit add-ons,
via PackageKit.
%files -n cockpit-packagekit -f packagekit.list
#/ build optional extension packages
%endif
# The changelog is automatically generated and merged
%changelog

325
css-overrides.patch Normal file
View File

@ -0,0 +1,325 @@
From 617d236f005538be4a53b4a4cb88aac0ad6bf14b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20D=C3=ADaz=20Gonz=C3=A1lez?= <dgonzalez@suse.de>
Date: Mon, 13 Jun 2022 20:05:21 +0100
Subject: [PATCH] Load custom CSS
In order to override Cockpit's default styling, another CSS file is
loaded in every HTML page. It works, but as a workaround already
discussed with upstream [1].
We will revert this patch when Cockpit provides better technique [2]. For
now, it fulfills the requirements of [3].
[1] https://github.com/cockpit-project/cockpit/pull/17437
[2] https://github.com/cockpit-project/cockpit/issues/16359
[3] https://en.opensuse.org/openSUSE:ALP/Workgroups/SysMngmnt
---
pkg/apps/index.html | 1 +
pkg/kdump/index.html | 1 +
pkg/metrics/index.html | 1 +
pkg/networkmanager/firewall.html | 1 +
pkg/networkmanager/index.html | 1 +
pkg/packagekit/index.html | 1 +
pkg/playground/index.html | 1 +
pkg/playground/journal.html | 1 +
pkg/playground/metrics.html | 1 +
pkg/playground/plot.html | 1 +
pkg/playground/react-patterns.html | 1 +
pkg/playground/speed.html | 1 +
pkg/playground/test.html | 1 +
pkg/selinux/setroubleshoot.html | 1 +
pkg/shell/index.html | 1 +
pkg/shell/shell.html | 1 +
pkg/sosreport/index.html | 1 +
pkg/storaged/index.html | 1 +