Repository navigation
ports: update openage to 0.6.0 - #5
Merged
Merged
Conversation
ligurio
force-pushed
the
ligurio/gh-xxxx-games-openage
branch
13 times, most recently
from
October 14, 2026 09:31
281d90c to
4666c54
Compare
Some ports install a large number of generated files, so writing their pkg/PLIST by hand is impractical. When a port listed in changed-ports.txt has no committed packing list, run 'make update-plist' in the VM and publish the result as a ci-packages/<port>/PLIST artifact, so it can be reviewed and committed afterwards. update-plist moves the previous packing list aside as pkg/PLIST.orig; drop that backup again, otherwise portcheck reports it as an extra file.
Factor the log dumping into a show_errors() helper and use it when 'make update-plist' fails, so a broken generated packing list can be debugged straight from the job output.
The custom shell only syncs VM files back to the runner when the command it wraps exits successfully. A failed build therefore left ci-logs/ and ci-packages/ inside the VM, so the upload-artifact steps found nothing. Trigger the sync explicitly (also on failure) before uploading.
Building openage recompiles a lot of C++ and Cython on every run. Enable the ports framework's ccache support (USE_CCACHE=Yes) and keep the cache inside the workspace (CCACHE_DIR=ci-cache/ccache), so the workflow can persist it with actions/cache and restore it on the next run; unchanged translation units are then taken from the cache instead of recompiled. The cache is capped at 2G and compressed to stay well within the repository cache limit, and ccache itself is installed from packages in the VM. The setup and build steps now sync runner-to-vm only, so the (possibly large) cache directory is not copied back mid-run; the existing "Sync VM files back" step pulls everything back once, before the cache is saved.
toml11 is a C++11 header-only TOML parser and encoder, needed as a build dependency by games/openage. The port installs the headers and the CMake package files; tests, examples and precompilation are disabled.
nyan is the data description language used by the openage engine, needed as a build and runtime dependency by games/openage. The package provides libnyan, its C++ headers, the CMake package config and the nyancat tool. Doxygen and the CMake user package registration are disabled. Patches: - patches/patch-nyan_CMakeLists_txt: relax 'find_package(FLEX 2.6 REQUIRED)' to 'find_package(FLEX REQUIRED)', because flex ships with the OpenBSD base system as version 2.5.39 and the 2.6 requirement cannot be satisfied; and skip '-Wl,--no-undefined' on OpenBSD, where the linker does not pull libc into the shared library, so the strict check fails on the libc symbols used by the generated flex scanner and error.cpp (resolved from libc at load time).
The previous port targeted a 2014 snapshot built with gcc4, python 3.4,
SDL2, FTGL and GLEW; those patches and dependencies no longer match
upstream and the distfile was a rolling master tarball.
Update to the 0.6.0 release: C++20, CMake, Python 3, Cython and Qt6, with
runtime dependencies on nyan, toml11, libepoxy (from Xenocara), harfbuzz,
opus/opusfile/ogg, freetype, fontconfig and eigen3. Doxygen, Vulkan,
inotify, backtrace and gperftools support are disabled.
Patches:
- patches/patch-buildsystem_codegen_cmake: rename the 'codegen' CMake
target to 'cppgen'. CMake 3.31 and later reserve 'codegen' as a target
name (policy CMP0171), which makes configuration fail.
- patches/patch-libopenage_CMakeLists_txt: follow that rename in
AUTOGEN_TARGET_DEPENDS ('codegen' -> 'cppgen'), and skip
'find_library(RT_LIB rt)' on OpenBSD, which provides no librt (upstream
requires it on every non-Apple, non-Windows system). Matches upstream
PR #1783.
- patches/patch-buildsystem_cpp_cmake: do not link libopenage with
'-Wl,--no-undefined' on OpenBSD. Shared libraries on OpenBSD are not
linked against libc, so the strict undefined-symbol check fails on libc
symbols; the flag setup is reworked so the Apple and other-ELF cases are
unchanged.
- patches/patch-libopenage_error_handlers_cpp: typedef sig_t as
sighandler_t on OpenBSD, which has no sighandler_t.
- patches/patch-libopenage_pathfinding_pathfinder_cpp: initialise the
integer 'entry_sector' with 0 instead of NULL. OpenBSD defines NULL as
nullptr, which does not convert to the sector_id_t (size_t) member.
- patches/patch-libopenage_util_os_cpp: implement self_exec_filename() on
OpenBSD via sysctl(KERN_PROC_ARGS) argv[0]. OpenBSD has neither
/proc/self/exe nor KERN_PROC_PATHNAME, so the previous code hit a
static_assert; include <sys/sysctl.h> for it.
- patches/patch-libopenage_util_pty_h: on OpenBSD include <util.h> (for
forkpty()/openpty(), provided by the already-linked libutil),
<termios.h>, <sys/types.h> and <sys/ioctl.h> instead of the missing
<pty.h>.
The packing list was generated with 'make update-plist' and is committed.
ligurio
force-pushed
the
ligurio/gh-xxxx-games-openage
branch
from
October 14, 2026 12:16
4666c54 to
412a5d8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.