aboutsummaryrefslogtreecommitdiffstats
path: root/testing/telegram-desktop/APKBUILD
blob: 96492edaae1e6f32e29d178b5e83603efdfa822f (plain) (blame)
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# Maintainer: Leo <thinkabit.ukim@gmail.com>
# Contributor: Leo <thinkabit.ukim@gmail.com>
# TODO(Leo): remove pulseaudio dep, use system xxhash
pkgname=telegram-desktop
pkgver=1.7.14
# https://github.com/telegramdesktop/tdesktop/blob/v$pkgver/docs/building-cmake.md
_libtgvoip_commit=0e92a22746d15157bea46faddd61b79e9964275a
_GSL_commit=d846fe50a3f0bb7767c7e087a05f4be95f4da0ec
_variant_commit=550ac2f159ca883d360c196149b466955c77a573
_crl_commit=9ea870038a2a667add7f621be6252db909068386
_rlottie_commit=40ccf084445c60a32d72d4811edf0efd0580dcaa
_Catch2_commit=5ca44b68721833ae3731802ed99af67c6f38a53a
_xxhash_commit=7cc9639699f64b750c0b82333dced9ea77e8436e
pkgrel=0
pkgdesc="Telegram Desktop messaging app"
options="!check" # Requires Catch2 to be packaged.
url="https://desktop.telegram.org/"
arch="all !s390x" # ARM are failing due to range-v3
license="GPL-3.0-or-later WITH OpenSSL"
depends="qt5-qtimageformats"
makedepends="
	gyp
	grep
	cmake
	zlib-dev
	opus-dev
	libva-dev
	libvdpau-dev
	ffmpeg-dev
	portaudio-dev
	openal-soft-dev
	openssl-dev
	libxkbcommon-dev
	qt5-qtbase-dev
	libexif-dev
	xz-dev
	minizip-dev
	alsa-lib-dev
	libexecinfo-dev
	python2
	range-v3-dev
	rapidjson-dev
	lz4-dev
	pulseaudio-dev
	qtchooser
	"
source="
	$pkgname-$pkgver.tar.gz::https://github.com/telegramdesktop/tdesktop/archive/v${pkgver}.tar.gz
	libtgvoip-$_libtgvoip_commit.tar.gz::https://github.com/telegramdesktop/libtgvoip/archive/${_libtgvoip_commit}.tar.gz
	GSL-$_GSL_commit.tar.gz::https://github.com/Microsoft/GSL/archive/${_GSL_commit}.tar.gz
	variant-$_variant_commit.tar.gz::https://github.com/mapbox/variant/archive/${_variant_commit}.tar.gz
	crl-$_crl_commit.tar.gz::https://github.com/telegramdesktop/crl/archive/${_crl_commit}.tar.gz
	rlottie-$_rlottie_commit.tar.gz::https://github.com/john-preston/rlottie/archive/${_rlottie_commit}.tar.gz
	Catch2-$_Catch2_commit.tar.gz::https://github.com/catchorg/Catch2/archive/${_Catch2_commit}.tar.gz
	xxhash-${_xxhash_commit}.tar.gz::https://github.com/Cyan4973/xxHash/archive/${_xxhash_commit}.tar.gz
	CMakeLists.inj
	0001-musl.patch
	0002-tdesktop.patch
	0003-fix-missing-use-of-pch.patch
	0004-xdg.patch
	0005-system-wide-fonts.patch
	0006-ppc64le-enable-arch.patch
	0007-no-gtk2.patch
	0009-lz4.patch
	0010-libtgvoip.patch
	0011-no-static-qt.patch
	0012-ffmpeg.patch
	0013-lz4.patch
	0014-clock_gettime.patch
	"
builddir="$srcdir/tdesktop-$pkgver"

