commit:     fc52cb4bd9b7ff759f73cd62b0f681885bd90c59
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  3 23:44:01 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jan  3 23:44:01 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fc52cb4b

app-text/opensp: fix build w/ clang 16

Closes: https://bugs.gentoo.org/889600
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/opensp-1.5.2-configure-clang16.patch     | 198 +++++++++++++++++++++
 app-text/opensp/opensp-1.5.2-r10.ebuild            |  85 +++++++++
 2 files changed, 283 insertions(+)

diff --git a/app-text/opensp/files/opensp-1.5.2-configure-clang16.patch 
b/app-text/opensp/files/opensp-1.5.2-configure-clang16.patch
new file mode 100644
index 000000000000..6e6832957679
--- /dev/null
+++ b/app-text/opensp/files/opensp-1.5.2-configure-clang16.patch
@@ -0,0 +1,198 @@
+https://bugs.gentoo.org/889600
+https://src.fedoraproject.org/rpms/opensp/blob/ad3afd1f07f600aa21cd6a3f1960db5570682e47/f/opensp-configure-c99.patch
+
+Avoid implicit function declarations because they have been removed
+from C in 1999.  Future compilers are likely to reject them by
+default.
+
+No need to upstream this because the aclocal.m4 file is not checked
+into the repository since:
+
+------------------------------------------------------------------------
+r412 | clasen | 1999-11-06 14:10:34 +0100 (Sat, 06 Nov 1999) | 3 lines
+Changed paths:
+   M /trunk/sp/Makefile.in
+   D /trunk/sp/config/aclocal.m4
+   D /trunk/sp/config/configure.in
+   M /trunk/sp/configure
+   A /trunk/sp/configure.in
+
+Install headers in $(includedir)/OpenSP, move configure.in to toplevel,
+remove generated file aclocal.m4.
+
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -833,10 +833,6 @@ else
+ #  endif
+ #endif
+ 
+-#ifdef __cplusplus
+-extern "C" void exit (int);
+-#endif
+-
+ void fnord() { int i=42;}
+ int main ()
+ {
+@@ -850,7 +846,7 @@ int main ()
+       /* dlclose (self); */
+     }
+ 
+-    exit (status);
++    return status;
+ }]
+ EOF
+   if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+--- a/configure
++++ b/configure
+@@ -2917,7 +2917,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   for ac_declaration in \
+-   '' \
++   '#include <stdlib.h>' \
+    'extern "C" void std::exit (int) throw (); using std::exit;' \
+    'extern "C" void std::exit (int); using std::exit;' \
+    'extern "C" void exit (int) throw ();' \
+@@ -5186,8 +5186,8 @@ main ()
+   for (i = 0; i < 256; i++)
+     if (XOR (islower (i), ISLOWER (i))
+       || toupper (i) != TOUPPER (i))
+-      exit(2);
+-  exit (0);
++      return 2;
++  return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+@@ -9508,10 +9508,6 @@ else
+ #  endif
+ #endif
+ 
+-#ifdef __cplusplus
+-extern "C" void exit (int);
+-#endif
+-
+ void fnord() { int i=42;}
+ int main ()
+ {
+@@ -9525,7 +9521,7 @@ int main ()
+       /* dlclose (self); */
+     }
+ 
+-    exit (status);
++    return status;
+ }
+ EOF
+   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+@@ -9606,10 +9602,6 @@ else
+ #  endif
+ #endif
+ 
+-#ifdef __cplusplus
+-extern "C" void exit (int);
+-#endif
+-
+ void fnord() { int i=42;}
+ int main ()
+ {
+@@ -9623,7 +9615,7 @@ int main ()
+       /* dlclose (self); */
+     }
+ 
+-    exit (status);
++    return status;
+ }
+ EOF
+   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+@@ -13321,10 +13313,6 @@ else
+ #  endif
+ #endif
+ 
+-#ifdef __cplusplus
+-extern "C" void exit (int);
+-#endif
+-
+ void fnord() { int i=42;}
+ int main ()
+ {
+@@ -13338,7 +13326,7 @@ int main ()
+       /* dlclose (self); */
+     }
+ 
+-    exit (status);
++    return status;
+ }
+ EOF
+   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+@@ -13419,10 +13407,6 @@ else
+ #  endif
+ #endif
+ 
+-#ifdef __cplusplus
+-extern "C" void exit (int);
+-#endif
+-
+ void fnord() { int i=42;}
+ int main ()
+ {
+@@ -13436,7 +13420,7 @@ int main ()
+       /* dlclose (self); */
+     }
+ 
+-    exit (status);
++    return status;
+ }
+ EOF
+   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+@@ -19110,10 +19094,6 @@ else
+ #  endif
+ #endif
+ 
+-#ifdef __cplusplus
+-extern "C" void exit (int);
+-#endif
+-
+ void fnord() { int i=42;}
+ int main ()
+ {
+@@ -19127,7 +19107,7 @@ int main ()
+       /* dlclose (self); */
+     }
+ 
+-    exit (status);
++    return status;
+ }
+ EOF
+   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+@@ -19208,10 +19188,6 @@ else
+ #  endif
+ #endif
+ 
+-#ifdef __cplusplus
+-extern "C" void exit (int);
+-#endif
+-
+ void fnord() { int i=42;}
+ int main ()
+ {
+@@ -19225,7 +19201,7 @@ int main ()
+       /* dlclose (self); */
+     }
+ 
+-    exit (status);
++    return status;
+ }
+ EOF
+   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+@@ -27450,8 +27426,8 @@ main ()
+   for (i = 0; i < 256; i++)
+     if (XOR (islower (i), ISLOWER (i))
+       || toupper (i) != TOUPPER (i))
+-      exit(2);
+-  exit (0);
++      return 2;
++  return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+

