Browse Source

Merge pull request #584 from glebm/retrofw-opk

RetroFW: Switch to OPK from IPK
pull/589/head
Gleb Mazovetskiy 6 years ago committed by GitHub
parent
commit
62b2ab64a7
  1. 21
      Packaging/OpenDingux/build.sh
  2. 0
      Packaging/OpenDingux/gkd350h-manual.txt
  3. 2
      Packaging/OpenDingux/gkd350h.desktop
  4. 61
      Packaging/OpenDingux/package-ipk.sh
  5. 35
      Packaging/OpenDingux/package-opk.sh
  6. 6
      Packaging/OpenDingux/retrofw-manual.txt
  7. 12
      Packaging/OpenDingux/retrofw.desktop
  8. 0
      Packaging/OpenDingux/rg350-manual.txt
  9. 2
      Packaging/OpenDingux/rg350.desktop

21
Packaging/OpenDingux/build.sh

@ -4,7 +4,7 @@ set -euo pipefail
usage() {
echo "Usage: build.sh [target]"
echo " target: target architecture: rg350, gkd350h, or retrofw"
echo " target: target platform: rg350, gkd350h, or retrofw"
}
if [[ $# -ne 1 ]]; then
@ -80,13 +80,20 @@ build() {
}
package() {
if [[ "$TARGET" == "retrofw" ]]; then
Packaging/OpenDingux/package-ipk.sh "${PWD}/${BUILD_DIR}/devilutionx-${TARGET}.ipk"
else
Packaging/OpenDingux/package-opk.sh "${PWD}/${BUILD_DIR}/devilutionx-${TARGET}.opk" \
"${PWD}/Packaging/OpenDingux/${TARGET}.desktop" \
"${PWD}/Packaging/OpenDingux/manual-${TARGET}.txt"
local ext=gcw0
if [[ $TARGET == retrofw ]]; then
ext=retrofw
fi
local -r tmp="${BUILD_DIR}/opk"
rm -rf "$tmp"
mkdir -p "$tmp"
cp "Packaging/OpenDingux/${TARGET}.desktop" "${tmp}/default.${ext}.desktop"
cp "Packaging/OpenDingux/${TARGET}-manual.txt" "${tmp}/readme.${ext}.txt"
mksquashfs "${BUILD_DIR}/devilutionx" \
"${tmp}/default.${ext}.desktop" "${tmp}/readme.${ext}.txt" \
Packaging/resources/Diablo_32.png Packaging/resources/CharisSILB.ttf \
"${BUILD_DIR}/devilutionx-${TARGET}.opk" \
-all-root -no-xattrs -noappend -no-exports
}
main

0
Packaging/OpenDingux/manual-gkd350h.txt → Packaging/OpenDingux/gkd350h-manual.txt

2
Packaging/OpenDingux/gkd350h.desktop

@ -1,6 +1,6 @@
[Desktop Entry]
Name=DevilutionX
Comment=A port of DevilutionX for GKD350h.
Comment=Diablo 1 for GKD350h
Exec=devilutionx
Terminal=false
Type=Application

61
Packaging/OpenDingux/package-ipk.sh

@ -1,61 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
if [[ -z "$1" ]]; then
echo "Error: output path is required"
exit 1
fi
readonly OUT="$1"
readonly IN="${2:-$(dirname "$OUT")/devilutionx}"
readonly PKG_TARGET=devilutionx
readonly TMP="tmp/${PKG_TARGET}"
pkg_control_get() {
sed -n control -e 's/^.*'"$1"': //p'
}
readonly PKG_SECTION="$(pkg_control_get Section)"
readonly PKG_INSTALL_DIR="home/retrofw/${PKG_SECTION}/${PKG_TARGET}"
readonly PKG_LOCAL_DIR="home/retrofw/.local/share/diasurgical/devilution"
readonly PKG_MENU_LNK_OUT="home/retrofw/apps/gmenu2x/sections/${PKG_SECTION}/${PKG_TARGET}.lnk"
echo 1>&2 Packaging ${OUT} from ${TMP}...
set -x
rm -rf "${TMP}"
mkdir -p "${TMP}"
# data.tar.gz
mkdir -p "${TMP}/root/${PKG_INSTALL_DIR}" "${TMP}/root/${PKG_LOCAL_DIR}"
cp "$IN" "${TMP}/root/${PKG_INSTALL_DIR}/${PKG_TARGET}"
cp ../resources/Diablo_32.png "${TMP}/root/${PKG_INSTALL_DIR}/devilutionx.png"
cp ../resources/CharisSILB.ttf ../resources/LICENSE.CharisSILB.txt "${TMP}/root/${PKG_INSTALL_DIR}"
cp devilutionx-retrofw.man.txt "${TMP}/root/${PKG_INSTALL_DIR}/devilutionx.man.txt"
cp diablo.ini "${TMP}/root/${PKG_LOCAL_DIR}/diablo.ini"
mkdir -p "${TMP}/root/$(dirname "$PKG_MENU_LNK_OUT")"
printf "%s\n" \
"title=DevilutionX" \
"description=$(pkg_control_get Description)" \
"exec=/${PKG_INSTALL_DIR}/${PKG_TARGET}" \
> "${TMP}/root/${PKG_MENU_LNK_OUT}"
tar --owner=0 --group=0 -czvf "${TMP}/data.tar.gz" -C "${TMP}/root/" .
# control.tar.gz
sed -e "s/^Version:.*/Version: $(date +%Y%m%d)/" control > "${TMP}/control"
printf "%s\n" \
"/$PKG_MENU_LNK_OUT" \
"/${PKG_LOCAL_DIR}/diablo.ini" \
>> ${TMP}/conffiles
tar --owner=0 --group=0 -czvf "${TMP}/control.tar.gz" -C "${TMP}/" control conffiles
printf '2.0\n' > "${TMP}/debian-binary"
rm -f "$OUT"
ar r "$OUT" \
"${TMP}/control.tar.gz" \
"${TMP}/data.tar.gz" \
"${TMP}/debian-binary"

35
Packaging/OpenDingux/package-opk.sh

@ -1,35 +0,0 @@
#!/usr/bin/env bash
cd "$(dirname "${BASH_SOURCE[0]}")"
if [[ -z "$1" ]]; then
echo "Error: output path is required"
exit 1
fi
readonly OUT="$1"
readonly DESKTOP_FILE="$2"
readonly README_FILE="$2"
readonly IN="$(dirname "$OUT")/devilutionx"
readonly TMP="tmp/opk"
echo 1>&2 Packaging ${OUT}...
# To run with SDL2 controller mappings for RG350:
# Exec=env SDL_GAMECONTROLLERCONFIG=190000006c696e6b6465762064657600,RG350,platform:Linux,x:b3,a:b0,b:b1,y:b2,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, ./devilutionx
#
# We use SDL1 instead as it's ~3x faster, likely because with SDL1 scaling is done in hardware.
set -x
rm -rf "${TMP}"
mkdir -p "${TMP}"
cp "$DESKTOP_FILE" "${TMP}/default.gcw0.desktop"
cp "$README_FILE" "${TMP}/readme.gcw0.txt"
mksquashfs \
"${TMP}/default.gcw0.desktop" "${TMP}/readme.gcw0.txt" "$IN" \
../resources/Diablo_32.png ../resources/CharisSILB.ttf \
"$OUT" \
-all-root -no-xattrs -noappend -no-exports

6
Packaging/OpenDingux/devilutionx-retrofw.man.txt → Packaging/OpenDingux/retrofw-manual.txt

@ -1,8 +1,10 @@
Copy diabdat.mpq from your CD (or GoG install folder) to:
/home/retrofw/.local/share/diasurgical/diabdat.mpq
~/.local/share/diasurgical/diabdat.mpq
Game saves and diablo.ini are located at:
/home/retrofw/.local/share/diasurgical/devilution
~/.local/share/diasurgical/devilution
~ is your home directory, /home/retrofw by default.
Controls:
- D-pad: move hero

12
Packaging/OpenDingux/retrofw.desktop

@ -0,0 +1,12 @@
[Desktop Entry]
Name=DevilutionX
Comment=Diablo 1 for RetroFW
Exec=devilutionx
Terminal=false
Type=Application
StartupNotify=true
Icon=Diablo_32
Categories=games;
X-OD-Manual=readme.retrofw.txt
X-OD-NeedsDownscaling=true
X-OD-NeedsJoystick=true

0
Packaging/OpenDingux/manual-rg350.txt → Packaging/OpenDingux/rg350-manual.txt

2
Packaging/OpenDingux/rg350.desktop

@ -1,6 +1,6 @@
[Desktop Entry]
Name=DevilutionX
Comment=A port of DevilutionX for RG350.
Comment=Diablo 1 for RG350
Exec=devilutionx
Terminal=false
Type=Application

Loading…
Cancel
Save