Subject: [PATCH v3] testing/wiimms-szs-tools: new aport

From: Sebastian <[email-masked]>
Date: Fri, 24 Dec 2021 19:39:14 -0500

https://szs.wiimm.de/
Set of command-line tools to work with Mario Kart Wii files

Signed-off-by: Sebastian <[email-masked]>
---
 testing/wiimms-szs-tools/APKBUILD             | 32 ++++++++
 .../wiimms-szs-tools/wiimms-szs-tools.patch   | 77 +++++++++++++++++++
 2 files changed, 109 insertions(+)
 create mode 100644 testing/wiimms-szs-tools/APKBUILD
 create mode 100644 testing/wiimms-szs-tools/wiimms-szs-tools.patch

diff --git a/testing/wiimms-szs-tools/APKBUILD b/testing/wiimms-szs-tools/APKBUILD
new file mode 100644
index 00000000..a03decf3
--- /dev/null
+++ b/testing/wiimms-szs-tools/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Sebastian Hudak <[email-masked]>
+# Maintainer: Sebastian Hudak <[email-masked]>
+pkgname=wiimms-szs-tools
+pkgver=2.26a
+pkgrel=0
+pkgdesc="Set of command-line tools to work with Mario Kart Wii files"
+# releases aren't tagged; this commit matches version 2.26a
+_commit=9ae8841ec4720e74173e2f72fac33f0848bbf435
+url="https://szs.wiimm.de/"
+arch="x86 x86_64"
+license="GPL-2.0-or-later"
+makedepends="bash binutils gcc libpng-dev linux-headers make ncurses-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$_commit.tar.gz::https://github.com/Wiimm/wiimms-szs-tools/archive/$_commit.tar.gz
+	$pkgname.patch"
+builddir="$srcdir/$pkgname-$_commit"
+options="!check" # No tests
+
+build() {
+	make -C project INSTALL_PATH="$pkgdir/usr" all doc
+}
+
+package() {
+	make -C project INSTALL_PATH="$pkgdir/usr" install
+	mkdir -p "$pkgdir"/usr/share/doc/szs/
+	install -m644 project/doc/*.txt "$pkgdir"/usr/share/doc/szs/
+}
+
+sha512sums="
+3e4f3555e53012096a64f9d4dba4bae2b4284ca185a2c9e732b022734558bddc6f040ad180d1074906c9fdc91750a37b5883fd902db0da65d816dd46c79c3d1e  wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435.tar.gz
+570f0bfa2f72d87a485e3a6a27f7b5ab2925cad4f100c43723e4ba0d1ef6fc7a6c34c4572d7b1ae4d95b862edf142b2ad276e9563106dd09ee6569bbe82e4aa4  wiimms-szs-tools.patch
+"
diff --git a/testing/wiimms-szs-tools/wiimms-szs-tools.patch b/testing/wiimms-szs-tools/wiimms-szs-tools.patch
new file mode 100644
index 00000000..cfcc9368
--- /dev/null
+++ b/testing/wiimms-szs-tools/wiimms-szs-tools.patch
@@ -0,0 +1,77 @@
+Manually linking tinfo is unnecessary and results in a linker error.
+
+diff -Naur wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/Makefile wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/Makefile
+--- wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/Makefile	2021-12-22 16:40:12.263507617 +0000
++++ wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/Makefile	2021-12-22 16:40:41.880175306 +0000
+@@ -161,7 +161,6 @@
+  CFLAGS		+= -ffunction-sections -fdata-sections
+  LDFLAGS	+= -Xlinker --gc-sections
+  #LDFLAGS	+= -Xlinker --print-gc-sections
+- LIBS		+= -ltinfo
+  LDFLAGS	+= -static-libgcc
+ endif
+
+wiimms-szs-tools assumes that the global variables stdin, stdout, and stderr
+are mutable. This is true in glibc, but false in musl. This patch removes code
+which attempts to mutate standard streams.
+ 
+diff -Naur wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/dclib/dclib-color.c wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/dclib/dclib-color.c
+--- wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/dclib/dclib-color.c	2021-12-22 16:40:12.266840951 +0000
++++ wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/dclib/dclib-color.c	2021-12-22 16:40:41.883508639 +0000
+@@ -4848,8 +4848,6 @@
+ {
+     DASSERT(ssf);
+ 
+-    stdout = ssf->std_out;
+-    stderr = ssf->std_err;
+     stdlog = ssf->std_log;
+     stdmsg = ssf->std_msg;
+     stdwrn = ssf->std_wrn;
+@@ -4877,7 +4875,7 @@
+     if (ssf)
+ 	SaveStdFiles(ssf);
+ 
+-    stdout = stdwrn = stdmsg = f;
++    stdwrn = stdmsg = f;
+     colout = colwrn = colmsg = colset ? colset : GetFileColorSet(f);
+ 
+     // special handling for stdlog
+@@ -4889,7 +4887,6 @@
+ 
+     if (err_too)
+     {
+-	stderr = stdout;
+ 	colerr = colout;
+     }
+ }
+
+Don't define non-static global variable in header file. (This variable is only
+ever used in one source file, so having it in the header is pointless.)
+
+diff -Naur wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/dclib/lib-mkw.h wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/dclib/lib-mkw.h
+--- wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/dclib/lib-mkw.h	2021-12-22 16:40:12.266840951 +0000
++++ wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/dclib/lib-mkw.h	2021-12-22 16:41:03.896842729 +0000
+@@ -198,8 +198,6 @@
+ 
+ //-----------------------------------------------------------------------------
+ 
+-const MkwPointInfo_t MkwPointInfo[MPI__N+1];
+-
+ // [[24P--]] all tables
+ 
+ extern u8 MkwPointsTab[MKW_STD_MAX_PLAYER2];
+
+Add missing semicolon.
+
+diff -Naur wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/src/lib-staticr.c wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/src/lib-staticr.c
+--- wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/src/lib-staticr.c	2021-12-22 16:40:12.270174285 +0000
++++ wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/src/lib-staticr.c	2021-12-22 16:40:41.886841972 +0000
+@@ -1922,7 +1922,7 @@
+ 	default:	return 0;
+     }
+ 
+-    DASSERT(ri)
++    DASSERT(ri);
+     if (!ri->sect[0].addr)
+     {
+ 	for ( dol_sect_info_t *ptr = ri->sect; ptr->section >= 0; ptr++ )
-- 
2.34.1