summarylogtreecommitdiffstats
path: root/build_lite_installer.sh
blob: c2098a91b6f6e14aef8a4dcf540f3753801b6f29 (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
#!/bin/sh

set -e

printf "\n\n Build installer for EVE Online Setup (Lite Version)\n\n"

version=$(grep ^pkgver PKGBUILD | cut -d= -f2) || exit 1
release=$(grep ^pkgrel PKGBUILD | cut -d= -f2) || exit 1
arch=$(uname -m)

csum() {
	sha=$(grep -n ^sha256sum PKGBUILD | cut -d: -f1)
	src=$(grep -n ^source PKGBUILD | cut -d: -f1)
	sln=$(grep -n $1\" PKGBUILD | cut -d: -f1)
	ofs=$(expr $sln - $src)
	cln=$(expr $sha + $ofs)
	printf $(tail -n+$cln PKGBUILD | head -n1 | tr -cd '[:alnum:]')
}

dvver=$(grep doitsujin PKGBUILD | sed 's,.*-,,;s,.tar.*,,' )
msver=$(grep makeself PKGBUILD | sed 's,.*-,,;s,.run.*,,' )

dvcsum=$(csum dxvk-$dvver.tar.gz)
elcsum=$(csum evelauncher-\${pkgver}.tar.gz)
mscsum=$(csum makeself-$msver.run)

dltool=$(which curl 2>/dev/null || which wget 2>/dev/null  || true)

case ${dltool##*/} in
	curl)	dltool="$dltool -L -O" ;;
	wget)	dltool="$dltool -nc" ;;
	*)	printf "\nError: curl or wget not found. One of them are needed for downloading makeself build tool."
		printf "\n       Please install curl or wget with your Package Manager.\n"
		printf "\nLeaving.\n\n"
		exit 0 ;;
esac

if [ ! -f "./makeself-$msver.run" ] ;then
	printf "\nGet makeself...\n\n"
	$dltool https://github.com/megastep/makeself/releases/download/release-$msver/makeself-$msver.run
fi
rcsum="$(sha256sum ./makeself-$msver.run | cut -d' ' -f1)"
if [ "$rcsum" != "$mscsum" ] ;then
	printf "\n\nError: Checksum makeself-$msver.run mismatch!"
	printf "\nLeaving.\n\n"
	exit 0
fi

if [ ! -r "./evelauncher-$version.tar.gz" ] ;then
	printf "\nGet evelauncher-$version.tar.gz...\n\n"
	$dltool https://binaries.eveonline.com/evelauncher-$version.tar.gz
fi
rcsum="$(sha256sum ./evelauncher-$version.tar.gz| cut -d' ' -f1)"
if [ "$rcsum" != "$elcsum" ] ;then
	printf "\n\nError: Checksum evelauncher-$version.tar.gz mismatch!"
	printf "\nLeaving.\n\n"
	exit 0
fi

if [ ! -r "./dxvk-$dvver.tar.gz" ] ;then
	printf "\nGet dxvk-$dvver.tar.gz...\n\n"
	$dltool https://github.com/doitsujin/dxvk/releases/download/v$dvver/dxvk-$dvver.tar.gz
fi
rcsum="$(sha256sum ./dxvk-$dvver.tar.gz| cut -d' ' -f1)"
if [ "$rcsum" != "$dvcsum" ] ;then
	printf "\n\nWarning: Checksum dxvk-$dvver.tar.gz mismatch, ignored.\n"
	rm -f ./dxvk-$dvver.tar.gz
fi

printf "\nCreate clean build environment..."
if [ -d src/ ] ;then rm -rf src/* ;else mkdir src/ ;fi

chmod a+x ./makeself-$msver.run
./makeself-$msver.run --tar x ./makeself.sh ./makeself-header.sh 2>/dev/null
chmod a-x ./makeself-$msver.run
mv ./makeself.sh ./makeself-header.sh src/

cd src/
mkdir evesetup/
echo "done."

printf "\nCopy needed files from AUR source..."
for eia in ../eve-icons*.tar.gz ;do tar xf $eia -C evesetup/ ;done
for cmd in backup launcher.sh regedit restore wine winecfg winetricks ;do
	cmd=eve$cmd
	if [ -f ../$cmd ] ;then cp ../$cmd evesetup/ ;fi
	if [ ! "$cmd" = "evewine" ] ;then cp ../${cmd%.*}.desktop evesetup/ ;fi
done
cp ../evesetup.shlib evesetup/
cp ../evelauncher.kwinrule evesetup/
cp ../evelauncher.lua evesetup/
cp ../evelauncher.sh evesetup/
sed -i s,ELVER=\"\",ELVER=\"$version\", evesetup/evelauncher.sh
cp ../setup_lite.sh.in evesetup/setup.sh
sed -i s,elver=\"\",elver=\"$version\", evesetup/setup.sh
sed -i s,dvver=\"\",dvver=\"$dvver\", evesetup/setup.sh
chmod a+x evesetup/setup.sh
cp ../dxvk-$dvver.tar.gz evesetup/ 2>/dev/null || true
echo "done."

printf "\nExtract evelauncher-$version.tar.gz..."
tar xf ../evelauncher-$version.tar.gz
echo "done."

printf "\nClean up evelauncher directory..."
cd evelauncher/
rm -rf ./resources/ ./plugins/
rm -f ./*.a ./*.la ./*.pem ./*.prl ./*[Qq]t* ./libicu* ./libpng* ./libxcb*
cp -f ../../evelauncher.sh.real ./evelauncher.sh
chmod 0755 ./*
chmod 0644 ./*.qm ./errorpage/*
echo "done."

printf "\nReplace identical files with symbolic links..."
ln -sf evelauncher.sh LogLite.sh
ln -sf libgpr.so.6.0.0 libgpr.so
ln -sf libgpr.so.6.0.0 libgpr.so.6
ln -sf libgrpc++.so.1.12.0 libgrpc++.so
ln -sf libgrpc++.so.1.12.0 libgrpc++.so.1
ln -sf libgrpc++.so.1.12.0 libgrpc++.so.6
ln -sf libgrpc.so.6.0.0 libgrpc.so
ln -sf libgrpc.so.6.0.0 libgrpc.so.6
ln -sf libprotobuf.so.16.0.0 libprotobuf.so
ln -sf libprotobuf.so.16.0.0 libprotobuf.so.16
echo "done."

printf "\nRemove unneeded symbols from files..."
find ./ -maxdepth 1 -type f -exec strip -s {} 2>/dev/null \;
echo "done."

printf "\nRepack evelauncher-$version.tar.gz..."
cd ../
tar czf evesetup/evelauncher-$version.tar.gz evelauncher/
echo "done."

printf "\nBuild self-extractable archive evesetup-lite-${version}-$release-$arch.run\n\n"
./makeself.sh --tar-quietly evesetup/ ../evesetup-lite-${version}-$release-$arch.run \
	"EVE Online Launcher Setup (Lite) ${version}-$release" ./setup.sh
cd ..
printf "\nClean up build environment..."
rm -rf src/
echo "done."