# Copyright 2026 Benny Powers # Distributed under the terms of the GNU General Public License v2 EAPI=8 PYTHON_COMPAT=( python3_{12..13} ) inherit pam python-single-r1 systemd tmpfiles DESCRIPTION="Web-based server administration interface" HOMEPAGE="https://cockpit-project.org/ https://github.com/cockpit-project/cockpit" SRC_URI=" https://github.com/cockpit-project/${PN}/releases/download/${PV}/${P}.tar.xz https://github.com/cockpit-project/${PN}/releases/download/${PV}/${PN}-node-${PV}.tar.xz " LICENSE="LGPL-2.1+ GPL-3+ MIT BSD CC-BY-SA-3.0" SLOT="0" KEYWORDS="~amd64" IUSE="doc selinux" REQUIRED_USE="${PYTHON_REQUIRED_USE}" DEPEND=" ${PYTHON_DEPS} >=app-crypt/mit-krb5-1.11 >=dev-libs/glib-2.68:2 >=dev-libs/json-glib-1.4 >=net-libs/gnutls-3.6.0:= sys-apps/systemd:= sys-libs/pam virtual/libcrypt:= " RDEPEND=" ${DEPEND} net-misc/openssh net-libs/glib-networking[ssl] " BDEPEND=" ${PYTHON_DEPS} $(python_gen_cond_dep 'dev-python/installer[${PYTHON_USEDEP}]') >=sys-devel/gettext-0.21 virtual/pkgconfig doc? ( dev-ruby/asciidoctor ) " src_prepare() { default # The node modules tarball extracts to ${WORKDIR}/node_modules ln -s "${WORKDIR}/node_modules" "${S}/node_modules" || die # Disable the pip-based install-python target; we install the # wheel ourselves in src_install using dev-python/installer sed -i '/^install-python:/,/^[^[:space:]]/{ /^install-python:/!{/^[^[:space:]]/!d} }' Makefile.in || die } src_configure() { local myeconfargs=( --localstatedir="${EPREFIX}/var" --with-pamdir="$(getpam_mod_dir)" --with-systemdunitdir="$(systemd_get_systemunitdir)" $(use_enable doc) $(use_enable selinux selinux-policy targeted) ) econf "${myeconfargs[@]}" } src_install() { # Build the Python wheel before install (needed by install-python target) local wheel wheel=$("${PYTHON}" src/build_backend.py --wheel "${S}" tmp/wheel) || die default # Install the wheel using Gentoo's dev-python/installer "${PYTHON}" -m installer --destdir="${D}" --prefix="${EPREFIX}/usr" "${wheel}" || die # Upstream moves cockpit-askpass from bindir to libexecdir dodir /usr/libexec mv "${D}${EPREFIX}/usr/bin/cockpit-askpass" \ "${D}${EPREFIX}/usr/libexec/cockpit-askpass" || die python_optimize keepdir /etc/cockpit/ws-certs.d keepdir /etc/cockpit/machines.d } pkg_postinst() { tmpfiles_process cockpit-ws.conf elog "To enable Cockpit, run:" elog " systemctl enable --now cockpit.socket" elog "" elog "Then visit https://localhost:9090 in your browser." elog "" elog "For TLS certificates, place your cert and key in" elog "/etc/cockpit/ws-certs.d/ or install app-crypt/sscg" elog "for automatic self-signed certificate generation." }