diff --git a/games/openage/Makefile b/games/openage/Makefile index 0aa19528262c..07fd3bf4bc06 100644 --- a/games/openage/Makefile +++ b/games/openage/Makefile @@ -1,55 +1,50 @@ 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 LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/legal/GPLv3 BUILD_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \ ${PY_PILLOW} \ ${PYTHON_PKGNAMEPREFIX}pygments>0:textproc/py-pygments@${PY_FLAVOR} LIB_DEPENDS= libepoxy.so:graphics/libepoxy \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libogg.so:audio/libogg \ libopus.so:audio/opus \ libopusfile.so:audio/opusfile \ libpng.so:graphics/png \ libnyan.so:lang/nyan RUN_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \ ${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 eigen:3 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 USE_GL= gl glu USE_QT= core declarative gui network buildtools_build qmake_build USE_PYTHON= cython 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 @${MKDIR} ${STAGEDIR}${PREFIX}/etc/xdg .include 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,178 +1,185 @@ ---- 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) - endif() endif() -find_library(FONTCONFIG_LIB fontconfig) +if ("${CMAKE_SYSTEM_NAME}" MATCHES "(Free|Net|Open)BSD") + find_library(EXECINFO_LIB execinfo) + find_path(NYAN_INCLUDE_DIR "nyan.h" PATHS /usr/local/include/nyan ) + 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 -find_package(nyan CONFIG) +#find_package(nyan CONFIG) # 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 - "whether to clone the nyan project in case it is not found" - OFF -) +#option( +# DOWNLOAD_NYAN +# "whether to clone the nyan project in case it is not found" +# OFF +#) -option( - FORCE_DOWNLOAD_NYAN - "Force the download and usage of the nyan project" - OFF -) +#option( +# FORCE_DOWNLOAD_NYAN +# "Force the download and usage of the nyan project" +# OFF +#) -option( - DISABLE_SUBPROJECT_UPDATES - "Disable the automatic update of subprojects over the internet" - OFF -) +#option( +# DISABLE_SUBPROJECT_UPDATES +# "Disable the automatic update of subprojects over the internet" +# OFF +#) # if nyan was not found, consider downloading it as subproject # only use the subproject mode if it was requested # 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...") +# +# 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} ++# 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!") - -- 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\". +# 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() +- 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,27 +1,27 @@ ---- 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")), } +FREEBSD_DIRS = { + "config_home": ("XDG_CONFIG_HOME", ("{HOME}/.config", {"HOME"})), + "data_home": ("XDG_DATA_HOME", ("{HOME}/.local/share", {"HOME"})), + "data_dirs": ("XDG_DATA_DIRS", ("/usr/local/share/", {})), + "config_dirs": ("XDG_CONFIG_DIRS", ("/etc/xdg", {})), + "cache_home": ("XDG_CACHE_HOME", ("{HOME}/.cache", {"HOME"})), + "runtime_dir": ("XDG_RUNTIME_DIR", ("/run/user/$UID")), +} # 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,280 +1,293 @@ -%%ETCDIR%%/keybinds.oac bin/openage +%%ETCDIR%%/keybinds.oac lib/libopenage.so lib/libopenage.so.0 %%PYTHON_SITELIBDIR%%/openage/__init__.py %%PYTHON_SITELIBDIR%%/openage/__main__.py %%PYTHON_SITELIBDIR%%/openage/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/__pycache__/__main__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/__pycache__/assets.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/__pycache__/config.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/__pycache__/default_dirs.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/assets.py %%PYTHON_SITELIBDIR%%/openage/cabextract/__init__.py %%PYTHON_SITELIBDIR%%/openage/cabextract/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/cabextract/__pycache__/cab.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/cabextract/__pycache__/lzxdstream.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/cabextract/__pycache__/test.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/cabextract/cab.py %%PYTHON_SITELIBDIR%%/openage/cabextract/cabchecksum%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/cabextract/lzxd%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/cabextract/lzxdstream.py %%PYTHON_SITELIBDIR%%/openage/cabextract/test.py %%PYTHON_SITELIBDIR%%/openage/codegen/__init__.py %%PYTHON_SITELIBDIR%%/openage/codegen/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/codegen/__pycache__/codegen.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/codegen/__pycache__/coord.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/codegen/__pycache__/cpp_testlist.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/codegen/__pycache__/gamespec_structs.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/codegen/__pycache__/listing.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/codegen/__pycache__/main.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/codegen/codegen.py %%PYTHON_SITELIBDIR%%/openage/codegen/coord.py %%PYTHON_SITELIBDIR%%/openage/codegen/cpp_testlist.py %%PYTHON_SITELIBDIR%%/openage/codegen/gamespec_structs.py %%PYTHON_SITELIBDIR%%/openage/codegen/listing.py %%PYTHON_SITELIBDIR%%/openage/codegen/main.py %%PYTHON_SITELIBDIR%%/openage/config.py %%PYTHON_SITELIBDIR%%/openage/convert/__init__.py %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/binpack.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/blendomatic.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/changelog.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/colortable.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/driver.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/drs.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/fix_data.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/game_versions.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/hdlanguagefile.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/main.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/pefile.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/peresource.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/singlefile.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/slp_converter_pool.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/stringresource.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/__pycache__/texture.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/binpack.py %%PYTHON_SITELIBDIR%%/openage/convert/blendomatic.py %%PYTHON_SITELIBDIR%%/openage/convert/changelog.py %%PYTHON_SITELIBDIR%%/openage/convert/colortable.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__init__.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/content_snippet.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/data_definition.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/data_formatter.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/entry_parser.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/exportable.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/generated_file.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/header_snippet.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/member_access.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/members.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/multisubtype_base.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/struct_definition.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/struct_snippet.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/__pycache__/util.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/content_snippet.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/data_definition.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/data_formatter.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/entry_parser.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/exportable.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/generated_file.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/header_snippet.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/member_access.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/members.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/multisubtype_base.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/struct_definition.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/struct_snippet.py %%PYTHON_SITELIBDIR%%/openage/convert/dataformat/util.py %%PYTHON_SITELIBDIR%%/openage/convert/driver.py %%PYTHON_SITELIBDIR%%/openage/convert/drs.py %%PYTHON_SITELIBDIR%%/openage/convert/fix_data.py %%PYTHON_SITELIBDIR%%/openage/convert/game_versions.py %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/__init__.py %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/__pycache__/civ.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/__pycache__/empiresdat.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/__pycache__/graphic.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/__pycache__/maps.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/__pycache__/playercolor.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/__pycache__/research.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/__pycache__/sound.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/__pycache__/tech.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/__pycache__/terrain.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/__pycache__/unit.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/civ.py %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/empiresdat.py %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/graphic.py %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/maps.py %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/playercolor.py %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/research.py %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/sound.py %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/tech.py %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/terrain.py %%PYTHON_SITELIBDIR%%/openage/convert/gamedata/unit.py %%PYTHON_SITELIBDIR%%/openage/convert/hardcoded/__init__.py %%PYTHON_SITELIBDIR%%/openage/convert/hardcoded/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/hardcoded/__pycache__/langcodes.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/hardcoded/__pycache__/langcodes_hd.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/hardcoded/__pycache__/termcolors.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/hardcoded/__pycache__/terrain_tile_size.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/hardcoded/__pycache__/texture.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/hardcoded/langcodes.py %%PYTHON_SITELIBDIR%%/openage/convert/hardcoded/langcodes_hd.py %%PYTHON_SITELIBDIR%%/openage/convert/hardcoded/termcolors.py %%PYTHON_SITELIBDIR%%/openage/convert/hardcoded/terrain_tile_size.py %%PYTHON_SITELIBDIR%%/openage/convert/hardcoded/texture.py %%PYTHON_SITELIBDIR%%/openage/convert/hdlanguagefile.py %%PYTHON_SITELIBDIR%%/openage/convert/interface/__init__.py %%PYTHON_SITELIBDIR%%/openage/convert/interface/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/interface/__pycache__/cutter.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/interface/__pycache__/hardcoded.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/interface/__pycache__/rename.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/interface/cutter.py %%PYTHON_SITELIBDIR%%/openage/convert/interface/hardcoded.py %%PYTHON_SITELIBDIR%%/openage/convert/interface/rename.py %%PYTHON_SITELIBDIR%%/openage/convert/interface/visgrep%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/convert/main.py %%PYTHON_SITELIBDIR%%/openage/convert/opus/__init__.py %%PYTHON_SITELIBDIR%%/openage/convert/opus/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/opus/__pycache__/demo.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/convert/opus/demo.py %%PYTHON_SITELIBDIR%%/openage/convert/opus/opusenc%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/convert/pefile.py %%PYTHON_SITELIBDIR%%/openage/convert/peresource.py %%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 %%PYTHON_SITELIBDIR%%/openage/cppinterface/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/cppinterface/__pycache__/setup.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/cppinterface/exctranslate%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/cppinterface/exctranslate_tests%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/cppinterface/pyobject%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/cppinterface/setup.py %%PYTHON_SITELIBDIR%%/openage/cppinterface/setup_checker%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/cvar/__init__.py %%PYTHON_SITELIBDIR%%/openage/cvar/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/cvar/__pycache__/config_file.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/cvar/__pycache__/location.cpython-%%PYTHON_SUFFIX%%.pyc %%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 %%PYTHON_SITELIBDIR%%/openage/game/main.py %%PYTHON_SITELIBDIR%%/openage/game/main_cpp%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/log/__init__.py %%PYTHON_SITELIBDIR%%/openage/log/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%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 %%PYTHON_SITELIBDIR%%/openage/testing/__pycache__/doctest.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/testing/__pycache__/list_processor.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/testing/__pycache__/main.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/testing/__pycache__/testing.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/testing/__pycache__/testlist.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/testing/benchmark.py %%PYTHON_SITELIBDIR%%/openage/testing/cpp_testing%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/testing/doctest.py %%PYTHON_SITELIBDIR%%/openage/testing/list_processor.py %%PYTHON_SITELIBDIR%%/openage/testing/main.py %%PYTHON_SITELIBDIR%%/openage/testing/misc_cpp%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/testing/testing.py %%PYTHON_SITELIBDIR%%/openage/testing/testlist.py %%PYTHON_SITELIBDIR%%/openage/util/__init__.py %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/bytequeue.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/context.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/decorators.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/files.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/fsprinting.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/iterators.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/math.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/profiler.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/strings.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/struct.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/system.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/__pycache__/threading.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/bytequeue.py %%PYTHON_SITELIBDIR%%/openage/util/context.py %%PYTHON_SITELIBDIR%%/openage/util/decorators.py %%PYTHON_SITELIBDIR%%/openage/util/filelike/__init__.py %%PYTHON_SITELIBDIR%%/openage/util/filelike/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/filelike/__pycache__/abstract.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/filelike/__pycache__/fifo.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/filelike/__pycache__/readonly.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/filelike/__pycache__/stream.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/filelike/abstract.py %%PYTHON_SITELIBDIR%%/openage/util/filelike/cpp%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/util/filelike/fifo.py %%PYTHON_SITELIBDIR%%/openage/util/filelike/readonly.py %%PYTHON_SITELIBDIR%%/openage/util/filelike/stream.py %%PYTHON_SITELIBDIR%%/openage/util/files.py %%PYTHON_SITELIBDIR%%/openage/util/fslike/__init__.py %%PYTHON_SITELIBDIR%%/openage/util/fslike/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/fslike/__pycache__/abstract.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/fslike/__pycache__/directory.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/fslike/__pycache__/filecollection.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/fslike/__pycache__/path.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/fslike/__pycache__/test.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/fslike/__pycache__/union.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/fslike/__pycache__/wrapper.cpython-%%PYTHON_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/openage/util/fslike/abstract.py %%PYTHON_SITELIBDIR%%/openage/util/fslike/cpp%%PYTHON_EXT_SUFFIX%%.so %%PYTHON_SITELIBDIR%%/openage/util/fslike/directory.py %%PYTHON_SITELIBDIR%%/openage/util/fslike/filecollection.py %%PYTHON_SITELIBDIR%%/openage/util/fslike/path.py %%PYTHON_SITELIBDIR%%/openage/util/fslike/test.py %%PYTHON_SITELIBDIR%%/openage/util/fslike/union.py %%PYTHON_SITELIBDIR%%/openage/util/fslike/wrapper.py %%PYTHON_SITELIBDIR%%/openage/util/fsprinting.py %%PYTHON_SITELIBDIR%%/openage/util/iterators.py %%PYTHON_SITELIBDIR%%/openage/util/math.py %%PYTHON_SITELIBDIR%%/openage/util/profiler.py %%PYTHON_SITELIBDIR%%/openage/util/strings.py %%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 %%DATADIR%%/missing.png %%DATADIR%%/qml/.gitignore %%DATADIR%%/qml/Actions.qml %%DATADIR%%/qml/ActionsGrid.qml %%DATADIR%%/qml/BindsHelp.qml %%DATADIR%%/qml/ButtonExtruded.qml %%DATADIR%%/qml/ButtonExtrudedStyle.qml %%DATADIR%%/qml/ButtonFlat.qml %%DATADIR%%/qml/ButtonFlatStyle.qml %%DATADIR%%/qml/CheckBoxFlat.qml %%DATADIR%%/qml/CheckBoxFlatStyle.qml %%DATADIR%%/qml/CreateGameWhenReady.qml %%DATADIR%%/qml/GeneratorControl.qml %%DATADIR%%/qml/GeneratorParametersConfiguration.qml %%DATADIR%%/qml/IngameHud.qml %%DATADIR%%/qml/Paper.qml %%DATADIR%%/qml/TextFieldFlat.qml %%DATADIR%%/qml/TextFieldFlatStyle.qml %%DATADIR%%/qml/TypePicker.qml %%DATADIR%%/qml/main.qml %%DATADIR%%/shaders/alphamask.frag.glsl %%DATADIR%%/shaders/alphamask.vert.glsl %%DATADIR%%/shaders/equalsEpsilon.glsl %%DATADIR%%/shaders/identity.vert.glsl %%DATADIR%%/shaders/maptexture.frag.glsl %%DATADIR%%/shaders/maptexture.vert.glsl %%DATADIR%%/shaders/teamcolors.frag.glsl %%DATADIR%%/shaders/texturefont.frag.glsl %%DATADIR%%/shaders/texturefont.vert.glsl %%DATADIR%%/textures/torn_paper_edge.docx %%DATADIR%%/textures/torn_paper_edge.png share/pixmaps/openage.svg @dir etc/xdg