On Sat, Jun 18, 2016 at 03:54:45PM -0400, Daniel Wilkins wrote:
> The old version was something like 3 years old and 2000 weeklies behind.
> I've talked to the dev and it now builds cleanly without patches(or rather,
> I made the changes needed and got it merged into the project.)
> 
> Now it'll actually run the official expansions properly, as well as all the
> other additions since 2013.
> 
> 

Here is a patch against current ports cvs triggered by Daniel's update.
WANTLIB and LIB_DEPENDS have been regenerated.  the do-install paths have
been corrected, I removed the dos2unix stuff as I don't think it is that
big a deal in the end, and it matches upstream.

The datafile path substitutions have been reduced to one file (yay), and
perl has been switched out in lieu of sed.

Unfortunately the Makefile.common has some mean tricks to really break our
ability to feed CC/CXX, so I did some hack'n'slash patching of it.  I am
not sure that this is best, I have employed their recommended
PACKAGE_REPOSITORY=1 setting to 'not completely gut all their optimizations'..
but I'd love it if anyone can confirm its okay :-) looks to just use -O2.

Turning on aggressive debugging things like DEBUGANYWAY kinda broke mouse
input making it really hard to play, so avoiding that path.

Lastly I think we need to use ports gcc now.

works good here on current amd64

Cheers!
-ryan


? eduke32.diff
Index: Makefile
===================================================================
RCS file: /cvs/ports/games/eduke32/Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile
--- Makefile    22 Oct 2014 13:55:07 -0000      1.7
+++ Makefile    19 Jun 2016 06:43:09 -0000
@@ -1,12 +1,11 @@
 # $OpenBSD: Makefile,v 1.7 2014/10/22 13:55:07 jasper Exp $
 
 COMMENT =      Enhanced Duke Nukem 3D engine
-RDATE =                20120301
-RTAG =         2394
+RDATE =                20160610
+RTAG =         5775
 DISTNAME =     eduke32_src_${RDATE}-${RTAG}
 PKGNAME =      eduke32-2.0.0.${RTAG}
-REVISION =     2
-EXTRACT_SUFX = .tar.bz2
+EXTRACT_SUFX = .tar.xz
 CATEGORIES =   games x11
 
 HOMEPAGE =     http://www.eduke32.com/
@@ -25,12 +24,15 @@ BUILD_DEPENDS = archivers/unzip \
 BUILD_DEPENDS += devel/nasm
 .endif
 
-WANTLIB =      SDL c m pthread stdc++ SDL_mixer>=3 vorbisfile vpx
+WANTLIB += c m ogg png pthread vorbis vorbisfile vpx z
+WANTLIB += SDL2 SDL2_mixer FLAC execinfo
 
 LIB_DEPENDS =  audio/libvorbis \
-               multimedia/libvpx \
-               devel/sdl \
-               devel/sdl-mixer
+               audio/flac \
+               devel/sdl2 \
+               devel/sdl2-mixer \
+               devel/libexecinfo \
+               multimedia/libvpx
 
 # dlopen()'d; shows as Extra in check-lib-depends but it is used
 LIB_DEPENDS += x11/gtk+2
@@ -38,31 +40,23 @@ WANTLIB +=  gtk-x11-2.0
 
 RUN_DEPENDS =  games/duke3ddata
 
-MASTER_SITES = 
http://dukeworld.duke4.net/eduke32/synthesis/old/${RDATE}-${RTAG}/ \
-               http://dukeworld.duke4.net/eduke32/synthesis/${RDATE}-${RTAG}/
+MASTER_SITES = http://dukeworld.duke4.net/eduke32/synthesis/${RDATE}-${RTAG}/
+
+MODULES =      gcc4
+MODGCC4_LANGS =        c c++ 
+MODGCC4_ARCHS =        *
 
 # make sure we can see compilation output, respect CC/CXX, don't strip!
-MAKE_FLAGS =   PRETTY_OUTPUT=0 CC="${CC}" CXX="${CXX}" DEBUGANYWAY=1
+MAKE_ENV =     CC="${CC}" CXX="${CXX}" PRETTY_OUTPUT=0 PACKAGE_REPOSITORY=1
 USE_GMAKE =    Yes
 NO_TEST =      Yes
 
