summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO24
-rw-r--r--.gitignore2
-rw-r--r--Avoid-depending-on-static-libraries.patch227
-rw-r--r--Correct-MOC-path.patch13
-rw-r--r--Downgrade-Qt-version.patch53
-rw-r--r--Fix-desktop-integration-issues.patch42
-rw-r--r--Flags-for-precompiled-header-and-MOC.patch32
-rw-r--r--PKGBUILD37
-rw-r--r--Reduce-number-of-libraries.patch42
-rw-r--r--Remove-Werror-flag.patch17
-rw-r--r--qt_functions.cpp94
11 files changed, 321 insertions, 262 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 385e4b73fafb..754aca86da24 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = telegram-desktop-systemqt-notoemoji
pkgdesc = Experimental build of Telegram Desktop (using system Qt, emojis replaced with those from Noto Color Emoji)
- pkgver = 1.0.14
+ pkgver = 1.0.27
pkgrel = 1
url = https://desktop.telegram.org/
install = telegram-desktop.install
@@ -27,31 +27,41 @@ pkgbase = telegram-desktop-systemqt-notoemoji
optdepends = libappindicator-gtk3: AppIndicator tray icon
provides = telegram-desktop
conflicts = telegram-desktop
- source = tdesktop::git+https://github.com/telegramdesktop/tdesktop.git#tag=v1.0.14
+ source = tdesktop::git+https://github.com/telegramdesktop/tdesktop.git#tag=v1.0.27
+ source = GSL::git+https://github.com/Microsoft/GSL.git#commit=16a6a41690325433976d843e13ec676d6f9ab091
+ source = variant::git+https://github.com/mapbox/variant#tag=v1.1.3
source = telegramdesktop.desktop
source = tg.protocol
source = Avoid-depending-on-static-libraries.patch
- source = Fix-desktop-integration-issues.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/PeterCxy/tdesktop/raw/62fcc728a12a4d5b41049e6aadb5e6f039c28f8d/Telegram/Resources/art/emoji.webp
source = https://github.com/PeterCxy/tdesktop/raw/62fcc728a12a4d5b41049e6aadb5e6f039c28f8d/Telegram/Resources/art/emoji_125x.webp
source = https://github.com/PeterCxy/tdesktop/raw/62fcc728a12a4d5b41049e6aadb5e6f039c28f8d/Telegram/Resources/art/emoji_150x.webp
source = https://github.com/PeterCxy/tdesktop/raw/62fcc728a12a4d5b41049e6aadb5e6f039c28f8d/Telegram/Resources/art/emoji_200x.webp
source = https://github.com/PeterCxy/tdesktop/raw/62fcc728a12a4d5b41049e6aadb5e6f039c28f8d/Telegram/Resources/art/emoji_250x.webp
sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
sha256sums = 41c22fae6ae757936741e63aec3d0f17cafe86b2d6153cdd1d01a5581e871f17
sha256sums = d4cdad0d091c7e47811d8a26d55bbee492e7845e968c522e86f120815477e9eb
- sha256sums = 197159eca70fc4a3d55548842d3218bcd67394cb869f08825d8fc12cf7b050f8
- sha256sums = 4e1938a5ddfcf8ac57bafa5f9ce80413665ac3b0ccd3c1853fe8f0835b91f468
- sha256sums = 952c7590cb05354c70037745d980fa97c36e36f96a1fa7d0db29a5c6a1d8dbd1
+ sha256sums = 8da40e3d8bbec2c8dc653cc8c5071b5a7a6e899befac75d6b996536703da4ce6
+ sha256sums = c47633e0c1e86cd4488c1533d5742245c5f9e910300f93083101d54597c00c3a
+ sha256sums = c05175c418354f3202f4a031ca4133769a37640c920e9e4ff91025f9fc58a015
+ sha256sums = 5b5a41a852d4d5b84466a19a04684dc7e43dfc6d6494dbcbe41341807bae52b3
sha256sums = cf4dbb293afdbfd226861a00a42790a15b23bea296eccf35853d104e07ea345a
sha256sums = 5f3ac7c08df0293bed626293dbfb6040764abf28899db7681572cfb1d8bcaa6e
- sha256sums = 0442af5365a31de5a8e15de8a94f5c1192775fc4460b74c4045da99e548f045a
+ sha256sums = ca37a7a7bec56133530c4e03c718ad5d5d43f29ec79009d87cb7d891ef78b7a7
+ sha256sums = 75dcda4aa2d6032f4931cf99e1d915defb4d960ee42725f3b54bbb7dd4ab8531
sha256sums = 7a06af83609168a8eaec59a65252caa41dcd0ecc805225886435eb65073e9c82
+ sha256sums = 8fa4115ae60a87ee6c846f82d5cc4b90d0ba2b2016e1bd36634772230903af31
sha256sums = c6fea6d718b054aa3deb0b8b5a7f1ff330db2ab1f66962de033ad84c33622727
sha256sums = 701d15ffe711113022981b2f7da3ae2a4aa9febe260dac020a30274f8c8b538b
sha256sums = c268159a23152b765c7af72997cd290bfbb8c1ed5219991cca28596f85596bd1
diff --git a/.gitignore b/.gitignore
index 11f448572c09..e43f151aa967 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,5 @@ src
pkg
tdesktop
*.webp
+GSL
+variant
diff --git a/Avoid-depending-on-static-libraries.patch b/Avoid-depending-on-static-libraries.patch
index afb0232f5e4d..aa64b05389ee 100644
--- a/Avoid-depending-on-static-libraries.patch
+++ b/Avoid-depending-on-static-libraries.patch
@@ -1,15 +1,14 @@
Description: Eliminates dependencies from static Qt and other libraries
Author: Nicholas Guriev <guriev-ns@ya.ru>
-Last-Update: 2017-01-31
+Last-Update: 2017-03-31
diff --git a/Telegram/SourceFiles/main.cpp b/Telegram/SourceFiles/main.cpp
-index 0c31e9b..3f9c0e4 100644
--- a/Telegram/SourceFiles/main.cpp
+++ b/Telegram/SourceFiles/main.cpp
-@@ -45,6 +45,11 @@ int main(int argc, char *argv[]) {
+@@ -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
@@ -19,7 +18,6 @@ index 0c31e9b..3f9c0e4 100644
{
Application app(argc, argv);
diff --git a/Telegram/SourceFiles/platform/linux/linux_libs.h b/Telegram/SourceFiles/platform/linux/linux_libs.h
-index 1ecae70..e835c31 100644
--- a/Telegram/SourceFiles/platform/linux/linux_libs.h
+++ b/Telegram/SourceFiles/platform/linux/linux_libs.h
@@ -29,7 +29,7 @@ extern "C" {
@@ -31,31 +29,13 @@ index 1ecae70..e835c31 100644
#endif // !TDESKTOP_DISABLE_UNITY_INTEGRATION
namespace Platform {
-diff --git a/Telegram/SourceFiles/stdafx.cpp b/Telegram/SourceFiles/stdafx.cpp
-index 3cc98b8..7afd662 100644
---- a/Telegram/SourceFiles/stdafx.cpp
-+++ b/Telegram/SourceFiles/stdafx.cpp
-@@ -16,28 +16,70 @@ In addition, as a special exception, the copyright holders give permission
- to link the code of portions of this program with the OpenSSL library.
-
- Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
--Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
-+Copyright (c) 2009-2017 Various Qt Authors
- */
- #include "stdafx.h"
--#include <QtCore/QtPlugin>
--
--#ifdef Q_OS_WINRT
--//Q_IMPORT_PLUGIN(QWinRTIntegrationPlugin)
--//Q_IMPORT_PLUGIN(QWbmpPlugin)
--#elif defined Q_OS_WIN // Q_OS_WINRT
--Q_IMPORT_PLUGIN(QWebpPlugin)
--Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
--#elif defined Q_OS_MAC // Q_OS_WIN
--Q_IMPORT_PLUGIN(QWebpPlugin)
--Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
--Q_IMPORT_PLUGIN(QGenericEnginePlugin)
--#elif defined Q_OS_LINUX // Q_OS_LINUX
+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)
@@ -64,76 +44,11 @@ index 3cc98b8..7afd662 100644
-Q_IMPORT_PLUGIN(QComposePlatformInputContextPlugin)
-Q_IMPORT_PLUGIN(QIbusPlatformInputContextPlugin)
-Q_IMPORT_PLUGIN(QFcitxPlatformInputContextPlugin)
--#endif
-+
-+/* This file contains some code from Qt source to ensure successful build.
-+ * 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;
-+}
+ #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
-index d7597f8..3a50097 100644
--- a/Telegram/SourceFiles/ui/text/text_block.cpp
+++ b/Telegram/SourceFiles/ui/text/text_block.cpp
-@@ -335,7 +335,7 @@ TextBlock::TextBlock(const style::font &font, const QString &str, QFixed minResi
+@@ -330,7 +330,7 @@ TextBlock::TextBlock(const style::font &font, const QString &str, QFixed minResi
SignalHandlers::setCrashAnnotationRef("CrashString", &part);
QStackTextEngine engine(part, blockFont->f);
@@ -143,18 +58,14 @@ index d7597f8..3a50097 100644
layout.createLine();
diff --git a/Telegram/gyp/Telegram.gyp b/Telegram/gyp/Telegram.gyp
-index 2503f1e..92415ea 100644
--- a/Telegram/gyp/Telegram.gyp
+++ b/Telegram/gyp/Telegram.gyp
-@@ -79,20 +80,16 @@
+@@ -81,20 +82,13 @@
],
'defines': [
- 'AL_LIBTYPE_STATIC',
'<!@(python -c "for s in \'<(build_defines)\'.split(\',\'): print(s)")',
-+ 'TDESKTOP_DISABLE_AUTOUPDATE',
-+ 'TDESKTOP_DISABLE_CRASH_REPORTS',
-+ 'TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME',
],
'include_dirs': [
@@ -169,51 +80,30 @@ index 2503f1e..92415ea 100644
- '<(minizip_loc)',
+ '/usr/include/minizip',
'<(sp_media_key_tap_loc)',
- ],
- 'sources': [
-@@ -631,13 +625,6 @@
- }],
- [ '"<(build_win)" != "1"', {
- 'sources': [
-- '<(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',
- ],
- 'sources!': [
- '<(src_loc)/pspecific_win.cpp',
+ '<(submodules_loc)/GSL/include',
+ '<(submodules_loc)/variant/include',
diff --git a/Telegram/gyp/qt.gypi b/Telegram/gyp/qt.gypi
-index 24ededb..0cfd178 100644
--- a/Telegram/gyp/qt.gypi
+++ b/Telegram/gyp/qt.gypi
-@@ -27,21 +27,18 @@
+@@ -27,7 +27,7 @@
[ 'build_macold', {
'qt_version%': '5.3.2',
}, {
- 'qt_version%': '5.6.2',
-+ 'qt_version%': '5.8.0',
++ '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)',
-- 'linux_path_qt%': '/usr/local/tdesktop/Qt-<(qt_version)',
-+ 'linux_path_qt%': '/usr/lib/qt',
+@@ -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',
+ }]
+ ]
},
- 'qt_version%': '<(qt_version)',
- 'qt_loc_unix': '<(linux_path_qt)',
-@@ -79,19 +77,14 @@
+@@ -85,9 +85,9 @@
],
}],
[ 'build_linux', {
@@ -224,28 +114,10 @@ index 24ededb..0cfd178 100644
+ 'qt_lib_debug_postfix': '',
+ 'qt_lib_release_postfix': '',
'qt_libs': [
-- 'qxcb',
+ 'qxcb',
'Qt5XcbQpa',
-- 'qconnmanbearer',
-- 'qgenericbearer',
-- 'qnmbearer',
- '<@(qt_libs)',
- 'Qt5DBus',
- 'Qt5Core',
-- 'qtpcre',
- 'Xi',
- 'Xext',
- 'Xfixes',
-@@ -103,7 +96,6 @@
- 'xcb-shm',
- 'xcb-xfixes',
- 'xcb-render',
-- 'xcb-static',
- ],
- }],
- ],
-@@ -130,9 +122,9 @@
- ],
+@@ -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',
@@ -257,7 +129,7 @@ index 24ededb..0cfd178 100644
},
'configurations': {
-@@ -181,13 +173,13 @@
+@@ -192,13 +192,13 @@
},
'include_dirs': [
@@ -278,16 +150,20 @@ index 24ededb..0cfd178 100644
],
'library_dirs': [
'<(qt_loc)/lib',
-@@ -208,7 +200,7 @@
+@@ -219,11 +219,8 @@
'<(qt_loc)/plugins/platforminputcontexts',
],
'libraries': [
- '<(linux_path_xkbcommon)/lib/libxkbcommon.a',
-+ 'xkbcommon',
'<@(qt_libs_release)',
- '<(linux_lib_ssl)',
- '<(linux_lib_crypto)',
-@@ -226,7 +218,6 @@
+- '<(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': [
@@ -296,19 +172,17 @@ index 24ededb..0cfd178 100644
'-g',
'-rdynamic',
diff --git a/Telegram/gyp/settings_linux.gypi b/Telegram/gyp/settings_linux.gypi
-index 3356b97..20b4732 100644
--- a/Telegram/gyp/settings_linux.gypi
+++ b/Telegram/gyp/settings_linux.gypi
-@@ -60,7 +60,6 @@
+@@ -61,7 +61,6 @@
],
'defines': [
'_REENTRANT',
- 'QT_STATICPLUGIN',
'QT_PLUGIN',
],
- 'cflags': [
+ 'cflags_c': [
diff --git a/Telegram/gyp/telegram_linux.gypi b/Telegram/gyp/telegram_linux.gypi
-index b42e744..29386a9 100644
--- a/Telegram/gyp/telegram_linux.gypi
+++ b/Telegram/gyp/telegram_linux.gypi
@@ -50,24 +50,21 @@
@@ -351,3 +225,22 @@ index b42e744..29386a9 100644
# '<!(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
new file mode 100644
index 000000000000..8f1f4bc089de
--- /dev/null
+++ b/Correct-MOC-path.patch
@@ -0,0 +1,13 @@
+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
new file mode 100644
index 000000000000..903bf181b3b9
--- /dev/null
+++ b/Downgrade-Qt-version.patch
@@ -0,0 +1,53 @@
+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-desktop-integration-issues.patch b/Fix-desktop-integration-issues.patch
deleted file mode 100644
index 374c581a77f2..000000000000
--- a/Fix-desktop-integration-issues.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Description: Fix some problems with desktop integration which relate to names of the binaries
-Author: Nicholas Guriev <guriev-ns@ya.ru>
-Last-Update: 2017-01-26
-
-diff --git a/Telegram/SourceFiles/pspecific_linux.cpp b/Telegram/SourceFiles/pspecific_linux.cpp
-index 8b21afe..258b5bd 100644
---- a/Telegram/SourceFiles/pspecific_linux.cpp
-+++ b/Telegram/SourceFiles/pspecific_linux.cpp
-@@ -505,7 +505,7 @@ void psRegisterCustomScheme() {
- s << "Exec=" << escapeShell(QFile::encodeName(cExeDir() + cExeName())) << " -- %u\n";
- s << "Icon=telegram\n";
- s << "Terminal=false\n";
-- s << "StartupWMClass=Telegram\n";
-+ s << "StartupWMClass=TelegramDesktop\n";
- s << "Type=Application\n";
- s << "Categories=Network;\n";
- s << "MimeType=x-scheme-handler/tg;\n";
-@@ -572,7 +572,7 @@ bool _execUpdater(bool update = true, const QString &crashreport = QString()) {
- static const int MaxLen = 65536, MaxArgsCount = 128;
-
- char path[MaxLen] = {0};
-- QByteArray data(QFile::encodeName(cExeDir() + "Updater"));
-+ QByteArray data(QFile::encodeName(cExeDir() + (update ? "Updater" : gExeName)));
- memcpy(path, data.constData(), data.size());
-
- char *args[MaxArgsCount] = {0}, p_noupdate[] = "-noupdate", p_autostart[] = "-autostart", p_debug[] = "-debug", p_tosettings[] = "-tosettings", p_key[] = "-key", p_path[] = "-workpath", p_startintray[] = "-startintray", p_testmode[] = "-testmode", p_crashreport[] = "-crashreport";
-diff --git a/lib/xdg/telegramdesktop.desktop b/lib/xdg/telegramdesktop.desktop
-index 35a5c61..da7a35a 100644
---- a/lib/xdg/telegramdesktop.desktop
-+++ b/lib/xdg/telegramdesktop.desktop
-@@ -4,9 +4,9 @@ Version=1.0
- Name=Telegram Desktop
- Comment=Official desktop version of Telegram messaging app
- Exec=/usr/bin/telegram-desktop -- %u
--Icon=telegram-desktop
-+Icon=telegram
- Terminal=false
--StartupWMClass=Telegram
-+StartupWMClass=TelegramDesktop
- Type=Application
- Categories=Network;
- MimeType=x-scheme-handler/tg;
diff --git a/Flags-for-precompiled-header-and-MOC.patch b/Flags-for-precompiled-header-and-MOC.patch
index 558d0fbed0e8..c6df3258963f 100644
--- a/Flags-for-precompiled-header-and-MOC.patch
+++ b/Flags-for-precompiled-header-and-MOC.patch
@@ -1,27 +1,8 @@
Description: Specify preprocessor and compiler flags for precompiled header and Qt object files
Author: Nicholas Guriev <guriev-ns@ya.ru>
-Last-Update: 2017-01-26
+Last-Update: 2017-03-31
-diff --git a/Telegram/gyp/qt.gypi b/Telegram/gyp/qt.gypi
-index 24ededb..0cfd178 100644
---- a/Telegram/gyp/qt.gypi
-+++ b/Telegram/gyp/qt.gypi
-@@ -241,11 +231,12 @@
- '<(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',
-
-+ '<!@(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/Telegram/gyp/PrecompiledHeader.cmake b/Telegram/gyp/PrecompiledHeader.cmake
-index fc189e4..30becec 100644
--- a/Telegram/gyp/PrecompiledHeader.cmake
+++ b/Telegram/gyp/PrecompiledHeader.cmake
@@ -112,7 +112,7 @@ function(add_precompiled_header _target _input)
@@ -42,3 +23,14 @@ index fc189e4..30becec 100644
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 62ca701ada0f..abc84b98d3d4 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,7 +7,7 @@
_emoji_res_commit="62fcc728a12a4d5b41049e6aadb5e6f039c28f8d"
pkgname=telegram-desktop-systemqt-notoemoji
-pkgver=1.0.14
+pkgver=1.0.27
pkgrel=1
pkgdesc='Experimental build of Telegram Desktop (using system Qt, emojis replaced with those from Noto Color Emoji)'
arch=('i686' 'x86_64')
@@ -19,17 +19,24 @@ optdepends=('libappindicator-gtk3: AppIndicator tray icon')
conflicts=('telegram-desktop')
provides=('telegram-desktop')
install="telegram-desktop.install"
+_variant_ver="1.1.3"
+_GSL_commit="16a6a41690325433976d843e13ec676d6f9ab091"
source=(
"tdesktop::git+https://github.com/telegramdesktop/tdesktop.git#tag=v$pkgver"
+ "GSL::git+https://github.com/Microsoft/GSL.git#commit=${_GSL_commit}"
+ "variant::git+https://github.com/mapbox/variant#tag=v${_variant_ver}"
"telegramdesktop.desktop"
"tg.protocol"
"Avoid-depending-on-static-libraries.patch"
- "Fix-desktop-integration-issues.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/PeterCxy/tdesktop/raw/${_emoji_res_commit}/Telegram/Resources/art/emoji.webp"
"https://github.com/PeterCxy/tdesktop/raw/${_emoji_res_commit}/Telegram/Resources/art/emoji_125x.webp"
"https://github.com/PeterCxy/tdesktop/raw/${_emoji_res_commit}/Telegram/Resources/art/emoji_150x.webp"
@@ -37,15 +44,20 @@ source=(
"https://github.com/PeterCxy/tdesktop/raw/${_emoji_res_commit}/Telegram/Resources/art/emoji_250x.webp"
)
sha256sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
'41c22fae6ae757936741e63aec3d0f17cafe86b2d6153cdd1d01a5581e871f17'
'd4cdad0d091c7e47811d8a26d55bbee492e7845e968c522e86f120815477e9eb'
- '197159eca70fc4a3d55548842d3218bcd67394cb869f08825d8fc12cf7b050f8'
- '4e1938a5ddfcf8ac57bafa5f9ce80413665ac3b0ccd3c1853fe8f0835b91f468'
- '952c7590cb05354c70037745d980fa97c36e36f96a1fa7d0db29a5c6a1d8dbd1'
+ '8da40e3d8bbec2c8dc653cc8c5071b5a7a6e899befac75d6b996536703da4ce6'
+ 'c47633e0c1e86cd4488c1533d5742245c5f9e910300f93083101d54597c00c3a'
+ 'c05175c418354f3202f4a031ca4133769a37640c920e9e4ff91025f9fc58a015'
+ '5b5a41a852d4d5b84466a19a04684dc7e43dfc6d6494dbcbe41341807bae52b3'
'cf4dbb293afdbfd226861a00a42790a15b23bea296eccf35853d104e07ea345a'
'5f3ac7c08df0293bed626293dbfb6040764abf28899db7681572cfb1d8bcaa6e'
- '0442af5365a31de5a8e15de8a94f5c1192775fc4460b74c4045da99e548f045a'
+ 'ca37a7a7bec56133530c4e03c718ad5d5d43f29ec79009d87cb7d891ef78b7a7'
+ '75dcda4aa2d6032f4931cf99e1d915defb4d960ee42725f3b54bbb7dd4ab8531'
'7a06af83609168a8eaec59a65252caa41dcd0ecc805225886435eb65073e9c82'
+ '8fa4115ae60a87ee6c846f82d5cc4b90d0ba2b2016e1bd36634772230903af31'
'c6fea6d718b054aa3deb0b8b5a7f1ff330db2ab1f66962de033ad84c33622727'
'701d15ffe711113022981b2f7da3ae2a4aa9febe260dac020a30274f8c8b538b'
'c268159a23152b765c7af72997cd290bfbb8c1ed5219991cca28596f85596bd1'
@@ -54,20 +66,31 @@ sha256sums=('SKIP'
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 submodule update
git apply "$srcdir/Avoid-depending-on-static-libraries.patch"
- git apply "$srcdir/Fix-desktop-integration-issues.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"
cp "$srcdir/emoji.webp" "$srcdir/emoji_"{125,150,200,250}"x.webp" "$srcdir/tdesktop/Telegram/Resources/art/"
+ mkdir -p debian
+ cp "$srcdir/qt_functions.cpp" debian/
}
build() {
+ export GYP_DEFINES="TDESKTOP_DISABLE_CRASH_REPORTS,TDESKTOP_DISABLE_AUTOUPDATE,TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
cd "$srcdir/tdesktop"
export EXTRA_CPPFLAGS="-DTDESKTOP_DISABLE_AUTOUPDATE -DTDESKTOP_DISABLE_CRASH_REPORTS -DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
export CPPFLAGS="$CPPFLAGS $EXTRA_CPPFLAGS"
+ export CXXFLAGS="$CXXFLAGS $EXTRA_CPPFLAGS"
gyp \
+ -Dbuild_defines=${GYP_DEFINES:1} \
-Gconfig=Release \
--depth=Telegram/gyp --generator-output=../.. -Goutput_dir=out Telegram/gyp/Telegram.gyp --format=cmake
NUM=$((`wc -l < out/Release/CMakeLists.txt` - 2))
diff --git a/Reduce-number-of-libraries.patch b/Reduce-number-of-libraries.patch
index a782e1c730c4..3ea2b26bd766 100644
--- a/Reduce-number-of-libraries.patch
+++ b/Reduce-number-of-libraries.patch
@@ -1,12 +1,11 @@
Description: Remove linking of unused libraries
Author: Nicholas Guriev <guriev-ns@ya.ru>
-Last-Update: 2017-02-18
+Last-Update: 2017-03-31
diff --git a/Telegram/gyp/Telegram.gyp b/Telegram/gyp/Telegram.gyp
-index 603264b..830df69 100644
--- a/Telegram/gyp/Telegram.gyp
+++ b/Telegram/gyp/Telegram.gyp
-@@ -76,7 +76,6 @@
+@@ -78,7 +78,6 @@
'codegen.gyp:codegen_style',
'codegen.gyp:codegen_numbers',
'codegen.gyp:MetaLang',
@@ -15,24 +14,35 @@ index 603264b..830df69 100644
'defines': [
diff --git a/Telegram/gyp/qt.gypi b/Telegram/gyp/qt.gypi
-index 1db05de..d322153 100644
--- a/Telegram/gyp/qt.gypi
+++ b/Telegram/gyp/qt.gypi
-@@ -32,6 +32,5 @@
+@@ -32,13 +32,9 @@
],
},
'qt_libs': [
+- 'qwebp',
- 'Qt5PrintSupport',
+- 'Qt5PlatformSupport',
'Qt5Network',
'Qt5Widgets',
-@@ -81,21 +80,8 @@
+ 'Qt5Gui',
+- 'qtharfbuzzng',
+ ],
+ 'qt_version%': '<(qt_version)',
+ 'conditions': [
+@@ -89,27 +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',
@@ -44,13 +54,14 @@ index 1db05de..d322153 100644
- 'xcb-shm',
- 'xcb-xfixes',
- 'xcb-render',
+- 'xcb-static',
],
}],
],
-@@ -120,11 +106,6 @@
- 'qt_loc': '<(qt_loc_unix)',
- }],
- ],
+@@ -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',
@@ -59,17 +70,11 @@ index 1db05de..d322153 100644
},
'configurations': {
-@@ -200,17 +181,9 @@
- '<(qt_loc)/plugins/platforminputcontexts',
- ],
+@@ -221,12 +194,7 @@ icudata.a',
'libraries': [
-- 'xkbcommon',
'<@(qt_libs_release)',
-- '<(linux_lib_ssl)',
-- '<(linux_lib_crypto)',
-- '<!@(python -c "for s in \'<(linux_lib_icu)\'.split(\' \'): print(s)")',
+ 'crypto',
- 'xcb',
-+ 'crypto',
'X11',
- 'X11-xcb',
- 'dbus-1',
@@ -79,7 +84,6 @@ index 1db05de..d322153 100644
'pthread',
],
diff --git a/Telegram/gyp/telegram_linux.gypi b/Telegram/gyp/telegram_linux.gypi
-index 29386a9..63d26e4 100644
--- a/Telegram/gyp/telegram_linux.gypi
+++ b/Telegram/gyp/telegram_linux.gypi
@@ -50,19 +50,12 @@
diff --git a/Remove-Werror-flag.patch b/Remove-Werror-flag.patch
new file mode 100644
index 000000000000..9c8dab4ba747
--- /dev/null
+++ b/Remove-Werror-flag.patch
@@ -0,0 +1,17 @@
+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/qt_functions.cpp b/qt_functions.cpp
new file mode 100644
index 000000000000..4a722b8d70ee
--- /dev/null
+++ b/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;
+}