commit 2040a7e947f65214de3d31fb00bb595bcb73249b Author: Thierry Thomas Date: Mon Aug 16 22:12:59 2021 +0200 games/openage: upgrade to v0.4.1 - release notes at - also chase the upgrade of py-Pygments to 2.9, with a patch from upstream commit 3aa91ea4d4a72a5f3b6f90ad0390b9e07de7aa77 diff --git a/games/openage/Makefile b/games/openage/Makefile index 0aa19528262c..b16dcf9fe08e 100644 --- a/games/openage/Makefile +++ b/games/openage/Makefile @@ -1,13 +1,8 @@ PORTNAME= openage DISTVERSIONPREFIX= v -DISTVERSION= 0.3.0-1262 -DISTVERSIONSUFFIX= -ga554ab49 -PORTREVISION= 5 +DISTVERSION= 0.4.1 CATEGORIES= games -PATCH_SITES= https://github.com/SFTtech/openage/commit/ -PATCHFILES= 663b1158018d839eb5cfed63f4b228c1590c6104.patch:-p1 - MAINTAINER= freebsd@sysctl.cz COMMENT= Free engine clone of the Genie Engine @@ -15,6 +10,7 @@ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/legal/GPLv3 BUILD_DEPENDS= ${PYNUMPY} \ + eigen>0:math/eigen3 \ ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \ ${PY_PILLOW} \ ${PYTHON_PKGNAMEPREFIX}pygments>0:textproc/py-pygments@${PY_FLAVOR} @@ -32,8 +28,8 @@ RUN_DEPENDS= ${PYNUMPY} \ ${PY_PILLOW} \ ${PYTHON_PKGNAMEPREFIX}pygments>0:textproc/py-pygments@${PY_FLAVOR} -USES= cmake compiler:c++17-lang gl python:3.4+ qt:5 sdl shebangfix -SHEBANG_FILES= configure run.py buildsystem/cythonize.py +USES= cmake compiler:c++17-lang gl ncurses:base python:3.4+ qt:5 sdl shebangfix +SHEBANG_FILES= configure run.py.in buildsystem/cythonize.py USE_GITHUB= yes GH_ACCOUNT= SFTtech USE_SDL= image2 sdl2 @@ -45,8 +41,8 @@ USE_LDCONFIG= yes CMAKE_OFF= WANT_BACKTRACE WANT_GPERFTOOLS_PROFILER WANT_INOTIFY CMAKE_ARGS= -DGLOBAL_CONFIG_DIR:STRING=${ETCDIR} -post-patch: - @${REINPLACE_CMD} -e 's|/usr/bin/env python3|${PYTHON_CMD}|' ${WRKSRC}/buildsystem/modules/FindPython.cmake +pre-configure: + ${REINPLACE_CMD} -e 's|python3|${PYTHON_CMD}|' ${WRKSRC}/openage/codegen/main.py post-install: @${MKDIR} ${STAGEDIR}${PREFIX}/etc/openage diff --git a/games/openage/distinfo b/games/openage/distinfo index 7a103cee3b35..75018f680a67 100644 --- a/games/openage/distinfo +++ b/games/openage/distinfo @@ -1,5 +1,3 @@ -TIMESTAMP = 1586003415 -SHA256 (SFTtech-openage-v0.3.0-1262-ga554ab49_GH0.tar.gz) = a0c7de5b4a187fb991c4f3e560d80f1a7afc411812ab4d7ab49a63c61b446e29 -SIZE (SFTtech-openage-v0.3.0-1262-ga554ab49_GH0.tar.gz) = 2081730 -SHA256 (663b1158018d839eb5cfed63f4b228c1590c6104.patch) = defe0d166e0c70524b53ebaa61e6e220e7e1b6c569b3dd33088eb4d47bf8779a -SIZE (663b1158018d839eb5cfed63f4b228c1590c6104.patch) = 1365 +TIMESTAMP = 1628960206 +SHA256 (SFTtech-openage-v0.4.1_GH0.tar.gz) = 9d83138cc0f544b0fae799f10cbbaec7671511f9600a869bdb755668db0e5ccf +SIZE (SFTtech-openage-v0.4.1_GH0.tar.gz) = 2321890 diff --git a/games/openage/files/patch-buildsystem_pxdgen.py b/games/openage/files/patch-buildsystem_pxdgen.py new file mode 100644 index 000000000000..645f3eb92dd7 --- /dev/null +++ b/games/openage/files/patch-buildsystem_pxdgen.py @@ -0,0 +1,23 @@ +--- buildsystem/pxdgen.py.orig 2020-08-15 10:50:07 UTC ++++ buildsystem/pxdgen.py +@@ -23,6 +23,7 @@ class ParserError(Exception): + """ + Represents a fatal parsing error in PXDGenerator. + """ ++ + def __init__(self, filename, lineno, message): + super().__init__("{}:{} {}".format(filename, lineno, message)) + +@@ -218,8 +219,11 @@ class PXDGenerator: + return self.handle_token(token, val) + + def handle_state_1(self, token, val, namespace_parts): ++ # Patch from upstream, commit 3aa91ea4d4a72a5f3b6f90ad0390b9e07de7aa77 + # we're inside a namespace definition; expect Token.Name +- if token != Token.Name: ++ # TODO: pygments 2.9 correctly reports Token.Name.Namespace ++ # we can require this version eventually and change the condition ++ if token not in Token.Name: + raise self.parser_error( + "expected identifier after 'namespace'") + namespace_parts.append(val) diff --git a/games/openage/files/patch-libopenage_CMakeLists.txt b/games/openage/files/patch-libopenage_CMakeLists.txt index a3e4cc3db316..cd4e8314d6e3 100644 --- a/games/openage/files/patch-libopenage_CMakeLists.txt +++ b/games/openage/files/patch-libopenage_CMakeLists.txt @@ -1,8 +1,8 @@ ---- libopenage/CMakeLists.txt.orig 2018-07-14 15:12:15 UTC +--- libopenage/CMakeLists.txt.orig 2020-08-15 10:50:07 UTC +++ libopenage/CMakeLists.txt -@@ -86,13 +86,21 @@ if(MSVC) +@@ -38,13 +38,21 @@ if(WIN32) endif() - if(NOT APPLE AND NOT MSVC) + if(NOT APPLE AND NOT WIN32) find_library(RT_LIB rt) - if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - find_library(EXECINFO_LIB execinfo) @@ -16,17 +16,17 @@ + find_library(NYAN_LIBRARY NAMES "nyan" PATHS /usr/local/lib ) + list(APPEND CMAKE_REQUIRED_INCLUDES ${NYAN_INCLUDE_DIR}) + list(APPEND CMAKE_REQUIRED_LIBRARIES ${NYAN_LIBRARY}) -+ + +# message(STATUS ${NYAN_INCLUDE_DIR}) +# message(STATUS ${NYAN_LIBRARY}) +endif() + - ++ +find_library(FONTCONFIG_LIB fontconfig) find_package(Freetype REQUIRED) - find_package(OpenGL REQUIRED) find_package(PNG REQUIRED) -@@ -115,74 +123,74 @@ endif() + find_package(SDL2 REQUIRED) +@@ -70,78 +78,78 @@ endif() # first, try to locate nyan directly # this discovers the system package or the user-registry package @@ -35,8 +35,12 @@ # if this didn't work, we can download nyan like a git submodule. # this is the treeish to be checked out. --set(nyan_clone_version origin/master) -+#set(nyan_clone_version origin/master) +-if(NOT DEFINED NYAN_CLONE_VERSION) +- set(NYAN_CLONE_VERSION origin/master) +-endif() ++#if(NOT DEFINED NYAN_CLONE_VERSION) ++# set(NYAN_CLONE_VERSION origin/master) ++#endif() -option( - DOWNLOAD_NYAN @@ -76,40 +80,6 @@ # or if it was used before. -if((NOT nyan_FOUND AND DOWNLOAD_NYAN) OR FORCE_DOWNLOAD_NYAN) - message(STATUS "Downloading nyan as submodule project...") -- -- if(DISABLE_SUBPROJECT_UPDATES) -- set(DISABLE_NYAN_UPDATES "DISABLE_UPDATES") -- endif() -- -- fetch_project( -- NAME nyan -- ${DISABLE_NYAN_UPDATES} -- GIT_REPOSITORY https://github.com/SFTtech/nyan -- GIT_TAG ${nyan_clone_version} -- ) -- -- # don't register nyan to the userpackage-repo! -- set(REGISTER_USERPACKAGE OFF) -- # don't generate the `doc` target again (name conflict!) -- set(DOXYGEN_ENABLE OFF) -- -- # register the targets -- add_subdirectory(${nyan_SOURCE_DIR} ${nyan_BINARY_DIR}) -- -- message(STATUS "nyan processed successfully!") -- --elseif(NOT nyan_FOUND) -- message(FATAL_ERROR " -- Could not find the cmake package configuration file \"nyanConfig.cmake\". -- To find it, you have several options: -- * If your distribution provides it, install \"nyan\" through the package manager. -- * If you want openage to automatically download \"nyan\", append `-DDOWNLOAD_NYAN=YES` to the cmake invocation or use `./configure --download-nyan`. -- * If you want to build nyan manually, follow the build instructions: -- [[ doc/building.md#nyan-installation ]] -- * If you already built nyan but it still can't be found (cmake package repo fails): -- * Try to set \"nyan_DIR\" to the nyan build directory (it contains nyanConfig.cmake) -- either through: \"./configure $youroptions -- -Dnyan_DIR=/home/dev/nyan/build\" -- or: \"cmake $yourotheroptions -Dnyan_DIR=/home/dev/nyan/build ..\" +#if((NOT nyan_FOUND AND DOWNLOAD_NYAN) OR FORCE_DOWNLOAD_NYAN) +# message(STATUS "Downloading nyan as submodule project...") +# @@ -121,7 +91,7 @@ +# NAME nyan +# ${DISABLE_NYAN_UPDATES} +# GIT_REPOSITORY https://github.com/SFTtech/nyan -+# GIT_TAG ${nyan_clone_version} ++# GIT_TAG ${NYAN_CLONE_VERSION} +# ) +# +# # don't register nyan to the userpackage-repo! @@ -133,11 +103,7 @@ +# add_subdirectory(${nyan_SOURCE_DIR} ${nyan_BINARY_DIR}) +# +# message(STATUS "nyan processed successfully!") - -- In case of other problems, please try to figure them out (and tell us what you did). -- Contact information is in README.md. --") --endif() ++# +#elseif(NOT nyan_FOUND) +# message(FATAL_ERROR " +# Could not find the cmake package configuration file \"nyanConfig.cmake\". @@ -156,23 +122,64 @@ +#") +#endif() +- if(DISABLE_SUBPROJECT_UPDATES) +- set(DISABLE_NYAN_UPDATES "DISABLE_UPDATES") +- endif() + +- fetch_project( +- NAME nyan +- ${DISABLE_NYAN_UPDATES} +- GIT_REPOSITORY https://github.com/SFTtech/nyan +- GIT_TAG ${NYAN_CLONE_VERSION} +- ) +- +- # don't register nyan to the userpackage-repo! +- set(REGISTER_USERPACKAGE OFF) +- # don't generate the `doc` target again (name conflict!) +- set(DOXYGEN_ENABLE OFF) +- +- # register the targets +- add_subdirectory(${nyan_SOURCE_DIR} ${nyan_BINARY_DIR}) +- +- message(STATUS "nyan processed successfully!") +- +-elseif(NOT nyan_FOUND) +- message(FATAL_ERROR " +- Could not find the cmake package configuration file \"nyanConfig.cmake\". +- To find it, you have several options: +- * If your distribution provides it, install \"nyan\" through the package manager. +- * If you want openage to automatically download \"nyan\", append `-DDOWNLOAD_NYAN=YES` to the cmake invocation or use `./configure --download-nyan`. +- * If you want to build nyan manually, follow the build instructions: +- [[ doc/building.md#nyan-installation ]] +- * If you already built nyan but it still can't be found (cmake package repo fails): +- * Try to set \"nyan_DIR\" to the nyan build directory (it contains nyanConfig.cmake) +- either through: \"./configure $youroptions -- -Dnyan_DIR=/home/dev/nyan/build\" +- or: \"cmake $yourotheroptions -Dnyan_DIR=/home/dev/nyan/build ..\" +- +- In case of other problems, please try to figure them out (and tell us what you did). +- Contact information is in README.md. +-") +-endif() +- +- + ################################################## + # optional dependencies - if(GCCBacktrace_FOUND) -@@ -245,6 +253,7 @@ include_directories( +@@ -264,6 +272,7 @@ target_include_directories(libopenage ${SDL2IMAGE_INCLUDE_DIRS} ${HarfBuzz_INCLUDE_DIRS} ${QTPLATFORM_INCLUDE_DIRS} + ${NYAN_INCLUDE_DIRS} ) - # link the executable to those libraries -@@ -265,7 +274,8 @@ target_link_libraries(libopenage - ${RT_LIB} - ${OGG_LIB} - ${EXECINFO_LIB} + ################################################## +@@ -274,7 +283,8 @@ target_include_directories(libopenage + target_link_libraries(libopenage + PRIVATE + Threads::Threads - nyan::nyan + ${NYAN_LIBRARY} +# nyan::nyan - - # TODO: change to PUBLIC (or, alternatively, remove all keywords - # of this type) when qt cmake scripts change declarations of the + Eigen3::Eigen + ${PNG_LIBRARIES} + ${OPUS_LIBRARIES} diff --git a/games/openage/files/patch-openage_default__dirs.py b/games/openage/files/patch-openage_default__dirs.py index c854e99323d1..c4eab7f570c7 100644 --- a/games/openage/files/patch-openage_default__dirs.py +++ b/games/openage/files/patch-openage_default__dirs.py @@ -1,4 +1,4 @@ ---- openage/default_dirs.py.orig 2018-07-15 14:29:49 UTC +--- openage/default_dirs.py.orig 2020-08-15 10:50:07 UTC +++ openage/default_dirs.py @@ -33,6 +33,14 @@ LINUX_DIRS = { "runtime_dir": ("XDG_RUNTIME_DIR", ("/run/user/$UID")), @@ -15,13 +15,13 @@ # Windows-specific paths WINDOWS_DIRS = { -@@ -60,6 +68,9 @@ def get_dir(which): +@@ -59,6 +67,9 @@ def get_dir(which): + elif sys.platform.startswith("win32"): platform_table = WINDOWS_DIRS - ++ + elif sys.platform.startswith("freebsd"): + platform_table = FREEBSD_DIRS -+ + else: raise Exception("unsupported platform: '%s'" % sys.platform) - diff --git a/games/openage/pkg-descr b/games/openage/pkg-descr index f99822111dad..7daa620b4b51 100644 --- a/games/openage/pkg-descr +++ b/games/openage/pkg-descr @@ -1,8 +1,8 @@ Openage: a volunteer project to create a free engine clone of the Genie Engine -used by Age of Empires, Age of Empires II (HD) and Star Wars: Galactic -Battlegrounds, comparable to projects like OpenMW, OpenRA, OpenTTD and -OpenRCT2. Openage uses the original game assets (such as sounds and graphics), -but (for obvious reasons) doesn't ship them. To play, you require an original +used by Age of Empires, Age of Empires II (HD) and Star Wars: Galactic +Battlegrounds, comparable to projects like OpenMW, OpenRA, OpenTTD and +OpenRCT2. Openage uses the original game assets (such as sounds and graphics), +but (for obvious reasons) doesn't ship them. To play, you require an original AoE II : TC installation or AoE II: HD (installation via Wine). WWW: https://openage.sft.mx/ diff --git a/games/openage/pkg-plist b/games/openage/pkg-plist index a68114d48af7..e838a0935031 100644 --- a/games/openage/pkg-plist +++ b/games/openage/pkg-plist @@ -1,5 +1,5 @@ -%%ETCDIR%%/keybinds.oac bin/openage +%%ETCDIR%%/keybinds.oac lib/libopenage.so lib/libopenage.so.0 %%PYTHON_SITELIBDIR%%/openage/__init__.py @@ -144,6 +144,8 @@ lib/libopenage.so.0 %%PYTHON_SITELIBDIR%%/openage/convert/singlefile.py %%PYTHON_SITELIBDIR%%/openage/convert/slp%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/convert/slp_converter_pool.py +%%PYTHON_SITELIBDIR%%/openage/convert/smp%%PYTHON_EXT_SUFFIX%%.so +%%PYTHON_SITELIBDIR%%/openage/convert/smx%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/convert/stringresource.py %%PYTHON_SITELIBDIR%%/openage/convert/texture.py %%PYTHON_SITELIBDIR%%/openage/cppinterface/__init__.py @@ -161,7 +163,11 @@ lib/libopenage.so.0 %%PYTHON_SITELIBDIR%%/openage/cvar/config_file.py %%PYTHON_SITELIBDIR%%/openage/cvar/cvar%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/cvar/location.py +%%PYTHON_SITELIBDIR%%/openage/cython_check%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/default_dirs.py +%%PYTHON_SITELIBDIR%%/openage/event/__init__.py +%%PYTHON_SITELIBDIR%%/openage/event/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/openage/event/demo%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/game/__init__.py %%PYTHON_SITELIBDIR%%/openage/game/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/game/__pycache__/main.cpython-%%PYTHON_SUFFIX%%.pyc @@ -172,6 +178,10 @@ lib/libopenage.so.0 %%PYTHON_SITELIBDIR%%/openage/log/__pycache__/tests.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/log/log_cpp%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/log/tests.py +%%PYTHON_SITELIBDIR%%/openage/renderer/__init__.py +%%PYTHON_SITELIBDIR%%/openage/renderer/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/openage/renderer/renderer_cpp%%PYTHON_EXT_SUFFIX%%.so +%%PYTHON_SITELIBDIR%%/openage/renderer/tests%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/testing/__init__.py %%PYTHON_SITELIBDIR%%/openage/testing/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/testing/__pycache__/benchmark.cpython-%%PYTHON_SUFFIX%%.pyc @@ -242,6 +252,9 @@ lib/libopenage.so.0 %%PYTHON_SITELIBDIR%%/openage/util/struct.py %%PYTHON_SITELIBDIR%%/openage/util/system.py %%PYTHON_SITELIBDIR%%/openage/util/threading.py +%%PYTHON_SITELIBDIR%%/openage/versions/__init__.py +%%PYTHON_SITELIBDIR%%/openage/versions/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/openage/versions/versions%%PYTHON_EXT_SUFFIX%%.so share/applications/openage.desktop %%DATADIR%%/banner.svg %%DATADIR%%/gaben.png