summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: c61afeb476738a7704c9c9149b66cd0fc534384c (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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# Maintainer: Nicolas Iooss <nicolas.iooss_aur at m4x.org>
# Contributor: Dany Martineau <dany.luc.martineau at gmail.com>
#
# This PKGBUILD is maintained on https://github.com/fishilico/funguloids

pkgname=funguloids
pkgver=1.06.4
_realver=1.06-4
pkgrel=12
pkgdesc="3D game about collecting mushrooms in outerspace"
arch=('i686' 'x86_64')
url="http://funguloids.sourceforge.net/"
license=('ZLIB')
makedepends=('boost' 'python')
depends=('boost-libs' 'ogre>=1.10' 'ois>=0.7' 'freealut' 'lua51' 'libogg' 'libvorbis' 'libmad')
source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-linux-${_realver}.tar.bz2
        funguloids.desktop
        funguloids-alc_error.patch
        funguloids-gcc44.patch
        funguloids-ogre_1.6.patch
        funguloids-strcmp.patch
        size_chunks_reverse.patch
        mpak.py
        funguloids-lua.patch
        openalsoundsystem.cpp.diff
        funguloids-ogre-1.7.0.patch
        funguloids-compilation.patch
        funguloids-boost-system.patch
        funguloids-ogre-1.9.0.patch
        funguloids-ogre-1.10.4.patch
        funguloids-ogre-1.10.8.patch
        funguloids-ois-1.4.patch
        funguloids-ogre-1.11.0.patch
        funguloids-gcc8-ogre-settings.patch)
sha256sums=('e9c9074a5d2de11690484a7e8eef7de9dd7d360ea72185ea35c54976646ef5cf'
            'ceaf1c19d5ed694ff3832320ef6b6b268f73cbf16bc5998c15de47c77298885a'
            '753a8ac858ff21e81f2a3466092e297703d081689ceaa1159fe6cb42d97d06a6'
            'b2b7767da01529ef6944eba3dd6c14c0883e723d6c2658838f186f6809da9695'
            '345c0b54e6ca28a7b243ec9e86a6310062d973f8c35236856b7d66cefc7f9f97'
            '107a0eec5efb2eea99c86d7dad91e28a20ca1f35d4f5eda067ae64c88c9d0304'
            'eb5c821adbc9e6d93f6a78cb40a661e97ffa67eb6ab346913318cbcf3bc66083'
            '12a8cd48b299d9a7de74a9bdae429a4a2489ee8357e9af935e89bf5f417ff157'
            '59de5a0e12cb6575facd0d13d6b28b2d2a1bbfdcdf32dadf0c962c276e961c01'
            'a70e2a40b19f3e0e3c44aa8fa41d866854ce21d111decce1d43f8fba04f7a16c'
            '334831c41160457a4b0162bab349ba77570bbcc0b8e8c63a8e01e8a50c40bd48'
            '4ed88c6502601d684fd7e85dbe33684e36669bdf65583f782b24ddd596dcaf3c'
            'e17a559558d49e493f3f19ae6baa147c64fb37497fb384d31e0d3bc7ae484df1'
            'a007990ef35c249fe4440938553737d14f2dd8377407ee97fecdc6f17b1136ec'
            'd00b04968aaaee97babd99ecca46cc22d567694fdcc341a5ff4124af9b08be95'
            '6d356bf604073f9314ec581439ad4e6d3d4ea00592e6340f6316c61af48bd863'
            'ec9722d796781852bbeeb39d7a8b2493067c15180a8fd807cae2097aedc17074'
            '2bb7a71375256d89e6851bea025ac96a917b90c4299f04af8ef1f6837ef97ead'
            'c9a5a0797bd54fcae56853522fce7e968d1a662453831077504384ffe1790395')

