On Fri, Dec 27, 2019 at 06:21:35PM -0800, Ryan Freeman wrote: > On Sat, Dec 28, 2019 at 01:17:33AM +1100, Jonathan Gray wrote: > > On Tue, Dec 24, 2019 at 08:16:22PM +1100, Jonathan Gray wrote: > > > On Tue, Dec 24, 2019 at 09:22:27AM +0100, Solene Rapenne wrote: > > > > Le Tue, 24 Dec 2019 10:46:41 +1100, > > > > Jonathan Gray <j...@jsg.id.au> a écrit : > > > > > > > > > On Mon, Dec 23, 2019 at 07:41:32PM +0100, Solene Rapenne wrote: > > > > > > This patch updates eduke32 to last version and enable playing Ion > > > > > > Fury > > > > > > > > > > > > most of the diff comes from the following thread > > > > > > https://marc.info/?l=openbsd-misc&m=156907261602397&w=2 > > > > > > > > > > > > tested Ion Fury, works fine on an old T400 (smooth if > > > > > > I disabled sound...) but smooth on a T480, it's really CPU intensive > > > > > > > > > > > > duke32 shareware data still works fine out of the box > > > > > > > > > > This looks mostly fine but why have you dropped base-clang from > > > > > COMPILER? > > > > > > > > > > > > > I forgot to explain why I dropped base-clang, this is because eduke32 > > > > fails with this error: > > > > > > > > ===> Building for eduke32-2.0.0.8494 > > > > mkdir -p obj/duke3d > > > > c++ -std=gnu++11 -fno-exceptions -fno-rtti -fomit-frame-pointer > > > > -fno-strict-aliasing -fno-threadsafe-statics -fjump-tables > > > > -fno-stack-protector -O2 -pipe -W -Wall -Wextra -Wpointer-arith > > > > -Wno-char-subscripts -Wno-missing-braces -Wwrite-strings > > > > -Wuninitialized -Wno-attributes -Wno-strict-overflow > > > > -Isource/build/include -Isource/mact/include -Isource/audiolib/include > > > > -Isource/glad/include -Isource/voidwrap/include -MP -MMD > > > > -funsigned-char -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -DNDEBUG -DNOASM > > > > -DRENDERTYPESDL=1 -DSTARTUP_WINDOW -DUSE_OPENGL -DPOLYMER > > > > -I/usr/local/include -DUSE_LIBVPX -DHAVE_VORBIS -DHAVE_FLAC -DHAVE_XMP > > > > -DSDL_TARGET=2 -I/usr/local/include -I/usr/local/include/SDL2 > > > > -I/usr/X11R6/include -D_REENTRANT -I/usr/X11R6/include -DHAVE_GTK2 > > > > -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include > > > > -I/usr/local/include/pango-1.0 -I/usr/local/include/gio-unix-2.0 > > > > -I/usr/X11R6/include -I/usr/local/include/cairo > > > > -I/usr/local/include/atk-1.0 -I/usr/local/include/gdk-pixbuf-2.0 > > > > -I/usr/local/include -pthread -I/usr/local/include/fribidi > > > > -I/usr/X11R6/include/pixman-1 -I/usr/local/include/libpng16 > > > > -I/usr/local/include/harfbuzz -I/usr/local/include/glib-2.0 > > > > -I/usr/local/lib/glib-2.0/include -I/usr/X11R6/include/freetype2 > > > > -Isource/duke3d/src -c source/duke3d/src/actors.cpp -o > > > > obj/duke3d/actors.o > > > > In file included from source/duke3d/src/actors.cpp:25: > > > > In file included from source/duke3d/src/duke3d.h:134: > > > > In file included from source/duke3d/src/game.h:34: > > > > source/duke3d/src/gamevars.h:254:85: error: fallthrough annotation does > > > > not directly precede switch label > > > > case GAMEVAR_PERPLAYER: iptr = &var.pValues[vm.playerNum & > > > > (MAXPLAYERS-1)]; fallthrough__; > > > > > > > > ^ > > > > source/build/include/compat.h:267:25: note: expanded from macro > > > > 'fallthrough__' > > > > # define fallthrough__ [[fallthrough]] > > > > ^ > > > > 1 error generated. > > > > gmake: *** [GNUmakefile:1074: obj/duke3d/actors.o] Error 1 > > > > *** Error 2 in . (/home/ports/infrastructure/mk/bsd.port.mk:2890 > > > > '/home/ports/pobj/eduke32-2.0.0.8494/.build_done') > > > > *** Error 1 in /usr/ports/games/eduke32 > > > > (/home/ports/infrastructure/mk/bsd.port.mk:2556 'all') > > > > > > case GAMEVAR_PERACTOR: iptr = &var.pValues[vm.spriteNum & > > > (MAXSPRITES-1)]; goto jmp; > > > case GAMEVAR_PERPLAYER: iptr = &var.pValues[vm.playerNum & > > > (MAXPLAYERS-1)]; fallthrough__; > > > jmp: default: *iptr = libdivide_s32_do(*iptr, dptr); break; > > > > > > it should be enough to change this to > > > > > > default: jmp: ... > > > > eduke32 rev 8495 and later has this change. > > > > Thanks Jonathan, I built the port with that change cherry-picked, plus > base-clang > re-added to the COMPILERS line. I hit this error: > > c++ -std=gnu++11 -fno-exceptions -fno-rtti -fomit-frame-pointer > -fno-strict-aliasing -fno-threadsafe-statics -fjump-tables > -fno-stack-protector -O2 -pipe -W -Wall -Wextra -Wpointer-arith > -Wno-char-subscripts -Wno-missing-braces -Wwrite-strings -Wuninitialized > -Wno-attributes -Wno-strict-overflow -Isource/build/include > -Isource/mact/include -Isource/audiolib/include -Isource/glad/include > -Isource/voidwrap/include -MP -MMD -funsigned-char -U_FORTIFY_SOURCE > -D_FORTIFY_SOURCE=0 -DNDEBUG -DNOASM -DRENDERTYPESDL=1 -DSTARTUP_WINDOW > -DUSE_OPENGL -DPOLYMER -I/usr/local/include -DUSE_LIBVPX -DHAVE_VORBIS > -DHAVE_FLAC -DHAVE_XMP -DSDL_TARGET=2 -I/usr/local/include > -I/usr/local/include/SDL2 -I/usr/X11R6/include -D_REENTRANT > -I/usr/X11R6/include -DHAVE_GTK2 -I/usr/local/include/gtk-2.0 > -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/pango-1.0 > -I/usr/local/include/gio-unix-2.0 -I/usr/X11R6/include > -I/usr/local/include/cairo -I/usr/local/include/atk-1.0 > -I/usr/local/include/gdk-pixbuf-2.0 -I/usr/local/include -pthread > -I/usr/local/include/fribidi -I/usr/X11R6/include/pixman-1 > -I/usr/local/include/libpng16 -I/usr/local/include/harfbuzz > -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include > -I/usr/X11R6/include/freetype2 -DHAVE_ROUND -DLIBXMP_CORE_PLAYER > -DBUILDING_STATIC -Isource/libxmp-lite/include/libxmp-lite > -Wno-unused-parameter -Wno-sign-compare -c source/libxmp-lite/src/common.c -o > obj/libxmp-lite/common.o > c++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is > deprecated [-Wdeprecated] > source/libxmp-lite/src/common.c:70:55: error: invalid application of 'sizeof' > to an incomplete type 'struct xmp_subinstrument' > mod->xxi[i].sub = (struct xmp_subinstrument *)calloc(sizeof (struct > xmp_subinstrument), num); > ^ > ~~~~~~~~~~~~~~~~~~~~~~~~~~ > source/libxmp-lite/src/common.c:70:28: note: forward declaration of > 'xmp_subinstrument' > mod->xxi[i].sub = (struct xmp_subinstrument *)calloc(sizeof (struct > xmp_subinstrument), num); > ^ > 1 error generated. > gmake: *** [GNUmakefile:1074: obj/libxmp-lite/common.o] Error 1 > *** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2890 > '/usr/ports/pobj/eduke32-2.0.0.8494/.build_done') > *** Error 1 in /usr/ports/games/eduke32 > (/usr/ports/infrastructure/mk/bsd.port.mk:2556 'all') > > > It seems this is due to me having libxmp installed. Removing it allows the > build to complete. I spent hours trying to figure out a way to make > libxmplite > play nice when libxmp package is installed, but the Makefile for eduke32 sure > doesn't make it easy. Most (all?) of the files get built with loops that > share the same dependency arguments as everything else, so finding a way to > remove '-I/usr/local/include' just ends up breaking other stuff. > > Trying to use HAVE_XMP=0 to disable it doesn't work either, as it seems it > is now deep enough in audiolib there is no more off switch for that. > > As of now I am unsure of how to proceed, but I don't think this update can > go in if it breaks dpb...
both the local and ports xmp.h headers have #ifndef XMP_H #define XMP_H ... So it is enough to make sure the local xmp.h is first in the include search order. Index: Makefile =================================================================== RCS file: /cvs/ports/games/eduke32/Makefile,v retrieving revision 1.22 diff -u -p -r1.22 Makefile --- Makefile 14 Jul 2019 02:16:51 -0000 1.22 +++ Makefile 28 Dec 2019 03:35:07 -0000 @@ -1,15 +1,14 @@ # $OpenBSD: Makefile,v 1.22 2019/07/14 02:16:51 naddy Exp $ COMMENT = Enhanced Duke Nukem 3D engine -RDATE = 20171105 -RTAG = 6496 +RDATE = 20191222 +RTAG = 8494 DISTNAME = eduke32_src_${RDATE}-${RTAG} PKGNAME = eduke32-2.0.0.${RTAG} -REVISION = 3 EXTRACT_SUFX = .tar.xz CATEGORIES = games x11 -HOMEPAGE = http://www.eduke32.com/ +HOMEPAGE = https://www.eduke32.com/ MAINTAINER = Ryan Freeman <r...@slipgate.org> @@ -37,7 +36,7 @@ WANTLIB += gtk-x11-2.0 RUN_DEPENDS = games/duke3ddata -MASTER_SITES = http://dukeworld.duke4.net/eduke32/synthesis/${RDATE}-${RTAG}/ +MASTER_SITES = https://dukeworld.duke4.net/eduke32/synthesis/${RDATE}-${RTAG}/ COMPILER = base-clang ports-gcc @@ -47,7 +46,6 @@ MAKE_FLAGS += PRETTY_OUTPUT=0 \ CXX="${CXX}" \ STRIP=true \ PACKAGE_REPOSITORY=1 \ - HAVE_XMP=0 \ NOASM=1 MAKE_FILE = GNUmakefile USE_GMAKE = Yes Index: distinfo =================================================================== RCS file: /cvs/ports/games/eduke32/distinfo,v retrieving revision 1.4 diff -u -p -r1.4 distinfo --- distinfo 22 Nov 2017 03:43:46 -0000 1.4 +++ distinfo 28 Dec 2019 03:35:33 -0000 @@ -1,2 +1,2 @@ -SHA256 (eduke32_src_20171105-6496.tar.xz) = 1+MCe1npolXkOvGK6Jtk+THxlaIL9kwoTLKYpdkMPrI= -SIZE (eduke32_src_20171105-6496.tar.xz) = 14351444 +SHA256 (eduke32_src_20191222-8494.tar.xz) = RaI1M725fVdITdOus9lSZQQspn1R/PfxFpUugWTOcww= +SIZE (eduke32_src_20191222-8494.tar.xz) = 15951736 Index: patches/patch-Common_mak =================================================================== RCS file: /cvs/ports/games/eduke32/patches/patch-Common_mak,v retrieving revision 1.1 diff -u -p -r1.1 patch-Common_mak --- patches/patch-Common_mak 22 Nov 2017 03:43:46 -0000 1.1 +++ patches/patch-Common_mak 28 Dec 2019 04:05:36 -0000 @@ -1,9 +1,11 @@ $OpenBSD: patch-Common_mak,v 1.1 2017/11/22 03:43:46 kirby Exp $ +include local libxmp-lite path early to avoid ports libxmp + Index: Common.mak --- Common.mak.orig +++ Common.mak -@@ -638,7 +638,7 @@ ifeq (0,$(RELEASE)) +@@ -710,7 +710,7 @@ ifeq (0,$(RELEASE)) F_NO_STACK_PROTECTOR := else ifeq (0,$(CLANG)) @@ -11,4 +13,13 @@ Index: Common.mak + #COMMONFLAGS += -funswitch-loops endif - ifeq (0,$(DEBUGANYWAY)) + ifeq (0,$(FORCEDEBUG)) +@@ -883,7 +883,7 @@ else ifeq ($(PLATFORM),DARWIN) + COMPILERFLAGS += -I/sw/include + endif + else ifeq ($(PLATFORM),BSD) +- COMPILERFLAGS += -I/usr/local/include ++ COMPILERFLAGS += -Isource/libxmp-lite/include/libxmp-lite + else ifeq ($(PLATFORM),WII) + COMPILERFLAGS += -I$(PORTLIBS)/include -Iplatform/Wii/include + LIBDIRS += -L$(PORTLIBS)/lib -Lplatform/Wii/lib Index: patches/patch-GNUmakefile =================================================================== RCS file: /cvs/ports/games/eduke32/patches/patch-GNUmakefile,v retrieving revision 1.2 diff -u -p -r1.2 patch-GNUmakefile --- patches/patch-GNUmakefile 17 Jul 2018 07:56:44 -0000 1.2 +++ patches/patch-GNUmakefile 28 Dec 2019 03:27:43 -0000 @@ -3,15 +3,15 @@ $OpenBSD: patch-GNUmakefile,v 1.2 2018/0 Index: GNUmakefile --- GNUmakefile.orig +++ GNUmakefile -@@ -161,7 +161,6 @@ engine_objs := \ - textfont.cpp \ - smalltextfont.cpp \ +@@ -240,7 +240,6 @@ engine_objs := \ + hightile.cpp \ + klzw.cpp \ kplib.cpp \ - lz4.c \ - osd.cpp \ - pragmas.cpp \ - scriptfile.cpp \ -@@ -581,7 +580,7 @@ ifeq ($(SUBPLATFORM),LINUX) + md4.cpp \ + mhk.cpp \ + miniz.c \ +@@ -684,7 +683,7 @@ ifeq ($(SUBPLATFORM),LINUX) endif ifeq ($(PLATFORM),BSD) @@ -20,12 +20,19 @@ Index: GNUmakefile endif ifeq ($(PLATFORM),DARWIN) -@@ -755,7 +754,7 @@ endif +@@ -851,13 +850,14 @@ endif #### Final setup --COMPILERFLAGS += -I$(engine_inc) -I$(mact_inc) -I$(audiolib_inc) -I$(enet_inc) -+COMPILERFLAGS := -I$(engine_inc) -I$(mact_inc) -I$(audiolib_inc) -I$(enet_inc) $(COMPILERFLAGS) +-COMPILERFLAGS += \ ++COMPILERFLAGS := \ + -I$(engine_inc) \ + -I$(mact_inc) \ + -I$(audiolib_inc) \ + -I$(glad_inc) \ + -I$(voidwrap_inc) \ + -MP -MMD \ ++ $(COMPILERFLAGS) - - ##### Recipes + ifneq (0,$(USE_PHYSFS)) + COMPILERFLAGS += -I$(physfs_inc) -DUSE_PHYSFS Index: patches/patch-source_build_Dependencies_mak =================================================================== RCS file: patches/patch-source_build_Dependencies_mak diff -N patches/patch-source_build_Dependencies_mak --- patches/patch-source_build_Dependencies_mak 22 Nov 2017 03:43:46 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,22 +0,0 @@ -$OpenBSD: patch-source_build_Dependencies_mak,v 1.1 2017/11/22 03:43:46 kirby Exp $ - -Index: source/build/Dependencies.mak ---- source/build/Dependencies.mak.orig -+++ source/build/Dependencies.mak -@@ -19,7 +19,7 @@ $(ENGINE_OBJ)/hash.$o: $(ENGINE_SRC)/hash.cpp $(ENGINE - $(ENGINE_OBJ)/colmatch.$o: $(ENGINE_SRC)/colmatch.cpp - $(ENGINE_OBJ)/mhk.$o: $(ENGINE_SRC)/mhk.cpp - $(ENGINE_OBJ)/palette.$o: $(ENGINE_SRC)/palette.cpp $(ENGINE_INC)/palette.h --$(ENGINE_OBJ)/polymost.$o: $(ENGINE_SRC)/polymost.cpp $(ENGINE_INC)/lz4.h $(ENGINE_INC)/compat.h $(ENGINE_INC)/build.h $(ENGINE_INC)/buildtypes.h $(ENGINE_SRC)/engine_priv.h $(ENGINE_INC)/polymost.h $(ENGINE_INC)/hightile.h $(ENGINE_INC)/mdsprite.h $(ENGINE_INC)/texcache.h -+$(ENGINE_OBJ)/polymost.$o: $(ENGINE_SRC)/polymost.cpp $(ENGINE_INC)/compat.h $(ENGINE_INC)/build.h $(ENGINE_INC)/buildtypes.h $(ENGINE_SRC)/engine_priv.h $(ENGINE_INC)/polymost.h $(ENGINE_INC)/hightile.h $(ENGINE_INC)/mdsprite.h $(ENGINE_INC)/texcache.h - $(ENGINE_OBJ)/texcache.$o: $(ENGINE_SRC)/texcache.cpp $(ENGINE_INC)/texcache.h $(ENGINE_INC)/polymost.h $(ENGINE_INC)/dxtfilter.h $(ENGINE_INC)/kplib.h - $(ENGINE_OBJ)/dxtfilter.$o: $(ENGINE_SRC)/dxtfilter.cpp $(ENGINE_INC)/dxtfilter.h $(ENGINE_INC)/texcache.h - $(ENGINE_OBJ)/hightile.$o: $(ENGINE_SRC)/hightile.cpp $(ENGINE_INC)/kplib.h $(ENGINE_INC)/hightile.h -@@ -29,7 +29,6 @@ $(ENGINE_OBJ)/textfont.$o: $(ENGINE_SRC)/textfont.cpp - $(ENGINE_OBJ)/smalltextfont.$o: $(ENGINE_SRC)/smalltextfont.cpp - $(ENGINE_OBJ)/glbuild.$o: $(ENGINE_SRC)/glbuild.cpp $(ENGINE_INC)/glbuild.h $(ENGINE_INC)/baselayer.h - $(ENGINE_OBJ)/kplib.$o: $(ENGINE_SRC)/kplib.cpp $(ENGINE_INC)/compat.h $(ENGINE_INC)/kplib.h --$(ENGINE_OBJ)/lz4.$o: $(ENGINE_SRC)/lz4.c $(ENGINE_INC)/lz4.h - $(ENGINE_OBJ)/md4.$o: $(ENGINE_SRC)/md4.cpp $(ENGINE_INC)/md4.h - $(ENGINE_OBJ)/osd.$o: $(ENGINE_SRC)/osd.cpp $(ENGINE_INC)/build.h $(ENGINE_INC)/buildtypes.h $(ENGINE_INC)/osd.h $(ENGINE_INC)/compat.h $(ENGINE_INC)/baselayer.h - $(ENGINE_OBJ)/pragmas.$o: $(ENGINE_SRC)/pragmas.cpp $(ENGINE_INC)/compat.h Index: patches/patch-source_build_include_compat_h =================================================================== RCS file: patches/patch-source_build_include_compat_h diff -N patches/patch-source_build_include_compat_h --- patches/patch-source_build_include_compat_h 10 Jul 2018 13:53:29 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,18 +0,0 @@ -$OpenBSD: patch-source_build_include_compat_h,v 1.1 2018/07/10 13:53:29 naddy Exp $ - -Cast to int32_t to match the return type of the SSE2-optimized function -on amd64. This fixes errors on other LP64-clang archs: -non-constant-expression cannot be narrowed from type 'long' to 'int32_t' - -Index: source/build/include/compat.h ---- source/build/include/compat.h.orig -+++ source/build/include/compat.h -@@ -606,7 +606,7 @@ static FORCE_INLINE int32_t Blrintf(const float x) - return n; - } - #else --#define Blrintf lrintf -+#define Blrintf(x) static_cast<int32_t>(lrintf(x)) - #endif - - #if defined(__arm__) Index: patches/patch-source_duke3d_src_gamevars_h =================================================================== RCS file: patches/patch-source_duke3d_src_gamevars_h diff -N patches/patch-source_duke3d_src_gamevars_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-source_duke3d_src_gamevars_h 28 Dec 2019 03:39:19 -0000 @@ -0,0 +1,16 @@ +$OpenBSD$ + +backport svn rev 8495 to fix clang build + +Index: source/duke3d/src/gamevars.h +--- source/duke3d/src/gamevars.h.orig ++++ source/duke3d/src/gamevars.h +@@ -252,7 +252,7 @@ static FORCE_INLINE void __fastcall Gv_DivVar(int cons + { + case GAMEVAR_PERACTOR: iptr = &var.pValues[vm.spriteNum & (MAXSPRITES-1)]; goto jmp; + case GAMEVAR_PERPLAYER: iptr = &var.pValues[vm.playerNum & (MAXPLAYERS-1)]; fallthrough__; +- jmp: default: *iptr = libdivide_s32_do(*iptr, dptr); break; ++ default: jmp: *iptr = libdivide_s32_do(*iptr, dptr); break; + + case GAMEVAR_INT32PTR: + { Index: pkg/DESCR =================================================================== RCS file: /cvs/ports/games/eduke32/pkg/DESCR,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 DESCR --- pkg/DESCR 17 Jul 2012 21:29:50 -0000 1.1.1.1 +++ pkg/DESCR 28 Dec 2019 03:27:44 -0000 @@ -2,16 +2,17 @@ Source-port of the venerable Duke Nukem game engine. Besides increasing portability, the engine adds new renderers, in-game configurability, console, plus extended editing and scripting capabilities. Networking for dukematches and coop play is -fully functional. +fully functional. The engine supports the following games: -(from http://wiki.eduke32.com/wiki/Frequently_Asked_Questions) +(from https://wiki.eduke32.com/wiki/Frequently_Asked_Questions) * Duke Nukem 3D Shareware Version * Duke Nukem 3D * Duke Nukem 3D: Atomic Edition +* Ion Fury * NAM (Note: you must rename GAME.CON from NAM to NAM.CON) -* Napalm (Wal-Mart only version of NAM, some .GRP differences between +* Napalm (Wal-Mart only version of NAM, some .GRP differences between the two releases) -* WWII GI (Limited Support using NAM mode as a base) +* WWII GI (Limited Support using NAM mode as a base) -"EDuke32 makes sandwiches!" +"EDuke32 makes sandwiches!" Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/games/eduke32/pkg/PLIST,v retrieving revision 1.4 diff -u -p -r1.4 PLIST --- pkg/PLIST 4 Sep 2018 12:46:12 -0000 1.4 +++ pkg/PLIST 28 Dec 2019 03:27:44 -0000 @@ -5,6 +5,7 @@ share/doc/eduke32/ share/doc/eduke32/buildlic.txt share/doc/eduke32/gpl-2.0.txt share/doc/pkg-readmes/${PKGSTEM} +share/duke3d/ share/duke3d/SEHELP.HLP share/duke3d/STHELP.HLP share/duke3d/m32help.hlp Index: pkg/README =================================================================== RCS file: /cvs/ports/games/eduke32/pkg/README,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 README --- pkg/README 17 Jul 2012 21:29:50 -0000 1.1.1.1 +++ pkg/README 28 Dec 2019 03:27:44 -0000 @@ -1,9 +1,12 @@ -Shareware Duke Nukem 3D data has been installed to: +$OpenBSD$ + +Shareware Duke Nukem 3D data has been installed to: ${PREFIX}/share/duke3d/ -You may also copy your registered version data files (or any other -Duke Nukem 3D retail copies, such as the Atomic Edition) to a local -directory such as ~/duke3d/, and run eduke32 from within that directory: +You may also copy your registered version data files, or any other +Duke Nukem 3D retail copies (such as the Atomic Edition) or Ion Fury game +files to a local directory such as ~/duke3d/, and run eduke32 from within +that directory: % cd ~/duke3d/ && eduke32 @@ -20,5 +23,5 @@ ${PREFIX}/share/examples/eduke32/ Licenses are found under ${PREFIX}/share/doc/eduke32/ -http://wiki.eduke32.com/ contains a large resource of information on +https://wiki.eduke32.com contains a large resource of information on how to make full use of the eduke32 engine and mapster32 editor.