summaryrefslogtreecommitdiffstats
path: root/meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb
diff options
context:
space:
mode:
authorDaniel Semkowicz <dse@thaumatec.com>2023-11-09 10:31:45 +0100
committerKhem Raj <raj.khem@gmail.com>2023-11-09 20:47:44 -0800
commit9281dbcc217c3517e45106af36ae422f5af01d65 (patch)
treeccb5a5905a9ea29ce030dce0dfff539c49034f40 /meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb
parent5f514bf4c7131ab97eacb0d4b49f26c79d79a18e (diff)
downloadmeta-openembedded-9281dbcc217c3517e45106af36ae422f5af01d65.tar.gz
cockpit: Bump to version 304
In version 301, the default bridge implementation was changed to Python. Adjust recipe to build and install new Python bridge. Old bridge implementation is still available and can be enabled using '--enable-old-bridge' flag. Add PACKAGECONFIG option for old bridge. New bridge shows minor regressions like networking graph not generated correctly. Probably additional dependencies are missing. For this reason, keep the old bridge enabled by default. Signed-off-by: Daniel Semkowicz <dse@thaumatec.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb')
-rw-r--r--meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb207
1 files changed, 207 insertions, 0 deletions
diff --git a/meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb b/meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb
new file mode 100644
index 0000000000..ab05fd3777
--- /dev/null
+++ b/meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb
@@ -0,0 +1,207 @@
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://cockpit.pam \
11 "
12SRC_URI[sha256sum] = "a87d090c930e2058bb3e970ca7f2bafe678687966b5c0b8b42a802977e391ce9"
13
14inherit gettext pkgconfig autotools systemd features_check
15inherit ${@bb.utils.contains('PACKAGECONFIG', 'old-bridge', '', 'python3targetconfig', d)}
16
17DEPENDS += "glib-2.0-native intltool-native gnutls virtual/gettext json-glib krb5 libpam systemd"
18DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'old-bridge', '', 'python3-pip-native', d)}"
19
20COMPATIBLE_HOST:libc-musl = "null"
21
22RDEPENDS:${PN} += "glib-networking"
23
24REQUIRED_DISTRO_FEATURES = "systemd pam"
25
26COCKPIT_USER_GROUP ?= "root"
27COCKPIT_WS_USER_GROUP ?= "${COCKPIT_USER_GROUP}"
28
29EXTRA_AUTORECONF = "-I tools"
30EXTRA_OECONF = " \
31 --with-cockpit-user=${COCKPIT_USER_GROUP} \
32 --with-cockpit-group=${COCKPIT_USER_GROUP} \
33 --with-admin-group=${COCKPIT_USER_GROUP} \
34 --with-cockpit-ws-instance-user=${COCKPIT_WS_USER_GROUP} \
35 --with-cockpit-ws-instance-group=${COCKPIT_WS_USER_GROUP} \
36 --disable-doc \
37 --with-systemdunitdir=${systemd_system_unitdir} \
38"
39
40PACKAGECONFIG ??= " \
41 ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \
42 old-bridge \
43"
44
45PACKAGECONFIG[pcp] = "--enable-pcp,--disable-pcp,pcp"
46PACKAGECONFIG[dashboard] = "--enable-ssh,--disable-ssh,libssh"
47PACKAGECONFIG[storaged] = ",,,udisks2"
48PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit"
49PACKAGECONFIG[old-bridge] = "--enable-old-bridge"
50
51PACKAGES =+ " \
52 ${PN}-pcp \
53 ${PN}-realmd \
54 ${PN}-tuned \
55 ${PN}-shell \
56 ${PN}-systemd \
57 ${PN}-users \
58 ${PN}-kdump \
59 ${PN}-sosreport \
60 ${PN}-storaged \
61 ${PN}-networkmanager \
62 ${PN}-machines \
63 ${PN}-selinux \
64 ${PN}-playground \
65 ${PN}-docker \
66 ${PN}-dashboard \
67 ${PN}-packagekit \
68 ${PN}-apps \
69 ${PN}-bridge \
70 ${PN}-ws \
71 ${PN}-desktop \
72"
73SYSTEMD_PACKAGES = "${PN}-ws"
74
75FILES:${PN}-pcp = " \
76 ${libexecdir}/cockpit-pcp \
77 ${datadir}/cockpit/pcp \
78 ${localstatedir}/lib/pcp/config/pmlogconf/tools/cockpit \
79"
80FILES:${PN}-realmd = "${datadir}/cockpit/realmd"
81FILES:${PN}-tuned = "${datadir}/cockpit/tuned"
82FILES:${PN}-shell = "${datadir}/cockpit/shell"
83FILES:${PN}-systemd = "${datadir}/cockpit/systemd"
84FILES:${PN}-users = "${datadir}/cockpit/users"
85FILES:${PN}-kdump = " \
86 ${datadir}/cockpit/kdump \
87 ${datadir}/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml \
88"
89FILES:${PN}-sosreport = " \
90 ${datadir}/cockpit/sosreport \
91 ${datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml \
92 ${datadir}/pixmaps/cockpit-sosreport.png \
93"
94FILES:${PN}-storaged = " \
95 ${datadir}/cockpit/storaged \
96 ${datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml \
97"
98
99FILES:${PN}-networkmanager = " \
100 ${datadir}/cockpit/networkmanager \
101 ${datadir}/metainfo/org.cockpit-project.cockpit-networkmanager.metainfo.xml \
102"
103RDEPENDS:${PN}-networkmanager = "networkmanager"
104
105FILES:${PN}-machines = " \
106 ${datadir}/cockpit/machines \
107 ${datadir}/metainfo/org.cockpit-project.cockpit-machines.metainfo.xml \
108"
109FILES:${PN}-selinux = " \
110 ${datadir}/cockpit/selinux \
111 ${datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml \
112"
113FILES:${PN}-playground = "${datadir}/cockpit/playground"
114FILES:${PN}-docker = " \
115 ${datadir}/cockpit/docker \
116 ${datadir}/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml \
117"
118FILES:${PN}-dashboard = "${datadir}/cockpit/dashboard"
119ALLOW_EMPTY:${PN}-dashboard = "1"
120
121FILES:${PN}-packagekit = "${datadir}/cockpit/packagekit"
122FILES:${PN}-apps = "${datadir}/cockpit/apps"
123
124FILES:${PN}-bridge = " \
125 ${bindir}/cockpit-bridge \
126 ${libexecdir}/cockpit-askpass \
127 ${PYTHON_SITEPACKAGES_DIR} \
128"
129RDEPENDS:${PN}-bridge = "${@bb.utils.contains('PACKAGECONFIG', 'old-bridge', '', 'python3', d)}"
130
131FILES:${PN}-desktop = "${libexecdir}/cockpit-desktop"
132RDEPENDS:${PN}-desktop += "bash"
133
134FILES:${PN}-ws = " \
135 ${sysconfdir}/cockpit/ws-certs.d \
136 ${sysconfdir}/pam.d/cockpit \
137 ${sysconfdir}/issue.d/cockpit.issue \
138 ${sysconfdir}/motd.d/cockpit \
139 ${datadir}/cockpit/motd/update-motd \
140 ${datadir}/cockpit/motd/inactive.motd \
141 ${systemd_system_unitdir}/cockpit.service \
142 ${systemd_system_unitdir}/cockpit-motd.service \
143 ${systemd_system_unitdir}/cockpit.socket \
144 ${systemd_system_unitdir}/cockpit-session.socket \
145 ${systemd_system_unitdir}/cockpit-session@.service \
146 ${systemd_system_unitdir}/cockpit-wsinstance-http.socket \
147 ${systemd_system_unitdir}/cockpit-wsinstance-http.service \
148 ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.socket \
149 ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.service \
150 ${systemd_system_unitdir}/cockpit-wsinstance-https-factory.socket \
151 ${systemd_system_unitdir}/cockpit-wsinstance-https-factory@.service \
152 ${systemd_system_unitdir}/cockpit-wsinstance-https@.socket \
153 ${systemd_system_unitdir}/cockpit-wsinstance-https@.service \
154 ${systemd_system_unitdir}/system-cockpithttps.slice \
155 ${libdir}/tmpfiles.d/cockpit-tempfiles.conf \
156 ${sbindir}/remotectl \
157 ${libdir}/security/pam_ssh_add.so \
158 ${libdir}/security/pam_cockpit_cert.so \
159 ${libexecdir}/cockpit-ws \
160 ${libexecdir}/cockpit-wsinstance-factory \
161 ${libexecdir}/cockpit-tls \
162 ${libexecdir}/cockpit-session \
163 ${localstatedir}/lib/cockpit \
164 ${datadir}/cockpit/static \
165 ${datadir}/cockpit/branding \
166"
167CONFFILES:${PN}-ws += " \
168 ${sysconfdir}/issue.d/cockpit.issue \
169 ${sysconfdir}/motd.d/cockpit \
170"
171RDEPENDS:${PN}-ws += "openssl-bin"
172SYSTEMD_SERVICE:${PN}-ws = "cockpit.socket"
173
174FILES:${PN} += " \
175 ${datadir}/cockpit/base1 \
176 ${sysconfdir}/cockpit/machines.d \
177 ${datadir}/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy \
178 ${datadir}/cockpit/ssh \
179 ${libexecdir}/cockpit-ssh \
180 ${datadir}/cockpit \
181 ${datadir}/metainfo/cockpit.appdata.xml \
182 ${datadir}/pixmaps/cockpit.png \
183 ${nonarch_libdir}/tmpfiles.d \
184 ${nonarch_libdir}/firewalld \
185"
186RDEPENDS:${PN} += "${PN}-bridge"
187# Needs bash for /usr/libexec/cockpit-certificate-helper
188RDEPENDS:${PN} += "bash"
189
190do_install:append() {
191 pkgdatadir=${datadir}/cockpit
192
193 chmod 4750 ${D}${libexecdir}/cockpit-session
194
195 install -d "${D}${sysconfdir}/pam.d"
196 install -p -m 0644 ${WORKDIR}/cockpit.pam ${D}${sysconfdir}/pam.d/cockpit
197
198 # provided by firewalld
199 rm -rf ${D}${libdir}/firewalld
200
201 if ! ${@bb.utils.contains('PACKAGECONFIG', 'storaged', 'true', 'false', d)}; then
202 for filename in ${FILES:${PN}-storaged}
203 do
204 rm -rf ${D}$filename
205 done
206 fi
207}