# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit toolchain-funcs DESCRIPTION="Minimalistic C client library for the Redict database" HOMEPAGE="https://codeberg.org/redict/hiredict" SRC_URI="https://codeberg.org/redict/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" S=${WORKDIR}/${PN} LICENSE="BSD LGPL-3" SLOT="0/$(ver_cut 1-2)" KEYWORDS="~amd64" IUSE="shim ssl static-libs test" RESTRICT="!test? ( test )" DEPEND=" ssl? ( dev-libs/openssl:= ) shim? ( !dev-libs/hiredis ) " RDEPEND="${DEPEND}" BDEPEND=" test? ( dev-db/redict dev-libs/libevent ) " PATCHES=( "${FILESDIR}"/${PN}-1.3.1-disable-network-tests.patch ) _build() { tc-export AR CC local myconf=( AR="${AR}" CC="${CC}" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" DESTDIR="${ED}" PREFIX="/usr" LIBRARY_PATH="$(get_libdir)" USE_SSL=$(usex ssl 1 0) TEST_ASYNC=$(usex test 1 0) DEBUG_FLAGS= OPTIMIZATION= USE_WERROR=0 ) emake "${myconf[@]}" "$@" } src_compile() { # The static lib re-uses the same objects as the shared lib, so # overhead is low w/creating it all the time. It's also needed # by the tests. _build dynamic static hiredict{,_ssl}.pc } src_test() { # Compare with https://codeberg.org/redict/hiredict/src/tag/1.3.1/Makefile#L37 local REDICT_PID="${T}"/hiredict.pid local REDICT_SOCK="${T}"/hiredict.sock local REDICT_PORT=56379 local REDICT_TEST_CONFIG=" daemonize yes pidfile ${REDICT_PID} port ${REDICT_PORT} bind 127.0.0.1 unixsocket //${REDICT_SOCK} " _build hiredict-test "${EPREFIX}"/usr/bin/redict-server - <<< "${REDICT_TEST_CONFIG}" || die ./hiredict-test -h 127.0.0.1 -p ${REDICT_PORT} -s ${REDICT_SOCK} local ret=$? kill "$(<"${REDICT_PID}")" || die [[ ${ret} != "0" ]] && die "tests failed" } src_install() { _build install if ! use static-libs ; then find "${ED}" -name '*.a' -delete || die fi if ! use shim; then find "${ED}" -type d -name 'hiredis' -exec rm -r {} + || die find "${ED}" -name 'hiredis*.pc' -delete || die fi }