prepare() {
	rmdir Telegram/ThirdParty/libtgvoip
	rmdir Telegram/ThirdParty/GSL
	rmdir Telegram/ThirdParty/variant
	rmdir Telegram/ThirdParty/crl
	rmdir Telegram/ThirdParty/rlottie
	rmdir Telegram/ThirdParty/Catch
	rmdir Telegram/ThirdParty/xxHash

	# Copy fetched libraries to their appropriate locations
	mv ../libtgvoip-${_libtgvoip_commit} "${builddir}"/Telegram/ThirdParty/libtgvoip
	mv ../GSL-${_GSL_commit} "${builddir}"/Telegram/ThirdParty/GSL
	mv ../variant-${_variant_commit} "${builddir}"/Telegram/ThirdParty/variant
	mv ../crl-${_crl_commit} "${builddir}"/Telegram/ThirdParty/crl
	mv ../rlottie-${_rlottie_commit} "${builddir}"/Telegram/ThirdParty/rlottie
	mv ../Catch2-${_Catch2_commit} "${builddir}"/Telegram/ThirdParty/Catch
	mv ../xxHash-${_xxhash_commit} "${builddir}"/Telegram/ThirdParty/xxHash

	cd "$builddir/Telegram/ThirdParty"
	rm -rf minizip lz4 # we have these system-wide

	default_prepare
}

build() {
	export LANG=en_US.UTF-8
	export GYP_DEFINES="TDESKTOP_DISABLE_CRASH_REPORTS,TDESKTOP_DISABLE_AUTOUPDATE"
	export GYP_DEFINES="${GYP_DEFINES},TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
	export GYP_DEFINES="${GYP_DEFINES},TDESKTOP_DISABLE_DESKTOP_FILE_GENERATION"
	export GYP_DEFINES="${GYP_DEFINES},TDESKTOP_DISABLE_GTK_INTEGRATION"
	export EXTRA_FLAGS="-Winvalid-pch -O2"
	export CPPFLAGS="$CPPFLAGS $EXTRA_FLAGS"
	export CXXFLAGS="$CXXFLAGS $EXTRA_FLAGS"

	gyp \
		-Dapi_id=17349 \
		-Dapi_hash=344583e45741c457fe1862106095a5eb \
		-Dbuild_defines=${GYP_DEFINES} \
		-Gconfig=Release \
		--depth=Telegram/gyp --generator-output=../.. -Goutput_dir=out \
		Telegram/gyp/Telegram.gyp --format=cmake

	NUM=$(( $(wc -l < out/Release/CMakeLists.txt) - 2))
	sed -i "$NUM r ../CMakeLists.inj" out/Release/CMakeLists.txt

	cd out/Release
	cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
	make
}

package() {
	install -dm755 "$pkgdir"/usr/bin
	install -m755 "$builddir/out/Release/Telegram" "$pkgdir/usr/bin/telegram-desktop"

	install -d "$pkgdir/usr/share/applications"
	install -m644 "$builddir/lib/xdg/telegramdesktop.desktop" \
		"$pkgdir/usr/share/applications/telegramdesktop.desktop"

	for icon_size in 16 32 48 64 128 256 512; do
		icon_dir="$pkgdir/usr/share/icons/hicolor/${icon_size}x${icon_size}/apps"

		install -d "$icon_dir"
		install -m644 "$builddir/Telegram/Resources/art/icon${icon_size}.png" \
			"$icon_dir/telegram.png"
	done
}

