1*4882a593SmuzhiyunSUMMARY = "Admin interface for Linux machines" 2*4882a593SmuzhiyunDESCRIPTION = "Cockpit makes it easy to administer your GNU/Linux servers via a web browser" 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunLICENSE = "LGPL-2.1-only" 5*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunSRC_URI += " \ 8*4882a593Smuzhiyun https://github.com/cockpit-project/cockpit/releases/download/${PV}/cockpit-${PV}.tar.xz \ 9*4882a593Smuzhiyun file://0001-remove-tests-dep-on-gobject-intro.patch \ 10*4882a593Smuzhiyun file://0002-fix-makefile-use-copy-rule-for-unmodified-files.patch \ 11*4882a593Smuzhiyun file://cockpit.pam \ 12*4882a593Smuzhiyun " 13*4882a593SmuzhiyunSRC_URI[md5sum] = "beb88d8e70ee1da6ebd917c956217803" 14*4882a593SmuzhiyunSRC_URI[sha256sum] = "afc82acc8ef9d51e0f34265a07a2f059f5b71a1df721b299e657a40a098cbb7f" 15*4882a593Smuzhiyun 16*4882a593Smuzhiyuninherit gettext pkgconfig autotools systemd features_check 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunDEPENDS += "glib-2.0-native intltool-native gnutls virtual/gettext json-glib krb5 libpam systemd" 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunCOMPATIBLE_HOST:libc-musl = "null" 21*4882a593Smuzhiyun 22*4882a593SmuzhiyunRDEPENDS:${PN} += "glib-networking" 23*4882a593Smuzhiyun 24*4882a593SmuzhiyunREQUIRED_DISTRO_FEATURES = "systemd pam" 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunCOCKPIT_USER_GROUP ?= "root" 27*4882a593SmuzhiyunCOCKPIT_WS_USER_GROUP ?= "${COCKPIT_USER_GROUP}" 28*4882a593Smuzhiyun 29*4882a593SmuzhiyunEXTRA_AUTORECONF = "-I tools" 30*4882a593SmuzhiyunEXTRA_OECONF = " \ 31*4882a593Smuzhiyun --with-cockpit-user=${COCKPIT_USER_GROUP} \ 32*4882a593Smuzhiyun --with-cockpit-group=${COCKPIT_USER_GROUP} \ 33*4882a593Smuzhiyun --with-cockpit-ws-instance-user=${COCKPIT_WS_USER_GROUP} \ 34*4882a593Smuzhiyun --with-cockpit-ws-instance-group=${COCKPIT_WS_USER_GROUP} \ 35*4882a593Smuzhiyun --disable-doc \ 36*4882a593Smuzhiyun --with-systemdunitdir=${systemd_system_unitdir} \ 37*4882a593Smuzhiyun" 38*4882a593Smuzhiyun 39*4882a593SmuzhiyunPACKAGECONFIG ??= " \ 40*4882a593Smuzhiyun ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \ 41*4882a593Smuzhiyun" 42*4882a593Smuzhiyun 43*4882a593SmuzhiyunPACKAGECONFIG[pcp] = "--enable-pcp,--disable-pcp,pcp" 44*4882a593SmuzhiyunPACKAGECONFIG[dashboard] = "--enable-ssh,--disable-ssh,libssh" 45*4882a593SmuzhiyunPACKAGECONFIG[storaged] = ",,,udisks2" 46*4882a593SmuzhiyunPACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit" 47*4882a593Smuzhiyun 48*4882a593SmuzhiyunPACKAGES =+ " \ 49*4882a593Smuzhiyun ${PN}-pcp \ 50*4882a593Smuzhiyun ${PN}-realmd \ 51*4882a593Smuzhiyun ${PN}-tuned \ 52*4882a593Smuzhiyun ${PN}-shell \ 53*4882a593Smuzhiyun ${PN}-systemd \ 54*4882a593Smuzhiyun ${PN}-users \ 55*4882a593Smuzhiyun ${PN}-kdump \ 56*4882a593Smuzhiyun ${PN}-sosreport \ 57*4882a593Smuzhiyun ${PN}-storaged \ 58*4882a593Smuzhiyun ${PN}-networkmanager \ 59*4882a593Smuzhiyun ${PN}-machines \ 60*4882a593Smuzhiyun ${PN}-selinux \ 61*4882a593Smuzhiyun ${PN}-playground \ 62*4882a593Smuzhiyun ${PN}-docker \ 63*4882a593Smuzhiyun ${PN}-dashboard \ 64*4882a593Smuzhiyun ${PN}-bridge \ 65*4882a593Smuzhiyun ${PN}-ws \ 66*4882a593Smuzhiyun ${PN}-desktop \ 67*4882a593Smuzhiyun" 68*4882a593SmuzhiyunSYSTEMD_PACKAGES = "${PN}-ws" 69*4882a593Smuzhiyun 70*4882a593SmuzhiyunFILES:${PN}-pcp = " \ 71*4882a593Smuzhiyun ${libexecdir}/cockpit-pcp \ 72*4882a593Smuzhiyun ${datadir}/cockpit/pcp \ 73*4882a593Smuzhiyun ${localstatedir}/lib/pcp/config/pmlogconf/tools/cockpit \ 74*4882a593Smuzhiyun" 75*4882a593SmuzhiyunFILES:${PN}-realmd = "${datadir}/cockpit/realmd" 76*4882a593SmuzhiyunFILES:${PN}-tuned = "${datadir}/cockpit/tuned" 77*4882a593SmuzhiyunFILES:${PN}-shell = "${datadir}/cockpit/shell" 78*4882a593SmuzhiyunFILES:${PN}-systemd = "${datadir}/cockpit/systemd" 79*4882a593SmuzhiyunFILES:${PN}-users = "${datadir}/cockpit/users" 80*4882a593SmuzhiyunFILES:${PN}-kdump = " \ 81*4882a593Smuzhiyun ${datadir}/cockpit/kdump \ 82*4882a593Smuzhiyun ${datadir}/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml \ 83*4882a593Smuzhiyun" 84*4882a593SmuzhiyunFILES:${PN}-sosreport = " \ 85*4882a593Smuzhiyun ${datadir}/cockpit/sosreport \ 86*4882a593Smuzhiyun ${datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml \ 87*4882a593Smuzhiyun ${datadir}/pixmaps/cockpit-sosreport.png \ 88*4882a593Smuzhiyun" 89*4882a593SmuzhiyunFILES:${PN}-storaged = " \ 90*4882a593Smuzhiyun ${datadir}/cockpit/storaged \ 91*4882a593Smuzhiyun ${datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml \ 92*4882a593Smuzhiyun" 93*4882a593Smuzhiyun 94*4882a593SmuzhiyunFILES:${PN}-networkmanager = "${datadir}/cockpit/networkmanager" 95*4882a593SmuzhiyunRDEPENDS:${PN}-networkmanager = "networkmanager" 96*4882a593Smuzhiyun 97*4882a593SmuzhiyunFILES:${PN}-machines = " \ 98*4882a593Smuzhiyun ${datadir}/cockpit/machines \ 99*4882a593Smuzhiyun ${datadir}/metainfo/org.cockpit-project.cockpit-machines.metainfo.xml \ 100*4882a593Smuzhiyun" 101*4882a593SmuzhiyunFILES:${PN}-selinux = " \ 102*4882a593Smuzhiyun ${datadir}/cockpit/selinux \ 103*4882a593Smuzhiyun ${datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml \ 104*4882a593Smuzhiyun" 105*4882a593SmuzhiyunFILES:${PN}-playground = "${datadir}/cockpit/playground" 106*4882a593SmuzhiyunFILES:${PN}-docker = " \ 107*4882a593Smuzhiyun ${datadir}/cockpit/docker \ 108*4882a593Smuzhiyun ${datadir}/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml \ 109*4882a593Smuzhiyun" 110*4882a593SmuzhiyunFILES:${PN}-dashboard = "${datadir}/cockpit/dashboard" 111*4882a593SmuzhiyunALLOW_EMPTY:${PN}-dashboard = "1" 112*4882a593Smuzhiyun 113*4882a593SmuzhiyunFILES:${PN}-bridge = " \ 114*4882a593Smuzhiyun ${bindir}/cockpit-bridge \ 115*4882a593Smuzhiyun ${libexec}/cockpit-askpass \ 116*4882a593Smuzhiyun" 117*4882a593SmuzhiyunRDEPENDS:${PN}-bridge = "" 118*4882a593Smuzhiyun 119*4882a593SmuzhiyunFILES:${PN}-desktop = "${libexecdir}/cockpit-desktop" 120*4882a593SmuzhiyunRDEPENDS:${PN}-desktop += "bash" 121*4882a593Smuzhiyun 122*4882a593SmuzhiyunFILES:${PN}-ws = " \ 123*4882a593Smuzhiyun ${sysconfdir}/cockpit/ws-certs.d \ 124*4882a593Smuzhiyun ${sysconfdir}/pam.d/cockpit \ 125*4882a593Smuzhiyun ${sysconfdir}/issue.d/cockpit.issue \ 126*4882a593Smuzhiyun ${sysconfdir}/motd.d/cockpit \ 127*4882a593Smuzhiyun ${datadir}/cockpit/motd/update-motd \ 128*4882a593Smuzhiyun ${datadir}/cockpit/motd/inactive.motd \ 129*4882a593Smuzhiyun ${systemd_system_unitdir}/cockpit.service \ 130*4882a593Smuzhiyun ${systemd_system_unitdir}/cockpit-motd.service \ 131*4882a593Smuzhiyun ${systemd_system_unitdir}/cockpit.socket \ 132*4882a593Smuzhiyun ${systemd_system_unitdir}/cockpit-wsinstance-http.socket \ 133*4882a593Smuzhiyun ${systemd_system_unitdir}/cockpit-wsinstance-http.service \ 134*4882a593Smuzhiyun ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.socket \ 135*4882a593Smuzhiyun ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.service \ 136*4882a593Smuzhiyun ${systemd_system_unitdir}/cockpit-wsinstance-https-factory.socket \ 137*4882a593Smuzhiyun ${systemd_system_unitdir}/cockpit-wsinstance-https-factory@.service \ 138*4882a593Smuzhiyun ${systemd_system_unitdir}/cockpit-wsinstance-https@.socket \ 139*4882a593Smuzhiyun ${systemd_system_unitdir}/cockpit-wsinstance-https@.service \ 140*4882a593Smuzhiyun ${systemd_system_unitdir}/system-cockpithttps.slice \ 141*4882a593Smuzhiyun ${libdir}/tmpfiles.d/cockpit-tempfiles.conf \ 142*4882a593Smuzhiyun ${sbindir}/remotectl \ 143*4882a593Smuzhiyun ${libdir}/security/pam_ssh_add.so \ 144*4882a593Smuzhiyun ${libdir}/security/pam_cockpit_cert.so \ 145*4882a593Smuzhiyun ${libexecdir}/cockpit-ws \ 146*4882a593Smuzhiyun ${libexecdir}/cockpit-wsinstance-factory \ 147*4882a593Smuzhiyun ${libexecdir}/cockpit-tls \ 148*4882a593Smuzhiyun ${libexecdir}/cockpit-session \ 149*4882a593Smuzhiyun ${localstatedir}/lib/cockpit \ 150*4882a593Smuzhiyun ${datadir}/cockpit/static \ 151*4882a593Smuzhiyun ${datadir}/cockpit/branding \ 152*4882a593Smuzhiyun" 153*4882a593SmuzhiyunCONFFILES:${PN}-ws += " \ 154*4882a593Smuzhiyun ${sysconfdir}/issue.d/cockpit.issue \ 155*4882a593Smuzhiyun ${sysconfdir}/motd.d/cockpit \ 156*4882a593Smuzhiyun" 157*4882a593SmuzhiyunRDEPENDS:${PN}-ws += "openssl-bin" 158*4882a593SmuzhiyunSYSTEMD_SERVICE:${PN}-ws = "cockpit.socket" 159*4882a593Smuzhiyun 160*4882a593SmuzhiyunFILES:${PN} += " \ 161*4882a593Smuzhiyun ${datadir}/cockpit/base1 \ 162*4882a593Smuzhiyun ${sysconfdir}/cockpit/machines.d \ 163*4882a593Smuzhiyun ${datadir}/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy \ 164*4882a593Smuzhiyun ${datadir}/cockpit/ssh \ 165*4882a593Smuzhiyun ${libexecdir}/cockpit-ssh \ 166*4882a593Smuzhiyun ${datadir}/cockpit \ 167*4882a593Smuzhiyun ${datadir}/metainfo/cockpit.appdata.xml \ 168*4882a593Smuzhiyun ${datadir}/pixmaps/cockpit.png \ 169*4882a593Smuzhiyun ${nonarch_libdir}/tmpfiles.d \ 170*4882a593Smuzhiyun ${nonarch_libdir}/firewalld \ 171*4882a593Smuzhiyun" 172*4882a593SmuzhiyunRDEPENDS:${PN} += "${PN}-bridge" 173*4882a593Smuzhiyun 174*4882a593Smuzhiyundo_install:append() { 175*4882a593Smuzhiyun pkgdatadir=${datadir}/cockpit 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun chmod 4750 ${D}${libexecdir}/cockpit-session 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun install -d "${D}${sysconfdir}/pam.d" 180*4882a593Smuzhiyun install -p -m 0644 ${WORKDIR}/cockpit.pam ${D}${sysconfdir}/pam.d/cockpit 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun # provided by firewalld 183*4882a593Smuzhiyun rm -rf ${D}${libdir}/firewalld 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun if ! ${@bb.utils.contains('PACKAGECONFIG', 'storaged', 'true', 'false', d)}; then 186*4882a593Smuzhiyun for filename in ${FILES:${PN}-storaged} 187*4882a593Smuzhiyun do 188*4882a593Smuzhiyun rm -rf ${D}$filename 189*4882a593Smuzhiyun done 190*4882a593Smuzhiyun fi 191*4882a593Smuzhiyun} 192