Skip to content

Commit dfed96f

Browse files
committed
games/etlegacy: New port: a second breath of life for Wolfenstein: Enemy Territory
ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3. There are two aspects to this project: - An updated game engine, ET: Legacy, which aims to fix bugs and security exploits, remove old dependencies, add useful features and modernize its graphics while still remaining compatible with ET 2.60b and as many of its mods as possible. - A new mod, Legacy, which aims to add many useful features and improvements while staying close to the original gameplay, as well as being lightweight and extensible through Lua scripts.
1 parent c08ccc4 commit dfed96f

File tree

10 files changed

+309
-0
lines changed

10 files changed

+309
-0
lines changed

‎games/Makefile‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@
241241
SUBDIR += entombed
242242
SUBDIR += enygma
243243
SUBDIR += epiphany-game
244+
SUBDIR += etlegacy
244245
SUBDIR += etracer
245246
SUBDIR += euchre
246247
SUBDIR += eureka

‎games/etlegacy/Makefile‎

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
PORTNAME= etlegacy
2+
DISTVERSION= 2.81.1
3+
CATEGORIES= games
4+
MASTER_SITES= https://mirror.etlegacy.com/geoip/:geoip \
5+
https://mirror.etlegacy.com/wolfadmin/:wolfadmin
6+
DISTFILES= wolfadmin.tar.gz:wolfadmin \
7+
GeoIP.dat.tar.gz:geoip
8+
DIST_SUBDIR= ${PORTNAME}-${DISTVERSION}
9+
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
10+
11+
MAINTAINER= acm@FreeBSD.org
12+
COMMENT= a second breath of life for Wolfenstein: Enemy Territory
13+
WWW= https://www.etlegacy.com/
14+
15+
LICENSE= GPLv3
16+
LICENSE_FILE= ${WRKSRC}/COPYING.txt
17+
18+
USES= cmake compiler:c++11-lib desktop-file-utils localbase \
19+
lua pkgconfig sqlite
20+
USE_CXXSTD= c++11
21+
USE_GITHUB= yes
22+
GH_TAGNAME= 956269f4c13ebe31ba2a0f0b805588383209bd5b
23+
24+
CMAKE_ARGS+= -DCROSS_COMPILE32=OFF \
25+
-DBUNDLED_LIBS=OFF \
26+
-DBUNDLED_LIBS_DEFAULT=OFF \
27+
-DCLIENT_GLVND=ON \
28+
-DFEATURE_RENDERER2=OFF \
29+
-DENABLE_SSE=ON \
30+
-DFEATURE_AUTOUPDATE=OFF \
31+
-DINSTALL_DEFAULT_BASEDIR=${PREFIX}/lib/${PORTNAME}
32+
33+
OPTIONS_DEFAULT= CLIENT DEDICATED
34+
OPTIONS_MULTI= FLAVOR
35+
OPTIONS_MULTI_FLAVOR= CLIENT DEDICATED
36+
OPTIONS_SUB= yes
37+
38+
CLIENT_DESC= Build client
39+
DEDICATED_DESC= Build dedicated server
40+
41+
CLIENT_LIB_DEPENDS= libcurl.so:ftp/curl \
42+
libcjson.so:devel/libcjson \
43+
libfreetype.so:print/freetype2 \
44+
libogg.so:audio/libogg \
45+
libpng.so:graphics/png \
46+
libvorbis.so:audio/libvorbis \
47+
libtheora.so:multimedia/libtheora
48+
CLIENT_USES= gl jpeg openal:soft,alut minizip sdl xorg
49+
CLIENT_USE= GL=gl,glu,glew SDL=sdl2 XORG=x11,xxf86dga,xxf86vm
50+
51+
SUB_FILES= pkg-message
52+
53+
.include <bsd.port.pre.mk>
54+
55+
.if ${ARCH} == "i386"
56+
PLIST_SUB+= I386="" \
57+
AMD64="@comment "
58+
.elif ${ARCH} == "amd64"
59+
PLIST_SUB+= I386="@comment " \
60+
AMD64=""
61+
.endif
62+
63+
.if ! ${PORT_OPTIONS:MCLIENT} && ${PORT_OPTIONS:MDEDICATED}
64+
CMAKE_ARGS+= -DBUILD_CLIENT=OFF
65+
.endif
66+
67+
post-extract:
68+
@${MKDIR} ${WRKDIR}/.build/legacy
69+
@cd ${WRKDIR}/.build/legacy && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/GeoIP.dat.tar.gz ${EXTRACT_AFTER_ARGS}
70+
@cd ${WRKDIR}/.build/legacy && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/wolfadmin.tar.gz ${EXTRACT_AFTER_ARGS}
71+
72+
post-patch:
73+
${REINPLACE_CMD} -e 's|AMD64|amd64|g' ${WRKSRC}/cmake/ETLPlatform.cmake
74+
75+
.include <bsd.port.post.mk>

