1SUMMARY = "Admin interface for Linux machines" 2DESCRIPTION = "Cockpit makes it easy to administer your GNU/Linux servers via a web browser" 3 4LICENSE = "LGPL-2.1-only" 5LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" 6 7SRC_URI += " \ 8 https://github.com/cockpit-project/cockpit/releases/download/${PV}/cockpit-${PV}.tar.xz \ 9 file://0001-Warn-not-error-if-xsltproc-is-not-found.patch \ 10 file://0001-Makefile-common.am-Create-src-common-directory-befor.patch \ 11 file://cockpit.pam \ 12 " 13SRC_URI[sha256sum] = "df51ef5920fae69e1b435f657376aa93772c0c1720b954a3bac10ebba26bfedf" 14 15inherit gettext pkgconfig autotools systemd features_check 16inherit ${@bb.utils.contains('PACKAGECONFIG', 'old-bridge', '', 'python3targetconfig', d)} 17 18DEPENDS += "glib-2.0-native intltool-native gnutls virtual/gettext json-glib krb5 libpam systemd python3-setuptools-native" 19DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'old-bridge', '', 'python3-pip-native', d)}" 20 21COMPATIBLE_HOST:libc-musl = "null" 22 23RDEPENDS:${PN} += "glib-networking" 24 25REQUIRED_DISTRO_FEATURES = "systemd pam" 26 27COCKPIT_USER_GROUP ?= "root" 28 29EXTRA_AUTORECONF = "-I tools" 30EXTRA_OECONF = " \ 31 --with-admin-group=${COCKPIT_USER_GROUP} \ 32 --disable-doc \ 33 --with-systemdunitdir=${systemd_system_unitdir} \ 34 --with-pamdir=${base_libdir}/security \ 35" 36 37PACKAGECONFIG ??= " \ 38 ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \ 39" 40 41PACKAGECONFIG[pcp] = ",,pcp" 42PACKAGECONFIG[dashboard] = ",,libssh" 43PACKAGECONFIG[storaged] = ",,udisks2" 44PACKAGECONFIG[polkit] = ",,polkit" 45 46PACKAGES =+ " \ 47 ${PN}-pcp \ 48 ${PN}-realmd \ 49 ${PN}-tuned \ 50 ${PN}-shell \ 51 ${PN}-systemd \ 52 ${PN}-users \ 53 ${PN}-kdump \ 54 ${PN}-sosreport \ 55 ${PN}-storaged \ 56 ${PN}-networkmanager \ 57 ${PN}-selinux \ 58 ${PN}-playground \ 59 ${PN}-dashboard \ 60 ${PN}-packagekit \ 61 ${PN}-apps \ 62 ${PN}-bridge \ 63 ${PN}-ws \ 64 ${PN}-desktop \ 65" 66SYSTEMD_PACKAGES = "${PN}-ws" 67 68FILES:${PN}-pcp = " \ 69 ${libexecdir}/cockpit-pcp \ 70 ${datadir}/cockpit/pcp \ 71 ${localstatedir}/lib/pcp/config/pmlogconf/tools/cockpit \ 72" 73FILES:${PN}-realmd = "${datadir}/cockpit/realmd" 74FILES:${PN}-tuned = "${datadir}/cockpit/tuned" 75FILES:${PN}-shell = "${datadir}/cockpit/shell" 76FILES:${PN}-systemd = "${datadir}/cockpit/systemd" 77FILES:${PN}-users = "${datadir}/cockpit/users" 78FILES:${PN}-kdump = " \ 79 ${datadir}/cockpit/kdump \ 80 ${datadir}/metainfo/org.cockpit_project.cockpit_kdump.metainfo.xml \ 81" 82FILES:${PN}-sosreport = " \ 83 ${datadir}/cockpit/sosreport \ 84 ${datadir}/metainfo/org.cockpit_project.cockpit_sosreport.metainfo.xml \ 85 ${datadir}/pixmaps/cockpit-sosreport.png \ 86 ${datadir}/icons/hicolor/64x64/apps/cockpit-sosreport.png \ 87" 88FILES:${PN}-storaged = " \ 89 ${datadir}/cockpit/storaged \ 90 ${datadir}/metainfo/org.cockpit_project.cockpit_storaged.metainfo.xml \ 91" 92 93FILES:${PN}-networkmanager = " \ 94 ${datadir}/cockpit/networkmanager \ 95 ${datadir}/metainfo/org.cockpit_project.cockpit_networkmanager.metainfo.xml \ 96" 97RDEPENDS:${PN}-networkmanager = "networkmanager" 98 99FILES:${PN}-selinux = " \ 100 ${datadir}/cockpit/selinux \ 101 ${datadir}/metainfo/org.cockpit_project.cockpit_selinux.metainfo.xml \ 102" 103FILES:${PN}-playground = "${datadir}/cockpit/playground" 104FILES:${PN}-dashboard = "${datadir}/cockpit/dashboard" 105ALLOW_EMPTY:${PN}-dashboard = "1" 106 107FILES:${PN}-packagekit = "${datadir}/cockpit/packagekit" 108FILES:${PN}-apps = "${datadir}/cockpit/apps" 109 110FILES:${PN}-bridge = " \ 111 ${bindir}/cockpit-bridge \ 112 ${libexecdir}/cockpit-askpass \ 113 ${PYTHON_SITEPACKAGES_DIR} \ 114" 115RDEPENDS:${PN}-bridge = "${@bb.utils.contains('PACKAGECONFIG', 'old-bridge', '', 'python3', d)}" 116 117FILES:${PN}-desktop = "${libexecdir}/cockpit-desktop" 118RDEPENDS:${PN}-desktop += "bash" 119 120FILES:${PN}-ws = " \ 121 ${sysconfdir}/cockpit/ws-certs.d \ 122 ${sysconfdir}/pam.d/cockpit \ 123 ${sysconfdir}/issue.d/cockpit.issue \ 124 ${sysconfdir}/motd.d/cockpit \ 125 ${datadir}/cockpit/motd/update-motd \ 126 ${datadir}/cockpit/motd/inactive.motd \ 127 ${systemd_system_unitdir}/cockpit.service \ 128 ${systemd_system_unitdir}/cockpit-motd.service \ 129 ${systemd_system_unitdir}/cockpit.socket \ 130 ${systemd_system_unitdir}/cockpit-session.socket \ 131 ${systemd_system_unitdir}/cockpit-session@.service \ 132 ${systemd_system_unitdir}/cockpit-wsinstance-http.socket \ 133 ${systemd_system_unitdir}/cockpit-wsinstance-http.service \ 134 ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.socket \ 135 ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.service \ 136 ${systemd_system_unitdir}/cockpit-wsinstance-https-factory.socket \ 137 ${systemd_system_unitdir}/cockpit-wsinstance-https-factory@.service \ 138 ${systemd_system_unitdir}/cockpit-wsinstance-https@.socket \ 139 ${systemd_system_unitdir}/cockpit-wsinstance-https@.service \ 140 ${systemd_system_unitdir}/system-cockpithttps.slice \ 141 ${systemd_system_unitdir}/cockpit-session-socket-user.service \ 142 ${systemd_system_unitdir}/cockpit-wsinstance-socket-user.service \ 143 ${systemd_system_unitdir}/cockpit-issue.service \ 144 ${libdir}/tmpfiles.d/cockpit-tempfiles.conf \ 145 ${sbindir}/remotectl \ 146 ${base_libdir}/security/pam_ssh_add.so \ 147 ${base_libdir}/security/pam_cockpit_cert.so \ 148 ${libexecdir}/cockpit-ws \ 149 ${libexecdir}/cockpit-wsinstance-factory \ 150 ${libexecdir}/cockpit-tls \ 151 ${libexecdir}/cockpit-session \ 152 ${localstatedir}/lib/cockpit \ 153 ${datadir}/cockpit/static \ 154 ${datadir}/cockpit/branding \ 155" 156CONFFILES:${PN}-ws += " \ 157 ${sysconfdir}/issue.d/cockpit.issue \ 158 ${sysconfdir}/motd.d/cockpit \ 159" 160RDEPENDS:${PN}-ws += "openssl-bin" 161SYSTEMD_SERVICE:${PN}-ws = "cockpit.socket" 162 163FILES:${PN} += " \ 164 ${datadir}/cockpit/base1 \ 165 ${sysconfdir}/cockpit/machines.d \ 166 ${datadir}/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy \ 167 ${datadir}/cockpit/ssh \ 168 ${libexecdir}/cockpit-ssh \ 169 ${datadir}/cockpit \ 170 ${datadir}/icons/hicolor/128x128/apps/cockpit.png \ 171 ${datadir}/metainfo/org.cockpit_project.cockpit.appdata.xml \ 172 ${datadir}/pixmaps/cockpit.png \ 173 ${nonarch_libdir}/tmpfiles.d \ 174 ${nonarch_libdir}/firewalld \ 175" 176RDEPENDS:${PN} += "${PN}-bridge" 177# Needs bash for /usr/libexec/cockpit-certificate-helper 178RDEPENDS:${PN} += "bash" 179 180do_install:append() { 181 pkgdatadir=${datadir}/cockpit 182 183 chmod 4750 ${D}${libexecdir}/cockpit-session 184 185 install -d "${D}${sysconfdir}/pam.d" 186 install -p -m 0644 ${UNPACKDIR}/cockpit.pam ${D}${sysconfdir}/pam.d/cockpit 187 188 # provided by firewalld 189 rm -rf ${D}${libdir}/firewalld \ 190 ${D}${PYTHON_SITEPACKAGES_DIR}/*/__pycache__ \ 191 ${D}${PYTHON_SITEPACKAGES_DIR}/*/*/__pycache__ \ 192 ${D}${PYTHON_SITEPACKAGES_DIR}/*/*/*/__pycache__ \ 193 ${D}${PYTHON_SITEPACKAGES_DIR}/*/*/*/*/__pycache__ \ 194 ${D}${PYTHON_SITEPACKAGES_DIR}/${BP}.dist-info/direct_url.json 195 196 if ! ${@bb.utils.contains('PACKAGECONFIG', 'storaged', 'true', 'false', d)}; then 197 for filename in ${FILES:${PN}-storaged} 198 do 199 rm -rf ${D}$filename 200 done 201 fi 202} 203