~alpine/aports

2

[alpine-aports] [PATCH] testing/telegram-desktop: new aport

Details
Message ID
<20181202153127.30412-1-raschi.alex@gmail.com>
Sender timestamp
1543764687
DKIM signature
missing
Download raw message
Patch: +864 -0
https://desktop.telegram.org/
Telegram Desktop messaging app
---
 testing/telegram-desktop/APKBUILD        | 144 ++++++
 testing/telegram-desktop/libtgvoip.patch |  16 +
 testing/telegram-desktop/musl.patch      |  17 +
 testing/telegram-desktop/no-gtk2.patch   |  27 ++
 testing/telegram-desktop/no-pulse.patch  |  36 ++
 testing/telegram-desktop/tdesktop.patch  | 594 +++++++++++++++++++++++
 testing/telegram-desktop/xdg.patch       |  30 ++
 7 files changed, 864 insertions(+)
 create mode 100644 testing/telegram-desktop/APKBUILD
 create mode 100644 testing/telegram-desktop/libtgvoip.patch
 create mode 100644 testing/telegram-desktop/musl.patch
 create mode 100644 testing/telegram-desktop/no-gtk2.patch
 create mode 100644 testing/telegram-desktop/no-pulse.patch
 create mode 100644 testing/telegram-desktop/tdesktop.patch
 create mode 100644 testing/telegram-desktop/xdg.patch

diff --git a/testing/telegram-desktop/APKBUILD b/testing/telegram-desktop/APKBUILD
new file mode 100644
index 0000000000..f113d92af0
--- /dev/null
+++ b/testing/telegram-desktop/APKBUILD
@@ -0,0 +1,144 @@
# Maintainer: Alex Raschi <raschi.alex@gmail.com>
pkgname=telegram-desktop
pkgver=1.4.3
_pkgurl="https://github.com/telegramdesktop/tdesktop.git"
# https://github.com/telegramdesktop/tdesktop/blob/v$pkgver/docs/building-cmake.md
_gypver=702ac58e477214c635d9b541932e75a95d349352
_gypurl="https://chromium.googlesource.com/external/gyp"
_rangever=0.4.0
_rangeurl="https://github.com/ericniebler/range-v3.git"
pkgrel=0
pkgdesc="Telegram Desktop messaging app"
url="https://desktop.telegram.org/"
arch="all"
license="GPL-3.0-or-later WITH OpenSSL"
depends="qt5-qtimageformats"
makedepends="cmake
	zlib-dev
	opus-dev
	libva-dev
	libvdpau-dev
	ffmpeg-dev
	portaudio-dev
	openal-soft-dev
	openssl-dev
	libxkbcommon-dev
	qt5-qtbase-dev
	libexif-dev
	xz-dev
	minizip-dev
	alsa-lib-dev
	libexecinfo-dev
	python2
	grep"
source="http://dev.alpinelinux.org/archive/$pkgname/$pkgname-$pkgver.tar.gz
	libtgvoip.patch
	musl.patch
	no-gtk2.patch
	no-pulse.patch
	tdesktop.patch
	xdg.patch"
builddir="$srcdir/$pkgname-$pkgver"
_reldir="$builddir/out/Release"

snapshot() {
	local libs="$builddir"/Libraries

	mkdir -p "$srcdir"
	cd "$srcdir"
	git clone --recurse-submodules "$_pkgurl" -b "v$pkgver" "$builddir"

	# clone also gyp and range-v3
	mkdir "$libs"
	cd "$libs"
	git clone --recurse-submodules "$_gypurl" -b "master" gyp
	git clone --recurse-submodules "$_rangeurl" -b "$_rangever" range-v3
	cd gyp
	# chromium.googlesource.com doesn't support cloning commits
	git reset --hard "$_gypver"

	cd "$srcdir"
	find "$builddir" -name .git -exec rm -rf {} +
	# git archive doesn't support submodules
	tar czf "$builddir".tar.gz "${builddir##*/}"
	scp "$builddir".tar.gz dev.alpinelinux.org:/archive/$pkgname/
}

prepare() {
	cd "$builddir/Telegram/ThirdParty"
	rm -rf minizip # we have this system-wide

	cd "$builddir/Libraries"
	patch -p1 -i "$builddir"/Telegram/Patches/gyp.diff -d "gyp"

	default_prepare
}

build() {
	cd "$builddir/Telegram/gyp"
	export CPPFLAGS="$CPPFLAGS -Winvalid-pch"
	export CXXFLAGS="$CXXFLAGS -Winvalid-pch"
	../../Libraries/gyp/gyp \
		-Dbuild_defines="TDESKTOP_DISABLE_CRASH_REPORTS,TDESKTOP_DISABLE_AUTOUPDATE,TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME,TDESKTOP_DISABLE_GTK_INTEGRATION" \
		-Gconfig=Release \
		--depth=. \
		--generator-output=../.. \
		-Goutput_dir=out \
		Telegram.gyp \
		--format=cmake

	cd "$_reldir"
	printf '%s\n' 'set_target_properties(Telegram PROPERTIES SKIP_BUILD_RPATH TRUE)' >> CMakeLists.txt

	if [ "$CBUILD" != "$CHOST" ]; then
		CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
	fi
	cmake \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DBUILD_SHARED_LIBS=True \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
		-DCMAKE_C_FLAGS="$CFLAGS" \
		-DCMAKE_ASM_COMPILER=as \
		${CMAKE_CROSSOPTS}
	make
}

check() {
	local test

	cd "$_reldir"
	for test in tests_*; do
		./"$test"
	done
}

package() {
	local size

	cd "$_reldir"
	mkdir -p "$pkgdir"/usr/bin
	mv Telegram "$pkgdir"/usr/bin/telegram-desktop

	cd "$builddir"
	mkdir -p "$pkgdir"/usr/share/applications
	mv lib/xdg/telegramdesktop.desktop "$pkgdir"/usr/share/applications/telegram-desktop.desktop

	mkdir -p "$pkgdir"/usr/share/kservices5
	mv lib/xdg/tg.protocol "$pkgdir"/usr/share/kservices5

	cd Telegram/Resources/art
	mkdir -p "$pkgdir"/usr/share/icons/hicolor
	for size in 16 32 48 64 128 256 512; do
		mkdir -p "$pkgdir"/usr/share/icons/hicolor/"$size"x"$size"/apps
		mv icon"$size".png "$pkgdir"/usr/share/icons/hicolor/"$size"x"$size"/apps/telegram.png
	done
}

sha512sums="8e60e1b4decb5162694aad0c74b07d12fd91185b2c527e2a67c11155bffb3a502f1805ba20daa5b102c4a679e7b286b938fa6af93dfacf4d5a5c1c00f2ad59d7  telegram-desktop-1.4.3.tar.gz
47da04e4d174658376026fa17643aac9c78e0edc42969cdce3bb99e81cc84f930d5687a99f0707e22692101cf21efe828da849ed18e63199d80ee34316d77863  libtgvoip.patch
1ae9efaed0ec2dc0e82d30a10875cbb4a29489d97c674dc09467b7c5cccc554f829ac4d09659cedc1d7ca3fd4d3b8976fd536d799f8de0b79f6c38961fa1a992  musl.patch
e3b57ca67a977e3147fc1554a59caa79df63bcb70c05f5830db6fed5d8333b944478477e86a62a950fa23e7160224abfd1c576e9edff909f244aa65123bb987e  no-gtk2.patch
188fd61ce3fb1183a152ba3739a042cdacb8a695b722a2be6484a730e73dc99d8305bc4d14589c85a1f395162f1d38c79c1c39faeb75737f0b20726c0e5d6fdf  no-pulse.patch
5933063ad5d4fda7f31be23a129bb1958384aee3607acbcd25dbbf9e6c2d6d131565f31b02caa7c774830733743d086d0d6bb971e87c3eb2deb10d0c5e3b9551  tdesktop.patch
8de8c0508177da5fcac4f2dcee4d8baef4b99f74f1dca296567bc3689a6bd17a47c1c945df504abc8811b82a687010d0709503c7c32e47d2ebb1cf0e374c80c5  xdg.patch"
diff --git a/testing/telegram-desktop/libtgvoip.patch b/testing/telegram-desktop/libtgvoip.patch
new file mode 100644
index 0000000000..fcd1166bf1
--- /dev/null
+++ b/testing/telegram-desktop/libtgvoip.patch
@@ -0,0 +1,16 @@
--- a/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
+++ b/Telegram/ThirdParty/libtgvoip/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',
         ],
         'direct_dependent_settings': {
           'include_dirs': [
diff --git a/testing/telegram-desktop/musl.patch b/testing/telegram-desktop/musl.patch
new file mode 100644
index 0000000000..ddd2058279
--- /dev/null
+++ b/testing/telegram-desktop/musl.patch
@@ -0,0 +1,17 @@
--- a/Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp
+++ b/Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp
@@ -6,6 +6,7 @@
 
 #include "AudioPulse.h"
 #include <dlfcn.h>
+#include <libgen.h>
 #include "../../logging.h"
 
 #define DECLARE_DL_FUNCTION(name) typeof(name)* AudioPulse::_import_##name=NULL
@@ -283,4 +284,4 @@ bool AudioPulse::DoOneOperation(std::fun
 		}
 		pa_mainloop_iterate(ml, 1, NULL);
 	}
-}
\ No newline at end of file
+}
diff --git a/testing/telegram-desktop/no-gtk2.patch b/testing/telegram-desktop/no-gtk2.patch
new file mode 100644
index 0000000000..109032d23f
--- /dev/null
+++ b/testing/telegram-desktop/no-gtk2.patch
@@ -0,0 +1,27 @@
--- a/Telegram/SourceFiles/platform/linux/linux_libs.cpp
+++ b/Telegram/SourceFiles/platform/linux/linux_libs.cpp
@@ -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/testing/telegram-desktop/no-pulse.patch b/testing/telegram-desktop/no-pulse.patch
new file mode 100644
index 0000000000..48f3847e92
--- /dev/null
+++ b/testing/telegram-desktop/no-pulse.patch
@@ -0,0 +1,36 @@
--- a/Telegram/ThirdParty/libtgvoip/config.h.in
+++ b/Telegram/ThirdParty/libtgvoip/config.h.in
@@ -197,7 +197,7 @@
 #undef WITHOUT_ALSA
 
 /* Define to disable PulseAudio support */