sha512sums="b2b19aad5c276a389461964b82773f2d0380f0774557d1d81316dc0b10a915ee88b0439211ebbf8aafd8d3edc17dc0dc9d4b7ac894669fba45307a10f5fa946f  telegram-desktop-1.7.14.tar.gz
bf0f1d808b0458d081b5cddcdbf9b24d8a63a31d89c207cd20983abf4f328acea749107d1b0c021579923cfb7371da2a9a6f61d9ce008d6c5c55b3fd7052508e  libtgvoip-0e92a22746d15157bea46faddd61b79e9964275a.tar.gz
83560cb0c39b6a4781e916c6081ad2728296e1b19760ca1b6426a8431fb6d7093760a882c539dd77152f5892fe081b1795af6366ea91385bb10aba6adf27170f  GSL-d846fe50a3f0bb7767c7e087a05f4be95f4da0ec.tar.gz
537ce0a1731274da63a5be063311f7113c1391081e43970663a994b82a7b2e860302406c2931184789661d86343b2c60064c7014b73dc42799573f5b93bc12ff  variant-550ac2f159ca883d360c196149b466955c77a573.tar.gz
7bb68c0b0c94bb266a765e01878a0e840fcc28922af8878ff5217da693092ef19c3e543e4ecb86efd41b2b29bb907d98e1998c0d4f3a9e3dbd65c23df4c29ece  crl-9ea870038a2a667add7f621be6252db909068386.tar.gz
54ab3c79b9e23b1d055e9bbf802d16e036d606923acfb61d13db2b620e869ce08aa8c0e2fa7728bfe45ee2221238302936698f75a26cf22c31a95604c15dc270  rlottie-40ccf084445c60a32d72d4811edf0efd0580dcaa.tar.gz
5b151e0a8c4594b19258a8aade7132521ffbdc97233c9d4a0e5cb2ea31eb9cb3ee51769884a8a08ab821571215ff32854bd76d2929e3b4c14a39e56657109dd6  Catch2-5ca44b68721833ae3731802ed99af67c6f38a53a.tar.gz
cada36066c14ed735f8f45a2d1e0c2d1bdb564dc18154aaabc12552d41065426d88cdeb8a67b8e697678b01f2e415c0a6caf428baa591d013739d7ac95048d4d  xxhash-7cc9639699f64b750c0b82333dced9ea77e8436e.tar.gz
069a3061649567483e4250abdd80aee69937f744aa5ef06bc465ce5bd3abb7b6d934604bd7a35312dd0593895b7709c51288b9063c2919d260909aefab73b3e9  CMakeLists.inj
74e8adfe9cb6c224b12fb653798be1abb55cff40f326a9542e5ae23fb82b57a117b5f74dc8a2af80efcd8e261bbbc46c8e5c10fdb6a55ae3196429fd67afd183  0001-musl.patch
06da4b11ecbaba1f7c46e0afed97abc4b9817349492d947834d40e9e81a4dde43a5223721a6350f5fb34df0997d6ee0ae50558e0899c2ccccfabce5bbb7ddf90  0002-tdesktop.patch
6289d5a3eb224ebb05ab64e23ca3d081e617d905cec07edbba423265dc617548005eeb643ce5dfb2fcef9ac774e9f7b64150729bd894ca0e94af0e2aea9c823b  0003-fix-missing-use-of-pch.patch
8de8c0508177da5fcac4f2dcee4d8baef4b99f74f1dca296567bc3689a6bd17a47c1c945df504abc8811b82a687010d0709503c7c32e47d2ebb1cf0e374c80c5  0004-xdg.patch
ce6be003220267bac5483caf8302b492e1581892bc36d35a61236ebf9f9d766b8bd2159557a1c36256aa85f461797a38bfaae57b12da7a72101b21c0b17ed653  0005-system-wide-fonts.patch
3647ad5fff6326ba9c75fa98189a08c0909af8d1c2b704c8c62fd9da6603f5162af3176c37daa67eb5896bebe3814bf1fd66b9e93c78cbd9b439e472d0db4b44  0006-ppc64le-enable-arch.patch
cb01655dd097b68e89b15e6e4b1f6da10c52e8bec681eeef9807ca376283b10cb3da34acc976c790f3c8dea05acbef1ba1967612920a2e4acb3b9da79e251a0d  0007-no-gtk2.patch
d4ef17600e095b753bcbc4df0078cc025dd235056a8f4946183fc5416e0452bceac020badda60221b98b410261c5aaef72d18e8abc82781257e8075a133908f6  0009-lz4.patch
7d5642672f42f435e206acd047a20b7e38346ed95548f16c0059913546e4e4f54a58927fccb8c1da8e43b6a691bbce2a9608d0db032774d7874d4800e7202d53  0010-libtgvoip.patch
216f8fd0deae38d18d92815b84b4a945a2b83231117d5addd0aa9338acf5cb471c29b2fdfb86ca22c237230f61fbeac14f0445379db4daaddd512cf5e546166e  0011-no-static-qt.patch
30df0fbe5849bbcadb2d28483944f1a5397c056feb0bb4785d481e3e02cad10bb89566b4fb83e0692ca8080963b3d6b817c6ad275bbfebfe74d752a5f5c55c61  0012-ffmpeg.patch
aaff642634f42ba017ac94a2c2cd7df595d0a304a62f5f46dbec82e2c88c00a8cfd6346b2809013228f47f301aedf94e10e77197eebefa26b6df81267e8b1a64  0013-lz4.patch
ab6ef737712cbc934a908aabb57332a4d207c223f50f0108668b8c3c9fd07cd840845ef99c0dc18dca2139f476fcb0309f99058af710ffaf1272023d1d2f1ab4  0014-clock_gettime.patch"