summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: eb7329d56dc5b65d94acba29424d6cae30089eea (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
# Maintainer: Jonathon Fernyhough <jonathon_at_manjaro_dot_org>

# Upstream project has a 1.0beta3 release but it's very old. 0.9 is used here
# to denote pre-1.0 status.

pkgname=xu4-svn
_pkgname=xu4
pkgver=0.9.r3092
_pkgver=0.9
pkgrel=2
pkgdesc='Remake of the computer game Ultima IV'
arch=('i686' 'x86_64')
url='http://xu4.sourceforge.net/'
license=('gpl2')
depends=('libpng'
         'libxml2'
         'sdl_mixer')
makedepends=('cmake'
             'sdl'
             'subversion'
             'unzip'
             'zlib')
provides=("${pkgname%-svn}")
conflicts=("${pkgname%-svn}")

source=("${_pkgname}::svn+https://svn.code.sf.net/p/xu4/code/trunk"
        'https://www.thatfleminggent.com/ultima/ultima4.zip'
        'https://sourceforge.net/projects/xu4/files/Ultima%204%20VGA%20Upgrade/1.3/u4upgrad.zip')
sha256sums=('SKIP'
            '94aa748cfa1d0e7aa2e518abebb994f3c18acf7edb78c3bd37cd0a4404e6ba74'
            '400ac37311f3be74c1b2d7836561b2ead2b146f5162586865b0f4881225cca58')
noextract=('ultima4.zip'
           'u4upgrad.zip')

pkgver() {
	cd "$_pkgname"
	local ver="$(svnversion)"
	printf "$_pkgver.r%s" "${ver//[[:alpha:]]}"
}

prepare() {
	# Fix zlib library lookup
	sed -i '11s|zlib|ZLIB|' "${srcdir}/xu4/u4/CMakeLists.txt"

	# Let's set a better version
	sed -i "223s|svn1.1.1.1|svn${pkgver#$_pkgver}|" "${srcdir}/xu4/u4/src/CMakeLists.txt"

	# Use sourced archives, don't download every build
	patch -Np0 << "EOT"
+++ xu4/u4/src/CMakeLists.txt
--- xu4/u4/src/CMakeLists.txt
@@ -249,9 +249,0 @@
-file(DOWNLOAD
-http://www.thatfleminggent.com/ultima/ultima4.zip
-${CMAKE_CURRENT_BINARY_DIR}/ultima4.zip
-)
-
-file(DOWNLOAD
-http://sourceforge.net/projects/xu4/files/Ultima%204%20VGA%20Upgrade/1.3/u4upgrad.zip
-${CMAKE_CURRENT_BINARY_DIR}/u4upgrad.zip
-)
EOT
	# Ensure libraries can be found
	patch -Np0 << "EOT"
+++ xu4/u4/src/CMakeLists.txt
--- xu4/u4/src/CMakeLists.txt
@@ -189,0 +189,5 @@
+find_package (SDL REQUIRED)
+find_package (SDL_mixer REQUIRED)
+find_package (LibXml2 REQUIRED)
+find_package (PNG REQUIRED)
+find_package (ZLIB REQUIRED)
EOT
}

build() {
	rm -fr build && mkdir build && cd build
	cmake -DCMAKE_INSTALL_PREFIX=/usr "${srcdir}/xu4/u4"
	make
}

package() {
	# Ultima IV assets
	install -d "$pkgdir/usr/lib/u4/ultima4"
	unzip u4upgrad.zip -d "$pkgdir/usr/lib/u4/ultima4/"
	mv "$pkgdir/usr/lib/u4/ultima4/Readme.txt" "$pkgdir/usr/lib/u4/ultima4/Readme-u4upgrad.txt"
	unzip ultima4.zip  -d "$pkgdir/usr/lib/u4/ultima4/"
	chmod -R go-w "$pkgdir/usr/lib/u4/ultima4/"

	# Executable
	install -D build/src/u4 "$pkgdir/usr/bin/u4"

	# XU4 assets
	cd xu4/u4
	local assets=(conf doc graphics icons mid sound spells)
	for asset in "${assets[@]}"; do
		cp -r "$asset" "$pkgdir/usr/lib/u4/"
	done

	# Application launcher
	install -D u4.desktop   "$pkgdir/usr/share/applications/u4.desktop"
	install -D icons/u4.png "$pkgdir/usr/share/pixmaps/u4.png"
}