Update to v0.7.5

Build on top of a previous update sent by Jérôme (Neon King)
which was build of an update sent by Donovan.

Port changes:
- switched to GH_*
- moved to cmake and dropped BAM
- dropped unnecessary patches (all of them)
- avoid git from running (new patch)
- the strict-alignment crash is resolved
- replaced SDL with SDL2
- update to python3

I'm taking maintainer. The maps distfile is hosted by solene@.

With help from: Donovan Watteau (previous maintainer), Jérôme, sthen@,
solene@, and Daniel Dickman

Some crashes and graphic issues have been reported. We decided to import
it anyway because the old version is incompatible with current servers.

OK from thfr@ and solene@
This commit is contained in:
sdk 2021-10-19 07:22:08 +00:00
parent 30011948c2
commit 7e42e6fcbf
19 changed files with 374 additions and 484 deletions

View File

@ -1,76 +1,51 @@
# $OpenBSD: Makefile,v 1.28 2021/02/23 19:39:23 sthen Exp $
# Crashes on strict-alignment archs, see: src/base/system.c:164
ONLY_FOR_ARCHS= amd64 i386 powerpc
# $OpenBSD: Makefile,v 1.29 2021/10/19 07:22:08 sdk Exp $
COMMENT= platform game featuring buggers equipped with weapons
V= 0.6.4
DISTNAME= teeworlds-${V}-src
V= 0.7.5
PKGNAME= teeworlds-${V}
DISTNAME= ${PKGNAME}-src
CATEGORIES= games
REVISION= 3
HOMEPAGE= https://www.teeworlds.com/
HOMEPAGE= https://www.teeworlds.com
BAM_VERSION= 0.4.0
BAM_WRKSRC= ${WRKSRC}/bam-${BAM_VERSION}
MAINTAINER= Stefan Hagen <sh+ports@codevoid.de>
MASTER_SITES= https://downloads.teeworlds.com/
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} bam-${BAM_VERSION}${EXTRACT_SUFX}
MASTER_SITES= https://github.com/teeworlds/teeworlds/releases/download/${V}/
# maps repo without tags/releases on https://github.com/teeworlds/teeworlds-maps
# therefore hosted as archive on perso.pw
MASTER_SITES0= http://distfiles-openbsd.perso.pw/
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
teeworlds-${V}-data.tar.gz{teeworlds-data.tar.gz}:0
# BSD-like
PERMIT_PACKAGE= Yes
WANTLIB= GL GLU SDL X11 c freetype m pthread ${COMPILER_LIBCXX} wavpack z
WANTLIB= GL SDL2 X11 c crypto freetype m pthread ${COMPILER_LIBCXX}
WANTLIB+= wavpack z
COMPILER = base-clang ports-gcc
LIB_DEPENDS= audio/wavpack \
devel/sdl
devel/sdl2
MODULES= lang/python
MODPY_VERSION = ${MODPY_DEFAULT_VERSION_2}
MODULES= devel/cmake lang/python
MODPY_RUNDEP= No
SUBST_VARS= CC CXX CFLAGS CXXFLAGS X11BASE
CONFIGURE_STYLE= cmake
CONFIGURE_ARGS= -DPYTHON_EXECUTABLE="${MODPY_BIN}"
NO_TEST= Yes
# Give it a chance on ppc
CXXFLAGS+= -fsigned-char
post-extract:
@mv ${WRKDIR}/bam-${BAM_VERSION} ${BAM_WRKSRC}
pre-configure:
@${SUBST_CMD} ${WRKSRC}/src/engine/shared/storage.cpp \
${WRKSRC}/src/game/client/gameclient.cpp \
${WRKSRC}/scripts/build.py \
${WRKSRC}/scripts/compiler.py \
${WRKSRC}/scripts/font_installer.sh \
${WRKSRC}/scripts/make_src.py \
${WRKSRC}/bam.lua \
${WRKSRC}/configure.lua \
${BAM_WRKSRC}/make_unix.sh \
${BAM_WRKSRC}/src/driver_gcc.lua \
${BAM_WRKSRC}/src/base.lua
# Make sure internal wavpack and zlib can't be picked up
rm -rf ${WRKSRC}/src/engine/external/{wavpack,zlib}
# Don't provide an extra copy of DejaVu
rm -rf ${WRKSRC}/data/fonts
# build bam executable - teeworlds own build system
pre-build:
cd ${BAM_WRKSRC} && /bin/sh -v make_unix.sh
do-build:
cd ${WRKSRC} && CC=${CC} ${BAM_WRKSRC}/bam -a -v release wavpack=${LOCALBASE}
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/teeworlds ${PREFIX}/bin
${INSTALL_PROGRAM} ${WRKSRC}/teeworlds_srv ${PREFIX}/bin
${INSTALL_DATA_DIR} ${PREFIX}/share/teeworlds
cd ${WRKSRC}; tar cf - data | tar xf - -C ${PREFIX}/share/teeworlds
post-install:
${INSTALL_DATA_DIR} ${WRKDIST}/datasrc/maps
${INSTALL_DATA_DIR} ${WRKDIST}/datasrc/maps
${INSTALL_DATA} ${WRKDIR}/maps/* ${WRKDIST}/datasrc/maps/
${INSTALL_DATA} ${WRKDIR}/languages/* ${WRKDIST}/datasrc/languages/
.include <bsd.port.mk>

View File

@ -1,4 +1,4 @@
SHA256 (bam-0.4.0.tar.gz) = Xk5JILTSZdpYL2Z3TpseyN37513cAo+6hsEvaG6hjbM=
SHA256 (teeworlds-0.6.4-src.tar.gz) = wmHRnrsAtUUfqizrSnypRcrSrdSLBgRutDtAzMn9mOI=
SIZE (bam-0.4.0.tar.gz) = 206780
SIZE (teeworlds-0.6.4-src.tar.gz) = 8771622
SHA256 (teeworlds-0.7.5-data.tar.gz) = My+UViTDKr75PkYu8/IfHWJGpPqF0ynJN49vEG4h6iI=
SHA256 (teeworlds-0.7.5-src.tar.gz) = /N4iIzmOAnQ07JYxUQPphh/EWBYbSbFZCNxWuOeo7Nk=
SIZE (teeworlds-0.7.5-data.tar.gz) = 304464
SIZE (teeworlds-0.7.5-src.tar.gz) = 8935505

View File

@ -0,0 +1,86 @@
$OpenBSD: patch-CMakeLists_txt,v 1.1 2021/10/19 07:22:09 sdk Exp $
- fstack-clash-protection is unused
- don't execute git
Index: CMakeLists.txt
--- CMakeLists.txt.orig
+++ CMakeLists.txt
@@ -155,7 +155,7 @@ if(NOT MSVC)
add_c_compiler_flag_if_supported(OUR_FLAGS -fstack-protector-strong)
# Protect the stack from clashing.
- add_c_compiler_flag_if_supported(OUR_FLAGS -fstack-clash-protection)
+ # add_c_compiler_flag_if_supported(OUR_FLAGS -fstack-clash-protection)
# Control-flow protection. Should protect against ROP.
add_c_compiler_flag_if_supported(OUR_FLAGS -fcf-protection)
@@ -1222,29 +1222,29 @@ function(generate_source output_file script_parameter)
endfunction()
file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/src/generated/")
-if(GIT_FOUND)
- execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --git-dir
- ERROR_QUIET
- OUTPUT_VARIABLE PROJECT_GIT_DIR
- OUTPUT_STRIP_TRAILING_WHITESPACE
- RESULT_VARIABLE PROJECT_GIT_DIR_ERROR
- )
- if(NOT PROJECT_GIT_DIR_ERROR)
- set(GIT_REVISION_EXTRA_DEPS
- ${PROJECT_GIT_DIR}/index
- ${PROJECT_GIT_DIR}/logs/HEAD
- )
- endif()
-endif()
-add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/src/generated/git_revision.cpp
- COMMAND ${PYTHON_EXECUTABLE}
- scripts/git_revision.py
- > ${PROJECT_BINARY_DIR}/src/generated/git_revision.cpp
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- DEPENDS
- ${GIT_REVISION_EXTRA_DEPS}
- scripts/git_revision.py
-)
+#if(GIT_FOUND)
+# execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --git-dir
+# ERROR_QUIET
+# OUTPUT_VARIABLE PROJECT_GIT_DIR
+# OUTPUT_STRIP_TRAILING_WHITESPACE
+# RESULT_VARIABLE PROJECT_GIT_DIR_ERROR
+# )
+# if(NOT PROJECT_GIT_DIR_ERROR)
+# set(GIT_REVISION_EXTRA_DEPS
+# ${PROJECT_GIT_DIR}/index
+# ${PROJECT_GIT_DIR}/logs/HEAD
+# )
+# endif()
+#endif()
+#add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/src/generated/git_revision.cpp
+# COMMAND ${PYTHON_EXECUTABLE}
+# scripts/git_revision.py
+# > ${PROJECT_BINARY_DIR}/src/generated/git_revision.cpp
+# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+# DEPENDS
+# ${GIT_REVISION_EXTRA_DEPS}
+# scripts/git_revision.py
+#)
chash("src/generated/nethash.cpp"
"src/engine/shared/protocol.h"
"src/game/tuning.h"
@@ -1375,7 +1375,6 @@ set_src(GAME_SHARED GLOB src/game
voting.h
)
set(GAME_GENERATED_SHARED
- src/generated/git_revision.cpp
src/generated/nethash.cpp
src/generated/protocol.h
)
@@ -1724,7 +1723,6 @@ if(GTEST_FOUND OR DOWNLOAD_GTEST)
set_src(TESTS GLOB src/test
datafile.cpp
fs.cpp
- git_revision.cpp
hash.cpp
jsonwriter.cpp
storage.cpp

View File

@ -1,13 +0,0 @@
$OpenBSD: patch-bam-0_4_0_make_unix_sh,v 1.1 2015/12/27 17:56:22 jasper Exp $
Don't hardcode compiler path and flags.
--- bam-0.4.0/make_unix.sh.orig Mon Aug 9 20:08:24 2010
+++ bam-0.4.0/make_unix.sh Sat Mar 17 15:05:51 2012
@@ -1,4 +1,4 @@
#!/bin/sh
-gcc -Wall -ansi -pedantic src/tools/txt2c.c -o src/tools/txt2c
+${CC} ${CFLAGS} -Wall -ansi -pedantic src/tools/txt2c.c -o src/tools/txt2c
src/tools/txt2c src/base.lua src/tools.lua src/driver_gcc.lua src/driver_cl.lua > src/internal_base.h
-gcc -Wall -ansi -pedantic src/*.c src/lua/*.c -o bam -I src/lua -lm -lpthread -ldl -O2 -rdynamic $*
+${CC} ${CFLAGS} -Wall -ansi -pedantic src/*.c src/lua/*.c -o bam -I src/lua -lm -lpthread -rdynamic $*

View File

@ -1,52 +0,0 @@
$OpenBSD: patch-bam-0_4_0_src_driver_gcc_lua,v 1.1 2015/12/27 17:56:22 jasper Exp $
Don't hardcode compiler path and flags.
--- bam-0.4.0/src/driver_gcc.lua.orig Mon Aug 9 20:08:24 2010
+++ bam-0.4.0/src/driver_gcc.lua Sat Mar 17 15:14:24 2012
@@ -13,7 +13,6 @@ function DriverGCC_Get(exe, cache_name, flags_name)
local f = cc.flags:ToString()
f = f .. cc[flags_name]:ToString()
if settings.debug > 0 then f = f .. "-g " end
- if settings.optimize > 0 then f = f .. "-O2 " end
cache.str = cc[exe] .. " " .. f .. "-c " .. d .. i .. " -o "
end
@@ -27,7 +26,7 @@ function DriverGCC_CTest(code, options)
f:write(code)
f:write("\n")
f:close()
- local ret = ExecuteSilent("gcc _test.c -o _test " .. options)
+ local ret = ExecuteSilent("${CC} _test.c -o _test " .. options)
os.remove("_test.c")
os.remove("_test")
return ret==0
@@ -80,8 +79,8 @@ end
function SetDriversGCC(settings)
if settings.cc then
settings.cc.extension = ".o"
- settings.cc.exe_c = "gcc"
- settings.cc.exe_cxx = "g++"
+ settings.cc.exe_c = "${CC} ${CFLAGS}"
+ settings.cc.exe_cxx = "${CXX} ${CXXFLAGS}"
settings.cc.DriverCTest = DriverGCC_CTest
settings.cc.DriverC = DriverGCC_Get("exe_c", "_c_cache", "flags_c")
settings.cc.DriverCXX = DriverGCC_Get("exe_cxx", "_cxx_cache", "flags_cxx")
@@ -89,7 +88,7 @@ function SetDriversGCC(settings)
if settings.link then
settings.link.extension = ""
- settings.link.exe = "g++"
+ settings.link.exe = "${CXX}"
settings.link.Driver = DriverGCC_Link
end
@@ -108,7 +107,7 @@ function SetDriversGCC(settings)
settings.dll.prefix = ""
settings.dll.extension = ".so"
end
- settings.dll.exe = "g++"
+ settings.dll.exe = "${CXX}"
settings.dll.Driver = DriverGCC_DLL
end
end

View File

@ -1,73 +0,0 @@
$OpenBSD: patch-bam_lua,v 1.1 2015/12/27 17:56:22 jasper Exp $
- Don't enforce stack protector
- Don't hardcode python
- Make it possible to use wavpack as an external dependency (from Debian)
- Fix zlib external dependency (from Debian)
--- bam.lua.orig Wed May 1 13:47:39 2013
+++ bam.lua Thu May 8 16:13:57 2014
@@ -7,12 +7,12 @@ Import("other/freetype/freetype.lua")
--- Setup Config -------
config = NewConfig()
config:Add(OptCCompiler("compiler"))
-config:Add(OptTestCompileC("stackprotector", "int main(){return 0;}", "-fstack-protector -fstack-protector-all"))
config:Add(OptTestCompileC("minmacosxsdk", "int main(){return 0;}", "-mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk"))
config:Add(OptTestCompileC("macosxppc", "int main(){return 0;}", "-arch ppc"))
config:Add(OptLibrary("zlib", "zlib.h", false))
config:Add(SDL.OptFind("sdl", true))
config:Add(FreeType.OptFind("freetype", true))
+config:Add(OptLibrary("wavpack", "wavpack/wavpack.h", false))
config:Finalize("config.lua")
-- data compiler
@@ -20,7 +20,7 @@ function Script(name)
if family == "windows" then
return str_replace(name, "/", "\\")
end
- return "python " .. name
+ return "${MODPY_BIN} " .. name
end
function CHash(output, ...)
@@ -157,9 +157,6 @@ function build(settings)
settings.cc.flags:Add("-isysroot /Developer/SDKs/MacOSX10.5.sdk")
settings.link.flags:Add("-isysroot /Developer/SDKs/MacOSX10.5.sdk")
end
- elseif config.stackprotector.value == 1 then
- settings.cc.flags:Add("-fstack-protector", "-fstack-protector-all")
- settings.link.flags:Add("-fstack-protector", "-fstack-protector-all")
end
end
@@ -187,7 +184,7 @@ function build(settings)
end
-- compile zlib if needed
- if config.zlib.value == 1 then
+ if config.zlib.value then
settings.link.libs:Add("z")
if config.zlib.include_path then
settings.cc.includes:Add(config.zlib.include_path)
@@ -198,8 +195,20 @@ function build(settings)
settings.cc.includes:Add("src/engine/external/zlib")
end
+ -- compile wavpack if needed
+ if config.wavpack.value then
+ settings.link.libs:Add("wavpack")
+ if config.wavpack.include_path then
+ settings.cc.includes:Add(config.wavpack.include_path .. "/include")
+ settings.link.libpath:Add(config.wavpack.include_path .. "/lib")
+ end
+ wavpack = {}
+ else
+ wavpack = Compile(settings, Collect("src/engine/external/wavpack/*.c"))
+ settings.cc.includes:Add("src/engine/external")
+ end
+
-- build the small libraries
- wavpack = Compile(settings, Collect("src/engine/external/wavpack/*.c"))
pnglite = Compile(settings, Collect("src/engine/external/pnglite/*.c"))
-- build game components

View File

@ -1,36 +0,0 @@
$OpenBSD: patch-configure_lua,v 1.1 2017/03/01 20:42:57 naddy Exp $
Accept more compilers than a hardcoded gcc.
(SetDriversClang() is also a no-op)
--- configure.lua.orig Sun Nov 13 16:41:35 2016
+++ configure.lua Tue Feb 28 19:34:03 2017
@@ -362,10 +362,9 @@ function OptCCompiler(name, default_driver, default_c,
else
if ExecuteSilent("cl") == 0 then
option.driver = "cl"
- elseif ExecuteSilent("g++ -v") == 0 then
- option.driver = "gcc"
else
- error("no c/c++ compiler found")
+ -- Assume GCC compatible
+ option.driver = "${CC}"
end
end
--setup_compiler(option.value)
@@ -374,12 +373,9 @@ function OptCCompiler(name, default_driver, default_c,
local apply = function(option, settings)
if option.driver == "cl" then
SetDriversCL(settings)
- elseif option.driver == "gcc" then
- SetDriversGCC(settings)
- elseif option.driver == "clang" then
- SetDriversClang(settings)
else
- error(option.driver.." is not a known c/c++ compile driver")
+ -- Assume GCC compatible
+ SetDriversGCC(settings)
end
if option.c_compiler then settings.cc.c_compiler = option.c_compiler end

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-scripts_build_py,v 1.1 2015/12/27 17:56:22 jasper Exp $
--- scripts/build.py.orig Sun Jul 31 23:17:00 2011
+++ scripts/build.py Sat Mar 17 15:19:47 2012
@@ -276,7 +276,7 @@ if flag_make_release:
os.chdir(src_dir_teeworlds)
command = '"%s/%s/scripts/make_release.py" %s %s' % (work_dir, src_dir_teeworlds, version_teeworlds, platform)
if os.name != "nt":
- command = "python %s" % command
+ command = "${MODPY_BIN} %s" % command
if os.system(command) != 0:
bail("failed to make a relase of %s" % name)
final_output = "FAIL"

View File

@ -1,9 +0,0 @@
$OpenBSD: patch-scripts_compiler_py,v 1.1 2015/12/27 17:56:22 jasper Exp $
--- scripts/compiler.py.orig Sun Jul 31 23:17:00 2011
+++ scripts/compiler.py Sat Mar 17 15:22:43 2012
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!${MODPY_BIN}
import sys
import struct

View File

@ -1,8 +0,0 @@
$OpenBSD: patch-scripts_font_installer_sh,v 1.2 2015/12/27 17:56:22 jasper Exp $
--- scripts/font_installer.sh.orig Sun Jul 31 23:17:00 2011
+++ scripts/font_installer.sh Sat Mar 17 15:19:57 2012
@@ -1,3 +1,3 @@
echo Generating .fnts...
../../font_generator/a.out
-python ../scripts/font_converter.py default*.fnt
+${MODPY_BIN} ../scripts/font_converter.py default*.fnt

View File

@ -1,15 +1,16 @@
$OpenBSD: patch-src_base_detect_h,v 1.1 2015/12/27 17:56:22 jasper Exp $
$OpenBSD: patch-src_base_detect_h,v 1.2 2021/10/19 07:22:09 sdk Exp $
Fix endianness detection.
--- src/base/detect.h.orig Wed Nov 19 23:08:22 2014
+++ src/base/detect.h Sat Aug 22 16:44:40 2015
@@ -78,15 +78,15 @@
Index: src/base/detect.h
--- src/base/detect.h.orig
+++ src/base/detect.h
@@ -85,15 +85,15 @@
/* use gcc endianness definitions when available */
#if defined(__GNUC__) && !defined(__APPLE__) && !defined(__MINGW32__) && !defined(__sun)
- #if defined(__FreeBSD__) || defined(__OpenBSD__)
+ #if defined(__FreeBSD__)
- #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
+ #if defined(__FreeBSD__) || defined(__NetBSD__)
#include <sys/endian.h>
#else
#include <endian.h>

