commit:     222e3b5dbb3168acf6c63e32bebabe7aedadee27
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Dec  4 07:28:20 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Dec  4 07:32:14 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=222e3b5d

net-libs/zeromq: fix modern c issues in configure

Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-libs/zeromq/files/zeromq-4.3.5-c99.patch | 37 +++++++++++++++
 net-libs/zeromq/zeromq-4.3.5-r1.ebuild       | 69 ++++++++++++++++++++++++++++
 2 files changed, 106 insertions(+)

diff --git a/net-libs/zeromq/files/zeromq-4.3.5-c99.patch 
b/net-libs/zeromq/files/zeromq-4.3.5-c99.patch
new file mode 100644
index 000000000000..7f15ef6c6981
--- /dev/null
+++ b/net-libs/zeromq/files/zeromq-4.3.5-c99.patch
@@ -0,0 +1,37 @@
+https://github.com/zeromq/libzmq/pull/4635
+https://github.com/zeromq/libzmq/commit/665d1d46576f9a4eff6fa42a11c54f23b6b11803
+
+From 665d1d46576f9a4eff6fa42a11c54f23b6b11803 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fwei...@redhat.com>
+Date: Wed, 29 Nov 2023 14:14:30 +0100
+Subject: [PATCH] Build with -D_DEFAULT_SOURCE along with -std=c11
+
+On its own, -std=c11 hides POSIX and other extensions from C headers
+such as <stdlib.h> when building against glibc.  This causes the
+posix_memalign probe to fail incorrectly with compilers that do not
+accept implicit function declarations.  _DEFAULT_SOURCE is ignored by
+most non-GNU/Linux systems or not relevant in this context, so there
+is no separate check for adding it.
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -122,7 +122,7 @@ if (NOT MSVC)
+   if(NOT CMAKE_C_FLAGS MATCHES "-std=" AND NOT C_STANDARD AND NOT 
CMAKE_C_STANDARD)
+     check_c_compiler_flag("-std=c11" COMPILER_SUPPORTS_C11)
+     if(COMPILER_SUPPORTS_C11)
+-      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11")
++      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_DEFAULT_SOURCE -std=c11")
+     else()
+       set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
+     endif()
+--- a/configure.ac
++++ b/configure.ac
+@@ -66,7 +66,7 @@ ZMQ_ORIG_CXXFLAGS="${CXXFLAGS:-none}"
+ 
+ # Checks for programs.
+ AC_PROG_CC
+-AX_CHECK_COMPILE_FLAG([-std=c11], [CFLAGS+=" -std=c11"], [AC_PROG_CC_C99])
++AX_CHECK_COMPILE_FLAG([-std=c11], [CFLAGS+=" -std=c11 -D_DEFAULT_SOURCE"], 
[AC_PROG_CC_C99])
+ AC_PROG_CXX
+ AX_CODE_COVERAGE
+ AM_PROG_CC_C_O
+

diff --git a/net-libs/zeromq/zeromq-4.3.5-r1.ebuild 
b/net-libs/zeromq/zeromq-4.3.5-r1.ebuild
new file mode 100644
index 000000000000..72bd07bb595b
--- /dev/null
+++ b/net-libs/zeromq/zeromq-4.3.5-r1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="High-performance asynchronous messaging library"
+HOMEPAGE="https://zeromq.org/";
+SRC_URI="https://github.com/zeromq/libzmq/releases/download/v${PV}/${P}.tar.gz";
+
+LICENSE="MPL-2.0"
+SLOT="0/5"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+IUSE="doc drafts +libbsd +sodium static-libs test unwind"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       !elibc_Darwin? ( unwind? ( sys-libs/libunwind ) )
+       libbsd? ( dev-libs/libbsd:= )
+       sodium? ( dev-libs/libsodium:= )
+"
+DEPEND="
+       ${RDEPEND}
+       !elibc_Darwin? ( sys-apps/util-linux )
+"
+BDEPEND="
+       doc? (
+               app-text/asciidoc
+               app-text/xmlto
+       )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-4.3.5-c99.patch
+)
+
+src_prepare() {
+       default
+
+       # Only here for the c99 configure patch
+       eautoreconf
+}
+
+src_configure() {
+       local myeconfargs=(
+               --disable-Werror
+               --enable-shared
+               $(use_enable drafts)
+               $(use_enable libbsd)
+               $(use_enable static-libs static)
+               $(use_enable unwind libunwind)
+               $(use_with sodium libsodium)
+               $(use_with doc docs)
+       )
+       econf "${myeconfargs[@]}"
+}
+
+src_test() {
+       # Restricting to one job because multiple tests are using the same port.
+       # Upstream knows the problem and says it doesn't support parallel test
+       # execution, see ${S}/INSTALL.
+       emake -j1 check
+}
+
+src_install() {
+       default
+       find "${ED}" -type f -name '*.la' -delete || die
+}

Reply via email to