makedeb
Aka doomrl, tactical roguelike game based on the FPS Doom.
Viewing /PKGBUILD
.
Click here to go back to the Git tree for drl-bin.
# Maintainer: exponential <echo ZXhwb25lbnRpYWxtYXRyaXhAcHJvdG9ubWFpbC5jb20K | base64 -d>
pkgname="drl-bin"
_pkgname="${pkgname%-bin}"
pkgver="0.9.9.8a"
#_pkgver=${pkgver//./}
_pkgver="0998"
# low quality
#_pkgver="$_pkgver-lq"
# for libc6 >0.38
_debver="2.40-3"
pkgrel=0
pkgdesc="Aka doomrl, tactical roguelike game based on the FPS Doom."
arch=('amd64')
url="http://drl.chaosforge.org/"
license=('GPL2' 'CCPL:cc-by-nc-sa-4.0')
makedepends=('ffmpeg')
depends=('liblua5.1-0')
optdepends=('libsdl2-image-2.0-0: gui version'
'libsdl2-ttf-2.0-0: gui version'
'libncursesw6: alternate console version'
'libsdl2-mixer-2.0-0: SDL sound'
'libfmod: alternate commercial sound library')
source=("https://github.com/chaosforgeorg/doomrl/releases/download/${pkgver//./_}/drl-linux-$_pkgver.tar.gz"
"drl.bmp::https://github.com/chaosforgeorg/doomrl/blob/0_9_9_8a/install/install_small.bmp?raw=true"
"LICENSE-$pkgver::https://github.com/chaosforgeorg/doomrl/raw/refs/tags/${pkgver//./_}/bin/graphics/LICENSE"
"http://deb.debian.org/debian/pool/main/g/glibc/libc6_${_debver}_amd64.deb")
noextract=("libc6_${_debver}_amd64.deb")
provides=("${_pkgname}")
conflicts=("${_pkgname}" "${_pkgname}-git")
b2sums=('c2350f79d572c4b6f0f086d59a81e893dfd956c4d5ce90a592ef4bc423e61040c9da8aba8d10e24457051ffa91e9479fd16d2df625a249205b477942826b590e'
'9f70e5970b075e9eb7c3e9d02aa58ac7a11499f3c1aecadf72547305e013fb798107aff10d6f4bbd22c4f00af88024f7aa0cff819c93469b5e1215681f3794e7'
'22d19b6fb9b5542757297b6c5a61b32aff35ba11033d32a43fc52828ba1f17fce714772c9e1df864e7646729122b2f5eb136aa323552a0867c795cff4400b39a'
'79fa052d297dc71ca6ab41c0db6fe85fedc9fca94a4d17ea2ca27bf83ec7eaa2e2d7c54b00ed726f75d8b4230c3f205287899065f1f4d7be408a4ab24c169055')
prepare() {
cd "${srcdir}"
# extract deb
dpkg-deb -x "libc6_${_debver}_amd64.deb" "libc6_${_debver}_amd64"
# icon
ffmpeg -y -i "drl.bmp" "drl.png"
# fix scripts
sed -i 's!\./drl!drl!' "$srcdir/drl-linux-$_pkgver"/drl_*
# fix config
sed -i 's!--DataPath = ""!DataPath = "/usr/share/games/drl/"!' "$srcdir/drl-linux-$_pkgver"/config.lua
}
package() {
cd "$srcdir/drl-linux-$_pkgver"
# Folders
install -d "$pkgdir/usr/"{games,libexec/${_pkgname},share/{applications,pixmaps,games/${_pkgname},doc/${_pkgname}},lib/${_pkgname}}
# install
cp -r --no-preserve=mode *.lua *.wad backup modules mortem mp3 screenshot wavhq "$pkgdir/usr/share/games/drl/"
# libc6
install -D -m644 "${srcdir}/libc6_${_debver}_amd64/usr/lib/x86_64-linux-gnu/libm.so.6" "${pkgdir}/usr/lib/${_pkgname}/"
# binary
install -D -m755 drl "$pkgdir/usr/libexec/drl/"
# Run scripts
echo '#!/bin/sh
set -eu
_name="drl"
config_dir="${XDG_CONFIG_HOME:-$HOME/.config}/$_name"
data_dir="${XDG_DATA_HOME:-$HOME/.local/share}/$_name"
mkdir -p "$config_dir"
mkdir -p "$data_dir"
if [ ! -e "$config_dir/config.lua" ]; then
cp "/usr/share/games/$_name/config.lua" "$config_dir"
sed -i "s!--WritePath = \"\"!WritePath = \"$data_dir/\"!" "$config_dir/config.lua"
fi
cp -na "/usr/share/games/$_name/"*.lua "$config_dir"
cp -ns "/usr/libexec/$_name/$_name" "$config_dir"
cp -nas "/usr/share/games/$_name/backup" "/usr/share/games/$_name/modules" "/usr/share/games/$_name/mortem" "/usr/share/games/$_name/screenshot" "$data_dir"
# change to directory and launch
cd "$config_dir"
export LD_PRELOAD="/usr/lib/$_name/libm.so.6"
exec "./$_name" "$@"' > "$pkgdir/usr/games/drl"
chmod 755 "$pkgdir/usr/games/drl"
install -D -m755 drl_* "$pkgdir/usr/games/"
# desktop
echo '[Desktop Entry]
Version=1.1
Type=Application
Name=drl
Comment=doomrl aka drl, roguelike game based on the FPS Doom
Icon=drl
Exec=drl
Actions=
Categories=Game;' > "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
install -D -m644 ../drl.png "${pkgdir}/usr/share/pixmaps/"
# doc
install -D -m644 *.txt "${pkgdir}/usr/share/doc/${_pkgname}/"
install -D -m644 "$srcdir/LICENSE-$pkgver" "${pkgdir}/usr/share/doc/${_pkgname}/cc-by-nc-sa-4.0_assets"
ln -s "/usr/share/common-licenses/GPL-2" "${pkgdir}/usr/share/doc/${_pkgname}/GPL-2_code"
}