guru/net-libs/kcgi/kcgi-0.13.3.ebuild
Arthur Zamarin 7c4a964dd3
*/*: move {sys-devel => dev-build}/bmake
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
2024-01-13 22:19:54 +02:00

97 lines
1.9 KiB
Bash

# Copyright 2019-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic multilib multiprocessing toolchain-funcs
DESCRIPTION="Minimal CGI library for web applications"
HOMEPAGE="https://kristaps.bsd.lv/kcgi/"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/kristapsdz/${PN}"
else
SRC_URI="https://kristaps.bsd.lv/${PN}/snapshots/${P}.tgz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="ISC"
SLOT="0"
IUSE="static-libs test"
RESTRICT="!test? ( test )"
BDEPEND="dev-build/bmake"
RDEPEND="
app-crypt/libmd
virtual/libcrypt
"
DEPEND="${RDEPEND}
test? ( net-misc/curl[static-libs(-)] )
"
src_prepare() {
default
# ld: multiple definition of `dummy'
local deselect=( sandbox-{capsicum,darwin,pledge,seccomp-filter}.o )
case ${CHOST} in
*-linux-*)
deselect=( "${deselect[@]/sandbox-seccomp-filter.o}" )
;;
*-darwin*)
deselect=( "${deselect[@]/sandbox-darwin.o}" )
;;
*-freebsd*)
deselect=( "${deselect[@]/sandbox-capsicum.o}" )
;;
*-openbsd*)
deselect=( "${deselect[@]/sandbox-pledge.o}" )
;;
esac
for obj in "${deselect[@]}"; do
# elements are not deleted completely from the array
if [[ -n "${obj}" ]]; then
sed "/${obj}/d" -i Makefile || die
fi
done
}
src_configure() {
tc-export CC AR
append-cflags -fPIC
append-cppflags -DENABLE_SECCOMP_FILTER=1
append-cppflags -DSANDBOX_SECCOMP_DEBUG # seccomp may cause problems
# note: not an autoconf configure script
conf_args=(
CPPFLAGS="${CPPFLAGS}"
LDFLAGS="${LDFLAGS}"
PREFIX="${EPREFIX}"/usr
MANDIR="${EPREFIX}"/usr/share/man
LIBDIR="${EPREFIX}"/usr/$(get_libdir)
SBINDIR="${EPREFIX}"/usr/sbin
)
./configure "${conf_args[@]}" || die
}
src_compile() {
bmake || die
}
src_test() {
# TODO: add `afl` tests
bmake regress || die
}
src_install() {
bmake DESTDIR="${D}" \
DATADIR="${EPREFIX}/usr/share/doc/${PF}/examples" \
install || die
einstalldocs
}