summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO60
-rw-r--r--Avoid-depending-on-static-libraries.patch246
-rw-r--r--Correct-MOC-path.patch13
-rw-r--r--Downgrade-Qt-version.patch53
-rw-r--r--Fix-rcc-path.patch13
-rw-r--r--Flags-for-precompiled-header-and-MOC.patch36
-rw-r--r--PKGBUILD83
-rw-r--r--Reduce-number-of-libraries.patch109
-rw-r--r--Remove-Werror-flag.patch17
-rw-r--r--Use-gtk3-headers.patch16
-rw-r--r--libtgvoip.patch18
-rw-r--r--qt_functions.cpp94
-rw-r--r--tdesktop.patch513
13 files changed, 592 insertions, 679 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 1e279579e27c..2d8153d33a25 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,8 @@
# Generated by mksrcinfo v8
-# Sat Apr 22 09:11:05 UTC 2017
+# Fri Jul 28 05:32:28 UTC 2017
pkgbase = telegram-desktop-systemqt-emojione
- pkgdesc = Experimental build of Telegram Desktop (using system Qt, emojis replaced with those from EmojiOne.)
- pkgver = 1.0.29
+ pkgdesc = Experimental build of Telegram Desktop (using system Qt, emojis replaced with those from EmojiOne)
+ pkgver = 1.1.15
pkgrel = 1
url = https://desktop.telegram.org/
install = telegram-desktop.install
@@ -10,9 +10,10 @@ pkgbase = telegram-desktop-systemqt-emojione
arch = x86_64
license = GPL3
makedepends = cmake
- makedepends = libappindicator-gtk3
+ makedepends = libappindicator-gtk2
makedepends = dee
makedepends = git
+ makedepends = gtk3
makedepends = gyp-git
makedepends = libexif
makedepends = libva
@@ -27,48 +28,37 @@ pkgbase = telegram-desktop-systemqt-emojione
depends = qt5-base
depends = qt5-imageformats
optdepends = libappindicator-gtk3: AppIndicator tray icon
+ optdepends = libappindicator-gtk2: AppIndicator tray icon
provides = telegram-desktop
conflicts = telegram-desktop
- source = tdesktop::git+https://github.com/telegramdesktop/tdesktop.git#tag=v1.0.29
- source = GSL::git+https://github.com/Microsoft/GSL.git
- source = variant::git+https://github.com/mapbox/variant.git
+ source = tdesktop::git+https://github.com/telegramdesktop/tdesktop.git#tag=v1.1.15
+ source = GSL::git+https://github.com/Microsoft/GSL.git#commit=16a6a41690325433976d843e13ec676d6f9ab091
+ source = variant::git+https://github.com/mapbox/variant#tag=v1.1.3
+ source = libtgvoip::git+https://github.com/telegramdesktop/libtgvoip.git#commit=757a5d8ec31aadcf387ac3cb135256152c18de1c
source = telegramdesktop.desktop
source = tg.protocol
- source = Avoid-depending-on-static-libraries.patch
- source = Remove-Werror-flag.patch
- source = Downgrade-Qt-version.patch
- source = Flags-for-precompiled-header-and-MOC.patch
- source = Fix-rcc-path.patch
- source = Use-gtk3-headers.patch
- source = Reduce-number-of-libraries.patch
- source = Correct-MOC-path.patch
source = CMakeLists.inj
- source = qt_functions.cpp
- source = https://github.com/morealaz/tdesktop/raw/master/Telegram/Resources/art/emoji.webp
- source = https://github.com/morealaz/tdesktop/raw/master/Telegram/Resources/art/emoji_125x.webp
- source = https://github.com/morealaz/tdesktop/raw/master/Telegram/Resources/art/emoji_150x.webp
- source = https://github.com/morealaz/tdesktop/raw/master/Telegram/Resources/art/emoji_200x.webp
- source = https://github.com/morealaz/tdesktop/raw/master/Telegram/Resources/art/emoji_250x.webp
+ source = tdesktop.patch
+ source = libtgvoip.patch
+ source = https://github.com/morealaz/tdesktop/blob/master/Telegram/Resources/art/emoji.webp
+ source = https://github.com/morealaz/tdesktop/blob/master/Telegram/Resources/art/emoji_125x.webp
+ source = https://github.com/morealaz/tdesktop/blob/master/Telegram/Resources/art/emoji_150x.webp
+ source = https://github.com/morealaz/tdesktop/blob/master/Telegram/Resources/art/emoji_200x.webp
+ source = https://github.com/morealaz/tdesktop/blob/master/Telegram/Resources/art/emoji_250x.webp
+ sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = SKIP
sha256sums = 41c22fae6ae757936741e63aec3d0f17cafe86b2d6153cdd1d01a5581e871f17
sha256sums = d4cdad0d091c7e47811d8a26d55bbee492e7845e968c522e86f120815477e9eb
- sha256sums = 8da40e3d8bbec2c8dc653cc8c5071b5a7a6e899befac75d6b996536703da4ce6
- sha256sums = c47633e0c1e86cd4488c1533d5742245c5f9e910300f93083101d54597c00c3a
- sha256sums = c05175c418354f3202f4a031ca4133769a37640c920e9e4ff91025f9fc58a015
- sha256sums = 5b5a41a852d4d5b84466a19a04684dc7e43dfc6d6494dbcbe41341807bae52b3
- sha256sums = cf4dbb293afdbfd226861a00a42790a15b23bea296eccf35853d104e07ea345a
- sha256sums = 5f3ac7c08df0293bed626293dbfb6040764abf28899db7681572cfb1d8bcaa6e
- sha256sums = 2990be2c71bdc6b8add19fb4d7638d03610989fe2c299c0ef776d526487deef1
- sha256sums = 75dcda4aa2d6032f4931cf99e1d915defb4d960ee42725f3b54bbb7dd4ab8531
sha256sums = 7a06af83609168a8eaec59a65252caa41dcd0ecc805225886435eb65073e9c82
- sha256sums = 8fa4115ae60a87ee6c846f82d5cc4b90d0ba2b2016e1bd36634772230903af31
- sha256sums = 304cdfa38e3471957241c41880e6c627cef617a862673788f647d8f84e561815
- sha256sums = ed3e31591b2bbfa32a82a65d6a261f297ab9b5c26a17c1456483b17fd144e219
- sha256sums = cc124ce04b79fdffc3ddb9e6abcd3b5d2f6510c398eeedf7e3d16fab22bd3e8c
- sha256sums = 919674f30ef0ea660fbfb44e0f96068f01fdd28c73360f3ef46f39d597c7d9ea
- sha256sums = 6f88da8d60136848770b35d63e8e625bcd2959714a3ec450ab5aeeae95cd84c8
+ sha256sums = 6d54c8b51b2224c75c15d1e147855a6f22b96848ca3413330882ca6243dd05cb
+ sha256sums = 640ef297f5977de78dab17789390e628b8f7a8a495529c24da8a43693f3fae23
+ sha256sums = 41a30e53812d0da4a32a872193c3a53c05e455a4dfeed794944bc251edcae72d
+ sha256sums = 8e3c254fcf4b57dcaf27f93dba0a59a5ff69382b018da424d9416a5c0577357c
+ sha256sums = 558bb3082ba33d2547e4c5fb5f74639f0c10871648c7335a3cb652ac1fc08885
+ sha256sums = cc040fa7d681bfc877dd0a32d4ce0df32bbcd80d78a7a8ae5721ddad71d79007
+ sha256sums = c5fff9c7255c89b047bc6e9ba6e00b1f5788d895e564b80939165c333ce3ab68
pkgname = telegram-desktop-systemqt-emojione
diff --git a/Avoid-depending-on-static-libraries.patch b/Avoid-depending-on-static-libraries.patch
deleted file mode 100644
index aa64b05389ee..000000000000
--- a/Avoid-depending-on-static-libraries.patch
+++ /dev/null
@@ -1,246 +0,0 @@
-Description: Eliminates dependencies from static Qt and other libraries
-Author: Nicholas Guriev <guriev-ns@ya.ru>
-Last-Update: 2017-03-31
-
-diff --git a/Telegram/SourceFiles/main.cpp b/Telegram/SourceFiles/main.cpp
---- a/Telegram/SourceFiles/main.cpp
-+++ b/Telegram/SourceFiles/main.cpp
-@@ -39,6 +39,11 @@ int main(int argc, char *argv[]) {
- Logs::start(); // must be started before Platform is started
- Platform::start(); // must be started before QApplication 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);
-+
- int result = 0;
- {
- Application app(argc, argv);
-diff --git a/Telegram/SourceFiles/platform/linux/linux_libs.h b/Telegram/SourceFiles/platform/linux/linux_libs.h
---- a/Telegram/SourceFiles/platform/linux/linux_libs.h
-+++ b/Telegram/SourceFiles/platform/linux/linux_libs.h
-@@ -29,7 +29,7 @@ extern "C" {
- } // extern "C"
-
- #ifndef TDESKTOP_DISABLE_UNITY_INTEGRATION
--#include <unity/unity/unity.h>
-+typedef void UnityLauncherEntry;
- #endif // !TDESKTOP_DISABLE_UNITY_INTEGRATION
-
- namespace Platform {
-diff --git a/Telegram/SourceFiles/qt_static_plugins.cpp b/Telegram/SourceFiles/qt_static_plugins.cpp
---- a/Telegram/SourceFiles/qt_static_plugins.cpp
-+++ b/Telegram/SourceFiles/qt_static_plugins.cpp
-@@ -28,12 +28,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)
- #endif // Q_OS_WIN | Q_OS_MAC | Q_OS_LINUX
-diff --git a/Telegram/SourceFiles/ui/text/text_block.cpp b/Telegram/SourceFiles/ui/text/text_block.cpp
---- a/Telegram/SourceFiles/ui/text/text_block.cpp
-+++ b/Telegram/SourceFiles/ui/text/text_block.cpp
-@@ -330,7 +330,7 @@ TextBlock::TextBlock(const style::font &font, const QString &str, QFixed minResi
- SignalHandlers::setCrashAnnotationRef("CrashString", &part);
-
- QStackTextEngine engine(part, blockFont->f);
-- QTextLayout layout(&engine);
-+ QTextLayout layout(part, blockFont->f);
- layout.beginLayout();
- layout.createLine();
-
-diff --git a/Telegram/gyp/Telegram.gyp b/Telegram/gyp/Telegram.gyp
---- a/Telegram/gyp/Telegram.gyp
-+++ b/Telegram/gyp/Telegram.gyp
-@@ -81,20 +82,13 @@
- ],
-
- 'defines': [
-- 'AL_LIBTYPE_STATIC',
- '<!@(python -c "for s in \'<(build_defines)\'.split(\',\'): print(s)")',
- ],
-
- 'include_dirs': [
- '<(src_loc)',
- '<(SHARED_INTERMEDIATE_DIR)',
-- '<(libs_loc)/breakpad/src',
-- '<(libs_loc)/lzma/C',
-- '<(libs_loc)/libexif-0.6.20',
-- '<(libs_loc)/zlib-1.2.8',
-- '<(libs_loc)/ffmpeg',
-- '<(libs_loc)/openal-soft/include',
-- '<(minizip_loc)',
-+ '/usr/include/minizip',
- '<(sp_media_key_tap_loc)',
- '<(submodules_loc)/GSL/include',
- '<(submodules_loc)/variant/include',
-diff --git a/Telegram/gyp/qt.gypi b/Telegram/gyp/qt.gypi
---- a/Telegram/gyp/qt.gypi
-+++ b/Telegram/gyp/qt.gypi
-@@ -27,7 +27,7 @@
- [ 'build_macold', {
- 'qt_version%': '5.3.2',
- }, {
-- 'qt_version%': '5.6.2',
-+ 'qt_version%': '<!(echo /usr/include/qt/QtCore/*/ | grep -Po "\d+\.\d+\.\d+")',
- }]
- ],
- },
-@@ -45,7 +45,7 @@
- [ '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',
- }]
- ]
- },
-@@ -85,9 +85,9 @@
- ],
- }],
- [ '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',
-@@ -141,9 +141,9 @@
- '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%': '/usr/lib/libicutu.a /usr/lib/libicui18n.a /usr/lib/libicuuc.a /usr/lib/libicudata.a',
-+ 'linux_lib_ssl%': 'ssl',
-+ 'linux_lib_crypto%': 'crypto',
-+ 'linux_lib_icu%': 'icutu icui18n icuuc icudata',
- },
-
- 'configurations': {
-@@ -192,13 +192,13 @@
- },
-
- 'include_dirs': [
-- '<(qt_loc)/include',
-- '<(qt_loc)/include/QtCore',
-- '<(qt_loc)/include/QtGui',
-- '<(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/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',
-@@ -219,11 +219,8 @@
- '<(qt_loc)/plugins/platforminputcontexts',
- ],
- 'libraries': [
-- '<(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)")',
-+ 'crypto',
- 'xcb',
- 'X11',
- 'X11-xcb',
-@@ -237,7 +234,6 @@
- '<(qt_loc)/mkspecs/linux-g++',
- ],
- 'ldflags': [
-- '-static-libstdc++',
- '-pthread',
- '-g',
- '-rdynamic',
-diff --git a/Telegram/gyp/settings_linux.gypi b/Telegram/gyp/settings_linux.gypi
---- a/Telegram/gyp/settings_linux.gypi
-+++ b/Telegram/gyp/settings_linux.gypi
-@@ -61,7 +61,6 @@
- ],
- 'defines': [
- '_REENTRANT',
-- 'QT_STATICPLUGIN',
- 'QT_PLUGIN',
- ],
- 'cflags_c': [
-diff --git a/Telegram/gyp/telegram_linux.gypi b/Telegram/gyp/telegram_linux.gypi
---- a/Telegram/gyp/telegram_linux.gypi
-+++ b/Telegram/gyp/telegram_linux.gypi
-@@ -50,24 +50,21 @@
- '<(linux_path_breakpad)/lib',
- ],
- 'libraries': [
-- 'breakpad_client',
-- 'composeplatforminputcontextplugin',
-- 'ibusplatforminputcontextplugin',
-- 'fcitxplatforminputcontextplugin',
-- 'liblzma.a',
-- 'libopenal.a',
-- 'libavformat.a',
-- 'libavcodec.a',
-- 'libswresample.a',
-- 'libswscale.a',
-- 'libavutil.a',
-- 'libopus.a',
-- 'libva-x11.a',
-- 'libva-drm.a',
-- 'libva.a',
-- 'libvdpau.a',
-- 'libdrm.a',
-- 'libz.a',
-+ 'lzma',
-+ 'openal',
-+ 'avformat',
-+ 'avcodec',
-+ 'swresample',
-+ 'swscale',
-+ 'avutil',
-+ 'opus',
-+ 'va-x11',
-+ 'va-drm',
-+ 'va',
-+ 'vdpau',
-+ 'drm',
-+ 'z',
-+ 'minizip',
- # '<!(pkg-config 2> /dev/null --libs <@(pkgconfig_libs))',
- ],
- 'cflags_cc': [
-diff --git a/Telegram/gyp/telegram_sources.txt b/Telegram/gyp/telegram_sources.txt
---- a/Telegram/gyp/telegram_sources.txt
-+++ b/Telegram/gyp/telegram_sources.txt
-@@ -511,14 +511,7 @@
- <(src_loc)/structs.cpp
- <(src_loc)/structs.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
-+../../debian/qt_functions.cpp
-
- platforms: mac
- <(sp_media_key_tap_loc)/SPMediaKeyTap.m
diff --git a/Correct-MOC-path.patch b/Correct-MOC-path.patch
deleted file mode 100644
index 8f1f4bc089de..000000000000
--- a/Correct-MOC-path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Telegram/gyp/qt.gypi b/Telegram/gyp/qt.gypi
-index 897cfa69..5f55135e 100644
---- a/Telegram/gyp/qt.gypi
-+++ b/Telegram/gyp/qt.gypi
-@@ -223,7 +223,7 @@
- '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/moc/moc_<(RULE_INPUT_ROOT).cpp',
- ],
- 'action': [
-- '<(qt_loc)/bin/moc<(exe_ext)',
-+ '/usr/bin/moc<(exe_ext)',
-
- # Silence "Note: No relevant classes found. No output generated."
- '--no-notes',
diff --git a/Downgrade-Qt-version.patch b/Downgrade-Qt-version.patch
deleted file mode 100644
index 903bf181b3b9..000000000000
--- a/Downgrade-Qt-version.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Description: Downgrade Qt version
-Author: Nicholas Guriev <guriev-ns@ya.ru>
-Last-Update: 2017-03-31
-
-diff --git a/Telegram/SourceFiles/main.cpp b/Telegram/SourceFiles/main.cpp
---- a/Telegram/SourceFiles/main.cpp
-+++ b/Telegram/SourceFiles/main.cpp
-@@ -23,9 +23,10 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
- #include "storage/localstorage.h"
-
- int main(int argc, char *argv[]) {
--#ifndef Q_OS_MAC // Retina display support is working fine, others are not.
-+#if !defined(Q_OS_MAC) && QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
-+ // Retina display support is working fine, others are not.
- QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling, true);
--#endif // Q_OS_MAC
-+#endif // not defined Q_OS_MAC and QT_VERSION >= 5.6.0
- QCoreApplication::setApplicationName(qsl("TelegramDesktop"));
-
- settingsParseArgs(argc, argv);
-diff --git a/Telegram/SourceFiles/ui/text/text.cpp b/Telegram/SourceFiles/ui/text/text.cpp
---- a/Telegram/SourceFiles/ui/text/text.cpp
-+++ b/Telegram/SourceFiles/ui/text/text.cpp
-@@ -1692,11 +1692,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
-
- int blockIndex = _lineStartBlock;
- ITextBlock *currentBlock = _t->_blocks[blockIndex];
-diff --git a/Telegram/SourceFiles/ui/twidget.cpp b/Telegram/SourceFiles/ui/twidget.cpp
---- a/Telegram/SourceFiles/ui/twidget.cpp
-+++ b/Telegram/SourceFiles/ui/twidget.cpp
-@@ -107,9 +107,9 @@ void sendSynteticMouseEvent(QWidget *widget, QEvent::Type type, Qt::MouseButton
- , button
- , QGuiApplication::mouseButtons() | button
- , QGuiApplication::keyboardModifiers()
--#ifndef OS_MAC_OLD
-+#if !defined(OS_MAC_OLD) && QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
- , Qt::MouseEventSynthesizedByApplication
--#endif // OS_MAC_OLD
-+#endif
- );
- ev.setTimestamp(getms());
- QGuiApplication::sendEvent(windowHandle, &ev);
diff --git a/Fix-rcc-path.patch b/Fix-rcc-path.patch
deleted file mode 100644
index 76a7719aee84..000000000000
--- a/Fix-rcc-path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Telegram/gyp/qt_rcc.gypi b/Telegram/gyp/qt_rcc.gypi
-index eebc6967..19a346fe 100644
---- a/Telegram/gyp/qt_rcc.gypi
-+++ b/Telegram/gyp/qt_rcc.gypi
-@@ -28,7 +28,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/Flags-for-precompiled-header-and-MOC.patch b/Flags-for-precompiled-header-and-MOC.patch
deleted file mode 100644
index c6df3258963f..000000000000
--- a/Flags-for-precompiled-header-and-MOC.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Description: Specify preprocessor and compiler flags for precompiled header and Qt object files
-Author: Nicholas Guriev <guriev-ns@ya.ru>
-Last-Update: 2017-03-31
-
-diff --git a/Telegram/gyp/PrecompiledHeader.cmake b/Telegram/gyp/PrecompiledHeader.cmake
---- a/Telegram/gyp/PrecompiledHeader.cmake
-+++ b/Telegram/gyp/PrecompiledHeader.cmake
-@@ -112,7 +112,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}" "$(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)")
-@@ -123,7 +123,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}" "$(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 ${_name} for ${_target} (C++)")
-diff --git a/Telegram/gyp/qt.gypi b/Telegram/gyp/qt.gypi
---- a/Telegram/gyp/qt.gypi
-+++ b/Telegram/gyp/qt.gypi
-@@ -228,6 +228,7 @@
- # Silence "Note: No relevant classes found. No output generated."
- '--no-notes',
-
-+ '<!@(echo $CPPFLAGS | grep -Po "[-]([IDU]\s*\S*|E)")',
- '<!@(python -c "for s in \'<@(_defines)\'.split(\' \'): print(\'-D\' + s)")',
- # '<!@(python -c "for s in \'<@(_include_dirs)\'.split(\' \'): print(\'-I\' + s)")',
- '<(RULE_INPUT_PATH)',
diff --git a/PKGBUILD b/PKGBUILD
index e76e53476d59..c808ce46e46a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,81 +5,69 @@
# https://github.com/mymedia2/tdesktop
pkgname=telegram-desktop-systemqt-emojione
-pkgver=1.0.29
+pkgver=1.1.15
pkgrel=1
-pkgdesc='Experimental build of Telegram Desktop (using system Qt, emojis replaced with those from EmojiOne.)'
+pkgdesc='Experimental build of Telegram Desktop (using system Qt, emojis replaced with those from EmojiOne)'
arch=('i686' 'x86_64')
url="https://desktop.telegram.org/"
license=('GPL3')
depends=('ffmpeg' 'hicolor-icon-theme' 'minizip' 'openal' 'qt5-base' 'qt5-imageformats')
-makedepends=('cmake' 'libappindicator-gtk3' 'dee' 'git' 'gyp-git' 'libexif' 'libva' 'libwebp' 'mtdev' 'python' 'python2')
-optdepends=('libappindicator-gtk3: AppIndicator tray icon')
+makedepends=('cmake' 'libappindicator-gtk2' 'dee' 'git' 'gtk3' 'gyp-git' 'libexif' 'libva' 'libwebp' 'mtdev' 'python' 'python2')
+optdepends=(
+ 'libappindicator-gtk3: AppIndicator tray icon'
+ 'libappindicator-gtk2: AppIndicator tray icon'
+)
conflicts=('telegram-desktop')
provides=('telegram-desktop')
install="telegram-desktop.install"
+_variant_ver="1.1.3"
+_GSL_commit="16a6a41690325433976d843e13ec676d6f9ab091"
+_libtgvoip_commit="757a5d8ec31aadcf387ac3cb135256152c18de1c"
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"
+ "GSL::git+https://github.com/Microsoft/GSL.git#commit=${_GSL_commit}"
+ "variant::git+https://github.com/mapbox/variant#tag=v${_variant_ver}"
+ "libtgvoip::git+https://github.com/telegramdesktop/libtgvoip.git#commit=${_libtgvoip_commit}"
"telegramdesktop.desktop"
"tg.protocol"
- "Avoid-depending-on-static-libraries.patch"
- "Remove-Werror-flag.patch"
- "Downgrade-Qt-version.patch"
- "Flags-for-precompiled-header-and-MOC.patch"
- "Fix-rcc-path.patch"
- "Use-gtk3-headers.patch"
- "Reduce-number-of-libraries.patch"
- "Correct-MOC-path.patch"
"CMakeLists.inj"
- "qt_functions.cpp"
- "https://github.com/morealaz/tdesktop/raw/master/Telegram/Resources/art/emoji.webp"
- "https://github.com/morealaz/tdesktop/raw/master/Telegram/Resources/art/emoji_125x.webp"
- "https://github.com/morealaz/tdesktop/raw/master/Telegram/Resources/art/emoji_150x.webp"
- "https://github.com/morealaz/tdesktop/raw/master/Telegram/Resources/art/emoji_200x.webp"
- "https://github.com/morealaz/tdesktop/raw/master/Telegram/Resources/art/emoji_250x.webp"
+ "tdesktop.patch"
+ "libtgvoip.patch"
+ "https://github.com/morealaz/tdesktop/blob/master/Telegram/Resources/art/emoji.webp"
+ "https://github.com/morealaz/tdesktop/blob/master/Telegram/Resources/art/emoji_125x.webp"
+ "https://github.com/morealaz/tdesktop/blob/master/Telegram/Resources/art/emoji_150x.webp"
+ "https://github.com/morealaz/tdesktop/blob/master/Telegram/Resources/art/emoji_200x.webp"
+ "https://github.com/morealaz/tdesktop/blob/master/Telegram/Resources/art/emoji_250x.webp"
)
-
sha256sums=('SKIP'
'SKIP'
'SKIP'
+ 'SKIP'
'41c22fae6ae757936741e63aec3d0f17cafe86b2d6153cdd1d01a5581e871f17'
'd4cdad0d091c7e47811d8a26d55bbee492e7845e968c522e86f120815477e9eb'
- '8da40e3d8bbec2c8dc653cc8c5071b5a7a6e899befac75d6b996536703da4ce6'
- 'c47633e0c1e86cd4488c1533d5742245c5f9e910300f93083101d54597c00c3a'
- 'c05175c418354f3202f4a031ca4133769a37640c920e9e4ff91025f9fc58a015'
- '5b5a41a852d4d5b84466a19a04684dc7e43dfc6d6494dbcbe41341807bae52b3'
- 'cf4dbb293afdbfd226861a00a42790a15b23bea296eccf35853d104e07ea345a'
- '5f3ac7c08df0293bed626293dbfb6040764abf28899db7681572cfb1d8bcaa6e'
- '2990be2c71bdc6b8add19fb4d7638d03610989fe2c299c0ef776d526487deef1'
- '75dcda4aa2d6032f4931cf99e1d915defb4d960ee42725f3b54bbb7dd4ab8531'
'7a06af83609168a8eaec59a65252caa41dcd0ecc805225886435eb65073e9c82'
- '8fa4115ae60a87ee6c846f82d5cc4b90d0ba2b2016e1bd36634772230903af31'
- '304cdfa38e3471957241c41880e6c627cef617a862673788f647d8f84e561815'
- 'ed3e31591b2bbfa32a82a65d6a261f297ab9b5c26a17c1456483b17fd144e219'
- 'cc124ce04b79fdffc3ddb9e6abcd3b5d2f6510c398eeedf7e3d16fab22bd3e8c'
- '919674f30ef0ea660fbfb44e0f96068f01fdd28c73360f3ef46f39d597c7d9ea'
- '6f88da8d60136848770b35d63e8e625bcd2959714a3ec450ab5aeeae95cd84c8')
+ '6d54c8b51b2224c75c15d1e147855a6f22b96848ca3413330882ca6243dd05cb'
+ '640ef297f5977de78dab17789390e628b8f7a8a495529c24da8a43693f3fae23'
+ '41a30e53812d0da4a32a872193c3a53c05e455a4dfeed794944bc251edcae72d'
+ '8e3c254fcf4b57dcaf27f93dba0a59a5ff69382b018da424d9416a5c0577357c'
+ '558bb3082ba33d2547e4c5fb5f74639f0c10871648c7335a3cb652ac1fc08885'
+ 'cc040fa7d681bfc877dd0a32d4ce0df32bbcd80d78a7a8ae5721ddad71d79007'
+ 'c5fff9c7255c89b047bc6e9ba6e00b1f5788d895e564b80939165c333ce3ab68')
prepare() {
cd "$srcdir/tdesktop"
git submodule init
- git config submodule.third_party/GSL.url "$srcdir/GSL"
- git config submodule.third_party/variant.url "$srcdir/variant"
+ 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 submodule update
- git apply "$srcdir/Avoid-depending-on-static-libraries.patch"
- git apply "$srcdir/Remove-Werror-flag.patch"
- git apply "$srcdir/Downgrade-Qt-version.patch"
- git apply "$srcdir/Flags-for-precompiled-header-and-MOC.patch"
- git apply "$srcdir/Fix-rcc-path.patch"
- git apply "$srcdir/Use-gtk3-headers.patch"
- git apply "$srcdir/Reduce-number-of-libraries.patch"
- git apply "$srcdir/Correct-MOC-path.patch"
+ patch -Np1 -i "$srcdir/tdesktop.patch"
+ pushd "Telegram/ThirdParty/libtgvoip"
+ patch -Np1 -i "$srcdir/libtgvoip.patch"
+ popd
for x in "" "_125x" "_150x" "_200x" "_250x"; do
cp "$srcdir/emoji$x.webp" "$srcdir/tdesktop/Telegram/Resources/art/emoji$x.webp"
done
- mkdir -p debian
- cp "$srcdir/qt_functions.cpp" debian/
}
build() {
@@ -113,6 +101,7 @@ package() {
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
diff --git a/Reduce-number-of-libraries.patch b/Reduce-number-of-libraries.patch
deleted file mode 100644
index 48704554223e..000000000000
--- a/Reduce-number-of-libraries.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-Description: Remove linking of unused libraries
-Author: Nicholas Guriev <guriev-ns@ya.ru>
-Last-Update: 2017-04-05
-
-diff --git a/Telegram/gyp/Telegram.gyp b/Telegram/gyp/Telegram.gyp
---- a/Telegram/gyp/Telegram.gyp
-+++ b/Telegram/gyp/Telegram.gyp
-@@ -78,7 +78,6 @@
- 'codegen.gyp:codegen_style',
- 'codegen.gyp:codegen_numbers',
- 'codegen.gyp:MetaLang',
-- 'utils.gyp:Updater',
- ],
-
- 'defines': [
-diff --git a/Telegram/gyp/qt.gypi b/Telegram/gyp/qt.gypi
---- a/Telegram/gyp/qt.gypi
-+++ b/Telegram/gyp/qt.gypi
-@@ -32,13 +32,9 @@
- ],
- },
- 'qt_libs': [
-- 'qwebp',
-- 'Qt5PrintSupport',
-- 'Qt5PlatformSupport',
- 'Qt5Network',
- 'Qt5Widgets',
- 'Qt5Gui',
-- 'qtharfbuzzng',
- ],
- 'qt_version%': '<(qt_version)',
- 'conditions': [
-@@ -89,28 +86,8 @@
- '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',
- ],
- }],
- ],
-@@ -139,11 +117,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%': 'ssl',
-- 'linux_lib_crypto%': 'crypto',
-- 'linux_lib_icu%': 'icutu icui18n icuuc icudata',
- },
-
- 'configurations': {
-@@ -221,12 +194,7 @@ icudata.a',
- 'libraries': [
- '<@(qt_libs_release)',
- 'crypto',
-- 'xcb',
- 'X11',
-- 'X11-xcb',
-- 'dbus-1',
-- 'dl',
-- 'gthread-2.0',
- 'glib-2.0',
- 'pthread',
- ],
-diff --git a/Telegram/gyp/telegram_linux.gypi b/Telegram/gyp/telegram_linux.gypi
---- a/Telegram/gyp/telegram_linux.gypi
-+++ b/Telegram/gyp/telegram_linux.gypi
-@@ -50,19 +50,12 @@
- '<(linux_path_breakpad)/lib',
- ],
- 'libraries': [
-- 'lzma',
- 'openal',
- 'avformat',
- 'avcodec',
- 'swresample',
- 'swscale',
- 'avutil',
-- 'opus',
-- 'va-x11',
-- 'va-drm',
-- 'va',
-- 'vdpau',
-- 'drm',
- 'z',
- 'minizip',
- # '<!(pkg-config 2> /dev/null --libs <@(pkgconfig_libs))',
diff --git a/Remove-Werror-flag.patch b/Remove-Werror-flag.patch
deleted file mode 100644
index 9c8dab4ba747..000000000000
--- a/Remove-Werror-flag.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Description: Remove -Werror flag
- This flag is removed because of fatal warnings in Qt
-Author: Nicholas Guriev <guriev-ns@ya.ru>
-Last-Update: 2017-03-31
-
-diff --git a/Telegram/gyp/settings_linux.gypi b/Telegram/gyp/settings_linux.gypi
-index 9050ab2..82bd931 100644
---- a/Telegram/gyp/settings_linux.gypi
-+++ b/Telegram/gyp/settings_linux.gypi
-@@ -25,7 +25,6 @@
- '-pipe',
- '-g',
- '-Wall',
-- '-Werror',
- '-W',
- '-fPIC',
- '-Wno-unused-variable',
diff --git a/Use-gtk3-headers.patch b/Use-gtk3-headers.patch
deleted file mode 100644
index f124dc31c653..000000000000
--- a/Use-gtk3-headers.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/Telegram/gyp/telegram_linux.gypi b/Telegram/gyp/telegram_linux.gypi
-index 29386a9b..06dd1abc 100644
---- a/Telegram/gyp/telegram_linux.gypi
-+++ b/Telegram/gyp/telegram_linux.gypi
-@@ -68,9 +68,8 @@
- # '<!(pkg-config 2> /dev/null --libs <@(pkgconfig_libs))',
- ],
- 'cflags_cc': [
-- '<!(pkg-config 2> /dev/null --cflags appindicator-0.1)',
-- '<!(pkg-config 2> /dev/null --cflags gtk+-2.0)',
-- '<!(pkg-config 2> /dev/null --cflags glib-2.0)',
-+ '<!(pkg-config 2> /dev/null --cflags appindicator3-0.1)',
-+ '<!(pkg-config 2> /dev/null --cflags gtk+-3.0)',
- '<!(pkg-config 2> /dev/null --cflags dee-1.0)',
- ],
- 'configurations': {
diff --git a/libtgvoip.patch b/libtgvoip.patch
new file mode 100644
index 000000000000..91c3740bfcc9
--- /dev/null
+++ b/libtgvoip.patch
@@ -0,0 +1,18 @@
+diff --git a/libtgvoip.gyp b/libtgvoip.gyp
+index 58dc6bf..98a09d7 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-1.0'
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
diff --git a/qt_functions.cpp b/qt_functions.cpp
deleted file mode 100644
index 4a722b8d70ee..000000000000
--- a/qt_functions.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** 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/tdesktop.patch b/tdesktop.patch
new file mode 100644
index 000000000000..be5edec2e756
--- /dev/null
+++ b/tdesktop.patch
@@ -0,0 +1,513 @@
+diff --git a/Telegram/SourceFiles/main.cpp b/Telegram/SourceFiles/main.cpp
+index 6cd942ec..d8ce29b9 100644
+--- a/Telegram/SourceFiles/main.cpp
++++ b/Telegram/SourceFiles/main.cpp
+@@ -23,9 +23,10 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
+ #include "storage/localstorage.h"
+
+ int main(int argc, char *argv[]) {
+-#ifndef Q_OS_MAC // Retina display support is working fine, others are not.
++#if !defined(Q_OS_MAC) && QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
++ // Retina display support is working fine, others are not.
+ QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling, true);
+-#endif // Q_OS_MAC
++#endif // not defined Q_OS_MAC and QT_VERSION >= 5.6.0
+ QCoreApplication::setApplicationName(qsl("TelegramDesktop"));
+
+ settingsParseArgs(argc, argv);
+@@ -39,6 +40,11 @@ int main(int argc, char *argv[]) {
+ Logs::start(); // must be started before Platform is started
+ Platform::start(); // must be started before QApplication 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);
++
+ int result = 0;
+ {
+ Application app(argc, argv);
+diff --git a/Telegram/SourceFiles/platform/linux/linux_libs.h b/Telegram/SourceFiles/platform/linux/linux_libs.h
+index a8bf969c..75593540 100644
+--- a/Telegram/SourceFiles/platform/linux/linux_libs.h
++++ b/Telegram/SourceFiles/platform/linux/linux_libs.h
+@@ -29,7 +29,7 @@ extern "C" {
+ } // extern "C"
+
+ #ifndef TDESKTOP_DISABLE_UNITY_INTEGRATION
+-#include <unity/unity/unity.h>
++typedef void UnityLauncherEntry;
+ #endif // !TDESKTOP_DISABLE_UNITY_INTEGRATION
+
+ namespace Platform {
+diff --git a/Telegram/SourceFiles/qt_functions.cpp b/Telegram/SourceFiles/qt_functions.cpp
+new file mode 100644
+index 00000000..4a722b8d
+--- /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 b975c7a8..f2f876b3 100644
+--- a/Telegram/SourceFiles/qt_static_plugins.cpp
++++ b/Telegram/SourceFiles/qt_static_plugins.cpp
+@@ -28,13 +28,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)
+ #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 044f8716..0865a5bb 100644
+--- a/Telegram/SourceFiles/ui/text/text.cpp
++++ b/Telegram/SourceFiles/ui/text/text.cpp
+@@ -1692,11 +1692,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
+
+ int blockIndex = _lineStartBlock;
+ ITextBlock *currentBlock = _t->_blocks[blockIndex];
+diff --git a/Telegram/SourceFiles/ui/text/text_block.cpp b/Telegram/SourceFiles/ui/text/text_block.cpp
+index f89644e1..35230cfc 100644
+--- a/Telegram/SourceFiles/ui/text/text_block.cpp
++++ b/Telegram/SourceFiles/ui/text/text_block.cpp
+@@ -330,7 +330,7 @@ TextBlock::TextBlock(const style::font &font, const QString &str, QFixed minResi
+ SignalHandlers::setCrashAnnotationRef("CrashString", &part);
+
+ QStackTextEngine engine(part, blockFont->f);
+- QTextLayout layout(&engine);
++ QTextLayout layout(part, blockFont->f);
+ layout.beginLayout();
+ layout.createLine();
+
+diff --git a/Telegram/SourceFiles/ui/twidget.cpp b/Telegram/SourceFiles/ui/twidget.cpp
+index e9848ef2..dcee47ee 100644
+--- a/Telegram/SourceFiles/ui/twidget.cpp
++++ b/Telegram/SourceFiles/ui/twidget.cpp
+@@ -191,9 +191,9 @@ void sendSynteticMouseEvent(QWidget *widget, QEvent::Type type, Qt::MouseButton
+ , button
+ , QGuiApplication::mouseButtons() | button
+ , QGuiApplication::keyboardModifiers()
+-#ifndef OS_MAC_OLD
++#if !defined(OS_MAC_OLD) && QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)
+ , Qt::MouseEventSynthesizedByApplication
+-#endif // OS_MAC_OLD
++#endif
+ );
+ ev.setTimestamp(getms());
+ QGuiApplication::sendEvent(windowHandle, &ev);
+diff --git a/Telegram/gyp/PrecompiledHeader.cmake b/Telegram/gyp/PrecompiledHeader.cmake
+index 5d6830e9..c3f08d3f 100644
+--- a/Telegram/gyp/PrecompiledHeader.cmake
++++ b/Telegram/gyp/PrecompiledHeader.cmake
+@@ -112,7 +112,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}" "$(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)")
+@@ -123,7 +123,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}" "$(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 ${_name} for ${_target} (C++)")
+diff --git a/Telegram/gyp/Telegram.gyp b/Telegram/gyp/Telegram.gyp
+index 80160d16..8789e874 100644
+--- a/Telegram/gyp/Telegram.gyp
++++ b/Telegram/gyp/Telegram.gyp
+@@ -78,12 +78,10 @@
+ 'codegen.gyp:codegen_lang',
+ 'codegen.gyp:codegen_numbers',
+ 'codegen.gyp:codegen_style',
+- 'utils.gyp:Updater',
+ '../ThirdParty/libtgvoip/libtgvoip.gyp:libtgvoip',
+ ],
+
+ 'defines': [
+- 'AL_LIBTYPE_STATIC',
+ 'AL_ALEXT_PROTOTYPES',
+ 'TGVOIP_USE_CXX11_LIB',
+ '<!@(python -c "for s in \'<(build_defines)\'.split(\',\'): print(s)")',
+@@ -92,14 +90,7 @@
+ 'include_dirs': [
+ '<(src_loc)',
+ '<(SHARED_INTERMEDIATE_DIR)',
+- '<(libs_loc)/breakpad/src',
+- '<(libs_loc)/lzma/C',
+- '<(libs_loc)/libexif-0.6.20',
+- '<(libs_loc)/zlib-1.2.8',
+- '<(libs_loc)/ffmpeg',
+- '<(libs_loc)/openal-soft/include',
+- '<(libs_loc)/opus/include',
+- '<(minizip_loc)',
++ '/usr/include/minizip',
+ '<(sp_media_key_tap_loc)',
+ '<(submodules_loc)/GSL/include',
+ '<(submodules_loc)/variant/include',
+diff --git a/Telegram/gyp/qt.gypi b/Telegram/gyp/qt.gypi
+index 81c13a18..99af0edb 100644
+--- a/Telegram/gyp/qt.gypi
++++ b/Telegram/gyp/qt.gypi
+@@ -27,25 +27,21 @@
+ [ 'build_macold', {
+ 'qt_version%': '5.3.2',
+ }, {
+- 'qt_version%': '5.6.2',
++ 'qt_version%': '5.9.1',
+ }]
+ ],
+ },
+ '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',
+ }]
+ ]
+ },
+@@ -85,32 +81,12 @@
+ ],
+ }],
+ [ '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',
+ ],
+ }],
+ ],
+@@ -140,11 +116,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%': '/usr/lib/libicutu.a /usr/lib/libicui18n.a /usr/lib/libicuuc.a /usr/lib/libicudata.a',
+ },
+
+ 'configurations': {
+@@ -193,13 +164,13 @@
+ },
+
+ 'include_dirs': [
+- '<(qt_loc)/include',
+- '<(qt_loc)/include/QtCore',
+- '<(qt_loc)/include/QtGui',
+- '<(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/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',
+@@ -220,11 +191,8 @@
+ '<(qt_loc)/plugins/platforminputcontexts',
+ ],
+ 'libraries': [
+- '<(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)")',
++ 'crypto',
+ 'xcb',
+ 'X11',
+ 'X11-xcb',
+@@ -238,7 +206,6 @@
+ '<(qt_loc)/mkspecs/linux-g++',
+ ],
+ 'ldflags': [
+- '-static-libstdc++',
+ '-pthread',
+ '-g',
+ '-rdynamic',
+@@ -260,7 +227,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/qt_rcc.gypi b/Telegram/gyp/qt_rcc.gypi
+index eebc6967..19a346fe 100644
+--- a/Telegram/gyp/qt_rcc.gypi
++++ b/Telegram/gyp/qt_rcc.gypi
+@@ -28,7 +28,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/settings_linux.gypi b/Telegram/gyp/settings_linux.gypi
+index fde88dcd..ca149b85 100644
+--- a/Telegram/gyp/settings_linux.gypi
++++ b/Telegram/gyp/settings_linux.gypi
+@@ -25,7 +25,6 @@
+ '-pipe',
+ '-g',
+ '-Wall',
+- '-Werror',
+ '-W',
+ '-fPIC',
+ '-Wno-unused-variable',
+@@ -61,7 +60,6 @@
+ ],
+ 'defines': [
+ '_REENTRANT',
+- 'QT_STATICPLUGIN',
+ 'QT_PLUGIN',
+ ],
+ 'cflags_c': [
+diff --git a/Telegram/gyp/telegram_linux.gypi b/Telegram/gyp/telegram_linux.gypi
+index 2c464928..b505a67d 100644
+--- a/Telegram/gyp/telegram_linux.gypi
++++ b/Telegram/gyp/telegram_linux.gypi
+@@ -33,9 +33,10 @@
+ 'linux_path_va%': '/usr/local',
+ 'linux_path_vdpau%': '/usr/local',
+ 'linux_path_breakpad%': '<(libs_loc)/breakpad',
+- 'linux_path_opus_include%': '<(libs_loc)/opus/include',
++ 'linux_path_opus_include%': '/usr/include/opus',
+ },
+ 'include_dirs': [
++ '/usr/include/openssl-1.0',
+ '/usr/local/include',
+ '<(linux_path_ffmpeg)/include',
+ '<(linux_path_openal)/include',
+@@ -43,6 +44,7 @@
+ '<(linux_path_opus_include)',
+ ],
+ 'library_dirs': [
++ '/usr/lib/openssl-1.0',
+ '/usr/local/lib',
+ '<(linux_path_ffmpeg)/lib',
+ '<(linux_path_openal)/lib',
+@@ -52,31 +54,20 @@
+ '<(linux_path_breakpad)/lib',
+ ],
+ 'libraries': [
+- 'breakpad_client',
+- 'composeplatforminputcontextplugin',
+- 'ibusplatforminputcontextplugin',
+- 'fcitxplatforminputcontextplugin',
+- 'himeplatforminputcontextplugin',
+- 'liblzma.a',
+- 'libopenal.a',
+- 'libavformat.a',
+- 'libavcodec.a',
+- 'libswresample.a',
+- 'libswscale.a',
+- 'libavutil.a',
+- 'libopus.a',
+- 'libva-x11.a',
+- 'libva-drm.a',
+- 'libva.a',
+- 'libvdpau.a',
+- 'libdrm.a',
+- 'libz.a',
++ 'openal',
++ 'avformat',
++ 'avcodec',
++ 'swresample',
++ 'swscale',
++ 'avutil',
++ 'minizip',
++ 'opus',
++ 'z',
+ # '<!(pkg-config 2> /dev/null --libs <@(pkgconfig_libs))',
+ ],
+ 'cflags_cc': [
+ '<!(pkg-config 2> /dev/null --cflags appindicator-0.1)',
+- '<!(pkg-config 2> /dev/null --cflags gtk+-2.0)',
+- '<!(pkg-config 2> /dev/null --cflags glib-2.0)',
++ '<!(pkg-config 2> /dev/null --cflags gtk+-3.0)',
+ '<!(pkg-config 2> /dev/null --cflags dee-1.0)',
+ ],
+ 'configurations': {
+diff --git a/Telegram/gyp/telegram_sources.txt b/Telegram/gyp/telegram_sources.txt
+index fbe63ec5..475210b3 100644
+--- a/Telegram/gyp/telegram_sources.txt
++++ b/Telegram/gyp/telegram_sources.txt
+@@ -580,14 +580,7 @@
+ <(src_loc)/structs.cpp
+ <(src_loc)/structs.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: mac
+ <(sp_media_key_tap_loc)/SPMediaKeyTap.m