summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: ea435987b696175247896edb519868d83a6e6cf8 (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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# Maintainer: Auteiy <dmitry@auteiy.me>

# Thanks Nicholas Guriev <guriev-ns@ya.ru> for the patches!
# https://github.com/mymedia2/tdesktop

pkgname=kotatogram-desktop
pkgver=1.1.1
pkgrel=1
pkgdesc="Experimental Telegram Desktop fork with option to select custom fonts."
arch=(x86_64)
url="https://github.com/kotatogram/kotatogram-desktop"
license=(GPL3)
depends=(
        ffmpeg
        hicolor-icon-theme
        minizip
        openal
        qt5-base
        qt5-imageformats
        openssl
        )
makedepends=(
        cmake
        git
        gyp
        range-v3
        python
        libappindicator-gtk3
        )
optdepends=(
        'libnotify: desktop notifications'
        )
source=(
        "$pkgname-$pkgver::git+$url.git#tag=k$pkgver"
        "Catch2::git+https://github.com/catchorg/Catch2.git"
        "crl::git+https://github.com/telegramdesktop/crl.git"
        "GSL::git+https://github.com/Microsoft/GSL.git"
        "libtgvoip::git+https://github.com/telegramdesktop/libtgvoip"
        "lz4::git+https://github.com/lz4/lz4.git"
        "rlottie::git+https://github.com/desktop-app/rlottie.git"
        "variant::git+https://github.com/mapbox/variant"
        "xxHash::git+https://github.com/Cyan4973/xxHash.git"
        "codegen::git+https://github.com/desktop-app/codegen.git"
        "lib_base::git+https://github.com/desktop-app/lib_base.git"
        "lib_crl::git+https://github.com/desktop-app/lib_crl"
        "lib_lottie::git+https://github.com/desktop-app/lib_lottie"
        "lib_rlottie::git+https://github.com/desktop-app/lib_rlottie"
        "lib_rpl::git+https://github.com/desktop-app/lib_rpl"
        "lib_spellcheck::git+https://github.com/desktop-app/lib_spellcheck"
        "lib_tl::git+https://github.com/desktop-app/lib_tl"
        "lib_ui::git+https://github.com/kotatogram/lib_ui.git"

        "CMakeLists.inj"
        "no-gtk2.patch"
        "tdesktop.patch"
        "tg.protocol"
       )
# Checksums automatically set in CI, see: /.gitlab-ci.yml
sha512sums=('SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            '98236f7f161c8bad1152a77505f9c3eebae06ffc0420ed476e101359a92d01438dd6ce6062e0b110b76f2d6d09f59accf4b1969699b8af5a3650ecb0c31929c5'
            '117b0c2bae3d3d3aa94d41382621be4e05c3314a2831dba59e1bcfb443e7b8ff4bcd0403544fa0cb6def85b444146bf59eef9da25f96b041d3ce8f5429b4a867'
            'f667b00f4c2e02799d3a130f1370bbe13866294329164c9fee901fa54655e4ebfaaae4e0f15327b660b10248c6a087dd2fa53d9f72714ba099ea2cbf4d07ca32'
            'e54c2f5a4cdeff5850828072890679e07da07cfa3663cf9bfb1e6b8f5bca0dc15e6b4b9a2a6c111b796a0440035beea419cda9bf4ec5d476d4fbb54c1b4ad7fd')
        

prepare() {
    cd "$srcdir/kdesktop"
        git submodule init
        
        git config submodule.Telegram/ThirdParty/Catch.url "$srcdir/Catch2"
        git config submodule.Telegram/ThirdParty/crl.url "$srcdir/crl"
        git config submodule.Telegram/ThirdParty/GSL.url "$srcdir/GSL"
        git config submodule.Telegram/ThirdParty/libtgvoip.url "$srcdir/libtgvoip"
        git config submodule.Telegram/ThirdParty/lz4.url "$srcdir/lz4"
        git config submodule.Telegram/ThirdParty/minizip.url "$srcdir/minizip"
        git config submodule.Telegram/ThirdParty/rlottie.url "$srcdir/rlottie"
        git config submodule.Telegram/ThirdParty/SPMediaKeyTap.url "$srcdir/SPMediaKeyTap"
        git config submodule.Telegram/ThirdParty/variant.url "$srcdir/variant"
        git config submodule.Telegram/ThirdParty/xxHash.url "$srcdir/xxHash"
        
        git config submodule.Telegram/codegen.url "$srcdir/codegen"
        git config submodule.Telegram/lib_base.url "$srcdir/lib_base"
        git config submodule.Telegram/lib_crl.url "$srcdir/lib_crl"
        git config submodule.Telegram/lib_lottie.url "$srcdir/lib_lottie"
        git config submodule.Telegram/lib_rlottie.url "$srcdir/lib_rlottie"
        git config submodule.Telegram/lib_rpl.url "$srcdir/lib_rpl"
        git config submodule.Telegram/lib_spellcheck.url "$srcdir/lib_spellcheck"
        git config submodule.Telegram/lib_tl.url "$srcdir/lib_tl"
        git config submodule.Telegram/lib_ui.url "$srcdir/lib_ui"

        git submodule update

        patch -Np1 -i "$srcdir/no-gtk2.patch"
        patch -Np1 -i "$srcdir/tdesktop.patch"
}

build() {
    cd "$srcdir/kdesktop"
        export LANG=en_US.UTF-8
        export GYP_DEFINES="DESKTOP_APP_DISABLE_CRASH_REPORTS,TDESKTOP_DISABLE_AUTOUPDATE,TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME,TDESKTOP_DISABLE_DESKTOP_FILE_GENERATION"
        export EXTRA_FLAGS="-Winvalid-pch"
        export CPPFLAGS="$CPPFLAGS $EXTRA_FLAGS"
        export CXXFLAGS="$CXXFLAGS $EXTRA_FLAGS"

# Telegram requires us to set API_ID and API_HASH for some reason but they do not provide a way to receive a pair
# See https://github.com/telegramdesktop/tdesktop/commit/65b2db216033aa08b7bc846df27843e566f08981 and
# https://github.com/telegramdesktop/tdesktop/issues/4717
# The official API_ID seems to be 2040 while the API_HASH is "b18441a1ff607e10a989891a5462e627".
# We're going to use the defaults for now but might at some point use the official ones from the official binaries as noted above.

        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 "$srcdir/kdesktop/out/Release"
        cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -UTDESKTOP_OFFICIAL_TARGET
        make
}

package() {
    install -dm755 "$pkgdir/usr/bin"
        install -m755 "$srcdir/kdesktop/out/Release/Telegram" "$pkgdir/usr/bin/kotatogram-desktop"

        install -d "$pkgdir/usr/share/applications"
        install -m644 "$srcdir/kdesktop/lib/xdg/kotatogramdesktop.desktop" "$pkgdir/usr/share/applications/kotatogramdesktop.desktop"

        install -d "$pkgdir/usr/share/kservices5"
        install -m644 "$srcdir/tg.protocol" "$pkgdir/usr/share/kservices5/tg.protocol"

        local icon_size icon_dir
        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 "$srcdir/kdesktop/Telegram/Resources/art/icon${icon_size}.png" "$icon_dir/kotatogram.png"
                done
}