# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit gnustep-base toolchain-funcs DESCRIPTION="A library of general-purpose, non-graphical Objective C objects" HOMEPAGE="https://gnustep.github.io" SRC_URI="https://github.com/gnustep/libs-base/releases/download/base-${PV//./_}/${P}.tar.gz" LICENSE="GPL-2 LGPL-2.1" SLOT="0/$(ver_cut 1-2)" KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux" IUSE="+gnutls +iconv +icu libdispatch +libffi zeroconf" # gnustep-make: tests use the option --timeout which was added in 2.9.3 RDEPEND="${GNUSTEP_CORE_DEPEND} >=gnustep-base/gnustep-make-2.9.3 gnutls? ( net-libs/gnutls:= ) iconv? ( virtual/libiconv ) icu? ( >=dev-libs/icu-49.0:= ) libdispatch? ( dev-libs/libdispatch ) libffi? ( dev-libs/libffi:= ) !libffi? ( dev-libs/ffcall gnustep-base/gnustep-make[-native-exceptions] ) >=dev-libs/libxml2-2.6 >=dev-libs/libxslt-1.1 >=dev-libs/gmp-4.1:= >=sys-libs/zlib-1.2 zeroconf? ( net-dns/avahi )" DEPEND="${RDEPEND}" BDEPEND="virtual/pkgconfig" PATCHES=( "${FILESDIR}"/${PN}-1.26.0-no_compress_man.patch "${FILESDIR}"/${PN}-1.31.0-c23.patch ) src_prepare() { default # Slow and appears to break due to the network sandbox sed -e '/START_SET("-sendSynchronousRequest:returningResponse:error:")/a SKIP("Gentoo")' \ -i Tests/base/NSURL/test00.m || die sed -e '/START_SET("Capture")/a SKIP("Gentoo")' \ -e '/START_SET("Secure")/a SKIP("Gentoo")' \ -i Tests/base/NSURL/test02.m || die sed -e '/START_SET("Keepalive")/a SKIP("Gentoo")' \ -i Tests/base/NSURLHandle/test01.m || die rm -r Tests/base/NSURLConnection || die rm -r Tests/base/NSConnection || die sed -e '/PASS(byteCount>0, "read www.google.com");/d' \ -e '/PASS(byteCount>0, "read www.google.com https");/d' \ -i Tests/base/NSStream/socket.m || die sed -e '/PASS(\[self status\] == URLHandleClientDidBeginLoading,/,/"URLHandleClientDidBeginLoading called");/d' \ -e '/PASS(\[self status\] == URLHandleClientDidFinishLoading,/,/"URLHandleClientDidFinishLoading called");/d' \ -i Tests/base/NSURLHandle/test00.m || die # FIXME: It should use TEMP or TMP but it still fails sed -e '/PASS(\[o length\] > 0, "we can get a temporary directory");/d' \ -i Tests/base/Functions/NSPathUtilities.m || die # FIXME rm Tests/base/NSFileHandle/general.m || die # FIXME sed -e '/PASS_EQUAL(\[\@"foo" stringByResolvingSymlinksInPath\], tmpdst,/,/"foo->bar relative symlink expanded by stringByResolvingSymlinksInPath")/d' \ -i Tests/base/NSString/test02.m || die # FIXME sed -e '/PASS(cred != nil, "generates self signed certificate");/d' \ -i Tests/base/GSTLS/basic.m || die } src_configure() { egnustep_env local myconf=( $(use_enable libffi) $(use_enable !libffi ffcall) ) use libffi && myconf+=( --with-ffi-include=$($(tc-getPKG_CONFIG) --variable=includedir libffi) ) myconf+=( $(use_enable gnutls tls) $(use_enable iconv) $(use_enable icu) $(use_enable libdispatch) $(use_enable zeroconf) --with-xml-prefix="${ESYSROOT}"/usr --with-gmp-include="${ESYSROOT}"/usr/include --with-gmp-library="${ESYSROOT}"/usr/$(get_libdir) --with-default-config="${ESYSROOT}"/etc/GNUstep/GNUstep.conf ) econf "${myconf[@]}" } src_install() { # We need to set LD_LIBRARY_PATH because the doc generation program # uses the gnustep-base libraries. Since egnustep_env "cleans the # environment" including our LD_LIBRARY_PATH, we're left no choice # but doing it like this. egnustep_env egnustep_install if use doc ; then export LD_LIBRARY_PATH="${S}/Source/obj:${LD_LIBRARY_PATH}" egnustep_doc fi egnustep_install_config }