| 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 |
| } |