From d246633d9cd6126c1d1f054f61372b608a912a32 Mon Sep 17 00:00:00 2001 From: miqlas Date: Mon, 5 Jun 2017 13:00:50 +0200 Subject: [PATCH] Eduke32: new recipe (#1388) --- .../eduke32/eduke32-20170518_6135.recipe | 102 +++++++++++ .../patches/eduke32-20170518_6135.patchset | 166 ++++++++++++++++++ 2 files changed, 268 insertions(+) create mode 100644 games-fps/eduke32/eduke32-20170518_6135.recipe create mode 100644 games-fps/eduke32/patches/eduke32-20170518_6135.patchset diff --git a/games-fps/eduke32/eduke32-20170518_6135.recipe b/games-fps/eduke32/eduke32-20170518_6135.recipe new file mode 100644 index 000000000..d6ad46094 --- /dev/null +++ b/games-fps/eduke32/eduke32-20170518_6135.recipe @@ -0,0 +1,102 @@ +SUMMARY="A source port of the classic PC first person shooter Duke Nukem 3D" +DESCRIPTION="* EDuke32 runs natively without relying on emulation of any kind +* EDuke32 runs at crazy resolutions like 3072x2304. +* EDuke32 allows you to choose between two different hardware accelerated \ +OpenGL renderers, or the classic, warped software mode you grew up with +* EDuke32 fixes an insane amount of programming errors which were harmless \ +in the days of DOS but are fatal with modern protected memory models; \ +translation: EDuke32 crashes less +* EDuke32 has been the only actively developed and maintained Duke3D port \ +for years +* EDuke32 features Plagman's incredible \"Polymer\" renderer as a replacement \ +for Ken Silverman's \"Polymost\" renderer +* EDuke32 has a huge number of new extensions to the game's scripting system, \ +allowing gameplay mods that rival even modern games. +* EDuke32 runs the HRP with support for all features, most of which require \ +EDuke32; no other port can run the HRP with all features enabled +* EDuke32 adds a full-featured console, including Quake-style key bindings, \ +command aliases, advanced tab completion, comprehensive command history, \ +colored text and more +* EDuke32 has hundreds of code rewrites, optimizations and fixes for rare or \ +annoying bugs in the original code +* EDuke32 adds tons of optional new features that make the player's life \ +easier including modern status display/HUD, support for loading mods from the \ +startup window, and modern, WSAD-based controls with thoroughly reworked mouse \ +aiming +* EDuke32 supports Ogg Vorbis sound and music +* EDuke32 is developed by people who have been in the Duke3D scene since the \ +beginning +* EDuke32 lets you play that game called 'NAM' you saw at the dollar store 10 \ +years ago +* EDuke32 makes sandwiches!" +HOMEPAGE="http://www.eduke32.com/" +COPYRIGHT="1993-1997 Ken Silverman + 2006-2017 eduke32 Team" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="http://dukeworld.duke4.net/eduke32/synthesis/20170518-6135/eduke32_src_20170518-6135.tar.xz" +CHECKSUM_SHA256="539f928f9cee88a3d1dbcbf1f99a2e44e2d078185f99cf4ab6ed05922d450d2d" +SOURCE_DIR="eduke32_20170518-6135" +PATCHES="eduke32-20170518_6135.patchset" + +ARCHITECTURES="?x86_gcc2 ?x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + eduke32$secondaryArchSuffix = $portVersion + cmd:eduke32$secondaryArchSuffix = $portVersion + cmd:mapster32$secondaryArchSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libexecinfo$secondaryArchSuffix + lib:libFLAC$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libGLU$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libsdl2$secondaryArchSuffix + lib:libsdl2_mixer$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libvorbisfile$secondaryArchSuffix + lib:libvpx$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libexecinfo$secondaryArchSuffix + devel:libFLAC$secondaryArchSuffix + devel:libGL$secondaryArchSuffix + devel:libGLU$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libpng16$secondaryArchSuffix + devel:libsdl2$secondaryArchSuffix + devel:libsdl2_mixer$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libvorbisfile$secondaryArchSuffix + devel:libvpx$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:awk + cmd:gcc$secondaryArchSuffix + cmd:install + cmd:ld$secondaryArchSuffix + cmd:make + cmd:nasm + cmd:pkg_config$secondaryArchSuffix + " + +BUILD() +{ + make $jobArgs \ + RELEASE=1 +} + +INSTALL() +{ + mkdir -p $binDir + cp eduke32 mapster32 $binDir + strip $binDir/* +} diff --git a/games-fps/eduke32/patches/eduke32-20170518_6135.patchset b/games-fps/eduke32/patches/eduke32-20170518_6135.patchset new file mode 100644 index 000000000..b641d6c09 --- /dev/null +++ b/games-fps/eduke32/patches/eduke32-20170518_6135.patchset @@ -0,0 +1,166 @@ +From a6cd111118bb90838cd5a4c02a0751717d610d45 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= +Date: Sat, 3 Jun 2017 16:02:01 +0200 +Subject: Haiku: endiannes fix + + +diff --git a/source/build/include/compat.h b/source/build/include/compat.h +index 035fdc1..9a34a6b 100644 +--- a/source/build/include/compat.h ++++ b/source/build/include/compat.h +@@ -279,7 +279,7 @@ defined __x86_64__ || defined __amd64__ || defined _M_X64 || defined _M_IA64 || + # endif + # include + +-#elif defined(__BEOS__) ++#elif defined(__BEOS__) || defined(__HAIKU__) + # include + # if LITTLE_ENDIAN != 0 + # define B_LITTLE_ENDIAN 1 +-- +2.12.2 + + +From 71dc7c0d342f07766cb4ee4ce04b080bf1e32b61 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= +Date: Sat, 3 Jun 2017 17:31:49 +0200 +Subject: Haiku: build fix + + +diff --git a/source/build/src/kplib.cpp b/source/build/src/kplib.cpp +index 601892d..c0c3e77 100644 +--- a/source/build/src/kplib.cpp ++++ b/source/build/src/kplib.cpp +@@ -34,6 +34,10 @@ credits. + #include "kplib.h" + #include "pragmas.h" + ++#ifdef __HAIKU__ ++#include ++#endif ++ + #if !defined(_WIN32) + #include + static inline int32_t _lrotl(int32_t i, int sh) { return (i >> (-sh)) | (i << sh); } +@@ -2759,14 +2763,14 @@ int32_t kzfindfile(char *filnam) + if ((findata = readdir(hfind)) == NULL) + { closedir(hfind); hfind = NULL; if (!kzhashbuf) return 0; srchstat = 2; break; } + i = wildstpathleng; +- if (findata->d_type == DT_DIR) +- { if (findata->d_name[0] == '.' && !findata->d_name[1]) continue; } //skip . +- else if ((findata->d_type == DT_REG) || (findata->d_type == DT_LNK)) +- { if (findata->d_name[0] == '.') continue; } //skip hidden (dot) files +- else continue; //skip devices and fifos and such +- if (!wildmatch(findata->d_name,&newildst[wildstpathleng])) continue; +- strcpy(&filnam[i],findata->d_name); +- if (findata->d_type == DT_DIR) strcat(&filnam[i],"/"); ++// if (findata->d_type == DT_DIR) ++// { if (findata->d_name[0] == '.' && !findata->d_name[1]) continue; } //skip . ++// else if ((findata->d_type == DT_REG) || (findata->d_type == DT_LNK)) ++// { if (findata->d_name[0] == '.') continue; } //skip hidden (dot) files ++// else continue; //skip devices and fifos and such ++// if (!wildmatch(findata->d_name,&newildst[wildstpathleng])) continue; ++// strcpy(&filnam[i],findata->d_name); ++// if (findata->d_type == DT_DIR) strcat(&filnam[i],"/"); + #endif + return 1; + } +-- +2.12.2 + +From 537ab2e7986ff33d27056ec0c1a3018b9fe28eaa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= +Date: Sun, 4 Jun 2017 08:04:43 +0200 +Subject: [PATCH] Platform specific fixes + +--- + Common.mak | 22 +++++++++++++++------- + GNUmakefile | 4 ++++ + 2 files changed, 19 insertions(+), 7 deletions(-) + +diff --git a/Common.mak b/Common.mak +index eb6cb47..4fc96fe 100644 +--- a/Common.mak ++++ b/Common.mak +@@ -123,6 +123,8 @@ ifndef HOSTPLATFORM + HOSTPLATFORM=DARWIN + else ifeq ($(findstring BeOS,$(uname)),BeOS) + HOSTPLATFORM=BEOS ++ else ifeq ($(findstring Haiku,$(uname)),Haiku) ++ HOSTPLATFORM=HAIKU + else ifeq ($(findstring skyos,$(uname)),skyos) + HOSTPLATFORM=SKYOS + else ifeq ($(findstring QNX,$(uname)),QNX) +@@ -948,17 +950,23 @@ ifneq (0,$(POLYMER)) + endif + + +-ifneq ($(PLATFORM),WINDOWS) +- ifneq ($(PLATFORM),WII) +- ifneq ($(PLATFORM),BSD) +- LIBS+= -ldl +- endif +- ifneq ($(PLATFORM),DARWIN) +- LIBS+= -pthread ++ifneq ($(PLATFORM),HAIKU) ++ ifneq ($(PLATFORM),WINDOWS) ++ ifneq ($(PLATFORM),WII) ++ ifneq ($(PLATFORM),BSD) ++ LIBS+= -ldl ++ endif ++ ifneq ($(PLATFORM),DARWIN) ++ LIBS+= -pthread ++ endif + endif + endif + endif + ++ifeq ($(PLATFORM),HAIKU) ++ LIBS+= -lpthread -lnetwork ++endif ++ + ifeq ($(PLATFORM),WINDOWS) + ifneq ($(USE_LIBPNG),0) + LIBS+= -lpng_mini -lz_mini +diff --git a/GNUmakefile b/GNUmakefile +index a966483..7027e1f 100644 +--- a/GNUmakefile ++++ b/GNUmakefile +@@ -544,6 +544,10 @@ ifeq ($(PLATFORM),BSD) + LIBS += -lFLAC -lvorbisfile -lvorbis -logg -lexecinfo + endif + ++ifeq ($(PLATFORM),HAIKU) ++ LIBS += -lFLAC -lvorbisfile -lvorbis -logg -lexecinfo -lnetwork ++endif ++ + ifeq ($(PLATFORM),DARWIN) + ifneq (0,$(HAVE_XMP)) + LIBS += -lxmp-lite +-- +2.12.2 + +From 1c963d963f506b53b10f431b96caf595037fe091 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= +Date: Sun, 4 Jun 2017 08:30:18 +0200 +Subject: [PATCH] Data file search path fix + +--- + source/duke3d/src/common.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/source/duke3d/src/common.cpp b/source/duke3d/src/common.cpp +index 0045364..ce62dc6 100644 +--- a/source/duke3d/src/common.cpp ++++ b/source/duke3d/src/common.cpp +@@ -318,6 +318,8 @@ void G_ExtInit(void) + "EDuke32 Settings" + #elif defined(GEKKO) + "apps/eduke32" ++#elif defined(__HAIKU__) ++ "config/settings/eduke32" + #else + ".eduke32" + #endif +-- +2.12.2