I discussed with Omar off-list that it may be worth tackling this in chunks. He suggested starting with games/boswars and games/pingus that compile with current scons.
On Tue, Oct 26, 2021 at 05:51:45PM +0200, Omar Polo wrote: [...] > games/boswars > > 2to3 changes plus: > > - some love for the makefile (only aesthetic changes) > - drop -fexpensive-optimizations: base clang complained that's a > "optimization flag not supported". Should be a no-op. > [...] > games/pingus > > 2to3 then runs fine. Both ports are without maintainer; I built both with current scons and tested quick runtime without problems. I think it may be best to bump REVISION even with the changes applying mainly to the build system. Here is the diff for just the 2 ports with my ok. Index: boswars/Makefile =================================================================== RCS file: /cvs/ports/games/boswars/Makefile,v retrieving revision 1.27 diff -u -p -r1.27 Makefile --- boswars/Makefile 17 Oct 2021 12:19:12 -0000 1.27 +++ boswars/Makefile 28 Oct 2021 02:36:48 -0000 @@ -7,15 +7,15 @@ DISTNAME= boswars-${V}-src PKGNAME= boswars-${V} CATEGORIES= games x11 MASTER_SITES= http://www.boswars.org/dist/releases/ -REVISION= 2 +REVISION= 3 HOMEPAGE= http://www.boswars.org/ # GPLv2 PERMIT_PACKAGE= Yes -WANTLIB += GL SDL X11 c m ogg png pthread ${COMPILER_LIBCXX} theora vorbis z -WANTLIB += ${MODLUA_WANTLIB} +WANTLIB += ${COMPILER_LIBCXX} GL SDL X11 c m ogg png theora vorbis z +WANTLIB += ${MODLUA_WANTLIB} COMPILER = base-clang ports-gcc base-gcc @@ -34,8 +34,11 @@ LIB_DEPENDS= devel/sdl \ NO_TEST= Yes -DATA_DIR= campaigns graphics intro languages maps patches scripts sounds units +DATA_DIR= campaigns graphics intro languages maps patches \ + scripts sounds units +# the shipped images are considered broken by newer libpng: use opting +# to fix them pre-configure: @${SUBST_CMD} ${WRKSRC}/SConstruct \ ${WRKSRC}/engine/include/stratagus.h @@ -50,7 +53,8 @@ do-install: ${INSTALL_PROGRAM} ${WRKSRC}/build/boswars-release \ ${PREFIX}/bin/boswars ${INSTALL_DATA} ${WRKSRC}/doc/*.html ${PREFIX}/share/doc/boswars/html - ${INSTALL_DATA} ${WRKSRC}/doc/scripts/{*.html,*.py} ${PREFIX}/share/doc/boswars/html/scripts + ${INSTALL_DATA} ${WRKSRC}/doc/scripts/{*.html,*.py} \ + ${PREFIX}/share/doc/boswars/html/scripts .for i in ${DATA_DIR} cp -R ${WRKSRC}/${i} ${PREFIX}/share/boswars .endfor Index: boswars/patches/patch-SConstruct =================================================================== RCS file: /cvs/ports/games/boswars/patches/patch-SConstruct,v retrieving revision 1.7 diff -u -p -r1.7 patch-SConstruct --- boswars/patches/patch-SConstruct 24 Sep 2013 04:53:18 -0000 1.7 +++ boswars/patches/patch-SConstruct 28 Oct 2021 02:36:48 -0000 @@ -1,6 +1,7 @@ $OpenBSD: patch-SConstruct,v 1.7 2013/09/24 04:53:18 brad Exp $ ---- SConstruct.orig Sun Jun 2 08:41:11 2013 -+++ SConstruct Sat Sep 14 21:46:08 2013 +Index: SConstruct +--- SConstruct.orig ++++ SConstruct @@ -32,12 +32,12 @@ SConsignFile() def DefineOptions(filename, args): @@ -27,6 +28,15 @@ $OpenBSD: patch-SConstruct,v 1.7 2013/09 Help(opts.GenerateHelpText(env)) mingw = env.Clone() optionsChanged = True +@@ -122,7 +125,7 @@ def ParseConfig(env, command, function=None): + flags['LINKFLAGS'].append(arg) + else: + flags['CCFLAGS'].append(arg) +- apply(env.Append, (), flags) ++ env.Append(*(), **flags) + return static_libs + + if function is None: @@ -144,6 +147,10 @@ def CheckOpenGL(env, conf): 'LIBS': ['GL'], 'LIBPATH': ['/usr/lib', '/usr/X11R6/lib'], @@ -47,7 +57,18 @@ $OpenBSD: patch-SConstruct,v 1.7 2013/09 glconfig = opengl.get(platform, {}) for key in glconfig: if key != 'LIBS': -@@ -178,7 +187,7 @@ def CheckLuaLib(env, conf): +@@ -168,17 +177,12 @@ def CheckOpenGL(env, conf): + return True + + def CheckLuaLib(env, conf): +- if not 'USE_WIN32' in env['CPPDEFINES']: +- if env.WhereIs('pkg-config'): +- for packagename in ['lua5.1', 'lua51', 'lua']: +- exitcode,_ = ParseConfig(env, 'pkg-config --cflags --libs ' + packagename) +- if exitcode == 0: +- break ++ env.ParseConfig('pkg-config --cflags --libs lua51') + if conf.CheckLibWithHeader('lua51', 'lua.h', 'c'): return 1 if conf.CheckLibWithHeader('lua5.1', 'lua.h', 'c'): return 1 @@ -56,7 +77,7 @@ $OpenBSD: patch-SConstruct,v 1.7 2013/09 return 0 # make sure we have lualib which is included in lua 5.1 if conf.CheckFunc('luaopen_base'): -@@ -189,13 +198,13 @@ def AutoConfigure(env): +@@ -189,30 +193,30 @@ def AutoConfigure(env): conf = Configure(env) ## check for required libs ## @@ -64,17 +85,25 @@ $OpenBSD: patch-SConstruct,v 1.7 2013/09 - print 'Did not find png library or headers, exiting!' - Exit(1) if not conf.CheckLibWithHeader('z', 'zlib.h', 'c'): - print 'Did not find the zlib library or headers, exiting!' +- print 'Did not find the zlib library or headers, exiting!' ++ print('Did not find the zlib library or headers, exiting!') Exit(1) - if not 'USE_WIN32' in env['CPPDEFINES'] and not sys.platform.startswith('freebsd'): + if not conf.CheckLibWithHeader('png', 'png.h', 'c'): -+ print 'Did not find png library or headers, exiting!' ++ print('Did not find png library or headers, exiting!') + Exit(1) + if not 'USE_WIN32' in env['CPPDEFINES'] and not sys.platform.startswith('openbsd'): if not conf.CheckLib('dl'): - print 'Did not find dl library or header which is needed on some systems for lua. Exiting!' +- print 'Did not find dl library or header which is needed on some systems for lua. Exiting!' ++ print('Did not find dl library or header which is needed on some systems for lua. Exiting!') Exit(1) -@@ -207,12 +216,12 @@ def AutoConfigure(env): + if not CheckLuaLib(env, conf): +- print 'Did not find required lua library. Exiting!' ++ print('Did not find required lua library. Exiting!') + Exit(1) + if not CheckOpenGL(env, conf): +- print 'Did not find required OpenGL library. Exiting!' ++ print('Did not find required OpenGL library. Exiting!') Exit(1) # Check for optional libraries # @@ -89,12 +118,48 @@ $OpenBSD: patch-SConstruct,v 1.7 2013/09 # check for optional functions if conf.CheckFunc('strcasestr'): -@@ -265,7 +274,7 @@ addBosWarsPaths(env) +@@ -232,7 +236,7 @@ def AutoConfigure(env): + env.ParseConfig('sdl-config --libs') + if sys.platform != "darwin" and not '-Dmain=SDL_main' in env['CCFLAGS']: + if not conf.CheckLibWithHeader('SDL', 'SDL.h', 'c'): +- print 'Did not find SDL library or headers, exiting!' ++ print('Did not find SDL library or headers, exiting!') + Exit(1) + + env = conf.Finish() +@@ -245,14 +249,14 @@ def AutoConfigureIfNeeded(env, name): + # Remove outdated cache file + os.remove(cachename) + if optionsChanged or not os.path.exists(cachename): +- print cachename + " doesn't exist or out of date." +- print "Generating new build config cache ..." ++ print(cachename + " doesn't exist or out of date.") ++ print("Generating new build config cache ...") + cache = DefineOptions(cachename, {}) + AutoConfigure(env) + cache.Save(cachename, env) + else: + cache = DefineOptions(cachename, {}) +- print "Using " + cachename ++ print("Using " + cachename) + cache.Update(env) + + AutoConfigureIfNeeded(env, '') +@@ -265,7 +269,7 @@ addBosWarsPaths(env) # define the different build environments (variants) release = env.Clone() -release.Append(CCFLAGS = Split('-O2 -pipe -fomit-frame-pointer -fexpensive-optimizations -ffast-math')) -+release.Append(CCFLAGS = Split('-fomit-frame-pointer -fexpensive-optimizations -ffast-math')) ++release.Append(CCFLAGS = Split('-fomit-frame-pointer -ffast-math')) if mingw['extrapath']: mingw.Tool('crossmingw', toolpath = ['tools/scons/']) +@@ -311,7 +315,7 @@ if sys.platform.startswith('linux') or sys.platform.st + def DefineVariant(venv, v, vv = None): + if vv == None: + vv = '-' + v +- BuildDir('build/' + v, engineSourceDir, duplicate = 0) ++ VariantDir('build/' + v, engineSourceDir, duplicate = 0) + r = venv.Program('build/boswars' + vv, buildSourcesList('build/' + v)) + Alias(v, 'boswars' + vv) + return r Index: pingus/Makefile =================================================================== RCS file: /cvs/ports/games/pingus/Makefile,v retrieving revision 1.23 diff -u -p -r1.23 Makefile --- pingus/Makefile 21 Oct 2020 00:05:36 -0000 1.23 +++ pingus/Makefile 28 Oct 2021 02:36:49 -0000 @@ -3,7 +3,7 @@ COMMENT= free Lemmings-like game DISTNAME= pingus-0.7.6 -REVISION= 6 +REVISION= 7 CATEGORIES= games x11 EXTRACT_SUFX= .tar.bz2 Index: pingus/patches/patch-SConscript =================================================================== RCS file: /cvs/ports/games/pingus/patches/patch-SConscript,v retrieving revision 1.3 diff -u -p -r1.3 patch-SConscript --- pingus/patches/patch-SConscript 21 Oct 2020 00:05:36 -0000 1.3 +++ pingus/patches/patch-SConscript 28 Oct 2021 02:36:49 -0000 @@ -13,6 +13,23 @@ Index: SConscript self.opts.Add('LINKFLAGS', 'Linker Compiler flags', []) self.opts.Add(BoolVariable('with_opengl', 'Build with OpenGL support', True)) +@@ -126,12 +125,12 @@ class Project: + def configure_end(self): + self.env = self.conf.Finish() + +- print "Reports:" +- print self.reports ++ print("Reports:") ++ print(self.reports) + + if not self.fatal_error == "": +- print "Fatal Errors:" +- print self.fatal_error ++ print("Fatal Errors:") ++ print(self.fatal_error) + Exit(1) + + def configure_gxx(self): @@ -182,14 +181,13 @@ class Project: else: self.reports += " * XInput support: yes\n"