From eae0ce36232fda2ed8c8656bec6930a21006e89e Mon Sep 17 00:00:00 2001 From: Sergei Reznikov Date: Fri, 12 Oct 2018 13:22:27 +0300 Subject: [PATCH] yamagi_quake2: add new recipe for version 7.30 --- .../additional-files/yamagi_quake2.rdef.in | 63 +++++++++++ .../patches/yamagi_quake2-7.30.patchset | 88 +++++++++++++++ .../yamagi-quake2/yamagi_quake2-7.30.recipe | 104 ++++++++++++++++++ 3 files changed, 255 insertions(+) create mode 100644 games-fps/yamagi-quake2/additional-files/yamagi_quake2.rdef.in create mode 100644 games-fps/yamagi-quake2/patches/yamagi_quake2-7.30.patchset create mode 100644 games-fps/yamagi-quake2/yamagi_quake2-7.30.recipe diff --git a/games-fps/yamagi-quake2/additional-files/yamagi_quake2.rdef.in b/games-fps/yamagi-quake2/additional-files/yamagi_quake2.rdef.in new file mode 100644 index 000000000..96ccd74fc --- /dev/null +++ b/games-fps/yamagi-quake2/additional-files/yamagi_quake2.rdef.in @@ -0,0 +1,63 @@ + +resource app_flags B_MULTIPLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "Yamagi Quake II", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource vector_icon { + $"6E63696601050002006DC377B377C377B377C38DB376C3BBB375C3A4B376C4C0" + $"B408C685B594C5C8B4A6C722B643C801B7E1C7A5B709C836B85AC87BB95AC877" + $"B8D3C879B9A1C8B1BA21C89DB9DFC8C8BA60C8C6BAE7C8C1BAA5C8D9BB0FC8E3" + $"BB65C8E0BB3AC8D7BB88C8C2BBCEC8CCBBABC8D8BBFFC8E6BC68C8E2BC33C8BC" + $"BC9CC870BD0AC896BCD3C885BD1EC8B0BD48C89ABD33C85FBE70C73242C7E5BF" + $"91C6DFC10EC60BC1ECC662C16DC5F7C1EEC5BBC1F3C5CFC1F1C5B5C1C7C5A8C1" + $"6FC5AFC19BC59EC19FC589C1FDC595C1CEC584C22AC563C280C593C265C4E2C2" + $"DFC3C7C378C455C32FC316C3C7C1A5C43BC25EC406C1C7C4DCC1AAC622C19FC5" + $"7FC1B1C714C156C8EDC16FC7FEC12AC9ADC106CB36C117CA72C101CB79C0D2CB" + $"F7C0EDCBBAC0C8CBE0C0ACCB9CC0B6CBB3C060CA47C017C792C064C8E6C00DC7" + $"31BFF5C671BFFEC6D2BFECC629C014C5A4C03DC5EABFEBC53EBFF8C464BFF8C4" + $"CFBFC2C463BF57C462BF8CC462BF4BC4DBBF44C5CDBF61C556BF38C5FBBF4BC6" + $"57BF43C62ABF48C6BCBF39C787BF4DC723BF1FC806BEF3C905BEF8C883BEECC9" + $"85BEC05BBEC6CA01BEBBCB07BE80CC0ABEADCB8DBE54CBC9BE47CB2DBE51CB79" + $"BE39CAC1BE11C9ECBE17CA59BE08C930BDD0C7BCBDDDC877BDB3C732BDA3C618" + $"BD9DC6A6BDB2C617BDDFC614BDD0C615BDC8C5F4BDA7C5A9BDA7C5D5BD90C529" + $"BD96C427BD9BC4A7BD3CC40FBC8AC3D9BCE0C3FDBC7DC3B4BC6FC369BC77C38E" + $"BC2CC36CBBA7C37DBBEAC382BB0AC338B9F0C276BA86C2C9B9D5C23DB99AC1CB" + $"B9BAC203B9A4C1ADB9B7C171B9AEC18FB99DC190B959C1C0B98BC1C4B8E0C17E" + $"B836C0A2B88CC10BB7E4C03AB766BF4DB789BFD1B761BF20B7B2BEF7B79ABF13" + $"B766BF01B6F9BE98B717BEE4B681BD88B669BB36B69ABC56B671BB2CB689BB0F" + $"B681BB19B66BBA0BB724B828B6E8B91DB72DB81DB749B7FBB740B806B757B7C2" + $"B78CB759B767B789B7B8B71CB800B698B7CCB6CFB852B63EB8D8B574B889B5D0" + $"B8E6B570B911B565B903B569B915B557B921B52CB91DB53BB975B4E5BA2BB467" + $"B9C4B494BAB0B3F2BC0AB38DBB50B381BBFCB3E8BB59B42CBB9EB405BA1CB4CF" + $"B889B726B918B5DFB85DB78DB80CB861B82BB7F4B7DCB8CFB7C9B9BEB7E4B94A" + $"B7ABBA2B2CBB09B7D7BA9AB7CCBB59B7B4BBF6B7DDBBACB7A2BBF9B76CBC02B7" + $"7EBBFFB79DBC12B800BC31B7CFBC21B801BC55B803BC9CB802BC79B86CBD69B9" + $"41BF02B8B7BE47B96FBF38B9D0BFA0B9A1BF6ABA04BFE4BA94C040BA56C006BA" + $"C9C072BB3BC0CBBB01C0A0BB54C0FBBB90C156BB70C12ABBC7C11FBC48C15EBC" + $"0CC14EBC7CC17DBCEDC1ABBCB4C196BCFAC1D5BD16C228BD08C1FFBD46C211BD" + $"A5C1E4BD75C1FABDA5C1C8BDA4C190BDA4C1ACBDAFC184BDD2C160BDC7C16CBD" + $"C7C154BDA6C131BDB1C13DBDAEC062BD71BEC9BDAABF92BD26BEB0BC8CBE88BC" + $"D9BE9CBC8EBE68BC94BE29BC91BE48BD7CBE47BF54BE2EBE6BBE57BFEABE1CC1" + $"16BE40C07FBE4AC1AFBE41C2E4BE49C251BE07C2AEBEB5C1D7BEDAC217BE78C1" + $"81BF5FC192C099C1C4C008C1A8C103C1A6C1DCC1A8C170C2B8C1B0C486C076C3" + $"AAC119C503C00FC5DEBF1EC582BFA5C61BBEE9C670BE62C651BEADC67EBE5EC6" + $"AABE53C69BBE57C6CDBDBBC746BC9CC717BD30C76ABBF5C799BAA2C797BB4E54" + $"BA8EC7F6BA65C7D7BA79C7E0BA64C79DBA63C7B3BA63C78CBA02C77EB940C783" + $"B9A1C776B89EC716B76CC727B80CC6C3B720C661B65AC6A9B6AEC603B5DCC52D" + $"B4F5C5ABB556C496B47FC34FB3B5C404B3FBC359B3A5C377B377C36DB386C377" + $"B3770207BF91BEDDBFA7BEDDBF7BBF23BF58BFB2BF60BF68BF4AC016BF53C0DF" + $"BF5EC07BBF47C13FBF3EC201BF43C1A0BF82C202C008C204BFC5C203C00644C0" + $"07BFFFC003C0ABC00CBF9CBFD3BEDCBFEFBF3BBFBDBEDC010A0002000100" +}; diff --git a/games-fps/yamagi-quake2/patches/yamagi_quake2-7.30.patchset b/games-fps/yamagi-quake2/patches/yamagi_quake2-7.30.patchset new file mode 100644 index 000000000..6e3fc57de --- /dev/null +++ b/games-fps/yamagi-quake2/patches/yamagi_quake2-7.30.patchset @@ -0,0 +1,88 @@ +From 50932c734a5d0489bb3d8bc49095e9f4f34ac51f Mon Sep 17 00:00:00 2001 +From: Sergei Reznikov +Date: Tue, 9 Oct 2018 16:48:35 +0300 +Subject: Add Haiku support + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f38d575..7541fe0 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -132,6 +132,8 @@ endif() + # General linker flags. + if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") + list(APPEND yquake2LinkerFlags "-lm -static-libgcc") ++elseif(${CMAKE_SYSTEM_NAME} MATCHES "Haiku") ++ list(APPEND yquake2LinkerFlags "-lnetwork") + else() + list(APPEND yquake2LinkerFlags "-lm -rdynamic") + endif() +diff --git a/src/backends/unix/main.c b/src/backends/unix/main.c +index 1201e1f..7ee797a 100644 +--- a/src/backends/unix/main.c ++++ b/src/backends/unix/main.c +@@ -85,6 +85,8 @@ main(int argc, char **argv) + } + } + ++#ifndef __HAIKU__ ++ + /* Prevent running Quake II as root. Only very mad + minded or stupid people even think about it. :) */ + if (getuid() == 0) +@@ -106,12 +108,13 @@ main(int argc, char **argv) + + return 1; + } ++#endif + + // enforce C locale + setenv("LC_ALL", "C", 1); + + /// Do not delay reads on stdin +- fcntl(fileno(stdin), F_SETFL, fcntl(fileno(stdin), F_GETFL, NULL) | FNDELAY); ++ fcntl(fileno(stdin), F_SETFL, fcntl(fileno(stdin), F_GETFL, NULL) | O_NDELAY); + + // Initialize the game. + // Never returns. +diff --git a/src/backends/unix/system.c b/src/backends/unix/system.c +index 0554598..7769a42 100644 +--- a/src/backends/unix/system.c ++++ b/src/backends/unix/system.c +@@ -62,7 +62,7 @@ Sys_Error(char *error, ...) + char string[1024]; + + /* change stdin to non blocking */ +- fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) & ~FNDELAY); ++ fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) & ~O_NDELAY); + + #ifndef DEDICATED_ONLY + CL_Shutdown(); +@@ -91,7 +91,7 @@ Sys_Quit(void) + } + + Qcommon_Shutdown(); +- fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) & ~FNDELAY); ++ fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) & ~O_NDELAY); + + printf("------------------------------------\n"); + +diff --git a/src/client/input/sdl.c b/src/client/input/sdl.c +index a2e6f18..9397d97 100644 +--- a/src/client/input/sdl.c ++++ b/src/client/input/sdl.c +@@ -1239,9 +1239,9 @@ IN_Init(void) + SDL_StartTextInput(); + + /* Joystick init */ +- if (!SDL_WasInit(SDL_INIT_GAMECONTROLLER | SDL_INIT_HAPTIC)) ++ if (!SDL_WasInit(SDL_INIT_GAMECONTROLLER)) + { +- if (SDL_Init(SDL_INIT_GAMECONTROLLER | SDL_INIT_HAPTIC) == -1) ++ if (SDL_Init(SDL_INIT_GAMECONTROLLER) == -1) + { + Com_Printf ("Couldn't init SDL joystick: %s.\n", SDL_GetError ()); + } +-- +2.19.1 + diff --git a/games-fps/yamagi-quake2/yamagi_quake2-7.30.recipe b/games-fps/yamagi-quake2/yamagi_quake2-7.30.recipe new file mode 100644 index 000000000..a05380d8a --- /dev/null +++ b/games-fps/yamagi-quake2/yamagi_quake2-7.30.recipe @@ -0,0 +1,104 @@ +SUMMARY="An alternative client for id Softwares Quake II" +DESCRIPTION="Yamagi Quake II is an alternative client for id Softwares Quake \ +II. Our goal is to provide the best Quake II experience possible, we strive \ +to preserve the gameplay as it was back in 1997. Thus we aim mostly for bug \ +fixes, stability and gentle enhancements were appropriate. + +Features +Yamagi Quake II has a lot of unique features. The most notables ones are: + +* A modern OpenGL 3.2 renderer, providing a greatly enhanced look and feel. \ +The original OpenGL 1.4 and even the Software renderers are still supported. \ +Both 3D accelerated renderers support anisotropic filtering and multisampling \ +anti aliasing. +* Full support for widescreen displays and arbitrary resolutions. \ +The HUD can be scaled to be readable on high resolutions. +* Support for surround sound, from stereo up to 7.1 channels and even HRTF. \ +The background music can be played from OGG/Vorbis files, a CD drive is no \ +longer necessary. +* A rewritten savegame system. Yamagi Quake II savegames are completely \ +reliable and backward compatible between releases. +* Highly precise timings. For example, on a flat panel display with a 59.95 \ +hertz refresh rate and vertical synchronisation (VSync) enabled Yamagi Quake \ +II is running at exactly 59.95 frames per second. +* In comparison with the original client over 1.500 bugs were fixed. The \ +Yamagi Quake II client is very well tested and stable. The dedicated server \ +is able to run for weeks without a single restart. Last but not least the \ +code is fully 64 bit clean and highly portable." +HOMEPAGE="https://www.yamagi.org/quake2/" +COPYRIGHT="OpenArena Team" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="https://deponie.yamagi.org/quake2/quake2-$portVersion.tar.xz" +CHECKSUM_SHA256="f27b6d110c25feee18bbe9b414a143b52848327141b22349d7c4ef1fa46a7bbf" +SOURCE_DIR="quake2-$portVersion" +PATCHES="yamagi_quake2-$portVersion.patchset" +ADDITIONAL_FILES="yamagi_quake2.rdef.in" + +ARCHITECTURES="!x86_gcc2 x86_64" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + yamagi_quake2$secondaryArchSuffix = $portVersion + app:Quake2 + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libglu$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libopenal$secondaryArchSuffix + lib:libSDL2_2.0$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libcurl$secondaryArchSuffix + devel:libGL$secondaryArchSuffix + devel:libglu$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libopenal$secondaryArchSuffix + devel:libSDL2_2.0$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + " + +BUILD() +{ + mkdir -p build + cd build + cmake -DSDL2_INCLUDE_DIR=/system/$relativeIncludeDir .. + make $jobArgs +} + +INSTALL() +{ + cd build/release + mkdir -p $appsDir/Quake2 + cp quake2 $appsDir/Quake2/Quake2 + cp q2ded $appsDir/Quake2/Quake2_dedicated + cp *.so $appsDir/Quake2/ + + local APP_SIGNATURE="application/x-vnd.yamagi_quake2" + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" +# local MINOR="`echo "$portVersion" | cut -d. -f3`" + local MINOR="0" + local LONG_INFO="$SUMMARY" + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/yamagi_quake2.rdef.in > yamagi_quake2.rdef + + addResourcesToBinaries yamagi_quake2.rdef $appsDir/Quake2/Quake2 + addAppDeskbarSymlink $appsDir/Quake2/Quake2 +}