diff options
author | Dan Elkouby | 2019-12-29 13:46:02 +0200 |
---|---|---|
committer | Dan Elkouby | 2019-12-29 15:26:51 +0200 |
commit | 49bd5aa5790a7e0fda365ba49b030f6ea8413af2 (patch) | |
tree | 59b8010723cc000e8f3df00af28263ccbe177aec | |
download | aur-49bd5aa5790a7e0fda365ba49b030f6ea8413af2.tar.gz |
Import telegram-desktop from [community]
-rw-r--r-- | .SRCINFO | 60 | ||||
-rw-r--r-- | CMakeLists.inj | 20 | ||||
-rw-r--r-- | PKGBUILD | 130 | ||||
-rw-r--r-- | Revert-Change-some-private-header-includes.patch | 66 | ||||
-rw-r--r-- | Revert-Disable-DemiBold-fallback-for-Semibold.patch | 30 | ||||
-rw-r--r-- | Use-system-wide-font.patch | 32 | ||||
-rw-r--r-- | libtgvoip.patch | 18 | ||||
-rw-r--r-- | no-gtk2.patch | 32 | ||||
-rw-r--r-- | tdesktop.patch | 466 | ||||
-rw-r--r-- | tdesktop_lottie_animation_qtdebug.patch | 15 | ||||
-rw-r--r-- | tg.protocol | 11 |
11 files changed, 880 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..7a50f5ac5c21 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,60 @@ +pkgbase = telegram-desktop + pkgdesc = Official Telegram Desktop client + pkgver = 1.8.15 + pkgrel = 2 + url = https://desktop.telegram.org/ + arch = x86_64 + license = GPL3 + makedepends = cmake + makedepends = git + makedepends = gyp + makedepends = range-v3 + makedepends = python + makedepends = libappindicator-gtk3 + makedepends = dos2unix + depends = ffmpeg + depends = hicolor-icon-theme + depends = minizip + depends = openal + depends = qt5-base + depends = qt5-imageformats + depends = openssl + optdepends = libnotify: desktop notifications + optdepends = ttf-opensans: default Open Sans font family + source = tdesktop::git+https://github.com/telegramdesktop/tdesktop.git#tag=v1.8.15 + source = libtgvoip::git+https://github.com/telegramdesktop/libtgvoip + source = variant::git+https://github.com/mapbox/variant + source = Catch2::git+https://github.com/catchorg/Catch2.git + source = GSL::git+https://github.com/Microsoft/GSL.git + source = crl::git+https://github.com/telegramdesktop/crl.git + source = xxHash::git+https://github.com/Cyan4973/xxHash.git + source = rlottie::git+https://github.com/john-preston/rlottie.git + source = tg.protocol + source = CMakeLists.inj + source = libtgvoip.patch + source = tdesktop.patch + source = no-gtk2.patch + source = Revert-Disable-DemiBold-fallback-for-Semibold.patch + source = tdesktop_lottie_animation_qtdebug.patch + source = Revert-Change-some-private-header-includes.patch + source = Use-system-wide-font.patch + sha512sums = SKIP + sha512sums = SKIP + sha512sums = SKIP + sha512sums = SKIP + sha512sums = SKIP + sha512sums = SKIP + sha512sums = SKIP + sha512sums = SKIP + sha512sums = b87414ceaae19185a8a5749cea1f6d9f3fc3c69b8dd729e3db8790cde00b987c3c827cd30baf0eac579d1884e34aa2f37bb90778c3c0bc9ca211d75a82891b9d + sha512sums = b759e45282c7bd04e1fdcbfd0c009773782bebde36d96363db9869a9d78e7fad41314ad311b7afbfa57db4e66c0265da17e9f81f6d62a972466cb71d19d4b47c + sha512sums = d60694dc701aa985b0e82a12c9732b945082470441c687b33167a94f94efcf253baf43bb7280ec160ba338485ee5c62de138e4804cae05f27cc5cf4298166d39 + sha512sums = 218f8711eefb5a8115222e099e6d08fc4079584b3aa3594d05a43390f37d5b51fbf1b64511c3a3e7792ef6c32fa6f4c8a65b6188a9efbd340304602552f3a595 + sha512sums = 117b0c2bae3d3d3aa94d41382621be4e05c3314a2831dba59e1bcfb443e7b8ff4bcd0403544fa0cb6def85b444146bf59eef9da25f96b041d3ce8f5429b4a867 + sha512sums = d5cd7ecb5583258462c21a9ae3d4e8ae8c709d47d7ce2c45f8ae23100d24993398b8372021957b9a4607b3988f366e1c0cf64d724d901cb70212665c481217e9 + sha512sums = 79fcbee94f09df6b443c2b967afe4cba367985af13004b130da27f7bdf20974f76148a8056e98ce92000fabed80a1ff3cb2d332f6f8c70eed8aa909281533cd5 + sha512sums = 087dd821690dfedf1c275f264a0223b123e31ab9ee95050023930470bc9c866958cae00e2fd9132e6f7efbc4f1dfc3fdc20f8fba1fc9472d92bd702eaa60adb0 + sha512sums = 2c1bb75449b4634befa3edaac5d20e4b29ede21119549d9a3895dda9d4723f618dd950ee32133e04186fa65d07f80081ba3e3d5585209ba9112aa754d06fbb5c + +pkgname = telegram-desktop + diff --git a/CMakeLists.inj b/CMakeLists.inj new file mode 100644 index 000000000000..e6cfed4cf6dd --- /dev/null +++ b/CMakeLists.inj @@ -0,0 +1,20 @@ +# The text will be put into the appropriate CMakeLists by the PKGBUILD + +# Avoid rpath compiler parameter +set_target_properties(Telegram PROPERTIES SKIP_BUILD_RPATH TRUE) + +# This makes up for patch of gyp utility, supporting precompiled headers. If +# Telegram/Patches/gyp.diff file will be changed in future, please check these +# lines. +include(../../Telegram/gyp/PrecompiledHeader.cmake) +add_precompiled_header(Telegram ../../Telegram/SourceFiles/stdafx.h) +add_precompiled_header(lib_base ../../Telegram/SourceFiles/base/base_pch.h) +add_precompiled_header(lib_export ../../Telegram/SourceFiles/export/export_pch.h) +add_precompiled_header(lib_storage ../../Telegram/SourceFiles/storage/storage_pch.h) +add_precompiled_header(lib_mtproto ../../Telegram/SourceFiles/mtproto/mtp_pch.h) +add_precompiled_header(lib_ui ../../Telegram/SourceFiles/ui/ui_pch.h) + +# You can discover new PCHs using this link: +# https://github.com/telegramdesktop/tdesktop/search?q=pch_header&unscoped_q=pch_header + +# vim: ft=cmake diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..a3a25b2aed11 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,130 @@ +# Maintainer: Sven-Hendrik Haase <svenstaro@gmail.com> +# Contributor: hexchain <i@hexchain.org> + +# Thanks Nicholas Guriev <guriev-ns@ya.ru> for the patches! +# https://github.com/mymedia2/tdesktop + +pkgname=telegram-desktop +pkgver=1.8.15 +pkgrel=2 +pkgdesc='Official Telegram Desktop client' +arch=('x86_64') +url="https://desktop.telegram.org/" +license=('GPL3') +depends=('ffmpeg' 'hicolor-icon-theme' 'minizip' 'openal' 'qt5-base' 'qt5-imageformats' 'openssl') +makedepends=('cmake' 'git' 'gyp' 'range-v3' 'python' 'libappindicator-gtk3' 'dos2unix') +optdepends=('libnotify: desktop notifications' + 'ttf-opensans: default Open Sans font family') +source=( + "tdesktop::git+https://github.com/telegramdesktop/tdesktop.git#tag=v$pkgver" + "libtgvoip::git+https://github.com/telegramdesktop/libtgvoip" + "variant::git+https://github.com/mapbox/variant" + "Catch2::git+https://github.com/catchorg/Catch2.git" + "GSL::git+https://github.com/Microsoft/GSL.git" + "crl::git+https://github.com/telegramdesktop/crl.git" + "xxHash::git+https://github.com/Cyan4973/xxHash.git" + "rlottie::git+https://github.com/john-preston/rlottie.git" + "tg.protocol" + "CMakeLists.inj" + "libtgvoip.patch" + + "tdesktop.patch" + "no-gtk2.patch" + "Revert-Disable-DemiBold-fallback-for-Semibold.patch" + "tdesktop_lottie_animation_qtdebug.patch" + "Revert-Change-some-private-header-includes.patch" + "Use-system-wide-font.patch" +) +sha512sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'b87414ceaae19185a8a5749cea1f6d9f3fc3c69b8dd729e3db8790cde00b987c3c827cd30baf0eac579d1884e34aa2f37bb90778c3c0bc9ca211d75a82891b9d' + 'b759e45282c7bd04e1fdcbfd0c009773782bebde36d96363db9869a9d78e7fad41314ad311b7afbfa57db4e66c0265da17e9f81f6d62a972466cb71d19d4b47c' + 'd60694dc701aa985b0e82a12c9732b945082470441c687b33167a94f94efcf253baf43bb7280ec160ba338485ee5c62de138e4804cae05f27cc5cf4298166d39' + '218f8711eefb5a8115222e099e6d08fc4079584b3aa3594d05a43390f37d5b51fbf1b64511c3a3e7792ef6c32fa6f4c8a65b6188a9efbd340304602552f3a595' + '117b0c2bae3d3d3aa94d41382621be4e05c3314a2831dba59e1bcfb443e7b8ff4bcd0403544fa0cb6def85b444146bf59eef9da25f96b041d3ce8f5429b4a867' + 'd5cd7ecb5583258462c21a9ae3d4e8ae8c709d47d7ce2c45f8ae23100d24993398b8372021957b9a4607b3988f366e1c0cf64d724d901cb70212665c481217e9' + '79fcbee94f09df6b443c2b967afe4cba367985af13004b130da27f7bdf20974f76148a8056e98ce92000fabed80a1ff3cb2d332f6f8c70eed8aa909281533cd5' + '087dd821690dfedf1c275f264a0223b123e31ab9ee95050023930470bc9c866958cae00e2fd9132e6f7efbc4f1dfc3fdc20f8fba1fc9472d92bd702eaa60adb0' + '2c1bb75449b4634befa3edaac5d20e4b29ede21119549d9a3895dda9d4723f618dd950ee32133e04186fa65d07f80081ba3e3d5585209ba9112aa754d06fbb5c') + +prepare() { + cd "$srcdir/tdesktop" + git submodule init + git config submodule.Telegram/ThirdParty/libtgvoip.url "$srcdir/libtgvoip" + git config submodule.Telegram/ThirdParty/variant.url "$srcdir/variant" + git config submodule.Telegram/ThirdParty/GSL.url "$srcdir/GSL" + git config submodule.Telegram/ThirdParty/Catch.url "$srcdir/Catch2" + git config submodule.Telegram/ThirdParty/crl.url "$srcdir/crl" + git config submodule.Telegram/ThirdParty/xxHash.url "$srcdir/xxHash" + git config submodule.Telegram/ThirdParty/rlottie.url "$srcdir/rlottie" + git submodule update + + dos2unix "$srcdir/tdesktop/.appveyor/install.bat" + + patch -Np1 -i "$srcdir/tdesktop.patch" + patch -Np1 -i "$srcdir/no-gtk2.patch" + patch -Np1 -i "$srcdir/Revert-Disable-DemiBold-fallback-for-Semibold.patch" + patch -Np1 -i "$srcdir/tdesktop_lottie_animation_qtdebug.patch" + patch -Np1 -i "$srcdir/Revert-Change-some-private-header-includes.patch" + patch -Np1 -i "$srcdir/Use-system-wide-font.patch" + + unix2dos "$srcdir/tdesktop/.appveyor/install.bat" + # disable static-qt for rlottie + sed "/RLOTTIE_WITH_STATIC_QT/d" -i "$srcdir/tdesktop/Telegram/gyp/lib_rlottie.gyp" + + cd "$srcdir/tdesktop" + cd "Telegram/ThirdParty/libtgvoip" + patch -Np1 -i "$srcdir/libtgvoip.patch" +} + +build() { + cd "$srcdir/tdesktop" + export LANG=en_US.UTF-8 + export GYP_DEFINES="TDESKTOP_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/tdesktop/out/Release" + cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -UTDESKTOP_OFFICIAL_TARGET + make +} + +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/tdesktop/lib/xdg/telegramdesktop.desktop" "$pkgdir/usr/share/applications/telegramdesktop.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/tdesktop/Telegram/Resources/art/icon${icon_size}.png" "$icon_dir/telegram.png" + done +} diff --git a/Revert-Change-some-private-header-includes.patch b/Revert-Change-some-private-header-includes.patch new file mode 100644 index 000000000000..85611998311e --- /dev/null +++ b/Revert-Change-some-private-header-includes.patch @@ -0,0 +1,66 @@ +From 46a55ed8f7ef4ee99ebccf1bdded3d5ccaef33af Mon Sep 17 00:00:00 2001 +From: Jiachen YANG <farseerfc@gmail.com> +Date: Fri, 4 Oct 2019 17:00:48 +0900 +Subject: [PATCH 5/6] Revert "Change some private header includes." + +This reverts commit b9d3ba621eb8af638af46c6b3cfd7a8330bf0dd5. +--- + Telegram/SourceFiles/ui/text/text.cpp | 1 - + Telegram/SourceFiles/ui/text/text.h | 2 +- + Telegram/SourceFiles/ui/text/text_block.cpp | 2 -- + Telegram/SourceFiles/ui/text/text_block.h | 1 + + 4 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/Telegram/SourceFiles/ui/text/text.cpp b/Telegram/SourceFiles/ui/text/text.cpp +index eaeb52b35..2c55f1123 100644 +--- a/Telegram/SourceFiles/ui/text/text.cpp ++++ b/Telegram/SourceFiles/ui/text/text.cpp +@@ -14,7 +14,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL + #include "ui/ui_integration.h" + #include "platform/platform_info.h" + +-#include <private/qfontengine_p.h> + #include <private/qharfbuzz_p.h> + + namespace Ui { +diff --git a/Telegram/SourceFiles/ui/text/text.h b/Telegram/SourceFiles/ui/text/text.h +index 5d7c2cd07..3a2de5d3e 100644 +--- a/Telegram/SourceFiles/ui/text/text.h ++++ b/Telegram/SourceFiles/ui/text/text.h +@@ -12,7 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL + #include "ui/click_handler.h" + #include "base/flags.h" + +-#include <private/qfixed_p.h> ++#include <private/qfontengine_p.h> + + static const QChar TextCommand(0x0010); + enum TextCommands { +diff --git a/Telegram/SourceFiles/ui/text/text_block.cpp b/Telegram/SourceFiles/ui/text/text_block.cpp +index 8e6914197..d83073085 100644 +--- a/Telegram/SourceFiles/ui/text/text_block.cpp ++++ b/Telegram/SourceFiles/ui/text/text_block.cpp +@@ -9,8 +9,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL + + #include "styles/style_basic.h" + +-#include <private/qfontengine_p.h> +- + // COPIED FROM qtextlayout.cpp AND MODIFIED + namespace Ui { + namespace Text { +diff --git a/Telegram/SourceFiles/ui/text/text_block.h b/Telegram/SourceFiles/ui/text/text_block.h +index 6fcf1cd51..27d724ee8 100644 +--- a/Telegram/SourceFiles/ui/text/text_block.h ++++ b/Telegram/SourceFiles/ui/text/text_block.h +@@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL + #include "ui/emoji_config.h" + + #include <private/qfixed_p.h> ++#include <private/qfontengine_p.h> + + namespace Ui { + namespace Text { +-- +2.23.0 + diff --git a/Revert-Disable-DemiBold-fallback-for-Semibold.patch b/Revert-Disable-DemiBold-fallback-for-Semibold.patch new file mode 100644 index 000000000000..c94043709e00 --- /dev/null +++ b/Revert-Disable-DemiBold-fallback-for-Semibold.patch @@ -0,0 +1,30 @@ +From b7effa2fd838afc049ec5cc00df3bd0810a95da4 Mon Sep 17 00:00:00 2001 +From: Jiachen YANG <farseerfc@gmail.com> +Date: Fri, 4 Oct 2019 16:59:26 +0900 +Subject: [PATCH 3/6] Revert "Disable DemiBold fallback for Semibold." + +This reverts commit 310c68a744ae8163c96b88944d96a6f6b14b3cdf. +--- + Telegram/SourceFiles/ui/style/style_core_font.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Telegram/SourceFiles/ui/style/style_core_font.cpp b/Telegram/SourceFiles/ui/style/style_core_font.cpp +index 653dbfff0..22ccfea7e 100644 +--- a/Telegram/SourceFiles/ui/style/style_core_font.cpp ++++ b/Telegram/SourceFiles/ui/style/style_core_font.cpp +@@ -161,9 +161,9 @@ FontData::FontData(int size, uint32 flags, int family, Font *other) + + f.setPixelSize(size); + if (_flags & FontBold) { +- f.setBold(true); +- //} else if (fontFamilies[family] == "Open Sans Semibold") { +- // f.setWeight(QFont::DemiBold); ++ f.setBold(_flags & FontBold); ++ } else if (fontFamilies[family] == "Open Sans Semibold") { ++ f.setWeight(QFont::DemiBold); + } + f.setItalic(_flags & FontItalic); + f.setUnderline(_flags & FontUnderline); +-- +2.23.0 + diff --git a/Use-system-wide-font.patch b/Use-system-wide-font.patch new file mode 100644 index 000000000000..e08edb5a0569 --- /dev/null +++ b/Use-system-wide-font.patch @@ -0,0 +1,32 @@ +diff --git a/Telegram/Resources/qrc/fonts.qrc b/Telegram/Resources/qrc/fonts.qrc +index 233b8d572..122d89140 100644 +--- a/Telegram/Resources/qrc/fonts.qrc ++++ b/Telegram/Resources/qrc/fonts.qrc +@@ -1,7 +1,4 @@ + <RCC> + <qresource prefix="/gui"> +- <file alias="fonts/OpenSans-Regular.ttf">../fonts/OpenSans-Regular.ttf</file> +- <file alias="fonts/OpenSans-Bold.ttf">../fonts/OpenSans-Bold.ttf</file> +- <file alias="fonts/OpenSans-Semibold.ttf">../fonts/OpenSans-Semibold.ttf</file> + </qresource> + </RCC> +diff --git a/Telegram/SourceFiles/ui/style/style_core_font.cpp b/Telegram/SourceFiles/ui/style/style_core_font.cpp +index 22ccfea7e..36f271f93 100644 +--- a/Telegram/SourceFiles/ui/style/style_core_font.cpp ++++ b/Telegram/SourceFiles/ui/style/style_core_font.cpp +@@ -84,9 +84,9 @@ void StartFonts() { + } + Started = true; + +- auto regular = LoadCustomFont(":/gui/fonts/OpenSans-Regular.ttf", "Open Sans"); +- auto bold = LoadCustomFont(":/gui/fonts/OpenSans-Bold.ttf", "Open Sans", style::internal::FontBold); +- auto semibold = LoadCustomFont(":/gui/fonts/OpenSans-Semibold.ttf", "Open Sans Semibold"); ++ auto regular = ValidateFont("Open Sans"); ++ auto bold = ValidateFont("Open Sans", style::internal::FontBold); ++ auto semibold = ValidateFont("Open Sans Semibold"); + + #ifdef Q_OS_WIN + // Attempt to workaround a strange font bug with Open Sans Semibold not loading. +-- +2.23.0 + diff --git a/libtgvoip.patch b/libtgvoip.patch new file mode 100644 index 000000000000..8e838df34ba1 --- /dev/null +++ b/libtgvoip.patch @@ -0,0 +1,18 @@ +diff --git a/libtgvoip.gyp b/libtgvoip.gyp +index 52fbea1..9a4dfb7 100644 +--- a/libtgvoip.gyp ++++ b/libtgvoip.gyp +@@ -13,11 +13,12 @@ + 'variables': { + 'tgvoip_src_loc': '.', + 'official_build_target%': '', +- 'linux_path_opus_include%': '<(DEPTH)/../../../Libraries/opus/include', ++ 'linux_path_opus_include%': '/usr/include/opus', + }, + 'include_dirs': [ + '<(tgvoip_src_loc)/webrtc_dsp', + '<(linux_path_opus_include)', ++ '/usr/include/openssl' + ], + 'direct_dependent_settings': { + 'include_dirs': [ diff --git a/no-gtk2.patch b/no-gtk2.patch new file mode 100644 index 000000000000..e60038d0e828 --- /dev/null +++ b/no-gtk2.patch @@ -0,0 +1,32 @@ +diff --git a/Telegram/SourceFiles/platform/linux/linux_libs.cpp b/Telegram/SourceFiles/platform/linux/linux_libs.cpp +index 5071d63d1..671d0e661 100644 +--- a/Telegram/SourceFiles/platform/linux/linux_libs.cpp ++++ b/Telegram/SourceFiles/platform/linux/linux_libs.cpp +@@ -243,24 +243,12 @@ void start() { + indicatorLoaded = setupAppIndicator(lib_indicator); + } + } +- if ((!gtkLoaded || !indicatorLoaded) && !isWayland) { +- if (loadLibrary(lib_indicator, "ayatana-appindicator", 1) || loadLibrary(lib_indicator, "appindicator", 1)) { +- if (loadLibrary(lib_gtk, "gtk-x11-2.0", 0)) { +- gtkLoaded = indicatorLoaded = false; +- gtkLoaded = setupGtkBase(lib_gtk); +- indicatorLoaded = setupAppIndicator(lib_indicator); +- } +- } +- } + + // If no appindicator, try at least load gtk. + if (!gtkLoaded && !indicatorLoaded) { + if (loadLibrary(lib_gtk, "gtk-3", 0)) { + gtkLoaded = setupGtkBase(lib_gtk); + } +- if (!gtkLoaded && !isWayland && loadLibrary(lib_gtk, "gtk-x11-2.0", 0)) { +- gtkLoaded = setupGtkBase(lib_gtk); +- } + } + + if (gtkLoaded) { +-- +2.23.0 + diff --git a/tdesktop.patch b/tdesktop.patch new file mode 100644 index 000000000000..b59eb7f43cd6 --- /dev/null +++ b/tdesktop.patch @@ -0,0 +1,466 @@ +diff --git a/Telegram/Resources/qrc/linux.qrc b/Telegram/Resources/qrc/linux.qrc +index 164e8d4f2..12319be14 100644 +--- a/Telegram/Resources/qrc/linux.qrc ++++ b/Telegram/Resources/qrc/linux.qrc +@@ -1,6 +1,5 @@ + <RCC> + <qresource prefix="/qt"> +- <file alias="etc/qt.conf">../etc/qt_linux.conf</file> + </qresource> + <qresource prefix="/fc"> + <file alias="fc-custom.conf">../fc-custom.conf</file> +diff --git a/Telegram/SourceFiles/core/launcher.cpp b/Telegram/SourceFiles/core/launcher.cpp +index 3ba28309b..e280c44fa 100644 +--- a/Telegram/SourceFiles/core/launcher.cpp ++++ b/Telegram/SourceFiles/core/launcher.cpp +@@ -272,6 +272,19 @@ int Launcher::exec() { + Logs::start(this); // must be started before Platform is started + Platform::start(); // must be started before Sandbox is created + ++ // I don't know why path is not in QT_PLUGIN_PATH by default ++ QCoreApplication::addLibraryPath("/usr/lib/qt/plugins"); ++ // without this Telegram doesn't start on Ubuntu 17.04 due GTK errors ++ setenv("QT_STYLE_OVERRIDE", "qwerty", false); ++ // Telegram doesn't start when extraordinary theme is set, see launchpad.net/bugs/1680943 ++ unsetenv("QT_QPA_PLATFORMTHEME"); ++ ++ // unset QT screen scale related envvars ++ unsetenv("QT_SCREEN_SCALE_FACTORS"); ++ unsetenv("QT_AUTO_SCREEN_SCALE_FACTOR"); ++ unsetenv("QT_SCALE_FACTOR"); ++ unsetenv("QT_DEVICE_PIXEL_RATIO"); ++ + auto result = executeApplication(); + + DEBUG_LOG(("Telegram finished, result: %1").arg(result)); +diff --git a/Telegram/SourceFiles/qt_functions.cpp b/Telegram/SourceFiles/qt_functions.cpp +new file mode 100644 +index 000000000..4a722b8d7 +--- /dev/null ++++ b/Telegram/SourceFiles/qt_functions.cpp +@@ -0,0 +1,94 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2015 The Qt Company Ltd. ++** Contact: http://www.qt.io/licensing/ ++** ++** This file contains some parts of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL21$ ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and The Qt Company. For licensing terms ++** and conditions see http://www.qt.io/terms-conditions. For further ++** information use the contact form at http://www.qt.io/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 or version 3 as published by the Free ++** Software Foundation and appearing in the file LICENSE.LGPLv21 and ++** LICENSE.LGPLv3 included in the packaging of this file. Please review the ++** following information to ensure the GNU Lesser General Public License ++** requirements will be met: https://www.gnu.org/licenses/lgpl.html and ++** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** As a special exception, The Qt Company gives you certain additional ++** rights. These rights are described in The Qt Company LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++ ++/* TODO: find a dynamic library with these symbols. */ ++ ++/* Debian maintainer: this function is taken from qfiledialog.cpp */ ++/* ++ Makes a list of filters from ;;-separated text. ++ Used by the mac and windows implementations ++*/ ++QStringList qt_make_filter_list(const QString &filter) ++{ ++ QString f(filter); ++ ++ if (f.isEmpty()) ++ return QStringList(); ++ ++ QString sep(QLatin1String(";;")); ++ int i = f.indexOf(sep, 0); ++ if (i == -1) { ++ if (f.indexOf(QLatin1Char('\n'), 0) != -1) { ++ sep = QLatin1Char('\n'); ++ i = f.indexOf(sep, 0); ++ } ++ } ++ ++ return f.split(sep); ++} ++ ++/* Debian maintainer: this constructor is taken from qtextengine.cpp for TextPainter::drawLine */ ++QTextItemInt::QTextItemInt(const QGlyphLayout &g, QFont *font, const QChar *chars_, int numChars, QFontEngine *fe, const QTextCharFormat &format) ++ : flags(0), justified(false), underlineStyle(QTextCharFormat::NoUnderline), charFormat(format), ++ num_chars(numChars), chars(chars_), logClusters(0), f(font), glyphs(g), fontEngine(fe) ++{ ++} ++ ++/* Debian maintainer: this method is also taken from qtextengine.cpp */ ++// Fix up flags and underlineStyle with given info ++void QTextItemInt::initWithScriptItem(const QScriptItem &si) ++{ ++ // explicitly initialize flags so that initFontAttributes can be called ++ // multiple times on the same TextItem ++ flags = 0; ++ if (si.analysis.bidiLevel %2) ++ flags |= QTextItem::RightToLeft; ++ ascent = si.ascent; ++ descent = si.descent; ++ ++ if (charFormat.hasProperty(QTextFormat::TextUnderlineStyle)) { ++ underlineStyle = charFormat.underlineStyle(); ++ } else if (charFormat.boolProperty(QTextFormat::FontUnderline) ++ || f->d->underline) { ++ underlineStyle = QTextCharFormat::SingleUnderline; ++ } ++ ++ // compat ++ if (underlineStyle == QTextCharFormat::SingleUnderline) ++ flags |= QTextItem::Underline; ++ ++ if (f->d->overline || charFormat.fontOverline()) ++ flags |= QTextItem::Overline; ++ if (f->d->strikeOut || charFormat.fontStrikeOut()) ++ flags |= QTextItem::StrikeOut; ++} +diff --git a/Telegram/SourceFiles/qt_static_plugins.cpp b/Telegram/SourceFiles/qt_static_plugins.cpp +index a757d085f..122ff0f5d 100644 +--- a/Telegram/SourceFiles/qt_static_plugins.cpp ++++ b/Telegram/SourceFiles/qt_static_plugins.cpp +@@ -15,14 +15,4 @@ Q_IMPORT_PLUGIN(QWebpPlugin) + Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin) + Q_IMPORT_PLUGIN(QGenericEnginePlugin) + #elif defined Q_OS_LINUX // Q_OS_WIN | Q_OS_MAC +-Q_IMPORT_PLUGIN(QWebpPlugin) +-Q_IMPORT_PLUGIN(QXcbIntegrationPlugin) +-Q_IMPORT_PLUGIN(QConnmanEnginePlugin) +-Q_IMPORT_PLUGIN(QGenericEnginePlugin) +-Q_IMPORT_PLUGIN(QNetworkManagerEnginePlugin) +-Q_IMPORT_PLUGIN(QComposePlatformInputContextPlugin) +-Q_IMPORT_PLUGIN(QIbusPlatformInputContextPlugin) +-Q_IMPORT_PLUGIN(QFcitxPlatformInputContextPlugin) +-Q_IMPORT_PLUGIN(QHimePlatformInputContextPlugin) +-Q_IMPORT_PLUGIN(NimfInputContextPlugin) + #endif // Q_OS_WIN | Q_OS_MAC | Q_OS_LINUX +diff --git a/Telegram/SourceFiles/ui/text/text.cpp b/Telegram/SourceFiles/ui/text/text.cpp +index 7891995be..eaeb52b35 100644 +--- a/Telegram/SourceFiles/ui/text/text.cpp ++++ b/Telegram/SourceFiles/ui/text/text.cpp +@@ -1968,11 +1968,11 @@ private: + if (item == -1) + return; + +-#ifdef OS_MAC_OLD ++#if defined(OS_MAC_OLD) || QT_VERSION < QT_VERSION_CHECK(5, 6, 0) + auto end = _e->findItem(line.from + line.length - 1); +-#else // OS_MAC_OLD ++#else + auto end = _e->findItem(line.from + line.length - 1, item); +-#endif // OS_MAC_OLD ++#endif + + auto blockIndex = _lineStartBlock; + auto currentBlock = _t->_blocks[blockIndex].get(); +diff --git a/Telegram/SourceFiles/ui/text/text_block.cpp b/Telegram/SourceFiles/ui/text/text_block.cpp +index 29173c5c2..b47a53d76 100644 +--- a/Telegram/SourceFiles/ui/text/text_block.cpp ++++ b/Telegram/SourceFiles/ui/text/text_block.cpp +@@ -334,6 +334,9 @@ TextBlock::TextBlock(const style::font &font, const QString &str, QFixed minResi + + QStackTextEngine engine(part, blockFont->f); + BlockParser parser(&engine, this, minResizeWidth, _from, part); ++ QTextLayout layout(part, blockFont->f); ++ layout.beginLayout(); ++ layout.createLine(); + } + } + +diff --git a/Telegram/gyp/PrecompiledHeader.cmake b/Telegram/gyp/PrecompiledHeader.cmake +index dfe1193be..0b13fc098 100644 +--- a/Telegram/gyp/PrecompiledHeader.cmake ++++ b/Telegram/gyp/PrecompiledHeader.cmake +@@ -114,7 +114,7 @@ function(add_precompiled_header _target _input) + set(_compiler_FLAGS "@${_pch_c_flags_file}") + add_custom_command( + OUTPUT "${_output_c}" +- COMMAND "${CMAKE_C_COMPILER}" ${_compiler_FLAGS} -x c-header -o "${_output_c}" -c "${_pchfile}" ++ COMMAND "${CMAKE_C_COMPILER}" ${_compiler_FLAGS} "$(C_DEFINES)" "$(C_INCLUDES)" "$(C_FLAGS)" -x c-header -o "${_output_c}" -c "${_pchfile}" + DEPENDS "${_pchfile}" "${_pch_c_flags_file}" + IMPLICIT_DEPENDS C "${_pch_header}" + COMMENT "Precompiling ${_name} for ${_target} (C)") +@@ -125,7 +125,7 @@ function(add_precompiled_header _target _input) + set(_compiler_FLAGS "@${_pch_cpp_flags_file}") + add_custom_command( + OUTPUT "${_output_cxx}" +- COMMAND "${CMAKE_CXX_COMPILER}" ${_compiler_FLAGS} -x c++-header -o "${_output_cxx}" -c "${_pchfile}" ++ COMMAND "${CMAKE_CXX_COMPILER}" ${_compiler_FLAGS} "$(CXX_DEFINES)" "$(CXX_INCLUDES)" "$(CXX_FLAGS)" -x c++-header -o "${_output_cxx}" -c "${_pchfile}" + DEPENDS "${_pchfile}" "${_pch_cpp_flags_file}" + IMPLICIT_DEPENDS CXX "${_pch_header}" + COMMENT "Precompiling header ${_name} for ${_target} (C++)") +diff --git a/Telegram/gyp/common/linux.gypi b/Telegram/gyp/common/linux.gypi +index cdcdef1dc..667fbb7f3 100644 +--- a/Telegram/gyp/common/linux.gypi ++++ b/Telegram/gyp/common/linux.gypi +@@ -11,7 +11,6 @@ + 'linux_common_flags': [ + '-pipe', + '-Wall', +- '-Werror', + '-W', + '-fPIC', + '-Wno-unused-variable', +@@ -86,7 +85,6 @@ + ], + 'defines': [ + '_REENTRANT', +- 'QT_STATICPLUGIN', + 'QT_PLUGIN', + ], + 'cflags_c': [ +diff --git a/Telegram/gyp/modules/qt.gypi b/Telegram/gyp/modules/qt.gypi +index 0b783ec21..3f917765a 100644 +--- a/Telegram/gyp/modules/qt.gypi ++++ b/Telegram/gyp/modules/qt.gypi +@@ -14,25 +14,21 @@ + [ 'build_macold', { + 'qt_version%': '5.3.2', + }, { +- 'qt_version%': '5.6.2', ++ 'qt_version%': '<!(echo /usr/include/qt/QtCore/*/ | grep -Po "\d+\.\d+\.\d+")', + }] + ], + }, + 'qt_libs': [ +- 'qwebp', +- 'Qt5PrintSupport', +- 'Qt5PlatformSupport', + 'Qt5Network', + 'Qt5Widgets', + 'Qt5Gui', +- 'qtharfbuzzng', + ], + 'qt_version%': '<(qt_version)', + 'conditions': [ + [ 'build_macold', { + 'linux_path_qt%': '/usr/local/macold/Qt-<(qt_version)', + }, { +- 'linux_path_qt%': '/usr/local/tdesktop/Qt-<(qt_version)', ++ 'linux_path_qt%': '/usr/lib/qt', + }] + ] + }, +@@ -72,32 +68,13 @@ + ], + }], + [ 'build_linux', { +- 'qt_lib_prefix': 'lib', +- 'qt_lib_debug_postfix': '.a', +- 'qt_lib_release_postfix': '.a', ++ 'qt_lib_prefix': '', ++ 'qt_lib_debug_postfix': '', ++ 'qt_lib_release_postfix': '', + 'qt_libs': [ +- 'qxcb', +- 'Qt5XcbQpa', +- 'qconnmanbearer', +- 'qgenericbearer', +- 'qnmbearer', + '<@(qt_libs)', + 'Qt5DBus', + 'Qt5Core', +- 'qtpcre', +- 'Xi', +- 'Xext', +- 'Xfixes', +- 'SM', +- 'ICE', +- 'fontconfig', +- 'expat', +- 'freetype', +- 'z', +- 'xcb-shm', +- 'xcb-xfixes', +- 'xcb-render', +- 'xcb-static', + ], + }], + ], +@@ -127,11 +104,6 @@ + # '<!@(python <(DEPTH)/list_sources.py [sources] <(qt_moc_list_sources_arg))' + # where [sources] contains all your source files + 'qt_moc_list_sources_arg': '--moc-prefix SHARED_INTERMEDIATE_DIR/<(_target_name)/moc/moc_', +- +- 'linux_path_xkbcommon%': '/usr/local', +- 'linux_lib_ssl%': '/usr/local/ssl/lib/libssl.a', +- 'linux_lib_crypto%': '/usr/local/ssl/lib/libcrypto.a', +- 'linux_lib_icu%': 'libicutu.a libicui18n.a libicuuc.a libicudata.a', + }, + + 'configurations': { +@@ -180,14 +152,14 @@ + }, + + 'include_dirs': [ +- '<(qt_loc)/include', +- '<(qt_loc)/include/QtCore', +- '<(qt_loc)/include/QtGui', +- '<(qt_loc)/include/QtDBus', +- '<(qt_loc)/include/QtCore/<(qt_version)', +- '<(qt_loc)/include/QtGui/<(qt_version)', +- '<(qt_loc)/include/QtCore/<(qt_version)/QtCore', +- '<(qt_loc)/include/QtGui/<(qt_version)/QtGui', ++ '/usr/include/qt', ++ '/usr/include/qt/QtCore', ++ '/usr/include/qt/QtGui', ++ '/usr/include/qt/QtDBus', ++ '/usr/include/qt/QtCore/<(qt_version)', ++ '/usr/include/qt/QtGui/<(qt_version)', ++ '/usr/include/qt/QtCore/<(qt_version)/QtCore', ++ '/usr/include/qt/QtGui/<(qt_version)/QtGui', + ], + 'library_dirs': [ + '<(qt_loc)/lib', +@@ -212,17 +184,10 @@ + ], + 'libraries': [ + '<(PRODUCT_DIR)/obj.target/liblinux_glibc_wraps.a', +- '<(linux_path_xkbcommon)/lib/libxkbcommon.a', + '<@(qt_libs_release)', +- '<(linux_lib_ssl)', +- '<(linux_lib_crypto)', +- '<!@(python -c "for s in \'<(linux_lib_icu)\'.split(\' \'): print(s)")', +- '-lxcb', ++ '-lcrypto', + '-lX11', +- '-lX11-xcb', +- '-ldbus-1', + '-ldl', +- '-lgthread-2.0', + '-lglib-2.0', + '-lpthread', + ], +@@ -230,7 +195,6 @@ + '<(qt_loc)/mkspecs/linux-g++', + ], + 'ldflags': [ +- '-static-libstdc++', + '-pthread', + '-rdynamic', + ], +diff --git a/Telegram/gyp/modules/qt_moc.gypi b/Telegram/gyp/modules/qt_moc.gypi +index ebee90a15..75424d4bb 100644 +--- a/Telegram/gyp/modules/qt_moc.gypi ++++ b/Telegram/gyp/modules/qt_moc.gypi +@@ -15,7 +15,7 @@ + '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/moc/moc_<(RULE_INPUT_ROOT).cpp', + ], + 'action': [ +- '<(qt_loc)/bin/moc<(exe_ext)', ++ '/usr/bin/moc', + + # Silence "Note: No relevant classes found. No output generated." + '--no-notes', +diff --git a/Telegram/gyp/modules/qt_rcc.gypi b/Telegram/gyp/modules/qt_rcc.gypi +index f5624a82b..1129a95c5 100644 +--- a/Telegram/gyp/modules/qt_rcc.gypi ++++ b/Telegram/gyp/modules/qt_rcc.gypi +@@ -15,7 +15,7 @@ + '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/qrc/qrc_<(RULE_INPUT_ROOT).cpp', + ], + 'action': [ +- '<(qt_loc)/bin/rcc<(exe_ext)', ++ '/usr/bin/rcc', + '-name', '<(RULE_INPUT_ROOT)', + '-no-compress', + '<(RULE_INPUT_PATH)', +diff --git a/Telegram/gyp/telegram/linux.gypi b/Telegram/gyp/telegram/linux.gypi +index 385f2b89f..f3ddf7e83 100644 +--- a/Telegram/gyp/telegram/linux.gypi ++++ b/Telegram/gyp/telegram/linux.gypi +@@ -19,27 +19,21 @@ + #'xkbcommon', + ], + }, ++ 'library_dirs': [ ++ '/usr/lib', ++ '/usr/lib/openssl', ++ ], + 'libraries': [ +- '-lbreakpad_client', +- '-lcomposeplatforminputcontextplugin', +- '-libusplatforminputcontextplugin', +- '-lfcitxplatforminputcontextplugin', +- '-lhimeplatforminputcontextplugin', +- '-lnimfplatforminputcontextplugin', +- '-llzma', + '-lopenal', + '-lavformat', + '-lavcodec', + '-lswresample', + '-lswscale', + '-lavutil', ++ '-lminizip', + '-lopus', +- '-lva-x11', +- '-lva-drm', +- '-lva', +- '-lvdpau', +- '-ldrm', + '-lz', ++ '-llzma', + # '<!(pkg-config 2> /dev/null --libs <@(pkgconfig_libs))', + ], + 'cflags_cc': [ +@@ -51,7 +45,6 @@ + '-Wl,-wrap,secure_getenv', + '-Wl,-wrap,clock_gettime', + '-Wl,--no-as-needed,-lrt', +- '-Wl,-Bstatic', + ], + 'configurations': { + 'Release': { +@@ -75,9 +68,8 @@ + ], + }], ['not_need_gtk!="True"', { + 'cflags_cc': [ +- '<!(pkg-config 2> /dev/null --cflags gtk+-2.0)', +- '<!(pkg-config 2> /dev/null --cflags glib-2.0)', +- '<!(pkg-config 2> /dev/null --cflags dee-1.0)', ++ '<!(pkg-config 2> /dev/null --cflags appindicator3-0.1)', ++ '<!(pkg-config 2> /dev/null --cflags gtk+-3.0)', + ], + }], ['<!(pkg-config ayatana-appindicator3-0.1; echo $?) == 0', { + 'cflags_cc': [ '<!(pkg-config --cflags ayatana-appindicator3-0.1)' ], +diff --git a/Telegram/gyp/telegram/sources.txt b/Telegram/gyp/telegram/sources.txt +index 38d9d0e64..459919abf 100644 +--- a/Telegram/gyp/telegram/sources.txt ++++ b/Telegram/gyp/telegram/sources.txt +@@ -863,14 +863,7 @@ + <(src_loc)/settings.cpp + <(src_loc)/settings.h + +-platforms: !win +-<(minizip_loc)/crypt.h +-<(minizip_loc)/ioapi.c +-<(minizip_loc)/ioapi.h +-<(minizip_loc)/zip.c +-<(minizip_loc)/zip.h +-<(minizip_loc)/unzip.c +-<(minizip_loc)/unzip.h ++<(src_loc)/qt_functions.cpp + + platforms: win + <(res_loc)/winrc/Telegram.rc +-- +2.23.0 + diff --git a/tdesktop_lottie_animation_qtdebug.patch b/tdesktop_lottie_animation_qtdebug.patch new file mode 100644 index 000000000000..55a2e35520fe --- /dev/null +++ b/tdesktop_lottie_animation_qtdebug.patch @@ -0,0 +1,15 @@ +diff --git a/Telegram/SourceFiles/lottie/lottie_animation.cpp b/Telegram/SourceFiles/lottie/lottie_animation.cpp +index f681c9220..8f80640e1 100644 +--- a/Telegram/SourceFiles/lottie/lottie_animation.cpp ++++ b/Telegram/SourceFiles/lottie/lottie_animation.cpp +@@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL + #include "logs.h" + + #include <QFile> ++#include <QtDebug> + #include <rlottie.h> + #include <crl/crl_async.h> + #include <crl/crl_on_main.h> +-- +2.23.0 + diff --git a/tg.protocol b/tg.protocol new file mode 100644 index 000000000000..a4b083acb1b0 --- /dev/null +++ b/tg.protocol @@ -0,0 +1,11 @@ +[Protocol] +exec=/usr/bin/telegram-desktop -- %u +protocol=tg +input=none +output=none +helper=true +listing=false +reading=false +writing=false +makedir=false +deleting=false |