diff options
Diffstat (limited to 'meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb')
-rw-r--r-- | meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb | 207 |
1 files changed, 207 insertions, 0 deletions
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..df7f47a118 --- /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 python3-setuptools-native" +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 +} |