‎games/etlegacy/distinfo‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
TIMESTAMP = 1704840749
2+
SHA256 (etlegacy-2.81.1/wolfadmin.tar.gz) = 31659b1d99cd5c9884a66317f803109e631a315e1102842e4e4d29b8579397d1
3+
SIZE (etlegacy-2.81.1/wolfadmin.tar.gz) = 1128868
4+
SHA256 (etlegacy-2.81.1/GeoIP.dat.tar.gz) = 1aa7023f599d01fce77861ff331d1024cd92918edf527c2f37f4a37732183a2b
5+
SIZE (etlegacy-2.81.1/GeoIP.dat.tar.gz) = 1120171
6+
SHA256 (etlegacy-2.81.1/etlegacy-etlegacy-2.81.1-956269f4c13ebe31ba2a0f0b805588383209bd5b_GH0.tar.gz) = 1863d4bcc5352be89069189e96a27260a930af09c12765b3499a5d975fa1b31a
7+
SIZE (etlegacy-2.81.1/etlegacy-etlegacy-2.81.1-956269f4c13ebe31ba2a0f0b805588383209bd5b_GH0.tar.gz) = 15548868
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
--- cmake/ETLInstallGeoIP.cmake.orig 2024-01-09 22:56:11 UTC
2+
+++ cmake/ETLInstallGeoIP.cmake
3+
@@ -7,6 +7,7 @@ set(ETLEGACY_GEOIP_ARCHIVE_URL "https://mirror.etlegac
4+
set(ETLEGACY_GEOIP_ARCHIVE "GeoIP.dat.tar.gz")
5+
set(ETLEGACY_GEOIP_ARCHIVE_URL "https://mirror.etlegacy.com/geoip/GeoIP.dat.tar.gz")
6+
7+
+if(NOT CMAKE_SYSTEM MATCHES "FreeBSD")
8+
LEG_DOWNLOAD(
9+
"GeoIP archive"
10+
"${ETLEGACY_GEOIP_ARCHIVE_URL}"
11+
@@ -15,6 +16,7 @@ LEG_DOWNLOAD(
12+
"${CMAKE_CURRENT_BINARY_DIR}/${MODNAME}"
13+
"${CMAKE_CURRENT_BINARY_DIR}/${MODNAME}/GeoIP.dat"
14+
)
15+
+endif()
16+
17+
message(STATUS "Adding GeoIP to installer scripts")
18+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${MODNAME}/GeoIP.dat"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
--- cmake/ETLInstallWolfAdmin.cmake.orig 2024-01-09 22:56:24 UTC
2+
+++ cmake/ETLInstallWolfAdmin.cmake
3+
@@ -7,6 +7,7 @@ set(ETLEGACY_WOLFADMIN_ARCHIVE_URL "https://mirror.etl
4+
set(ETLEGACY_WOLFADMIN_ARCHIVE "wolfadmin.tar.gz")
5+
set(ETLEGACY_WOLFADMIN_ARCHIVE_URL "https://mirror.etlegacy.com/wolfadmin/wolfadmin.tar.gz")
6+
7+
+if(NOT CMAKE_SYSTEM MATCHES "FreeBSD")
8+
LEG_DOWNLOAD(
9+
"WolfAdmin archive"
10+
"${ETLEGACY_WOLFADMIN_ARCHIVE_URL}"
11+
@@ -15,6 +16,7 @@ LEG_DOWNLOAD(
12+
"${CMAKE_CURRENT_BINARY_DIR}/${MODNAME}"
13+
"${CMAKE_CURRENT_BINARY_DIR}/${MODNAME}/wolfadmin"
14+
)
15+
+endif()
16+
17+
file(COPY "${CMAKE_CURRENT_BINARY_DIR}/${MODNAME}/wolfadmin/luascripts"
18+
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/${MODNAME}"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
--- cmake/ETLVersion.cmake.orig 2024-01-09 22:59:31 UTC
2+
+++ cmake/ETLVersion.cmake
3+
@@ -97,6 +97,7 @@ endmacro(GENERATENUMBER)
4+
endmacro(GENERATENUMBER)
5+
6+
7+
+if(NOT CMAKE_SYSTEM MATCHES "FreeBSD")
8+
execute_process(COMMAND git describe --abbrev=7
9+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
10+
OUTPUT_STRIP_TRAILING_WHITESPACE
11+
@@ -105,6 +106,7 @@ execute_process(COMMAND git describe --abbrev=0
12+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
13+
OUTPUT_STRIP_TRAILING_WHITESPACE
14+
OUTPUT_VARIABLE GIT_DESCRIBE_TAG)
15+
+endif()
16+
17+
if(GIT_DESCRIBE)
18+
set(ETL_CMAKE_VERSION ${GIT_DESCRIBE})
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
--- src/renderercommon/tr_font.c.orig 2024-01-10 04:52:35 UTC
2+
+++ src/renderercommon/tr_font.c
3+
@@ -202,7 +202,7 @@ static glyphInfo_t *RE_ConstructGlyphInfo(int imageSiz
4+
5+
rc = FT_Load_Glyph(face, index, flags);
6+
7+
- if (rc)
8+
+ if (rc != 0)
9+
{
10+
Ren_Warning("RE_ConstructGlyphInfo: cannot load a glyph into the glyph slot of a face object.\n");
11+
return &glyph; // nothing to render
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{ type: install
2+
message: <<EOM
3+
Enemy Territory Legacy (native version) has been installed.
4+
5+
1) In order to run ET: Legacy you will need to copy the original pak0.pk3
6+
assets file to the etmain folder. In addition, third party mods might also
7+
require the pak1.pk3 and pak2.pk3 assets files.
8+
9+
Download them from https://mirror.etlegacy.com/etmain/ to
10+
11+
%%PREFIX%%/lib/etlegacy/etmain/ or ~/.etlegacy/etmain/
12+
13+
2) Enjoy it :)
14+
EOM
15+
}
16+
]

‎games/etlegacy/pkg-descr‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
ET: Legacy is an open source project based on the code of Wolfenstein: Enemy
2+
Territory which was released in 2010 under the terms of the GPLv3.
3+
4+
There are two aspects to this project:
5+
6+
- An updated game engine, ET: Legacy, which aims to fix bugs and security
7+
exploits, remove old dependencies, add useful features and modernize its
8+
graphics while still remaining compatible with ET 2.60b and as many of its mods
9+
as possible.
10+
11+
- A new mod, Legacy, which aims to add many useful features and improvements
12+
while staying close to the original gameplay, as well as being lightweight and
13+
extensible through Lua scripts.

‎games/etlegacy/pkg-plist‎

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
%%AMD64%%%%CLIENT%%bin/etl.x86_64
2+
%%I386%%%%CLIENT%%bin/etl.i386
3+
%%AMD64%%%%DEDICATED%%bin/etlded.x86_64
4+
%%I386%%%%DEDICATED%%bin/etlded.i386
5+
lib/etlegacy/etmain/campaigncycle.cfg
6+
lib/etlegacy/etmain/etl_server.cfg
7+
lib/etlegacy/etmain/etl_server_comp.cfg
8+
lib/etlegacy/etmain/legacy.cfg
9+
lib/etlegacy/etmain/lmscycle.cfg
10+
lib/etlegacy/etmain/mapvotecycle.cfg
11+
lib/etlegacy/etmain/mapvoteplayerscount.cfg
12+
lib/etlegacy/etmain/objectivecycle.cfg
13+
lib/etlegacy/legacy/GeoIP.dat
14+
lib/etlegacy/legacy/banners.toml
15+
lib/etlegacy/legacy/description.txt
16+
lib/etlegacy/legacy/greetings.toml
17+
lib/etlegacy/legacy/legacy_2.81-dirty.pk3
18+
lib/etlegacy/legacy/lualibs/legacydb.lua
19+
lib/etlegacy/legacy/lualibs/toml.lua
20+
lib/etlegacy/legacy/luascripts/wolfadmin/COPYING.txt
21+
lib/etlegacy/legacy/luascripts/wolfadmin/admin/admin.lua
22+
lib/etlegacy/legacy/luascripts/wolfadmin/admin/balancer.lua
23+
lib/etlegacy/legacy/luascripts/wolfadmin/admin/banners.lua
24+
lib/etlegacy/legacy/luascripts/wolfadmin/admin/bans.lua
25+
lib/etlegacy/legacy/luascripts/wolfadmin/admin/history.lua
26+
lib/etlegacy/legacy/luascripts/wolfadmin/admin/mutes.lua
27+
lib/etlegacy/legacy/luascripts/wolfadmin/admin/rules.lua
28+
lib/etlegacy/legacy/luascripts/wolfadmin/auth/acl.lua
29+
lib/etlegacy/legacy/luascripts/wolfadmin/auth/auth.lua
30+
lib/etlegacy/legacy/luascripts/wolfadmin/auth/shrubbot.lua
31+
lib/etlegacy/legacy/luascripts/wolfadmin/auth/shrubbot/etpub.lua
32+
lib/etlegacy/legacy/luascripts/wolfadmin/auth/shrubbot/nq.lua
33+
lib/etlegacy/legacy/luascripts/wolfadmin/auth/shrubbot/silent.lua
34+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/admintest.lua
35+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/balance.lua
36+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/ban.lua
37+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/cointoss.lua
38+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/enablevote.lua
39+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/finger.lua
40+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/gib.lua
41+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/greeting.lua
42+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/help.lua
43+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/incognito.lua
44+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/kick.lua
45+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/kickbots.lua
46+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/listaliases.lua
47+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/listmaps.lua
48+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/listplayers.lua
49+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/lock.lua
50+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/mute.lua
51+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/needbots.lua
52+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/news.lua
53+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/nextmap.lua
54+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/pause.lua
55+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/plock.lua
56+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/punlock.lua
57+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/put.lua
58+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/putbots.lua
59+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/readconfig.lua
60+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/rename.lua
61+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/reset.lua
62+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/restart.lua
63+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/rules.lua
64+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/setlevel.lua
65+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/showbans.lua
66+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/showhistory.lua
67+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/shuffle.lua
68+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/slap.lua
69+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/spec999.lua
70+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/stats.lua
71+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/swap.lua
72+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/time.lua
73+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/unban.lua
74+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/unlock.lua
75+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/unmute.lua
76+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/unpause.lua
77+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/vmute.lua
78+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/vunmute.lua
79+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/admin/warn.lua
80+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/client/ac.lua
81+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/client/callvote.lua
82+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/client/pm.lua
83+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/client/r.lua
84+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/client/say.lua
85+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/client/team.lua
86+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/client/wolfadmin.lua
87+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/commands.lua
88+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/server/acl.lua
89+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/server/cannounce.lua
90+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/server/cbp.lua
91+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/server/cchat.lua
92+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/server/ccp.lua
93+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/server/ccpm.lua
94+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/server/cmusic.lua
95+
lib/etlegacy/legacy/luascripts/wolfadmin/commands/server/csay.lua
96+
lib/etlegacy/legacy/luascripts/wolfadmin/db/db.lua
97+
lib/etlegacy/legacy/luascripts/wolfadmin/db/mysql.lua
98+
lib/etlegacy/legacy/luascripts/wolfadmin/db/sqlite3.lua
99+
lib/etlegacy/legacy/luascripts/wolfadmin/game/bots.lua
100+
lib/etlegacy/legacy/luascripts/wolfadmin/game/fireteams.lua
101+
lib/etlegacy/legacy/luascripts/wolfadmin/game/game.lua
102+
lib/etlegacy/legacy/luascripts/wolfadmin/game/teams.lua
103+
lib/etlegacy/legacy/luascripts/wolfadmin/game/voting.lua
104+
lib/etlegacy/legacy/luascripts/wolfadmin/main.lua
105+
lib/etlegacy/legacy/luascripts/wolfadmin/players/greetings.lua
106+
lib/etlegacy/legacy/luascripts/wolfadmin/players/players.lua
107+
lib/etlegacy/legacy/luascripts/wolfadmin/players/stats.lua
108+
lib/etlegacy/legacy/luascripts/wolfadmin/util/bits.lua
109+
lib/etlegacy/legacy/luascripts/wolfadmin/util/constants.lua
110+
lib/etlegacy/legacy/luascripts/wolfadmin/util/debug.lua
111+
lib/etlegacy/legacy/luascripts/wolfadmin/util/events.lua
112+
lib/etlegacy/legacy/luascripts/wolfadmin/util/files.lua
113+
lib/etlegacy/legacy/luascripts/wolfadmin/util/logs.lua
114+
lib/etlegacy/legacy/luascripts/wolfadmin/util/pagination.lua
115+
lib/etlegacy/legacy/luascripts/wolfadmin/util/settings.lua
116+
lib/etlegacy/legacy/luascripts/wolfadmin/util/tables.lua
117+
lib/etlegacy/legacy/luascripts/wolfadmin/util/timers.lua
118+
lib/etlegacy/legacy/luascripts/wolfadmin/util/util.lua
119+
%%AMD64%%lib/etlegacy/legacy/qagame.mp.fbsd.x86_64.so
120+
%%I386%%lib/etlegacy/legacy/qagame.mp.fbsd.i386.so
121+
lib/etlegacy/legacy/rules.toml
122+
lib/etlegacy/legacy/wolfadmin.toml
123+
%%AMD64%%lib/etlegacy/librenderer_opengl1_x86_64.so
124+
%%I386%%lib/etlegacy/librenderer_opengl1_i386.so
125+
%%AMD64%%share/applications/com.etlegacy.ETLegacy.x86_64.desktop
126+
%%I386%%share/applications/com.etlegacy.ETLegacy.i386.desktop
127+
%%DOCSDIR%%/INSTALL.txt
128+
share/icons/hicolor/scalable/apps/etl.svg
129+
share/man/man6/etl.6.gz
130+
share/man/man6/etlded.6.gz
131+
share/metainfo/com.etlegacy.ETLegacy.metainfo.xml
132+
share/mime/packages/etlegacy.xml

0 commit comments

Comments
 (0)