3000th COMMIT: ports: Add halflife port
This commit is contained in:
parent
935f69e011
commit
987cc3c237
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/bash ../install.sh
|
||||||
|
|
||||||
|
NAME='halflife'
|
||||||
|
VERSION='git'
|
||||||
|
DOWNLOAD_URL="https://github.com/FWGS/hlsdk-portable.git#343b09bc4de15ecf310ab97e759bfdef6e883bd8"
|
||||||
|
DEPENDENCIES=('xash3d-fwgs')
|
||||||
|
|
||||||
|
configure() {
|
||||||
|
./waf configure -T release || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
./waf build || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
install() {
|
||||||
|
./waf install --destdir=$BANAN_SYSROOT/home/user/halflife || exit 1
|
||||||
|
}
|
|
@ -0,0 +1,55 @@
|
||||||
|
From eb4fc64fb39e6c00350ac87a29dd8fc690b3be9f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oskari Alaranta <oskari.alaranta@bananymous.com>
|
||||||
|
Date: Thu, 31 Jul 2025 22:39:13 +0300
|
||||||
|
Subject: [PATCH] Add support for banan-os
|
||||||
|
|
||||||
|
---
|
||||||
|
public/build.h | 3 +++
|
||||||
|
scripts/waifulib/library_naming.py | 3 +++
|
||||||
|
2 files changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/public/build.h b/public/build.h
|
||||||
|
index 3fdfeded..2752f8bd 100644
|
||||||
|
--- a/public/build.h
|
||||||
|
+++ b/public/build.h
|
||||||
|
@@ -82,6 +82,7 @@ Then you can use another oneliner to query all variables:
|
||||||
|
#undef XASH_RISCV_SOFTFP
|
||||||
|
#undef XASH_SERENITY
|
||||||
|
#undef XASH_SUNOS
|
||||||
|
+#undef XASH_BANAN_OS
|
||||||
|
#undef XASH_TERMUX
|
||||||
|
#undef XASH_WIN32
|
||||||
|
#undef XASH_X86
|
||||||
|
@@ -135,6 +136,8 @@ Then you can use another oneliner to query all variables:
|
||||||
|
#define XASH_WASI 1
|
||||||
|
#elif defined __sun__
|
||||||
|
#define XASH_SUNOS 1
|
||||||
|
+ #elif defined __banan_os__
|
||||||
|
+ #define XASH_BANAN_OS 1
|
||||||
|
#elif defined __EMSCRIPTEN__
|
||||||
|
#define XASH_EMSCRIPTEN 1
|
||||||
|
#else
|
||||||
|
diff --git a/scripts/waifulib/library_naming.py b/scripts/waifulib/library_naming.py
|
||||||
|
index da39c90f..a0b65b59 100644
|
||||||
|
--- a/scripts/waifulib/library_naming.py
|
||||||
|
+++ b/scripts/waifulib/library_naming.py
|
||||||
|
@@ -64,6 +64,7 @@ DEFINES = [
|
||||||
|
'XASH_WASI',
|
||||||
|
'XASH_WASM',
|
||||||
|
'XASH_SUNOS',
|
||||||
|
+'XASH_BANAN_OS',
|
||||||
|
]
|
||||||
|
|
||||||
|
def configure(conf):
|
||||||
|
@@ -109,6 +110,8 @@ def configure(conf):
|
||||||
|
buildos = "wasi"
|
||||||
|
elif conf.env.XASH_SUNOS:
|
||||||
|
buildos = "sunos"
|
||||||
|
+ elif conf.env.XASH_BANAN_OS:
|
||||||
|
+ buildos = "banan-os"
|
||||||
|
else:
|
||||||
|
conf.fatal("Place your operating system name in build.h and library_naming.py!\n"
|
||||||
|
"If this is a mistake, try to fix conditions above and report a bug")
|
||||||
|
--
|
||||||
|
2.50.1
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
#!/bin/bash ../install.sh
|
||||||
|
|
||||||
|
NAME='xash3d-fwgs'
|
||||||
|
VERSION='git'
|
||||||
|
DOWNLOAD_URL="https://github.com/FWGS/xash3d-fwgs.git#da1b9ad80d76156a5cbd54d3ce87edb32634ea87"
|
||||||
|
DEPENDENCIES=('SDL2' 'freetype')
|
||||||
|
|
||||||
|
configure() {
|
||||||
|
git submodule update --init --recursive || exit 1
|
||||||
|
|
||||||
|
pushd 3rdparty/mainui || exit 1
|
||||||
|
for patch in ../../../patches/mainui/*; do
|
||||||
|
git apply $patch
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd 3rdparty/vorbis/vorbis-src || exit 1
|
||||||
|
for patch in ../../../../patches/vorbis/*; do
|
||||||
|
git apply $patch
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
|
||||||
|
./waf configure -T release --disable-gl || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
./waf build || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
install() {
|
||||||
|
./waf install --destdir=$BANAN_SYSROOT/home/user/halflife || exit 1
|
||||||
|
|
||||||
|
cat > $BANAN_SYSROOT/home/user/halflife/start.sh << EOF
|
||||||
|
#!/bin/Shell
|
||||||
|
export LD_LIBRARY_PATH=/home/user/halflife
|
||||||
|
./xash3d -console
|
||||||
|
EOF
|
||||||
|
chmod +x $BANAN_SYSROOT/home/user/halflife/start.sh
|
||||||
|
}
|
|
@ -0,0 +1,215 @@
|
||||||
|
From 2b3a0198640c23a7f8f8247ed1edae309c11e15f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oskari Alaranta <oskari.alaranta@bananymous.com>
|
||||||
|
Date: Thu, 31 Jul 2025 22:15:43 +0300
|
||||||
|
Subject: [PATCH 1/2] add support for banan-os
|
||||||
|
|
||||||
|
---
|
||||||
|
engine/common/net_http.c | 4 +++-
|
||||||
|
engine/common/net_ws.c | 17 +++++++++++++++++
|
||||||
|
engine/common/whereami.c | 16 ++++++++++++++++
|
||||||
|
engine/platform/posix/lib_posix.c | 2 ++
|
||||||
|
public/build.c | 2 ++
|
||||||
|
public/build.h | 3 +++
|
||||||
|
public/buildenums.h | 3 +++
|
||||||
|
7 files changed, 46 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/engine/common/net_http.c b/engine/common/net_http.c
|
||||||
|
index ff6fd41b..ebb5bbad 100644
|
||||||
|
--- a/engine/common/net_http.c
|
||||||
|
+++ b/engine/common/net_http.c
|
||||||
|
@@ -261,14 +261,16 @@ static int HTTP_FileCreateSocket( httpfile_t *file )
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if !XASH_BANAN_OS
|
||||||
|
if( ioctlsocket( file->socket, FIONBIO, (void *)&mode ) < 0 )
|
||||||
|
{
|
||||||
|
Con_Printf( S_ERROR "%s: ioctl() returned %s\n", __func__, NET_ErrorString());
|
||||||
|
HTTP_FreeFile( file, true );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
-#if XASH_LINUX
|
||||||
|
+#if XASH_LINUX || XASH_BANAN_OS
|
||||||
|
|
||||||
|
res = fcntl( file->socket, F_GETFL, 0 );
|
||||||
|
|
||||||
|
diff --git a/engine/common/net_ws.c b/engine/common/net_ws.c
|
||||||
|
index 7ee4cba0..e93a2410 100644
|
||||||
|
--- a/engine/common/net_ws.c
|
||||||
|
+++ b/engine/common/net_ws.c
|
||||||
|
@@ -1364,7 +1364,12 @@ static qboolean NET_QueuePacket( netsrc_t sock, netadr_t *from, byte *data, size
|
||||||
|
byte buf[NET_MAX_FRAGMENT];
|
||||||
|
int ret, protocol;
|
||||||
|
int net_socket;
|
||||||
|
+#ifdef XASH_BANAN_OS
|
||||||
|
+ socklen_t addr_len;
|
||||||
|
+#else
|
||||||
|
WSAsize_t addr_len;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
struct sockaddr_storage addr = { 0 };
|
||||||
|
|
||||||
|
*length = 0;
|
||||||
|
@@ -1617,7 +1622,11 @@ static int NET_IPSocket( const char *net_iface, int port, int family )
|
||||||
|
if( family == AF_INET6 )
|
||||||
|
pfamily = PF_INET6;
|
||||||
|
|
||||||
|
+#ifdef SOCK_NONBLOCK
|
||||||
|
+ if( NET_IsSocketError(( net_socket = socket( pfamily, SOCK_DGRAM | SOCK_NONBLOCK, IPPROTO_UDP ))))
|
||||||
|
+#else
|
||||||
|
if( NET_IsSocketError(( net_socket = socket( pfamily, SOCK_DGRAM, IPPROTO_UDP ))))
|
||||||
|
+#endif
|
||||||
|
{
|
||||||
|
err = WSAGetLastError();
|
||||||
|
if( err != WSAEAFNOSUPPORT )
|
||||||
|
@@ -1625,6 +1634,7 @@ static int NET_IPSocket( const char *net_iface, int port, int family )
|
||||||
|
return INVALID_SOCKET;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifndef SOCK_NONBLOCK
|
||||||
|
if( NET_IsSocketError( ioctlsocket( net_socket, FIONBIO, (void*)&_true )))
|
||||||
|
{
|
||||||
|
struct timeval timeout;
|
||||||
|
@@ -1634,6 +1644,7 @@ static int NET_IPSocket( const char *net_iface, int port, int family )
|
||||||
|
timeout.tv_sec = timeout.tv_usec = 0;
|
||||||
|
setsockopt( net_socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout));
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// make it broadcast capable
|
||||||
|
if( NET_IsSocketError( setsockopt( net_socket, SOL_SOCKET, SO_BROADCAST, (char *)&_true, sizeof( _true ))))
|
||||||
|
@@ -1686,6 +1697,7 @@ static int NET_IPSocket( const char *net_iface, int port, int family )
|
||||||
|
optval = 0x10; // IPTOS_LOWDELAY
|
||||||
|
Con_Printf( "Enabling LOWDELAY TOS option\n" );
|
||||||
|
|
||||||
|
+#ifdef IP_TOS
|
||||||
|
if( NET_IsSocketError( setsockopt( net_socket, IPPROTO_IP, IP_TOS, (const char *)&optval, sizeof( optval ))))
|
||||||
|
{
|
||||||
|
err = WSAGetLastError();
|
||||||
|
@@ -1694,6 +1706,7 @@ static int NET_IPSocket( const char *net_iface, int port, int family )
|
||||||
|
closesocket( net_socket );
|
||||||
|
return INVALID_SOCKET;
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
if( Sys_CheckParm( "-loopback" ))
|
||||||
|
@@ -1801,7 +1814,11 @@ static void NET_DetermineLocalAddress( void )
|
||||||
|
char hostname[512];
|
||||||
|
char buff[512];
|
||||||
|
struct sockaddr_storage address;
|
||||||
|
+#ifdef XASH_BANAN_OS
|
||||||
|
+ socklen_t namelen;
|
||||||
|
+#else
|
||||||
|
WSAsize_t namelen;
|
||||||
|
+#endif
|
||||||
|
const char *net_addr_string;
|
||||||
|
|
||||||
|
memset( &net_local, 0, sizeof( netadr_t ));
|
||||||
|
diff --git a/engine/common/whereami.c b/engine/common/whereami.c
|
||||||
|
index 31726774..5b7ff504 100644
|
||||||
|
--- a/engine/common/whereami.c
|
||||||
|
+++ b/engine/common/whereami.c
|
||||||
|
@@ -851,6 +851,22 @@ int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#elif defined(__banan_os__)
|
||||||
|
+
|
||||||
|
+/* Not possible on this platform */
|
||||||
|
+
|
||||||
|
+WAI_FUNCSPEC
|
||||||
|
+int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+WAI_FUNCSPEC
|
||||||
|
+int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length)
|
||||||
|
+{
|
||||||
|
+ return -1;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#else
|
||||||
|
|
||||||
|
#error unsupported platform
|
||||||
|
diff --git a/engine/platform/posix/lib_posix.c b/engine/platform/posix/lib_posix.c
|
||||||
|
index 23d1c3b1..a5a84fe1 100644
|
||||||
|
--- a/engine/platform/posix/lib_posix.c
|
||||||
|
+++ b/engine/platform/posix/lib_posix.c
|
||||||
|
@@ -208,6 +208,7 @@ const char *COM_NameForFunction( void *hInstance, void *function )
|
||||||
|
return Loader_GetFuncName_int(wm, function);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
+#ifndef XASH_BANAN_OS
|
||||||
|
// NOTE: dladdr() is a glibc extension
|
||||||
|
{
|
||||||
|
Dl_info info = {0};
|
||||||
|
@@ -215,6 +216,7 @@ const char *COM_NameForFunction( void *hInstance, void *function )
|
||||||
|
if( ret && info.dli_sname )
|
||||||
|
return COM_GetPlatformNeutralName( info.dli_sname );
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
#ifdef XASH_ALLOW_SAVERESTORE_OFFSETS
|
||||||
|
return COM_OffsetNameForFunction( function );
|
||||||
|
#else
|
||||||
|
diff --git a/public/build.c b/public/build.c
|
||||||
|
index 6c85bbaf..460b4040 100644
|
||||||
|
--- a/public/build.c
|
||||||
|
+++ b/public/build.c
|
||||||
|
@@ -151,6 +151,8 @@ const char *Q_PlatformStringByID( const int platform )
|
||||||
|
return "wasi";
|
||||||
|
case PLATFORM_SUNOS:
|
||||||
|
return "sunos";
|
||||||
|
+ case PLATFORM_BANAN_OS:
|
||||||
|
+ return "banan-os";
|
||||||
|
}
|
||||||
|
|
||||||
|
assert( 0 );
|
||||||
|
diff --git a/public/build.h b/public/build.h
|
||||||
|
index 3fdfeded..2752f8bd 100644
|
||||||
|
--- a/public/build.h
|
||||||
|
+++ b/public/build.h
|
||||||
|
@@ -82,6 +82,7 @@ Then you can use another oneliner to query all variables:
|
||||||
|
#undef XASH_RISCV_SOFTFP
|
||||||
|
#undef XASH_SERENITY
|
||||||
|
#undef XASH_SUNOS
|
||||||
|
+#undef XASH_BANAN_OS
|
||||||
|
#undef XASH_TERMUX
|
||||||
|
#undef XASH_WIN32
|
||||||
|
#undef XASH_X86
|
||||||
|
@@ -135,6 +136,8 @@ Then you can use another oneliner to query all variables:
|
||||||
|
#define XASH_WASI 1
|
||||||
|
#elif defined __sun__
|
||||||
|
#define XASH_SUNOS 1
|
||||||
|
+ #elif defined __banan_os__
|
||||||
|
+ #define XASH_BANAN_OS 1
|
||||||
|
#elif defined __EMSCRIPTEN__
|
||||||
|
#define XASH_EMSCRIPTEN 1
|
||||||
|
#else
|
||||||
|
diff --git a/public/buildenums.h b/public/buildenums.h
|
||||||
|
index 4dc327d3..57585f73 100644
|
||||||
|
--- a/public/buildenums.h
|
||||||
|
+++ b/public/buildenums.h
|
||||||
|
@@ -43,6 +43,7 @@ GNU General Public License for more details.
|
||||||
|
#define PLATFORM_PSVITA 14
|
||||||
|
#define PLATFORM_WASI 15
|
||||||
|
#define PLATFORM_SUNOS 16
|
||||||
|
+#define PLATFORM_BANAN_OS 17
|
||||||
|
|
||||||
|
#if XASH_WIN32
|
||||||
|
#define XASH_PLATFORM PLATFORM_WIN32
|
||||||
|
@@ -76,6 +77,8 @@ GNU General Public License for more details.
|
||||||
|
#define XASH_PLATFORM PLATFORM_WASI
|
||||||
|
#elif XASH_SUNOS
|
||||||
|
#define XASH_PLATFORM PLATFORM_SUNOS
|
||||||
|
+#elif XASH_BANAN_OS
|
||||||
|
+ #define XASH_PLATFORM PLATFORM_BANAN_OS
|
||||||
|
#else
|
||||||
|
#error
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.50.1
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
From b8c6ea53b4a8119f299fb6b5e4684c30795037a7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oskari Alaranta <oskari.alaranta@bananymous.com>
|
||||||
|
Date: Thu, 31 Jul 2025 22:36:28 +0300
|
||||||
|
Subject: [PATCH] Don't export have libbacktrace
|
||||||
|
|
||||||
|
This doesnt work :)
|
||||||
|
---
|
||||||
|
3rdparty/libbacktrace/wscript | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/3rdparty/libbacktrace/wscript b/3rdparty/libbacktrace/wscript
|
||||||
|
index 2e076a56..98aca8d5 100644
|
||||||
|
--- a/3rdparty/libbacktrace/wscript
|
||||||
|
+++ b/3rdparty/libbacktrace/wscript
|
||||||
|
@@ -180,7 +180,6 @@ def build(bld):
|
||||||
|
features = 'frandomseed' if bld.env.HAVE_FRANDOM_SEED else '',
|
||||||
|
use = 'EXTRAFLAGS lzma z zstd',
|
||||||
|
includes = '. libbacktrace/',
|
||||||
|
- export_defines = 'HAVE_LIBBACKTRACE=1',
|
||||||
|
export_includes = 'libbacktrace/'
|
||||||
|
)
|
||||||
|
|
||||||
|
--
|
||||||
|
2.50.1
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
From 72d30e589450d1a928924f93adfaadff7618ba59 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oskari Alaranta <oskari.alaranta@bananymous.com>
|
||||||
|
Date: Thu, 31 Jul 2025 22:16:51 +0300
|
||||||
|
Subject: [PATCH] add support for banan-os
|
||||||
|
|
||||||
|
---
|
||||||
|
sdk_includes/public/build.h | 3 +++
|
||||||
|
sdk_includes/public/buildenums.h | 3 +++
|
||||||
|
2 files changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/sdk_includes/public/build.h b/sdk_includes/public/build.h
|
||||||
|
index 24fd9d5..52b6088 100644
|
||||||
|
--- a/sdk_includes/public/build.h
|
||||||
|
+++ b/sdk_includes/public/build.h
|
||||||
|
@@ -82,6 +82,7 @@ Then you can use another oneliner to query all variables:
|
||||||
|
#undef XASH_RISCV_SOFTFP
|
||||||
|
#undef XASH_SERENITY
|
||||||
|
#undef XASH_SUNOS
|
||||||
|
+#undef XASH_BANAN_OS
|
||||||
|
#undef XASH_WIN32
|
||||||
|
#undef XASH_X86
|
||||||
|
#undef XASH_NSWITCH
|
||||||
|
@@ -133,6 +134,8 @@ Then you can use another oneliner to query all variables:
|
||||||
|
#define XASH_WASI 1
|
||||||
|
#elif defined __sun__
|
||||||
|
#define XASH_SUNOS 1
|
||||||
|
+ #elif defined __banan_os__
|
||||||
|
+ #define XASH_BANAN_OS 1
|
||||||
|
#else
|
||||||
|
#error
|
||||||
|
#endif
|
||||||
|
diff --git a/sdk_includes/public/buildenums.h b/sdk_includes/public/buildenums.h
|
||||||
|
index 4dc327d..57585f7 100644
|
||||||
|
--- a/sdk_includes/public/buildenums.h
|
||||||
|
+++ b/sdk_includes/public/buildenums.h
|
||||||
|
@@ -43,6 +43,7 @@ GNU General Public License for more details.
|
||||||
|
#define PLATFORM_PSVITA 14
|
||||||
|
#define PLATFORM_WASI 15
|
||||||
|
#define PLATFORM_SUNOS 16
|
||||||
|
+#define PLATFORM_BANAN_OS 17
|
||||||
|
|
||||||
|
#if XASH_WIN32
|
||||||
|
#define XASH_PLATFORM PLATFORM_WIN32
|
||||||
|
@@ -76,6 +77,8 @@ GNU General Public License for more details.
|
||||||
|
#define XASH_PLATFORM PLATFORM_WASI
|
||||||
|
#elif XASH_SUNOS
|
||||||
|
#define XASH_PLATFORM PLATFORM_SUNOS
|
||||||
|
+#elif XASH_BANAN_OS
|
||||||
|
+ #define XASH_PLATFORM PLATFORM_BANAN_OS
|
||||||
|
#else
|
||||||
|
#error
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.50.1
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
From 1e1fb9caff45f0cb05e89bfe452a7ff2abb558ff Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oskari Alaranta <oskari.alaranta@bananymous.com>
|
||||||
|
Date: Thu, 31 Jul 2025 22:17:48 +0300
|
||||||
|
Subject: [PATCH] include alloca on banan-os
|
||||||
|
|
||||||
|
This detection does not work :(
|
||||||
|
---
|
||||||
|
lib/os.h | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/lib/os.h b/lib/os.h
|
||||||
|
index 9ded7358..66b56704 100644
|
||||||
|
--- a/lib/os.h
|
||||||
|
+++ b/lib/os.h
|
||||||
|
@@ -62,7 +62,7 @@ void *_alloca(size_t size);
|
||||||
|
|
||||||
|
#endif /* _V_IFDEFJAIL_H_ */
|
||||||
|
|
||||||
|
-#ifdef HAVE_ALLOCA_H
|
||||||
|
+#if defined(HAVE_ALLOCA_H) || defined(__banan_os__)
|
||||||
|
# include <alloca.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
--
|
||||||
|
2.50.1
|
||||||
|
|
Loading…
Reference in New Issue