pkgname=telegram-desktop pkgver=1.2.1 pkgrel=1 pkgdesc='Official desktop version of Telegram messaging app.' arch=('i686' 'x86_64') url="https://desktop.telegram.org/" license=('GPL3') depends=( 'ffmpeg' 'icu' 'jasper' 'libmng' 'libxkbcommon-x11' 'libinput' 'libproxy' 'openal' 'tslib' 'xcb-util-wm' 'xcb-util-keysyms' 'xcb-util-image' 'xcb-util-renderutil' 'hicolor-icon-theme' 'openssl-1.0' ) makedepends=( 'git' 'libunity' 'libappindicator-gtk2' 'libva' 'mtdev' 'libexif' 'libwebp' 'google-breakpad-git' 'range-v3' 'chrpath' 'cmake' 'python' 'python2' # QT5 build dependencies 'xcb-util-keysyms' 'libgl' 'fontconfig' 'xcb-util-wm' 'libxrender' 'libxi' 'sqlite' 'xcb-util-image' 'harfbuzz-icu' 'tslib' 'libinput' 'libsm' 'libxkbcommon-x11' # For qtimageformats 'libjpeg-turbo' 'libpng' 'libtiff' 'libmng' 'libwebp' # For qtwayland 'wayland' ) qt_version=5.6.2 source=( "tdesktop::git+https://github.com/telegramdesktop/tdesktop.git#tag=v$pkgver" "GSL::git+https://github.com/Microsoft/GSL.git" "variant::git+https://github.com/mapbox/variant.git" "Catch::git+https://github.com/philsquared/Catch" "libtgvoip::git+https://github.com/telegramdesktop/libtgvoip.git" "git+https://github.com/telegramdesktop/fcitx.git#commit=1abe0b8bdf8124a49f63ddf90de78ed10748c2f6" "git+https://github.com/telegramdesktop/hime.git#commit=28f674788a6ba940296ec77c14a2a9f7f0e4618a" "qt${qt_version//./_}::git+https://code.qt.io/qt/qt5.git#tag=v$qt_version" "https://download.qt.io/official_releases/qt/${qt_version%.*}/$qt_version/submodules/qtbase-opensource-src-$qt_version.tar.xz" "https://download.qt.io/official_releases/qt/${qt_version%.*}/$qt_version/submodules/qtimageformats-opensource-src-$qt_version.tar.xz" "https://download.qt.io/official_releases/qt/${qt_version%.*}/$qt_version/submodules/qtwayland-opensource-src-$qt_version.tar.xz" "git+https://chromium.googlesource.com/external/gyp#commit=702ac58e4772" "telegram-desktop.desktop" "tg.protocol" "tdesktop-aur-fixes.diff" "libtgvoip-aur-fixes.diff" ) sha256sums=( 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' '2f6eae93c5d982fe0a387a01aeb3435571433e23e9d9d9246741faf51f1ee787' '4fb153be62dac393cbcebab65040b3b9d6edecd1ebbe5e543401b0e45bd147e4' '035c3199f4719627b64b7020f0f4574da2b4cb78c6981aba75f27b872d8e6c86' 'SKIP' 'f47f4b10c8b498ab456ad1dd54754cbd6725b936bb94ffe4fea12d2c2f2b408d' 'd4cdad0d091c7e47811d8a26d55bbee492e7845e968c522e86f120815477e9eb' '5ff20e8b76661c9c1f4abe06eaf8fc40b93a9af273880f62e2ae0c5bd172957f' '00877dd2c6e808313f1dd38c48f0dc656e342adb01e4d8ec58b14e63408b16c6' ) prepare() { cd "$srcdir/tdesktop" mkdir -p "$srcdir/Libraries" local qt_patch_file="$srcdir/tdesktop/Telegram/Patches/qtbase_${qt_version//./_}.diff" local qt_src_dir="$srcdir/Libraries/qt${qt_version//./_}" if [ "$qt_patch_file" -nt "$qt_src_dir" ]; then rm -rf "$qt_src_dir" mv "$srcdir/qt${qt_version//./_}" "$qt_src_dir" cd "$qt_src_dir" rmdir "$qt_src_dir/qtbase" mv "$srcdir/qtbase-opensource-src-$qt_version" "$qt_src_dir/qtbase" rmdir "$qt_src_dir/qtimageformats" mv "$srcdir/qtimageformats-opensource-src-$qt_version" "$qt_src_dir/qtimageformats" rmdir "$qt_src_dir/qtwayland" mv "$srcdir/qtwayland-opensource-src-$qt_version" "$qt_src_dir/qtwayland" cd "$qt_src_dir/qtbase" patch -p1 -i "$qt_patch_file" echo "INCLUDEPATH += /usr/include/openssl-1.0" >> "$qt_src_dir/qtbase/src/network/network.pro" mv "$srcdir/fcitx" "$qt_src_dir/qtbase/src/plugins/platforminputcontexts/fcitx" mv "$srcdir/hime" "$qt_src_dir/qtbase/src/plugins/platforminputcontexts/hime" fi cd "$srcdir/gyp" git apply "$srcdir/tdesktop/Telegram/Patches/gyp.diff" sed -i 's/exec python /exec python2 /g' "$srcdir/gyp/gyp" if [ ! -h "$srcdir/Libraries/gyp" ]; then ln -s "$srcdir/gyp" "$srcdir/Libraries/gyp" fi cd "$srcdir/tdesktop" git submodule init git config submodule.Telegram/ThirdParty/GSL.url "$srcdir/GSL" git config submodule.Telegram/ThirdParty/variant.url "$srcdir/variant" git config submodule.Telegram/ThirdParty/libtgvoip.url "$srcdir/libtgvoip" git config submodule.Telegram/ThirdParty/Catch.url "$srcdir/Catch" git submodule update git apply "$srcdir/tdesktop-aur-fixes.diff" cd Telegram/ThirdParty/libtgvoip git checkout . git apply "$srcdir/libtgvoip-aur-fixes.diff" } build() { # Build patched Qt local qt_src_dir="$srcdir/Libraries/qt${qt_version//./_}" export OPENSSL_LIBS='-L/usr/lib/openssl-1.0 -lssl -lcrypto' cd "$qt_src_dir" ./configure \ -prefix "$srcdir/qt" \ -release \ -force-debug-info \ -opensource \ -confirm-license \ -system-zlib \ -system-libpng \ -system-libjpeg \ -system-freetype \ -system-harfbuzz \ -system-pcre \ -system-xcb \ -system-xkbcommon-x11 \ -no-gtkstyle \ -static \ -nomake examples \ -nomake tests #-no-opengl make make install # Build Telegram Desktop rm -rf "$srcdir/tdesktop/out" cd "$srcdir/tdesktop/Telegram/gyp" "$srcdir/Libraries/gyp/gyp" \ -Dlinux_path_qt="$srcdir/qt" \ -Dlinux_lib_ssl='-L/usr/lib/openssl-1.0 -lssl' \ -Dlinux_lib_crypto='-L/usr/lib/openssl-1.0 -lcrypto' \ -Dlinux_lib_icu="-licuuc -licutu -licui18n" \ -Dlinux_path_opus_include="/usr/include/opus" \ --depth=. --generator-output=../.. -Goutput_dir=out Telegram.gyp --format=cmake cd "$srcdir/tdesktop/out/Release" cmake . make chrpath --delete Telegram } package() { install -dm755 "$pkgdir/usr/bin" install -m755 "$srcdir/tdesktop/out/Release/Telegram" "$pkgdir/usr/bin/telegram-desktop" install -d "$pkgdir/usr/share/applications" install -m644 "$srcdir/telegram-desktop.desktop" "$pkgdir/usr/share/applications/telegram-desktop.desktop" install -d "$pkgdir/usr/share/kde4/services" install -m644 "$srcdir/tg.protocol" "$pkgdir/usr/share/kde4/services/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/tdesktop/Telegram/Resources/art/icon${icon_size}.png" "$icon_dir/telegram-desktop.png" done }