diff --git a/app-text/opensp/opensp-1.5.2-r10.ebuild 
b/app-text/opensp/opensp-1.5.2-r10.ebuild
new file mode 100644
index 000000000000..de279d310010
--- /dev/null
+++ b/app-text/opensp/opensp-1.5.2-r10.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+MY_P=${P/opensp/OpenSP}
+DESCRIPTION="A free, object-oriented toolkit for SGML parsing and entity 
management"
+HOMEPAGE="https://openjade.sourceforge.net/";
+SRC_URI="https://downloads.sourceforge.net/project/openjade/opensp/${PV}/${MY_P}.tar.gz";
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos 
~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc nls static-libs test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="elibc_glibc? ( net-libs/libnsl:0= )"
+DEPEND="${RDEPEND}"
+BDEPEND="nls? ( sys-devel/gettext )
+       doc? (
+               app-text/xmlto
+               app-text/docbook-xml-dtd:4.1.2
+       )
+       test? (
+               app-text/docbook-xml-dtd:4.5
+               app-text/openjade
+               app-text/sgml-common
+       )"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-fix-segfault.patch
+       "${FILESDIR}"/${P}-c11-using.patch
+       "${FILESDIR}"/${P}-configure-clang16.patch
+)
+
+src_prepare() {
+       default
+       use prefix && eautoreconf
+}
+
+src_configure() {
+       export CONFIG_SHELL=${BASH}  # configure needs bash
+
+       # The following filters are taken from openjade's ebuild. See bug 
#100828.
+       # Please note!  Opts are disabled.  If you know what you're doing
+       # feel free to remove this line.  It may cause problems with
+       # docbook-sgml-utils among other things.
+       #ALLOWED_FLAGS="-O -O1 -O2 -pipe -g -march"
+       strip-flags
+
+       append-cxxflags -std=gnu++11
+
+       econf \
+               --enable-http \
+               --enable-default-catalog="${EPREFIX}"/etc/sgml/catalog \
+               --enable-default-search-path="${EPREFIX}"/usr/share/sgml \
+               --datadir="${EPREFIX}"/usr/share/sgml/${P} \
+               $(use_enable nls) \
+               $(use_enable doc doc-build) \
+               $(use_enable static-libs static)
+}
+
+src_compile() {
+       emake pkgdocdir="${EPREFIX}"/usr/share/doc/${PF}
+}
+
+src_test() {
+       # Skipping tests known not to work
+       emake SHOWSTOPPERS= check
+       SANDBOX_PREDICT="${SANDBOX_PREDICT%:/}"
+}
+
+src_install() {
+       emake \
+               DESTDIR="${D}" \
+               pkgdocdir="${EPREFIX}"/usr/share/doc/${PF} \
+               install
+
+       find "${ED}" -name '*.la' -delete || die
+
+       dodoc AUTHORS BUGS ChangeLog NEWS README
+}

Reply via email to