guru/net-irc/thelounge/thelounge-4.4.1-r1.ebuild
Anna (cybertailor) Vyalkova bb0aae8ad3
*/*: disable py3.10
Python 3.10 target is scheduled for removal in Gentoo:
https://public-inbox.gentoo.org/gentoo-dev/e6ca9f1f4ababb79ab2a3d005c39b483c3ecef6e.camel@gentoo.org/

Sphinx 8.2.0 already dropped support for CPython 3.10 and PyPy 3.10,
leading to multiple CI failures in ::guru.

We can safely remove this target, because GURU is "experimental" and
does not have stable keywords.

Let's not remove "pypy3" right now because
a) There are not many packages using it.
b) So we can see which packages supported PyPy 3.10, and test them with
   PyPy 3.11.

Closes: https://github.com/gentoo/guru/pull/291
Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>
2025-02-21 17:51:14 +05:00

114 lines
3.1 KiB
Bash
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..12} )
inherit python-any-r1 readme.gentoo-r1 systemd tmpfiles
DESCRIPTION="Modern, responsive, cross-platform, self-hosted web IRC client"
HOMEPAGE="https://thelounge.chat/"
SRC_URI="
https://github.com/thelounge/thelounge/archive/refs/tags/v${PV/_rc/-rc.}.tar.gz -> ${P}.tar.gz
https://github.com/rahilarious/gentoo-distfiles/releases/download/${P}/deps.tar.xz -> ${P}-deps.tar.xz
sqlite? ( https://github.com/rahilarious/gentoo-distfiles/releases/download/${P}/sqlite.tar.xz -> ${P}-sqlite.tar.xz )
"
S="${WORKDIR}/${PN}-${PV/_rc/-rc.}"
LICENSE="BSD MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+sqlite"
RDEPEND="
acct-user/${PN}
acct-group/${PN}
>=net-libs/nodejs-16
sqlite? ( dev-db/sqlite:3= )
"
DEPEND="${RDEPEND}"
BDEPEND="
sqlite? ( ${PYTHON_DEPS} )
>=net-libs/nodejs-16[npm]
sys-apps/yarn
"
DOC_CONTENTS="\n
##### Defaults #####\n
Data directory: /var/lib/${PN}\n
Listens on: 0.0.0.0:9000\n
Log file (openrc): /var/log/${PN}.log\n
Config file: /var/lib/${PN}/config.js\n
\n
##### Initialization #####\n
Run \`THELOUNGE_HOME=/var/lib/${PN} ${PN} add <user>\`
"
mooyarn() {
use !sqlite && local YARN_OPTS="--ignore-optional"
yarn --verbose --non-interactive --frozen-lockfile --cache-folder "${WORKDIR}"/yarn-cache --offline \
--ignore-scripts ${YARN_OPTS} "${@}" || die
}
pkg_setup() {
use sqlite && python-any-r1_pkg_setup
}
src_prepare() {
default
use !sqlite && { sed -i -e 's|\["sqlite", |\[|g;' defaults/config.js || die ; }
}
src_compile() {
# thelounge build
mooyarn install
NODE_ENV=production mooyarn build
local BUILT_TAR=$(realpath $(npm pack || die))
# thelounge install
mkdir -v moobuild && cp -v {package.json,yarn.lock} moobuild/ || die
pushd moobuild || die
NODE_ENV=production mooyarn add file:${BUILT_TAR:?}
if use sqlite; then
# sqlite3 build
pushd node_modules/sqlite3 || die
export \
npm_config_cache="${WORKDIR}"/npm-cache \
npm_config_nodedir="${EPREFIX}"/usr \
NODE_GYP_FORCE_PYTHON="${PYTHON}" \
|| die
npm --verbose --offline install --build-from-source --sqlite="${EPREFIX}"/usr || die
# sqlite3 cleanup
rm -rf node_modules || die
find build* -type f -not -path build/Release/node_sqlite3.node -delete || die
popd || die
fi
popd || die
}
src_install() {
insinto /usr/$(get_libdir)/node_modules/"${PN}"
doins -r moobuild/node_modules
fperms 755 /usr/$(get_libdir)/node_modules/"${PN}"/node_modules/"${PN}"/index.js
dosym -r /usr/$(get_libdir)/node_modules/"${PN}"/node_modules/"${PN}"/index.js /usr/bin/"${PN}"
systemd_newunit "${FILESDIR}"/"${PN}"-4.4.1.service "${PN}".service
systemd_newuserunit "${FILESDIR}"/"${PN}"-4.4.1-user.service "${PN}".service
newinitd "${FILESDIR}"/"${PN}"-4.4.1.initd "${PN}"
newconfd "${FILESDIR}"/"${PN}"-4.4.1.confd "${PN}"
newtmpfiles "${FILESDIR}"/"${PN}"-4.4.1-tmpfiles.conf "${PN}".conf
insinto /etc/logrotate.d
newins "${FILESDIR}"/"${PN}"-4.4.1.logrotate "${PN}"
readme.gentoo_create_doc
}
pkg_postinst() {
tmpfiles_process "${PN}".conf
readme.gentoo_print_elog
}