View File

@ -1,82 +0,0 @@
$OpenBSD: patch-src_engine_client_sound_cpp,v 1.2 2016/11/30 18:19:33 jca Exp $
Make it possible to compile with an external and newer wavpack.
From Debian.
--- src/engine/client/sound.cpp.orig Sun Nov 13 16:41:35 2016
+++ src/engine/client/sound.cpp Wed Nov 30 19:18:11 2016
@@ -13,7 +13,7 @@
#include "sound.h"
extern "C" { // wavpack
- #include <engine/external/wavpack/wavpack.h>
+ #include <wavpack/wavpack.h>
}
#include <math.h>
@@ -328,17 +328,14 @@ void CSound::RateConvert(int SampleID)
pSample->m_NumFrames = NumFrames;
}
-int CSound::ReadData(void *pBuffer, int Size)
-{
- return io_read(ms_File, pBuffer, Size);
-}
-
int CSound::LoadWV(const char *pFilename)
{
CSample *pSample;
int SampleID = -1;
char aError[100];
WavpackContext *pContext;
+ char aWholePath[1024];
+ IOHANDLE File;
// don't waste memory on sound when we are stress testing
if(g_Config.m_DbgStress)
@@ -351,19 +348,23 @@ int CSound::LoadWV(const char *pFilename)
if(!m_pStorage)
return -1;
- ms_File = m_pStorage->OpenFile(pFilename, IOFLAG_READ, IStorage::TYPE_ALL);
- if(!ms_File)
+ File = m_pStorage->OpenFile(pFilename, IOFLAG_READ, IStorage::TYPE_ALL, aWholePath, sizeof(aWholePath));
+ if(!File)
{
dbg_msg("sound/wv", "failed to open file. filename='%s'", pFilename);
return -1;
}
+ else
+ {
+ io_close(File);
+ }
SampleID = AllocID();
if(SampleID < 0)
return -1;
pSample = &m_aSamples[SampleID];
- pContext = WavpackOpenFileInput(ReadData, aError);
+ pContext = WavpackOpenFileInput(aWholePath, aError, OPEN_2CH_MAX, 0);
if (pContext)
{
int m_aSamples = WavpackGetNumSamples(pContext);
@@ -419,9 +420,6 @@ int CSound::LoadWV(const char *pFilename)
dbg_msg("sound/wv", "failed to open %s: %s", pFilename, aError);
}
- io_close(ms_File);
- ms_File = NULL;
-
if(g_Config.m_Debug)
dbg_msg("sound/wv", "loaded %s", pFilename);
@@ -526,8 +524,6 @@ void CSound::StopAll()
}
lock_unlock(m_SoundLock);
}
-
-IOHANDLE CSound::ms_File = 0;
IEngineSound *CreateEngineSound() { return new CSound; }

