xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-webserver/recipes-webadmin/cockpit/cockpit_220.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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