summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-02-02 06:25:46 +0000
committerSam James <sam@gentoo.org>2023-02-02 06:26:58 +0000
commit7791570ded5f2cfdd4cadd3f7121f65ae208ce09 (patch)
treeb0431dc6e184faa0eb5b8062df682e4467ae0e81 /games-board
parentdev-libs/rasqal: fix configure w/ clang 16 (diff)
downloadgentoo-7791570ded5f2cfdd4cadd3f7121f65ae208ce09.tar.gz
gentoo-7791570ded5f2cfdd4cadd3f7121f65ae208ce09.tar.bz2
gentoo-7791570ded5f2cfdd4cadd3f7121f65ae208ce09.zip
games-board/gnuchess: fix configure w/ Clang 16, fix C++17 compat
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'games-board')
-rw-r--r--games-board/gnuchess/files/gnuchess-6.2.9-c++17.patch140
-rw-r--r--games-board/gnuchess/files/gnuchess-6.2.9-configure-quoting.patch33
-rw-r--r--games-board/gnuchess/gnuchess-6.2.9-r1.ebuild (renamed from games-board/gnuchess/gnuchess-6.2.9.ebuild)18
3 files changed, 188 insertions, 3 deletions
diff --git a/games-board/gnuchess/files/gnuchess-6.2.9-c++17.patch b/games-board/gnuchess/files/gnuchess-6.2.9-c++17.patch
new file mode 100644
index 000000000000..211efdc71eaa
--- /dev/null
+++ b/games-board/gnuchess/files/gnuchess-6.2.9-c++17.patch
@@ -0,0 +1,140 @@
+https://lists.gnu.org/archive/html/bug-gnu-chess/2023-01/msg00000.html
+
+From 321eb9b1ca1b230063259dc43be8a2ab2f3bfee9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 17 Jan 2023 22:16:36 -0800
+Subject: [PATCH] Remove 'register' storage class classifier
+
+This is gone with c++17
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/src/frontend/atak.cc
++++ b/src/frontend/atak.cc
+@@ -37,7 +37,7 @@ short SqAtakd (short sq, short side)
+ *
+ **************************************************************************/
+ {
+- register BitBoard *a, b, *c, d, blocker;
++ BitBoard *a, b, *c, d, blocker;
+ int t;
+
+ a = board.b[side];
+@@ -89,7 +89,7 @@ BitBoard AttackTo (int sq, int side)
+ *
+ ***************************************************************************/
+ {
+- register BitBoard *a, b, *c, e, blocker;
++ BitBoard *a, b, *c, e, blocker;
+ int t;
+
+ a = board.b[side];
+--- a/src/frontend/lexpgn.cc
++++ b/src/frontend/lexpgn.cc
+@@ -2431,9 +2431,9 @@ extern int yylex (void);
+ */
+ YY_DECL
+ {
+- register yy_state_type yy_current_state;
+- register char *yy_cp, *yy_bp;
+- register int yy_act;
++ yy_state_type yy_current_state;
++ char *yy_cp, *yy_bp;
++ int yy_act;
+
+ #line 153 "lexpgn.ll"
+
+@@ -3118,9 +3118,9 @@ case YY_STATE_EOF(RAV):
+ */
+ static int yy_get_next_buffer (void)
+ {
+- register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+- register char *source = (yytext_ptr);
+- register int number_to_move, i;
++ char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
++ char *source = (yytext_ptr);
++ int number_to_move, i;
+ int ret_val;
+
+ if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+@@ -3252,8 +3252,8 @@ static int yy_get_next_buffer (void)
+
+ static yy_state_type yy_get_previous_state (void)
+ {
+- register yy_state_type yy_current_state;
+- register char *yy_cp;
++ yy_state_type yy_current_state;
++ char *yy_cp;
+
+ yy_current_state = (yy_start);
+ yy_current_state += YY_AT_BOL();
+@@ -3278,8 +3278,8 @@ static int yy_get_next_buffer (void)
+ */
+ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
+ {
+- register int yy_is_jam;
+- register char *yy_cp = (yy_c_buf_p);
++ int yy_is_jam;
++ char *yy_cp = (yy_c_buf_p);
+
+ yy_current_state = yy_nxt[yy_current_state][1];
+ yy_is_jam = (yy_current_state <= 0);
+@@ -3296,9 +3296,9 @@ static int yy_get_next_buffer (void)
+ return yy_is_jam ? 0 : yy_current_state;
+ }
+
+- static void yyunput (int c, register char * yy_bp )
++ static void yyunput (int c, char * yy_bp )
+ {
+- register char *yy_cp;
++ char *yy_cp;
+
+ yy_cp = (yy_c_buf_p);
+
+@@ -3308,10 +3308,10 @@ static int yy_get_next_buffer (void)
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+- register yy_size_t number_to_move = (yy_n_chars) + 2;
+- register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
++ yy_size_t number_to_move = (yy_n_chars) + 2;
++ char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+- register char *source =
++ char *source =
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+
+ while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+@@ -3925,7 +3925,7 @@ int yylex_destroy (void)
+ #ifndef yytext_ptr
+ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+ {
+- register int i;
++ int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+ }
+@@ -3934,7 +3934,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+ #ifdef YY_NEED_STRLEN
+ static int yy_flex_strlen (yyconst char * s )
+ {
+- register int n;
++ int n;
+ for ( n = 0; s[n]; ++n )
+ ;
+
+--- a/src/frontend/util.cc
++++ b/src/frontend/util.cc
+@@ -75,7 +75,7 @@ void UpdateFriends (void)
+ *
+ ***************************************************************************/
+ {
+- register BitBoard *w, *b;
++ BitBoard *w, *b;
+
+ w = board.b[white];
+ b = board.b[black];
+--
+2.39.1
+
+
diff --git a/games-board/gnuchess/files/gnuchess-6.2.9-configure-quoting.patch b/games-board/gnuchess/files/gnuchess-6.2.9-configure-quoting.patch
new file mode 100644
index 000000000000..5db87b7e56b3
--- /dev/null
+++ b/games-board/gnuchess/files/gnuchess-6.2.9-configure-quoting.patch
@@ -0,0 +1,33 @@
+From 1081b76df1f5d89a312db5bb16bc0da33f50f6fa Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Thu, 2 Feb 2023 06:21:31 +0000
+Subject: [PATCH] configure.ac: Fix autoconf quoting breaking AC_FUNC_MEMCMP
+
+See the linked autoconf bug for details, but the gist is that AC_FUNC_MEMCMP
+ends up lacking the needed includes for string.h if a raw 'if' is used as
+opposed to AS_IF.
+
+Quote properly with AS_IF to allow proper generation of the AC_FUNC_MEMCMP
+test and avoid -Wimplicit-function-declaration (which will be fatal in some
+compilers soon, like Clang 16) in its test.
+
+Bug: https://savannah.gnu.org/support/?110530
+--- a/configure.ac
++++ b/configure.ac
+@@ -35,11 +35,11 @@ AC_ARG_WITH(readline,
+ ac_cv_use_readline=yes)
+
+ dnl Check for readline library _and_ headers
+-if test x"$ac_cv_use_readline" = "xyes"; then
++AS_IF([test x"$ac_cv_use_readline" = "xyes"], [
+ AC_CHECK_LIB(ncurses, tputs)
+ AC_CHECK_LIB(readline, readline)
+ AC_CHECK_HEADERS(readline/readline.h readline/history.h)
+-fi
++])
+
+ dnl Checks for header files.
+ AC_HEADER_STDC
+--
+2.39.1
+
diff --git a/games-board/gnuchess/gnuchess-6.2.9.ebuild b/games-board/gnuchess/gnuchess-6.2.9-r1.ebuild
index 85c25649da82..c49bebcca0bd 100644
--- a/games-board/gnuchess/gnuchess-6.2.9.ebuild
+++ b/games-board/gnuchess/gnuchess-6.2.9-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit flag-o-matic
+inherit autotools flag-o-matic
DESCRIPTION="Console based chess interface"
HOMEPAGE="https://www.gnu.org/software/chess/chess.html"
@@ -13,6 +13,18 @@ LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv x86"
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.2.9-c++17.patch
+ "${FILESDIR}"/${PN}-6.2.9-configure-quoting.patch
+)
+
+src_prepare() {
+ default
+
+ # Needed for clang 16 patch (quoting)
+ eautoreconf
+}
+
src_configure() {
# -Wodr warnings, bug #858611
filter-lto