aboutsummaryrefslogtreecommitdiffstats
path: root/testing/telegram-desktop/APKBUILD
blob: b04c3cd36c91a4f85cdb6b06db0cda9f2af21e9d (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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
# 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.8.8
# https://github.com/telegramdesktop/tdesktop/blob/v$pkgver/docs/building-cmake.md
_catch2_commit=5ca44b68721833ae3731802ed99af67c6f38a53a
_gsl_commit=d846fe50a3f0bb7767c7e087a05f4be95f4da0ec
_crl_commit=52baf11aaeb7f5ea6955a438abaa1aee4c4308d8
_libtgvoip_commit=d4a0f719ffd8d29e88474f67abc9fc862661c3b9
_rlottie_commit=589db026ec211bc4979e3bffe074f6e48ce7cedc
_variant_commit=550ac2f159ca883d360c196149b466955c77a573
_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
	rapidjson-dev
	lz4-dev
	pulseaudio-dev
	qtchooser
	range-v3-dev
	"
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
	0009-lz4.patch
	0010-libtgvoip.patch
	0013-lz4.patch
	0014-clock_gettime.patch
	0015-revert-headers.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

	# disable static-qt for rlottie
	sed "/RLOTTIE_WITH_STATIC_QT/d" -i "$builddir/Telegram/gyp/lib_rlottie.gyp"

	# fix C++ ranges::sized_iterator_range
	sed -e "s/ranges::make_iterator_range/ranges::subrange/g" \
		-i "$builddir/Telegram/SourceFiles/data/data_channel.cpp" \
		-i "$builddir/Telegram/SourceFiles/chat_helpers/emoji_keywords.cpp" \
		-i "$builddir/Telegram/SourceFiles/media/streaming/media_streaming_reader.cpp" \
		-i "$builddir/Telegram/SourceFiles/ui/widgets/input_fields.cpp" \
		-i "$builddir/Telegram/SourceFiles/ui/text/text_entity.cpp"

	sed -e "s/make_iterator_range/ranges::subrange/g" \
		-i "$builddir/Telegram/SourceFiles/history/history_inner_widget.cpp"

	sed -e "/int remainder = 0;/a inline bool operator==(const PercentCounterItem &o) const { return !(*this < o) && !(o < *this);}" \
		-i "$builddir/Telegram/SourceFiles/history/view/media/history_view_poll.cpp"

}

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 -UTDESKTOP_OFFICIAL_TARGET
	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="8410f8ea31c4e5604c3f9e8965431ec9cf68ec3366da22bb1fc5e745d7518cb49374072ecb70d347714f3f2fefdf882dc05e14ccd4a883b5a96eacf0a87e1c53  telegram-desktop-1.8.8.tar.gz
14eaadcb4ec25e7d603d3965f8dc003f0509bc215916e0f5e092564c76d2a440a8edc9e5e61ae279c0b18edffaa401df6aedc766c1e7355357bfb1c95e2b5f50  libtgvoip-d4a0f719ffd8d29e88474f67abc9fc862661c3b9.tar.gz
83560cb0c39b6a4781e916c6081ad2728296e1b19760ca1b6426a8431fb6d7093760a882c539dd77152f5892fe081b1795af6366ea91385bb10aba6adf27170f  GSL-d846fe50a3f0bb7767c7e087a05f4be95f4da0ec.tar.gz
537ce0a1731274da63a5be063311f7113c1391081e43970663a994b82a7b2e860302406c2931184789661d86343b2c60064c7014b73dc42799573f5b93bc12ff  variant-550ac2f159ca883d360c196149b466955c77a573.tar.gz
cfe28a69cff822fab8ebb4379b105e3d69e610614359ba7b6b91cbf676c23067f75d34f259500ab7fb61d3e4b45a0dd77ee4bf4f0bdc6d6463dab5f3f447f6fe  crl-52baf11aaeb7f5ea6955a438abaa1aee4c4308d8.tar.gz
60f2020b103fc2090d3c89f9ba5aeeba5be2d9e01f1954a4abbd7fdfe8ca64c28e86ead1646292bd9b5cb8beb9cb25d8ab077405ebe286007a437ea969ec4a0a  rlottie-589db026ec211bc4979e3bffe074f6e48ce7cedc.tar.gz
5b151e0a8c4594b19258a8aade7132521ffbdc97233c9d4a0e5cb2ea31eb9cb3ee51769884a8a08ab821571215ff32854bd76d2929e3b4c14a39e56657109dd6  Catch2-5ca44b68721833ae3731802ed99af67c6f38a53a.tar.gz
cada36066c14ed735f8f45a2d1e0c2d1bdb564dc18154aaabc12552d41065426d88cdeb8a67b8e697678b01f2e415c0a6caf428baa591d013739d7ac95048d4d  xxhash-7cc9639699f64b750c0b82333dced9ea77e8436e.tar.gz
c81d82c65fb78e4832aaaa0aff3d33a1f235f0f213a115a8f7aded79f249f5724b3fb8f4cc1493fb06848a7ae4568bfd875a34f4f4c757a7a12c10d1f3603103  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
d4ef17600e095b753bcbc4df0078cc025dd235056a8f4946183fc5416e0452bceac020badda60221b98b410261c5aaef72d18e8abc82781257e8075a133908f6  0009-lz4.patch
7d5642672f42f435e206acd047a20b7e38346ed95548f16c0059913546e4e4f54a58927fccb8c1da8e43b6a691bbce2a9608d0db032774d7874d4800e7202d53  0010-libtgvoip.patch
aaff642634f42ba017ac94a2c2cd7df595d0a304a62f5f46dbec82e2c88c00a8cfd6346b2809013228f47f301aedf94e10e77197eebefa26b6df81267e8b1a64  0013-lz4.patch
ab6ef737712cbc934a908aabb57332a4d207c223f50f0108668b8c3c9fd07cd840845ef99c0dc18dca2139f476fcb0309f99058af710ffaf1272023d1d2f1ab4  0014-clock_gettime.patch
d564ee17a610864b1708f7ad1050804e24921b8bb3c4da9713f804b3738ba63d6ee0e594b3fe7c28d0fb9a082a22021b1c7f2b60498265bbca08e89775a4f60a  0015-revert-headers.patch"