That type of diff dissapoints me. Upstreams should be told to follow API, rather than ABI.
>Looking through the bulk build reports, this game sticks out as failing >all over the place. > >Let's fix it. > >* Limit luajit use to supported mainstream archs >* Apply gross zlib band aid to make it work on 32bit archs. No it can't > just use base zlib, I've tried. >* Update to the latest version while I'm at it.. > >You can now play ToME on i386, powerpc and possibly sparc64. > >Index: Makefile >=================================================================== >RCS file: /home/vcs/cvs/openbsd/ports/games/tome4/Makefile,v >retrieving revision 1.7 >diff -u -p -r1.7 Makefile >--- Makefile 31 May 2017 08:08:16 -0000 1.7 >+++ Makefile 9 Aug 2017 21:53:50 -0000 >@@ -5,7 +5,7 @@ COMMENT-data = data for Tales of Maj'Eya > > # ' > >-V = 1.5.1 >+V = 1.5.5 > PKGNAME-main = tome4-${V} > PKGNAME-data = tome4-data-${V} > CATEGORIES = games x11 >@@ -42,6 +42,10 @@ WANTLIB-data = > COMPILER = gcc > COMPILER_LANGS = c > >+# Disable luajit support where broken and missing. See also lang/luajit >+.if ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH} != "amd64" >+CONFIGURE_ARGS += --lua=default >+.endif > > NO_TEST = Yes > >@@ -57,7 +61,7 @@ do-configure: > sed -i 's/gcc /${CC} /g' ${WRKSRC}/build/te4core.lua > ${SUBST_CMD} ${WRKSRC}/src/getself.c > ${SUBST_CMD} ${WRKSRC}/premake4.lua >- @cd ${WRKSRC} ; premake4 gmake >+ cd ${WRKSRC} ; premake4 ${CONFIGURE_ARGS} gmake > > do-install: > ${INSTALL_PROGRAM} ${WRKSRC}/t-engine ${PREFIX}/bin/tome4 >Index: distinfo >=================================================================== >RCS file: /home/vcs/cvs/openbsd/ports/games/tome4/distinfo,v >retrieving revision 1.2 >diff -u -p -r1.2 distinfo >--- distinfo 27 Mar 2017 18:28:29 -0000 1.2 >+++ distinfo 9 Aug 2017 21:53:50 -0000 >@@ -1,2 +1,2 @@ >-SHA256 (t-engine4-src-1.5.1.tar.bz2) = >er5VbR72iQ0WrlO4KSwQWSVDopR6QCS7mjtnARp00Lg= >-SIZE (t-engine4-src-1.5.1.tar.bz2) = 421336208 >+SHA256 (t-engine4-src-1.5.5.tar.bz2) = >A3zO5JMhPF4gdJ00gfVnbwUJlbtop7vYCu23fV17WGw= >+SIZE (t-engine4-src-1.5.5.tar.bz2) = 421330688 >Index: patches/patch-src_zlib_zlib_h >=================================================================== >RCS file: patches/patch-src_zlib_zlib_h >diff -N patches/patch-src_zlib_zlib_h >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ patches/patch-src_zlib_zlib_h 9 Aug 2017 21:53:50 -0000 >@@ -0,0 +1,27 @@ >+$OpenBSD$ >+ >+There is an ugly mishmash of base zlib and a newer internal copy in this game. >+ >+To give 32 bit archs a fighting chance, make sure at least the struct layout >is >+compatible. >+ >+Without this fix, the screen will stay black since libpng can't load any >+assets. >+ >+Index: src/zlib/zlib.h >+--- src/zlib/zlib.h.orig >++++ src/zlib/zlib.h >+@@ -85,11 +85,11 @@ struct internal_state; >+ typedef struct z_stream_s { >+ z_const Bytef *next_in; /* next input byte */ >+ uInt avail_in; /* number of bytes available at next_in */ >+- uLong total_in; /* total number of input bytes read so far */ >++ z_off_t total_in; /* total number of input bytes read so far */ >+ >+ Bytef *next_out; /* next output byte should be put there */ >+ uInt avail_out; /* remaining free space at next_out */ >+- uLong total_out; /* total number of bytes output so far */ >++ z_off_t total_out; /* total number of bytes output so far */ >+ >+ z_const char *msg; /* last error message, NULL if no error */ >+ struct internal_state FAR *state; /* not visible by applications */ > >