-#undef WITHOUT_PULSE
+#define WITHOUT_PULSE
 
 /* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
    <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
--- a/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
+++ b/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
@@ -97,12 +97,6 @@
           '<(tgvoip_src_loc)/os/linux/AudioInputALSA.h',
           '<(tgvoip_src_loc)/os/linux/AudioOutputALSA.cpp',
           '<(tgvoip_src_loc)/os/linux/AudioOutputALSA.h',
-          '<(tgvoip_src_loc)/os/linux/AudioOutputPulse.cpp',
-          '<(tgvoip_src_loc)/os/linux/AudioOutputPulse.h',
-          '<(tgvoip_src_loc)/os/linux/AudioInputPulse.cpp',
-          '<(tgvoip_src_loc)/os/linux/AudioInputPulse.h',
-          '<(tgvoip_src_loc)/os/linux/AudioPulse.cpp',
-          '<(tgvoip_src_loc)/os/linux/AudioPulse.h',
 
           # POSIX
           '<(tgvoip_src_loc)/os/posix/NetworkSocketPosix.cpp',
--- a/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
+++ b/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
@@ -9,6 +9,7 @@
         'defines': [
           'WEBRTC_APM_DEBUG_DUMP=0',
           'TGVOIP_USE_DESKTOP_DSP',
+          'WITHOUT_PULSE',
         ],
         'variables': {
           'tgvoip_src_loc': '.',
diff --git a/testing/telegram-desktop/tdesktop.patch b/testing/telegram-desktop/tdesktop.patch
new file mode 100644
index 0000000000..51ac3d15f5
--- /dev/null
+++ b/testing/telegram-desktop/tdesktop.patch
@@ -0,0 +1,594 @@
--- a/Telegram/Resources/qrc/telegram_linux.qrc
+++ b/Telegram/Resources/qrc/telegram_linux.qrc
@@ -1,5 +1,4 @@
 <RCC>
   <qresource prefix="/qt">
-    <file alias="etc/qt.conf">../etc/qt_linux.conf</file>
   </qresource>
 </RCC>
--- a/Telegram/SourceFiles/core/launcher.cpp
+++ b/Telegram/SourceFiles/core/launcher.cpp
@@ -39,9 +39,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();
 }
@@ -59,6 +60,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));
--- a/Telegram/SourceFiles/platform/linux/linux_libs.h
+++ b/Telegram/SourceFiles/platform/linux/linux_libs.h
@@ -17,7 +17,7 @@ extern "C" {
 } // extern "C"
 
 #ifndef TDESKTOP_DISABLE_UNITY_INTEGRATION
-#include <unity/unity/unity.h>
+typedef void UnityLauncherEntry;
 #endif // !TDESKTOP_DISABLE_UNITY_INTEGRATION
 #endif // !TDESKTOP_DISABLE_GTK_INTEGRATION
 
--- /dev/null
+++ b/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;
+}
--- a/Telegram/SourceFiles/qt_static_plugins.cpp
+++ b/Telegram/SourceFiles/qt_static_plugins.cpp
@@ -15,13 +15,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
--- a/Telegram/SourceFiles/ui/text/text.cpp
+++ b/Telegram/SourceFiles/ui/text/text.cpp
@@ -1750,11 +1750,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();
--- a/Telegram/SourceFiles/ui/text/text_block.cpp
+++ b/Telegram/SourceFiles/ui/text/text_block.cpp
@@ -332,6 +332,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");
 	}
--- a/Telegram/SourceFiles/ui/twidget.cpp
+++ b/Telegram/SourceFiles/ui/twidget.cpp
@@ -233,9 +233,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);
--- a/Telegram/gyp/PrecompiledHeader.cmake
+++ b/Telegram/gyp/PrecompiledHeader.cmake
@@ -114,7 +114,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}" ${_compiler_FLAGS} "$(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)")
@@ -125,7 +125,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}" ${_compiler_FLAGS} "$(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 header ${_name} for ${_target} (C++)")
--- a/Telegram/gyp/Telegram.gyp
+++ b/Telegram/gyp/Telegram.gyp
@@ -12,7 +12,7 @@
     'target_name': 'Telegram',
     'variables': {
       'variables': {
-        'libs_loc': '../../../Libraries',
+        'libs_loc': '../../Libraries',
       },
       'libs_loc': '<(libs_loc)',
       'src_loc': '../SourceFiles',
@@ -75,7 +75,6 @@
       'codegen.gyp:codegen_numbers',
       'codegen.gyp:codegen_style',
       'tests/tests.gyp:tests',
-      'utils.gyp:Updater',
       '../ThirdParty/libtgvoip/libtgvoip.gyp:libtgvoip',
       'crl.gyp:crl',
       'lib_base.gyp:lib_base',
@@ -84,7 +83,6 @@
     ],
 
     'defines': [
-      'AL_LIBTYPE_STATIC',
       'AL_ALEXT_PROTOTYPES',
       'TGVOIP_USE_CXX11_LIB',
       'XXH_INLINE_ALL',
@@ -94,16 +92,9 @@
     'include_dirs': [
       '<(src_loc)',
       '<(SHARED_INTERMEDIATE_DIR)',
-      '<(libs_loc)/breakpad/src',
-      '<(libs_loc)/lzma/C',
-      '<(libs_loc)/zlib',
-      '<(libs_loc)/ffmpeg',
-      '<(libs_loc)/openal-soft/include',
-      '<(libs_loc)/opus/include',
       '<(libs_loc)/range-v3/include',
-      '<(minizip_loc)',
-      '<(sp_media_key_tap_loc)',
       '<(emoji_suggestions_loc)',
+      '/usr/include/minizip',
       '<(submodules_loc)/GSL/include',
       '<(submodules_loc)/variant/include',
       '<(submodules_loc)/crl/src',
--- a/Telegram/gyp/lib_base.gyp
+++ b/Telegram/gyp/lib_base.gyp
@@ -23,7 +23,7 @@
     'variables': {
       'src_loc': '../SourceFiles',
       'res_loc': '../Resources',
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'official_build_target%': '',
       'submodules_loc': '../ThirdParty',
       'pch_source': '<(src_loc)/base/base_pch.cpp',
--- a/Telegram/gyp/lib_export.gyp
+++ b/Telegram/gyp/lib_export.gyp
@@ -22,7 +22,7 @@
     'variables': {
       'src_loc': '../SourceFiles',
       'res_loc': '../Resources',
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'official_build_target%': '',
       'submodules_loc': '../ThirdParty',
       'pch_source': '<(src_loc)/export/export_pch.cpp',
--- a/Telegram/gyp/lib_storage.gyp
+++ b/Telegram/gyp/lib_storage.gyp
@@ -23,7 +23,7 @@
     'variables': {
       'src_loc': '../SourceFiles',
       'res_loc': '../Resources',
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'official_build_target%': '',
       'submodules_loc': '../ThirdParty',
       'pch_source': '<(src_loc)/storage/storage_pch.cpp',
--- a/Telegram/gyp/qt.gypi
+++ b/Telegram/gyp/qt.gypi
@@ -14,25 +14,21 @@
               [ 'build_macold', {
                 'qt_version%': '5.3.2',
               }, {
-                'qt_version%': '5.6.2',
+                'qt_version%': '<!(echo /usr/include/QtCore/*/ | grep -Po "\d+\.\d+\.\d+")',
               }]
             ],
           },
           'qt_libs': [
-            'qwebp',
-            'Qt5PrintSupport',
-            'Qt5PlatformSupport',
             'Qt5Network',
             'Qt5Widgets',
             'Qt5Gui',
-            'qtharfbuzzng',
           ],
           'qt_version%': '<(qt_version)',
           'conditions': [
             [ '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/qt5',
             }]
           ]
         },
@@ -72,32 +68,13 @@
             ],
           }],
           [ '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',
-              'SM',
-              'ICE',
-              'fontconfig',
-              'expat',
-              'freetype',
-              'z',
-              'xcb-shm',
-              'xcb-xfixes',
-              'xcb-render',
-              'xcb-static',
             ],
           }],
         ],
@@ -127,11 +104,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%': '/usr/local/ssl/lib/libssl.a',
-    'linux_lib_crypto%': '/usr/local/ssl/lib/libcrypto.a',
-    'linux_lib_icu%': 'libicutu.a libicui18n.a libicuuc.a libicudata.a',
   },
 
   'configurations': {
@@ -180,14 +152,14 @@
   },
 
   'include_dirs': [
-    '<(qt_loc)/include',
-    '<(qt_loc)/include/QtCore',
-    '<(qt_loc)/include/QtGui',
-    '<(qt_loc)/include/QtDBus',
-    '<(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',
+    '/usr/include/QtCore',
+    '/usr/include/QtGui',
+    '/usr/include/QtDBus',
+    '/usr/include/QtCore/<(qt_version)',
+    '/usr/include/QtGui/<(qt_version)',
+    '/usr/include/QtCore/<(qt_version)/QtCore',
+    '/usr/include/QtGui/<(qt_version)/QtGui',
   ],
   'library_dirs': [
     '<(qt_loc)/lib',
@@ -204,25 +176,14 @@
   ],
   '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',
-        '<(linux_path_xkbcommon)/lib/libxkbcommon.a',
         '<@(qt_libs_release)',
-        '<(linux_lib_ssl)',
-        '<(linux_lib_crypto)',
-        '<!@(python -c "for s in \'<(linux_lib_icu)\'.split(\' \'): print(s)")',
-        '-lxcb',
+        '-lcrypto',
         '-lX11',
-        '-lX11-xcb',
-        '-ldbus-1',
         '-ldl',
-        '-lgthread-2.0',
         '-lglib-2.0',
         '-lpthread',
       ],
@@ -230,7 +191,6 @@
         '<(qt_loc)/mkspecs/linux-g++',
       ],
       'ldflags': [
-        '-static-libstdc++',
         '-pthread',
         '-rdynamic',
       ],
--- a/Telegram/gyp/settings_linux.gypi
+++ b/Telegram/gyp/settings_linux.gypi
@@ -11,7 +11,6 @@
         'linux_common_flags': [
           '-pipe',
           '-Wall',
-          '-Werror',
           '-W',
           '-fPIC',
           '-Wno-unused-variable',
@@ -60,7 +59,6 @@
       ],
       'defines': [
         '_REENTRANT',
-        'QT_STATICPLUGIN',
         'QT_PLUGIN',
       ],
       'cflags_c': [
--- a/Telegram/gyp/telegram_linux.gypi
+++ b/Telegram/gyp/telegram_linux.gypi
@@ -23,18 +23,20 @@
       'linux_path_va%': '/usr/local',
       'linux_path_vdpau%': '/usr/local',
       'linux_path_breakpad%': '/usr/local',
-      'linux_path_opus_include%': '<(libs_loc)/opus/include',
+      'linux_path_opus_include%': '/usr/include/opus',
       'linux_path_range%': '/usr/local',
     },
     'include_dirs': [
+      '/usr/include/openssl',
       '/usr/local/include',
       '<(linux_path_ffmpeg)/include',
       '<(linux_path_openal)/include',
       '<(linux_path_breakpad)/include/breakpad',
       '<(linux_path_opus_include)',
-      '<(linux_path_range)/include',
+      '<(libs_loc)/range-v3/include',
     ],
     'library_dirs': [
+      '/usr/lib/openssl',
       '/usr/local/lib',
       '<(linux_path_ffmpeg)/lib',
       '<(linux_path_openal)/lib',
@@ -43,25 +45,16 @@
       '<(linux_path_breakpad)/lib',
     ],
     'libraries': [
-      'breakpad_client',
-      'composeplatforminputcontextplugin',
-      'ibusplatforminputcontextplugin',
-      'fcitxplatforminputcontextplugin',
-      'himeplatforminputcontextplugin',
-      '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',
+      'openal',
+      'avformat',
+      'avcodec',
+      'swresample',
+      'swscale',
+      'avutil',
+      'minizip',
+      'opus',
+      'z',
+      'lzma',
 #      '<!(pkg-config 2> /dev/null --libs <@(pkgconfig_libs))',
     ],
     'cflags_cc': [
@@ -69,9 +62,6 @@
       '-Wno-maybe-uninitialized',
     ],
     'ldflags': [
-      '-Wl,-wrap,aligned_alloc',
-      '-Wl,-wrap,secure_getenv',
-      '-Wl,-wrap,clock_gettime',
       '-Wl,--no-as-needed,-lrt',
     ],
     'configurations': {
@@ -91,15 +81,10 @@
     },
     'conditions': [
       [ '"<!(uname -p)" != "x86_64"', {
-        'ldflags': [
-          '-Wl,-wrap,__divmoddi4',
-        ],
       }], ['not_need_gtk!="True"', {
         'cflags_cc': [
-          '<!(pkg-config 2> /dev/null --cflags appindicator-0.1)',
-          '<!(pkg-config 2> /dev/null --cflags gtk+-2.0)',
-          '<!(pkg-config 2> /dev/null --cflags glib-2.0)',
-          '<!(pkg-config 2> /dev/null --cflags dee-1.0)',
+          '<!(pkg-config 2> /dev/null --cflags appindicator3-0.1)',
+          '<!(pkg-config 2> /dev/null --cflags gtk+-3.0)',
         ],
       }]
     ],
