On 07/06/16 18:27, Ryan Freeman wrote: > On Sun, Jun 26, 2016 at 01:35:44PM -0700, Ryan Freeman wrote: >> On Sat, Jun 18, 2016 at 11:50:55PM -0700, Ryan Freeman wrote: >>> 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 >> >> ping? > > Anyone? I saw the mail go out about pending ports lock, this definitely > isn't something terribly important, but if there is opportunity to squeeze > it in before lock, why not? > >>> 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 >>> >> >
Builds and installs cleanly for me. Plays well. OpenBSD thorin 6.0 GENERIC.MP#2260 amd64 Thanks to you and Daniel for the update. --Aaron