Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F107353124
D13434.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
63 KB
Referenced Files
None
Subscribers
None
D13434.diff
View Options
Index: head/net-im/Makefile
===================================================================
--- head/net-im/Makefile
+++ head/net-im/Makefile
@@ -167,6 +167,7 @@
SUBDIR += skype4
SUBDIR += teamwords
SUBDIR += telegram
+ SUBDIR += telegram-desktop
SUBDIR += telegram-purple
SUBDIR += telegramqml
SUBDIR += telepathy-accounts-signon
Index: head/net-im/telegram-desktop/Makefile
===================================================================
--- head/net-im/telegram-desktop/Makefile
+++ head/net-im/telegram-desktop/Makefile
@@ -0,0 +1,88 @@
+# $FreeBSD$
+
+PORTNAME= telegram-desktop
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.1.23
+CATEGORIES= net-im
+
+MAINTAINER= henry.hu.sh@gmail.com
+COMMENT= Telegram Desktop messaging app
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= dee>0:devel/dee \
+ gyp:devel/py-gyp@${PY_FLAVOR}
+LIB_DEPENDS= libasound.so:audio/alsa-lib \
+ libavformat.so:multimedia/ffmpeg \
+ libdbus-1.so:devel/dbus \
+ libminizip.so:archivers/minizip \
+ libopenal.so:audio/openal-soft \
+ libopus.so:audio/opus \
+ libpulse.so:audio/pulseaudio
+
+USES= cmake:noninja,outsource desktop-file-utils gmake pkgconfig python:build ssl
+USE_GITHUB= yes
+GH_ACCOUNT= telegramdesktop
+GH_PROJECT= tdesktop
+GH_TUPLE= catchorg:Catch2:5ca44b68:catch/Telegram/ThirdParty/Catch \
+ mapbox:variant:550ac2f:variant/Telegram/ThirdParty/variant \
+ Microsoft:GSL:c5851a8:gsl/Telegram/ThirdParty/GSL \
+ telegramdesktop:libtgvoip:757a5d8e:libtgvoip/Telegram/ThirdParty/libtgvoip
+USE_GNOME= glib20 gtk30
+USE_QT5= core gui imageformats network widgets buildtools_build qmake_build
+USE_XORG= x11 xcb
+
+CMAKE_SOURCE_PATH= ${WRKSRC}/out/Release
+
+GYP_DEFINES= TDESKTOP_DISABLE_CRASH_REPORTS,TDESKTOP_DISABLE_AUTOUPDATE,TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME
+
+.include <bsd.port.pre.mk>
+
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100000
+CC= clang40
+CXX= clang++40
+BUILD_DEPENDS+= clang++40:devel/llvm40
+RUN_DEPENDS+= clang++40:devel/llvm40
+.endif
+
+post-patch:
+ @cd ${WRKSRC} && \
+ (${SED} -e " \
+ s|%%QT_VERSION%%|${QT5_VERSION}| ; \
+ s|%%LOCALBASE%%|${LOCALBASE}| ; \
+ s|%%CFLAGS%%|${CFLAGS:C/(.*)/'\1',/}| ; \
+ s|%%CXXFLAGS%%|${CXXFLAGS:C/(.*)/'\1',/}| ; \
+ s|%%LDFLAGS%%|${LDFLAGS:C/(.*)/'\1',/}| ; \
+ s|%%QT_BINDIR%%|${QT_BINDIR}| ; \
+ s|%%QT_INCDIR%%|${QT_INCDIR}| ; \
+ s|%%QT_LIBDIR%%|${QT_LIBDIR}| ; \
+ s|%%QMAKESPEC%%|${QMAKESPEC}| ; \
+ s|%%PYTHON_CMD%%|${PYTHON_CMD}|" \
+ ${FILESDIR}/gyp-patches | \
+ ${PATCH} -z .bak -s)
+ @${ECHO} "#define FREEBSD_QT_PLUGINDIR \"${QT_PLUGINDIR}\"" > ${WRKSRC}/Telegram/SourceFiles/FREEBSD_QT_PLUGINDIR.h
+
+pre-configure:
+ @cd ${WRKSRC} && gyp \
+ -Dbuild_defines=${GYP_DEFINES} \
+ -Gconfig=Release \
+ --depth=Telegram/gyp --generator-output=../.. -Goutput_dir=out Telegram/gyp/Telegram.gyp --format=cmake
+ @TOT=`wc -l < ${WRKSRC}/out/Release/CMakeLists.txt` && NUM=`expr $$TOT - 2` && \
+ ${SED} -i -e "$$NUM r ${FILESDIR}/CMakeLists.inj" ${WRKSRC}/out/Release/CMakeLists.txt
+
+do-install:
+ ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/Telegram ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+ ${INSTALL_DATA} ${WRKSRC}/lib/xdg/telegramdesktop.desktop ${STAGEDIR}${PREFIX}/share/applications/${PORTNAME}.desktop
+ @${MKDIR} ${STAGEDIR}${PREFIX}/share/kservices5
+ ${INSTALL_DATA} ${WRKSRC}/lib/xdg/tg.protocol ${STAGEDIR}${PREFIX}/share/kservices5
+ @${MKDIR} ${STAGEDIR}${PREFIX}/share/appdata
+ ${INSTALL_DATA} ${WRKSRC}/lib/xdg/telegramdesktop.appdata.xml ${STAGEDIR}${PREFIX}/share/appdata/${PORTNAME}.appdata.xml
+.for icon_size in 16 32 48 64 128 256 512
+ @${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/${icon_size}x${icon_size}/apps
+ ${INSTALL_DATA} \
+ ${WRKSRC}/Telegram/Resources/art/icon${icon_size}.png \
+ ${STAGEDIR}${PREFIX}/share/icons/hicolor/${icon_size}x${icon_size}/apps/${PORTNAME}.png
+.endfor
+
+.include <bsd.port.post.mk>
Index: head/net-im/telegram-desktop/distinfo
===================================================================
--- head/net-im/telegram-desktop/distinfo
+++ head/net-im/telegram-desktop/distinfo
@@ -0,0 +1,11 @@
+TIMESTAMP = 1512711381
+SHA256 (telegramdesktop-tdesktop-v1.1.23_GH0.tar.gz) = 56b7fce84adf85a4af1c3174353169f32d0b0c052a4e7a284fc741fa96b04030
+SIZE (telegramdesktop-tdesktop-v1.1.23_GH0.tar.gz) = 16863984
+SHA256 (Microsoft-GSL-c5851a8_GH0.tar.gz) = 32fae541af0bc21cdf83922740db6a3a00fbb9cb9ace323fbc038b608ac36956
+SIZE (Microsoft-GSL-c5851a8_GH0.tar.gz) = 54462
+SHA256 (mapbox-variant-550ac2f_GH0.tar.gz) = 7ab3aa7c9fa672027f13721584df5f7ec09c0ecca499d374c6ac76e147ef7354
+SIZE (mapbox-variant-550ac2f_GH0.tar.gz) = 108686
+SHA256 (catchorg-Catch2-5ca44b68_GH0.tar.gz) = 8cdf2a345897bda1aaabffd4496dffe263768cef3e4254e74ae63545c8e12cc2
+SIZE (catchorg-Catch2-5ca44b68_GH0.tar.gz) = 375264
+SHA256 (telegramdesktop-libtgvoip-757a5d8e_GH0.tar.gz) = a745c2c097f6a98bf9443d0cee9e375f279571a18dcb51bf06684eccf82eb9c6
+SIZE (telegramdesktop-libtgvoip-757a5d8e_GH0.tar.gz) = 408328
Index: head/net-im/telegram-desktop/files/CMakeLists.inj
===================================================================
--- head/net-im/telegram-desktop/files/CMakeLists.inj
+++ head/net-im/telegram-desktop/files/CMakeLists.inj
@@ -0,0 +1,14 @@
+# ------------- debian/CMakeLists.inj begin -------------
+# The text will be putted into the appropriate CMakeLists by debian/rules script
+
+# Avoid rpath compiler parameter
+set_target_properties(Telegram PROPERTIES SKIP_BUILD_RPATH TRUE)
+
+# This makes up for patch of gyp utility, supporting precompiled headers. If
+# Telegram/Patches/gyp.diff file will be changed in future, please check these
+# lines.
+include(../../Telegram/gyp/PrecompiledHeader.cmake)
+add_precompiled_header(Telegram ../../Telegram/SourceFiles/stdafx.h)
+
+# vim: ft=cmake
+# -------------- debian/CMakeLists.inj end --------------
Index: head/net-im/telegram-desktop/files/gyp-patches
===================================================================
--- head/net-im/telegram-desktop/files/gyp-patches
+++ head/net-im/telegram-desktop/files/gyp-patches
@@ -0,0 +1,375 @@
+--- Telegram/gyp/qt_rcc.gypi.orig 2017-09-05 17:38:38 UTC
++++ Telegram/gyp/qt_rcc.gypi
+@@ -28,7 +28,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/qrc/qrc_<(RULE_INPUT_ROOT).cpp',
+ ],
+ 'action': [
+- '<(qt_loc)/bin/rcc<(exe_ext)',
++ '%%QT_BINDIR%%/rcc',
+ '-name', '<(RULE_INPUT_ROOT)',
+ '-no-compress',
+ '<(RULE_INPUT_PATH)',
+--- Telegram/gyp/qt.gypi.orig 2017-09-05 17:38:38 UTC
++++ Telegram/gyp/qt.gypi
+@@ -27,25 +27,21 @@
+ [ 'build_macold', {
+ 'qt_version%': '5.3.2',
+ }, {
+- 'qt_version%': '5.6.2',
++ 'qt_version%': '%%QT_VERSION%%',
+ }]
+ ],
+ },
+ '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%': '%%LOCALBASE%%/lib/qt',
+ }]
+ ]
+ },
+@@ -85,44 +81,24 @@
+ ],
+ }],
+ [ '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',
+ ],
+ }],
+ ],
+ },
+ 'qt_version%': '<(qt_version)',
+ 'qt_loc_unix': '<(qt_loc_unix)',
+- 'qt_version_loc': '<!(python -c "print(\'<(qt_version)\'.replace(\'.\', \'_\'))")',
++ 'qt_version_loc': '<!(%%PYTHON_CMD%% -c "print(\'<(qt_version)\'.replace(\'.\', \'_\'))")',
+ 'qt_libs_debug': [
+- '<!@(python -c "for s in \'<@(qt_libs)\'.split(\' \'): print(\'<(qt_lib_prefix)\' + s + \'<(qt_lib_debug_postfix)\')")',
++ '<!@(%%PYTHON_CMD%% -c "for s in \'<@(qt_libs)\'.split(\' \'): print(\'<(qt_lib_prefix)\' + s + \'<(qt_lib_debug_postfix)\')")',
+ ],
+ 'qt_libs_release': [
+- '<!@(python -c "for s in \'<@(qt_libs)\'.split(\' \'): print(\'<(qt_lib_prefix)\' + s + \'<(qt_lib_release_postfix)\')")',
++ '<!@(%%PYTHON_CMD%% -c "for s in \'<@(qt_libs)\'.split(\' \'): print(\'<(qt_lib_prefix)\' + s + \'<(qt_lib_release_postfix)\')")',
+ ],
+ },
+ 'qt_libs_debug': [ '<@(qt_libs_debug)' ],
+@@ -140,11 +116,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%': '/usr/lib/libicutu.a /usr/lib/libicui18n.a /usr/lib/libicuuc.a /usr/lib/libicudata.a',
+ },
+
+ 'configurations': {
+@@ -193,15 +164,17 @@
+ },
+
+ 'include_dirs': [
+- '<(qt_loc)/include',
+- '<(qt_loc)/include/QtCore',
+- '<(qt_loc)/include/QtGui',
+- '<(qt_loc)/include/QtCore/<(qt_version)',
+- '<(qt_loc)/include/QtGui/<(qt_version)',
+- '<(qt_loc)/include/QtCore/<(qt_version)/QtCore',
+- '<(qt_loc)/include/QtGui/<(qt_version)/QtGui',
++ '%%QT_INCDIR%%',
++ '%%QT_INCDIR%%/QtCore',
++ '%%QT_INCDIR%%/QtGui',
++ '%%QT_INCDIR%%/QtCore/<(qt_version)',
++ '%%QT_INCDIR%%/QtGui/<(qt_version)',
++ '%%QT_INCDIR%%/QtCore/<(qt_version)/QtCore',
++ '%%QT_INCDIR%%/QtGui/<(qt_version)/QtGui',
+ ],
+ 'library_dirs': [
++ '%%LOCALBASE%%/lib',
++ '%%QT_LIBDIR%%/',
+ '<(qt_loc)/lib',
+ '<(qt_loc)/plugins',
+ '<(qt_loc)/plugins/bearer',
+@@ -220,25 +193,20 @@
+ '<(qt_loc)/plugins/platforminputcontexts',
+ ],
+ 'libraries': [
+- '<(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)")',
++ '-lcrypto',
+ '-lxcb',
+ '-lX11',
+ '-lX11-xcb',
+ '-ldbus-1',
+- '-ldl',
+ '-lgthread-2.0',
+ '-lglib-2.0',
+ '-lpthread',
+ ],
+ 'include_dirs': [
+- '<(qt_loc)/mkspecs/linux-g++',
++ '%%QMAKESPEC%%',
+ ],
+ 'ldflags': [
+- '-static-libstdc++',
+ '-pthread',
+ '-g',
+ '-rdynamic',
+@@ -260,12 +228,12 @@
+ '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/moc/moc_<(RULE_INPUT_ROOT).cpp',
+ ],
+ 'action': [
+- '<(qt_loc)/bin/moc<(exe_ext)',
++ '%%QT_BINDIR%%/moc',
+
+ # Silence "Note: No relevant classes found. No output generated."
+ '--no-notes',
+
+- '<!@(python -c "for s in \'<@(_defines)\'.split(\' \'): print(\'-D\' + s)")',
++ '<!@(%%PYTHON_CMD%% -c "for s in \'<@(_defines)\'.split(\' \'): print(\'-D\' + s)")',
+ # '<!@(python -c "for s in \'<@(_include_dirs)\'.split(\' \'): print(\'-I\' + s)")',
+ '<(RULE_INPUT_PATH)',
+ '-o', '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/moc/moc_<(RULE_INPUT_ROOT).cpp',
+--- Telegram/gyp/telegram_linux.gypi.orig 2017-09-05 17:38:38 UTC
++++ Telegram/gyp/telegram_linux.gypi
+@@ -33,7 +33,7 @@
+ 'linux_path_va%': '/usr/local',
+ 'linux_path_vdpau%': '/usr/local',
+ 'linux_path_breakpad%': '<(libs_loc)/breakpad',
+- 'linux_path_opus_include%': '<(libs_loc)/opus/include',
++ 'linux_path_opus_include%': '%%LOCALBASE%%/include/opus',
+ },
+ 'include_dirs': [
+ '/usr/local/include',
+@@ -52,48 +52,34 @@
+ '<(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',
+ # '<!(pkg-config 2> /dev/null --libs <@(pkgconfig_libs))',
+ ],
+ '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 appindicator-0.1)',
++ '<!(pkg-config 2> /dev/null --cflags gtk+-3.0)',
+ '<!(pkg-config 2> /dev/null --cflags dee-1.0)',
+ ],
+ 'configurations': {
+ 'Release': {
+ 'cflags': [
+- '-Ofast',
+- '-flto',
++ %%CFLAGS%%
+ '-fno-strict-aliasing',
+ ],
+ 'cflags_cc': [
+- '-Ofast',
+- '-flto',
++ %%CXXFLAGS%%
+ '-fno-strict-aliasing',
+ ],
+ 'ldflags': [
+- '-Ofast',
+- '-flto',
++ %%LDFLAGS%%
+ ],
+ },
+ },
+--- Telegram/gyp/Telegram.gyp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/gyp/Telegram.gyp
+@@ -61,7 +61,7 @@
+ 'pt-BR',
+ ],
+ 'build_defines%': '',
+- 'list_sources_command': 'python <(DEPTH)/list_sources.py --input <(DEPTH)/telegram_sources.txt --replace src_loc=<(src_loc)',
++ 'list_sources_command': '%%PYTHON_CMD%% <(DEPTH)/list_sources.py --input <(DEPTH)/telegram_sources.txt --replace src_loc=<(src_loc)',
+ },
+ 'includes': [
+ 'common_executable.gypi',
+@@ -80,28 +80,19 @@
+ 'codegen.gyp:codegen_numbers',
+ 'codegen.gyp:codegen_style',
+ 'tests/tests.gyp:tests',
+- 'utils.gyp:Updater',
+ '../ThirdParty/libtgvoip/libtgvoip.gyp:libtgvoip',
+ ],
+
+ 'defines': [
+- 'AL_LIBTYPE_STATIC',
+ 'AL_ALEXT_PROTOTYPES',
+ 'TGVOIP_USE_CXX11_LIB',
+- '<!@(python -c "for s in \'<(build_defines)\'.split(\',\'): print(s)")',
++ '<!@(%%PYTHON_CMD%% -c "for s in \'<(build_defines)\'.split(\',\'): print(s)")',
+ ],
+
+ 'include_dirs': [
+ '<(src_loc)',
+ '<(SHARED_INTERMEDIATE_DIR)',
+- '<(libs_loc)/breakpad/src',
+- '<(libs_loc)/lzma/C',
+- '<(libs_loc)/libexif-0.6.20',
+- '<(libs_loc)/zlib-1.2.8',
+- '<(libs_loc)/ffmpeg',
+- '<(libs_loc)/openal-soft/include',
+- '<(libs_loc)/opus/include',
+- '<(minizip_loc)',
++ '%%LOCALBASE%%/include/minizip',
+ '<(sp_media_key_tap_loc)',
+ '<(emoji_suggestions_loc)',
+ '<(submodules_loc)/GSL/include',
+@@ -113,7 +104,7 @@
+ '<!@(<(list_sources_command) <(qt_moc_list_sources_arg))',
+ ],
+ 'sources!': [
+- '<!@(<(list_sources_command) <(qt_moc_list_sources_arg) --exclude_for <(build_os))',
++ '<!@(<(list_sources_command) <(qt_moc_list_sources_arg) --exclude_for linux)',
+ ],
+ 'conditions': [
+ [ '"<(official_build_target)" != ""', {
+--- Telegram/ThirdParty/libtgvoip/libtgvoip.gyp.orig 2017-07-06 17:16:18 UTC
++++ 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%': '%%LOCALBASE%%/include/opus',
+ },
+ 'include_dirs': [
+ '<(tgvoip_src_loc)/webrtc_dsp',
+ '<(linux_path_opus_include)',
++ '%%LOCALBASE%%/include/',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+@@ -371,12 +372,13 @@
+ },
+ ],
+ [
+- '"<(OS)" == "linux"', {
++ '"<(OS)" == "freebsd"', {
+ 'defines': [
+ 'WEBRTC_POSIX',
+ ],
+ 'cflags_cc': [
+ '-msse2',
++ '-std=c++11',
+ ],
+ 'direct_dependent_settings': {
+ 'libraries': [
+--- Telegram/gyp/codegen_rules.gypi.orig 2017-12-11 17:08:58 UTC
++++ Telegram/gyp/codegen_rules.gypi
+@@ -28,7 +28,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/update_dependent_styles.timestamp',
+ ],
+ 'action': [
+- 'python', '<(DEPTH)/update_dependent.py', '--styles',
++ '%%PYTHON_CMD%%', '<(DEPTH)/update_dependent.py', '--styles',
+ '-I', '<(res_loc)', '-I', '<(src_loc)',
+ '-o', '<(SHARED_INTERMEDIATE_DIR)/update_dependent_styles.timestamp',
+ '<@(style_files)',
+@@ -39,13 +39,13 @@
+ 'inputs': [
+ '<(DEPTH)/update_dependent.py',
+ '<@(qrc_files)',
+- '<!@(python <(DEPTH)/update_dependent.py --qrc_list <@(qrc_files))',
++ '<!@(%%PYTHON_CMD%% <(DEPTH)/update_dependent.py --qrc_list <@(qrc_files))',
+ ],
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/update_dependent_qrc.timestamp',
+ ],
+ 'action': [
+- 'python', '<(DEPTH)/update_dependent.py', '--qrc',
++ '%%PYTHON_CMD%%', '<(DEPTH)/update_dependent.py', '--qrc',
+ '-o', '<(SHARED_INTERMEDIATE_DIR)/update_dependent_qrc.timestamp',
+ '<@(qrc_files)',
+ ],
+@@ -122,7 +122,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/scheme.h',
+ ],
+ 'action': [
+- 'python', '<(src_loc)/codegen/scheme/codegen_scheme.py',
++ '%%PYTHON_CMD%%', '<(src_loc)/codegen/scheme/codegen_scheme.py',
+ '-o', '<(SHARED_INTERMEDIATE_DIR)', '<(res_loc)/scheme.tl',
+ ],
+ 'message': 'codegen_scheme-ing scheme.tl..',
+--- Telegram/gyp/tests/tests.gyp.orig 2017-12-11 17:12:35 UTC
++++ Telegram/gyp/tests/tests.gyp
+@@ -26,7 +26,7 @@
+ 'src_loc': '../../SourceFiles',
+ 'submodules_loc': '../../ThirdParty',
+ 'mac_target': '10.10',
+- 'list_tests_command': 'python <(DEPTH)/tests/list_tests.py --input <(DEPTH)/tests/tests_list.txt',
++ 'list_tests_command': '%%PYTHON_CMD%% <(DEPTH)/tests/list_tests.py --input <(DEPTH)/tests/tests_list.txt',
+ },
+ 'targets': [{
+ 'target_name': 'tests',
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles___other_packer.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles___other_packer.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles___other_packer.cpp
@@ -0,0 +1,11 @@
+--- Telegram/SourceFiles/_other/packer.cpp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/_other/packer.cpp
+@@ -246,7 +246,7 @@ int main(int argc, char *argv[])
+ }
+ QByteArray inner = f.readAll();
+ stream << name << quint32(inner.size()) << inner;
+-#if defined Q_OS_MAC || defined Q_OS_LINUX
++#if defined Q_OS_MAC || defined Q_OS_LINUX || defined Q_OS_FREEBSD
+ stream << (QFileInfo(fullName).isExecutable() ? true : false);
+ #endif
+ }
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_base_build__config.h
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_base_build__config.h
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_base_build__config.h
@@ -0,0 +1,11 @@
+--- Telegram/SourceFiles/base/build_config.h.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/base/build_config.h
+@@ -26,7 +26,7 @@ Copyright (c) 2014-2017 John Preston, ht
+
+ #if defined(__APPLE__)
+ #define OS_MAC 1
+-#elif defined(__linux__) // __APPLE__
++#elif defined(__linux__) || defined(__FreeBSD__)// __APPLE__
+ #define OS_LINUX 1
+ #elif defined(_WIN32) // __APPLE__ || __linux__
+ #define OS_WIN 1
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_base_lambda.h
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_base_lambda.h
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_base_lambda.h
@@ -0,0 +1,73 @@
+--- Telegram/SourceFiles/base/lambda.h.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/base/lambda.h
+@@ -212,11 +212,14 @@ protected:
+
+ template <typename Lambda, typename Return, typename ...Args>
+ struct vtable_once : public vtable_once_impl<Lambda, is_large<Lambda>, Return, Args...> {
+- static const vtable_once instance;
++ static const vtable_once* get_instance();
+ };
+
+ template <typename Lambda, typename Return, typename ...Args>
+-const vtable_once<Lambda, Return, Args...> vtable_once<Lambda, Return, Args...>::instance = {};
++const vtable_once<Lambda, Return, Args...>* vtable_once<Lambda, Return, Args...>::get_instance() {
++ static vtable_once<Lambda, Return, Args...> instance;
++ return &instance;
++}
+
+ template <typename Lambda, bool IsLarge, typename Return, typename ...Args> struct vtable_impl;
+
+@@ -262,12 +265,14 @@ struct vtable_impl<Lambda, false, Return
+
+ template <typename Lambda, typename Return, typename ...Args>
+ struct vtable : public vtable_impl<Lambda, is_large<Lambda>, Return, Args...> {
+- static const vtable instance;
++ static const vtable* get_instance();
+ };
+
+ template <typename Lambda, typename Return, typename ...Args>
+-const vtable<Lambda, Return, Args...> vtable<Lambda, Return, Args...>::instance = {};
+-
++const vtable<Lambda, Return, Args...>* vtable<Lambda, Return, Args...>::get_instance() {
++ static vtable<Lambda, Return, Args...> instance;
++ return &instance;
++}
+ } // namespace lambda_internal
+
+ template <typename Return, typename ...Args>
+@@ -346,7 +351,7 @@ public:
+ // Copy / move construct / assign from an arbitrary type.
+ template <typename Lambda, typename = std::enable_if_t<std::is_convertible<decltype(std::declval<Lambda>()(std::declval<Args>()...)),Return>::value>>
+ lambda_once(Lambda other) {
+- data_.vtable = &lambda_internal::vtable_once<Lambda, Return, Args...>::instance;
++ data_.vtable = lambda_internal::vtable_once<Lambda, Return, Args...>::get_instance();
+ lambda_internal::vtable_once<Lambda, Return, Args...>::construct_move_lambda_method(data_.storage, &other);
+ }
+ template <typename Lambda, typename = std::enable_if_t<std::is_convertible<decltype(std::declval<Lambda>()(std::declval<Args>()...)),Return>::value>>
+@@ -354,7 +359,7 @@ public:
+ if (data_.vtable) {
+ data_.vtable->destruct(data_.storage);
+ }
+- data_.vtable = &lambda_internal::vtable_once<Lambda, Return, Args...>::instance;
++ data_.vtable = lambda_internal::vtable_once<Lambda, Return, Args...>::get_instance();
+ lambda_internal::vtable_once<Lambda, Return, Args...>::construct_move_lambda_method(data_.storage, &other);
+ return *this;
+ }
+@@ -424,7 +429,7 @@ public:
+
+ // Copy / move construct / assign from an arbitrary type.
+ template <typename Lambda, typename = std::enable_if_t<std::is_convertible<decltype(std::declval<Lambda>()(std::declval<Args>()...)),Return>::value>>
+- lambda(Lambda other) : Parent(&lambda_internal::vtable<Lambda, Return, Args...>::instance, typename Parent::Private()) {
++ lambda(Lambda other) : Parent(lambda_internal::vtable<Lambda, Return, Args...>::get_instance(), typename Parent::Private()) {
+ lambda_internal::vtable<Lambda, Return, Args...>::construct_move_lambda_method(this->data_.storage, &other);
+ }
+ template <typename Lambda, typename = std::enable_if_t<std::is_convertible<decltype(std::declval<Lambda>()(std::declval<Args>()...)),Return>::value>>
+@@ -432,7 +437,7 @@ public:
+ if (this->data_.vtable) {
+ this->data_.vtable->destruct(this->data_.storage);
+ }
+- this->data_.vtable = &lambda_internal::vtable<Lambda, Return, Args...>::instance;
++ this->data_.vtable = lambda_internal::vtable<Lambda, Return, Args...>::get_instance();
+ lambda_internal::vtable<Lambda, Return, Args...>::construct_move_lambda_method(this->data_.storage, &other);
+ return *this;
+ }
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_config.h
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_config.h
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_config.h
@@ -0,0 +1,20 @@
+--- Telegram/SourceFiles/config.h.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/config.h
+@@ -270,7 +270,7 @@ inline const char *cApiDeviceModel() {
+ return "PC";
+ #elif defined Q_OS_MAC
+ return "Mac";
+-#elif defined Q_OS_LINUX
++#elif defined Q_OS_LINUX || defined Q_OS_FREEBSD
+ return "PC";
+ #endif
+ }
+@@ -281,6 +281,8 @@ inline const char *cApiSystemVersion() {
+ return "OS X";
+ #elif defined Q_OS_LINUX
+ return "Linux";
++#elif defined Q_OS_FREEBSD
++ return "FreeBSD";
+ #endif
+ }
+
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_layout.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_layout.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_layout.cpp
@@ -0,0 +1,22 @@
+--- Telegram/SourceFiles/layout.cpp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/layout.cpp
+@@ -264,16 +264,16 @@ bool documentIsExecutableName(const QStr
+ *result = qsl("\
+ action app bin command csh osx workflow\
+ ").split(' ');
+-#elif defined Q_OS_LINUX // Q_OS_MAC
++#elif defined Q_OS_LINUX || defined Q_OS_FREEBSD // Q_OS_MAC
+ *result = qsl("\
+ bin csh ksh out run\
+ ").split(' ');
+-#else // Q_OS_MAC || Q_OS_LINUX
++#else // Q_OS_MAC || Q_OS_LINUX || Q_OS_FREEBSD
+ *result = qsl("\
+ bat bin cmd com cpl exe gadget inf ins inx isu job jse lnk msc msi \
+ msp mst paf pif ps1 reg rgs sct shb shs u3p vb vbe vbs vbscript ws wsf\
+ ").split(' ');
+-#endif // !Q_OS_MAC && !Q_OS_LINUX
++#endif // !Q_OS_MAC && !Q_OS_LINUX && ! Q_OS_FREEBSD
+ return result.release();
+ })());
+
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_logs.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_logs.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_logs.cpp
@@ -0,0 +1,35 @@
+--- Telegram/SourceFiles/logs.cpp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/logs.cpp
+@@ -311,7 +311,7 @@ namespace Logs {
+ QString initialWorkingDir = QDir(cWorkingDir()).absolutePath() + '/', moveOldDataFrom;
+ if (cBetaVersion()) {
+ cSetDebug(true);
+-#if defined Q_OS_MAC || defined Q_OS_LINUX
++#if defined Q_OS_MAC || defined Q_OS_LINUX || defined Q_OS_FREEBSD
+ } else {
+ #ifdef _DEBUG
+ cForceWorkingDir(cExeDir());
+@@ -322,11 +322,11 @@ namespace Logs {
+ #endif // else for _DEBUG
+ workingDirChosen = true;
+
+-#if defined Q_OS_LINUX && !defined _DEBUG // fix first version
++#if (defined Q_OS_LINUX || defined Q_OS_FREEBSD) && !defined _DEBUG // fix first version
+ moveOldDataFrom = initialWorkingDir;
+-#endif // Q_OS_LINUX && !_DEBUG
++#endif // (Q_OS_LINUX || Q_OS_FREEBSD) && !_DEBUG
+
+-#elif defined Q_OS_WINRT // Q_OS_MAC || Q_OS_LINUX
++#elif defined Q_OS_WINRT // Q_OS_MAC || Q_OS_LINUX || Q_OS_FREEBSD
+ } else {
+ cForceWorkingDir(psAppDataPath());
+ workingDirChosen = true;
+@@ -502,7 +502,7 @@ namespace Logs {
+ //OutputDebugString(reinterpret_cast<const wchar_t *>(msg.utf16()));
+ #elif defined Q_OS_MAC
+ //objc_outputDebugString(msg);
+-#elif defined Q_OS_LINUX && defined _DEBUG
++#elif (defined Q_OS_LINUX || defined Q_OS_FREEBSD) && defined _DEBUG
+ //std::cout << msg.toUtf8().constData();
+ #endif
+ }
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_main.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_main.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_main.cpp
@@ -0,0 +1,30 @@
+--- Telegram/SourceFiles/main.cpp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/main.cpp
+@@ -22,10 +22,13 @@ Copyright (c) 2014-2017 John Preston, ht
+ #include "platform/platform_specific.h"
+ #include "storage/localstorage.h"
+
++#include "FREEBSD_QT_PLUGINDIR.h"
++
+ int main(int argc, char *argv[]) {
+-#ifndef Q_OS_MAC // Retina display support is working fine, others are not.
++#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 // Q_OS_MAC
++#endif // not defined Q_OS_MAC and QT_VERSION >= 5.6.0
+ QCoreApplication::setApplicationName(qsl("TelegramDesktop"));
+
+ InitFromCommandLine(argc, argv);
+@@ -39,6 +42,11 @@ int main(int argc, char *argv[]) {
+ Logs::start(); // must be started before Platform is started
+ Platform::start(); // must be started before QApplication is created
+
++ // I don't know why path is not in QT_PLUGIN_PATH by default
++ QCoreApplication::addLibraryPath(FREEBSD_QT_PLUGINDIR);
++ // without this Telegram doesn't start on Ubuntu 17.04 due GTK errors
++ setenv("QT_STYLE_OVERRIDE", "qwerty", false);
++
+ int result = 0;
+ {
+ Application app(argc, argv);
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_mainwindow.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_mainwindow.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_mainwindow.cpp
@@ -0,0 +1,19 @@
+--- Telegram/SourceFiles/mainwindow.cpp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/mainwindow.cpp
+@@ -460,6 +460,7 @@ void MainWindow::ui_hideMediaPreview() {
+ void MainWindow::showConnecting(const QString &text, const QString &reconnect) {
+ if (_connecting) {
+ _connecting->set(text, reconnect);
++ _connecting->show();
+ } else {
+ _connecting.create(bodyWidget(), text, reconnect);
+ _connecting->show();
+@@ -470,7 +471,7 @@ void MainWindow::showConnecting(const QS
+
+ void MainWindow::hideConnecting() {
+ if (_connecting) {
+- _connecting.destroyDelayed();
++ _connecting->hide();
+ }
+ }
+
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_linux__libs.h
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_linux__libs.h
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_linux__libs.h
@@ -0,0 +1,36 @@
+--- Telegram/SourceFiles/platform/linux/linux_libs.h.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/platform/linux/linux_libs.h
+@@ -22,14 +22,16 @@ Copyright (c) 2014-2017 John Preston, ht
+
+ extern "C" {
+ #undef signals
++#ifdef HAVE_APPINDICATOR
+ #include <libappindicator/app-indicator.h>
++#endif
+ #include <gtk/gtk.h>
+ #include <gdk/gdk.h>
+ #define signals public
+ } // extern "C"
+
+ #ifndef TDESKTOP_DISABLE_UNITY_INTEGRATION
+-#include <unity/unity/unity.h>
++typedef void UnityLauncherEntry;
+ #endif // !TDESKTOP_DISABLE_UNITY_INTEGRATION
+
+ namespace Platform {
+@@ -284,6 +286,7 @@ inline gulong g_signal_connect_swapped_h
+ typedef void (*f_g_signal_handler_disconnect)(gpointer instance, gulong handler_id);
+ extern f_g_signal_handler_disconnect g_signal_handler_disconnect;
+
++#ifdef HAVE_APPINDICATOR
+ typedef AppIndicator* (*f_app_indicator_new)(const gchar *id, const gchar *icon_name, AppIndicatorCategory category);
+ extern f_app_indicator_new app_indicator_new;
+
+@@ -295,6 +298,7 @@ extern f_app_indicator_set_menu app_indi
+
+ typedef void (*f_app_indicator_set_icon_full)(AppIndicator *self, const gchar *icon_name, const gchar *icon_desc);
+ extern f_app_indicator_set_icon_full app_indicator_set_icon_full;
++#endif
+
+ typedef gboolean (*f_gdk_init_check)(gint *argc, gchar ***argv);
+ extern f_gdk_init_check gdk_init_check;
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_linux__libs.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_linux__libs.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_linux__libs.cpp
@@ -0,0 +1,47 @@
+--- Telegram/SourceFiles/platform/linux/linux_libs.cpp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/platform/linux/linux_libs.cpp
+@@ -133,6 +133,7 @@ bool setupGtkBase(QLibrary &lib_gtk) {
+ return true;
+ }
+
++#ifdef HAVE_APPINDICATOR
+ bool setupAppIndicator(QLibrary &lib_indicator) {
+ if (!load(lib_indicator, "app_indicator_new", app_indicator_new)) return false;
+ if (!load(lib_indicator, "app_indicator_set_status", app_indicator_set_status)) return false;
+@@ -142,6 +143,7 @@ bool setupAppIndicator(QLibrary &lib_ind
+ DEBUG_LOG(("Library appindicator functions loaded!"));
+ return true;
+ }
++#endif
+
+ } // namespace
+
+@@ -201,10 +203,12 @@ f_g_type_check_instance_cast g_type_chec
+ f_g_type_check_instance_is_a g_type_check_instance_is_a = nullptr;
+ f_g_signal_connect_data g_signal_connect_data = nullptr;
+ f_g_signal_handler_disconnect g_signal_handler_disconnect = nullptr;
++#ifdef HAVE_APPINDICATOR
+ f_app_indicator_new app_indicator_new = nullptr;
+ f_app_indicator_set_status app_indicator_set_status = nullptr;
+ f_app_indicator_set_menu app_indicator_set_menu = nullptr;
+ f_app_indicator_set_icon_full app_indicator_set_icon_full = nullptr;
++#endif
+ f_gdk_init_check gdk_init_check = nullptr;
+ f_gdk_pixbuf_new_from_data gdk_pixbuf_new_from_data = nullptr;
+ f_gdk_pixbuf_new_from_file gdk_pixbuf_new_from_file = nullptr;
+@@ -242,6 +246,7 @@ void start() {
+ bool gtkLoaded = false;
+ bool indicatorLoaded = false;
+ QLibrary lib_gtk, lib_indicator;
++#ifdef HAVE_APPINDICATOR
+ if (loadLibrary(lib_indicator, "appindicator3", 1)) {
+ if (loadLibrary(lib_gtk, "gtk-3", 0)) {
+ gtkLoaded = setupGtkBase(lib_gtk);
+@@ -257,6 +262,7 @@ void start() {
+ }
+ }
+ }
++#endif
+
+ // If no appindicator, try at least load gtk.
+ if (!gtkLoaded && !indicatorLoaded) {
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_main__window__linux.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_main__window__linux.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_main__window__linux.cpp
@@ -0,0 +1,87 @@
+--- Telegram/SourceFiles/platform/linux/main_window_linux.cpp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/platform/linux/main_window_linux.cpp
+@@ -36,7 +36,9 @@ namespace {
+ bool noQtTrayIcon = false, tryAppIndicator = false;
+ bool useGtkBase = false, useAppIndicator = false, useStatusIcon = false, trayIconChecked = false, useUnityCount = false;
+
++#ifdef HAVE_APPINDICATOR
+ AppIndicator *_trayIndicator = 0;
++#endif
+ GtkStatusIcon *_trayIcon = 0;
+ GtkWidget *_trayMenu = 0;
+ GdkPixbuf *_trayPixbuf = 0;
+@@ -274,7 +276,9 @@ void MainWindow::workmodeUpdated(DBIWork
+ if (mode == dbiwmWindowOnly) {
+ if (noQtTrayIcon) {
+ if (useAppIndicator) {
++#ifdef HAVE_APPINDICATOR
+ Libs::app_indicator_set_status(_trayIndicator, APP_INDICATOR_STATUS_PASSIVE);
++#endif
+ } else if (useStatusIcon) {
+ Libs::gtk_status_icon_set_visible(_trayIcon, false);
+ }
+@@ -288,7 +292,9 @@ void MainWindow::workmodeUpdated(DBIWork
+ } else {
+ if (noQtTrayIcon) {
+ if (useAppIndicator) {
++#ifdef HAVE_APPINDICATOR
+ Libs::app_indicator_set_status(_trayIndicator, APP_INDICATOR_STATUS_ACTIVE);
++#endif
+ } else if (useStatusIcon) {
+ Libs::gtk_status_icon_set_visible(_trayIcon, true);
+ }
+@@ -305,7 +311,9 @@ void MainWindow::psUpdateIndicator() {
+ if (iconFile.exists()) {
+ QByteArray path = QFile::encodeName(iconFile.absoluteFilePath()), name = QFile::encodeName(iconFile.fileName());
+ name = name.mid(0, name.size() - 4);
++#ifdef HAVE_APPINDICATOR
+ Libs::app_indicator_set_icon_full(_trayIndicator, path.constData(), name);
++#endif
+ } else {
+ useAppIndicator = false;
+ }
+@@ -392,11 +400,15 @@ void MainWindow::LibsLoaded() {
+ && (Libs::g_object_ref_sink != nullptr)
+ && (Libs::g_object_unref != nullptr);
+
++#ifdef HAVE_APPINDICATOR
+ useAppIndicator = useGtkBase
+ && (Libs::app_indicator_new != nullptr)
+ && (Libs::app_indicator_set_status != nullptr)
+ && (Libs::app_indicator_set_menu != nullptr)
+ && (Libs::app_indicator_set_icon_full != nullptr);
++#else
++ useAppIndicator = false;
++#endif
+
+ if (tryAppIndicator && useGtkBase && useAppIndicator) {
+ noQtTrayIcon = true;
+@@ -439,6 +451,7 @@ void MainWindow::psCreateTrayIcon() {
+ return;
+ }
+
++#ifdef HAVE_APPINDICATOR
+ if (useAppIndicator) {
+ DEBUG_LOG(("Trying to create AppIndicator"));
+ _trayMenu = Libs::gtk_menu_new();
+@@ -469,6 +482,7 @@ void MainWindow::psCreateTrayIcon() {
+ useAppIndicator = false;
+ }
+ }
++#endif
+ if (useStatusIcon) {
+ if (Libs::gdk_init_check(0, 0)) {
+ if (!_trayMenu) _trayMenu = Libs::gtk_menu_new();
+@@ -585,10 +599,12 @@ MainWindow::~MainWindow() {
+ Libs::g_object_unref(_trayMenu);
+ _trayMenu = nullptr;
+ }
++#ifdef HAVE_APPINDICATOR
+ if (_trayIndicator) {
+ Libs::g_object_unref(_trayIndicator);
+ _trayIndicator = nullptr;
+ }
++#endif
+ #ifndef TDESKTOP_DISABLE_UNITY_INTEGRATION
+ if (_psUnityLauncherEntry) {
+ Libs::g_object_unref(_psUnityLauncherEntry);
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__audio.h
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__audio.h
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__audio.h
@@ -0,0 +1,20 @@
+--- Telegram/SourceFiles/platform/platform_audio.h.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/platform/platform_audio.h
+@@ -32,7 +32,7 @@ void DeInit();
+
+ // Platform dependent implementations.
+
+-#if defined Q_OS_MAC || defined Q_OS_LINUX
++#if defined Q_OS_MAC || defined Q_OS_LINUX || defined Q_OS_FREEBSD
+ namespace Platform {
+ namespace Audio {
+
+@@ -44,6 +44,6 @@ inline void DeInit() {
+
+ } // namespace Audio
+ } // namespace Platform
+-#elif defined Q_OS_WINRT || defined Q_OS_WIN // Q_OS_MAC || Q_OS_LINUX
++#elif defined Q_OS_WINRT || defined Q_OS_WIN // Q_OS_MAC || Q_OS_LINUX || Q_OS_FREEBSD
+ #include "platform/win/audio_win.h"
+-#endif // Q_OS_MAC || Q_OS_LINUX || Q_OS_WINRT || Q_OS_WIN
++#endif // Q_OS_MAC || Q_OS_LINUX || Q_OS_WINRT || Q_OS_WIN || Q_OS_FREEBSD
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__file__utilities.h
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__file__utilities.h
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__file__utilities.h
@@ -0,0 +1,14 @@
+--- Telegram/SourceFiles/platform/platform_file_utilities.h.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/platform/platform_file_utilities.h
+@@ -51,8 +51,8 @@ bool Get(QStringList &files, QByteArray
+
+ #ifdef Q_OS_MAC
+ #include "platform/mac/file_utilities_mac.h"
+-#elif defined Q_OS_LINUX // Q_OS_MAC
++#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) // Q_OS_MAC
+ #include "platform/linux/file_utilities_linux.h"
+-#elif defined Q_OS_WINRT || defined Q_OS_WIN // Q_OS_MAC || Q_OS_LINUX
++#elif defined Q_OS_WINRT || defined Q_OS_WIN // Q_OS_MAC || Q_OS_LINUX || Q_OS_FREEBSD
+ #include "platform/win/file_utilities_win.h"
+-#endif // Q_OS_MAC || Q_OS_LINUX || Q_OS_WINRT || Q_OS_WIN
++#endif // Q_OS_MAC || Q_OS_LINUX || Q_OS_WINRT || Q_OS_WIN || Q_OS_FREEBSD
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__main__window.h
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__main__window.h
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__main__window.h
@@ -0,0 +1,14 @@
+--- Telegram/SourceFiles/platform/platform_main_window.h.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/platform/platform_main_window.h
+@@ -32,8 +32,8 @@ class MainWindow;
+
+ #ifdef Q_OS_MAC
+ #include "platform/mac/main_window_mac.h"
+-#elif defined Q_OS_LINUX // Q_OS_MAC
++#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) // Q_OS_MAC
+ #include "platform/linux/main_window_linux.h"
+-#elif defined Q_OS_WIN // Q_OS_MAC || Q_OS_LINUX
++#elif defined Q_OS_WIN // Q_OS_MAC || Q_OS_LINUX || Q_OS_FREEBSD
+ #include "platform/win/main_window_win.h"
+-#endif // Q_OS_MAC || Q_OS_LINUX || Q_OS_WIN
++#endif // Q_OS_MAC || Q_OS_LINUX || Q_OS_WIN || Q_OS_FREEBSD
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__notifications__manager.h
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__notifications__manager.h
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__notifications__manager.h
@@ -0,0 +1,14 @@
+--- Telegram/SourceFiles/platform/platform_notifications_manager.h.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/platform/platform_notifications_manager.h
+@@ -39,8 +39,8 @@ void FlashBounce();
+
+ #ifdef Q_OS_MAC
+ #include "platform/mac/notifications_manager_mac.h"
+-#elif defined Q_OS_LINUX // Q_OS_MAC
++#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) // Q_OS_MAC
+ #include "platform/linux/notifications_manager_linux.h"
+-#elif defined Q_OS_WIN // Q_OS_MAC || Q_OS_LINUX
++#elif defined Q_OS_WIN // Q_OS_MAC || Q_OS_LINUX || Q_OS_FREEBSD
+ #include "platform/win/notifications_manager_win.h"
+-#endif // Q_OS_MAC || Q_OS_LINUX || Q_OS_WIN
++#endif // Q_OS_MAC || Q_OS_LINUX || Q_OS_WIN || Q_OS_FREEBSD
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__specific.h
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__specific.h
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__specific.h
@@ -0,0 +1,14 @@
+--- Telegram/SourceFiles/platform/platform_specific.h.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/platform/platform_specific.h
+@@ -45,8 +45,8 @@ void finish();
+
+ #ifdef Q_OS_MAC
+ #include "platform/mac/specific_mac.h"
+-#elif defined Q_OS_LINUX // Q_OS_MAC
++#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) // Q_OS_MAC
+ #include "platform/linux/specific_linux.h"
+-#elif defined Q_OS_WIN // Q_OS_MAC || Q_OS_LINUX
++#elif defined Q_OS_WIN // Q_OS_MAC || Q_OS_LINUX || Q_OS_FREEBSD
+ #include "platform/win/specific_win.h"
+-#endif // Q_OS_MAC || Q_OS_LINUX || Q_OS_WIN
++#endif // Q_OS_MAC || Q_OS_LINUX || Q_OS_WIN || Q_OS_FREEBSD
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__window__title.h
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__window__title.h
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__window__title.h
@@ -0,0 +1,17 @@
+--- Telegram/SourceFiles/platform/platform_window_title.h.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/platform/platform_window_title.h
+@@ -38,7 +38,7 @@ void PreviewWindowFramePaint(QImage &pre
+ #include "platform/mac/window_title_mac.h"
+ #elif defined Q_OS_WIN // Q_OS_MAC
+ #include "platform/win/window_title_win.h"
+-#elif defined Q_OS_WINRT || defined Q_OS_LINUX // Q_OS_MAC || Q_OS_WIN
++#elif defined Q_OS_WINRT || defined Q_OS_LINUX || defined Q_OS_FREEBSD // Q_OS_MAC || Q_OS_WIN
+
+ namespace Platform {
+
+@@ -56,4 +56,4 @@ inline void PreviewWindowFramePaint(QIma
+
+ } // namespace Platform
+
+-#endif // Q_OS_MAC || Q_OS_WIN || Q_OS_WINRT || Q_OS_LINUX
++#endif // Q_OS_MAC || Q_OS_WIN || Q_OS_WINRT || Q_OS_LINUX || Q_OS_FREEBSD
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_qt__functions.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_qt__functions.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_qt__functions.cpp
@@ -0,0 +1,97 @@
+--- Telegram/SourceFiles/qt_functions.cpp.orig 2017-12-11 10:10:37 UTC
++++ 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;
++}
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_qt__static__plugins.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_qt__static__plugins.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_qt__static__plugins.cpp
@@ -0,0 +1,19 @@
+--- Telegram/SourceFiles/qt_static_plugins.cpp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/qt_static_plugins.cpp
+@@ -27,14 +27,5 @@ Q_IMPORT_PLUGIN(QWindowsIntegrationPlugi
+ 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
++#elif defined Q_OS_LINUX || defined Q_OS_FREEBSD // Q_OS_WIN | Q_OS_MAC
++#endif // Q_OS_WIN | Q_OS_MAC | Q_OS_LINUX | Q_OS_FREEBSD
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_structs.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_structs.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_structs.cpp
@@ -0,0 +1,11 @@
+--- Telegram/SourceFiles/structs.cpp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/structs.cpp
+@@ -1280,7 +1280,7 @@ QString saveFileName(const QString &titl
+ name = name.replace(QRegularExpression(qsl("[\\\\\\/\\:\\*\\?\\\"\\<\\>\\|]")), qsl("_"));
+ #elif defined Q_OS_MAC
+ name = name.replace(QRegularExpression(qsl("[\\:]")), qsl("_"));
+-#elif defined Q_OS_LINUX
++#elif defined Q_OS_LINUX || defined Q_OS_FREEBSD
+ name = name.replace(QRegularExpression(qsl("[\\/]")), qsl("_"));
+ #endif
+ if (Global::AskDownloadPath() || savingAs) {
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_text_text.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_text_text.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_text_text.cpp
@@ -0,0 +1,17 @@
+--- Telegram/SourceFiles/ui/text/text.cpp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/ui/text/text.cpp
+@@ -1689,11 +1689,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();
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_text_text__block.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_text_text__block.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_text_text__block.cpp
@@ -0,0 +1,11 @@
+--- Telegram/SourceFiles/ui/text/text_block.cpp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/ui/text/text_block.cpp
+@@ -330,7 +330,7 @@ TextBlock::TextBlock(const style::font &
+ SignalHandlers::setCrashAnnotationRef("CrashString", &part);
+
+ QStackTextEngine engine(part, blockFont->f);
+- QTextLayout layout(&engine);
++ QTextLayout layout(part, blockFont->f);
+ layout.beginLayout();
+ layout.createLine();
+
Index: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_twidget.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_twidget.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_twidget.cpp
@@ -0,0 +1,14 @@
+--- Telegram/SourceFiles/ui/twidget.cpp.orig 2017-09-05 17:38:38 UTC
++++ Telegram/SourceFiles/ui/twidget.cpp
+@@ -191,9 +191,9 @@ void sendSynteticMouseEvent(QWidget *wid
+ , 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);
Index: head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_audio_AudioInput.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_audio_AudioInput.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_audio_AudioInput.cpp
@@ -0,0 +1,11 @@
+--- Telegram/ThirdParty/libtgvoip/audio/AudioInput.cpp.orig 2017-07-06 17:16:18 UTC
++++ Telegram/ThirdParty/libtgvoip/audio/AudioInput.cpp
+@@ -20,7 +20,7 @@
+ #include "../os/windows/AudioInputWave.h"
+ #endif
+ #include "../os/windows/AudioInputWASAPI.h"
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__FreeBSD__)
+ #include "../os/linux/AudioInputALSA.h"
+ #include "../os/linux/AudioInputPulse.h"
+ #else
Index: head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_audio_AudioOutput.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_audio_AudioOutput.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_audio_AudioOutput.cpp
@@ -0,0 +1,11 @@
+--- Telegram/ThirdParty/libtgvoip/audio/AudioOutput.cpp.orig 2017-07-06 17:16:18 UTC
++++ Telegram/ThirdParty/libtgvoip/audio/AudioOutput.cpp
+@@ -21,7 +21,7 @@
+ #include "../os/windows/AudioOutputWave.h"
+ #endif
+ #include "../os/windows/AudioOutputWASAPI.h"
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__FreeBSD__)
+ #include "../os/linux/AudioOutputALSA.h"
+ #include "../os/linux/AudioOutputPulse.h"
+ #else
Index: head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_os_posix_NetworkSocketPosix.cpp
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_os_posix_NetworkSocketPosix.cpp
+++ head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_os_posix_NetworkSocketPosix.cpp
@@ -0,0 +1,10 @@
+--- Telegram/ThirdParty/libtgvoip/os/posix/NetworkSocketPosix.cpp.orig 2017-07-06 17:16:18 UTC
++++ Telegram/ThirdParty/libtgvoip/os/posix/NetworkSocketPosix.cpp
+@@ -45,6 +45,7 @@ void NetworkSocketPosix::SetMaxPriority(
+ if(res<0){
+ LOGE("error setting darwin-specific net priority: %d / %s", errno, strerror(errno));
+ }
++#elif defined(__FreeBSD__)
+ #else
+ int prio=5;
+ int res=setsockopt(fd, SOL_SOCKET, SO_PRIORITY, &prio, sizeof(prio));
Index: head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_threading.h
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_threading.h
+++ head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_threading.h
@@ -0,0 +1,11 @@
+--- Telegram/ThirdParty/libtgvoip/threading.h.orig 2017-07-06 17:16:18 UTC
++++ Telegram/ThirdParty/libtgvoip/threading.h
+@@ -20,7 +20,7 @@ typedef pthread_cond_t tgvoip_lock_t;
+ #define start_thread(ref, entry, arg) pthread_create(&ref, NULL, entry, arg)
+ #define join_thread(thread) pthread_join(thread, NULL)
+ #ifndef __APPLE__
+-#define set_thread_name(thread, name) pthread_setname_np(thread, name)
++#define set_thread_name(thread, name)
+ #else
+ #define set_thread_name(thread, name)
+ #endif
Index: head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_webrtc__dsp_webrtc_base_stringutils.h
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_webrtc__dsp_webrtc_base_stringutils.h
+++ head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_webrtc__dsp_webrtc_base_stringutils.h
@@ -0,0 +1,11 @@
+--- Telegram/ThirdParty/libtgvoip/webrtc_dsp/webrtc/base/stringutils.h.orig 2017-07-06 17:16:18 UTC
++++ Telegram/ThirdParty/libtgvoip/webrtc_dsp/webrtc/base/stringutils.h
+@@ -23,7 +23,7 @@
+ #endif // WEBRTC_WIN
+
+ #if defined(WEBRTC_POSIX)
+-#ifdef BSD
++#if defined BSD || defined __FreeBSD__
+ #include <stdlib.h>
+ #else // BSD
+ #include <alloca.h>
Index: head/net-im/telegram-desktop/files/patch-Telegram_gyp_PrecompiledHeader.cmake
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_gyp_PrecompiledHeader.cmake
+++ head/net-im/telegram-desktop/files/patch-Telegram_gyp_PrecompiledHeader.cmake
@@ -0,0 +1,36 @@
+--- Telegram/gyp/PrecompiledHeader.cmake.orig 2017-09-05 17:38:38 UTC
++++ Telegram/gyp/PrecompiledHeader.cmake
+@@ -79,7 +79,7 @@ function(export_all_flags _filename _sou
+ endfunction()
+
+ function(add_precompiled_header _target _input)
+- if(CMAKE_COMPILER_IS_GNUCXX)
++ if(CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
+ get_filename_component(_name ${_input} NAME)
+ set(_pch_header "${CMAKE_CURRENT_SOURCE_DIR}/${_input}")
+ set(_pch_binary_dir "${CMAKE_CURRENT_BINARY_DIR}/${_target}_pch")
+@@ -112,7 +112,7 @@ function(add_precompiled_header _target
+ set(_compiler_FLAGS "@${_pch_c_flags_file}")
+ add_custom_command(
+ OUTPUT "${_output_c}"
+- COMMAND "${CMAKE_C_COMPILER}" ${_compiler_FLAGS} -x c-header -o "${_output_c}" -c "${_pchfile}"
++ COMMAND "${CMAKE_C_COMPILER}" "$(C_DEFINES)" "$(C_INCLUDES)" "$(C_FLAGS)" -x c-header -o "${_output_c}" -c "${_pchfile}"
+ DEPENDS "${_pchfile}" "${_pch_c_flags_file}"
+ IMPLICIT_DEPENDS C "${_pch_header}"
+ COMMENT "Precompiling ${_name} for ${_target} (C)")
+@@ -123,7 +123,7 @@ function(add_precompiled_header _target
+ set(_compiler_FLAGS "@${_pch_cpp_flags_file}")
+ add_custom_command(
+ OUTPUT "${_output_cxx}"
+- COMMAND "${CMAKE_CXX_COMPILER}" ${_compiler_FLAGS} -x c++-header -o "${_output_cxx}" -c "${_pchfile}"
++ COMMAND "${CMAKE_CXX_COMPILER}" "$(CXX_DEFINES)" "$(CXX_INCLUDES)" "$(CXX_FLAGS)" -x c++-header -o "${_output_cxx}" -c "${_pchfile}"
+ DEPENDS "${_pchfile}" "${_pch_cpp_flags_file}"
+ IMPLICIT_DEPENDS CXX "${_pch_header}"
+ COMMENT "Precompiling ${_name} for ${_target} (C++)")
+@@ -161,5 +161,5 @@ function(add_precompiled_header _target
+ OBJECT_DEPENDS "${_object_depends}")
+ endif()
+ endforeach()
+- endif(CMAKE_COMPILER_IS_GNUCXX)
++ endif(CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
+ endfunction()
Index: head/net-im/telegram-desktop/files/patch-Telegram_gyp_common.gypi
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_gyp_common.gypi
+++ head/net-im/telegram-desktop/files/patch-Telegram_gyp_common.gypi
@@ -0,0 +1,11 @@
+--- Telegram/gyp/common.gypi.orig 2017-09-05 17:38:38 UTC
++++ Telegram/gyp/common.gypi
+@@ -42,7 +42,7 @@
+ }, {
+ 'build_mac': 0,
+ }],
+- [ 'build_os == "linux"', {
++ [ 'build_os == "freebsd"', {
+ 'build_linux': 1,
+ }, {
+ 'build_linux': 0,
Index: head/net-im/telegram-desktop/files/patch-Telegram_gyp_settings__linux.gypi
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_gyp_settings__linux.gypi
+++ head/net-im/telegram-desktop/files/patch-Telegram_gyp_settings__linux.gypi
@@ -0,0 +1,18 @@
+--- Telegram/gyp/settings_linux.gypi.orig 2017-09-05 17:38:38 UTC
++++ Telegram/gyp/settings_linux.gypi
+@@ -25,7 +25,6 @@
+ '-pipe',
+ '-g',
+ '-Wall',
+- '-Werror',
+ '-W',
+ '-fPIC',
+ '-Wno-unused-variable',
+@@ -61,7 +60,6 @@
+ ],
+ 'defines': [
+ '_REENTRANT',
+- 'QT_STATICPLUGIN',
+ 'QT_PLUGIN',
+ ],
+ 'cflags_c': [
Index: head/net-im/telegram-desktop/files/patch-Telegram_gyp_telegram__sources.txt
===================================================================
--- head/net-im/telegram-desktop/files/patch-Telegram_gyp_telegram__sources.txt
+++ head/net-im/telegram-desktop/files/patch-Telegram_gyp_telegram__sources.txt
@@ -0,0 +1,18 @@
+--- Telegram/gyp/telegram_sources.txt.orig 2017-09-05 17:38:38 UTC
++++ Telegram/gyp/telegram_sources.txt
+@@ -598,14 +598,7 @@
+ <(emoji_suggestions_loc)/emoji_suggestions.cpp
+ <(emoji_suggestions_loc)/emoji_suggestions.h
+
+-platforms: !win
+-<(minizip_loc)/crypt.h
+-<(minizip_loc)/ioapi.c
+-<(minizip_loc)/ioapi.h
+-<(minizip_loc)/zip.c
+-<(minizip_loc)/zip.h
+-<(minizip_loc)/unzip.c
+-<(minizip_loc)/unzip.h
++<(src_loc)/qt_functions.cpp
+
+ platforms: mac
+ <(sp_media_key_tap_loc)/SPMediaKeyTap.m
Index: head/net-im/telegram-desktop/files/patch-lib_xdg_tg.protocol
===================================================================
--- head/net-im/telegram-desktop/files/patch-lib_xdg_tg.protocol
+++ head/net-im/telegram-desktop/files/patch-lib_xdg_tg.protocol
@@ -0,0 +1,9 @@
+--- lib/xdg/tg.protocol.orig 2017-09-05 17:38:38 UTC
++++ 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
Index: head/net-im/telegram-desktop/pkg-descr
===================================================================
--- head/net-im/telegram-desktop/pkg-descr
+++ head/net-im/telegram-desktop/pkg-descr
@@ -0,0 +1,13 @@
+Telegram Desktop is a messaging app. It is the fast and functional open source
+desktop app connected to the closed source Telegram server.
+
+Features:
+* accounts tied to telephone numbers
+* cloud-based messaging
+* bots for third party developers
+* channels
+* secret chats featuring with client-to-client encryption
+* stickers
+* voice calls
+
+WWW: https://desktop.telegram.org/
Index: head/net-im/telegram-desktop/pkg-plist
===================================================================
--- head/net-im/telegram-desktop/pkg-plist
+++ head/net-im/telegram-desktop/pkg-plist
@@ -0,0 +1,11 @@
+bin/telegram-desktop
+share/appdata/telegram-desktop.appdata.xml
+share/applications/telegram-desktop.desktop
+share/kservices5/tg.protocol
+share/icons/hicolor/128x128/apps/telegram-desktop.png
+share/icons/hicolor/16x16/apps/telegram-desktop.png
+share/icons/hicolor/256x256/apps/telegram-desktop.png
+share/icons/hicolor/32x32/apps/telegram-desktop.png
+share/icons/hicolor/48x48/apps/telegram-desktop.png
+share/icons/hicolor/512x512/apps/telegram-desktop.png
+share/icons/hicolor/64x64/apps/telegram-desktop.png
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Jan 13, 10:27 PM (20 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15788125
Default Alt Text
D13434.diff (63 KB)
Attached To
Mode
D13434: New port: net-im/telegram-desktop: Telegram Desktop messaging app
Attached
Detach File
Event Timeline
Log In to Comment