summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorJan Cholasta2016-05-27 07:35:25 +0200
committerJan Cholasta2016-05-27 08:23:27 +0200
commit605654d95315221b69987e0a71feb1c3d932f523 (patch)
treea367c9821a603390c716d8a5dbb7f515fc385085 /PKGBUILD
parentf0c267e9c843e2140b29c6801c2d9bc1ca9eeae9 (diff)
downloadaur-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--PKGBUILD82
1 files changed, 33 insertions, 49 deletions
diff --git a/PKGBUILD b/PKGBUILD
index cab60cc12255..d655c05e61ed 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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"