Adjust to upstream changes

This commit is contained in:
vetu104 2024-11-16 12:27:55 +02:00
parent 1cea646cc3
commit cacff497d9
6 changed files with 97 additions and 42 deletions

View file

@ -1,6 +1,6 @@
pkgbase = vmangos-git
pkgdesc = MMORPG server emulator
pkgver = r6292.9b3b375ef
pkgver = r6390.e37b60804
pkgrel = 1
url = https://github.com/vmangos/
install = vmangos-git.install
@ -30,13 +30,15 @@ pkgbase = vmangos-git
source = vmangos-mangosd.service
source = vmangos-mangosd.socket
source = cpp17.patch
source = vmangos-extract-data.sh
sha256sums = SKIP
sha256sums = SKIP
sha256sums = 8061858ce3617c236cd09e72ab9ccdb39afd1b0f76659fdeead6861d247d5832
sha256sums = 4e48db8fa3291429f7b0a5fe7a5a696ddc1809efd781b78355e4d6804d4dadc3
sha256sums = 98b9de5d29c9b4d0531f55db946f2ebec80838fdcd96d319832a2a5e8a973ecd
sha256sums = cf30a0c18c6596235f3f95868a1d19bd2a07fd6accd946b619e3d1c3de8d3514
sha256sums = 9d99c70255ec8749a8d59010c53d76c41251783acfccf6c335c5dffa63b5d037
sha256sums = c3cee4cb049545cb9c0857f8977120d219d8afcf5c1cb0531546d38ecde98783
sha256sums = d04b6f59367d0fae2afd91dfa09837d55942838a28abb021637f9491b923e035
sha256sums = e2fb357832eda6c7c7467d36251c5c817b79320416a0dd13defe86000349cf2d
sha256sums = 9cbc844eb661f7cad602fbfa92fe8a4d849fe27320d53b3ca1557c4193d22ccc
pkgname = vmangos-git

View file

