New port: net-im/telegram-desktop: Telegram Desktop messaging app
PR: 224193 Submitted by: Henry Hu <henry.hu.sh@gmail.com> Approved by: adamw (mentor) Differential Revision: https://reviews.freebsd.org/D13434
This commit is contained in:
parent
be560fc867
commit
857f98b9e4
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=456694
40 changed files with 1312 additions and 0 deletions
|
@ -167,6 +167,7 @@
|
|||
SUBDIR += skype4
|
||||
SUBDIR += teamwords
|
||||
SUBDIR += telegram
|
||||
SUBDIR += telegram-desktop
|
||||
SUBDIR += telegram-purple
|
||||
SUBDIR += telegramqml
|
||||
SUBDIR += telepathy-accounts-signon
|
||||
|
|
88
net-im/telegram-desktop/Makefile
Normal file
88
net-im/telegram-desktop/Makefile
Normal file
|
@ -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>
|
11
net-im/telegram-desktop/distinfo
Normal file
11
net-im/telegram-desktop/distinfo
Normal file
|
@ -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
|
14
net-im/telegram-desktop/files/CMakeLists.inj
Normal file
14
net-im/telegram-desktop/files/CMakeLists.inj
Normal file
|
@ -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 --------------
|
375
net-im/telegram-desktop/files/gyp-patches
Normal file
375
net-im/telegram-desktop/files/gyp-patches
Normal file
|
@ -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',
|
|
@ -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
|
||||
}
|
|
@ -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
|
|
@ -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;
|
||||
}
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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();
|
||||
})());
|
||||
|
|
@ -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
|
||||
}
|
|
@ -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);
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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) {
|
|
@ -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;
|
|
@ -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);
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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;
|
||||
+}
|
|
@ -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
|
|
@ -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) {
|
|
@ -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();
|
|
@ -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();
|
||||
|
|
@ -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);
|
|
@ -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
|
|
@ -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
|
|
@ -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));
|
|
@ -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
|
|
@ -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>
|
|
@ -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()
|
11
net-im/telegram-desktop/files/patch-Telegram_gyp_common.gypi
Normal file
11
net-im/telegram-desktop/files/patch-Telegram_gyp_common.gypi
Normal file
|
@ -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,
|
|
@ -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': [
|
|
@ -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
|
9
net-im/telegram-desktop/files/patch-lib_xdg_tg.protocol
Normal file
9
net-im/telegram-desktop/files/patch-lib_xdg_tg.protocol
Normal file
|
@ -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
|
13
net-im/telegram-desktop/pkg-descr
Normal file
13
net-im/telegram-desktop/pkg-descr
Normal file
|
@ -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/
|
11
net-im/telegram-desktop/pkg-plist
Normal file
11
net-im/telegram-desktop/pkg-plist
Normal file
|
@ -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
|
Loading…
Reference in a new issue