summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 2b43191fb2c87e06f95e759cc2c36ceb1eeeaf3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# Maintainer: Koopa <thekoopakingdom@gmail.com>

# Verification:
# - All scripts are ran through ShellCheck (Ignoring PKGBUILD related false positives.).
# - This PKGBUILD in particular is ran through namcap.
# - Desktop entries are ran through desktop-file-validate.

pkgname='lucas-simpsons-hit-and-run-mod-launcher'
pkgver='1.23.3'
pkgrel='1'
pkgdesc="Mod launcher for The Simpsons: Hit & Run."
arch=(
    'x86_64'
    'i686'
)
url="https://donutteam.com/"
# The mod launcher uses libraries under the ZLIB and Lua licenses, but it doesn't make sense to
# bundle them with this package because said licenses should be managed by their respective Linux
# packages (e.g. the TinyXML ZLIB license installed by the Linux zlib package.) and Windows licenses
# left up to the Windows program to display.
# The mod launcher itself has no particular license.
license=('unknown')
depends=(
    # Zenity is needed for the mod launcher launcher's dialogs shown while installing the runtime.
    'zenity'
    # Wine is needed to run the mod launcher.
    'wine'
    # Winetricks is needed to install the .NET 3.5 SP1 runtime required by the mod launcher.
    'winetricks'
)
source=(
    # Official mod launcher download for the current release.
    "$pkgname.zip::https://cdn.donutteam.com/Downloads/Tools/\
Lucas'%20Simpsons%20Hit%20&%20Run%20Mod%20Launcher%20${pkgver}.zip"
    # Unofficial mod launcher Linux launcher download for the latest master branch.
    "$pkgname-linux-launcher.zip::https://github.com/CodingKoopa/\
lucas-simpsons-hit-and-run-mod-launcher-linux-launcher/archive/master.zip"
)
md5sums=(
    # Skip the mod launcher ZIP because no hashes are provided by upstream.
    "SKIP"
    # SKip the mod launcher Linux launcher ZIP because the latest master is subject to change.
    "SKIP"
)

package() {
  # Stage 1: Install the mod launcher files.

  # Install the Windows executable to /usr/lib/lucas-simpsons-hit-and-run-mod-launcher/ because it's
  # an executable, but not meant to be ran as-is.
  install -Dm644 "Lucas Simpsons Hit & Run Mod Launcher.exe" "$pkgdir/usr/lib/$pkgname/$pkgname.exe"
  # Install the default hacks to /usr/lib/lucas-simpsons-hit-and-run-mod-launcher/dlls for the same
  # reason.
  install -Dm644 -t "$pkgdir/usr/lib/$pkgname/dlls/" DLLs/*
  # Install the default mods to /usr/share/lucas-simpsons-hit-and-run-mod-launcher/mods/ because
  # they aren't really shared objects, but just data like textures and models.
  install -Dm644 -t "$pkgdir/usr/share/$pkgname/mods/" Mods/*.lmlm

  # Stage 2: Install the mod launcher Linux launcher files.
  cd "$pkgname-linux-launcher-master"

  # Install the launchers.

  install -Dm655 "$pkgname.sh" "$pkgdir/usr/bin/$pkgname"
  install -m655 "the-simpsons-hit-and-run.sh" "$pkgdir/usr/bin/the-simpsons-hit-and-run"

  # Install the MIME types.

  install -Dm644 "$pkgname.xml" "$pkgdir/usr/share/mime/packages/$pkgname.xml"

  # Install the icons.

  for SIZE in 16 22 32 48 64 256; do
    install -Dm644 "$pkgname-$SIZE.png" \
        "$pkgdir/usr/share/icons/hicolor/${SIZE}x${SIZE}/apps/$pkgname.png"
    install -Dm644 "the-simpsons-hit-and-run-$SIZE.png" \
        "$pkgdir/usr/share/icons/hicolor/${SIZE}x${SIZE}/apps/the-simpsons-hit-and-run.png"
  done

  # Install the desktop entries.

  install -Dm644 "com.donutteam.$pkgname.desktop" \
      "$pkgdir/usr/share/applications/com.donutteam.$pkgname.desktop"
  install -m644 "the-simpsons-hit-and-run.desktop" \
      "$pkgdir/usr/share/applications/the-simpsons-hit-and-run.desktop"

  # Install the helper script.

  install -m655 "check-for-duplicate-lmlms.sh" "$pkgdir/usr/bin/check-for-duplicate-lmlms"
}