--- a/Telegram/gyp/telegram_sources.txt
+++ b/Telegram/gyp/telegram_sources.txt
@@ -761,14 +761,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: win
 <(res_loc)/winrc/Telegram.rc
--- a/Telegram/gyp/tests/tests.gyp
+++ b/Telegram/gyp/tests/tests.gyp
@@ -9,7 +9,7 @@
     '../common.gypi',
   ],
   'variables': {
-    'libs_loc': '../../../../Libraries',
+    'libs_loc': '../../../Libraries',
     'src_loc': '../../SourceFiles',
     'submodules_loc': '../../ThirdParty',
     'mac_target': '10.10',
--- a/Telegram/gyp/utils.gyp
+++ b/Telegram/gyp/utils.gyp
@@ -11,7 +11,7 @@
   'targets': [{
     'target_name': 'Updater',
     'variables': {
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'src_loc': '../SourceFiles',
       'res_loc': '../Resources',
     },
@@ -57,7 +57,7 @@
   }, {
     'target_name': 'Packer',
     'variables': {
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'src_loc': '../SourceFiles',
       'mac_target': '10.10',
     },
diff --git a/testing/telegram-desktop/xdg.patch b/testing/telegram-desktop/xdg.patch
new file mode 100644
index 0000000000..e26bda0bc7
--- /dev/null
+++ b/testing/telegram-desktop/xdg.patch
@@ -0,0 +1,30 @@
--- a/lib/xdg/telegramdesktop.desktop
+++ b/lib/xdg/telegramdesktop.desktop
@@ -1,6 +1,8 @@
 [Desktop Entry]
 Version=1.0
 Name=Telegram Desktop
+GenericName=Telegram Desktop
+Keywords=IM;Chat;
 Comment=Official desktop version of Telegram messaging app
 Exec=telegram-desktop -- %u
 Icon=telegram
--- a/lib/xdg/telegramdesktop.appdata.xml
+++ b/lib/xdg/telegramdesktop.appdata.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component type="desktop">
-    <id>org.telegram.desktop</id>
+    <id>telegram-desktop.desktop</id>
     <metadata_license>CC0-1.0</metadata_license>
     <project_license>GPL-3.0</project_license>
     <name>Telegram Desktop</name>
--- a/lib/xdg/tg.protocol
+++ b/lib/xdg/tg.protocol
@@ -1,5 +1,5 @@
 [Protocol]
-exec=/usr/bin/telegram-desktop -- %u
+exec=telegram-desktop -- %u
 protocol=tg
 input=none
 output=none
-- 
2.19.2



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---

[alpine-aports] [PATCH v2] testing/telegram-desktop: new aport

Details
Message ID
<20181223215227.29723-1-raschi.alex@gmail.com>
In-Reply-To
<20181202153127.30412-1-raschi.alex@gmail.com> (view parent)
Sender timestamp
1545601947
DKIM signature
missing
Download raw message
Patch: +920 -0
https://desktop.telegram.org/
Telegram Desktop messaging app
---
Changes v1 -> v2:
 - update to 1.5.3

 testing/telegram-desktop/APKBUILD             | 152 +++++
 testing/telegram-desktop/fix-gcc.patch        |  21 +
 testing/telegram-desktop/libtgvoip.patch      |  16 +
 testing/telegram-desktop/musl.patch           |  10 +
 testing/telegram-desktop/no-gtk2.patch        |  27 +
 testing/telegram-desktop/no-pulse.patch       |  34 +
 .../telegram-desktop/system-wide-fonts.patch  |  34 +
 testing/telegram-desktop/tdesktop.patch       | 596 ++++++++++++++++++
 testing/telegram-desktop/xdg.patch            |  30 +
 9 files changed, 920 insertions(+)
 create mode 100644 testing/telegram-desktop/APKBUILD
 create mode 100644 testing/telegram-desktop/fix-gcc.patch
 create mode 100644 testing/telegram-desktop/libtgvoip.patch
 create mode 100644 testing/telegram-desktop/musl.patch
 create mode 100644 testing/telegram-desktop/no-gtk2.patch
 create mode 100644 testing/telegram-desktop/no-pulse.patch
 create mode 100644 testing/telegram-desktop/system-wide-fonts.patch
 create mode 100644 testing/telegram-desktop/tdesktop.patch
 create mode 100644 testing/telegram-desktop/xdg.patch

diff --git a/testing/telegram-desktop/APKBUILD b/testing/telegram-desktop/APKBUILD
new file mode 100644
index 0000000000..d48c7d7e5d
--- /dev/null
+++ b/testing/telegram-desktop/APKBUILD
@@ -0,0 +1,152 @@
# Maintainer: Alex Raschi <raschi.alex@gmail.com>
pkgname=telegram-desktop
pkgver=1.5.3
_pkgurl="https://github.com/telegramdesktop/tdesktop.git"
# https://github.com/telegramdesktop/tdesktop/blob/v$pkgver/docs/building-cmake.md
_gypver=702ac58e477214c635d9b541932e75a95d349352
_gypurl="https://chromium.googlesource.com/external/gyp"
_rangever=0.4.0
_rangeurl="https://github.com/ericniebler/range-v3.git"
pkgrel=0
pkgdesc="Telegram Desktop messaging app"
url="https://desktop.telegram.org/"
arch="all"
license="GPL-3.0-or-later WITH OpenSSL"
depends="qt5-qtimageformats"
makedepends="cmake
	zlib-dev
	opus-dev
	libva-dev
	libvdpau-dev
	ffmpeg-dev
	portaudio-dev
	openal-soft-dev
	openssl-dev
	libxkbcommon-dev
	qt5-qtbase-dev
	libexif-dev
	xz-dev
	minizip-dev
	alsa-lib-dev
	libexecinfo-dev
	python2
	grep"
source="http://dev.alpinelinux.org/archive/$pkgname/$pkgname-$pkgver.tar.gz
	libtgvoip.patch
	musl.patch
	no-gtk2.patch
	no-pulse.patch
	tdesktop.patch
	xdg.patch
	fix-gcc.patch
	system-wide-fonts.patch"
builddir="$srcdir/$pkgname-$pkgver"
_reldir="$builddir/out/Release"

snapshot() {
	local libs="$builddir"/Libraries

	mkdir -p "$srcdir"
	cd "$srcdir"
	git clone --recurse-submodules "$_pkgurl" -b "v$pkgver" "$builddir"

	# clone also gyp and range-v3
	mkdir "$libs"
	cd "$libs"
	git clone --recurse-submodules "$_gypurl" -b "master" gyp
	git clone --recurse-submodules "$_rangeurl" -b "$_rangever" range-v3
	cd gyp
	# chromium.googlesource.com doesn't support cloning commits
	git reset --hard "$_gypver"

	cd "$srcdir"
	find "$builddir" -name .git -exec rm -rf {} +
	# git archive doesn't support submodules
	tar czf "$builddir".tar.gz "${builddir##*/}"
	scp "$builddir".tar.gz dev.alpinelinux.org:/archive/$pkgname/
}

prepare() {
	cd "$builddir/Telegram/ThirdParty"
	rm -rf minizip # we have this system-wide

	cd "$builddir/Libraries"
	patch -p1 -i "$builddir"/Telegram/Patches/gyp.diff -d "gyp"

	default_prepare
}

build() {
	cd "$builddir/Telegram/gyp"
	export CPPFLAGS="$CPPFLAGS -Winvalid-pch"
	export CXXFLAGS="$CXXFLAGS -Winvalid-pch"

	# https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/telegram-desktop#n80
	../../Libraries/gyp/gyp \
		-Dapi_id=17349 \
		-Dapi_hash=344583e45741c457fe1862106095a5eb \
		-Dbuild_defines="TDESKTOP_DISABLE_CRASH_REPORTS,TDESKTOP_DISABLE_AUTOUPDATE,TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME,TDESKTOP_DISABLE_GTK_INTEGRATION,TDESKTOP_DISABLE_DESKTOP_FILE_GENERATION" \
		-Gconfig=Release \
		--depth=. \
		--generator-output=../.. \
		-Goutput_dir=out \
		Telegram.gyp \
		--format=cmake

	cd "$_reldir"
	printf '%s\n' 'set_target_properties(Telegram PROPERTIES SKIP_BUILD_RPATH TRUE)' >> CMakeLists.txt

	if [ "$CBUILD" != "$CHOST" ]; then
		CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
	fi
	cmake \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DBUILD_SHARED_LIBS=True \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
		-DCMAKE_C_FLAGS="$CFLAGS" \
		-DCMAKE_ASM_COMPILER=as \
		${CMAKE_CROSSOPTS}
	make
}

check() {
	local test

	cd "$_reldir"
	for test in tests_*; do
		./"$test"
	done
}

package() {
	local size

	cd "$_reldir"
	mkdir -p "$pkgdir"/usr/bin
	mv Telegram "$pkgdir"/usr/bin/telegram-desktop

	cd "$builddir"
	mkdir -p "$pkgdir"/usr/share/applications
	mv lib/xdg/telegramdesktop.desktop "$pkgdir"/usr/share/applications/telegram-desktop.desktop

	mkdir -p "$pkgdir"/usr/share/kservices5
	mv lib/xdg/tg.protocol "$pkgdir"/usr/share/kservices5

	cd Telegram/Resources/art
	mkdir -p "$pkgdir"/usr/share/icons/hicolor
	for size in 16 32 48 64 128 256 512; do
		mkdir -p "$pkgdir"/usr/share/icons/hicolor/"$size"x"$size"/apps
		mv icon"$size".png "$pkgdir"/usr/share/icons/hicolor/"$size"x"$size"/apps/telegram.png
	done
}

sha512sums="54cf9f6750d498367189486b3d30b3d0d468c5117b05fc293cfd0fd7d325a755ecd5cc5648352d31f5b1547008d6c615b7982d7944e96a58e9af388aa50a4c10  telegram-desktop-1.5.3.tar.gz
9ee0dbc4b04454a2f440daa381df765616962e8e8c4330e96851dbc5f2a283da687282d666d2667aac67c3467d2079a94e4fef358dbb18eb24a064d55adc7a40  libtgvoip.patch
fc672d8168f6b2807e596570bc57f3b89296891b5d62b8e12b38193ed4919e4eb17efd72691c4086fb0ff4383de54695a9faf9874a0727a0980ef35e5ca4bee7  musl.patch
cb01655dd097b68e89b15e6e4b1f6da10c52e8bec681eeef9807ca376283b10cb3da34acc976c790f3c8dea05acbef1ba1967612920a2e4acb3b9da79e251a0d  no-gtk2.patch
9df70f5057fd9938cab87529693ad9617da0fdbb9084ff57395cd540343a0dcc1ecfba4f868b0043b252fe1aca33d0d214fb07931860296e66fbf11825f95fb9  no-pulse.patch
3cbfe1cb1bf9eb18e79c49ac67560e3290b70a7ceb1e397f4623bbfc39227468b3ab489a5813d371de31438b45751505bf3af7424f92e0e8905e23ab0d2b565d  tdesktop.patch
8de8c0508177da5fcac4f2dcee4d8baef4b99f74f1dca296567bc3689a6bd17a47c1c945df504abc8811b82a687010d0709503c7c32e47d2ebb1cf0e374c80c5  xdg.patch
9d0fc263c9e446f3e8bdae65e33c24d4f5c39ef184134d1adaaed0a3a5fea11bc5137c25b27f195d7657705c51c042ea0f6951e8cf3213dc8b01d99d1a46966d  fix-gcc.patch
ce6be003220267bac5483caf8302b492e1581892bc36d35a61236ebf9f9d766b8bd2159557a1c36256aa85f461797a38bfaae57b12da7a72101b21c0b17ed653  system-wide-fonts.patch"
diff --git a/testing/telegram-desktop/fix-gcc.patch b/testing/telegram-desktop/fix-gcc.patch
new file mode 100644
index 0000000000..8f025b8a03
--- /dev/null
+++ b/testing/telegram-desktop/fix-gcc.patch
@@ -0,0 +1,21 @@
From 4e692e2c1e10538d7fd3e7c0e0a66e0ba474fe76 Mon Sep 17 00:00:00 2001
From: John Preston <johnprestonmail@gmail.com>
Date: Sun, 23 Dec 2018 01:31:12 +0400
Subject: [PATCH] Version 1.5.3: Fix build for GCC.

---
 Telegram/SourceFiles/window/window_peer_menu.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Telegram/SourceFiles/window/window_peer_menu.cpp b/Telegram/SourceFiles/window/window_peer_menu.cpp
index c6425e763..f8729948a 100644
--- a/Telegram/SourceFiles/window/window_peer_menu.cpp
+++ b/Telegram/SourceFiles/window/window_peer_menu.cpp
@@ -33,6 +33,7 @@ For license and copyright information please follow this link:
 #include "info/profile/info_profile_values.h"
 #include "data/data_session.h"
 #include "data/data_feed.h"
+#include "data/data_poll.h"
 #include "dialogs/dialogs_key.h"
 
 namespace Window {
diff --git a/testing/telegram-desktop/libtgvoip.patch b/testing/telegram-desktop/libtgvoip.patch
new file mode 100644
index 0000000000..b41166198d
--- /dev/null
+++ b/testing/telegram-desktop/libtgvoip.patch
@@ -0,0 +1,16 @@
--- a/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
+++ b/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
@@ -14,11 +14,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',
         ],
         'direct_dependent_settings': {
           'include_dirs': [
diff --git a/testing/telegram-desktop/musl.patch b/testing/telegram-desktop/musl.patch
new file mode 100644
index 0000000000..70e7415e1e
--- /dev/null
+++ b/testing/telegram-desktop/musl.patch
@@ -0,0 +1,10 @@
--- a/Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp
+++ b/Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp
@@ -6,6 +6,7 @@
 
 #include "AudioPulse.h"
 #include <dlfcn.h>
+#include <libgen.h>
 #include "../../logging.h"
 
 #define DECLARE_DL_FUNCTION(name) typeof(name)* AudioPulse::_import_##name=NULL
diff --git a/testing/telegram-desktop/no-gtk2.patch b/testing/telegram-desktop/no-gtk2.patch
new file mode 100644
index 0000000000..839a49bea5
--- /dev/null
+++ b/testing/telegram-desktop/no-gtk2.patch
@@ -0,0 +1,27 @@
--- a/Telegram/SourceFiles/platform/linux/linux_libs.cpp
+++ b/Telegram/SourceFiles/platform/linux/linux_libs.cpp
@@ -240,24 +240,12 @@ void start() {
 			indicatorLoaded = setupAppIndicator(lib_indicator);
 		}
 	}
-	if (!gtkLoaded || !indicatorLoaded) {
-		if (loadLibrary(lib_indicator, "ayatana-appindicator", 1) || 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/testing/telegram-desktop/no-pulse.patch b/testing/telegram-desktop/no-pulse.patch
new file mode 100644
index 0000000000..39c965490f
--- /dev/null
+++ b/testing/telegram-desktop/no-pulse.patch
@@ -0,0 +1,34 @@
--- a/Telegram/ThirdParty/libtgvoip/config.h.in
+++ b/Telegram/ThirdParty/libtgvoip/config.h.in
@@ -197,7 +197,7 @@
 #undef WITHOUT_ALSA
 
 /* Define to disable PulseAudio support */
-#undef WITHOUT_PULSE
+#define WITHOUT_PULSE
 
 /* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
    <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
--- a/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
+++ b/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
@@ -10,6 +10,7 @@
           'WEBRTC_APM_DEBUG_DUMP=0',
           'TGVOIP_USE_DESKTOP_DSP',
           'WEBRTC_NS_FLOAT',
+          'WITHOUT_PULSE',
         ],
         'variables': {
           'tgvoip_src_loc': '.',
@@ -105,12 +106,6 @@
           '<(tgvoip_src_loc)/os/linux/AudioInputALSA.h',
           '<(tgvoip_src_loc)/os/linux/AudioOutputALSA.cpp',
           '<(tgvoip_src_loc)/os/linux/AudioOutputALSA.h',
-          '<(tgvoip_src_loc)/os/linux/AudioOutputPulse.cpp',
-          '<(tgvoip_src_loc)/os/linux/AudioOutputPulse.h',
-          '<(tgvoip_src_loc)/os/linux/AudioInputPulse.cpp',
-          '<(tgvoip_src_loc)/os/linux/AudioInputPulse.h',
-          '<(tgvoip_src_loc)/os/linux/AudioPulse.cpp',
-          '<(tgvoip_src_loc)/os/linux/AudioPulse.h',
 
           # POSIX
           '<(tgvoip_src_loc)/os/posix/NetworkSocketPosix.cpp',
diff --git a/testing/telegram-desktop/system-wide-fonts.patch b/testing/telegram-desktop/system-wide-fonts.patch
new file mode 100644
index 0000000000..c89222986b
--- /dev/null
+++ b/testing/telegram-desktop/system-wide-fonts.patch
@@ -0,0 +1,34 @@
Description: Remove links to packaged Open Sans font
 This makes Telegram Desktop use system-wide fonts.
 Warnings about non-existent fonts in resources are also disabled.
Author: Nicholas Guriev <guriev-ns@ya.ru>
Bug-Debian: https://bugs.debian.org/890341
Last-Update: Sat, 31 Mar 2018 14:36:39 +0300

--- a/Telegram/Resources/qrc/telegram.qrc
+++ b/Telegram/Resources/qrc/telegram.qrc
@@ -42,9 +42,6 @@
     <file alias="js/script.js">../export_html/js/script.js</file>
   </qresource>
   <qresource prefix="/gui">
-    <file alias="fonts/OpenSans-Regular.ttf">../fonts/OpenSans-Regular.ttf</file>
-    <file alias="fonts/OpenSans-Bold.ttf">../fonts/OpenSans-Bold.ttf</file>
-    <file alias="fonts/OpenSans-Semibold.ttf">../fonts/OpenSans-Semibold.ttf</file>
     <file alias="art/bg.jpg">../art/bg.jpg</file>
     <file alias="art/bg_initial.jpg">../art/bg_initial.jpg</file>
     <file alias="art/logo_256.png">../art/logo_256.png</file>
--- a/Telegram/SourceFiles/ui/twidget.cpp
+++ b/Telegram/SourceFiles/ui/twidget.cpp
@@ -70,9 +70,9 @@ void Start() {
 	}
 	Started = true;
 
-	auto regular = LoadCustomFont(qsl(":/gui/fonts/OpenSans-Regular.ttf"), qsl("Open Sans"));
-	auto bold = LoadCustomFont(qsl(":/gui/fonts/OpenSans-Bold.ttf"), qsl("Open Sans"), style::internal::FontBold);
-	auto semibold = LoadCustomFont(qsl(":/gui/fonts/OpenSans-Semibold.ttf"), qsl("Open Sans Semibold"));
+	auto regular = ValidateFont(qsl("Open Sans"));
+	auto bold = ValidateFont(qsl("Open Sans"), style::internal::FontBold);
+	auto semibold = ValidateFont(qsl("Open Sans Semibold"));
 
 #ifdef Q_OS_WIN
 	// Attempt to workaround a strange font bug with Open Sans Semibold not loading.
diff --git a/testing/telegram-desktop/tdesktop.patch b/testing/telegram-desktop/tdesktop.patch
new file mode 100644
index 0000000000..1fc6fcdf0c
--- /dev/null
+++ b/testing/telegram-desktop/tdesktop.patch
@@ -0,0 +1,596 @@
--- a/Telegram/Resources/qrc/telegram_linux.qrc
+++ b/Telegram/Resources/qrc/telegram_linux.qrc
@@ -1,6 +1,5 @@
 <RCC>
   <qresource prefix="/qt">
-    <file alias="etc/qt.conf">../etc/qt_linux.conf</file>
   </qresource>
   <qresource prefix="/fc">
     <file alias="fc-custom.conf">../fc-custom.conf</file>
--- a/Telegram/SourceFiles/core/launcher.cpp
+++ b/Telegram/SourceFiles/core/launcher.cpp
@@ -39,9 +39,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();
 }
@@ -59,6 +60,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));
--- a/Telegram/SourceFiles/platform/linux/linux_libs.h
+++ b/Telegram/SourceFiles/platform/linux/linux_libs.h
@@ -21,7 +21,7 @@ extern "C" {
 } // extern "C"
 
 #ifndef TDESKTOP_DISABLE_UNITY_INTEGRATION
-#include <unity/unity/unity.h>
+typedef void UnityLauncherEntry;
 #endif // !TDESKTOP_DISABLE_UNITY_INTEGRATION
 #endif // !TDESKTOP_DISABLE_GTK_INTEGRATION
 
--- /dev/null
+++ b/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;
+}
--- a/Telegram/SourceFiles/qt_static_plugins.cpp
+++ b/Telegram/SourceFiles/qt_static_plugins.cpp
@@ -15,14 +15,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)
-Q_IMPORT_PLUGIN(NimfInputContextPlugin)
 #endif // Q_OS_WIN | Q_OS_MAC | Q_OS_LINUX
--- a/Telegram/SourceFiles/ui/text/text.cpp
+++ b/Telegram/SourceFiles/ui/text/text.cpp
@@ -1760,11 +1760,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();
--- a/Telegram/SourceFiles/ui/text/text_block.cpp
+++ b/Telegram/SourceFiles/ui/text/text_block.cpp
@@ -332,6 +332,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");
 	}
--- a/Telegram/SourceFiles/ui/twidget.cpp
+++ b/Telegram/SourceFiles/ui/twidget.cpp
@@ -250,9 +250,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);
--- a/Telegram/gyp/PrecompiledHeader.cmake
+++ b/Telegram/gyp/PrecompiledHeader.cmake
@@ -114,7 +114,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}" ${_compiler_FLAGS} "$(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)")
@@ -125,7 +125,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}" ${_compiler_FLAGS} "$(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 header ${_name} for ${_target} (C++)")
--- a/Telegram/gyp/Telegram.gyp
+++ b/Telegram/gyp/Telegram.gyp
@@ -12,7 +12,7 @@
     'target_name': 'Telegram',
     'variables': {
       'variables': {
-        'libs_loc': '../../../Libraries',
+        'libs_loc': '../../Libraries',
       },
       'libs_loc': '<(libs_loc)',
       'src_loc': '../SourceFiles',
@@ -75,7 +75,6 @@
       'codegen.gyp:codegen_numbers',
       'codegen.gyp:codegen_style',
       'tests/tests.gyp:tests',
-      'utils.gyp:Updater',
       '../ThirdParty/libtgvoip/libtgvoip.gyp:libtgvoip',
       'crl.gyp:crl',
       'lib_base.gyp:lib_base',
@@ -84,7 +83,6 @@
     ],
 
     'defines': [
-      'AL_LIBTYPE_STATIC',
       'AL_ALEXT_PROTOTYPES',
       'TGVOIP_USE_CXX11_LIB',
       'XXH_INLINE_ALL',
@@ -96,16 +94,9 @@
     'include_dirs': [
       '<(src_loc)',
       '<(SHARED_INTERMEDIATE_DIR)',
-      '<(libs_loc)/breakpad/src',
-      '<(libs_loc)/lzma/C',
-      '<(libs_loc)/zlib',
-      '<(libs_loc)/ffmpeg',
-      '<(libs_loc)/openal-soft/include',
-      '<(libs_loc)/opus/include',
       '<(libs_loc)/range-v3/include',
-      '<(minizip_loc)',
-      '<(sp_media_key_tap_loc)',
       '<(emoji_suggestions_loc)',
+      '/usr/include/minizip',
       '<(submodules_loc)/GSL/include',
       '<(submodules_loc)/variant/include',
       '<(submodules_loc)/crl/src',
--- a/Telegram/gyp/lib_base.gyp
+++ b/Telegram/gyp/lib_base.gyp
@@ -23,7 +23,7 @@
     'variables': {
       'src_loc': '../SourceFiles',
       'res_loc': '../Resources',
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'official_build_target%': '',
       'submodules_loc': '../ThirdParty',
       'pch_source': '<(src_loc)/base/base_pch.cpp',
--- a/Telegram/gyp/lib_export.gyp
+++ b/Telegram/gyp/lib_export.gyp
@@ -22,7 +22,7 @@
     'variables': {
       'src_loc': '../SourceFiles',
       'res_loc': '../Resources',
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'official_build_target%': '',
       'submodules_loc': '../ThirdParty',
       'pch_source': '<(src_loc)/export/export_pch.cpp',
--- a/Telegram/gyp/lib_storage.gyp
+++ b/Telegram/gyp/lib_storage.gyp
@@ -23,7 +23,7 @@
     'variables': {
       'src_loc': '../SourceFiles',
       'res_loc': '../Resources',
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'official_build_target%': '',
       'submodules_loc': '../ThirdParty',
       'pch_source': '<(src_loc)/storage/storage_pch.cpp',
--- a/Telegram/gyp/qt.gypi
+++ b/Telegram/gyp/qt.gypi
@@ -14,25 +14,21 @@
               [ 'build_macold', {
                 'qt_version%': '5.3.2',
               }, {
-                'qt_version%': '5.6.2',
+                'qt_version%': '<!(echo /usr/include/QtCore/*/ | grep -Po "\d+\.\d+\.\d+")',
               }]
             ],
           },
           'qt_libs': [
-            'qwebp',
-            'Qt5PrintSupport',
-            'Qt5PlatformSupport',
             'Qt5Network',
             'Qt5Widgets',
             'Qt5Gui',
-            'qtharfbuzzng',
           ],
           'qt_version%': '<(qt_version)',
           'conditions': [
             [ '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/qt5',
             }]
           ]
         },
