svn commit: r456694 - in head/net-im: . telegram-desktop telegram-desktop/files
Yuri Victorovich
yuri at FreeBSD.org
Mon Dec 18 23:35:49 UTC 2017
Author: yuri
Date: Mon Dec 18 23:35:45 2017
New Revision: 456694
URL: https://svnweb.freebsd.org/changeset/ports/456694
Log:
New port: net-im/telegram-desktop: Telegram Desktop messaging app
PR: 224193
Submitted by: Henry Hu <henry.hu.sh at gmail.com>
Approved by: adamw (mentor)
Differential Revision: https://reviews.freebsd.org/D13434
Added:
head/net-im/telegram-desktop/
head/net-im/telegram-desktop/Makefile (contents, props changed)
head/net-im/telegram-desktop/distinfo (contents, props changed)
head/net-im/telegram-desktop/files/
head/net-im/telegram-desktop/files/CMakeLists.inj (contents, props changed)
head/net-im/telegram-desktop/files/gyp-patches (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles___other_packer.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_base_build__config.h (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_base_lambda.h (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_config.h (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_layout.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_logs.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_main.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_mainwindow.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_linux__libs.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_linux__libs.h (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_main__window__linux.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__audio.h (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__file__utilities.h (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__main__window.h (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__notifications__manager.h (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__specific.h (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__window__title.h (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_qt__functions.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_qt__static__plugins.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_structs.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_text_text.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_text_text__block.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_ui_twidget.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_audio_AudioInput.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_audio_AudioOutput.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_os_posix_NetworkSocketPosix.cpp (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_threading.h (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_ThirdParty_libtgvoip_webrtc__dsp_webrtc_base_stringutils.h (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_gyp_PrecompiledHeader.cmake (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_gyp_common.gypi (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_gyp_settings__linux.gypi (contents, props changed)
head/net-im/telegram-desktop/files/patch-Telegram_gyp_telegram__sources.txt (contents, props changed)
head/net-im/telegram-desktop/files/patch-lib_xdg_tg.protocol (contents, props changed)
head/net-im/telegram-desktop/pkg-descr (contents, props changed)
head/net-im/telegram-desktop/pkg-plist (contents, props changed)
Modified:
head/net-im/Makefile
Modified: head/net-im/Makefile
==============================================================================
--- head/net-im/Makefile Mon Dec 18 23:01:19 2017 (r456693)
+++ head/net-im/Makefile Mon Dec 18 23:35:45 2017 (r456694)
@@ -167,6 +167,7 @@
SUBDIR += skype4
SUBDIR += teamwords
SUBDIR += telegram
+ SUBDIR += telegram-desktop
SUBDIR += telegram-purple
SUBDIR += telegramqml
SUBDIR += telepathy-accounts-signon
Added: head/net-im/telegram-desktop/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/Makefile Mon Dec 18 23:35:45 2017 (r456694)
@@ -0,0 +1,88 @@
+# $FreeBSD$
+
+PORTNAME= telegram-desktop
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.1.23
+CATEGORIES= net-im
+
+MAINTAINER= henry.hu.sh at 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>
Added: head/net-im/telegram-desktop/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/distinfo Mon Dec 18 23:35:45 2017 (r456694)
@@ -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
Added: head/net-im/telegram-desktop/files/CMakeLists.inj
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/CMakeLists.inj Mon Dec 18 23:35:45 2017 (r456694)
@@ -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 --------------
Added: head/net-im/telegram-desktop/files/gyp-patches
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/gyp-patches Mon Dec 18 23:35:45 2017 (r456694)
@@ -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',
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles___other_packer.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles___other_packer.cpp Mon Dec 18 23:35:45 2017 (r456694)
@@ -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
+ }
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_base_build__config.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_base_build__config.h Mon Dec 18 23:35:45 2017 (r456694)
@@ -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
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_base_lambda.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_base_lambda.h Mon Dec 18 23:35:45 2017 (r456694)
@@ -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;
+ }
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_config.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_config.h Mon Dec 18 23:35:45 2017 (r456694)
@@ -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
+ }
+
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_layout.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_layout.cpp Mon Dec 18 23:35:45 2017 (r456694)
@@ -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();
+ })());
+
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_logs.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_logs.cpp Mon Dec 18 23:35:45 2017 (r456694)
@@ -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
+ }
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_main.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_main.cpp Mon Dec 18 23:35:45 2017 (r456694)
@@ -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);
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_mainwindow.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_mainwindow.cpp Mon Dec 18 23:35:45 2017 (r456694)
@@ -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();
+ }
+ }
+
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_linux__libs.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_linux__libs.cpp Mon Dec 18 23:35:45 2017 (r456694)
@@ -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) {
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_linux__libs.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_linux__libs.h Mon Dec 18 23:35:45 2017 (r456694)
@@ -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;
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_main__window__linux.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_linux_main__window__linux.cpp Mon Dec 18 23:35:45 2017 (r456694)
@@ -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);
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__audio.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__audio.h Mon Dec 18 23:35:45 2017 (r456694)
@@ -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
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__file__utilities.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__file__utilities.h Mon Dec 18 23:35:45 2017 (r456694)
@@ -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
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__main__window.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__main__window.h Mon Dec 18 23:35:45 2017 (r456694)
@@ -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
Added: head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__notifications__manager.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-im/telegram-desktop/files/patch-Telegram_SourceFiles_platform_platform__notifications__manager.h Mon Dec 18 23:35:45 2017 (r456694)
@@ -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"
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-ports-head
mailing list