From: Martin Ziemer Subject: Possible unbreak for gnuchess 6.3.0 To: ports@openbsd.org Date: Fri, 12 Sep 2025 13:42:20 +0200 This patch is possible solution for the build problems with input from /dev/null. The patch changes the source from gnuchess by adding a global flag, which can disable the whole input routine by replacing it with some sleeps. Tested on amd64 by building with make < /dev/null and with dpb games/gnuchess. (And playing a game with the new package) Index: Makefile =================================================================== RCS file: /cvs/ports/games/gnuchess/Makefile,v diff -u -p -r1.56 Makefile --- Makefile 8 Sep 2025 10:35:20 -0000 1.56 +++ Makefile 12 Sep 2025 11:32:46 -0000 @@ -1,9 +1,7 @@ -BROKEN= post-build fails in dpb (or if stdin is redirected from /dev/null) - COMMENT= chess program DISTNAME= gnuchess-6.3.0 -REVISION= 0 +REVISION= 1 DISTFILES= ${DISTNAME}.tar.gz book_1.02.pgn.gz CATEGORIES= games Index: patches/patch-src_components_cc =================================================================== RCS file: patches/patch-src_components_cc diff -N patches/patch-src_components_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_components_cc 12 Sep 2025 11:32:46 -0000 @@ -0,0 +1,11 @@ +Index: src/components.cc +--- src/components.cc.orig ++++ src/components.cc +@@ -32,6 +32,7 @@ + #include "frontend/common.h" + #include "components.h" + ++extern unsigned int noinput; + extern unsigned int flags; + + /* Main loop of adapter */ Index: patches/patch-src_frontend_common_h =================================================================== RCS file: patches/patch-src_frontend_common_h diff -N patches/patch-src_frontend_common_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_frontend_common_h 12 Sep 2025 11:32:46 -0000 @@ -0,0 +1,11 @@ +Index: src/frontend/common.h +--- src/frontend/common.h.orig ++++ src/frontend/common.h +@@ -311,6 +311,7 @@ extern int RealGameCnt; + extern short RealSide; + extern int GameCnt; + extern int computer; ++extern unsigned int noinput; + extern unsigned int flags; + extern unsigned int preanalyze_flags; + extern Board board; Index: patches/patch-src_frontend_input_cc =================================================================== RCS file: patches/patch-src_frontend_input_cc diff -N patches/patch-src_frontend_input_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_frontend_input_cc 12 Sep 2025 11:32:46 -0000 @@ -0,0 +1,14 @@ +Index: src/frontend/input.cc +--- src/frontend/input.cc.orig ++++ src/frontend/input.cc +@@ -140,6 +140,10 @@ void *input_func(void *arg __attribute__((unused)) ) + char prompt[MAXSTR] = ""; + + while (!(flags & QUIT)) { ++ if(noinput) { ++ usleep(100); ++ continue; ++ } + if (!(flags & XBOARD)) { + + pthread_mutex_lock( &input_mutex ); Index: patches/patch-src_main_cc =================================================================== RCS file: patches/patch-src_main_cc diff -N patches/patch-src_main_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_main_cc 12 Sep 2025 11:32:46 -0000 @@ -0,0 +1,19 @@ +Index: src/main.cc +--- src/main.cc.orig ++++ src/main.cc +@@ -64,6 +64,7 @@ int GameCnt; + int RealGameCnt; + short RealSide; + int computer; ++unsigned int noinput = 0; + unsigned int flags; + unsigned int preanalyze_flags; + int cboard[64]; +@@ -345,6 +346,7 @@ int main (int argc, char *argv[]) + return(1); + } + strcpy( opt_addbook, optarg ); ++ noinput = 1; + break; + default: + puts (_("Option processing failed.\n"));