Download raw body.
games/nblood diff for stdio opaque
On Tue, 15 Jul 2025 11:50:43 +1000
Jonathan Gray <jsg@jsg.id.au> wrote:
> On Tue, Jul 15, 2025 at 10:23:00AM +0900, YASUOKA Masahiko wrote:
>> Hi,
>>
>> A fix like the diff following is needed after stdio opaque diff. The
>> diff can be applied in advance.
>>
>> ok?
>
> Shouldn't this also change REVISION?
Yes. The diffs cause a functionally change to the program.
I updated the diff
> The nblood code is derived from eduke32. games/eduke32 will need the
> same patch.
Thanks for pointing this out.
The diff is updated.
>>
>> Index: games/nblood/patches/patch-source_build_src_baselayer_cpp
>> ===================================================================
>> RCS file: games/nblood/patches/patch-source_build_src_baselayer_cpp
>> diff -N games/nblood/patches/patch-source_build_src_baselayer_cpp
>> --- /dev/null 1 Jan 1970 00:00:00 -0000
>> +++ games/nblood/patches/patch-source_build_src_baselayer_cpp 15 Jul 2025 01:17:29 -0000
>> @@ -0,0 +1,19 @@
>> +Can't substitute a FILE object to std{out,err}.
>> +
>> +Index: source/build/src/baselayer.cpp
>> +--- source/build/src/baselayer.cpp.orig
>> ++++ source/build/src/baselayer.cpp
>> +@@ -872,9 +872,11 @@ void maybe_redirect_outputs(void)
>> + if (fp)
>> + {
>> + setvbuf(fp, 0, _IONBF, 0);
>> +- *stdout = *fp;
>> +- *stderr = *fp;
>> + }
>> ++
>> ++ fp = freopen("stdout.txt", "w", stderr);
>
> It seems strange to not open "stderr.txt" here.
Yes, it does
> stdout.txt 2>&1
stderr is also written to "stdout.txt"
> The patch maintains the old behaviour, so likely fine.
>
>> ++ if (fp)
>> ++ setvbuf(fp, 0, _IONBF, 0);
>> + #endif
>> + }
>> +
>>
>>
ok?
Index: games/nblood/Makefile
===================================================================
RCS file: /cvs/ports/games/nblood/Makefile,v
diff -u -p -r1.15 Makefile
--- games/nblood/Makefile 30 Jan 2025 06:15:05 -0000 1.15
+++ games/nblood/Makefile 15 Jul 2025 04:58:22 -0000
@@ -1,7 +1,7 @@
COMMENT = reverse-engineered ports of Build games
DISTNAME = nblood-1.01.20231020
-REVISION = 1
+REVISION = 2
GH_ACCOUNT = nukeykt
GH_PROJECT = NBlood
Index: games/nblood/patches/patch-source_build_src_baselayer_cpp
===================================================================
RCS file: games/nblood/patches/patch-source_build_src_baselayer_cpp
diff -N games/nblood/patches/patch-source_build_src_baselayer_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ games/nblood/patches/patch-source_build_src_baselayer_cpp 15 Jul 2025 04:58:22 -0000
@@ -0,0 +1,19 @@
+Can't substitute a FILE object to std{out,err} if FILE is an opaque.
+
+Index: source/build/src/baselayer.cpp
+--- source/build/src/baselayer.cpp.orig
++++ source/build/src/baselayer.cpp
+@@ -872,9 +872,11 @@ void maybe_redirect_outputs(void)
+ if (fp)
+ {
+ setvbuf(fp, 0, _IONBF, 0);
+- *stdout = *fp;
+- *stderr = *fp;
+ }
++
++ fp = freopen("stdout.txt", "w", stderr);
++ if (fp)
++ setvbuf(fp, 0, _IONBF, 0);
+ #endif
+ }
+
Index: games/eduke32/Makefile
===================================================================
RCS file: /cvs/ports/games/eduke32/Makefile,v
diff -u -p -r1.34 Makefile
--- games/eduke32/Makefile 29 Jan 2025 17:35:24 -0000 1.34
+++ games/eduke32/Makefile 15 Jul 2025 04:58:22 -0000
@@ -5,7 +5,7 @@ DISTNAME = eduke32_src_${RDATE}-${RTAG}
PKGNAME = eduke32-2.0.0.${RTAG:C/-.*$//}
EXTRACT_SUFX = .tar.xz
CATEGORIES = games x11
-REVISION = 2
+REVISION = 3
HOMEPAGE = https://www.eduke32.com/
Index: games/eduke32/patches/patch-source_build_src_baselayer_cpp
===================================================================
RCS file: games/eduke32/patches/patch-source_build_src_baselayer_cpp
diff -N games/eduke32/patches/patch-source_build_src_baselayer_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ games/eduke32/patches/patch-source_build_src_baselayer_cpp 15 Jul 2025 04:58:22 -0000
@@ -0,0 +1,19 @@
+Can't substitute a FILE object to std{out,err} if FILE is an opaque.
+
+Index: source/build/src/baselayer.cpp
+--- source/build/src/baselayer.cpp.orig
++++ source/build/src/baselayer.cpp
+@@ -589,9 +589,11 @@ void maybe_redirect_outputs(void)
+ if (fp)
+ {
+ setvbuf(fp, 0, _IONBF, 0);
+- *stdout = *fp;
+- *stderr = *fp;
+ }
++
++ fp = freopen("stdout.txt", "w", stderr);
++ if (fp)
++ setvbuf(fp, 0, _IONBF, 0);
+ #endif
+ }
+
games/nblood diff for stdio opaque