diff options
author | Jan Cholasta | 2016-05-27 07:35:25 +0200 |
---|---|---|
committer | Jan Cholasta | 2016-05-27 08:23:27 +0200 |
commit | 605654d95315221b69987e0a71feb1c3d932f523 (patch) | |
tree | a367c9821a603390c716d8a5dbb7f515fc385085 /PKGBUILD | |
parent | f0c267e9c843e2140b29c6801c2d9bc1ca9eeae9 (diff) | |
download | aur-605654d95315221b69987e0a71feb1c3d932f523.tar.gz |
zdoom-2.8.1-2
* Fix fmodex4.26.36 dependency
* Make gxmessage dependency optional, add alternatives
* Move cmake call from build() to prepare()
* Fix package rebuild
* Use linker option rather than patch to make stack not executable
* Move IWAD symlinks to /usr/lib, drop the related patch
* Remove install file as it was superseded by pacman hooks
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 82 |
1 files changed, 33 insertions, 49 deletions
@@ -2,21 +2,21 @@ # Contributor: Andrew Rabert <arabert@nullsum.net> # Build with the recommended fmodex version: -_fmodex=4.26.36 +_fmodex=fmodex4.26.36 # Build with the currently installed fmodex version: -#_fmodex=$(LC_ALL=C pacman -Q fmodex | grep -Po '(?<= ).+(?=-)') +#_fmodex=$(LC_ALL=C pacman -Q fmodex | sed -r 's/ /=/;s/-.*$//') # Build without fmodex: #_fmodex= # Build with OpenAL: -_openal=1 +_openal=openal # Build without OpenAL: #_openal= _name=zdoom pkgname=${_name} pkgver=2.8.1 -pkgrel=1 +pkgrel=2 _label='ZDoom' _desc='Advanced Doom source port' pkgdesc="${_desc}" @@ -24,13 +24,12 @@ arch=('i686' 'x86_64') url='http://www.zdoom.org/' license=('BSD' 'custom:BUILD' 'custom:doom' 'custom:dumb' 'LGPL') depends=('fluidsynth' - ${_fmodex:+"fmodex=$_fmodex"} + ${_fmodex} 'gtk2' - 'gxmessage' 'libgme' ${_openal:+'libsndfile'} ${_openal:+'mpg123'} - ${_openal:+'openal'} + ${_openal} 'sdl2') makedepends=('cmake' 'desktop-file-utils' @@ -42,55 +41,34 @@ optdepends=('blasphemer-wad: Blasphemer (free Heretic) game data' 'chexquest3-wad: Chex Quest 3 game data' 'doom1-wad: Doom shareware game data' 'freedoom: FreeDoom game data' + 'gxmessage: crash dialog (GNOME)' 'hacx-wad: HacX game data' 'harmony-wad: Harmony game data' 'heretic1-wad: Heretic shareware game data' 'hexen1-wad: Hexen demo game data' + 'kdebase-kdialog: crash dialog (KDE)' 'strife0-wad: Strife shareware game data' 'square1-wad: The Adventures of Square, Episode 1 game data' - 'urbanbrawl-wad: Urban Brawl: Action Doom 2 game data') -install=install + 'urbanbrawl-wad: Urban Brawl: Action Doom 2 game data' + 'xorg-xmessage: crash dialog (other)') source=("http://zdoom.org/files/${_name}/${pkgver%.${pkgver#*.*.}}/${_name}-${pkgver}-src.7z" - 'desktop.template' - '0001-Mark-stack-as-not-executable-in-assembler-sources.patch' - '0002-Include-SHARE_DIR-in-IWADSearch.Directories.patch') + 'launcher.desktop') noextract=("${source[0]##*/}") _srcsubdir='.' sha256sums=('782179d4667d2e56e26e21d7a0872523f8e4262ed176072fef00d0043376a310' - 'f2c58925238fe0d01e630527c8c4431681ccaec2d763ba075429b747d1a98a8c' - 'e41f5b11ccd73047bdd861fa3c4568430cf4120a3175efd5498ea6f1c439d7be' - 'e075a9a1da1dbb16c610b5d28e52ff9e941b7e3295c8fae429e865db9e0c66e4') + 'e8932a559baf30ecbfc062546ca014c6dfb70f76d1570549654209d39157e350') prepare() { 7z x -y "${source[0]##*/}" >/dev/null cd "${_srcsubdir}" - local _file - for _file in "${source[@]}"; do - if [[ "${_file}" == *.patch ]]; then - patch -p1 <"${srcdir}/${_file}" - fi - done -} - -build() { - cd "${_srcsubdir}" - - cat >"${_name}.sh" <<EOF -#!/bin/sh -exec /usr/lib/${_name}/${_name} "\$@" -EOF - - local _nofmod _noopenal _fmodincdir + local _nofmod _noopenal _fmodincdir _fmodlib if [[ -n "${_fmodex}" ]]; then _nofmod=OFF - - _fmodincdir="/usr/include/fmodex-${_fmodex}" - if [[ ! -e "${_fmodincdir}" ]]; then - _fmodincdir='/usr/include/fmodex' - fi + _fmodincdir=$(LC_ALL=C pacman -Ql ${_fmodex%=*} | grep -Eo '/usr/include/fmodex[^/]*/$') + _fmodlib=$(LC_ALL=C pacman -Ql ${_fmodex%=*} | grep -Eo '/usr/lib/libfmodex-[^/]*\.so$') else _nofmod=ON fi @@ -105,23 +83,29 @@ EOF -DNO_OPENAL=${_noopenal} \ -DGME_INCLUDE_DIR='/usr/include/gme' \ -DFMOD_INCLUDE_DIR="${_fmodincdir}" \ - -DFMOD_LIBRARY="/usr/lib/libfmodex-${_fmodex}.so" \ + -DFMOD_LIBRARY="${_fmodlib}" \ -DFORCE_INTERNAL_GME=OFF \ -DCMAKE_C_FLAGS="$CFLAGS -DSHARE_DIR=\\\"/usr/share/${_name}\\\"" \ -DCMAKE_CXX_FLAGS="$CXXFLAGS -DSHARE_DIR=\\\"/usr/share/${_name}\\\"" \ + -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -Wl,-z,noexecstack" \ . +} + +build() { + cd "${_srcsubdir}" + + cat >"${_name}.sh" <<EOF +#!/bin/sh +exec /usr/lib/${_name}/${_name} "\$@" +EOF + make sed -n '/\*\*-/,/\*\*-/p' 'src/version.h' >'bsd.txt' - cp "${srcdir}/desktop.template" "${_name}.desktop" - desktop-file-edit --set-name="${_label}" \ - --set-generic-name="${_desc}" \ - --set-icon="${_name}" \ - --set-key=Exec --set-value="${_name} %F" \ - "${_name}.desktop" + cp "${srcdir}/launcher.desktop" "${_name}.desktop" - mkdir 'icons' + mkdir -p 'icons' convert 'src/win32/icon1.ico[2]' 'icons/48.png' convert 'src/win32/icon1.ico[3]' 'icons/32.png' convert 'src/win32/icon1.ico[4]' 'icons/16.png' @@ -138,12 +122,12 @@ package() { if [[ -n "${_fmodex}" ]]; then install 'liboutput_sdl.so' "${pkgdir}/usr/lib/${_name}/" fi + ln -s '/usr/share/doom/doom.wad' "${pkgdir}/usr/lib/${_name}/freedoomu.wad" + ln -s '/usr/share/doom/doom2.wad' "${pkgdir}/usr/lib/${_name}/freedoom.wad" + ln -s '/usr/share/doom/heretic.wad' "${pkgdir}/usr/lib/${_name}/blasphemer.wad" + ln -s '/usr/share/doom/hexen.wad' "${pkgdir}/usr/lib/${_name}/hexendemo.wad" mkdir -p "${pkgdir}/usr/share/${_name}" - ln -s '/usr/share/doom/doom.wad' "${pkgdir}/usr/share/${_name}/freedoomu.wad" - ln -s '/usr/share/doom/doom2.wad' "${pkgdir}/usr/share/${_name}/freedoom.wad" - ln -s '/usr/share/doom/heretic.wad' "${pkgdir}/usr/share/${_name}/blasphemer.wad" - ln -s '/usr/share/doom/hexen.wad' "${pkgdir}/usr/share/${_name}/hexendemo.wad" mkdir -p "${pkgdir}/usr/share/licenses/${pkgname}" install -m644 'bsd.txt' "${pkgdir}/usr/share/licenses/${pkgname}/bsd.txt" |