summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorHexchain Tong2017-02-04 12:17:38 +0800
committerHexchain Tong2017-02-04 12:17:38 +0800
commita431a190966143900ebbad803cb6cc6e5895f2c6 (patch)
tree0ddc3c680901ac62108002236f3dd275aed386ce
downloadaur-a431a190966143900ebbad803cb6cc6e5895f2c6.tar.gz
newpkg
-rw-r--r--.SRCINFO45
-rw-r--r--Avoid-depending-on-static-libraries.patch353
-rw-r--r--CMakeLists.inj14
-rw-r--r--Fix-desktop-integration-issues.patch55
-rw-r--r--Fix-rcc-path.patch13
-rw-r--r--Flags-for-precompiled-header-and-MOC.patch44
-rw-r--r--PKGBUILD86
-rw-r--r--telegramdesktop.desktop12
-rw-r--r--tg.protocol11
9 files changed, 633 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..503234fb39c4
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,45 @@
+# Generated by mksrcinfo v8
+# Sat Feb 4 04:17:08 UTC 2017
+pkgbase = telegram-desktop-systemqt
+ pkgdesc = Official desktop version of Telegram messaging app. (Use system Qt)
+ pkgver = 1.0.6
+ pkgrel = 1
+ url = https://desktop.telegram.org/
+ arch = i686
+ arch = x86_64
+ license = GPL3
+ makedepends = cmake
+ makedepends = dee
+ makedepends = git
+ makedepends = gyp-git
+ makedepends = libappindicator-gtk2
+ makedepends = libexif
+ makedepends = libva
+ makedepends = libwebp
+ makedepends = mtdev
+ makedepends = python
+ makedepends = python2
+ depends = ffmpeg
+ depends = hicolor-icon-theme
+ depends = minizip
+ depends = openal
+ depends = qt5-base
+ source = tdesktop::git+https://github.com/telegramdesktop/tdesktop.git#tag=v1.0.6
+ source = telegramdesktop.desktop
+ source = tg.protocol
+ source = Avoid-depending-on-static-libraries.patch
+ source = Fix-desktop-integration-issues.patch
+ source = Flags-for-precompiled-header-and-MOC.patch
+ source = Fix-rcc-path.patch
+ source = CMakeLists.inj
+ sha256sums = SKIP
+ sha256sums = 41c22fae6ae757936741e63aec3d0f17cafe86b2d6153cdd1d01a5581e871f17
+ sha256sums = d4cdad0d091c7e47811d8a26d55bbee492e7845e968c522e86f120815477e9eb
+ sha256sums = 386a9b3a68e82f6be5686f64736042c53eea398cc835f74bb198c34312198889
+ sha256sums = 4e1c87bad5f2538bf9fce0b54e7f984d7f269e3b1f6e44e1097b8abcc28c68e0
+ sha256sums = 952c7590cb05354c70037745d980fa97c36e36f96a1fa7d0db29a5c6a1d8dbd1
+ sha256sums = cf4dbb293afdbfd226861a00a42790a15b23bea296eccf35853d104e07ea345a
+ sha256sums = 7a06af83609168a8eaec59a65252caa41dcd0ecc805225886435eb65073e9c82
+
+pkgname = telegram-desktop-systemqt
+
diff --git a/Avoid-depending-on-static-libraries.patch b/Avoid-depending-on-static-libraries.patch
new file mode 100644
index 000000000000..64d580fa714d
--- /dev/null
+++ b/Avoid-depending-on-static-libraries.patch
@@ -0,0 +1,353 @@
+Description: Eliminates dependencies from static Qt and other libraries
+Author: Nicholas Guriev <guriev-ns@ya.ru>
+Last-Update: 2017-01-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[]) {
+ 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 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" {
+ } // 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/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
+-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
++
++/* 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;
++}
+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
+ 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
+index 2503f1e..92415ea 100644
+--- a/Telegram/gyp/Telegram.gyp
++++ b/Telegram/gyp/Telegram.gyp
+@@ -79,20 +79,16 @@
+ ],
+
+ 'defines': [
+- 'AL_LIBTYPE_STATIC',
+ '<!@(python -c "for s in \'<(travis_defines)\'.split(\',\'): print(s)")',
++ 'TDESKTOP_DISABLE_AUTOUPDATE',
++ 'TDESKTOP_DISABLE_CRASH_REPORTS',
++ 'TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME',
+ ],
+
+ '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)',
+ ],
+ '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',
+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 @@
+ [ 'build_macold', {
+ 'qt_version%': '5.3.2',
+ }, {
+- 'qt_version%': '5.6.2',
++ 'qt_version%': '5.8.0',
+ }]
+ ],
+ },
+ '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',
+ },
+ 'qt_version%': '<(qt_version)',
+ 'qt_loc_unix': '<(linux_path_qt)',
+@@ -79,19 +77,14 @@
+ ],
+ }],
+ [ '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',
+@@ -103,7 +96,6 @@
+ 'xcb-shm',
+ 'xcb-xfixes',
+ 'xcb-render',
+- 'xcb-static',
+ ],
+ }],
+ ],
+@@ -130,9 +122,9 @@
+ ],
+
+ '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': {
+@@ -181,13 +173,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',
+@@ -208,7 +200,7 @@
+ '<(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 @@
+ '<(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
+index 3356b97..20b4732 100644
+--- a/Telegram/gyp/settings_linux.gypi
++++ b/Telegram/gyp/settings_linux.gypi
+@@ -60,7 +60,6 @@
+ ],
+ 'defines': [
+ '_REENTRANT',
+- 'QT_STATICPLUGIN',
+ 'QT_PLUGIN',
+ ],
+ 'cflags': [
+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 @@
+ '<(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/CMakeLists.inj b/CMakeLists.inj
new file mode 100644
index 000000000000..e039cb1585af
--- /dev/null
+++ b/CMakeLists.inj
@@ -0,0 +1,14 @@
+# ------------- debian/CMakeLists.inj begin -------------
+# The text will be putted into the appropriate CMakeLists by debian/rules script
+
+# 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)
+
+# vim: ft=cmake
+# -------------- debian/CMakeLists.inj end --------------
diff --git a/Fix-desktop-integration-issues.patch b/Fix-desktop-integration-issues.patch
new file mode 100644
index 000000000000..277962a0dc8c
--- /dev/null
+++ b/Fix-desktop-integration-issues.patch
@@ -0,0 +1,55 @@
+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/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp
+index 52c9add..78af10a 100644
+--- a/Telegram/SourceFiles/historywidget.cpp
++++ b/Telegram/SourceFiles/historywidget.cpp
+@@ -189,7 +189,7 @@ namespace {
+ // is applied once for blocks list in a history and once for items list in the found block
+ template <bool TopToBottom, typename T>
+ int binarySearchBlocksOrItems(const T &list, int edge) {
+- auto start = 0, end = list.size();
++ size_t start = 0, end = list.size();
+ while (end - start > 1) {
+ auto middle = (start + end) / 2;
+ auto top = list[middle]->y;
+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/Fix-rcc-path.patch b/Fix-rcc-path.patch
new file mode 100644
index 000000000000..76a7719aee84
--- /dev/null
+++ b/Fix-rcc-path.patch
@@ -0,0 +1,13 @@
+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
new file mode 100644
index 000000000000..558d0fbed0e8
--- /dev/null
+++ b/Flags-for-precompiled-header-and-MOC.patch
@@ -0,0 +1,44 @@
+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
+
+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)
+ 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/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..589686b13449
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,86 @@
+pkgname=telegram-desktop-systemqt
+pkgver=1.0.6
+pkgrel=1
+pkgdesc='Official desktop version of Telegram messaging app. (Use system Qt)'
+arch=('i686' 'x86_64')
+url="https://desktop.telegram.org/"
+license=('GPL3')
+depends=(
+ 'ffmpeg'
+ 'hicolor-icon-theme'
+ 'minizip'
+ 'openal'
+ 'qt5-base'
+)
+makedepends=(
+ 'cmake'
+ 'dee'
+ 'git'
+ 'gyp-git'
+ 'libappindicator-gtk2'
+ 'libexif'
+ 'libva'
+ 'libwebp'
+ 'mtdev'
+ 'python'
+ 'python2'
+)
+source=(
+ "tdesktop::git+https://github.com/telegramdesktop/tdesktop.git#tag=v$pkgver"
+ "telegramdesktop.desktop"
+ "tg.protocol"
+ "Avoid-depending-on-static-libraries.patch"
+ "Fix-desktop-integration-issues.patch"
+ "Flags-for-precompiled-header-and-MOC.patch"
+ "Fix-rcc-path.patch"
+ "CMakeLists.inj"
+)
+sha256sums=('SKIP'
+ '41c22fae6ae757936741e63aec3d0f17cafe86b2d6153cdd1d01a5581e871f17'
+ 'd4cdad0d091c7e47811d8a26d55bbee492e7845e968c522e86f120815477e9eb'
+ '386a9b3a68e82f6be5686f64736042c53eea398cc835f74bb198c34312198889'
+ '4e1c87bad5f2538bf9fce0b54e7f984d7f269e3b1f6e44e1097b8abcc28c68e0'
+ '952c7590cb05354c70037745d980fa97c36e36f96a1fa7d0db29a5c6a1d8dbd1'
+ 'cf4dbb293afdbfd226861a00a42790a15b23bea296eccf35853d104e07ea345a'
+ '7a06af83609168a8eaec59a65252caa41dcd0ecc805225886435eb65073e9c82')
+
+prepare() {
+ cd "$srcdir/tdesktop"
+ git apply "$srcdir/Avoid-depending-on-static-libraries.patch"
+ git apply "$srcdir/Fix-desktop-integration-issues.patch"
+ git apply "$srcdir/Flags-for-precompiled-header-and-MOC.patch"
+ git apply "$srcdir/Fix-rcc-path.patch"
+}
+
+build() {
+ cd "$srcdir/tdesktop"
+ export EXTRA_CPPFLAGS="-DTDESKTOP_DISABLE_AUTOUPDATE -DTDESKTOP_DISABLE_CRASH_REPORTS -DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
+ export CPPFLAGS="$CPPFLAGS $EXTRA_CPPFLAGS"
+ gyp \
+ -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_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=None
+ 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/telegramdesktop.desktop" "$pkgdir/usr/share/applications/telegramdesktop.desktop"
+
+ install -d "$pkgdir/usr/share/kde4/services"
+ install -m644 "$srcdir/tg.protocol" "$pkgdir/usr/share/kde4/services/tg.protocol"
+
+ local icon_size icon_dir
+ for icon_size in 16 32 48 64 128 256 512; do
+ icon_dir="$pkgdir/usr/share/icons/hicolor/${icon_size}x${icon_size}/apps"
+
+ install -d "$icon_dir"
+ install -m644 "$srcdir/tdesktop/Telegram/Resources/art/icon${icon_size}.png" "$icon_dir/telegram-desktop.png"
+ done
+}
diff --git a/telegramdesktop.desktop b/telegramdesktop.desktop
new file mode 100644
index 000000000000..d822796ee7d1
--- /dev/null
+++ b/telegramdesktop.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Name=Telegram Desktop
+Comment=Official desktop version of Telegram messaging app
+Exec=/usr/bin/telegram-desktop -- %u
+Icon=telegram-desktop
+Terminal=false
+StartupWMClass=telegram-desktop
+Type=Application
+Categories=Network;
+MimeType=x-scheme-handler/tg;
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