Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##PKGBUILD
- # Maintainer: Felix Yan <[email protected]>
- # Contributor: Sergej Pupykin <[email protected]>
- # Contributor: Tinxy <arch at tinx dot eu>
- pkgname=(hedgewars hedgewars-server)
- pkgver=1.0.2
- pkgrel=140
- pkgdesc="Turn-based strategy artillery game similiar to Worms"
- arch=('x86_64')
- url="https://hedgewars.org"
- license=('GPL' 'custom')
- depends=('qt5-base' 'sdl2' 'sdl2_mixer' 'sdl2_image' 'sdl2_net' 'sdl2_ttf' 'lua51' 'ffmpeg4.4'
- 'physfs' 'ghc-libs' 'haskell-entropy' 'haskell-sha' 'haskell-random' 'haskell-regex-tdfa'
- 'haskell-sandi' 'haskell-hslogger' 'haskell-network' 'haskell-network-bsd'
- 'haskell-utf8-string' 'haskell-vector')
- makedepends=('fpc' 'cmake' 'qt5-tools' 'ghc' 'haskell-zlib' 'haskell-base-prelude' 'imagemagick'
- 'mesa')
- source=("https://www.hedgewars.org/download/releases/hedgewars-src-$pkgver.tar.bz2")
- sha512sums=('dc79cc48eee305d8dd2b64fcbfe598d48f8aec918d9065a6af4aef9be4e4940ad858836fc6bda46e02128b80dbba8c443a4f8a702a16b0ac969f8d0a0e080502')
- prepare() {
- cd hedgewars-src-$pkgver
- sed -e 's|cmake_minimum_required(VERSION 2.6.4)|cmake_minimum_required(VERSION 3.12.0)|' -e 's|add_subdirectory(gameServer)|add_subdirectory(gameServer EXCLUDE_FROM_ALL)|' \
- -e 's/CMP0026//' \
- -i CMakeLists.txt
- sed -i '/physlayer_fullpath/d' misc/libphyslayer/CMakeLists.txt
- #hedgwars gameServer CMakeLists.txt edits
- sed -e 's|set(ghc_flags|set(ghc_flags -dynamic|' \
- -e '1i cmake_minimum_required(VERSION 3.12.0)\nproject(hedgewars-server)' \
- -e '2a set(target_binary_install_dir "bin" CACHE PATH "install dest for binaries")' -i gameServer/CMakeLists.txt
- }
- build() {
- export PKG_CONFIG_PATH='/usr/lib/ffmpeg4.4/pkgconfig'
- #echo `ls ${srcdir}/hedgewars-src-$pkgver/cmake_modules/`
- cd hedgewars-src-$pkgver
- cmake \
- -Bhedgewars-server \
- -SgameServer \
- -DCMAKE_BUILD_TYPE="Release" \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_MODULE_PATH=${srcdir}/hedgewars-src-$pkgver/cmake_modules
- make -C hedgewars-server
- # resize icon
- for _size in 16 32 48 64 128 256; do
- convert +set date:create +set date:modify misc/hedgewars.png -resize ${_size}x${_size} hedgewars_${_size}.png
- done
- }
- package_hedgewars() {
- depends=('qt5-base' 'sdl2' 'sdl2_mixer' 'sdl2_image' 'sdl2_net'
- 'sdl2_ttf' 'lua51' 'ffmpeg4.4' 'physfs')
- cd hedgewars-src-$pkgver
- DESTDIR="$pkgdir" make -C build install
- install -D -m644 Fonts_LICENSE.txt "$pkgdir"/usr/share/licenses/${pkgname}/Fonts_LICENSE.txt
- # install icons
- install -D -m644 misc/hedgewars.png "$pkgdir"/usr/share/icons/hicolor/512x512/apps/hedgewars.png
- for _size in 16 32 48 64 128 256; do
- install -D -m644 hedgewars_${_size}.png "$pkgdir"/usr/share/icons/hicolor/${_size}x${_size}/apps/hedgewars.png
- done
- rm -rf "$pkgdir"/usr/share/pixmaps
- install -D -m644 share/hedgewars/Data/misc/hedgewars.desktop "$pkgdir"/usr/share/applications/hedgewars.desktop
- mv "$pkgdir"/usr/share/{appdata,metainfo}
- }
- package_hedgewars-server() {
- depends=('ghc-libs' 'haskell-entropy' 'haskell-sha' 'haskell-random' 'haskell-regex-tdfa'
- 'haskell-sandi' 'haskell-hslogger' 'haskell-network' 'haskell-network-bsd'
- 'haskell-utf8-string' 'haskell-vector' 'hedgewars')
- pkgdesc="Hedgewars game server for local/online play and making chat rooms."
- cd hedgewars-src-$pkgver
- DESTDIR="$pkgdir" make -C hedgewars-server install
- }
- ##gameServer/CMakeLists.txt
- cmake_minimum_required(VERSION 3.12.0)
- project(hedgewars-server)
- include(${CMAKE_MODULE_PATH}/utils.cmake)
- set(target_binary_install_dir "bin" CACHE PATH "install dest for binaries")
- find_package_or_disable(GHC NOSERVER)
- include(${CMAKE_MODULE_PATH}/CheckHaskellPackageExists.cmake)
- check_haskell_package_exists(base "Control.Exception" mask 1 REQUIRED)
- check_haskell_package_exists(containers "Data.Map" size 1 REQUIRED)
- check_haskell_package_exists(vector "Data.Vector" length 1 REQUIRED)
- check_haskell_package_exists(bytestring "Data.ByteString" pack 1 REQUIRED)
- check_haskell_package_exists(network "Network.Socket" defaultHints 0 REQUIRED)
- check_haskell_package_exists(network-bsd "Network.BSD" getHostName 0 OPTIONAL)
- check_haskell_package_exists(time "Data.Time" getCurrentTime 0 REQUIRED)
- check_haskell_package_exists(mtl "Control.Monad.State" fix 1 REQUIRED)
- check_haskell_package_exists(sandi "Codec.Binary.Base64" encode 1 REQUIRED)
- check_haskell_package_exists(hslogger "System.Log.Logger" warningM 1 REQUIRED)
- check_haskell_package_exists(process "System.Process" createProcess 3 REQUIRED)
- check_haskell_package_exists(utf8-string "Data.ByteString.Lazy.UTF8" decode 1 REQUIRED)
- check_haskell_package_exists(SHA "Data.Digest.Pure.SHA" sha1 1 REQUIRED)
- check_haskell_package_exists(entropy "System.Entropy" openHandle 0 REQUIRED)
- check_haskell_package_exists(zlib "Codec.Compression.Zlib" decompress 1 REQUIRED)
- check_haskell_package_exists(random "System.Random" getStdGen 0 REQUIRED)
- check_haskell_package_exists(regex-tdfa "Text.Regex.TDFA.ByteString" execute 2 REQUIRED)
- check_haskell_package_exists(deepseq "Control.DeepSeq" deepseq 2 REQUIRED)
- set(hwserver_sources
- OfficialServer/DBInteraction.hs
- Actions.hs
- ClientIO.hs
- ConfigFile.hs
- Consts.hs
- CoreTypes.hs
- EngineInteraction.hs
- FloodDetection.hs
- HWProtoCore.hs
- HWProtoInRoomState.hs
- HWProtoLobbyState.hs
- HWProtoNEState.hs
- HandlerUtils.hs
- JoinsMonitor.hs
- NetRoutines.hs
- Opts.hs
- RoomsAndClients.hs
- ServerCore.hs
- ServerState.hs
- Store.hs
- Utils.hs
- Votes.hs
- hedgewars-server.hs
- )
- set(hwserv_main ${CMAKE_CURRENT_SOURCE_DIR}/hedgewars-server.hs)
- set(ghc_flags -dynamic
- --make ${hwserv_main}
- -i${CMAKE_CURRENT_SOURCE_DIR}
- -o ${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}
- -odir ${CMAKE_CURRENT_BINARY_DIR}
- -hidir ${CMAKE_CURRENT_BINARY_DIR}
- ${haskell_flags})
- add_custom_command(OUTPUT "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}"
- COMMAND "${GHC_EXECUTABLE}"
- ARGS ${ghc_flags}
- MAIN_DEPENDENCY ${hwserv_main}
- DEPENDS ${hwserver_sources}
- )
- add_custom_target(hedgewars-server ALL DEPENDS "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}")
- install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hedgewars-server${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_binary_install_dir})
- ##Build log
- $ makechrootpkg -r $CHROOT -- --syncdeps
- [sudo] password for admin2:
- ==> Making package: hedgewars 1.0.2-140 (Sun Apr 13 12:36:47 2025)
- ==> Retrieving sources...
- -> Found hedgewars-src-1.0.2.tar.bz2
- ==> Validating source files with sha512sums...
- hedgewars-src-1.0.2.tar.bz2 ... Passed
- ==> Making package: hedgewars 1.0.2-140 (Sun Apr 13 07:06:53 2025)
- ==> Checking runtime dependencies...
- ==> Checking buildtime dependencies...
- ==> Retrieving sources...
- -> Found hedgewars-src-1.0.2.tar.bz2
- ==> WARNING: Skipping all source file integrity checks.
- ==> Extracting sources...
- -> Extracting hedgewars-src-1.0.2.tar.bz2 with bsdtar
- ==> Starting prepare()...
- ==> Starting build()...
- -- The C compiler identification is GNU 14.2.1
- -- The CXX compiler identification is GNU 14.2.1
- -- Detecting C compiler ABI info
- -- Detecting C compiler ABI info - done
- -- Check for working C compiler: /usr/bin/cc - skipped
- -- Detecting C compile features
- -- Detecting C compile features - done
- -- Detecting CXX compiler ABI info
- -- Detecting CXX compiler ABI info - done
- -- Check for working CXX compiler: /usr/bin/c++ - skipped
- -- Detecting CXX compile features
- -- Detecting CXX compile features - done
- -- Found GHC: /usr/bin/ghc
- -- Looking for Haskell package base ...
- -- Looking for Haskell package base - found
- -- Looking for Haskell package containers ...
- -- Looking for Haskell package containers - found
- -- Looking for Haskell package vector ...
- -- Looking for Haskell package vector - found
- -- Looking for Haskell package bytestring ...
- -- Looking for Haskell package bytestring - found
- -- Looking for Haskell package network ...
- -- Looking for Haskell package network - found
- -- Looking for Haskell package network-bsd ...
- -- Looking for Haskell package network-bsd - found
- -- Looking for Haskell package time ...
- -- Looking for Haskell package time - found
- -- Looking for Haskell package mtl ...
- -- Looking for Haskell package mtl - found
- -- Looking for Haskell package sandi ...
- -- Looking for Haskell package sandi - found
- -- Looking for Haskell package hslogger ...
- -- Looking for Haskell package hslogger - found
- -- Looking for Haskell package process ...
- -- Looking for Haskell package process - found
- -- Looking for Haskell package utf8-string ...
- -- Looking for Haskell package utf8-string - found
- -- Looking for Haskell package SHA ...
- -- Looking for Haskell package SHA - found
- -- Looking for Haskell package entropy ...
- -- Looking for Haskell package entropy - found
- -- Looking for Haskell package zlib ...
- -- Looking for Haskell package zlib - found
- -- Looking for Haskell package random ...
- -- Looking for Haskell package random - found
- -- Looking for Haskell package regex-tdfa ...
- -- Looking for Haskell package regex-tdfa - found
- -- Looking for Haskell package deepseq ...
- -- Looking for Haskell package deepseq - found
- -- Configuring done (1.5s)
- -- Generating done (0.0s)
- -- Build files have been written to: /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server
- make: Entering directory '/build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server'
- [100%] Generating /hedgewars-server
- [ 1 of 27] Compiling Consts ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/Consts.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/Consts.o )
- [ 2 of 27] Compiling Data.TConfig ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/Data/TConfig.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/Data/TConfig.o )
- [ 3 of 27] Compiling JoinsMonitor ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/JoinsMonitor.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/JoinsMonitor.o )
- [ 4 of 27] Compiling Store ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/Store.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/Store.o )
- [ 5 of 27] Compiling RoomsAndClients ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/RoomsAndClients.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/RoomsAndClients.o )
- [ 6 of 27] Compiling CoreTypes ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/CoreTypes.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/CoreTypes.o )
- [ 7 of 27] Compiling ServerState ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/ServerState.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/ServerState.o )
- [ 8 of 27] Compiling OfficialServer.DBInteraction ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/OfficialServer/DBInteraction.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/OfficialServer/DBInteraction.o )
- [ 9 of 27] Compiling HandlerUtils ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/HandlerUtils.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/HandlerUtils.o )
- [10 of 27] Compiling HWProtoChecker ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/HWProtoChecker.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/HWProtoChecker.o )
- [11 of 27] Compiling ConfigFile ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/ConfigFile.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/ConfigFile.o )
- [12 of 27] Compiling ClientIO ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/ClientIO.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/ClientIO.o )
- [13 of 27] Compiling Utils ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/Utils.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/Utils.o )
- [14 of 27] Compiling Opts ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/Opts.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/Opts.o )
- [15 of 27] Compiling NetRoutines ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/NetRoutines.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/NetRoutines.o )
- [16 of 27] Compiling HWProtoNEState ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/HWProtoNEState.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/HWProtoNEState.o )
- [17 of 27] Compiling FloodDetection ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/FloodDetection.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/FloodDetection.o )
- [18 of 27] Compiling EngineInteraction ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/EngineInteraction.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/EngineInteraction.o )
- [19 of 27] Compiling CommandHelp ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/CommandHelp.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/CommandHelp.o )
- [20 of 27] Compiling HWProtoLobbyState ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/HWProtoLobbyState.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/HWProtoLobbyState.o )
- [21 of 27] Compiling Votes ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/Votes.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/Votes.o )
- [22 of 27] Compiling HWProtoInRoomState ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/HWProtoInRoomState.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/HWProtoInRoomState.o )
- [23 of 27] Compiling HWProtoCore ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/HWProtoCore.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/HWProtoCore.o )
- [24 of 27] Compiling Actions ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/Actions.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/Actions.o )
- [25 of 27] Compiling ServerCore ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/ServerCore.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/ServerCore.o )
- [26 of 27] Compiling Main ( /build/hedgewars/src/hedgewars-src-1.0.2/gameServer/hedgewars-server.hs, /build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server/Main.o )
- [27 of 27] Linking /hedgewars-server
- /usr/bin/ld.gold: fatal error: /hedgewars-server: open: Permission denied
- collect2: error: ld returned 1 exit status
- ghc-9.4.8: `gcc' failed in phase `Linker'. (Exit code: 1)
- make[2]: *** [CMakeFiles/hedgewars-server.dir/build.make:96: /hedgewars-server] Error 1
- make[1]: *** [CMakeFiles/Makefile2:87: CMakeFiles/hedgewars-server.dir/all] Error 2
- make: *** [Makefile:136: all] Error 2
- make: Leaving directory '/build/hedgewars/src/hedgewars-src-1.0.2/hedgewars-server'
- ==> ERROR: A failure occurred in build().
- Aborting...
- ==> ERROR: Build failed, check /home/admin2/Downloads/hedgewars-main/hwchroot/admin2/build
Add Comment
Please, Sign In to add comment