blob: 2623024243018121fc22eefb27b226950f5d4563 [file] [log] [blame]
Andrew Geissler7f40b712020-05-15 14:09:53 -05001SUMMARY = "Admin interface for Linux machines"
2DESCRIPTION = "Cockpit makes it easy to administer your GNU/Linux servers via a web browser"
3
Andrew Geissler9aee5002022-03-30 16:27:02 +00004LICENSE = "LGPL-2.1-only"
Andrew Geissler7f40b712020-05-15 14:09:53 -05005LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
6
7SRC_URI += " \
8 https://github.com/cockpit-project/cockpit/releases/download/${PV}/cockpit-${PV}.tar.xz \
Andrew Geissler87f5cff2022-09-30 13:13:31 -05009 file://0001-Warn-not-error-if-xsltproc-is-not-found.patch \
Andrew Geissler7f40b712020-05-15 14:09:53 -050010 file://cockpit.pam \
11 "
Andrew Geissler5082cc72023-09-11 08:41:39 -040012SRC_URI[sha256sum] = "c7da91824f7a72c82c1a3aaff1a57dbe0ce1e29e05e95d92b5118a324a3f4b39"
Andrew Geissler7f40b712020-05-15 14:09:53 -050013
14inherit gettext pkgconfig autotools systemd features_check
15
16DEPENDS += "glib-2.0-native intltool-native gnutls virtual/gettext json-glib krb5 libpam systemd"
17
Patrick Williams213cb262021-08-07 19:21:33 -050018COMPATIBLE_HOST:libc-musl = "null"
Andrew Geissler7f40b712020-05-15 14:09:53 -050019
Patrick Williams213cb262021-08-07 19:21:33 -050020RDEPENDS:${PN} += "glib-networking"
Andrew Geissler7f40b712020-05-15 14:09:53 -050021
22REQUIRED_DISTRO_FEATURES = "systemd pam"
23
24COCKPIT_USER_GROUP ?= "root"
25COCKPIT_WS_USER_GROUP ?= "${COCKPIT_USER_GROUP}"
26
27EXTRA_AUTORECONF = "-I tools"
28EXTRA_OECONF = " \
29 --with-cockpit-user=${COCKPIT_USER_GROUP} \
30 --with-cockpit-group=${COCKPIT_USER_GROUP} \
Andrew Geissler87f5cff2022-09-30 13:13:31 -050031 --with-admin-group=${COCKPIT_USER_GROUP} \
Andrew Geissler7f40b712020-05-15 14:09:53 -050032 --with-cockpit-ws-instance-user=${COCKPIT_WS_USER_GROUP} \
33 --with-cockpit-ws-instance-group=${COCKPIT_WS_USER_GROUP} \
34 --disable-doc \
35 --with-systemdunitdir=${systemd_system_unitdir} \
36"
37
Andrew Geisslereafcbb82020-06-05 17:59:17 -050038PACKAGECONFIG ??= " \
39 ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \
40"
41
Andrew Geissler7f40b712020-05-15 14:09:53 -050042PACKAGECONFIG[pcp] = "--enable-pcp,--disable-pcp,pcp"
43PACKAGECONFIG[dashboard] = "--enable-ssh,--disable-ssh,libssh"
Andrew Geissler2ee498a2020-05-29 15:52:06 -050044PACKAGECONFIG[storaged] = ",,,udisks2"
Andrew Geisslereafcbb82020-06-05 17:59:17 -050045PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit"
Andrew Geissler7f40b712020-05-15 14:09:53 -050046
47PACKAGES =+ " \
48 ${PN}-pcp \
49 ${PN}-realmd \
50 ${PN}-tuned \
51 ${PN}-shell \
52 ${PN}-systemd \
53 ${PN}-users \
54 ${PN}-kdump \
55 ${PN}-sosreport \
56 ${PN}-storaged \
57 ${PN}-networkmanager \
58 ${PN}-machines \
59 ${PN}-selinux \
60 ${PN}-playground \
61 ${PN}-docker \
62 ${PN}-dashboard \
Andrew Geissler220dafd2023-10-04 10:18:08 -050063 ${PN}-packagekit \
64 ${PN}-apps \
Andrew Geissler7f40b712020-05-15 14:09:53 -050065 ${PN}-bridge \
66 ${PN}-ws \
67 ${PN}-desktop \
68"
69SYSTEMD_PACKAGES = "${PN}-ws"
70
Patrick Williams213cb262021-08-07 19:21:33 -050071FILES:${PN}-pcp = " \
Andrew Geissler7f40b712020-05-15 14:09:53 -050072 ${libexecdir}/cockpit-pcp \
73 ${datadir}/cockpit/pcp \
74 ${localstatedir}/lib/pcp/config/pmlogconf/tools/cockpit \
75"
Patrick Williams213cb262021-08-07 19:21:33 -050076FILES:${PN}-realmd = "${datadir}/cockpit/realmd"
77FILES:${PN}-tuned = "${datadir}/cockpit/tuned"
78FILES:${PN}-shell = "${datadir}/cockpit/shell"
79FILES:${PN}-systemd = "${datadir}/cockpit/systemd"
80FILES:${PN}-users = "${datadir}/cockpit/users"
81FILES:${PN}-kdump = " \
Andrew Geissler7f40b712020-05-15 14:09:53 -050082 ${datadir}/cockpit/kdump \
83 ${datadir}/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml \
84"
Patrick Williams213cb262021-08-07 19:21:33 -050085FILES:${PN}-sosreport = " \
Andrew Geissler7f40b712020-05-15 14:09:53 -050086 ${datadir}/cockpit/sosreport \
87 ${datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml \
88 ${datadir}/pixmaps/cockpit-sosreport.png \
89"
Patrick Williams213cb262021-08-07 19:21:33 -050090FILES:${PN}-storaged = " \
Andrew Geissler7f40b712020-05-15 14:09:53 -050091 ${datadir}/cockpit/storaged \
92 ${datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml \
93"
Andrew Geissler7f40b712020-05-15 14:09:53 -050094
Patrick Williams8e7b46e2023-05-01 14:19:06 -050095FILES:${PN}-networkmanager = " \
96 ${datadir}/cockpit/networkmanager \
97 ${datadir}/metainfo/org.cockpit-project.cockpit-networkmanager.metainfo.xml \
98"
Patrick Williams213cb262021-08-07 19:21:33 -050099RDEPENDS:${PN}-networkmanager = "networkmanager"
Andrew Geissler7f40b712020-05-15 14:09:53 -0500100
Patrick Williams213cb262021-08-07 19:21:33 -0500101FILES:${PN}-machines = " \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500102 ${datadir}/cockpit/machines \
103 ${datadir}/metainfo/org.cockpit-project.cockpit-machines.metainfo.xml \
104"
Patrick Williams213cb262021-08-07 19:21:33 -0500105FILES:${PN}-selinux = " \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500106 ${datadir}/cockpit/selinux \
107 ${datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml \
108"
Patrick Williams213cb262021-08-07 19:21:33 -0500109FILES:${PN}-playground = "${datadir}/cockpit/playground"
110FILES:${PN}-docker = " \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500111 ${datadir}/cockpit/docker \
112 ${datadir}/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml \
113"
Patrick Williams213cb262021-08-07 19:21:33 -0500114FILES:${PN}-dashboard = "${datadir}/cockpit/dashboard"
115ALLOW_EMPTY:${PN}-dashboard = "1"
Andrew Geissler7f40b712020-05-15 14:09:53 -0500116
Andrew Geissler220dafd2023-10-04 10:18:08 -0500117FILES:${PN}-packagekit = "${datadir}/cockpit/packagekit"
118FILES:${PN}-apps = "${datadir}/cockpit/apps"
119
Patrick Williams213cb262021-08-07 19:21:33 -0500120FILES:${PN}-bridge = " \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500121 ${bindir}/cockpit-bridge \
122 ${libexec}/cockpit-askpass \
123"
Patrick Williams213cb262021-08-07 19:21:33 -0500124RDEPENDS:${PN}-bridge = ""
Andrew Geissler7f40b712020-05-15 14:09:53 -0500125
Patrick Williams213cb262021-08-07 19:21:33 -0500126FILES:${PN}-desktop = "${libexecdir}/cockpit-desktop"
127RDEPENDS:${PN}-desktop += "bash"
Andrew Geissler7f40b712020-05-15 14:09:53 -0500128
Patrick Williams213cb262021-08-07 19:21:33 -0500129FILES:${PN}-ws = " \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500130 ${sysconfdir}/cockpit/ws-certs.d \
131 ${sysconfdir}/pam.d/cockpit \
132 ${sysconfdir}/issue.d/cockpit.issue \
133 ${sysconfdir}/motd.d/cockpit \
134 ${datadir}/cockpit/motd/update-motd \
135 ${datadir}/cockpit/motd/inactive.motd \
136 ${systemd_system_unitdir}/cockpit.service \
137 ${systemd_system_unitdir}/cockpit-motd.service \
138 ${systemd_system_unitdir}/cockpit.socket \
Patrick Williams8e7b46e2023-05-01 14:19:06 -0500139 ${systemd_system_unitdir}/cockpit-session.socket \
140 ${systemd_system_unitdir}/cockpit-session@.service \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500141 ${systemd_system_unitdir}/cockpit-wsinstance-http.socket \
142 ${systemd_system_unitdir}/cockpit-wsinstance-http.service \
143 ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.socket \
144 ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.service \
145 ${systemd_system_unitdir}/cockpit-wsinstance-https-factory.socket \
146 ${systemd_system_unitdir}/cockpit-wsinstance-https-factory@.service \
147 ${systemd_system_unitdir}/cockpit-wsinstance-https@.socket \
148 ${systemd_system_unitdir}/cockpit-wsinstance-https@.service \
149 ${systemd_system_unitdir}/system-cockpithttps.slice \
150 ${libdir}/tmpfiles.d/cockpit-tempfiles.conf \
151 ${sbindir}/remotectl \
152 ${libdir}/security/pam_ssh_add.so \
153 ${libdir}/security/pam_cockpit_cert.so \
154 ${libexecdir}/cockpit-ws \
155 ${libexecdir}/cockpit-wsinstance-factory \
156 ${libexecdir}/cockpit-tls \
157 ${libexecdir}/cockpit-session \
158 ${localstatedir}/lib/cockpit \
159 ${datadir}/cockpit/static \
160 ${datadir}/cockpit/branding \
161"
Patrick Williams213cb262021-08-07 19:21:33 -0500162CONFFILES:${PN}-ws += " \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500163 ${sysconfdir}/issue.d/cockpit.issue \
164 ${sysconfdir}/motd.d/cockpit \
165"
Patrick Williams213cb262021-08-07 19:21:33 -0500166RDEPENDS:${PN}-ws += "openssl-bin"
167SYSTEMD_SERVICE:${PN}-ws = "cockpit.socket"
Andrew Geissler7f40b712020-05-15 14:09:53 -0500168
Patrick Williams213cb262021-08-07 19:21:33 -0500169FILES:${PN} += " \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500170 ${datadir}/cockpit/base1 \
171 ${sysconfdir}/cockpit/machines.d \
172 ${datadir}/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy \
173 ${datadir}/cockpit/ssh \
174 ${libexecdir}/cockpit-ssh \
175 ${datadir}/cockpit \
176 ${datadir}/metainfo/cockpit.appdata.xml \
177 ${datadir}/pixmaps/cockpit.png \
Andrew Geissler9aee5002022-03-30 16:27:02 +0000178 ${nonarch_libdir}/tmpfiles.d \
179 ${nonarch_libdir}/firewalld \
Andrew Geissler7f40b712020-05-15 14:09:53 -0500180"
Patrick Williams213cb262021-08-07 19:21:33 -0500181RDEPENDS:${PN} += "${PN}-bridge"
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500182# Needs bash for /usr/libexec/cockpit-certificate-helper
183RDEPENDS:${PN} += "bash"
Andrew Geissler7f40b712020-05-15 14:09:53 -0500184
Patrick Williams213cb262021-08-07 19:21:33 -0500185do_install:append() {
Andrew Geissler7f40b712020-05-15 14:09:53 -0500186 pkgdatadir=${datadir}/cockpit
187
188 chmod 4750 ${D}${libexecdir}/cockpit-session
189
190 install -d "${D}${sysconfdir}/pam.d"
191 install -p -m 0644 ${WORKDIR}/cockpit.pam ${D}${sysconfdir}/pam.d/cockpit
192
193 # provided by firewalld
194 rm -rf ${D}${libdir}/firewalld
Andrew Geissler2ee498a2020-05-29 15:52:06 -0500195
196 if ! ${@bb.utils.contains('PACKAGECONFIG', 'storaged', 'true', 'false', d)}; then
Patrick Williams213cb262021-08-07 19:21:33 -0500197 for filename in ${FILES:${PN}-storaged}
Andrew Geissler2ee498a2020-05-29 15:52:06 -0500198 do
199 rm -rf ${D}$filename
200 done
201 fi
Andrew Geissler7f40b712020-05-15 14:09:53 -0500202}