blob: f67a20a7d7ce881ca6b82385061f36adb53bd03b (
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
|
# Maintainer: Giovanni 'ItachiSan' Santini <giovannisantini93@yahoo.it>
# Contributor: silentnoodle <lonnqvistben at gmail dot com>
# Contributor: Sven-Hendrik Haase <svenstaro@archlinux.org>
# Contributor: hexchain <i@hexchain.org>
# Thanks Nicholas Guriev <guriev-ns@ya.ru> for the initial patches!
# https://github.com/mymedia2/tdesktop
# Updated using:
# https://raw.githubusercontent.com/archlinux/svntogit-community/packages/telegram-desktop/trunk/PKGBUILD
# Thanks to the Arch maintainers :)
# You can pass parameters to `ninja` via MAKEFLAGS
pkgname=telegram-desktop-dev
pkgver=5.5.3
pkgrel=1
pkgdesc='Official Telegram Desktop client - development release'
arch=(x86_64)
url="https://desktop.telegram.org/"
license=('GPL3')
# Although not in order, keeping them in the same order of the standard package
# for my mental sanity.
# libtg_owt-git for now until the official repo is updated.
depends=('hunspell' 'ffmpeg' 'hicolor-icon-theme' 'lz4' 'minizip' 'openal'
'qt6-imageformats' 'qt6-svg' 'qt6-wayland' 'xxhash' 'ada'
'rnnoise' 'pipewire' 'libxtst' 'libxrandr' 'libxcomposite' 'libxdamage' 'abseil-cpp' 'libdispatch'
'openssl' 'protobuf' 'glib2' 'libsigc++-3.0' 'kcoreaddons' 'openh264')
makedepends=('cmake' 'git' 'ninja' 'python' 'range-v3' 'tl-expected' 'microsoft-gsl' 'meson'
'extra-cmake-modules' 'wayland-protocols' 'plasma-wayland-protocols' 'libtg_owt'
'gobject-introspection' 'boost' 'fmt' 'mm-common' 'perl-xml-parser' 'python-packaging'
'glib2-devel')
optdepends=('webkit2gtk: embedded browser features'
'xdg-desktop-portal: desktop integration')
provides=(telegram-desktop)
conflicts=(telegram-desktop)
# Specify the commit to fetch. Normally the version tag.
_commit="tag=v$pkgver"
# All the sources are Git repositories and might be adjusted when a build issue arise.
# These files might require modifications to be up-to-date.
# In such situation, extra patches will be added.
# An easy way to clone the repo since the last update is:
# git clone --recurse-submodules --shallow-submodules --shallow-since=vOLDVER --branch=vNEWVER https://github.com/telegramdesktop/tdesktop WORKDIR
source=(
# Old approach, with many Git repos
#"tdesktop::git+https://github.com/telegramdesktop/tdesktop#$_commit"
# Here are all the submodule repos.
# Use the nearby Python script for generating the list
# ...
# New approach: source tarball, same as the stable Arch package
"https://github.com/telegramdesktop/tdesktop/releases/download/v${pkgver}/tdesktop-${pkgver}-full.tar.gz"
)
sha512sums=('27eee61e4e81d0cdeeb7c13111a6a98f0deb83204a13e475d1d0c548bd0ac9fc607a95b5e2b0c16a00fca746d3c0ea039120dcc4104b3bcc8970b7ee13300c74')
prepare() {
# Magic submodule configuration, thanks to the Python script
# ...
# Normal preparation here
cd "$srcdir/tdesktop-$pkgver-full"
# Magic is over!
# We need the extra flag for this vulnerability:
# https://github.blog/2022-10-18-git-security-vulnerabilities-announced/#cve-2022-39253
# With the -c flag we enable the file cloning only for this command, as per guidelines:
# https://wiki.archlinux.org/title/VCS_package_guidelines#Git_submodules
#git -c protocol.file.allow=always submodule update --recursive
# Cheating! Linking fixed patches to their usual place
#for fixed in $srcdir/*_fixed*
#do
# ln -s $fixed ${fixed/_fixed/}
#done
# Patch here, if needed!
# patch -Np1 -i "$srcdir/my_beautiful.patch"
# Official package patches
}
build() {
CXXFLAGS+=' -ffat-lto-objects'
# Ensure that we won't have issues with tmpfs.
# If you prefer to speed up things, comment the next 2 lines.
# export TMPDIR="$srcdir/build_tmp"
# mkdir -p $TMPDIR
# Turns out we're allowed to use the official API key that telegram uses for their snap builds:
# https://github.com/telegramdesktop/tdesktop/blob/8fab9167beb2407c1153930ed03a4badd0c2b59f/snap/snapcraft.yaml#L87-L88
# Thanks @primeos!
#cmake -B build -S tdesktop -G Ninja \
# -DCMAKE_VERBOSE_MAKEFILE=ON \
cmake -B build -S "tdesktop-$pkgver-full" -G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DCMAKE_BUILD_TYPE=Release \
-DTDESKTOP_API_ID=611335 \
-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c
cmake --build build -- $MAKEFLAGS
}
package() {
DESTDIR="$pkgdir" cmake --install build
}
|