@@ -72,32 +68,13 @@
             ],
           }],
           [ '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',
-              'SM',
-              'ICE',
-              'fontconfig',
-              'expat',
-              'freetype',
-              'z',
-              'xcb-shm',
-              'xcb-xfixes',
-              'xcb-render',
-              'xcb-static',
             ],
           }],
         ],
@@ -127,11 +104,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%': '/usr/local/ssl/lib/libssl.a',
-    'linux_lib_crypto%': '/usr/local/ssl/lib/libcrypto.a',
-    'linux_lib_icu%': 'libicutu.a libicui18n.a libicuuc.a libicudata.a',
   },
 
   'configurations': {
@@ -180,14 +152,14 @@
   },
 
   'include_dirs': [
-    '<(qt_loc)/include',
-    '<(qt_loc)/include/QtCore',
-    '<(qt_loc)/include/QtGui',
-    '<(qt_loc)/include/QtDBus',
-    '<(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',
+    '/usr/include/QtCore',
+    '/usr/include/QtGui',
+    '/usr/include/QtDBus',
+    '/usr/include/QtCore/<(qt_version)',
+    '/usr/include/QtGui/<(qt_version)',
+    '/usr/include/QtCore/<(qt_version)/QtCore',
+    '/usr/include/QtGui/<(qt_version)/QtGui',
   ],
   'library_dirs': [
     '<(qt_loc)/lib',
@@ -204,25 +176,14 @@
   ],
   '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',
