update dxx-rebirth to recent nightly and unbreak

remove base-clang from this C++14 port; found by kirby@

ok kirby@
This commit is contained in:
thfr 2019-08-16 15:21:38 +00:00
parent 7fcd5ea0fe
commit 8a0ae2e3c7
7 changed files with 36 additions and 166 deletions

View File

@ -1,28 +1,24 @@
# $OpenBSD: Makefile,v 1.6 2019/07/14 00:39:36 naddy Exp $
# $OpenBSD: Makefile,v 1.7 2019/08/16 15:21:38 thfr Exp $
.for i in aarch64 amd64 arm i386
BROKEN-$i = needs update following clang update in base
.endfor
V = 0.60
V = 0.60pl20190731
COMMENT = source port of Descent, a 6-degrees-of-freedom shooter
DISTNAME = dxx-rebirth_v${V}-weekly-11-08-17-src
DISTNAME = dxx-rebirth_${V:S/0.60pl//g}-src
PKGNAME = dxx-rebirth-${V}
CATEGORIES = games x11
REVISION = 2
HOMEPAGE = http://www.dxx-rebirth.com/
HOMEPAGE = https://www.dxx-rebirth.com/
MAINTAINER = Thomas Frohwein <thfr@openbsd.org>
# GPLv3 with special exception for Parallax license
PERMIT_PACKAGE = Yes
WANTLIB += ${COMPILER_LIBCXX} GL GLU SDL SDL_mixer c m physfs
WANTLIB += ${COMPILER_LIBCXX} GL GLU SDL SDL_mixer c m physfs png z
MASTER_SITES = http://www.dxx-rebirth.com/download/dxx/user/afuturepilot/
MASTER_SITES = https://www.dxx-rebirth.com/download/dxx/rebirth/
EXTRACT_SUFX = .tar.xz
# C++14
COMPILER = base-clang ports-gcc base-gcc
COMPILER = base-clang ports-gcc
MODULES = devel/scons
MODSCONS_ENV = CPPFLAGS="-I${LOCALBASE}/include" \
@ -32,10 +28,9 @@ MODSCONS_FLAGS = ignore_unknown_variables=1 verbosebuild=1
LIB_DEPENDS = devel/physfs \
devel/sdl \
devel/sdl-mixer
devel/sdl-mixer \
graphics/png
NO_TEST = Yes
WRKDIST = ${WRKDIR}/dxx-rebirth_v${V}-weekly-src
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
SHA256 (dxx-rebirth_v0.60-weekly-11-08-17-src.tar.gz) = Wv40zLDh+jJ1DcYEIEtAjpLov/1Jm5lPZZea672arWM=
SIZE (dxx-rebirth_v0.60-weekly-11-08-17-src.tar.gz) = 22959334
SHA256 (dxx-rebirth_20190731-src.tar.xz) = JTHtnDShvz+5miqHXa2lGG1/xfsQ/4NK6IPrIdPhAb8=
SIZE (dxx-rebirth_20190731-src.tar.xz) = 1308972

View File

@ -1,102 +0,0 @@
$OpenBSD: patch-SConstruct,v 1.2 2018/12/28 06:15:59 bcallah Exp $
Don't hardcode optimization flags
Never pass -Werror
Remove unrecognized warning flags
add openbsd6 - will need better solution to not break with openbsd7
Don't search for GNU as; it needlessly breaks the build on aarch64
Index: SConstruct
--- SConstruct.orig
+++ SConstruct
@@ -648,7 +648,6 @@ help:assume C++ compiler works
if user_settings.show_tool_version:
CXX = cenv['CXX']
self._show_tool_version(context, CXX, 'C++ compiler')
- self._show_indirect_tool_version(context, CXX, 'as', 'assembler')
self._show_indirect_tool_version(context, CXX, 'ld', 'linker')
if use_distcc:
self._show_tool_version(context, use_distcc, 'distcc', False)
@@ -803,7 +802,6 @@ help:assume C++ compiler works
forced, expected = self._check_sconf_forced(calling_function)
caller_modified_env_flags = self.PreservedEnvironment(context.env, self.__flags_Werror.keys() + testflags.keys())
# Always pass -Werror
- context.env.Append(**self.__flags_Werror)
context.env.Append(**testflags)
# If forced is None, run the test. Otherwise, skip the test and
# take an action determined by the value of forced.
@@ -1736,7 +1734,7 @@ help:assume compiler supports __attribute__((unused))
self._check_macro(context,macro_name=macro_name,macro_value=macro_value,test="""
__attribute_unused
static void a(){}
-""", msg='for function __attribute__((unused))', successflags={'CXXFLAGS' : [get_Werror_string(context.env['CXXFLAGS']) + 'unused']})
+""", msg='for function __attribute__((unused))', successflags={'CXXFLAGS' : 'CXXFLAGS'})
@_custom_test
def check_attribute_warn_unused_result(self,context):
"""
@@ -2285,7 +2283,7 @@ $ x86_64-pc-linux-gnu-g++-5.4.0 -x c++ -S -Wformat -o
@_custom_test
def check_compiler_useless_cast(self,context):
Compile = self.Compile
- flags = {'CXXFLAGS' : [get_Werror_string(context.env['CXXFLAGS']) + 'useless-cast']}
+ flags = {'CXXFLAGS' : 'CXXFLAGS'}
if Compile(context, text='''
/*
* SDL on Raspbian provokes a warning from -Wuseless-cast
@@ -2420,8 +2418,6 @@ where the cast is useless.
''', msg='for struct timespec', successflags=_successflags)
__preferred_compiler_options = [
'-fvisibility=hidden',
- '-Wsuggest-attribute=noreturn',
- '-Wlogical-op',
'-Wold-style-cast',
# Starting in gcc-7, Rebirth default options cause gcc to enable
# -Wformat-truncation automatically. Unless proven otherwise by
@@ -2452,7 +2448,6 @@ where the cast is useless.
# snprintf(SecludedSpawnText, sizeof(SecludedSpawnText), "Use %u Furthest Sites", Netgame.SecludedSpawns + 1);
# ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
- '-Wno-format-truncation',
# gcc-7 with -Wextra enables -Wimplicit-fallthrough, which warns
# for various sites in Rebirth. All the sites where fallthrough
# is obviously correct are already marked to suppress this
@@ -3398,7 +3393,7 @@ class DXXCommon(LazyObjectConstructor):
'variable': EnumVariable,
'arguments': (
('host_endian', None, 'endianness of host platform', {'allowed_values' : ('little', 'big')}),
- ('host_platform', 'linux' if sys.platform == 'linux2' else sys.platform, 'cross-compile to specified platform', {'allowed_values' : ('win32', 'darwin', 'linux')}),
+ ('host_platform', 'linux' if sys.platform == 'linux2' else sys.platform, 'cross-compile to specified platform', {'allowed_values' : ('win32', 'darwin', 'linux', 'openbsd6')}),
),
},
{
@@ -3803,22 +3798,10 @@ class DXXCommon(LazyObjectConstructor):
RCCOMSTR = "RC %s %s $SOURCE" % format_tuple,
)
- Werror = get_Werror_string(user_settings.CXXFLAGS)
env.Prepend(CXXFLAGS = [
'-ftabstop=4',
'-Wall',
'-Wshadow',
- Werror + 'extra',
- Werror + 'format=2',
- Werror + 'missing-braces',
- Werror + 'missing-include-dirs',
- Werror + 'uninitialized',
- Werror + 'undef',
- Werror + 'pointer-arith',
- Werror + 'cast-qual',
- Werror + 'missing-declarations',
- Werror + 'redundant-decls',
- Werror + 'vla',
])
env.Append(
CXXFLAGS = ['-funsigned-char'],
@@ -3884,7 +3867,6 @@ class DXXCommon(LazyObjectConstructor):
env = self.env
user_settings = self.user_settings
- env.Prepend(CXXFLAGS = ['-g', '-O2'])
# Raspberry Pi?
if user_settings.raspberrypi == 'yes':
rpi_vc_path = user_settings.rpi_vc_path

View File

@ -1,16 +0,0 @@
$OpenBSD: patch-similar_editor_med_cpp,v 1.1.1.1 2017/12/24 19:13:43 bcallah Exp $
account for __OpenBSD__ defined
Index: similar/editor/med.cpp
--- similar/editor/med.cpp.orig
+++ similar/editor/med.cpp
@@ -891,7 +891,7 @@ static void close_editor()
{
// _MARK_("end of editor");//Nuked to compile -KRB
-#ifndef __linux__
+#if !defined (__linux__) && !defined(__OpenBSD__)
set_warn_func(msgbox_warning);
#else
clear_warn_func();

View File

@ -1,25 +0,0 @@
$OpenBSD: patch-similar_main_inferno_cpp,v 1.1.1.1 2017/12/24 19:13:43 bcallah Exp $
account for __OpenBSD__ in ifdefs
Index: similar/main/inferno.cpp
--- similar/main/inferno.cpp.orig
+++ similar/main/inferno.cpp
@@ -95,7 +95,7 @@ char copyright[] = "DESCENT II COPYRIGHT (C) 1994-199
#endif
#include "event.h"
#include "rbaudio.h"
-#ifndef __linux__
+#if !defined (__linux__) && !defined (__OpenBSD__)
#include "messagebox.h"
#else
#if DXX_WORDS_NEED_ALIGNMENT
@@ -673,7 +673,7 @@ static int main(int argc, char *argv[])
int main(int argc, char *argv[])
{
mem_init();
-#ifdef __linux__
+#if defined (__linux__) || defined (__OpenBSD__)
#if DXX_WORDS_NEED_ALIGNMENT
prctl(PR_SET_UNALIGN, PR_UNALIGN_NOPRINT, 0, 0, 0);
#endif

View File

@ -1,12 +1,12 @@
$OpenBSD: patch-similar_main_mglobal_cpp,v 1.1.1.1 2017/12/24 19:13:43 bcallah Exp $
$OpenBSD: patch-similar_main_mglobal_cpp,v 1.2 2019/08/16 15:21:38 thfr Exp $
Always enable full template instantiation.
Index: similar/main/mglobal.cpp
--- similar/main/mglobal.cpp.orig
+++ similar/main/mglobal.cpp
@@ -117,7 +117,7 @@ valptridx<wall>::array_managed_type Walls;
#if (defined(__NO_INLINE__) && __NO_INLINE__ > 0)
@@ -160,7 +160,7 @@ void reset_globals_for_new_game()
#if (defined(__NO_INLINE__) && __NO_INLINE__ > 0) || defined(__SANITIZE_ADDRESS__)
#define DXX_VALPTRIDX_ENABLE_FULL_TEMPLATE_INSTANTIATION 1
#else
-#define DXX_VALPTRIDX_ENABLE_FULL_TEMPLATE_INSTANTIATION 0

View File

@ -1,15 +1,20 @@
$OpenBSD: README,v 1.2 2018/09/04 12:46:12 espie Exp $
$OpenBSD: README,v 1.3 2019/08/16 15:21:38 thfr Exp $
+-----------------------------------------------------------------------
| Running ${PKGSTEM} on OpenBSD
+-----------------------------------------------------------------------
dxx-rebirth
===========
Installation of the Game Data
=============================
dxx-rebirth requires the original game files from Descent I and/or
Descent II to work properly. These can come from an original CD or from
GOG.com.
The shareware/demo data can be downloaded from here:
https://www.dxx-rebirth.com/game-content/
If using the GOG.com version of Descent I, you must extract the files
from setup_descent_1.4a_(16596).exe using the innoextract package.
@ -25,3 +30,16 @@ You can then delete everything extracted from the exe.
If you own the GOG.com version of Descent II, follow the above steps
with the setup_descent_2_1.1_(16596).exe file and using
~/.d2x-rebirth/Data as the directory name.
Music
=====
The MIDI soundtrack requires the package timidity to be installed.
Add-Ons
=======
Add-ons with high resolution images, new soundtracks, and German
briefings are available including installation instructions at:
https://www.dxx-rebirth.com/addons/