View File

@ -1,18 +0,0 @@
$OpenBSD: patch-src_engine_client_sound_h,v 1.1 2015/12/27 17:56:22 jasper Exp $
Make it possible to compile with an external and newer wavpack.
From Debian.
--- src/engine/client/sound.h.orig Wed May 1 13:47:39 2013
+++ src/engine/client/sound.h Thu May 8 15:58:08 2014
@@ -21,10 +21,6 @@ class CSound : public IEngineSound (public)
static void RateConvert(int SampleID);
- // TODO: Refactor: clean this mess up
- static IOHANDLE ms_File;
- static int ReadData(void *pBuffer, int Size);
-
virtual bool IsSoundEnabled() { return m_SoundEnabled != 0; }
virtual int LoadWV(const char *pFilename);

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-src_engine_shared_netban_cpp,v 1.1 2017/05/06 13:42:17 espie Exp $
Index: src/engine/shared/netban.cpp
--- src/engine/shared/netban.cpp.orig
+++ src/engine/shared/netban.cpp
@@ -601,3 +601,6 @@ void CNetBan::ConBansSave(IConsole::IResult *pResult,
str_format(aBuf, sizeof(aBuf), "saved banlist to '%s'", pResult->GetString(0));
pThis->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "net_ban", aBuf);
}
+
+template class CNetBan::CBanPool<NETADDR, 1>;
+template class CNetBan::CBanPool<CNetRange, 16>;

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-src_engine_shared_storage_cpp,v 1.1 2015/12/27 17:56:22 jasper Exp $
--- src/engine/shared/storage.cpp.orig Sun Jul 31 23:17:00 2011
+++ src/engine/shared/storage.cpp Sat Mar 17 15:21:21 2012
@@ -5,7 +5,7 @@
#include "linereader.h"
// compiled-in data-dir path
-#define DATA_DIR "data"
+#define DATA_DIR "${PREFIX}/share/teeworlds/data"
class CStorage : public IStorage
{

View File

@ -1,24 +0,0 @@
$OpenBSD: patch-src_game_client_gameclient_cpp,v 1.1 2015/12/27 17:56:59 jasper Exp $
Don't require a local copy of DejavuSans.ttf.
--- src/game/client/gameclient.cpp.orig Wed May 1 13:47:39 2013
+++ src/game/client/gameclient.cpp Thu May 8 16:59:57 2014
@@ -240,7 +240,7 @@ void CGameClient::OnInit()
// load default font
static CFont *pDefaultFont = 0;
char aFilename[512];
- IOHANDLE File = Storage()->OpenFile("fonts/DejaVuSans.ttf", IOFLAG_READ, IStorage::TYPE_ALL, aFilename, sizeof(aFilename));
+ IOHANDLE File = Storage()->OpenFile("${X11BASE}/lib/X11/fonts/TTF/DejaVuSans.ttf", IOFLAG_READ, IStorage::TYPE_ALL, aFilename, sizeof(aFilename));
if(File)
{
io_close(File);
@@ -248,7 +248,7 @@ void CGameClient::OnInit()
TextRender()->SetDefaultFont(pDefaultFont);
}
if(!pDefaultFont)
- Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "gameclient", "failed to load font. filename='fonts/DejaVuSans.ttf'");
+ Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "gameclient", "failed to load font. filename='DejaVuSans.ttf'");
// init all components
for(int i = m_All.m_Num-1; i >= 0; --i)