-WRKDIST =      ${WRKDIR}/eduke32_${RDATE}-${RTAG}/
+WRKDIST =      ${WRKDIR}/eduke32_${RDATE}-${RTAG}
 
 post-extract:
        # check for data files in correct location
-       @perl -pi -e "s,/usr/share/games/eduke32,${TRUEPREFIX}/share/duke3d," \
-               ${WRKSRC}/source/astub.c
-       @perl -pi -e "s,/usr/share/games/eduke32,${TRUEPREFIX}/share/duke3d," \
-               ${WRKSRC}/source/game.c
-       @perl -pi -e "s,./eduke32,eduke32," ${WRKSRC}/build/include/editor.h
-       # make plaintext files less annoying to read...
-       @perl -MExtUtils::Command -e dos2unix \
-               ${WRKSRC}/tiles.cfg \
-               ${WRKSRC}/names.h \
-               ${WRKSRC}/GNU.TXT \
-               ${WRKSRC}/buildlic.txt \
-               ${WRKSRC}/samples/*.sample \
-               ${WRKSRC}/samples/*.txt
+       @sed -i "s,/usr/share/games/eduke32,${TRUEPREFIX}/share/duke3d," \
+               ${WRKSRC}/source/common.c
 
 do-install:
        ${INSTALL_PROGRAM} ${WRKBUILD}/eduke32 ${PREFIX}/bin
@@ -71,17 +65,25 @@ do-install:
        ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/eduke32
        ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/eduke32
        # mapster32 help files
-       ${INSTALL_DATA} ${WRKDIST}/m32help.hlp ${PREFIX}/share/duke3d/
-       ${INSTALL_DATA} ${WRKDIST}/SEHELP.HLP ${PREFIX}/share/duke3d/
-       ${INSTALL_DATA} ${WRKDIST}/STHELP.HLP ${PREFIX}/share/duke3d/
+       ${INSTALL_DATA} ${WRKDIST}/package/sdk/m32help.hlp \
+               ${PREFIX}/share/duke3d/
+       ${INSTALL_DATA} ${WRKDIST}/package/sdk/SEHELP.HLP \
+               ${PREFIX}/share/duke3d/
+       ${INSTALL_DATA} ${WRKDIST}/package/sdk/STHELP.HLP \
+               ${PREFIX}/share/duke3d/
        # mapster32 config and config header file
-       ${INSTALL_DATA} ${WRKDIST}/tiles.cfg ${PREFIX}/share/duke3d/
-       ${INSTALL_DATA} ${WRKDIST}/names.h ${PREFIX}/share/duke3d/
+       ${INSTALL_DATA} ${WRKDIST}/package/sdk/tiles.cfg \
+               ${PREFIX}/share/duke3d/
+       ${INSTALL_DATA} ${WRKDIST}/package/sdk/names.h \
+               ${PREFIX}/share/duke3d/
        # eduke32/mapster32 licenses
-       ${INSTALL_DATA} ${WRKDIST}/GNU.TXT ${PREFIX}/share/doc/eduke32/
-       ${INSTALL_DATA} ${WRKDIST}/buildlic.txt ${PREFIX}/share/doc/eduke32/
+       ${INSTALL_DATA} ${WRKDIST}/package/common/gpl-2.0.txt \
+                ${PREFIX}/share/doc/eduke32/
+       ${INSTALL_DATA} ${WRKDIST}/package/common/buildlic.txt \
+               ${PREFIX}/share/doc/eduke32/
        # sample game mapping/modding data files
-       ${INSTALL_DATA} ${WRKDIST}/samples/* ${PREFIX}/share/examples/eduke32/
+       ${INSTALL_DATA} ${WRKDIST}/package/sdk/samples/* \
+               ${PREFIX}/share/examples/eduke32/
 
 .if ${MACHINE_ARCH:Mi386}
 CFLAGS +=      -fno-pie
Index: distinfo
===================================================================
RCS file: /cvs/ports/games/eduke32/distinfo,v
retrieving revision 1.2
diff -u -p -r1.2 distinfo
--- distinfo    2 Mar 2013 13:03:17 -0000       1.2
+++ distinfo    19 Jun 2016 06:43:09 -0000
@@ -1,2 +1,2 @@
-SHA256 (eduke32_src_20120301-2394.tar.bz2) = 
zuxpT5DIOfFCCG2jzlRpAAcIaj+pGPAhSAEZEICypGc=
-SIZE (eduke32_src_20120301-2394.tar.bz2) = 3200173
+SHA256 (eduke32_src_20160610-5775.tar.xz) = 
znVDHKAUXxw3k01ck0OTmC8ntqpkYZpAI85U5P1QyPk=
+SIZE (eduke32_src_20160610-5775.tar.xz) = 14532340
Index: patches/patch-Makefile_common
===================================================================
RCS file: /cvs/ports/games/eduke32/patches/patch-Makefile_common,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-Makefile_common
--- patches/patch-Makefile_common       17 Jul 2012 21:29:50 -0000      1.1.1.1
+++ patches/patch-Makefile_common       19 Jun 2016 06:43:09 -0000
@@ -1,14 +1,73 @@
-$OpenBSD: patch-Makefile_common,v 1.1.1.1 2012/07/17 21:29:50 rfreeman Exp $
-
-Use default optimisation options.
-
---- Makefile.common.orig       Fri Mar  9 06:15:40 2012
-+++ Makefile.common    Fri Mar  9 06:16:13 2012
-@@ -89,7 +89,6 @@ endif
- 
- ifneq (0,$(RELEASE))
-     # Debugging disabled
--    debug+= -O$(OPTLEVEL)
-     ifneq ($(CC),clang)
-         debug+= -funswitch-loops
+$OpenBSD$
+--- Makefile.common.orig       Sat Jun  4 21:46:28 2016
++++ Makefile.common    Sat Jun 18 23:37:57 2016
+@@ -7,35 +7,19 @@ PRETTY_OUTPUT ?= 1
+ 
+ # Tools
+ CROSS=
+-ifneq ($(CROSS),)
+-    undefine CC
+-    undefine CXX
+-    undefine AR
+-    undefine RC
+-    undefine RANLIB
+-    undefine STRIP
+-endif
+ 
+-CC=$(CROSS)gcc
+-CXX=$(CROSS)g++
+-AR=$(CROSS)ar
+-RC=$(CROSS)windres
+-RANLIB=$(CROSS)ranlib
+-STRIP=$(CROSS)strip
+-AS=nasm
+-PKG_CONFIG=pkg-config
++CC?=$(CROSS)gcc
++CXX?=$(CROSS)g++
++AR?=$(CROSS)ar
++RC?=$(CROSS)windres
++RANLIB?=$(CROSS)ranlib
++STRIP=
++AS?=nasm
++PKG_CONFIG?=pkg-config
+ 
+ DONT_PRINT = > /dev/null 2>&1
+ DONT_FAIL = ; exit 0
+ 
+-# Override defaults that absolutely will not work.
+-ifeq ($(CC),cc)
+-    override CC=gcc
+-endif
+-ifeq ($(AS),as)
+-    override AS=nasm
+-endif
+-
+ COBJC=$(CC) -x objective-c
+ COBJCXX=$(CXX) -x objective-c++
+ L_CC=$(CC)
+@@ -283,14 +267,9 @@ GUI_LIBS=
+ LIBDIRS=
+ 
+ ifeq (1,$(strip $(shell expr $(GCC_MAJOR) \>= 4)))
+-    F_NO_STACK_PROTECTOR := -fno-stack-protector
+-    # there are some link-time issues with stack protectors, so make it 
possible to override
+-    F_STACK_PROTECTOR_ALL ?= -fstack-protector-all
+     ifeq (0,$(CLANG))
+         F_JUMP_TABLES := -fjump-tables
      endif
+-    M_TUNE_GENERIC := -mtune=generic
+-    M_STACKREALIGN := -mstackrealign
+ endif
+ 
+ W_STRICT_OVERFLOW := -Wno-strict-overflow
+@@ -663,10 +642,6 @@ DLLSUFFIX=.so
+ 
+ SDL_TARGET ?= 2
+ SDL_FRAMEWORK ?= 0
+-
+-ifeq (1,$(strip $(shell expr $(GCC_MAJOR) \>= 4)))
+-    L_SSP := -lssp
+-endif
+ 
+ # ifeq (1,$(strip $(shell expr $(GCC_MAJOR) \>= 5)))
+ #     ifneq (0,$(LTO))
Index: patches/patch-build_Makefile_shared
===================================================================
RCS file: patches/patch-build_Makefile_shared
diff -N patches/patch-build_Makefile_shared
--- patches/patch-build_Makefile_shared 17 Jul 2012 21:29:50 -0000      1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,32 +0,0 @@
-$OpenBSD: patch-build_Makefile_shared,v 1.1.1.1 2012/07/17 21:29:50 rfreeman 
Exp $
-
-Default optimisations.
-
---- build/Makefile.shared.orig Fri Dec  9 14:08:47 2011
-+++ build/Makefile.shared      Fri Mar  9 05:59:46 2012
-@@ -21,24 +21,14 @@ BUILDCFLAGS=
- # This is easier than trying to squeeze it out of gcc --version:
- GCC_MAJOR ?= 4
- ifeq (4,$(GCC_MAJOR))
--    F_NO_STACK_PROTECTOR := -fno-stack-protector
--    # there are some link-time issues with stack protectors, so make it 
possible to override
--    F_STACK_PROTECTOR_ALL ?= -fstack-protector-all
-     ifneq ($(CC),clang)
-         F_JUMP_TABLES := -fjump-tables
-     endif
--    M_TUNE_GENERIC := -mtune=generic
--    M_STACKREALIGN := -mstackrealign
--    L_SSP := -lssp
- endif
- 
- 
- ifndef ARCH
--    ifeq ($(findstring i686, $(shell uname -m)), i686)
--        ARCH=-march=pentium3 $(M_TUNE_GENERIC) -mmmx # -msse2 
-mfpmath=sse,387 -malign-double $(M_STACKREALIGN)
--    else
--        ARCH=
--    endif
-+    ARCH=
- endif
- 
- # Detect the platform if it wasn't explicitly given to us from
Index: patches/patch-build_include_compat_h
===================================================================
RCS file: patches/patch-build_include_compat_h
diff -N patches/patch-build_include_compat_h
--- patches/patch-build_include_compat_h        1 May 2015 16:51:25 -0000       
1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,28 +0,0 @@
-$OpenBSD: patch-build_include_compat_h,v 1.2 2015/05/01 16:51:25 ajacoutot Exp 
$
-
-this is committed upstream as of 2012-08-18, fixes build on hppa, ppc
-
---- build/include/compat.h.orig        Thu Aug  9 04:05:30 2012
-+++ build/include/compat.h     Thu Aug  9 04:11:36 2012
-@@ -140,7 +140,20 @@ static inline float nearbyintf(float x) 
- # endif
- # define B_ENDIAN_C_INLINE 1
- 
--#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
-+#elif defined(__OpenBSD__)
-+# include <endian.h>
-+# if _BYTE_ORDER == _LITTLE_ENDIAN
-+#  define B_LITTLE_ENDIAN 1
-+#  define B_BIG_ENDIAN    0
-+# elif _BYTE_ORDER == _BIG_ENDIAN
-+#  define B_LITTLE_ENDIAN 0
-+#  define B_BIG_ENDIAN    1
-+# endif
-+# define B_SWAP64(x) __swap64(x)
-+# define B_SWAP32(x) __swap32(x)
-+# define B_SWAP16(x) __swap16(x)
-+
-+#elif defined(__FreeBSD__) || defined(__NetBSD__)
- # include <sys/endian.h>
- # if _BYTE_ORDER == _LITTLE_ENDIAN
- #  define B_LITTLE_ENDIAN 1
Index: patches/patch-build_src_dynamicgtk_c
===================================================================
RCS file: patches/patch-build_src_dynamicgtk_c
diff -N patches/patch-build_src_dynamicgtk_c
--- patches/patch-build_src_dynamicgtk_c        13 Jan 2013 09:26:35 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-build_src_dynamicgtk_c,v 1.1 2013/01/13 09:26:35 sthen Exp $
---- build/src/dynamicgtk.c.orig        Fri Jan 11 23:10:36 2013
-+++ build/src/dynamicgtk.c     Fri Jan 11 23:10:42 2013
-@@ -20,7 +20,7 @@ int32_t dynamicgtk_init(void)
- 
-     if (handle) return 1;
- 
--    handle = dlopen("libgtk-x11-2.0.so.0", RTLD_NOW|RTLD_GLOBAL);
-+    handle = dlopen("libgtk-x11-2.0.so", RTLD_NOW|RTLD_GLOBAL);
-     if (!handle) return -1;
- 
-     memset(&dynamicgtksyms, 0, sizeof(dynamicgtksyms));
Index: patches/patch-build_src_glbuild_c
===================================================================
RCS file: patches/patch-build_src_glbuild_c
diff -N patches/patch-build_src_glbuild_c
--- patches/patch-build_src_glbuild_c   17 Jul 2012 21:29:50 -0000      1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,25 +0,0 @@
-$OpenBSD: patch-build_src_glbuild_c,v 1.1.1.1 2012/07/17 21:29:50 rfreeman Exp 
$
-
-allow dlopen to find our libGL.so, falling back to libGL.so.1 for
-linux or others.
-
---- build/src/glbuild.c.orig   Tue Oct 11 17:52:53 2011
-+++ build/src/glbuild.c        Fri Mar  9 01:12:27 2012
-@@ -338,6 +338,8 @@ int32_t loadgldriver(const char *driver)
-         driver = "opengl32.dll";
- #elif defined __APPLE__
-         driver = "/System/Library/Frameworks/OpenGL.framework/OpenGL";
-+#elif defined __OpenBSD__
-+      driver = "libGL.so";
- #else
-         driver = "libGL.so.1";
- #endif
-@@ -936,6 +938,8 @@ int32_t loadglulibrary(const char *driver)
-         driver = "glu32.dll";
- #elif defined __APPLE__
-         driver = "/System/Library/Frameworks/OpenGL.framework/OpenGL"; // 
FIXME: like I know anything about Apple.  Hah.
-+#elif defined __OpenBSD__
-+        driver = "libGLU.so";
- #else
-         driver = "libGLU.so.1";
- #endif
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/games/eduke32/pkg/PLIST,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 PLIST
--- pkg/PLIST   17 Jul 2012 21:29:50 -0000      1.1.1.1
+++ pkg/PLIST   19 Jun 2016 06:43:09 -0000
@@ -2,8 +2,8 @@
 @bin bin/eduke32
 @bin bin/mapster32
 share/doc/eduke32/
-share/doc/eduke32/GNU.TXT
 share/doc/eduke32/buildlic.txt
+share/doc/eduke32/gpl-2.0.txt
 share/doc/pkg-readmes/${FULLPKGNAME}
 share/duke3d/SEHELP.HLP
 share/duke3d/STHELP.HLP
@@ -13,11 +13,17 @@ share/duke3d/tiles.cfg
 share/examples/eduke32/
 share/examples/eduke32/_clipshape0.map
 share/examples/eduke32/a.m32
+share/examples/eduke32/aspect.map
 share/examples/eduke32/duke3d.def.sample
+share/examples/eduke32/dump_used_assets.m32
 share/examples/eduke32/enhance.con.sample
 share/examples/eduke32/m32script_ex.map
+share/examples/eduke32/r_usenewshading.map
 share/examples/eduke32/ror.map
+share/examples/eduke32/splitscr.con
 share/examples/eduke32/spriteclip.txt
+share/examples/eduke32/startpos.m32
+share/examples/eduke32/test_tileoffsets.map
 share/examples/eduke32/tests.m32
 share/examples/eduke32/trueror1.map
 share/examples/eduke32/weapons.con.sample

Reply via email to