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 +}