View File

@ -1,3 +1,4 @@
Teeworlds is a free online multiplayer game, available for all major
operating systems. Battle with up to 16 players in a variety of game
modes, including Team Deathmatch and Capture The Flag.

View File

@ -1,7 +0,0 @@
Please note that some users will need to set the following environment
variable to fix erratic mouse behaviour on their system:
export SDL_VIDEO_X11_DGAMOUSE=0
Users of ati video chipset will need to add the following line in
~/.teeworlds/settings.cfg:
gfx_noclip 1

View File

@ -1,4 +1,4 @@
@comment $OpenBSD: PLIST,v 1.3 2016/11/30 18:17:03 jca Exp $
@comment $OpenBSD: PLIST,v 1.4 2021/10/19 07:22:09 sdk Exp $
@bin bin/teeworlds
@bin bin/teeworlds_srv
share/teeworlds/
@ -110,6 +110,12 @@ share/teeworlds/data/audio/wp_hammer_hit-03.wv
share/teeworlds/data/audio/wp_hammer_swing-01.wv
share/teeworlds/data/audio/wp_hammer_swing-02.wv
share/teeworlds/data/audio/wp_hammer_swing-03.wv
share/teeworlds/data/audio/wp_laser_bnce-01.wv
share/teeworlds/data/audio/wp_laser_bnce-02.wv
share/teeworlds/data/audio/wp_laser_bnce-03.wv
share/teeworlds/data/audio/wp_laser_fire-01.wv
share/teeworlds/data/audio/wp_laser_fire-02.wv
share/teeworlds/data/audio/wp_laser_fire-03.wv
share/teeworlds/data/audio/wp_ninja_attack-01.wv
share/teeworlds/data/audio/wp_ninja_attack-02.wv
share/teeworlds/data/audio/wp_ninja_attack-03.wv
@ -123,22 +129,12 @@ share/teeworlds/data/audio/wp_noammo-02.wv
share/teeworlds/data/audio/wp_noammo-03.wv
share/teeworlds/data/audio/wp_noammo-04.wv
share/teeworlds/data/audio/wp_noammo-05.wv
share/teeworlds/data/audio/wp_rifle_bnce-01.wv
share/teeworlds/data/audio/wp_rifle_bnce-02.wv
share/teeworlds/data/audio/wp_rifle_bnce-03.wv
share/teeworlds/data/audio/wp_rifle_fire-01.wv
share/teeworlds/data/audio/wp_rifle_fire-02.wv
share/teeworlds/data/audio/wp_rifle_fire-03.wv
share/teeworlds/data/audio/wp_shotty_fire-01.wv
share/teeworlds/data/audio/wp_shotty_fire-02.wv
share/teeworlds/data/audio/wp_shotty_fire-03.wv
share/teeworlds/data/audio/wp_switch-01.wv
share/teeworlds/data/audio/wp_switch-02.wv
share/teeworlds/data/audio/wp_switch-03.wv
share/teeworlds/data/blob.png
share/teeworlds/data/browse_icons.png
share/teeworlds/data/console.png
share/teeworlds/data/console_bar.png
share/teeworlds/data/countryflags/
share/teeworlds/data/countryflags/AD.png
share/teeworlds/data/countryflags/AE.png
@ -318,6 +314,7 @@ share/teeworlds/data/countryflags/PL.png
share/teeworlds/data/countryflags/PM.png
share/teeworlds/data/countryflags/PN.png
share/teeworlds/data/countryflags/PR.png
share/teeworlds/data/countryflags/PS.png
share/teeworlds/data/countryflags/PT.png
share/teeworlds/data/countryflags/PW.png
share/teeworlds/data/countryflags/PY.png
@ -377,7 +374,11 @@ share/teeworlds/data/countryflags/VN.png
share/teeworlds/data/countryflags/VU.png
share/teeworlds/data/countryflags/WF.png
share/teeworlds/data/countryflags/WS.png
share/teeworlds/data/countryflags/XBZ.png
share/teeworlds/data/countryflags/XCA.png
share/teeworlds/data/countryflags/XEN.png
share/teeworlds/data/countryflags/XES.png
share/teeworlds/data/countryflags/XGA.png
share/teeworlds/data/countryflags/XNI.png
share/teeworlds/data/countryflags/XSC.png
share/teeworlds/data/countryflags/XWA.png
@ -386,53 +387,67 @@ share/teeworlds/data/countryflags/ZA.png
share/teeworlds/data/countryflags/ZM.png
share/teeworlds/data/countryflags/ZW.png
share/teeworlds/data/countryflags/default.png
share/teeworlds/data/countryflags/index.txt
share/teeworlds/data/debug_font.png
share/teeworlds/data/demo_buttons.png
share/teeworlds/data/countryflags/index.json
share/teeworlds/data/deadtee.png
share/teeworlds/data/editor/
share/teeworlds/data/editor/automap/
share/teeworlds/data/editor/automap/desert_main.json
share/teeworlds/data/editor/automap/grass_doodads.json
share/teeworlds/data/editor/automap/grass_main.json
share/teeworlds/data/editor/automap/jungle_deathtiles.json
share/teeworlds/data/editor/automap/jungle_main.json
share/teeworlds/data/editor/automap/winter_main.json
share/teeworlds/data/editor/background.png
share/teeworlds/data/editor/checker.png
share/teeworlds/data/editor/cursor.png
share/teeworlds/data/editor/desert_main.rules
share/teeworlds/data/editor/entities.png
share/teeworlds/data/editor/grass_main.rules
share/teeworlds/data/editor/jungle_main.rules
share/teeworlds/data/editor/winter_main.rules
share/teeworlds/data/emoticons.png
share/teeworlds/data/file_icons.png
share/teeworlds/data/fonts/
share/teeworlds/data/fonts/DejaVuSans.ttf
share/teeworlds/data/game.png
share/teeworlds/data/gui_buttons.png
share/teeworlds/data/gui_cursor.png
share/teeworlds/data/gui_icons.png
share/teeworlds/data/gui_logo.png
share/teeworlds/data/languages/
share/teeworlds/data/languages/belarusian.txt
share/teeworlds/data/languages/bosnian.txt
share/teeworlds/data/languages/brazilian_portuguese.txt
share/teeworlds/data/languages/bulgarian.txt
share/teeworlds/data/languages/chuvash.txt
share/teeworlds/data/languages/czech.txt
share/teeworlds/data/languages/danish.txt
share/teeworlds/data/languages/dutch.txt
share/teeworlds/data/languages/finnish.txt
share/teeworlds/data/languages/french.txt
share/teeworlds/data/languages/german.txt
share/teeworlds/data/languages/hungarian.txt
share/teeworlds/data/languages/index.txt
share/teeworlds/data/languages/italian.txt
share/teeworlds/data/languages/kyrgyz.txt
share/teeworlds/data/languages/norwegian.txt
share/teeworlds/data/languages/polish.txt
share/teeworlds/data/languages/portuguese.txt
share/teeworlds/data/languages/romanian.txt
share/teeworlds/data/languages/russian.txt
share/teeworlds/data/languages/sakha.txt
share/teeworlds/data/languages/serbian.txt
share/teeworlds/data/languages/slovak.txt
share/teeworlds/data/languages/spanish.txt
share/teeworlds/data/languages/swedish.txt
share/teeworlds/data/languages/turkish.txt
share/teeworlds/data/languages/ukrainian.txt
share/teeworlds/data/languages/belarusian.json
share/teeworlds/data/languages/bosnian.json
share/teeworlds/data/languages/brazilian_portuguese.json
share/teeworlds/data/languages/breton.json
share/teeworlds/data/languages/bulgarian.json
share/teeworlds/data/languages/catalan.json
share/teeworlds/data/languages/chuvash.json
share/teeworlds/data/languages/czech.json
share/teeworlds/data/languages/danish.json
share/teeworlds/data/languages/dutch.json
share/teeworlds/data/languages/esperanto.json
share/teeworlds/data/languages/estonian.json
share/teeworlds/data/languages/finnish.json
share/teeworlds/data/languages/french.json
share/teeworlds/data/languages/gaelic_scottish.json
share/teeworlds/data/languages/galician.json
share/teeworlds/data/languages/german.json
share/teeworlds/data/languages/greek.json
share/teeworlds/data/languages/hungarian.json
share/teeworlds/data/languages/index.json
share/teeworlds/data/languages/irish.json
share/teeworlds/data/languages/italian.json
share/teeworlds/data/languages/japanese.json
share/teeworlds/data/languages/korean.json
share/teeworlds/data/languages/kyrgyz.json
share/teeworlds/data/languages/license.txt
share/teeworlds/data/languages/lithuanian.json
share/teeworlds/data/languages/norwegian.json
share/teeworlds/data/languages/polish.json
share/teeworlds/data/languages/portuguese.json
share/teeworlds/data/languages/readme.txt
share/teeworlds/data/languages/romanian.json
share/teeworlds/data/languages/russian.json
share/teeworlds/data/languages/serbian.json
share/teeworlds/data/languages/simplified_chinese.json
share/teeworlds/data/languages/slovak.json
share/teeworlds/data/languages/slovenian.json
share/teeworlds/data/languages/spanish.json
share/teeworlds/data/languages/swedish.json
share/teeworlds/data/languages/traditional_chinese.json
share/teeworlds/data/languages/turkish.json
share/teeworlds/data/languages/ukrainian.json
share/teeworlds/data/mapres/
share/teeworlds/data/mapres/bg_cloud1.png
share/teeworlds/data/mapres/bg_cloud2.png
@ -442,7 +457,10 @@ share/teeworlds/data/mapres/desert_main.png
share/teeworlds/data/mapres/desert_mountains.png
share/teeworlds/data/mapres/desert_mountains2.png
share/teeworlds/data/mapres/desert_sun.png
share/teeworlds/data/mapres/easter.png
share/teeworlds/data/mapres/generic_deathtiles.png
share/teeworlds/data/mapres/generic_lamps.png
share/teeworlds/data/mapres/generic_shadows.png
share/teeworlds/data/mapres/generic_unhookable.png
share/teeworlds/data/mapres/grass_doodads.png
share/teeworlds/data/mapres/grass_main.png
@ -452,6 +470,7 @@ share/teeworlds/data/mapres/jungle_doodads.png
share/teeworlds/data/mapres/jungle_main.png
share/teeworlds/data/mapres/jungle_midground.png
share/teeworlds/data/mapres/jungle_unhookables.png
share/teeworlds/data/mapres/light.png
share/teeworlds/data/mapres/moon.png
share/teeworlds/data/mapres/mountains.png
share/teeworlds/data/mapres/snow.png
@ -470,28 +489,194 @@ share/teeworlds/data/maps/ctf4.map
share/teeworlds/data/maps/ctf5.map
share/teeworlds/data/maps/ctf6.map
share/teeworlds/data/maps/ctf7.map
share/teeworlds/data/maps/ctf8.map
share/teeworlds/data/maps/dm1.map
share/teeworlds/data/maps/dm2.map
share/teeworlds/data/maps/dm3.map
share/teeworlds/data/maps/dm6.map
share/teeworlds/data/maps/dm7.map
share/teeworlds/data/maps/dm8.map
share/teeworlds/data/maps/dm9.map
share/teeworlds/data/maps/license.txt
share/teeworlds/data/maps/lms1.map
share/teeworlds/data/maps/readme.txt
share/teeworlds/data/particles.png
share/teeworlds/data/race_flag.png
share/teeworlds/data/skins/
share/teeworlds/data/skins/bluekitty.png
share/teeworlds/data/skins/bluestripe.png
share/teeworlds/data/skins/brownbear.png
share/teeworlds/data/skins/cammo.png
share/teeworlds/data/skins/cammostripes.png
share/teeworlds/data/skins/coala.png
share/teeworlds/data/skins/default.png
share/teeworlds/data/skins/limekitty.png
share/teeworlds/data/skins/pinky.png
share/teeworlds/data/skins/redbopp.png
share/teeworlds/data/skins/redstripe.png
share/teeworlds/data/skins/saddo.png
share/teeworlds/data/skins/toptri.png
share/teeworlds/data/skins/twinbop.png
share/teeworlds/data/skins/twintri.png
share/teeworlds/data/skins/warpaint.png
share/teeworlds/data/skins/x_ninja.png
share/teeworlds/data/skins/beaver.json
share/teeworlds/data/skins/bluekitty.json
share/teeworlds/data/skins/bluestripe.json
share/teeworlds/data/skins/body/
share/teeworlds/data/skins/body/bat.png
share/teeworlds/data/skins/body/bear.png
share/teeworlds/data/skins/body/beaver.png
share/teeworlds/data/skins/body/dog.png
share/teeworlds/data/skins/body/force.png
share/teeworlds/data/skins/body/fox.png
share/teeworlds/data/skins/body/hippo.png
share/teeworlds/data/skins/body/kitty.png
share/teeworlds/data/skins/body/koala.png
share/teeworlds/data/skins/body/monkey.png
share/teeworlds/data/skins/body/mouse.png
share/teeworlds/data/skins/body/piglet.png
share/teeworlds/data/skins/body/raccoon.png
share/teeworlds/data/skins/body/spiky.png
share/teeworlds/data/skins/body/standard.png
share/teeworlds/data/skins/body/x_ninja.png
share/teeworlds/data/skins/bot.png
share/teeworlds/data/skins/brownbear.json
share/teeworlds/data/skins/bumbler.json
share/teeworlds/data/skins/cammo.json
share/teeworlds/data/skins/cammostripes.json
share/teeworlds/data/skins/cavebat.json
share/teeworlds/data/skins/decoration/
share/teeworlds/data/skins/decoration/hair.png
share/teeworlds/data/skins/decoration/twinbopp.png
share/teeworlds/data/skins/decoration/twinmello.png
share/teeworlds/data/skins/decoration/twinpen.png
share/teeworlds/data/skins/decoration/unibop.png
share/teeworlds/data/skins/decoration/unimelo.png
share/teeworlds/data/skins/decoration/unipento.png
share/teeworlds/data/skins/default.json
share/teeworlds/data/skins/eyes/
share/teeworlds/data/skins/eyes/colorable.png
share/teeworlds/data/skins/eyes/negative.png
share/teeworlds/data/skins/eyes/standard.png
share/teeworlds/data/skins/eyes/standardreal.png
share/teeworlds/data/skins/eyes/x_ninja.png
share/teeworlds/data/skins/feet/
share/teeworlds/data/skins/feet/standard.png
share/teeworlds/data/skins/force.json
share/teeworlds/data/skins/fox.json
share/teeworlds/data/skins/greycoon.json
share/teeworlds/data/skins/greyfox.json
share/teeworlds/data/skins/hands/
share/teeworlds/data/skins/hands/standard.png
share/teeworlds/data/skins/hippo.json
share/teeworlds/data/skins/koala.json
share/teeworlds/data/skins/limedog.json
share/teeworlds/data/skins/limekitty.json
share/teeworlds/data/skins/marking/
share/teeworlds/data/skins/marking/bear.png
share/teeworlds/data/skins/marking/belly1.png
share/teeworlds/data/skins/marking/belly2.png
share/teeworlds/data/skins/marking/blush.png
share/teeworlds/data/skins/marking/bug.png
share/teeworlds/data/skins/marking/cammo1.png
share/teeworlds/data/skins/marking/cammo2.png
share/teeworlds/data/skins/marking/cammostripes.png
share/teeworlds/data/skins/marking/coonfluff.png
share/teeworlds/data/skins/marking/donny.png
share/teeworlds/data/skins/marking/downdony.png
share/teeworlds/data/skins/marking/duodonny.png
share/teeworlds/data/skins/marking/fox.png
share/teeworlds/data/skins/marking/hipbel.png
share/teeworlds/data/skins/marking/lowcross.png
share/teeworlds/data/skins/marking/lowpaint.png
share/teeworlds/data/skins/marking/marksman.png
share/teeworlds/data/skins/marking/mice.png
share/teeworlds/data/skins/marking/mixture1.png
share/teeworlds/data/skins/marking/mixture2.png
share/teeworlds/data/skins/marking/monkey.png
share/teeworlds/data/skins/marking/panda1.png
share/teeworlds/data/skins/marking/panda2.png
share/teeworlds/data/skins/marking/purelove.png
share/teeworlds/data/skins/marking/saddo.png
share/teeworlds/data/skins/marking/setisu.png
share/teeworlds/data/skins/marking/sidemarks.png
share/teeworlds/data/skins/marking/singu.png
share/teeworlds/data/skins/marking/stripe.png
share/teeworlds/data/skins/marking/striped.png
share/teeworlds/data/skins/marking/stripes.png
share/teeworlds/data/skins/marking/stripes2.png
share/teeworlds/data/skins/marking/thunder.png
share/teeworlds/data/skins/marking/tiger1.png
share/teeworlds/data/skins/marking/tiger2.png
share/teeworlds/data/skins/marking/toptri.png
share/teeworlds/data/skins/marking/triangular.png
share/teeworlds/data/skins/marking/tricircular.png
share/teeworlds/data/skins/marking/tripledon.png
share/teeworlds/data/skins/marking/tritri.png
share/teeworlds/data/skins/marking/twinbelly.png
share/teeworlds/data/skins/marking/twincross.png
share/teeworlds/data/skins/marking/twintri.png
share/teeworlds/data/skins/marking/uppy.png
share/teeworlds/data/skins/marking/warpaint.png
share/teeworlds/data/skins/marking/warstripes.png
share/teeworlds/data/skins/marking/whisker.png
share/teeworlds/data/skins/marking/wildpaint.png
share/teeworlds/data/skins/marking/wildpatch.png
share/teeworlds/data/skins/marking/yinyang.png
share/teeworlds/data/skins/monkey.json
share/teeworlds/data/skins/paintgre.json
share/teeworlds/data/skins/pandabear.json
share/teeworlds/data/skins/panther.json
share/teeworlds/data/skins/pento.json
share/teeworlds/data/skins/piggy.json
share/teeworlds/data/skins/pinky.json
share/teeworlds/data/skins/raccoon.json
share/teeworlds/data/skins/redbopp.json
share/teeworlds/data/skins/redstripe.json
share/teeworlds/data/skins/saddo.json
share/teeworlds/data/skins/setisu.json
share/teeworlds/data/skins/snowti.json
share/teeworlds/data/skins/spiky.json
share/teeworlds/data/skins/swardy.json
share/teeworlds/data/skins/tiger.json
share/teeworlds/data/skins/tooxy.json
share/teeworlds/data/skins/toptri.json
share/teeworlds/data/skins/twinbop.json
share/teeworlds/data/skins/twintri.json
share/teeworlds/data/skins/warmouse.json
share/teeworlds/data/skins/warpaint.json
share/teeworlds/data/skins/x_ninja.json
share/teeworlds/data/skins/xmas_hat.png
share/teeworlds/data/ui/
share/teeworlds/data/ui/blob.png
share/teeworlds/data/ui/console.png
share/teeworlds/data/ui/console_bar.png
share/teeworlds/data/ui/debug_font.png
share/teeworlds/data/ui/demo_buttons.png
share/teeworlds/data/ui/file_icons.png
share/teeworlds/data/ui/gametypes/
share/teeworlds/data/ui/gametypes/ctf.png
share/teeworlds/data/ui/gametypes/dm.png
share/teeworlds/data/ui/gametypes/lms.png
share/teeworlds/data/ui/gametypes/lts.png
share/teeworlds/data/ui/gametypes/mod.png
share/teeworlds/data/ui/gametypes/race.png
share/teeworlds/data/ui/gametypes/tdm.png
share/teeworlds/data/ui/gui_buttons.png
share/teeworlds/data/ui/gui_cursor.png
share/teeworlds/data/ui/gui_icons.png
share/teeworlds/data/ui/gui_logo.png
share/teeworlds/data/ui/icons/
share/teeworlds/data/ui/icons/arrows.png
share/teeworlds/data/ui/icons/browse.png
share/teeworlds/data/ui/icons/browser.png
share/teeworlds/data/ui/icons/chat_whisper.png
share/teeworlds/data/ui/icons/friend.png
share/teeworlds/data/ui/icons/level.png
share/teeworlds/data/ui/icons/menu.png
share/teeworlds/data/ui/icons/sidebar.png
share/teeworlds/data/ui/icons/timer_clock.png
share/teeworlds/data/ui/icons/tools.png
share/teeworlds/data/ui/menuimages/
share/teeworlds/data/ui/menuimages/demos.png
share/teeworlds/data/ui/menuimages/editor.png
share/teeworlds/data/ui/menuimages/local_server.png
share/teeworlds/data/ui/menuimages/play_game.png
share/teeworlds/data/ui/menuimages/settings.png
share/teeworlds/data/ui/no_skinpart.png
share/teeworlds/data/ui/sound_icons.png
share/teeworlds/data/ui/themes/
share/teeworlds/data/ui/themes/heavens.png
share/teeworlds/data/ui/themes/heavens_day.map
share/teeworlds/data/ui/themes/heavens_night.map
share/teeworlds/data/ui/themes/jungle.png
share/teeworlds/data/ui/themes/jungle_day.map
share/teeworlds/data/ui/themes/jungle_night.map
share/teeworlds/data/ui/themes/none.png
share/teeworlds/data/ui/themes/winter.png
share/teeworlds/data/ui/themes/winter_day.map
share/teeworlds/data/ui/themes/winter_night.map