@ -1,7 +1,7 @@
# Maintainer: Janne Veteläinen <janne.p.w.vetelainen@gmail.com>
pkgname=vmangos-git
pkgver=r6292.9b3b375ef
pkgver=r6390.e37b60804
pkgrel=1
pkgdesc="MMORPG server emulator"
arch=('x86_64')
@ -39,15 +39,17 @@ source=(
"vmangos-mangosd.service"
"vmangos-mangosd.socket"
"cpp17.patch"
"vmangos-extract-data.sh"
)
sha256sums=('SKIP'
'SKIP'
'8061858ce3617c236cd09e72ab9ccdb39afd1b0f76659fdeead6861d247d5832'
'4e48db8fa3291429f7b0a5fe7a5a696ddc1809efd781b78355e4d6804d4dadc3'
'98b9de5d29c9b4d0531f55db946f2ebec80838fdcd96d319832a2a5e8a973ecd'
'cf30a0c18c6596235f3f95868a1d19bd2a07fd6accd946b619e3d1c3de8d3514'
'9d99c70255ec8749a8d59010c53d76c41251783acfccf6c335c5dffa63b5d037'
'c3cee4cb049545cb9c0857f8977120d219d8afcf5c1cb0531546d38ecde98783'
'd04b6f59367d0fae2afd91dfa09837d55942838a28abb021637f9491b923e035')
'e2fb357832eda6c7c7467d36251c5c817b79320416a0dd13defe86000349cf2d'
'9cbc844eb661f7cad602fbfa92fe8a4d849fe27320d53b3ca1557c4193d22ccc')
pkgver() {
cd "$srcdir/$pkgname"
@ -56,7 +58,7 @@ pkgver() {
prepare() {
cd "$srcdir/$pkgname"
patch < "$srcdir/cpp17.patch"
patch -p1 < "$srcdir/cpp17.patch"
cd "$srcdir/worlddb"
7z e world_full_14_june_2021.7z
@ -66,10 +68,14 @@ prepare() {
}
build() {
export CFLAGS="$CFLAGS -Wno-error=format-security"
export CXXFLAGS="$CXXFLAGS -Wno-error=format-security"
# "CMAKE_BUILD_TYPE=None" to use compiler flags from makepkg.conf
cmake -B build -S "$pkgname" \
-DCMAKE_BUILD_TYPE='None' \
-DCMAKE_INSTALL_PREFIX='/usr' \
-DSUPPORTED_CLIENT_BUILD=5875 \
-DUSE_ANTICHEAT=0 \
-DUSE_EXTRACTORS=1 \
-DCONF_DIR='/etc/vmangos'
cmake --build build
@ -78,6 +84,7 @@ build() {
package() {
# Install binaries
DESTDIR="$pkgdir/" cmake --install build
install -Dm655 vmangos-extract-data.sh "$pkgdir/usr/share/vmangos/vmangos-extract-data.sh"
# Rename conf files
mv "$pkgdir/etc/vmangos/realmd.conf.dist" "$pkgdir/etc/vmangos/realmd.conf"
@ -97,8 +104,8 @@ package() {
install -Dm644 tmpfile.conf "$pkgdir/usr/lib/tmpfiles.d/vmangos.conf"
# Install extractor related files
install -Dm644 "$srcdir/$pkgname/contrib/mmap/offmesh.txt" "$pkgdir/usr/share/vmangos/extractors/mmap/offmesh.txt"
install -Dm644 "$srcdir/$pkgname/contrib/mmap/config.json" "$pkgdir/usr/share/vmangos/extractors/mmap/config.json"
mkdir -p "$pkgdir/usr/share/vmangos"
mv "$pkgdir/usr/bin/Extractors" "$pkgdir/usr/share/vmangos/Extractors"
# Install sql scripts
cd "$srcdir/$pkgname/sql"

View file

@ -1,13 +1,13 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 58541aac..227cbdc4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -365,7 +365,7 @@ if(UNIX)
if(BUILD_FOR_HOST_CPU)
set(BUILD_ADDITIONAL_FLAGS "${BUILD_ADDITIONAL_FLAGS} -march=native")
endif()
- set(CMAKE_CXX_STANDARD 14)
+ set(CMAKE_CXX_STANDARD 17)
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(PROFILE_GENERATE)
set(BUILD_ADDITIONAL_FLAGS "${BUILD_ADDITIONAL_FLAGS} -fprofile-generate")
diff --git a/cmake/platform/unix/settings.cmake b/cmake/platform/unix/settings.cmake
index 1fc9908e..7ef9623d 100644
--- a/cmake/platform/unix/settings.cmake
+++ b/cmake/platform/unix/settings.cmake
@@ -16,7 +16,7 @@ set(BUILD_ADDITIONAL_FLAGS "${BUILD_ADDITIONAL_FLAGS} --no-warnings -fexceptions
if(BUILD_FOR_HOST_CPU)
set(BUILD_ADDITIONAL_FLAGS "${BUILD_ADDITIONAL_FLAGS} -march=native")
endif()
-set(CMAKE_CXX_STANDARD 14)
+set(CMAKE_CXX_STANDARD 17)
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(PROFILE_GENERATE)
set(BUILD_ADDITIONAL_FLAGS "${BUILD_ADDITIONAL_FLAGS} -fprofile-generate")

View file

@ -1,2 +1,3 @@
d /var/lib/vmangos 0755 vmangos vmangos -
d /var/log/vmangos 0755 vmangos vmangos -
d /var/lib/vmangos 0755 vmangos vmangos -
d /var/lib/vmangos/5875 0755 vmangos vmangos -
d /var/log/vmangos 0755 vmangos vmangos -

51
vmangos-extract-data.sh Normal file
View file

@ -0,0 +1,51 @@
#!/bin/bash
set -e
trap 'cleanup_and_exit' INT TERM HUP
BIN_DIR="/usr/share/vmangos/Extractors"
DATA_DIR="/var/lib/vmangos"
main () {
check_user
run_extractors
cleanup_and_exit
}
check_user () {
if [[ $(whoami) != vmangos ]]; then
>&2 echo "This script must be run as the vmangos user:"
>&2 echo " $ sudo -u vmangos /usr/share/vmangos/vmangos-extract-data.sh"
exit 1
fi
}
run_extractors () {
"$BIN_DIR/MapExtractor" -o "$DATA_DIR" && echo "Maps & DBC extracted"
pushd "$DATA_DIR" > /dev/null
"$BIN_DIR/VMapExtractor" -d "$OLDPWD/Data" && echo "VMaps extracted"
"$BIN_DIR/VMapAssembler" && echo "VMaps assembled"
"$BIN_DIR/MoveMapGenerator" --silent --configInputPath "$BIN_DIR/config.json" --offMeshInput "$BIN_DIR/offmesh.txt" 0 &
"$BIN_DIR/MoveMapGenerator" --silent --configInputPath "$BIN_DIR/config.json" --offMeshInput "$BIN_DIR/offmesh.txt" 1 &
"$BIN_DIR/MoveMapGenerator" --silent --configInputPath "$BIN_DIR/config.json" --offMeshInput "$BIN_DIR/offmesh.txt" --skipContinents &
wait && echo "Movemaps generated"
popd > /dev/null
}
kill_jobs () {
for pid in $(jobs -p); do
kill "$pid"
done
}
cleanup_and_exit () {
kill_jobs
[[ -d "$DATA_DIR/dbc" ]] && mv "$DATA_DIR/dbc" "$DATA_DIR/5875/dbc"
rm -rf "$DATA_DIR/Buildings"
rm -rf "$DATA_DIR/Cameras"
exit 0
}
main "$@"

View file

@ -1,25 +1,17 @@
## arg 1: the new package version
post_install() {
cat << EOF
** Mangosd expects game data files to be located in /var/lib/vmangos.
** These can be extracted from the client.
** The extraction takes multiple hours.
** These can be extracted from the client, or obtained from elsewhere and
** placed in the directory.
** Note that the extraction process will take up to a couple hours.
Procedure for extracting:
1. Copy config.json and offmesh.txt from
/usr/share/vmangos/extractors/mmap to your
MMORPG installation directory
2. Cd to your MMORPG installation directory
3. Extractors are installed system-wide. Run the extractors:
1. mapextractor
2. vmapextractor
3. vmap_assembler
4. MoveMapGen
4. Move the extracted data to /var/lib/vmangos:
1. ./dbc to /var/lib/vmangos/5875/dbc
2. ./maps, ./vmaps, ./mmaps to /var/lib/vmangos
3. ./Buildings, ./Cameras, ./config.json and ./offmesh.txt can be deleted.
5. Change ownership of the files:
# chown -R vmangos:vmangos /var/lib/vmangos
1. Cd to your MMORPG installation directory
2. $ sudo -u vmangos /usr/share/vmangos/vmangos-extract-data.sh
- Run as 'vmangos' user to have permissions over the target directory.
** Sql scripts to set up the databases can be found in /usr/share/vmangos/sql.
** Use MariaDB to set up databases.
@ -30,6 +22,8 @@ Procedure for extracting:
** To start the server, use
** # systemctl start vmangos-realmd vmangos-mangosd
** Stdin of the console can be written to at /run/vmangos-mangosd.stdin
EOF
}