commit:     1a5c5e596252495fa9d21e5bfd3f4fe5d59f7a23
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Thu Feb 27 20:34:13 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun May 18 15:22:20 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a5c5e59

gnustep-base/gnustep-base: add 1.31.1

Closes: https://bugs.gentoo.org/956139
Signed-off-by: Alfred Wingate <parona <AT> protonmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/42071
Signed-off-by: Sam James <sam <AT> gentoo.org>

 gnustep-base/gnustep-base/Manifest                 |   1 +
 .../files/gnustep-base-1.31.0-c23.patch            |  47 +++++++++
 .../gnustep-base/gnustep-base-1.31.1.ebuild        | 115 +++++++++++++++++++++
 3 files changed, 163 insertions(+)

diff --git a/gnustep-base/gnustep-base/Manifest 
b/gnustep-base/gnustep-base/Manifest
index 5f551eea26b3..510c28fd986f 100644
--- a/gnustep-base/gnustep-base/Manifest
+++ b/gnustep-base/gnustep-base/Manifest
@@ -1,3 +1,4 @@
 DIST gnustep-base-1.28.0.tar.gz 4246622 BLAKE2B 
fdaa834ea3cb13b1d4717c2c7e6b59eff05d16e6a404ffed5f4ccfa2ee3db93ecfee5b95cc30be6a388f56fa28c67f1278ea298f222260dcc24abadaa1cb5e8f
 SHA512 
e173fab28aa1b1df38de4216916db18934422a1d372b9fe6a68a6ff21b2ac0be38aa02631179a8ad62a4f2848080223f34771b364b1c0eebc96c84778677c50b
 DIST gnustep-base-1.29.0.tar.gz 3697809 BLAKE2B 
9810e6220df79e75130e8e3cdda5d8c42e1e05351461920549e3163752eccc9fa4bb375c36a8b987877cf557140e961dda7e0fac1c1c9affdb38893567695ddf
 SHA512 
19e876f32e4dce403beeb5522ae942c23cc2b947217a38fd045a495d81b3734a8cf160fb768d8cff64c45d8ae63ba422658f705519786016d3e8216efe0a044c
 DIST gnustep-base-1.30.0.tar.gz 3730872 BLAKE2B 
e4ceb975f65efee16b50bd82af1fcec9e91c92c296f5c1a990254ce58845f8e1b5a58b725214e90aade704ff631e6e2ec87adf7a8dc85c7e783fd53297d9e862
 SHA512 
c13d77a502f053dce425aa80995c97c397afe07b2b6a794f3d129ff2810d018288af18f656d30fa071e34a1d2f74b80896f67538a4142b56058f3d39ee2719af
+DIST gnustep-base-1.31.1.tar.gz 3831129 BLAKE2B 
7bbab70fd5e78f75c0342d8d5a3e2175958a850b5ecc04fa6449e8a71aa998659755793d192c795865810d3b38ec10cfb284e7263a5ce301979930a25aa8a6ac
 SHA512 
6de3a935766d6b3075e60da71525511de940521dd50d604af1eb67681bd6aa4693b889e6655f39c96b53178a86623a4c4510be004487a28fddd175dec928c933

diff --git a/gnustep-base/gnustep-base/files/gnustep-base-1.31.0-c23.patch 
b/gnustep-base/gnustep-base/files/gnustep-base-1.31.0-c23.patch
new file mode 100644
index 000000000000..89cd7643d327
--- /dev/null
+++ b/gnustep-base/gnustep-base/files/gnustep-base-1.31.0-c23.patch
@@ -0,0 +1,47 @@
+From 70d5ac40655659e38f0beb14cff083014bb4a747 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <[email protected]>
+Date: Thu, 27 Feb 2025 16:44:23 +0200
+Subject: [PATCH] Use signal_handler prototype that signal() expects
+
+C23 is stricter about function prototypes and as such this causes the
+build to fail on GCC-15 by default.
+
+Signed-off-by: Alfred Wingate <[email protected]>
+---
+ Tools/gdomap.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Tools/gdomap.c b/Tools/gdomap.c
+index c04fb522c..9db5f6b47 100644
+--- a/Tools/gdomap.c
++++ b/Tools/gdomap.c
+@@ -192,7 +192,7 @@ static char        *local_hostname = 0;
+  */
+ static void   dump_stats();
+ #ifndef __MINGW__
+-static void   dump_tables();
++static void   dump_tables(int sig);
+ #endif
+ static void   handle_accept();
+ static void   handle_io();
+@@ -1135,7 +1135,7 @@ dump_stats()
+ 
+ #ifndef __MINGW__
+ static void
+-dump_tables()
++dump_tables(int sig)
+ {
+   FILE        *fptr;
+ 
+@@ -3704,7 +3704,7 @@ tryWrite(int desc, int tim, unsigned char* dat, int len)
+ #if   defined(__MINGW__) /* FIXME: Is this correct? */
+         rval = send(desc, (const char*)&dat[pos], len - pos, 0);
+ #else
+-        void  (*ifun)();
++        void  (*ifun)(int);
+ 
+         /*
+          *    Should be able to write this short a message immediately, but
+-- 
+2.48.1
+

diff --git a/gnustep-base/gnustep-base/gnustep-base-1.31.1.ebuild 
b/gnustep-base/gnustep-base/gnustep-base-1.31.1.ebuild
new file mode 100644
index 000000000000..aed62cd7441e
--- /dev/null
+++ b/gnustep-base/gnustep-base/gnustep-base-1.31.1.ebuild
@@ -0,0 +1,115 @@
+# 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 +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:= )
+       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 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
+}

Reply via email to