From 9281dbcc217c3517e45106af36ae422f5af01d65 Mon Sep 17 00:00:00 2001 From: Daniel Semkowicz Date: Thu, 9 Nov 2023 10:31:45 +0100 Subject: cockpit: Bump to version 304 In version 301, the default bridge implementation was changed to Python. Adjust recipe to build and install new Python bridge. Old bridge implementation is still available and can be enabled using '--enable-old-bridge' flag. Add PACKAGECONFIG option for old bridge. New bridge shows minor regressions like networking graph not generated correctly. Probably additional dependencies are missing. For this reason, keep the old bridge enabled by default. Signed-off-by: Daniel Semkowicz Signed-off-by: Khem Raj --- .../recipes-webadmin/cockpit/cockpit_304.bb | 207 +++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb (limited to 'meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb') diff --git a/meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb b/meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb new file mode 100644 index 0000000000..ab05fd3777 --- /dev/null +++ b/meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb @@ -0,0 +1,207 @@ +SUMMARY = "Admin interface for Linux machines" +DESCRIPTION = "Cockpit makes it easy to administer your GNU/Linux servers via a web browser" + +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI += " \ + https://github.com/cockpit-project/cockpit/releases/download/${PV}/cockpit-${PV}.tar.xz \ + file://0001-Warn-not-error-if-xsltproc-is-not-found.patch \ + file://cockpit.pam \ + " +SRC_URI[sha256sum] = "a87d090c930e2058bb3e970ca7f2bafe678687966b5c0b8b42a802977e391ce9" + +inherit gettext pkgconfig autotools systemd features_check +inherit ${@bb.utils.contains('PACKAGECONFIG', 'old-bridge', '', 'python3targetconfig', d)} + +DEPENDS += "glib-2.0-native intltool-native gnutls virtual/gettext json-glib krb5 libpam systemd" +DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'old-bridge', '', 'python3-pip-native', d)}" + +COMPATIBLE_HOST:libc-musl = "null" + +RDEPENDS:${PN} += "glib-networking" + +REQUIRED_DISTRO_FEATURES = "systemd pam" + +COCKPIT_USER_GROUP ?= "root" +COCKPIT_WS_USER_GROUP ?= "${COCKPIT_USER_GROUP}" + +EXTRA_AUTORECONF = "-I tools" +EXTRA_OECONF = " \ + --with-cockpit-user=${COCKPIT_USER_GROUP} \ + --with-cockpit-group=${COCKPIT_USER_GROUP} \ + --with-admin-group=${COCKPIT_USER_GROUP} \ + --with-cockpit-ws-instance-user=${COCKPIT_WS_USER_GROUP} \ + --with-cockpit-ws-instance-group=${COCKPIT_WS_USER_GROUP} \ + --disable-doc \ + --with-systemdunitdir=${systemd_system_unitdir} \ +" + +PACKAGECONFIG ??= " \ + ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \ + old-bridge \ +" + +PACKAGECONFIG[pcp] = "--enable-pcp,--disable-pcp,pcp" +PACKAGECONFIG[dashboard] = "--enable-ssh,--disable-ssh,libssh" +PACKAGECONFIG[storaged] = ",,,udisks2" +PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit" +PACKAGECONFIG[old-bridge] = "--enable-old-bridge" + +PACKAGES =+ " \ + ${PN}-pcp \ + ${PN}-realmd \ + ${PN}-tuned \ + ${PN}-shell \ + ${PN}-systemd \ + ${PN}-users \ + ${PN}-kdump \ + ${PN}-sosreport \ + ${PN}-storaged \ + ${PN}-networkmanager \ + ${PN}-machines \ + ${PN}-selinux \ + ${PN}-playground \ + ${PN}-docker \ + ${PN}-dashboard \ + ${PN}-packagekit \ + ${PN}-apps \ + ${PN}-bridge \ + ${PN}-ws \ + ${PN}-desktop \ +" +SYSTEMD_PACKAGES = "${PN}-ws" + +FILES:${PN}-pcp = " \ + ${libexecdir}/cockpit-pcp \ + ${datadir}/cockpit/pcp \ + ${localstatedir}/lib/pcp/config/pmlogconf/tools/cockpit \ +" +FILES:${PN}-realmd = "${datadir}/cockpit/realmd" +FILES:${PN}-tuned = "${datadir}/cockpit/tuned" +FILES:${PN}-shell = "${datadir}/cockpit/shell" +FILES:${PN}-systemd = "${datadir}/cockpit/systemd" +FILES:${PN}-users = "${datadir}/cockpit/users" +FILES:${PN}-kdump = " \ + ${datadir}/cockpit/kdump \ + ${datadir}/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml \ +" +FILES:${PN}-sosreport = " \ + ${datadir}/cockpit/sosreport \ + ${datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml \ + ${datadir}/pixmaps/cockpit-sosreport.png \ +" +FILES:${PN}-storaged = " \ + ${datadir}/cockpit/storaged \ + ${datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml \ +" + +FILES:${PN}-networkmanager = " \ + ${datadir}/cockpit/networkmanager \ + ${datadir}/metainfo/org.cockpit-project.cockpit-networkmanager.metainfo.xml \ +" +RDEPENDS:${PN}-networkmanager = "networkmanager" + +FILES:${PN}-machines = " \ + ${datadir}/cockpit/machines \ + ${datadir}/metainfo/org.cockpit-project.cockpit-machines.metainfo.xml \ +" +FILES:${PN}-selinux = " \ + ${datadir}/cockpit/selinux \ + ${datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml \ +" +FILES:${PN}-playground = "${datadir}/cockpit/playground" +FILES:${PN}-docker = " \ + ${datadir}/cockpit/docker \ + ${datadir}/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml \ +" +FILES:${PN}-dashboard = "${datadir}/cockpit/dashboard" +ALLOW_EMPTY:${PN}-dashboard = "1" + +FILES:${PN}-packagekit = "${datadir}/cockpit/packagekit" +FILES:${PN}-apps = "${datadir}/cockpit/apps" + +FILES:${PN}-bridge = " \ + ${bindir}/cockpit-bridge \ + ${libexecdir}/cockpit-askpass \ + ${PYTHON_SITEPACKAGES_DIR} \ +" +RDEPENDS:${PN}-bridge = "${@bb.utils.contains('PACKAGECONFIG', 'old-bridge', '', 'python3', d)}" + +FILES:${PN}-desktop = "${libexecdir}/cockpit-desktop" +RDEPENDS:${PN}-desktop += "bash" + +FILES:${PN}-ws = " \ + ${sysconfdir}/cockpit/ws-certs.d \ + ${sysconfdir}/pam.d/cockpit \ + ${sysconfdir}/issue.d/cockpit.issue \ + ${sysconfdir}/motd.d/cockpit \ + ${datadir}/cockpit/motd/update-motd \ + ${datadir}/cockpit/motd/inactive.motd \ + ${systemd_system_unitdir}/cockpit.service \ + ${systemd_system_unitdir}/cockpit-motd.service \ + ${systemd_system_unitdir}/cockpit.socket \ + ${systemd_system_unitdir}/cockpit-session.socket \ + ${systemd_system_unitdir}/cockpit-session@.service \ + ${systemd_system_unitdir}/cockpit-wsinstance-http.socket \ + ${systemd_system_unitdir}/cockpit-wsinstance-http.service \ + ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.socket \ + ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.service \ + ${systemd_system_unitdir}/cockpit-wsinstance-https-factory.socket \ + ${systemd_system_unitdir}/cockpit-wsinstance-https-factory@.service \ + ${systemd_system_unitdir}/cockpit-wsinstance-https@.socket \ + ${systemd_system_unitdir}/cockpit-wsinstance-https@.service \ + ${systemd_system_unitdir}/system-cockpithttps.slice \ + ${libdir}/tmpfiles.d/cockpit-tempfiles.conf \ + ${sbindir}/remotectl \ + ${libdir}/security/pam_ssh_add.so \ + ${libdir}/security/pam_cockpit_cert.so \ + ${libexecdir}/cockpit-ws \ + ${libexecdir}/cockpit-wsinstance-factory \ + ${libexecdir}/cockpit-tls \ + ${libexecdir}/cockpit-session \ + ${localstatedir}/lib/cockpit \ + ${datadir}/cockpit/static \ + ${datadir}/cockpit/branding \ +" +CONFFILES:${PN}-ws += " \ + ${sysconfdir}/issue.d/cockpit.issue \ + ${sysconfdir}/motd.d/cockpit \ +" +RDEPENDS:${PN}-ws += "openssl-bin" +SYSTEMD_SERVICE:${PN}-ws = "cockpit.socket" + +FILES:${PN} += " \ + ${datadir}/cockpit/base1 \ + ${sysconfdir}/cockpit/machines.d \ + ${datadir}/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy \ + ${datadir}/cockpit/ssh \ + ${libexecdir}/cockpit-ssh \ + ${datadir}/cockpit \ + ${datadir}/metainfo/cockpit.appdata.xml \ + ${datadir}/pixmaps/cockpit.png \ + ${nonarch_libdir}/tmpfiles.d \ + ${nonarch_libdir}/firewalld \ +" +RDEPENDS:${PN} += "${PN}-bridge" +# Needs bash for /usr/libexec/cockpit-certificate-helper +RDEPENDS:${PN} += "bash" + +do_install:append() { + pkgdatadir=${datadir}/cockpit + + chmod 4750 ${D}${libexecdir}/cockpit-session + + install -d "${D}${sysconfdir}/pam.d" + install -p -m 0644 ${WORKDIR}/cockpit.pam ${D}${sysconfdir}/pam.d/cockpit + + # provided by firewalld + rm -rf ${D}${libdir}/firewalld + + if ! ${@bb.utils.contains('PACKAGECONFIG', 'storaged', 'true', 'false', d)}; then + for filename in ${FILES:${PN}-storaged} + do + rm -rf ${D}$filename + done + fi +} -- cgit v1.2.3-54-g00ecf