You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-libs/hiredis/hiredis-1.2.0.ebuild

93 lines
2.2 KiB

# 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 Redis database"
HOMEPAGE="https://github.com/redis/hiredis"
SRC_URI="https://github.com/redis/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
# Always check "Upgrading from ..." in README
# e.g. https://github.com/redis/hiredis#upgrading-to-110
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-solaris"
IUSE="examples ssl static-libs test"
RESTRICT="!test? ( test )"
DEPEND="ssl? ( dev-libs/openssl:= )"
RDEPEND="${DEPEND}"
BDEPEND="
test? (
dev-db/redis
dev-libs/libevent
)
"
PATCHES=(
"${FILESDIR}"/${PN}-1.1.0-disable-network-tests.patch
"${FILESDIR}"/${PN}-1.2.0-conditional-werror.patch # bug 930336
)
_build() {
local myconf=(
AR="$(tc-getAR)"
CC="$(tc-getCC)"
PREFIX="${EPREFIX}/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 hiredis{,_ssl}.pc
}
src_test() {
# Compare with https://github.com/redis/hiredis/blob/648763c36e9f6493b13a77da35eb33ef0652b4e2/Makefile#L32
local REDIS_PID="${T}"/hiredis.pid
local REDIS_SOCK="${T}"/hiredis.sock
local REDIS_PORT=56379
local REDIS_TEST_CONFIG="
daemonize yes
pidfile ${REDIS_PID}
port ${REDIS_PORT}
bind 127.0.0.1
unixsocket //${REDIS_SOCK}
"
_build hiredis-test
"${EPREFIX}"/usr/sbin/redis-server - <<< "${REDIS_TEST_CONFIG}" || die
./hiredis-test -h 127.0.0.1 -p ${REDIS_PORT} -s ${REDIS_SOCK}
local ret=$?
kill "$(<"${REDIS_PID}")" || die
[[ ${ret} != "0" ]] && die "tests failed"
}
src_install() {
_build PREFIX="${ED}/usr" install
if ! use static-libs ; then
find "${ED}" -name '*.a' -delete || die
fi
insinto /usr/$(get_libdir)/pkgconfig
doins ${PN}.pc
local DOCS=( CHANGELOG.md README.md )
use examples && DOCS+=( examples )
einstalldocs
}