prepare() {
  cd "${srcdir}/${pkgname}"

  # Convert DOS line ending to Unix by removing every CR character
  find . \( -name '*.h' -o -name '*.cpp' -o -name '*.in' -o -name '*.am' \) \
    -exec sed 's/\r//' -i {} \;

  patch -p0 < ../openalsoundsystem.cpp.diff
  patch -p1 < ../funguloids-gcc44.patch
  patch -p0 < ../funguloids-ogre_1.6.patch
  patch -p0 < ../funguloids-strcmp.patch
  patch -p0 < ../size_chunks_reverse.patch
  patch -p0 < ../funguloids-lua.patch
  patch -p1 < ../funguloids-ogre-1.7.0.patch
  patch -p1 < ../funguloids-compilation.patch
  patch -p1 < ../funguloids-boost-system.patch
  patch -p1 < ../funguloids-ogre-1.9.0.patch
  patch -p1 < ../funguloids-ogre-1.10.4.patch
  patch -p1 < ../funguloids-ogre-1.10.8.patch
  patch -p1 < ../funguloids-ois-1.4.patch
  patch -p1 < ../funguloids-ogre-1.11.0.patch
  patch -p1 < ../funguloids-gcc8-ogre-settings.patch

  sed -i -e 's;cp bootstrap.mpk "@gameinstalldir@";cp bootstrap.mpk "$(DESTDIR)@gameinstalldir@";' -e 's;funguloids.mpk "@gameinstalldir@";funguloids.mpk "$(DESTDIR)@gameinstalldir@";' bin/Makefile.in
  sed -i -e 's;cp MarylandInMay.ogg "@musicinstalldir@";cp MarylandInMay.ogg "$(DESTDIR)@musicinstalldir@";' bin/music/Makefile.in
  sed -i -e 's;-llua5.1;-llua;' -e 's;share/games/funguloids;share/funguloids;' \
      -e 's;bininstalldir="${prefix}/games;bininstalldir="${prefix}/bin;' configure.ac
  chmod +x ../mpak.py
  ../mpak.py -e -f bin/bootstrap.mpk -p _bootstrap
  ../mpak.py -e -f bin/funguloids.mpk -p _gamedata
  sed -ri '/^[A-Z]/ s/(.*)/overlay \1/' _bootstrap/*.overlay _gamedata/*.overlay
  sed -ri '/^[A-Z]/ s/(.*)/particle_system \1/' _gamedata/*.particle
  sed -ri 's/^(\t\t\t)(texture_unit) 1/\1\2\n\1{\n\1}\n\1\2/' _gamedata/materials.material

  # OGRE 1.11.0 compatibility
  # Error: ScriptCompiler - unexpected token in Vera.fontdef(1): 'VeraBold'. If this is a legacy script you must prepend the type (e.g. font, overlay).
  sed -ri '/^[A-Z]/ s/(.*)/font \1/' _bootstrap/Vera.fontdef _gamedata/menufont.fontdef
  # Warning: the syntax 'element type(name)' is deprecated use 'overlay_element name type' at OgreDebugPanel.overlay:6
  sed -ri 's/^(\s*)(container|element) ([a-zA-Z0-9]+)\(([a-zA-Z0-9/]+)\)\s*$/\1overlay_element \4 \3/' _bootstrap/*.overlay _gamedata/*.overlay
  # Error: ScriptCompiler - invalid parameters in materials.material(1413): 'cubic_texture .. combinedUVW' is deprecated. Use 'texture .. cubic' instead.
  sed -ri 's/^(\s*)cubic_texture (\S+) combinedUVW(\s*)$/\1texture \2 cubic \3/' _gamedata/materials.material
  # Warning: Overlay: caption value must be enclosed by quotes
  sed -ri 's/^(\s*caption) ([^"]+)$/\1 "\2"/' _bootstrap/*.overlay _gamedata/*.overlay
  # An exception has occured: InvalidStateException: no matching " found for " at line 9 in ScriptLexer::tokenize
  sed -ri 's/^(\s*)glyph " /\1glyph u34 /' _gamedata/menufont.fontdef
  sed -ri 's/^(\s*)glyph \$ /\1glyph u36 /' _gamedata/menufont.fontdef
  sed -ri 's/^(\s*)glyph : /\1glyph u58 /' _gamedata/menufont.fontdef
  sed -ri 's/^(\s*)glyph \{ /\1glyph u123 /' _gamedata/menufont.fontdef
  sed -ri 's/^(\s*)glyph \} /\1glyph u125 /' _gamedata/menufont.fontdef
  # Warning: Plane.mesh is an older format ([MeshSerializer_v1.8]); you should upgrade it as soon as possible using the OgreMeshUpgrade tool.
  OgreMeshUpgrader _gamedata/Asteroid1.mesh
  OgreMeshUpgrader _gamedata/Asteroid2.mesh
  OgreMeshUpgrader _gamedata/Asteroid3.mesh
  OgreMeshUpgrader _gamedata/Base.mesh
  OgreMeshUpgrader _gamedata/Drop.mesh
  OgreMeshUpgrader _gamedata/Mushroom.mesh
  OgreMeshUpgrader _gamedata/Plane.mesh
  OgreMeshUpgrader _gamedata/Tentacle.mesh
  OgreMeshUpgrader _gamedata/Whirler.mesh
  OgreMeshUpgrader _gamedata/WormBall.mesh

  ../mpak.py -c -f bin/bootstrap.mpk _bootstrap/*
  ../mpak.py -c -f bin/funguloids.mpk _gamedata/*
  rm -rf _bootstrap _gamedata

  rm -f build-aux/*
  aclocal
  autoheader
  autoconf
  automake --add-missing
  ./configure --prefix=/usr
}

build() {
  cd "${srcdir}/${pkgname}"
  make
}

package() {
  cd "${srcdir}/${pkgname}"
  make DESTDIR="${pkgdir}" install

  # install desktop file
  install -Dm644 "${srcdir}/funguloids.desktop" \
    "${pkgdir}/usr/share/applications/funguloids.desktop"

  # install license file
  install -Dm644 "${srcdir}/${pkgname}/COPYING" \
    "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

  # use default location for docs
  mv "${pkgdir}/usr/share/docs" "${pkgdir}/usr/share/doc"
}