-        '<(linux_path_xkbcommon)/lib/libxkbcommon.a',
         '<@(qt_libs_release)',
-        '<(linux_lib_ssl)',
-        '<(linux_lib_crypto)',
-        '<!@(python -c "for s in \'<(linux_lib_icu)\'.split(\' \'): print(s)")',
-        '-lxcb',
+        '-lcrypto',
         '-lX11',
-        '-lX11-xcb',
-        '-ldbus-1',
         '-ldl',
-        '-lgthread-2.0',
         '-lglib-2.0',
         '-lpthread',
       ],
@@ -230,7 +191,6 @@
         '<(qt_loc)/mkspecs/linux-g++',
       ],
       'ldflags': [
-        '-static-libstdc++',
         '-pthread',
         '-rdynamic',
       ],
--- a/Telegram/gyp/settings_linux.gypi
+++ b/Telegram/gyp/settings_linux.gypi
@@ -11,7 +11,6 @@
         'linux_common_flags': [
           '-pipe',
           '-Wall',
-          '-Werror',
           '-W',
           '-fPIC',
           '-Wno-unused-variable',
@@ -60,7 +59,6 @@
       ],
       'defines': [
         '_REENTRANT',
-        'QT_STATICPLUGIN',
         'QT_PLUGIN',
       ],
       'cflags_c': [
--- a/Telegram/gyp/telegram_linux.gypi
+++ b/Telegram/gyp/telegram_linux.gypi
@@ -23,18 +23,20 @@
       'linux_path_va%': '/usr/local',
       'linux_path_vdpau%': '/usr/local',
       'linux_path_breakpad%': '/usr/local',
-      'linux_path_opus_include%': '<(libs_loc)/opus/include',
+      'linux_path_opus_include%': '/usr/include/opus',
       'linux_path_range%': '/usr/local',
     },
     'include_dirs': [
+      '/usr/include/openssl',
       '/usr/local/include',
       '<(linux_path_ffmpeg)/include',
       '<(linux_path_openal)/include',
       '<(linux_path_breakpad)/include/breakpad',
       '<(linux_path_opus_include)',
-      '<(linux_path_range)/include',
+      '<(libs_loc)/range-v3/include',
     ],
     'library_dirs': [
+      '/usr/lib/openssl',
       '/usr/local/lib',
       '<(linux_path_ffmpeg)/lib',
       '<(linux_path_openal)/lib',
@@ -43,26 +45,16 @@
       '<(linux_path_breakpad)/lib',
     ],
     'libraries': [
-      'breakpad_client',
-      'composeplatforminputcontextplugin',
-      'ibusplatforminputcontextplugin',
-      'fcitxplatforminputcontextplugin',
-      'himeplatforminputcontextplugin',
-      'nimfplatforminputcontextplugin',
-      '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',
+      'openal',
+      'avformat',
+      'avcodec',
+      'swresample',
+      'swscale',
+      'avutil',
+      'minizip',
+      'opus',
+      'z',
+      'lzma',
 #      '<!(pkg-config 2> /dev/null --libs <@(pkgconfig_libs))',
     ],
     'cflags_cc': [
@@ -70,9 +62,6 @@
       '-Wno-maybe-uninitialized',
     ],
     'ldflags': [
-      '-Wl,-wrap,aligned_alloc',
-      '-Wl,-wrap,secure_getenv',
-      '-Wl,-wrap,clock_gettime',
       '-Wl,--no-as-needed,-lrt',
     ],
     'configurations': {
@@ -92,14 +81,10 @@
     },
     'conditions': [
       [ '"<!(uname -p)" != "x86_64"', {
-        'ldflags': [
-          '-Wl,-wrap,__divmoddi4',
-        ],
       }], ['not_need_gtk!="True"', {
         'cflags_cc': [
-          '<!(pkg-config 2> /dev/null --cflags gtk+-2.0)',
-          '<!(pkg-config 2> /dev/null --cflags glib-2.0)',
-          '<!(pkg-config 2> /dev/null --cflags dee-1.0)',
+          '<!(pkg-config 2> /dev/null --cflags appindicator3-0.1)',
+          '<!(pkg-config 2> /dev/null --cflags gtk+-3.0)',
         ],
       }], ['<!(pkg-config ayatana-appindicator3-0.1; echo $?) == 0', {
         'cflags_cc': [ '<!(pkg-config --cflags ayatana-appindicator3-0.1)' ],
--- a/Telegram/gyp/telegram_sources.txt
+++ b/Telegram/gyp/telegram_sources.txt
@@ -805,14 +805,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: win
 <(res_loc)/winrc/Telegram.rc
--- a/Telegram/gyp/tests/tests.gyp
+++ b/Telegram/gyp/tests/tests.gyp
@@ -9,7 +9,7 @@
     '../common.gypi',
   ],
   'variables': {
-    'libs_loc': '../../../../Libraries',
+    'libs_loc': '../../../Libraries',
     'src_loc': '../../SourceFiles',
     'submodules_loc': '../../ThirdParty',
     'mac_target': '10.10',
--- a/Telegram/gyp/utils.gyp
+++ b/Telegram/gyp/utils.gyp
@@ -11,7 +11,7 @@
   'targets': [{
     'target_name': 'Updater',
     'variables': {
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'src_loc': '../SourceFiles',
       'res_loc': '../Resources',
     },
@@ -57,7 +57,7 @@
   }, {
     'target_name': 'Packer',
     'variables': {
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'src_loc': '../SourceFiles',
       'mac_target': '10.10',
     },
diff --git a/testing/telegram-desktop/xdg.patch b/testing/telegram-desktop/xdg.patch
new file mode 100644
index 0000000000..e26bda0bc7
--- /dev/null
+++ b/testing/telegram-desktop/xdg.patch
@@ -0,0 +1,30 @@
--- a/lib/xdg/telegramdesktop.desktop
+++ b/lib/xdg/telegramdesktop.desktop
@@ -1,6 +1,8 @@
 [Desktop Entry]
 Version=1.0
 Name=Telegram Desktop
+GenericName=Telegram Desktop
+Keywords=IM;Chat;
 Comment=Official desktop version of Telegram messaging app
 Exec=telegram-desktop -- %u
 Icon=telegram
--- a/lib/xdg/telegramdesktop.appdata.xml
+++ b/lib/xdg/telegramdesktop.appdata.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component type="desktop">
-    <id>org.telegram.desktop</id>
+    <id>telegram-desktop.desktop</id>
     <metadata_license>CC0-1.0</metadata_license>
     <project_license>GPL-3.0</project_license>
     <name>Telegram Desktop</name>
--- a/lib/xdg/tg.protocol
+++ b/lib/xdg/tg.protocol
@@ -1,5 +1,5 @@
 [Protocol]
-exec=/usr/bin/telegram-desktop -- %u
+exec=telegram-desktop -- %u
 protocol=tg
 input=none
 output=none
-- 
2.20.1



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---

[alpine-aports] [PATCH v3] testing/telegram-desktop: new aport

Details
Message ID
<20190102115139.25968-1-raschi.alex@gmail.com>
In-Reply-To
<20181223215227.29723-1-raschi.alex@gmail.com> (view parent)
Sender timestamp
1546429899
DKIM signature
missing
Download raw message
Patch: +897 -0
https://desktop.telegram.org/
Telegram Desktop messaging app
---
Changes v2 -> v3:
 - update to 1.5.4
 testing/telegram-desktop/APKBUILD             | 150 +++++
 testing/telegram-desktop/libtgvoip.patch      |  16 +
 testing/telegram-desktop/musl.patch           |  10 +
 testing/telegram-desktop/no-gtk2.patch        |  27 +
 testing/telegram-desktop/no-pulse.patch       |  34 +
 .../telegram-desktop/system-wide-fonts.patch  |  34 +
 testing/telegram-desktop/tdesktop.patch       | 596 ++++++++++++++++++
 testing/telegram-desktop/xdg.patch            |  30 +
 8 files changed, 897 insertions(+)
 create mode 100644 testing/telegram-desktop/APKBUILD
 create mode 100644 testing/telegram-desktop/libtgvoip.patch
 create mode 100644 testing/telegram-desktop/musl.patch
 create mode 100644 testing/telegram-desktop/no-gtk2.patch
 create mode 100644 testing/telegram-desktop/no-pulse.patch
 create mode 100644 testing/telegram-desktop/system-wide-fonts.patch
 create mode 100644 testing/telegram-desktop/tdesktop.patch
 create mode 100644 testing/telegram-desktop/xdg.patch

diff --git a/testing/telegram-desktop/APKBUILD b/testing/telegram-desktop/APKBUILD
new file mode 100644
index 0000000000..22e14522ea
--- /dev/null
+++ b/testing/telegram-desktop/APKBUILD
@@ -0,0 +1,150 @@
# Maintainer: Alex Raschi <raschi.alex@gmail.com>
pkgname=telegram-desktop
pkgver=1.5.4
_pkgurl="https://github.com/telegramdesktop/tdesktop.git"
# https://github.com/telegramdesktop/tdesktop/blob/v$pkgver/docs/building-cmake.md
_gypver=702ac58e477214c635d9b541932e75a95d349352
_gypurl="https://chromium.googlesource.com/external/gyp"
_rangever=0.4.0
_rangeurl="https://github.com/ericniebler/range-v3.git"
pkgrel=0
pkgdesc="Telegram Desktop messaging app"
url="https://desktop.telegram.org/"
arch="all"
license="GPL-3.0-or-later WITH OpenSSL"
depends="qt5-qtimageformats"
makedepends="cmake
	zlib-dev
	opus-dev
	libva-dev
	libvdpau-dev
	ffmpeg-dev
	portaudio-dev
	openal-soft-dev
	openssl-dev
	libxkbcommon-dev
	qt5-qtbase-dev
	libexif-dev
	xz-dev
	minizip-dev
	alsa-lib-dev
	libexecinfo-dev
	python2
	grep"
source="http://dev.alpinelinux.org/archive/$pkgname/$pkgname-$pkgver.tar.gz
	libtgvoip.patch
	musl.patch
	no-gtk2.patch
	no-pulse.patch
	tdesktop.patch
	xdg.patch
	system-wide-fonts.patch"
builddir="$srcdir/$pkgname-$pkgver"
_reldir="$builddir/out/Release"

snapshot() {
	local libs="$builddir"/Libraries

	mkdir -p "$srcdir"
	cd "$srcdir"
	git clone --recurse-submodules "$_pkgurl" -b "v$pkgver" "$builddir"

	# clone also gyp and range-v3
	mkdir "$libs"
	cd "$libs"
	git clone --recurse-submodules "$_gypurl" -b "master" gyp
	git clone --recurse-submodules "$_rangeurl" -b "$_rangever" range-v3
	cd gyp
	# chromium.googlesource.com doesn't support cloning commits
	git reset --hard "$_gypver"

	cd "$srcdir"
	find "$builddir" -name .git -exec rm -rf {} +
	# git archive doesn't support submodules
	tar czf "$builddir".tar.gz "${builddir##*/}"
	scp "$builddir".tar.gz dev.alpinelinux.org:/archive/$pkgname/
}

prepare() {
	cd "$builddir/Telegram/ThirdParty"
	rm -rf minizip # we have this system-wide

	cd "$builddir/Libraries"
	patch -p1 -i "$builddir"/Telegram/Patches/gyp.diff -d "gyp"

	default_prepare
}

build() {
	cd "$builddir/Telegram/gyp"
	export CPPFLAGS="$CPPFLAGS -Winvalid-pch"
	export CXXFLAGS="$CXXFLAGS -Winvalid-pch"

	# https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/telegram-desktop#n80
	../../Libraries/gyp/gyp \
		-Dapi_id=17349 \
		-Dapi_hash=344583e45741c457fe1862106095a5eb \
		-Dbuild_defines="TDESKTOP_DISABLE_CRASH_REPORTS,TDESKTOP_DISABLE_AUTOUPDATE,TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME,TDESKTOP_DISABLE_GTK_INTEGRATION,TDESKTOP_DISABLE_DESKTOP_FILE_GENERATION" \
		-Gconfig=Release \
		--depth=. \
		--generator-output=../.. \
		-Goutput_dir=out \
		Telegram.gyp \
		--format=cmake

	cd "$_reldir"
	printf '%s\n' 'set_target_properties(Telegram PROPERTIES SKIP_BUILD_RPATH TRUE)' >> CMakeLists.txt

	if [ "$CBUILD" != "$CHOST" ]; then
		CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
	fi
	cmake \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DBUILD_SHARED_LIBS=True \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
		-DCMAKE_C_FLAGS="$CFLAGS" \
		-DCMAKE_ASM_COMPILER=as \
		${CMAKE_CROSSOPTS}
	make
}

check() {
	local test

	cd "$_reldir"
	for test in tests_*; do
		./"$test"
	done
}

package() {
	local size

	cd "$_reldir"
	mkdir -p "$pkgdir"/usr/bin
	mv Telegram "$pkgdir"/usr/bin/telegram-desktop

	cd "$builddir"
	mkdir -p "$pkgdir"/usr/share/applications
	mv lib/xdg/telegramdesktop.desktop "$pkgdir"/usr/share/applications/telegram-desktop.desktop

	mkdir -p "$pkgdir"/usr/share/kservices5
	mv lib/xdg/tg.protocol "$pkgdir"/usr/share/kservices5

	cd Telegram/Resources/art
	mkdir -p "$pkgdir"/usr/share/icons/hicolor
	for size in 16 32 48 64 128 256 512; do
		mkdir -p "$pkgdir"/usr/share/icons/hicolor/"$size"x"$size"/apps
		mv icon"$size".png "$pkgdir"/usr/share/icons/hicolor/"$size"x"$size"/apps/telegram.png
	done
}

sha512sums="c3fa3d558c35cae124b84b714a56beafd72d1ab4899776517d25943cc4bd4e86c725f6af11f2af93b635389b2cc6d171dd6260fbf266d9428f33827faf8241b9  telegram-desktop-1.5.4.tar.gz
9ee0dbc4b04454a2f440daa381df765616962e8e8c4330e96851dbc5f2a283da687282d666d2667aac67c3467d2079a94e4fef358dbb18eb24a064d55adc7a40  libtgvoip.patch
fc672d8168f6b2807e596570bc57f3b89296891b5d62b8e12b38193ed4919e4eb17efd72691c4086fb0ff4383de54695a9faf9874a0727a0980ef35e5ca4bee7  musl.patch
cb01655dd097b68e89b15e6e4b1f6da10c52e8bec681eeef9807ca376283b10cb3da34acc976c790f3c8dea05acbef1ba1967612920a2e4acb3b9da79e251a0d  no-gtk2.patch
9df70f5057fd9938cab87529693ad9617da0fdbb9084ff57395cd540343a0dcc1ecfba4f868b0043b252fe1aca33d0d214fb07931860296e66fbf11825f95fb9  no-pulse.patch
3cbfe1cb1bf9eb18e79c49ac67560e3290b70a7ceb1e397f4623bbfc39227468b3ab489a5813d371de31438b45751505bf3af7424f92e0e8905e23ab0d2b565d  tdesktop.patch
8de8c0508177da5fcac4f2dcee4d8baef4b99f74f1dca296567bc3689a6bd17a47c1c945df504abc8811b82a687010d0709503c7c32e47d2ebb1cf0e374c80c5  xdg.patch
ce6be003220267bac5483caf8302b492e1581892bc36d35a61236ebf9f9d766b8bd2159557a1c36256aa85f461797a38bfaae57b12da7a72101b21c0b17ed653  system-wide-fonts.patch"
diff --git a/testing/telegram-desktop/libtgvoip.patch b/testing/telegram-desktop/libtgvoip.patch
new file mode 100644
index 0000000000..b41166198d
--- /dev/null
+++ b/testing/telegram-desktop/libtgvoip.patch
@@ -0,0 +1,16 @@
--- a/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
+++ b/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
@@ -14,11 +14,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',
         ],
         'direct_dependent_settings': {
           'include_dirs': [
diff --git a/testing/telegram-desktop/musl.patch b/testing/telegram-desktop/musl.patch
new file mode 100644
index 0000000000..70e7415e1e
--- /dev/null
+++ b/testing/telegram-desktop/musl.patch
@@ -0,0 +1,10 @@
--- a/Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp
+++ b/Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp
@@ -6,6 +6,7 @@
 
 #include "AudioPulse.h"
 #include <dlfcn.h>
+#include <libgen.h>
 #include "../../logging.h"
 
 #define DECLARE_DL_FUNCTION(name) typeof(name)* AudioPulse::_import_##name=NULL
diff --git a/testing/telegram-desktop/no-gtk2.patch b/testing/telegram-desktop/no-gtk2.patch
new file mode 100644
index 0000000000..839a49bea5
--- /dev/null
+++ b/testing/telegram-desktop/no-gtk2.patch
@@ -0,0 +1,27 @@
--- a/Telegram/SourceFiles/platform/linux/linux_libs.cpp
+++ b/Telegram/SourceFiles/platform/linux/linux_libs.cpp
@@ -240,24 +240,12 @@ void start() {
 			indicatorLoaded = setupAppIndicator(lib_indicator);
 		}
 	}
-	if (!gtkLoaded || !indicatorLoaded) {
-		if (loadLibrary(lib_indicator, "ayatana-appindicator", 1) || 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/testing/telegram-desktop/no-pulse.patch b/testing/telegram-desktop/no-pulse.patch
new file mode 100644
index 0000000000..39c965490f
--- /dev/null
+++ b/testing/telegram-desktop/no-pulse.patch
@@ -0,0 +1,34 @@
--- a/Telegram/ThirdParty/libtgvoip/config.h.in
+++ b/Telegram/ThirdParty/libtgvoip/config.h.in
@@ -197,7 +197,7 @@
 #undef WITHOUT_ALSA
 
 /* Define to disable PulseAudio support */
-#undef WITHOUT_PULSE
+#define WITHOUT_PULSE
 
 /* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
    <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
--- a/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
+++ b/Telegram/ThirdParty/libtgvoip/libtgvoip.gyp
@@ -10,6 +10,7 @@
           'WEBRTC_APM_DEBUG_DUMP=0',
           'TGVOIP_USE_DESKTOP_DSP',
           'WEBRTC_NS_FLOAT',
+          'WITHOUT_PULSE',
         ],
         'variables': {
           'tgvoip_src_loc': '.',
@@ -105,12 +106,6 @@
           '<(tgvoip_src_loc)/os/linux/AudioInputALSA.h',
           '<(tgvoip_src_loc)/os/linux/AudioOutputALSA.cpp',
           '<(tgvoip_src_loc)/os/linux/AudioOutputALSA.h',
-          '<(tgvoip_src_loc)/os/linux/AudioOutputPulse.cpp',
-          '<(tgvoip_src_loc)/os/linux/AudioOutputPulse.h',
-          '<(tgvoip_src_loc)/os/linux/AudioInputPulse.cpp',
-          '<(tgvoip_src_loc)/os/linux/AudioInputPulse.h',
-          '<(tgvoip_src_loc)/os/linux/AudioPulse.cpp',
-          '<(tgvoip_src_loc)/os/linux/AudioPulse.h',
 
           # POSIX
           '<(tgvoip_src_loc)/os/posix/NetworkSocketPosix.cpp',
diff --git a/testing/telegram-desktop/system-wide-fonts.patch b/testing/telegram-desktop/system-wide-fonts.patch
new file mode 100644
index 0000000000..c89222986b
--- /dev/null
+++ b/testing/telegram-desktop/system-wide-fonts.patch
@@ -0,0 +1,34 @@
Description: Remove links to packaged Open Sans font
 This makes Telegram Desktop use system-wide fonts.
 Warnings about non-existent fonts in resources are also disabled.
Author: Nicholas Guriev <guriev-ns@ya.ru>
Bug-Debian: https://bugs.debian.org/890341
Last-Update: Sat, 31 Mar 2018 14:36:39 +0300

--- a/Telegram/Resources/qrc/telegram.qrc
+++ b/Telegram/Resources/qrc/telegram.qrc
@@ -42,9 +42,6 @@
     <file alias="js/script.js">../export_html/js/script.js</file>
   </qresource>
   <qresource prefix="/gui">
-    <file alias="fonts/OpenSans-Regular.ttf">../fonts/OpenSans-Regular.ttf</file>
-    <file alias="fonts/OpenSans-Bold.ttf">../fonts/OpenSans-Bold.ttf</file>
-    <file alias="fonts/OpenSans-Semibold.ttf">../fonts/OpenSans-Semibold.ttf</file>
     <file alias="art/bg.jpg">../art/bg.jpg</file>
     <file alias="art/bg_initial.jpg">../art/bg_initial.jpg</file>
     <file alias="art/logo_256.png">../art/logo_256.png</file>
--- a/Telegram/SourceFiles/ui/twidget.cpp
+++ b/Telegram/SourceFiles/ui/twidget.cpp
@@ -70,9 +70,9 @@ void Start() {
 	}
 	Started = true;
 
-	auto regular = LoadCustomFont(qsl(":/gui/fonts/OpenSans-Regular.ttf"), qsl("Open Sans"));
-	auto bold = LoadCustomFont(qsl(":/gui/fonts/OpenSans-Bold.ttf"), qsl("Open Sans"), style::internal::FontBold);
-	auto semibold = LoadCustomFont(qsl(":/gui/fonts/OpenSans-Semibold.ttf"), qsl("Open Sans Semibold"));
+	auto regular = ValidateFont(qsl("Open Sans"));
+	auto bold = ValidateFont(qsl("Open Sans"), style::internal::FontBold);
+	auto semibold = ValidateFont(qsl("Open Sans Semibold"));
 
 #ifdef Q_OS_WIN
 	// Attempt to workaround a strange font bug with Open Sans Semibold not loading.
diff --git a/testing/telegram-desktop/tdesktop.patch b/testing/telegram-desktop/tdesktop.patch
new file mode 100644
index 0000000000..1fc6fcdf0c
--- /dev/null
+++ b/testing/telegram-desktop/tdesktop.patch
@@ -0,0 +1,596 @@
--- a/Telegram/Resources/qrc/telegram_linux.qrc
+++ b/Telegram/Resources/qrc/telegram_linux.qrc
@@ -1,6 +1,5 @@
 <RCC>
   <qresource prefix="/qt">
-    <file alias="etc/qt.conf">../etc/qt_linux.conf</file>
   </qresource>
   <qresource prefix="/fc">
     <file alias="fc-custom.conf">../fc-custom.conf</file>
--- a/Telegram/SourceFiles/core/launcher.cpp
+++ b/Telegram/SourceFiles/core/launcher.cpp
@@ -39,9 +39,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();
 }
@@ -59,6 +60,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));
--- a/Telegram/SourceFiles/platform/linux/linux_libs.h
+++ b/Telegram/SourceFiles/platform/linux/linux_libs.h
@@ -21,7 +21,7 @@ extern "C" {
 } // extern "C"
 
 #ifndef TDESKTOP_DISABLE_UNITY_INTEGRATION
-#include <unity/unity/unity.h>
+typedef void UnityLauncherEntry;
 #endif // !TDESKTOP_DISABLE_UNITY_INTEGRATION
 #endif // !TDESKTOP_DISABLE_GTK_INTEGRATION
 
--- /dev/null
+++ b/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;
+}
--- a/Telegram/SourceFiles/qt_static_plugins.cpp
+++ b/Telegram/SourceFiles/qt_static_plugins.cpp
@@ -15,14 +15,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)
-Q_IMPORT_PLUGIN(NimfInputContextPlugin)
 #endif // Q_OS_WIN | Q_OS_MAC | Q_OS_LINUX
--- a/Telegram/SourceFiles/ui/text/text.cpp
+++ b/Telegram/SourceFiles/ui/text/text.cpp
@@ -1760,11 +1760,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();
--- a/Telegram/SourceFiles/ui/text/text_block.cpp
+++ b/Telegram/SourceFiles/ui/text/text_block.cpp
@@ -332,6 +332,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");
 	}
--- a/Telegram/SourceFiles/ui/twidget.cpp
+++ b/Telegram/SourceFiles/ui/twidget.cpp
@@ -250,9 +250,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);
--- a/Telegram/gyp/PrecompiledHeader.cmake
+++ b/Telegram/gyp/PrecompiledHeader.cmake
@@ -114,7 +114,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}" ${_compiler_FLAGS} "$(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)")
@@ -125,7 +125,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}" ${_compiler_FLAGS} "$(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 header ${_name} for ${_target} (C++)")
--- a/Telegram/gyp/Telegram.gyp
+++ b/Telegram/gyp/Telegram.gyp
@@ -12,7 +12,7 @@
     'target_name': 'Telegram',
     'variables': {
       'variables': {
-        'libs_loc': '../../../Libraries',
+        'libs_loc': '../../Libraries',
       },
       'libs_loc': '<(libs_loc)',
       'src_loc': '../SourceFiles',
@@ -75,7 +75,6 @@
       'codegen.gyp:codegen_numbers',
       'codegen.gyp:codegen_style',
       'tests/tests.gyp:tests',
-      'utils.gyp:Updater',
       '../ThirdParty/libtgvoip/libtgvoip.gyp:libtgvoip',
       'crl.gyp:crl',
       'lib_base.gyp:lib_base',
@@ -84,7 +83,6 @@
     ],
 
     'defines': [
-      'AL_LIBTYPE_STATIC',
       'AL_ALEXT_PROTOTYPES',
       'TGVOIP_USE_CXX11_LIB',
       'XXH_INLINE_ALL',
@@ -96,16 +94,9 @@
     'include_dirs': [
       '<(src_loc)',
       '<(SHARED_INTERMEDIATE_DIR)',
-      '<(libs_loc)/breakpad/src',
-      '<(libs_loc)/lzma/C',
-      '<(libs_loc)/zlib',
-      '<(libs_loc)/ffmpeg',
-      '<(libs_loc)/openal-soft/include',
-      '<(libs_loc)/opus/include',
       '<(libs_loc)/range-v3/include',
-      '<(minizip_loc)',
-      '<(sp_media_key_tap_loc)',
       '<(emoji_suggestions_loc)',
+      '/usr/include/minizip',
       '<(submodules_loc)/GSL/include',
       '<(submodules_loc)/variant/include',
       '<(submodules_loc)/crl/src',
--- a/Telegram/gyp/lib_base.gyp
+++ b/Telegram/gyp/lib_base.gyp
@@ -23,7 +23,7 @@
     'variables': {
       'src_loc': '../SourceFiles',
       'res_loc': '../Resources',
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'official_build_target%': '',
       'submodules_loc': '../ThirdParty',
       'pch_source': '<(src_loc)/base/base_pch.cpp',
--- a/Telegram/gyp/lib_export.gyp
+++ b/Telegram/gyp/lib_export.gyp
@@ -22,7 +22,7 @@
     'variables': {
       'src_loc': '../SourceFiles',
       'res_loc': '../Resources',
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'official_build_target%': '',
       'submodules_loc': '../ThirdParty',
       'pch_source': '<(src_loc)/export/export_pch.cpp',
--- a/Telegram/gyp/lib_storage.gyp
+++ b/Telegram/gyp/lib_storage.gyp
@@ -23,7 +23,7 @@
     'variables': {
       'src_loc': '../SourceFiles',
       'res_loc': '../Resources',
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'official_build_target%': '',
       'submodules_loc': '../ThirdParty',
       'pch_source': '<(src_loc)/storage/storage_pch.cpp',
--- a/Telegram/gyp/qt.gypi
+++ b/Telegram/gyp/qt.gypi
@@ -14,25 +14,21 @@
               [ 'build_macold', {
                 'qt_version%': '5.3.2',
               }, {
-                'qt_version%': '5.6.2',
+                'qt_version%': '<!(echo /usr/include/QtCore/*/ | grep -Po "\d+\.\d+\.\d+")',
               }]
             ],
           },
           'qt_libs': [
-            'qwebp',
-            'Qt5PrintSupport',
-            'Qt5PlatformSupport',
             'Qt5Network',
             'Qt5Widgets',
             'Qt5Gui',
-            'qtharfbuzzng',
           ],
           'qt_version%': '<(qt_version)',
           'conditions': [
             [ '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/qt5',
             }]
           ]
         },
