diff options
-rw-r--r-- | .SRCINFO | 45 | ||||
-rw-r--r-- | Avoid-depending-on-static-libraries.patch | 353 | ||||
-rw-r--r-- | CMakeLists.inj | 14 | ||||
-rw-r--r-- | Fix-desktop-integration-issues.patch | 55 | ||||
-rw-r--r-- | Fix-rcc-path.patch | 13 | ||||
-rw-r--r-- | Flags-for-precompiled-header-and-MOC.patch | 44 | ||||
-rw-r--r-- | PKGBUILD | 86 | ||||
-rw-r--r-- | telegramdesktop.desktop | 12 | ||||
-rw-r--r-- | tg.protocol | 11 |
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 |