Index | Thread | Search

From:
Martin Ziemer <horrad@horrad.de>
Subject:
Ping: Possible unbreak for gnuchess 6.3.0
To:
ports@openbsd.org
Date:
Mon, 22 Sep 2025 09:37:32 +0200

Download raw body.

Thread
Am Fri, Sep 12, 2025 at 01:42:20PM +0200 schrieb Martin Ziemer:
> This patch is a 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"));