From 328c2af92299ca33e642543ca64884402f8bcc56 Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Tue, 7 May 2024 20:11:46 -0700 Subject: www-apps/cgit: re-add 9999 series to support much newer Git Upstream has not made an official release since 2020, but master is more up to date, and trusted contributers have a branch with the latest Git support. This is important because Git v2.45.0 adds support for Bloom Filters in commit graphs, providing 10x performance in web displays. Reference: https://lore.kernel.org/git/robbat2-20240507T053331-859497691Z@orbis-terrarum.net/T/#t Signed-off-by: Robin H. Johnson --- www-apps/cgit/cgit-1.2.3-r203.ebuild | 6 +- www-apps/cgit/cgit-9999-r1.ebuild | 123 +++++++++++++++++++++++++++++++++++ www-apps/cgit/cgit-9999.ebuild | 120 ++++++++++++++++++++++++++++++++++ 3 files changed, 247 insertions(+), 2 deletions(-) create mode 100644 www-apps/cgit/cgit-9999-r1.ebuild create mode 100644 www-apps/cgit/cgit-9999.ebuild diff --git a/www-apps/cgit/cgit-1.2.3-r203.ebuild b/www-apps/cgit/cgit-1.2.3-r203.ebuild index 8499426633d8..805171058e89 100644 --- a/www-apps/cgit/cgit-1.2.3-r203.ebuild +++ b/www-apps/cgit/cgit-1.2.3-r203.ebuild @@ -56,8 +56,10 @@ pkg_setup() { } src_configure() { - rmdir git || die - mv "${WORKDIR}"/git-"${GIT_V}" git || die + if ! [[ ${PV} =~ 9999* ]]; then + rmdir git || die + mv "${WORKDIR}"/git-"${GIT_V}" git || die + fi echo "prefix = ${EPREFIX}/usr" >> cgit.conf || die "echo prefix failed" echo "libdir = ${EPREFIX}/usr/$(get_libdir)" >> cgit.conf || die "echo libdir failed" diff --git a/www-apps/cgit/cgit-9999-r1.ebuild b/www-apps/cgit/cgit-9999-r1.ebuild new file mode 100644 index 000000000000..8b6fded5c051 --- /dev/null +++ b/www-apps/cgit/cgit-9999-r1.ebuild @@ -0,0 +1,123 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-{1..4} luajit ) + +PYTHON_COMPAT=( python3_{10..12} ) + +WEBAPP_MANUAL_SLOT="yes" + +inherit lua-single python-single-r1 tmpfiles toolchain-funcs webapp git-r3 + +[[ -z "${CGIT_CACHEDIR}" ]] && CGIT_CACHEDIR="/var/cache/${PN}/" + +GIT_V="2.45.0" + +DESCRIPTION="a fast web-interface for git repositories" +HOMEPAGE="https://git.zx2c4.com/cgit/about" +if [[ ${PV} =~ 9999* ]]; then + SRC_URI="" + EGIT_REPO_URI="https://git.zx2c4.com/cgit" + # v2.45.0 updates in this branch series + EGIT_COMMIT=dbadd856ba0537110338cfe58256b152d01388c0 + EGIT_BRANCH=ch/for-jason +else + SRC_URI="https://www.kernel.org/pub/software/scm/git/git-${GIT_V}.tar.xz + https://git.zx2c4.com/cgit/snapshot/${P}.tar.xz" +fi + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="" +IUSE="doc +highlight +lua test" +REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} ) ${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +RDEPEND=" + ${PYTHON_DEPS} + acct-group/cgit + acct-user/cgit + dev-libs/openssl:0= + dev-vcs/git + highlight? ( + $(python_gen_cond_dep 'dev-python/pygments[${PYTHON_USEDEP}]' ) + ) + lua? ( ${LUA_DEPS} ) + sys-libs/zlib + virtual/httpd-cgi +" +# ebuilds without WEBAPP_MANUAL_SLOT="yes" are broken +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( + app-text/docbook-xsl-stylesheets + >=app-text/asciidoc-8.5.1 + ) +" + +pkg_setup() { + python_setup + webapp_pkg_setup + use lua && lua-single_pkg_setup +} + +src_configure() { + if ! [[ ${PV} =~ 9999* ]]; then + rmdir git || die + mv "${WORKDIR}"/git-"${GIT_V}" git || die + fi + echo "prefix = ${EPREFIX}/usr" >> cgit.conf || die "echo prefix failed" + echo "libdir = ${EPREFIX}/usr/$(get_libdir)" >> cgit.conf || die "echo libdir failed" + echo "CGIT_SCRIPT_PATH = ${MY_CGIBINDIR}" >> cgit.conf || die "echo CGIT_SCRIPT_PATH failed" + echo "CGIT_DATA_PATH = ${MY_HTDOCSDIR}" >> cgit.conf || die "echo CGIT_DATA_PATH failed" + echo "CACHE_ROOT = ${CGIT_CACHEDIR}" >> cgit.conf || die "echo CACHE_ROOT failed" + if use lua; then + echo "LUA_PKGCONFIG = ${ELUA}" >> cgit.conf || die "echo LUA_PKGCONFIG failed" + else + echo "NO_LUA = 1" >> cgit.conf || die "echo NO_LUA failed" + fi +} + +src_compile() { + emake V=1 AR="$(tc-getAR)" CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" + use doc && emake V=1 doc-man +} + +src_install() { + webapp_src_preinst + + emake V=1 AR="$(tc-getAR)" CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" DESTDIR="${D}" install + + insinto /etc + doins "${FILESDIR}"/cgitrc + + dodoc README + use doc && doman cgitrc.5 + + webapp_postinst_txt en "${FILESDIR}"/postinstall-en.txt + webapp_src_install + + cat > cgit.conf <<-EOT || die + d ${CGIT_CACHEDIR} 0700 cgit cgit - + EOT + dotmpfiles cgit.conf + + python_fix_shebang . +} + +src_test() { + emake V=1 AR="$(tc-getAR)" CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" test +} + +pkg_postinst() { + webapp_pkg_postinst + tmpfiles_process cgit.conf + ewarn "The cgit cache is enabled using the cache-size setting in cgitrc." + ewarn "If enabling the cache and running cgit using the web server's user" + ewarn "you should copy ${EROOT}/usr/lib/tmpfiles.d/cgit.conf" + ewarn "to ${EROOT}/etc/tmpfiles.d/ and edit, changing the ownership fields." + ewarn "If you use the cache-root setting in cgitrc to specify a cache directory" + ewarn "other than ${CGIT_CACHEDIR} edit the path in cgit.conf." +} diff --git a/www-apps/cgit/cgit-9999.ebuild b/www-apps/cgit/cgit-9999.ebuild new file mode 100644 index 000000000000..1fab1a1e34a9 --- /dev/null +++ b/www-apps/cgit/cgit-9999.ebuild @@ -0,0 +1,120 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-{1..4} luajit ) + +PYTHON_COMPAT=( python3_{10..12} ) + +WEBAPP_MANUAL_SLOT="yes" + +inherit lua-single python-single-r1 tmpfiles toolchain-funcs webapp git-r3 + +[[ -z "${CGIT_CACHEDIR}" ]] && CGIT_CACHEDIR="/var/cache/${PN}/" + +GIT_V="2.39.0" + +DESCRIPTION="a fast web-interface for git repositories" +HOMEPAGE="https://git.zx2c4.com/cgit/about" +if [[ ${PV} =~ 9999* ]]; then + SRC_URI="" + EGIT_REPO_URI="https://git.zx2c4.com/cgit" +else + SRC_URI="https://www.kernel.org/pub/software/scm/git/git-${GIT_V}.tar.xz + https://git.zx2c4.com/cgit/snapshot/${P}.tar.xz" +fi + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="" +IUSE="doc +highlight +lua test" +REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} ) ${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +RDEPEND=" + ${PYTHON_DEPS} + acct-group/cgit + acct-user/cgit + dev-libs/openssl:0= + dev-vcs/git + highlight? ( + $(python_gen_cond_dep 'dev-python/pygments[${PYTHON_USEDEP}]' ) + ) + lua? ( ${LUA_DEPS} ) + sys-libs/zlib + virtual/httpd-cgi +" +# ebuilds without WEBAPP_MANUAL_SLOT="yes" are broken +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( + app-text/docbook-xsl-stylesheets + >=app-text/asciidoc-8.5.1 + ) +" + +pkg_setup() { + python_setup + webapp_pkg_setup + use lua && lua-single_pkg_setup +} + +src_configure() { + if ! [[ ${PV} =~ 9999* ]]; then + rmdir git || die + mv "${WORKDIR}"/git-"${GIT_V}" git || die + fi + echo "prefix = ${EPREFIX}/usr" >> cgit.conf || die "echo prefix failed" + echo "libdir = ${EPREFIX}/usr/$(get_libdir)" >> cgit.conf || die "echo libdir failed" + echo "CGIT_SCRIPT_PATH = ${MY_CGIBINDIR}" >> cgit.conf || die "echo CGIT_SCRIPT_PATH failed" + echo "CGIT_DATA_PATH = ${MY_HTDOCSDIR}" >> cgit.conf || die "echo CGIT_DATA_PATH failed" + echo "CACHE_ROOT = ${CGIT_CACHEDIR}" >> cgit.conf || die "echo CACHE_ROOT failed" + if use lua; then + echo "LUA_PKGCONFIG = ${ELUA}" >> cgit.conf || die "echo LUA_PKGCONFIG failed" + else + echo "NO_LUA = 1" >> cgit.conf || die "echo NO_LUA failed" + fi +} + +src_compile() { + emake V=1 AR="$(tc-getAR)" CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" + use doc && emake V=1 doc-man +} + +src_install() { + webapp_src_preinst + + emake V=1 AR="$(tc-getAR)" CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" DESTDIR="${D}" install + + insinto /etc + doins "${FILESDIR}"/cgitrc + + dodoc README + use doc && doman cgitrc.5 + + webapp_postinst_txt en "${FILESDIR}"/postinstall-en.txt + webapp_src_install + + cat > cgit.conf <<-EOT || die + d ${CGIT_CACHEDIR} 0700 cgit cgit - + EOT + dotmpfiles cgit.conf + + python_fix_shebang . +} + +src_test() { + emake V=1 AR="$(tc-getAR)" CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" test +} + +pkg_postinst() { + webapp_pkg_postinst + tmpfiles_process cgit.conf + ewarn "The cgit cache is enabled using the cache-size setting in cgitrc." + ewarn "If enabling the cache and running cgit using the web server's user" + ewarn "you should copy ${EROOT}/usr/lib/tmpfiles.d/cgit.conf" + ewarn "to ${EROOT}/etc/tmpfiles.d/ and edit, changing the ownership fields." + ewarn "If you use the cache-root setting in cgitrc to specify a cache directory" + ewarn "other than ${CGIT_CACHEDIR} edit the path in cgit.conf." +} -- cgit v1.2.3-65-gdbad