Mon Aug 28 07:01:29 2023 UTC ()
minetest: Fix build on NetBSD 9.


(nia)
diff -r1.9 -r1.10 pkgsrc/games/minetest/distinfo
diff -r0 -r1.6 pkgsrc/games/minetest/patches/patch-src_util_string.cpp

cvs diff -r1.9 -r1.10 pkgsrc/games/minetest/distinfo (expand / switch to unified diff)

--- pkgsrc/games/minetest/distinfo 2023/08/13 19:07:10 1.9
+++ pkgsrc/games/minetest/distinfo 2023/08/28 07:01:28 1.10
@@ -1,13 +1,14 @@ @@ -1,13 +1,14 @@
1$NetBSD: distinfo,v 1.9 2023/08/13 19:07:10 pin Exp $ 1$NetBSD: distinfo,v 1.10 2023/08/28 07:01:28 nia Exp $
2 2
3BLAKE2s (minetest-5.7.0/irrlicht.tar.gz) = e68f98b5b1e24e21919eab7fed281cac3a5b935c6b4c93db7cdcd428ddc7f15a 3BLAKE2s (minetest-5.7.0/irrlicht.tar.gz) = e68f98b5b1e24e21919eab7fed281cac3a5b935c6b4c93db7cdcd428ddc7f15a
4SHA512 (minetest-5.7.0/irrlicht.tar.gz) = 216221b5073d2b234b2d19658b30517c3abb2677c16e3a9b7fd31c15431bd2ffc047a68851c5bebf94aeb178d6b761a80c2f5744a7498cdac1d7b65fed139cc0 4SHA512 (minetest-5.7.0/irrlicht.tar.gz) = 216221b5073d2b234b2d19658b30517c3abb2677c16e3a9b7fd31c15431bd2ffc047a68851c5bebf94aeb178d6b761a80c2f5744a7498cdac1d7b65fed139cc0
5Size (minetest-5.7.0/irrlicht.tar.gz) = 898774 bytes 5Size (minetest-5.7.0/irrlicht.tar.gz) = 898774 bytes
6BLAKE2s (minetest-5.7.0/minetest-game.tar.gz) = 43289ce39f1649030122c7a21b73affe46477b9b8f3dc5bb27b5e4cda756526f 6BLAKE2s (minetest-5.7.0/minetest-game.tar.gz) = 43289ce39f1649030122c7a21b73affe46477b9b8f3dc5bb27b5e4cda756526f
7SHA512 (minetest-5.7.0/minetest-game.tar.gz) = 7eb2a222d48ef48d728f55710efb0651577e8037fedc6c93dd20e51661ae93bdbcfff1c2ff0e1e29a154f8c35468182058f39017e7fec9c7411698a038fe722f 7SHA512 (minetest-5.7.0/minetest-game.tar.gz) = 7eb2a222d48ef48d728f55710efb0651577e8037fedc6c93dd20e51661ae93bdbcfff1c2ff0e1e29a154f8c35468182058f39017e7fec9c7411698a038fe722f
8Size (minetest-5.7.0/minetest-game.tar.gz) = 2592158 bytes 8Size (minetest-5.7.0/minetest-game.tar.gz) = 2592158 bytes
9BLAKE2s (minetest-5.7.0/minetest.tar.gz) = b52ea7b8eedb22f70f13a6b309afb526eee297f3dfccef8e0518ccace37cc996 9BLAKE2s (minetest-5.7.0/minetest.tar.gz) = b52ea7b8eedb22f70f13a6b309afb526eee297f3dfccef8e0518ccace37cc996
10SHA512 (minetest-5.7.0/minetest.tar.gz) = 6a934db5fd2c7c14fcfa87fb306662fa1ccf20a0eee056aea5c4c863986875017a4fa58ddf14319d385ee0400d00fb6a90f68b8f34527c98a746c6410360a529 10SHA512 (minetest-5.7.0/minetest.tar.gz) = 6a934db5fd2c7c14fcfa87fb306662fa1ccf20a0eee056aea5c4c863986875017a4fa58ddf14319d385ee0400d00fb6a90f68b8f34527c98a746c6410360a529
11Size (minetest-5.7.0/minetest.tar.gz) = 10115973 bytes 11Size (minetest-5.7.0/minetest.tar.gz) = 10115973 bytes
12SHA1 (patch-lib_irrlichtmt_source_Irrlicht_CIrrDeviceLinux.cpp) = 22099c0803dcdb74055d69bb810e54b9832f2d3e 12SHA1 (patch-lib_irrlichtmt_source_Irrlicht_CIrrDeviceLinux.cpp) = 22099c0803dcdb74055d69bb810e54b9832f2d3e
13SHA1 (patch-lib_irrlichtmt_source_Irrlicht_os.cpp) = c7f2c8529874f76029641f0281d7cda0f3797971 13SHA1 (patch-lib_irrlichtmt_source_Irrlicht_os.cpp) = c7f2c8529874f76029641f0281d7cda0f3797971
 14SHA1 (patch-src_util_string.cpp) = f240efd440fa540c1f767735892b9177089a8f30

File Added: pkgsrc/games/minetest/patches/patch-src_util_string.cpp
$NetBSD: patch-src_util_string.cpp,v 1.6 2023/08/28 07:01:29 nia Exp $

Support non-POSIX iconv on NetBSD before 10 and SunOS.

--- src/util/string.cpp.orig	2023-04-08 16:04:52.000000000 +0000
+++ src/util/string.cpp
@@ -39,6 +39,15 @@ with this program; if not, write to the 
 	#include <windows.h>
 #endif
 
+#if defined(__NetBSD__)
+#include <sys/param.h>
+#if __NetBSD_Prereq__(9,99,17)
+#define NETBSD_POSIX_ICONV 1
+#else
+#define NETBSD_POSIX_ICONV 0
+#endif
+#endif
+
 #ifndef _WIN32
 
 static bool convert(const char *to, const char *from, char *outbuf,
@@ -54,7 +63,11 @@ static bool convert(const char *to, cons
 	const size_t old_outbuf_size = *outbuf_size;
 	size_t old_size = inbuf_size;
 	while (inbuf_size > 0) {
+#if (defined(__NetBSD__) && !NETBSD_POSIX_ICONV) || defined(__sun)
+		iconv(cd, (const char **)&inbuf_ptr, inbuf_left_ptr, &outbuf_ptr, outbuf_size);
+#else
 		iconv(cd, &inbuf_ptr, inbuf_left_ptr, &outbuf_ptr, outbuf_size);
+#endif
 		if (inbuf_size == old_size) {
 			iconv_close(cd);
 			return false;