pkgname=half-life-wine-ris pkgver=1.0 pkgrel=1 pkgdesc="Half-Life Wine" arch=('any') license=('custom') depends=('wine') makedepends=('wine' 'xorg-server-xvfb' 'xdotool' 'icoutils' 'imagemagick') options=('!strip' '!zipman') install=half-life-wine-ris.install _install_path="/home/ris/Games/Half-Life-wine" prepare() { set -x rm -rf "${srcdir}/"* || true ln -sf "${startdir}/assets/Half-Life.zip" "${srcdir}/" unzip -q "$startdir/assets/Half-Life.zip" -d "$srcdir/extracted" cat << 'EOF' > "${srcdir}/run-valve.sh" #!/usr/bin/env bash SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "${SCRIPT_DIR}" export WINEPREFIX="${SCRIPT_DIR}/.wine" export WINEDEBUG="-all" RES=$(xrandr --current 2>/dev/null | grep '*' | head -n1 | awk '{print $1}') RES=${RES:-"1920x1080"} WIDTH="${RES%x*}" HEIGHT="${RES#*x}" WINEDLLOVERRIDES="mscoree=d;mshtml=d" /usr/bin/wine explorer /desktop=Half-Life,${RES} "hl.exe" -noborder -game valve -w "$WIDTH" -h "$HEIGHT" "$@" wineserver -k EOF cat << 'EOF' > "${srcdir}/run-bshift.sh" #!/usr/bin/env bash SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "${SCRIPT_DIR}" export WINEPREFIX="${SCRIPT_DIR}/.wine" export WINEDEBUG="-all" RES=$(xrandr --current 2>/dev/null | grep '*' | head -n1 | awk '{print $1}') RES=${RES:-"1920x1080"} WIDTH="${RES%x*}" HEIGHT="${RES#*x}" WINEDLLOVERRIDES="mscoree=d;mshtml=d" /usr/bin/wine explorer /desktop=Half-Life-Bshift,${RES} "hl.exe" -noborder -game bshift -w "$WIDTH" -h "$HEIGHT" "$@" wineserver -k EOF cat << 'EOF' > "${srcdir}/run-gearbox.sh" #!/usr/bin/env bash SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "${SCRIPT_DIR}" export WINEPREFIX="${SCRIPT_DIR}/.wine" export WINEDEBUG="-all" RES=$(xrandr --current 2>/dev/null | grep '*' | head -n1 | awk '{print $1}') RES=${RES:-"1920x1080"} WIDTH="${RES%x*}" HEIGHT="${RES#*x}" WINEDLLOVERRIDES="mscoree=d;mshtml=d" /usr/bin/wine explorer /desktop=Half-Life-Opfor,${RES} "hl.exe" -noborder -game gearbox -w "$WIDTH" -h "$HEIGHT" "$@" wineserver -k EOF cat << 'EOF' > "${srcdir}/half-life-wine-valve.desktop" [Desktop Entry] Type=Application Name=Half Life (Wine) Exec=sh -c 'cd "\$(dirname "%k")" && ./run-valve.sh' Icon=half-life-wine-valve Terminal=false Categories=Game;StrategyGame; EOF cat << EOF > "${srcdir}/half-life-wine-valve-menu.desktop" [Desktop Entry] Type=Application Name=Half Life (Wine) Exec=${_install_path}/run-valve.sh Icon=half-life-wine-valve Terminal=false Categories=Game;StrategyGame; EOF cat << 'EOF' > "${srcdir}/half-life-wine-bshift.desktop" [Desktop Entry] Type=Application Name=Half Life Bshift (Wine) Exec=sh -c 'cd "\$(dirname "%k")" && ./run-bshift.sh' Icon=half-life-wine-bshift Terminal=false Categories=Game;StrategyGame; EOF cat << EOF > "${srcdir}/half-life-wine-bshift-menu.desktop" [Desktop Entry] Type=Application Name=Half Life Bshift (Wine) Exec=${_install_path}/run-bshift.sh Icon=half-life-wine-bshift Terminal=false Categories=Game;StrategyGame; EOF cat << 'EOF' > "${srcdir}/half-life-wine-gearbox.desktop" [Desktop Entry] Type=Application Name=Half Life Opfor (Wine) Exec=sh -c 'cd "\$(dirname "%k")" && ./run-gearbox.sh' Icon=half-life-wine-opfor Terminal=false Categories=Game;StrategyGame; EOF cat << EOF > "${srcdir}/half-life-wine-gearbox-menu.desktop" [Desktop Entry] Type=Application Name=Half Life Opfor (Wine) Exec=${_install_path}/run-gearbox.sh Icon=half-life-wine-opfor Terminal=false Categories=Game;StrategyGame; EOF } build() { set -x local target_dir="${srcdir}${_install_path}" export WINEPREFIX="${target_dir}/.wine" #export WINEDEBUG="fixme+all,err+all" export WINEDEBUG="-all" export WINEARCH="win64" export LIBGL_ALWAYS_SOFTWARE=1 export MESA_LOG_LEVEL=error export EGL_LOG_LEVEL=fatal mkdir -p "$WINEPREFIX" WINEDLLOVERRIDES="mscoree,mshtml=" xvfb-run -a -s "-screen 0 1024x768x24" wineboot --init > /dev/null 2>&1 wineserver -w } package() { local install_dir="${_install_path}" local cil="$pkgdir$install_dir" local user_home="/home/ris" local icondir="$pkgdir/home/ris/.local/share/icons/hicolor" local appdir="${user_home}/.local/share/applications" mkdir -p "${pkgdir}${install_dir}" mkdir -p "${pkgdir}${appdir}" mkdir -p "$icondir"/{16x16,24x24,32x32}/apps chmod 755 "$pkgdir/home" chmod 700 "$pkgdir/home/ris" chown -R ris:ris "${srcdir}/$_install_path" cp -r "${srcdir}${install_dir}/." "${pkgdir}/${install_dir}/" cp -r "$srcdir/extracted/Half-Life/." "${pkgdir}/${install_dir}/" # valve magick "$cil/valve/game.ico[1]" "$icondir/16x16/apps/half-life-wine-valve.png" magick "$cil/valve/game.ico[3]" -resize 24x24 "$icondir/24x24/apps/half-life-wine-valve.png" magick "$cil/valve/game.ico[3]" "$icondir/32x32/apps/half-life-wine-valve.png" # bshift magick "$cil/bshift/game.ico" "$icondir/32x32/apps/half-life-wine-bshift.png" magick "$cil/bshift/game.ico" \ \( -clone 0 -resize 16x16 +write "$icondir/16x16/apps/half-life-wine-bshift.png" \) \ \( -clone 0 -resize 24x24 +write "$icondir/24x24/apps/half-life-wine-bshift.png" \) \ -exit # opfor magick "$cil/gearbox/game.ico" "$icondir/32x32/apps/half-life-wine-opfor.png" magick "$cil/gearbox/game.ico" \ \( -clone 0 -resize 16x16 +write "$icondir/16x16/apps/half-life-wine-opfor.png" \) \ \( -clone 0 -resize 24x24 +write "$icondir/24x24/apps/half-life-wine-opfor.png" \) \ -exit install -Dm755 "${srcdir}/run-valve.sh" "${pkgdir}${_install_path}/run-valve.sh" install -Dm644 "${srcdir}/half-life-wine-valve.desktop" "${pkgdir}${_install_path}/half-life-wine-valve.desktop" install -Dm644 "${srcdir}/half-life-wine-valve-menu.desktop" "${pkgdir}${appdir}/half-life-wine-valve.desktop" install -Dm755 "${srcdir}/run-bshift.sh" "${pkgdir}${_install_path}/run-bshift.sh" install -Dm644 "${srcdir}/half-life-wine-bshift.desktop" "${pkgdir}${_install_path}/half-life-wine-bshift.desktop" install -Dm644 "${srcdir}/half-life-wine-bshift-menu.desktop" "${pkgdir}${appdir}/half-life-wine-bshift.desktop" install -Dm755 "${srcdir}/run-gearbox.sh" "${pkgdir}${_install_path}/run-gearbox.sh" install -Dm644 "${srcdir}/half-life-wine-gearbox.desktop" "${pkgdir}${_install_path}/half-life-wine-gearbox.desktop" install -Dm644 "${srcdir}/half-life-wine-gearbox-menu.desktop" "${pkgdir}${appdir}/half-life-wine-gearbox.desktop" install -Dm644 "$startdir/PKGBUILD" -t "$pkgdir/usr/share/doc/$pkgname/" install -Dm644 "$startdir/${pkgname}.install" -t "$pkgdir/usr/share/doc/$pkgname/" chown -R ris:ris "${pkgdir}/home/ris" }