# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/elastic.asc inherit systemd verify-sig MY_PN="${PN%-bin}" MY_P=${MY_PN}-${PV} DESCRIPTION="Analytics and search dashboard for Elasticsearch" HOMEPAGE="https://www.elastic.co/kibana" MY_URI="https://artifacts.elastic.co/downloads/${MY_PN}" SRC_URI=" ${MY_URI}/${MY_P}-linux-x86_64.tar.gz verify-sig? ( ${MY_URI}/${MY_P}-linux-x86_64.tar.gz.asc ) " S="${WORKDIR}/${MY_P}" # Elastic-2.0 and node_modules, plus the screenshotting plugin's bundled # Chromium, licensed as www-client/chromium LICENSE="0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions Base64 BlueOak-1.0.0 Boost-1.0 BSD BSD-2 CC-BY-3.0 CC-BY-4.0 CC0-1.0 Clear-BSD Elastic-2.0 FFT2D FTL IJG ISC LGPL-2 LGPL-2.1 LGPL-3 LGPL-3+ libtiff MIT MIT-0 MPL-1.1 MPL-2.0 Ms-PL OFL-1.1 openssl PSF-2 public-domain SGI-B-2.0 SSLeay SunSoft Unicode-3.0 Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB" SLOT="0" KEYWORDS="-* ~amd64" # Kibana refuses to start on any other Node.js version. RDEPEND=" acct-group/kibana acct-user/kibana dev-libs/expat dev-libs/nspr dev-libs/nss ~net-libs/nodejs-24.21.0[inspector,ssl] " BDEPEND=" acct-group/kibana acct-user/kibana verify-sig? ( sec-keys/openpgp-keys-elastic ) " QA_PREBUILT="opt/${MY_PN}/*" src_prepare() { default rm -r data node plugins || die local script for script in bin/*; do grep -q '^NODE="' "${script}" || die sed -i "s|^NODE=.*|NODE=\"${EPREFIX}/usr/bin/node\"|" "${script}" || die done } src_install() { diropts -g ${MY_PN} -m 2750 insopts -g ${MY_PN} -m 0660 insinto /etc/${MY_PN} doins -r config/. rm -r config || die diropts -m 0755 insopts -m 0644 insinto /opt/${MY_PN} doins -r . fperms -R +x /opt/${MY_PN}/bin local chromium=node_modules/@kbn/screenshotting-plugin/chromium fperms +x /opt/${MY_PN}/${chromium}/headless_shell-linux_x64/headless_shell dosym -r /etc/${MY_PN} /opt/${MY_PN}/config dosym -r /var/lib/${MY_PN} /opt/${MY_PN}/data dosym -r /var/lib/${MY_PN}/plugins /opt/${MY_PN}/plugins insinto /etc/logrotate.d newins "${FILESDIR}"/${MY_PN}.logrotate ${MY_PN} newconfd "${FILESDIR}"/${MY_PN}.confd ${MY_PN} newinitd "${FILESDIR}"/${MY_PN}.initd ${MY_PN} systemd_dounit "${FILESDIR}"/${MY_PN}.service diropts -o ${MY_PN} -g ${MY_PN} -m 0750 keepdir /var/lib/${MY_PN}/plugins /var/log/${MY_PN} } pkg_postinst() { # Merging keeps the ownership of an existing directory, and earlier # versions left this one world-readable while kibana.yml holds credentials. chown root:${MY_PN} "${EROOT}"/etc/${MY_PN} || die chmod 2750 "${EROOT}"/etc/${MY_PN} || die }