# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" PYTHON_COMPAT=( python3_{10..13} ) inherit flag-o-matic python-any-r1 toolchain-funcs DESCRIPTION="Apache Kafka C/C++ client library" HOMEPAGE="https://github.com/confluentinc/librdkafka" if [[ ${PV} == "9999" ]]; then EGIT_REPO_URI="https://github.com/confluentinc/${PN}.git" inherit git-r3 else SRC_URI="https://github.com/confluentinc/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" fi LICENSE="BSD-2" # subslot = soname version SLOT="0/1" IUSE="+lz4 sasl ssl static-libs +zstd" LIB_DEPEND=" lz4? ( app-arch/lz4:=[static-libs(+)] ) sasl? ( dev-libs/cyrus-sasl:=[static-libs(+)] ) ssl? ( dev-libs/openssl:0=[static-libs(+)] ) zstd? ( app-arch/zstd:=[static-libs(+)] ) sys-libs/zlib:=[static-libs(+)] " # which: https://github.com/confluentinc/librdkafka/pull/4353 BDEPEND=" sys-apps/which virtual/pkgconfig ${PYTHON_DEPS} " RDEPEND="net-misc/curl !static-libs? ( ${LIB_DEPEND//\[static-libs(+)]} )" DEPEND=" ${RDEPEND} elibc_musl? ( sys-libs/queue-standalone ) static-libs? ( ${LIB_DEPEND} ) " pkg_setup() { python-any-r1_pkg_setup } src_prepare() { default if [[ ${PV} != "9999" ]]; then sed -i \ -e "s/^\(export RDKAFKA_GITVER=\).*/\1\"${PV}@release\"/" \ tests/run-test.sh || die fi } src_configure() { # error: unknown register name ‘%edx’ in ‘asm’ # https://bugs.gentoo.org/895464 # https://github.com/confluentinc/librdkafka/issues/2426 filter-lto tc-export AR CC CXX LD NM OBJDUMP PKG_CONFIG STRIP local myeconf=( --prefix="${EPREFIX}/usr" --build="${CBUILD}" --host="${CHOST}" --mandir="${EPREFIX}/usr/share/man" --infodir="${EPREFIX}/usr/share/info" --datadir="${EPREFIX}/usr/share" --sysconfdir="${EPREFIX}/etc" --localstatedir="${EPREFIX}/var" --libdir="${EPREFIX}/usr/$(get_libdir)" --no-cache --no-download --disable-debug-symbols $(use_enable lz4) $(use_enable sasl) $(usex static-libs '--enable-static' '') $(use_enable ssl) $(use_enable zstd) ) ./configure ${myeconf[@]} || die } src_test() { # Simulate CI so we do not fail when tests are running longer than expected, # https://github.com/confluentinc/librdkafka/blob/v1.6.1/tests/0062-stats_event.c#L101-L116 local -x CI=true emake -C tests run_local } src_install() { emake -j1 \ DESTDIR="${D}" \ docdir="/usr/share/doc/${PF}" \ install if ! use static-libs; then find "${ED}" -type f \( -name "*.a" -o -name "*.la" \) -delete || die fi }