@@ -72,32 +68,13 @@
             ],
           }],
           [ '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',
-              'SM',
-              'ICE',
-              'fontconfig',
-              'expat',
-              'freetype',
-              'z',
-              'xcb-shm',
-              'xcb-xfixes',
-              'xcb-render',
-              'xcb-static',
             ],
           }],
         ],
@@ -127,11 +104,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%': '/usr/local/ssl/lib/libssl.a',
-    'linux_lib_crypto%': '/usr/local/ssl/lib/libcrypto.a',
-    'linux_lib_icu%': 'libicutu.a libicui18n.a libicuuc.a libicudata.a',
   },
 
   'configurations': {
@@ -180,14 +152,14 @@
   },
 
   'include_dirs': [
-    '<(qt_loc)/include',
-    '<(qt_loc)/include/QtCore',
-    '<(qt_loc)/include/QtGui',
-    '<(qt_loc)/include/QtDBus',
-    '<(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',
+    '/usr/include/QtCore',
+    '/usr/include/QtGui',
+    '/usr/include/QtDBus',
+    '/usr/include/QtCore/<(qt_version)',
+    '/usr/include/QtGui/<(qt_version)',
+    '/usr/include/QtCore/<(qt_version)/QtCore',
+    '/usr/include/QtGui/<(qt_version)/QtGui',
   ],
   'library_dirs': [
     '<(qt_loc)/lib',
@@ -204,25 +176,14 @@
   ],
   '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',
