diff --git a/srcpkgs/telegram-desktop/files/CMakeLists.inj b/srcpkgs/telegram-desktop/files/CMakeLists.inj
new file mode 100644
index 00000000000..e039cb1585a
--- /dev/null
+++ b/srcpkgs/telegram-desktop/files/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/srcpkgs/telegram-desktop/patches/01-tdesktop.patch b/srcpkgs/telegram-desktop/patches/01-tdesktop.patch
new file mode 100644
index 00000000000..b8633bf7f12
--- /dev/null
+++ b/srcpkgs/telegram-desktop/patches/01-tdesktop.patch
@@ -0,0 +1,578 @@
+diff --git Telegram/Resources/qrc/telegram_linux.qrc Telegram/Resources/qrc/telegram_linux.qrc
+index 0554fa17..3ea02740 100644
+--- Telegram/Resources/qrc/telegram_linux.qrc
++++ Telegram/Resources/qrc/telegram_linux.qrc
+@@ -1,5 +1,4 @@
+
+
+- ../etc/qt_linux.conf
+
+
+diff --git Telegram/SourceFiles/core/launcher.cpp Telegram/SourceFiles/core/launcher.cpp
+index bf21d14d..6b63016e 100644
+--- Telegram/SourceFiles/core/launcher.cpp
++++ Telegram/SourceFiles/core/launcher.cpp
+@@ -44,9 +44,10 @@ void Launcher::init() {
+
+ QCoreApplication::setApplicationName(qsl("TelegramDesktop"));
+
+-#ifndef OS_MAC_OLD
++#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 // OS_MAC_OLD
++#endif // not defined Q_OS_MAC and QT_VERSION >= 5.6.0
+
+ initHook();
+ }
+@@ -64,6 +65,13 @@ int Launcher::exec() {
+ Logs::start(this); // 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/qt5/plugins");
++ // without this Telegram doesn't start on Ubuntu 17.04 due GTK errors
++ setenv("QT_STYLE_OVERRIDE", "qwerty", false);
++ // Telegram doesn't start when extraordinary theme is set, see launchpad.net/bugs/1680943
++ unsetenv("QT_QPA_PLATFORMTHEME");
++
+ auto result = executeApplication();
+
+ DEBUG_LOG(("Telegram finished, result: %1").arg(result));
+diff --git Telegram/SourceFiles/platform/linux/linux_libs.h Telegram/SourceFiles/platform/linux/linux_libs.h
+index e9e349be..d82963fa 100644
+--- Telegram/SourceFiles/platform/linux/linux_libs.h
++++ Telegram/SourceFiles/platform/linux/linux_libs.h
+@@ -30,7 +30,7 @@ extern "C" {
+ } // extern "C"
+
+ #ifndef TDESKTOP_DISABLE_UNITY_INTEGRATION
+-#include
++typedef void UnityLauncherEntry;
+ #endif // !TDESKTOP_DISABLE_UNITY_INTEGRATION
+ #endif // !TDESKTOP_DISABLE_GTK_INTEGRATION
+
+diff --git Telegram/SourceFiles/qt_functions.cpp Telegram/SourceFiles/qt_functions.cpp
+new file mode 100644
+index 00000000..4a722b8d
+--- /dev/null
++++ 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 Telegram/SourceFiles/qt_static_plugins.cpp Telegram/SourceFiles/qt_static_plugins.cpp
+index b975c7a8..f2f876b3 100644
+--- Telegram/SourceFiles/qt_static_plugins.cpp
++++ 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 Telegram/SourceFiles/ui/text/text.cpp Telegram/SourceFiles/ui/text/text.cpp
+index 7d34a19b..a4b3d31a 100644
+--- Telegram/SourceFiles/ui/text/text.cpp
++++ Telegram/SourceFiles/ui/text/text.cpp
+@@ -1707,11 +1707,11 @@ private:
+ if (item == -1)
+ return;
+
+-#ifdef OS_MAC_OLD
++#if defined(OS_MAC_OLD) || QT_VERSION < QT_VERSION_CHECK(5, 6, 0)
+ auto end = _e->findItem(line.from + line.length - 1);
+-#else // OS_MAC_OLD
++#else
+ auto end = _e->findItem(line.from + line.length - 1, item);
+-#endif // OS_MAC_OLD
++#endif
+
+ auto blockIndex = _lineStartBlock;
+ auto currentBlock = _t->_blocks[blockIndex].get();
+diff --git Telegram/SourceFiles/ui/text/text_block.cpp Telegram/SourceFiles/ui/text/text_block.cpp
+index a10b5393..4e1eb62d 100644
+--- Telegram/SourceFiles/ui/text/text_block.cpp
++++ Telegram/SourceFiles/ui/text/text_block.cpp
+@@ -333,6 +333,9 @@ TextBlock::TextBlock(const style::font &font, const QString &str, QFixed minResi
+
+ QStackTextEngine engine(part, blockFont->f);
+ BlockParser parser(&engine, this, minResizeWidth, _from, part);
++ QTextLayout layout(part, blockFont->f);
++ layout.beginLayout();
++ layout.createLine();
+
+ CrashReports::ClearAnnotationRef("CrashString");
+ }
+diff --git Telegram/SourceFiles/ui/twidget.cpp Telegram/SourceFiles/ui/twidget.cpp
+index dacb848a..f64c9b66 100644
+--- Telegram/SourceFiles/ui/twidget.cpp
++++ Telegram/SourceFiles/ui/twidget.cpp
+@@ -248,9 +248,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 Telegram/gyp/PrecompiledHeader.cmake Telegram/gyp/PrecompiledHeader.cmake
+index 5d6830e9..c3f08d3f 100644
+--- Telegram/gyp/PrecompiledHeader.cmake
++++ 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 Telegram/gyp/Telegram.gyp Telegram/gyp/Telegram.gyp
+index 84a06153..fd7ca47f 100644
+--- Telegram/gyp/Telegram.gyp
++++ Telegram/gyp/Telegram.gyp
+@@ -82,13 +82,11 @@
+ 'codegen.gyp:codegen_numbers',
+ 'codegen.gyp:codegen_style',
+ 'tests/tests.gyp:tests',
+- 'utils.gyp:Updater',
+ '../ThirdParty/libtgvoip/libtgvoip.gyp:libtgvoip',
+ 'crl.gyp:crl',
+ ],
+
+ 'defines': [
+- 'AL_LIBTYPE_STATIC',
+ 'AL_ALEXT_PROTOTYPES',
+ 'TGVOIP_USE_CXX11_LIB',
+ ' /dev/null --libs <@(pkgconfig_libs))',
+ ],
+ 'cflags_cc': [
+@@ -99,7 +91,7 @@
+ },
+ },
+ 'conditions': [
+- [ '" /dev/null --cflags appindicator-0.1)',
+- ' /dev/null --cflags gtk+-2.0)',
+- ' /dev/null --cflags glib-2.0)',
+- ' /dev/null --cflags dee-1.0)',
++ ' /dev/null --cflags appindicator3-0.1)',
++ ' /dev/null --cflags gtk+-3.0)',
+ ],
+ }]
+ ],
+diff --git Telegram/gyp/telegram_sources.txt Telegram/gyp/telegram_sources.txt
+index 5d2f627e..defd475d 100644
+--- Telegram/gyp/telegram_sources.txt
++++ Telegram/gyp/telegram_sources.txt
+@@ -713,14 +713,7 @@
+ <(emoji_suggestions_loc)/emoji_suggestions.cpp
+ <(emoji_suggestions_loc)/emoji_suggestions.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
diff --git a/srcpkgs/telegram-desktop/patches/02-no-gtk2.patch b/srcpkgs/telegram-desktop/patches/02-no-gtk2.patch
new file mode 100644
index 00000000000..ba1ae4d27be
--- /dev/null
+++ b/srcpkgs/telegram-desktop/patches/02-no-gtk2.patch
@@ -0,0 +1,28 @@
+diff -Naur tdesktop-1.2.6.orig/Telegram/SourceFiles/platform/linux/linux_libs.cpp tdesktop-1.2.6/Telegram/SourceFiles/platform/linux/linux_libs.cpp
+--- Telegram/SourceFiles/platform/linux/linux_libs.cpp 2017-12-30 11:13:48.000000000 +0100
++++ Telegram/SourceFiles/platform/linux/linux_libs.cpp 2018-01-17 11:41:49.593275952 +0100
+@@ -253,24 +253,12 @@
+ indicatorLoaded = setupAppIndicator(lib_indicator);
+ }
+ }
+- if (!gtkLoaded || !indicatorLoaded) {
+- if (loadLibrary(lib_indicator, "appindicator", 1)) {
+- if (loadLibrary(lib_gtk, "gtk-x11-2.0", 0)) {
+- gtkLoaded = indicatorLoaded = false;
+- gtkLoaded = setupGtkBase(lib_gtk);
+- indicatorLoaded = setupAppIndicator(lib_indicator);
+- }
+- }
+- }
+
+ // If no appindicator, try at least load gtk.
+ if (!gtkLoaded && !indicatorLoaded) {
+ if (loadLibrary(lib_gtk, "gtk-3", 0)) {
+ gtkLoaded = setupGtkBase(lib_gtk);
+ }
+- if (!gtkLoaded && loadLibrary(lib_gtk, "gtk-x11-2.0", 0)) {
+- gtkLoaded = setupGtkBase(lib_gtk);
+- }
+ }
+
+ if (gtkLoaded) {
diff --git a/srcpkgs/telegram-desktop/patches/03-libtgvoip.patch b/srcpkgs/telegram-desktop/patches/03-libtgvoip.patch
new file mode 100644
index 00000000000..505fb54d9b3
--- /dev/null
+++ b/srcpkgs/telegram-desktop/patches/03-libtgvoip.patch
@@ -0,0 +1,18 @@
+diff --git libtgvoip.gyp libtgvoip.gyp
+index 52fbea1..9a4dfb7 100644
+--- Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
++++ 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/srcpkgs/telegram-desktop/patches/04-libressl.patch b/srcpkgs/telegram-desktop/patches/04-libressl.patch
new file mode 100644
index 00000000000..e1b582866c7
--- /dev/null
+++ b/srcpkgs/telegram-desktop/patches/04-libressl.patch
@@ -0,0 +1,23 @@
+--- Telegram/SourceFiles/core/utils.cpp 2018-02-18 16:50:35.666997894 +0100
++++ - 2018-02-18 16:51:32.647313078 +0100
+@@ -295,7 +295,9 @@
+ av_lockmgr_register(nullptr);
+
+ CRYPTO_cleanup_all_ex_data();
++#if !defined(LIBRESSL_VERSION_NUMBER)
+ FIPS_mode_set(0);
++#endif
+ ENGINE_cleanup();
+ CONF_modules_unload(1);
+ ERR_remove_state(0);
+--- Telegram/SourceFiles/mtproto/rsa_public_key.cpp 2018-01-03 11:46:01.000000000 +0100
++++ - 2018-02-18 17:04:49.956395054 +0100
+@@ -16,7 +16,7 @@
+ namespace MTP {
+ namespace internal {
+ namespace {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+
+ // This is a key setter for compatibility with OpenSSL 1.0
+ int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d) {
diff --git a/srcpkgs/telegram-desktop/patches/05-musl.patch b/srcpkgs/telegram-desktop/patches/05-musl.patch
new file mode 100644
index 00000000000..d3faf9296af
--- /dev/null
+++ b/srcpkgs/telegram-desktop/patches/05-musl.patch
@@ -0,0 +1,25 @@
+--- Telegram/ThirdParty/libtgvoip/os/linux/AudioInputPulse.cpp 2018-02-18 16:15:10.850216642 +0100
++++ - 2018-02-18 16:17:18.277060386 +0100
+@@ -4,6 +4,9 @@
+ // you should have received with this source code distribution.
+ //
+
++#if !defined(__GLIBC__)
++# include
++#endif
+ #include
+ #include
+ #include
+--- Telegram/ThirdParty/libtgvoip/os/linux/AudioOutputPulse.cpp 2017-12-27 19:47:58.000000000 +0100
++++ - 2018-02-18 16:18:27.461801108 +0100
+@@ -4,7 +4,9 @@
+ // you should have received with this source code distribution.
+ //
+
+-
++#if !defined(__GLIBC__)
++# include
++#endif
+ #include
+ #include
+ #include
diff --git a/srcpkgs/telegram-desktop/patches/06-remove-GLIBC-2.15-compat.patch b/srcpkgs/telegram-desktop/patches/06-remove-GLIBC-2.15-compat.patch
new file mode 100644
index 00000000000..a695352c40a
--- /dev/null
+++ b/srcpkgs/telegram-desktop/patches/06-remove-GLIBC-2.15-compat.patch
@@ -0,0 +1,29 @@
+--- Telegram/gyp/telegram_linux.gypi 2018-02-18 20:54:28.997216923 +0100
++++ - 2018-02-18 20:58:29.334937600 +0100
+@@ -57,9 +57,6 @@
+ '-Wno-strict-overflow',
+ ],
+ 'ldflags': [
+- '-Wl,-wrap,aligned_alloc',
+- '-Wl,-wrap,secure_getenv',
+- '-Wl,-wrap,clock_gettime',
+ '-Wl,--no-as-needed,-lrt',
+ ],
+ 'configurations': {
+--- Telegram/gyp/qt.gypi 2018-02-18 20:54:28.997216923 +0100
++++ - 2018-02-18 20:59:47.859601720 +0100
+@@ -176,14 +176,10 @@
+ ],
+ 'conditions': [
+ [ 'build_linux', {
+- 'dependencies': [
+- '<(DEPTH)/linux_glibc_wraps.gyp:linux_glibc_wraps',
+- ],
+ 'library_dirs': [
+ '<(qt_loc)/plugins/platforminputcontexts',
+ ],
+ 'libraries': [
+- '<(PRODUCT_DIR)/obj.target/liblinux_glibc_wraps.a',
+ '<@(qt_libs_release)',
+ '-lcrypto',
+ '-lX11',
diff --git a/srcpkgs/telegram-desktop/template b/srcpkgs/telegram-desktop/template
new file mode 100644
index 00000000000..2bf3beac464
--- /dev/null
+++ b/srcpkgs/telegram-desktop/template
@@ -0,0 +1,73 @@
+# Template file for 'telegram-desktop'
+pkgname=telegram-desktop
+version=1.2.8
+revision=1
+_libtgvoip_commit=0b53884c8bf10a1d7df879baec839a1fab896c63
+_GSL_commit=c5851a8161938798c5594a66420cb814fea92711
+_variant_commit=550ac2f159ca883d360c196149b466955c77a573
+_crl_commit=344cbde9ae8d89a6530408d3176d2754ae0ff0e2
+_Catch_commit=5ca44b68721833ae3731802ed99af67c6f38a53a
+wrksrc="tdesktop-${version}"
+only_for_archs="i686 i686-musl x86_64 x86_64-musl"
+build_style=cmake
+build_wrksrc="out/Release"
+hostmakedepends="gyp pkg-config"
+makedepends="qt5-devel gtk+3-devel libappindicator-devel libdbusmenu-glib-devel
+ opus-devel alsa-lib-devel pulseaudio-devel range-v3 minizip-devel ffmpeg-devel
+ libopenal-devel"
+short_desc="Telegram Desktop messaging app"
+maintainer="John "
+license="GPL-3"
+homepage="https://github.com/telegramdesktop/tdesktop"
+distfiles="https://github.com/telegramdesktop/tdesktop/archive/v${version}.tar.gz
+ https://github.com/telegramdesktop/libtgvoip/archive/${_libtgvoip_commit}.tar.gz
+ https://github.com/Microsoft/GSL/archive/${_GSL_commit}.tar.gz
+ https://github.com/mapbox/variant/archive/${_variant_commit}.tar.gz
+ https://github.com/telegramdesktop/crl/archive/${_crl_commit}.tar.gz
+ https://github.com/catchorg/Catch2/archive/${_Catch_commit}.tar.gz"
+checksum="cb8530041b5b742e641b0f3a98699a116b1677cb547de90a957b739c5d754386
+ ae88aee4075479de94afafe87892798cabeb44d4feb4a9fbe641a5300c8c7016
+ 7e35ec47741fac58e7262ce0bfce118d79a7dec009d8425fa00ff04d3a4082a8
+ aa794dfefe0a90501587e36d977b958d0df888503117a8d9aa43dc14f8526d9d
+ c8ad2e354b13aa162a1f6104cfbf353bd6c2d19af7a439b55ffaa2b38e040ce5
+ d24e6d9df2b8aa5739d3b9077c6b0ff0ef4d5ef8acc52c3a57e32893854d8d18"
+
+
+case $XBPS_TARGET_MACHINE in
+ *-musl) makedepends+=" libexecinfo-devel";;
+esac
+
+post_extract() {
+ mv ${wrksrc}/../libtgvoip-${_libtgvoip_commit}/* ${wrksrc}/Telegram/ThirdParty/libtgvoip
+ mv ${wrksrc}/../GSL-${_GSL_commit}/* ${wrksrc}/Telegram/ThirdParty/GSL
+ mv ${wrksrc}/../variant-${_variant_commit}/* ${wrksrc}/Telegram/ThirdParty/variant
+ mv ${wrksrc}/../crl-${_crl_commit}/* ${wrksrc}/Telegram/ThirdParty/crl
+ mv ${wrksrc}/../Catch2-${_Catch_commit}/* ${wrksrc}/Telegram/ThirdParty/Catch
+ mkdir out/Release -p
+}
+
+pre_configure() {
+ export GYP_DEFINES="TDESKTOP_DISABLE_CRASH_REPORTS,TDESKTOP_DISABLE_AUTOUPDATE,TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME,TDESKTOP_DISABLE_UNITY_INTEGRATION"
+ cd ${wrksrc} && \
+ gyp2 \
+ -Dbuild_defines=${GYP_DEFINES} \
+ -Gconfig=Release \
+ --depth=Telegram/gyp --generator-output=../.. \
+ -Goutput_dir=out Telegram/gyp/Telegram.gyp --format=cmake
+
+ NUM=$((`wc -l < out/Release/CMakeLists.txt` - 2))
+ sed -i "$NUM r ${FILESDIR}/CMakeLists.inj" out/Release/CMakeLists.txt
+ export ASM=gcc
+}
+
+do_install() {
+ vbin build/Telegram telegram-desktop
+
+ for i in 16 32 48 64 128 256 512; do
+ vinstall ${wrksrc}/Telegram/Resources/art/icon$i.png 644 usr/share/icons/hicolor/${i}x${i} telegram-desktop.png
+ done
+
+ vinstall ${wrksrc}/lib/xdg/telegramdesktop.desktop 644 usr/share/applications/
+ vinstall ${wrksrc}/lib/xdg/tg.protocol 644 usr/share/kservice5/
+ vinstall ${wrksrc}/lib/xdg/telegramdesktop.appdata.xml 644 usr/share/metainfo
+}