-        '<(linux_path_xkbcommon)/lib/libxkbcommon.a',
         '<@(qt_libs_release)',
-        '<(linux_lib_ssl)',
-        '<(linux_lib_crypto)',
-        '<!@(python -c "for s in \'<(linux_lib_icu)\'.split(\' \'): print(s)")',
-        '-lxcb',
+        '-lcrypto',
         '-lX11',
-        '-lX11-xcb',
-        '-ldbus-1',
         '-ldl',
-        '-lgthread-2.0',
         '-lglib-2.0',
         '-lpthread',
       ],
@@ -230,7 +191,6 @@
         '<(qt_loc)/mkspecs/linux-g++',
       ],
       'ldflags': [
-        '-static-libstdc++',
         '-pthread',
         '-rdynamic',
       ],
--- a/Telegram/gyp/settings_linux.gypi
+++ b/Telegram/gyp/settings_linux.gypi
@@ -11,7 +11,6 @@
         'linux_common_flags': [
           '-pipe',
           '-Wall',
-          '-Werror',
           '-W',
           '-fPIC',
           '-Wno-unused-variable',
@@ -60,7 +59,6 @@
       ],
       'defines': [
         '_REENTRANT',
-        'QT_STATICPLUGIN',
         'QT_PLUGIN',
       ],
       'cflags_c': [
--- a/Telegram/gyp/telegram_linux.gypi
+++ b/Telegram/gyp/telegram_linux.gypi
@@ -23,18 +23,20 @@
       'linux_path_va%': '/usr/local',
       'linux_path_vdpau%': '/usr/local',
       'linux_path_breakpad%': '/usr/local',
-      'linux_path_opus_include%': '<(libs_loc)/opus/include',
+      'linux_path_opus_include%': '/usr/include/opus',
       'linux_path_range%': '/usr/local',
     },
     'include_dirs': [
+      '/usr/include/openssl',
       '/usr/local/include',
       '<(linux_path_ffmpeg)/include',
       '<(linux_path_openal)/include',
       '<(linux_path_breakpad)/include/breakpad',
       '<(linux_path_opus_include)',
-      '<(linux_path_range)/include',
+      '<(libs_loc)/range-v3/include',
     ],
     'library_dirs': [
+      '/usr/lib/openssl',
       '/usr/local/lib',
       '<(linux_path_ffmpeg)/lib',
       '<(linux_path_openal)/lib',
@@ -43,26 +45,16 @@
       '<(linux_path_breakpad)/lib',
     ],
     'libraries': [
-      'breakpad_client',
-      'composeplatforminputcontextplugin',
-      'ibusplatforminputcontextplugin',
-      'fcitxplatforminputcontextplugin',
-      'himeplatforminputcontextplugin',
-      'nimfplatforminputcontextplugin',
-      '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',
+      'openal',
+      'avformat',
+      'avcodec',
+      'swresample',
+      'swscale',
+      'avutil',
+      'minizip',
+      'opus',
+      'z',
+      'lzma',
 #      '<!(pkg-config 2> /dev/null --libs <@(pkgconfig_libs))',
     ],
     'cflags_cc': [
@@ -70,9 +62,6 @@
       '-Wno-maybe-uninitialized',
     ],
     'ldflags': [
-      '-Wl,-wrap,aligned_alloc',
-      '-Wl,-wrap,secure_getenv',
-      '-Wl,-wrap,clock_gettime',
       '-Wl,--no-as-needed,-lrt',
     ],
     'configurations': {
@@ -92,14 +81,10 @@
     },
     'conditions': [
       [ '"<!(uname -p)" != "x86_64"', {
-        'ldflags': [
-          '-Wl,-wrap,__divmoddi4',
-        ],
       }], ['not_need_gtk!="True"', {
         'cflags_cc': [
-          '<!(pkg-config 2> /dev/null --cflags gtk+-2.0)',
-          '<!(pkg-config 2> /dev/null --cflags glib-2.0)',
-          '<!(pkg-config 2> /dev/null --cflags dee-1.0)',
+          '<!(pkg-config 2> /dev/null --cflags appindicator3-0.1)',
+          '<!(pkg-config 2> /dev/null --cflags gtk+-3.0)',
         ],
       }], ['<!(pkg-config ayatana-appindicator3-0.1; echo $?) == 0', {
         'cflags_cc': [ '<!(pkg-config --cflags ayatana-appindicator3-0.1)' ],
--- a/Telegram/gyp/telegram_sources.txt
+++ b/Telegram/gyp/telegram_sources.txt
@@ -805,14 +805,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: win
 <(res_loc)/winrc/Telegram.rc
--- a/Telegram/gyp/tests/tests.gyp
+++ b/Telegram/gyp/tests/tests.gyp
@@ -9,7 +9,7 @@
     '../common.gypi',
   ],
   'variables': {
-    'libs_loc': '../../../../Libraries',
+    'libs_loc': '../../../Libraries',
     'src_loc': '../../SourceFiles',
     'submodules_loc': '../../ThirdParty',
     'mac_target': '10.10',
--- a/Telegram/gyp/utils.gyp
+++ b/Telegram/gyp/utils.gyp
@@ -11,7 +11,7 @@
   'targets': [{
     'target_name': 'Updater',
     'variables': {
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'src_loc': '../SourceFiles',
       'res_loc': '../Resources',
     },
@@ -57,7 +57,7 @@
   }, {
     'target_name': 'Packer',
     'variables': {
-      'libs_loc': '../../../Libraries',
+      'libs_loc': '../../Libraries',
       'src_loc': '../SourceFiles',
       'mac_target': '10.10',
     },
diff --git a/testing/telegram-desktop/xdg.patch b/testing/telegram-desktop/xdg.patch
new file mode 100644
index 0000000000..e26bda0bc7
--- /dev/null
+++ b/testing/telegram-desktop/xdg.patch
@@ -0,0 +1,30 @@
--- a/lib/xdg/telegramdesktop.desktop
+++ b/lib/xdg/telegramdesktop.desktop
@@ -1,6 +1,8 @@
 [Desktop Entry]
 Version=1.0
 Name=Telegram Desktop
+GenericName=Telegram Desktop
+Keywords=IM;Chat;
 Comment=Official desktop version of Telegram messaging app
 Exec=telegram-desktop -- %u
 Icon=telegram
--- a/lib/xdg/telegramdesktop.appdata.xml
+++ b/lib/xdg/telegramdesktop.appdata.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component type="desktop">
-    <id>org.telegram.desktop</id>
+    <id>telegram-desktop.desktop</id>
     <metadata_license>CC0-1.0</metadata_license>
     <project_license>GPL-3.0</project_license>
     <name>Telegram Desktop</name>
--- a/lib/xdg/tg.protocol
+++ b/lib/xdg/tg.protocol
@@ -1,5 +1,5 @@
 [Protocol]
-exec=/usr/bin/telegram-desktop -- %u
+exec=telegram-desktop -- %u
 protocol=tg
 input=none
 output=none
-- 
2.20.1



---
Unsubscribe:  alpine-aports+unsubscribe@lists.alpinelinux.org
Help:         alpine-aports+help@lists.alpinelinux.org
---
Reply to thread Export thread (mbox)