diff options
-rw-r--r-- | .SRCINFO | 24 | ||||
-rw-r--r-- | 0001-Dynamic-linking-system-libs.patch | 340 | ||||
-rw-r--r-- | 0002-Dynamic-linking-system-qt.patch | 165 | ||||
-rw-r--r-- | 0004-gtk3.patch | 22 | ||||
-rw-r--r-- | 0005-Use-system-wide-fonts.patch | 64 | ||||
-rw-r--r-- | 0006-Revert-Disable-DemiBold-fallback-for-Semibold.patch | 25 | ||||
-rw-r--r-- | PKGBUILD | 101 | ||||
-rw-r--r-- | series | 5 | ||||
-rw-r--r-- | telegram-desktop.sh | 3 |
9 files changed, 47 insertions, 702 deletions
@@ -1,16 +1,14 @@ pkgbase = telegram-desktop9 pkgdesc = Official Telegram Desktop client (personal build) - pkgver = 1.9.3 + pkgver = 1.9.8 pkgrel = 1 url = https://desktop.telegram.org/ arch = x86_64 license = GPL3 makedepends = cmake makedepends = git - makedepends = libappindicator-gtk3 makedepends = ninja makedepends = python - makedepends = quilt makedepends = range-v3 depends = enchant depends = ffmpeg @@ -20,17 +18,12 @@ pkgbase = telegram-desktop9 depends = openal depends = qt5-imageformats depends = xxhash + depends = libappindicator-gtk3 optdepends = ttf-opensans: default Open Sans font family - optdepends = libappindicator-gtk3: AppIndicator-based tray icon provides = telegram-desktop conflicts = telegram-desktop - source = https://github.com/telegramdesktop/tdesktop/releases/download/v1.9.3/tdesktop-1.9.3-full.tar.gz - source = 0001-Dynamic-linking-system-libs.patch - source = 0002-Dynamic-linking-system-qt.patch - source = 0004-gtk3.patch - source = 0005-Use-system-wide-fonts.patch - source = 0006-Revert-Disable-DemiBold-fallback-for-Semibold.patch - source = series + source = https://github.com/telegramdesktop/tdesktop/releases/download/v1.9.8/tdesktop-1.9.8-full.tar.gz + source = telegram-desktop.sh source = always_delete_for_everyone.patch source = always_clear_history_for_everyone.patch source = always_pin_without_notify.patch @@ -38,13 +31,8 @@ pkgbase = telegram-desktop9 source = clicky_sticker_panel.patch source = dont_pulse_mentions.patch source = no_circles.patch - sha512sums = af8e5d2c74d0b990958edd75a01f40b70bc21c0f69074acfb943f44fdb1f1e84465b461765a1a584513e54ab30045817b42b6839ad16cb4c1043fda89ea600f7 - sha512sums = 69fc5b50d2663af0c0bb539a6ac4b3d8996282f1701f484b9d1e29ddbd6eec942c999ee2f77d7effed13d4ecdd62e03e6ff064be0948ff91124962cc17c57143 - sha512sums = 5675787e849a811679b24e86b64e651c1aded56853e52c9455d8d914b85c153b63287a0d41aaa4c39c0e805ee1f411132431340d7aba99b11fcd1036e8d37680 - sha512sums = 8c3f48536ff3878baa73949057960eb5c8fcf3f152141c42740a7c0f2fc96c1708511a5d4ffe45ae9e20a08f88a3c2c77163a0a2050d7fca4356e4d2a96dfaf1 - sha512sums = d5fa5290b7041cb972c78066ca60d1cbc2bb3de10bf571ca1a639bf05abfa029531ffc0facba0564d39e32f89301960f4879b35bb9ac362ae9264d0a8c5c835c - sha512sums = 41f22a8b63b1929288cca5638c2719ce9754aa4334deb9004370c44f780fb8ac57f2b4075d529c494f4eac49dde22885f0f9efc0911840f79cb5fcf8d737061d - sha512sums = 17d831ce49ef522bae3558c679dda3eb1d84d69be40d9942f1ec2dc9fe32960b1233b072b09c107e5fc704c4a9286010f2cdd5e9830a2bdad97d3cb24b502ebe + sha512sums = 5562eb99812a8faec74fe073323d6e04e36311c1e4ce984035212ecfed8bd5d12df92cd0f0022401201136315fb5556971b267b4bf47edf4eeddc9926c7969dc + sha512sums = 3c21c871e28bac365400f7bc439a16ad1a9a8d87590ad764ce262f1db968c10387caed372d4e064cb50f43da726cebaa9b24bcbcc7c6d5489515620f44dbf56b sha512sums = 83af5f5d18bc26d2de5318b97f31956f34ceb0c14efa8cf36c310a543c8c7d3a448c4c448f2fac1e552b40816273bb5139666ff2fa20e2762148ee69ac20d4cb sha512sums = d32c2e0544b858842317b704e58016e028555a3baad6b22226e826c11dac8a412c808ffe8a7ea0f3f23c00c591e1a6e652c2ba63d8369491e188560f8296d0cb sha512sums = 91a0edab6408a223db77b75df5a913ffd36efa79340e8d78fa01ac2c3b6e09d5a5fc7fa214ccd40473093809f86b7aef199cebf56a1d5821c20083c4a3e5780b diff --git a/0001-Dynamic-linking-system-libs.patch b/0001-Dynamic-linking-system-libs.patch deleted file mode 100644 index fe525d2db436..000000000000 --- a/0001-Dynamic-linking-system-libs.patch +++ /dev/null @@ -1,340 +0,0 @@ -From: John Zimmermann <johnz@posteo.net> ---- a/cmake/external/crash_reports/CMakeLists.txt -+++ b/cmake/external/crash_reports/CMakeLists.txt -@@ -7,6 +7,7 @@ - add_library(external_crash_reports INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_crash_reports ALIAS external_crash_reports) - -+if(NOT DESKTOP_APP_DISABLE_CRASH_REPORTS) - if (WIN32 OR LINUX OR build_macstore) - add_subdirectory(breakpad) - target_link_libraries(external_crash_reports -@@ -20,3 +21,4 @@ - desktop-app::external_crashpad - ) - endif() -+endif() ---- a/cmake/external/ffmpeg/CMakeLists.txt -+++ b/cmake/external/ffmpeg/CMakeLists.txt -@@ -7,6 +7,18 @@ - add_library(external_ffmpeg INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_ffmpeg ALIAS external_ffmpeg) - -+if(DESKTOP_APP_USE_SYSTEM_LIBS) -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(FFMPEG REQUIRED libavcodec libavformat libavutil libswresample libswscale) -+ target_link_libraries(external_ffmpeg -+ INTERFACE -+ ${FFMPEG_LIBRARIES} -+ ) -+ target_include_directories(external_ffmpeg SYSTEM -+ INTERFACE -+ ${FFMPEG_INCLUDE_DIRS} -+ ) -+else() - target_include_directories(external_ffmpeg SYSTEM - INTERFACE - ${libs_loc}/ffmpeg -@@ -36,3 +48,4 @@ - Xrender - ) - endif() -+endif() ---- a/cmake/external/openal/CMakeLists.txt -+++ b/cmake/external/openal/CMakeLists.txt -@@ -7,6 +7,21 @@ - add_library(external_openal INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_openal ALIAS external_openal) - -+if(DESKTOP_APP_USE_SYSTEM_LIBS) -+ find_package(OpenAL REQUIRED) -+ target_include_directories(external_openal SYSTEM -+ INTERFACE -+ ${OPENAL_INCLUDE_DIR} -+ ) -+ target_link_libraries(external_openal -+ INTERFACE -+ ${OPENAL_LIBRARY} -+ ) -+ target_compile_definitions(external_openal -+ INTERFACE -+ AL_ALEXT_PROTOTYPES -+ ) -+else() - if (WIN32) - target_include_directories(external_openal SYSTEM - INTERFACE -@@ -41,3 +56,4 @@ - AL_LIBTYPE_STATIC - AL_ALEXT_PROTOTYPES - ) -+endif() ---- a/cmake/external/openssl/CMakeLists.txt -+++ b/cmake/external/openssl/CMakeLists.txt -@@ -7,7 +7,13 @@ - add_library(external_openssl INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_openssl ALIAS external_openssl) - --if (LINUX) -+if(DESKTOP_APP_USE_SYSTEM_LIBS) -+ find_package(OpenSSL REQUIRED) -+ target_include_directories(external_openssl SYSTEM -+ INTERFACE -+ ${OPENSSL_INCLUDE_DIR} -+ ) -+elseif (LINUX) - target_include_directories(external_openssl SYSTEM - INTERFACE - /usr/local/desktop-app/openssl-1.1.1/include -@@ -24,6 +30,13 @@ - ) - endif() - -+if(DESKTOP_APP_USE_SYSTEM_LIBS) -+ target_link_libraries(external_openssl -+ INTERFACE -+ OpenSSL::Crypto -+ OpenSSL::SSL -+ ) -+else() - if (WIN32) - set(openssl_lib_ext lib) - set(openssl_lib_loc ${libs_loc}/openssl_1_1_1/out32$<$<CONFIG:Debug>:.dbg>) -@@ -45,6 +58,7 @@ - ${openssl_lib_loc}/libssl.${openssl_lib_ext} - ${openssl_lib_loc}/libcrypto.${openssl_lib_ext} - ) -+endif() - - if (LINUX) - if (DESKTOP_APP_USE_GLIBC_WRAPS) ---- a/cmake/external/opus/CMakeLists.txt -+++ b/cmake/external/opus/CMakeLists.txt -@@ -7,6 +7,18 @@ - add_library(external_opus INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_opus ALIAS external_opus) - -+if(DESKTOP_APP_USE_SYSTEM_LIBS) -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(OPUS REQUIRED opus) -+ target_include_directories(external_opus SYSTEM -+ INTERFACE -+ ${OPUS_INCLUDE_DIRS} -+ ) -+ target_link_libraries(external_opus -+ INTERFACE -+ ${OPUS_LIBRARIES} -+ ) -+else() - target_include_directories(external_opus SYSTEM - INTERFACE - ${libs_loc}/opus/include -@@ -43,3 +55,4 @@ - opus - ) - endif() -+endif() ---- a/cmake/external/qt/CMakeLists.txt -+++ b/cmake/external/qt/CMakeLists.txt -@@ -15,6 +15,36 @@ - endif() - endif() - -+if(DESKTOP_APP_USE_SYSTEM_LIBS) -+ get_target_property(QTCORE_INCLUDE_DIRS Qt5::Core INTERFACE_INCLUDE_DIRECTORIES) -+ list(GET QTCORE_INCLUDE_DIRS 0 QT_INCLUDE_DIR) -+ -+ foreach(__qt_module IN ITEMS QtCore QtGui) -+ list(APPEND QT_PRIVATE_INCLUDE_DIRS -+ ${QT_INCLUDE_DIR}/${__qt_module}/${Qt5_VERSION} -+ ${QT_INCLUDE_DIR}/${__qt_module}/${Qt5_VERSION}/${__qt_module} -+ ) -+ endforeach() -+ message(STATUS "Using Qt private include directories: ${QT_PRIVATE_INCLUDE_DIRS}") -+ target_include_directories(external_qt SYSTEM -+ INTERFACE -+ ${QT_PRIVATE_INCLUDE_DIRS} -+ ) -+ target_link_libraries(external_qt -+ INTERFACE -+ Qt5::DBus -+ Qt5::Network -+ Qt5::Widgets -+ desktop-app::external_zlib -+ xcb -+ X11 -+ X11-xcb -+ dbus-1 -+ dl -+ glib-2.0 -+ pthread -+ ) -+else() - target_include_directories(external_qt SYSTEM - INTERFACE - ${qt_loc}/include -@@ -215,3 +245,4 @@ - pthread - ) - endif() -+endif() ---- a/cmake/external/qt/package.cmake -+++ b/cmake/external/qt/package.cmake -@@ -4,6 +4,9 @@ - # For license and copyright information please follow this link: - # https://github.com/desktop-app/legal/blob/master/LEGAL - -+if(DESKTOP_APP_USE_SYSTEM_LIBS) -+ -+else() - if (NOT APPLE OR NOT build_osx) - set(qt_version 5.12.5) - else() -@@ -17,6 +20,7 @@ - endif() - - set(Qt5_DIR ${qt_loc}/lib/cmake/Qt5) -+endif() - - find_package(Qt5 COMPONENTS Core Gui Widgets Network REQUIRED) - ---- a/cmake/external/ranges/CMakeLists.txt -+++ b/cmake/external/ranges/CMakeLists.txt -@@ -9,7 +9,7 @@ - - target_include_directories(external_ranges SYSTEM - INTERFACE -- ${libs_loc}/range-v3/include -+ /usr/include - ) - - if (WIN32) -@@ -18,4 +18,4 @@ - /experimental:preprocessor # need for range-v3 see https://github.com/ericniebler/range-v3#supported-compilers - /wd5105 # needed for `/experimental:preprocessor`, suppressing C5105 "macro expansion producing 'defined' has undefined behavior" - ) --endif() -\ No newline at end of file -+endif() ---- a/cmake/external/zlib/CMakeLists.txt -+++ b/cmake/external/zlib/CMakeLists.txt -@@ -7,6 +7,18 @@ - add_library(external_zlib INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_zlib ALIAS external_zlib) - -+if(DESKTOP_APP_USE_SYSTEM_LIBS) -+ find_package(ZLIB REQUIRED) -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(MINIZIP REQUIRED minizip) -+ find_library(minizip_LIBRARY minizip) -+ target_link_libraries(external_zlib INTERFACE ZLIB::ZLIB ${minizip_LIBRARY}) -+ target_include_directories(external_zlib SYSTEM -+ INTERFACE -+ ${ZLIB_INCLUDE_DIR} -+ ${MINIZIP_INCLUDE_DIRS} -+ ) -+else() - if (NOT WIN32) - add_library(external_minizip STATIC) - init_target(external_minizip "(external)") -@@ -49,3 +61,4 @@ - else() - target_link_static_libraries(external_zlib INTERFACE z) - endif() -+endif() ---- a/cmake/init_target.cmake -+++ b/cmake/init_target.cmake -@@ -27,7 +27,7 @@ - endif() - target_link_libraries(${target_name} PUBLIC desktop-app::common_options) - set_target_properties(${target_name} PROPERTIES -- LINK_SEARCH_START_STATIC 1 -+ LINK_SEARCH_START_STATIC 0 - XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_WEAK YES - XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN YES - XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN YES ---- a/cmake/options_linux.cmake -+++ b/cmake/options_linux.cmake -@@ -25,6 +25,9 @@ - -Wno-stringop-overflow - -Wno-maybe-uninitialized - -Wno-error=class-memaccess -+ -Wno-error=deprecated-copy -+ -Wno-error=deprecated-declarations -+ -Wno-error=redundant-move - ) - target_link_options(common_options - INTERFACE -@@ -33,8 +36,5 @@ - if (build_linux32) - target_compile_options(common_options INTERFACE -g0) - target_link_options(common_options INTERFACE -g0) --else() -- target_compile_options(common_options INTERFACE $<IF:$<CONFIG:Debug>,,-g -flto>) -- target_link_options(common_options INTERFACE $<IF:$<CONFIG:Debug>,,-g -flto -fuse-linker-plugin>) - endif() - ---- a/cmake/variables.cmake -+++ b/cmake/variables.cmake -@@ -10,6 +10,7 @@ - option(DESKTOP_APP_LOTTIE_USE_CACHE "Use caching in lottie animations." ON) - option(DESKTOP_APP_USE_GLIBC_WRAPS "Use wraps for new GLIBC features." OFF) - option(DESKTOP_APP_USE_PACKAGED "Find libraries using CMake instead of exact paths." ON) -+option(DESKTOP_APP_USE_SYSTEM_LIBS "Use system libs where possible." OFF) - - function(report_bad_special_target) - message(FATAL_ERROR "Bad special target '${DESKTOP_APP_SPECIAL_TARGET}'") -@@ -59,8 +60,7 @@ - set(DESKTOP_APP_USE_GLIBC_WRAPS OFF) - else() - set(LINUX 1) -- execute_process(COMMAND uname -m OUTPUT_VARIABLE machine_uname) -- if (NOT ${machine_uname} MATCHES "x86_64" AND NOT ${machine_uname} MATCHES "aarch64") -+ if (CMAKE_SIZEOF_VOID_P EQUAL 4) - set(build_linux32 1) - endif() - if (DESKTOP_APP_SPECIAL_TARGET STREQUAL "linux") ---- a/cmake/external/lz4/CMakeLists.txt -+++ b/cmake/external/lz4/CMakeLists.txt -@@ -4,8 +4,18 @@ - # For license and copyright information please follow this link: - # https://github.com/desktop-app/legal/blob/master/LEGAL - -+if(DESKTOP_APP_USE_SYSTEM_LIBS) -+ add_library(external_lz4 INTERFACE IMPORTED GLOBAL) -+ add_library(desktop-app::external_lz4 ALIAS external_lz4) -+ -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(LZ4 REQUIRED liblz4) -+ target_link_libraries(external_lz4 INTERFACE ${LZ4_LIBRARIES}) -+ target_include_directories(external_lz4 SYSTEM INTERFACE ${LZ4_INCLUDE_DIRS}) -+else() - add_library(external_lz4 OBJECT) - add_library(desktop-app::external_lz4 ALIAS external_lz4) -+ - init_target(external_lz4 "(external)") - - set(lz4_loc ${third_party_loc}/lz4/lib) -@@ -27,3 +37,4 @@ - PUBLIC - ${lz4_loc} - ) -+endif() ---- a/cmake/external/xxhash/CMakeLists.txt -+++ b/cmake/external/xxhash/CMakeLists.txt -@@ -7,6 +7,10 @@ - add_library(external_xxhash INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_xxhash ALIAS external_xxhash) - -+if(DESKTOP_APP_USE_SYSTEM_LIBS) -+ find_library(xxhash_LIBRARIES xxhash) -+ target_link_libraries(external_xxhash INTERFACE ${xxhash_LIBRARIES}) -+else() - target_include_directories(external_xxhash SYSTEM - INTERFACE - ${third_party_loc}/xxHash -@@ -16,3 +20,4 @@ - INTERFACE - XXH_INLINE_ALL - ) -+endif() diff --git a/0002-Dynamic-linking-system-qt.patch b/0002-Dynamic-linking-system-qt.patch deleted file mode 100644 index 9ed03e874589..000000000000 --- a/0002-Dynamic-linking-system-qt.patch +++ /dev/null @@ -1,165 +0,0 @@ -From 85ae791a9ebf5a2603f12d2a6e2d75549a01d701 Mon Sep 17 00:00:00 2001 -From: John Zimmermann <johnz@posteo.net> -Date: Thu, 2 Jan 2020 12:38:39 +0100 -Subject: [PATCH] Dynamic linking - ---- - Telegram/CMakeLists.txt | 7 +- - Telegram/SourceFiles/core/launcher.cpp | 8 +++ - Telegram/SourceFiles/qt_functions.cpp | 96 ++++++++++++++++++++++++++ - 3 files changed, 107 insertions(+), 4 deletions(-) - create mode 100644 Telegram/SourceFiles/qt_functions.cpp - ---- a/Telegram/CMakeLists.txt -+++ b/Telegram/CMakeLists.txt -@@ -934,9 +934,9 @@ - mainwidget.h - mainwindow.cpp - mainwindow.h -+ qt_functions.cpp - observer_peer.cpp - observer_peer.h -- qt_static_plugins.cpp - settings.cpp - settings.h - ) -@@ -1104,13 +1104,12 @@ - PRIVATE - TDESKTOP_API_ID=${TDESKTOP_API_ID} - TDESKTOP_API_HASH=${TDESKTOP_API_HASH} -- AL_LIBTYPE_STATIC - AL_ALEXT_PROTOTYPES - ) - --if (${CMAKE_GENERATOR} MATCHES "(Visual Studio|Xcode|Ninja)") -+if ((${CMAKE_GENERATOR} MATCHES "(Visual Studio|Xcode)") OR ((${CMAKE_GENERATOR} MATCHES "(Ninja)") AND (NOT ${DESKTOP_APP_SPECIAL_TARGET} STREQUAL ""))) - set(output_folder ${CMAKE_BINARY_DIR}) --elseif((${CMAKE_GENERATOR} MATCHES "(Unix Makefiles)") AND DESKTOP_APP_SPECIAL_TARGET STREQUAL "") -+elseif((${CMAKE_GENERATOR} MATCHES "(Unix Makefiles|Ninja)") AND DESKTOP_APP_SPECIAL_TARGET STREQUAL "") - set(output_folder ${CMAKE_BINARY_DIR}/bin) - else() - set(output_folder ${CMAKE_BINARY_DIR}/$<IF:$<CONFIG:Debug>,Debug,Release>) ---- /dev/null -+++ b/Telegram/SourceFiles/qt_functions.cpp -@@ -0,0 +1,96 @@ -+/**************************************************************************** -+** -+** 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$ -+** -+****************************************************************************/ -+ -+#include <private/qfontengine_p.h> -+ -+/* TODO: find a dynamic library with these symbols. */ -+ -+/* Debian maintainer: this function is taken from qfiledialog.cpp */ -+/* -+ Makes a list of filters from ;;-separated text. -+ Used by the mac and windows implementations -+*/ -+QStringList qt_make_filter_list(const QString &filter) -+{ -+ QString f(filter); -+ -+ if (f.isEmpty()) -+ return QStringList(); -+ -+ QString sep(QLatin1String(";;")); -+ int i = f.indexOf(sep, 0); -+ if (i == -1) { -+ if (f.indexOf(QLatin1Char('\n'), 0) != -1) { -+ sep = QLatin1Char('\n'); -+ i = f.indexOf(sep, 0); -+ } -+ } -+ -+ return f.split(sep); -+} -+ -+/* Debian maintainer: this constructor is taken from qtextengine.cpp for TextPainter::drawLine */ -+QTextItemInt::QTextItemInt(const QGlyphLayout &g, QFont *font, const QChar *chars_, int numChars, QFontEngine *fe, const QTextCharFormat &format) -+ : flags(0), justified(false), underlineStyle(QTextCharFormat::NoUnderline), charFormat(format), -+ num_chars(numChars), chars(chars_), logClusters(0), f(font), glyphs(g), fontEngine(fe) -+{ -+} -+ -+/* Debian maintainer: this method is also taken from qtextengine.cpp */ -+// Fix up flags and underlineStyle with given info -+void QTextItemInt::initWithScriptItem(const QScriptItem &si) -+{ -+ // explicitly initialize flags so that initFontAttributes can be called -+ // multiple times on the same TextItem -+ flags = 0; -+ if (si.analysis.bidiLevel %2) -+ flags |= QTextItem::RightToLeft; -+ ascent = si.ascent; -+ descent = si.descent; -+ -+ if (charFormat.hasProperty(QTextFormat::TextUnderlineStyle)) { -+ underlineStyle = charFormat.underlineStyle(); -+ } else if (charFormat.boolProperty(QTextFormat::FontUnderline) -+ || f->d->underline) { -+ underlineStyle = QTextCharFormat::SingleUnderline; -+ } -+ -+ // compat -+ if (underlineStyle == QTextCharFormat::SingleUnderline) -+ flags |= QTextItem::Underline; -+ -+ if (f->d->overline || charFormat.fontOverline()) -+ flags |= QTextItem::Overline; -+ if (f->d->strikeOut || charFormat.fontStrikeOut()) -+ flags |= QTextItem::StrikeOut; -+} ---- a/Telegram/SourceFiles/main.cpp -+++ b/Telegram/SourceFiles/main.cpp -@@ -8,6 +8,13 @@ - #include "core/launcher.h" - - int main(int argc, char *argv[]) { -+ // Telegram doesn't start when platform theme is set, see launchpad.net/bugs/1680943 -+ unsetenv("QT_QPA_PLATFORMTHEME"); -+ // unset QT screen scale related envvars, see bugs.archlinux.org/task/62594 -+ unsetenv("QT_SCREEN_SCALE_FACTORS"); -+ unsetenv("QT_AUTO_SCREEN_SCALE_FACTOR"); -+ unsetenv("QT_SCALE_FACTOR"); -+ unsetenv("QT_DEVICE_PIXEL_RATIO"); - const auto launcher = Core::Launcher::Create(argc, argv); - return launcher ? launcher->exec() : 1; - } ---- a/Telegram/lib_ui/qt_conf/linux.qrc -+++ b/Telegram/lib_ui/qt_conf/linux.qrc -@@ -1,6 +1,5 @@ - <RCC> - <qresource prefix="/qt/etc"> -- <file alias="qt.conf">qt_linux.conf</file> - </qresource> - <qresource prefix="/fc"> - <file>fc-custom.conf</file> diff --git a/0004-gtk3.patch b/0004-gtk3.patch deleted file mode 100644 index 8ca79a293239..000000000000 --- a/0004-gtk3.patch +++ /dev/null @@ -1,22 +0,0 @@ -From ef30081973681f4f8d261917fa763b00adfbe6e9 Mon Sep 17 00:00:00 2001 -From: John Zimmermann <johnz@posteo.net> -Date: Thu, 2 Jan 2020 13:10:31 +0100 -Subject: [PATCH] gtk3 - ---- - Telegram/CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/Telegram/CMakeLists.txt -+++ b/Telegram/CMakeLists.txt -@@ -1018,8 +1018,8 @@ - if (NOT TDESKTOP_DISABLE_GTK_INTEGRATION) - find_package(PkgConfig REQUIRED) - -- pkg_check_modules(GTK2 REQUIRED gtk+-2.0) -- target_include_directories(Telegram PRIVATE ${GTK2_INCLUDE_DIRS}) -+ pkg_check_modules(GTK3 REQUIRED gtk+-3.0) -+ target_include_directories(Telegram PRIVATE ${GTK3_INCLUDE_DIRS}) - target_compile_options(Telegram PRIVATE -Wno-register) - - set(appindicator_packages diff --git a/0005-Use-system-wide-fonts.patch b/0005-Use-system-wide-fonts.patch deleted file mode 100644 index c5d09bb676a1..000000000000 --- a/0005-Use-system-wide-fonts.patch +++ /dev/null @@ -1,64 +0,0 @@ -Do not force custom fontconfig configuration. ---- a/Telegram/lib_ui/fonts/fonts.qrc -+++ b/Telegram/lib_ui/fonts/fonts.qrc -@@ -1,10 +1,4 @@ - <RCC> - <qresource prefix="/gui/fonts"> -- <file>DAOpenSansRegular.ttf</file> -- <file>DAOpenSansRegularItalic.ttf</file> -- <file>DAOpenSansBold.ttf</file> -- <file>DAOpenSansBoldItalic.ttf</file> -- <file>DAOpenSansSemibold.ttf</file> -- <file>DAOpenSansSemiboldItalic.ttf</file> - </qresource> - </RCC> ---- a/Telegram/lib_ui/ui/style/style_core_font.cpp -+++ b/Telegram/lib_ui/ui/style/style_core_font.cpp -@@ -94,12 +94,12 @@ - FontTypesCount, - }; - QString FontTypeNames[FontTypesCount] = { -- "DAOpenSansRegular", -- "DAOpenSansRegularItalic", -- "DAOpenSansBold", -- "DAOpenSansBoldItalic", -- "DAOpenSansSemibold", -- "DAOpenSansSemiboldItalic", -+ "Open Sans", -+ "Open Sans", -+ "Open Sans", -+ "Open Sans", -+ "Open Sans Semibold", -+ "Open Sans Semibold", - }; - int32 FontTypeFlags[FontTypesCount] = { - 0, -@@ -135,7 +135,7 @@ - for (auto i = 0; i != FontTypesCount; ++i) { - const auto name = FontTypeNames[i]; - const auto flags = FontTypeFlags[i]; -- areGood[i] = LoadCustomFont(":/gui/fonts/" + name + ".ttf", name, flags); -+ areGood[i] = ValidateFont(name, flags); - Overrides[i] = name; - #ifdef Q_OS_WIN - // Attempt to workaround a strange font bug with Open Sans Semibold not loading. ---- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp -+++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp -@@ -82,8 +82,6 @@ - return; - } - } -- -- QFile(":/fc/fc-custom.conf").copy(custom); - #endif // TDESKTOP_DISABLE_DESKTOP_FILE_GENERATION - } - ---- a/Telegram/lib_ui/qt_conf/linux.qrc -+++ b/Telegram/lib_ui/qt_conf/linux.qrc -@@ -2,6 +2,5 @@ - <qresource prefix="/qt/etc"> - </qresource> - <qresource prefix="/fc"> -- <file>fc-custom.conf</file> - </qresource> - </RCC> diff --git a/0006-Revert-Disable-DemiBold-fallback-for-Semibold.patch b/0006-Revert-Disable-DemiBold-fallback-for-Semibold.patch deleted file mode 100644 index 689dd8352506..000000000000 --- a/0006-Revert-Disable-DemiBold-fallback-for-Semibold.patch +++ /dev/null @@ -1,25 +0,0 @@ -From b7effa2fd838afc049ec5cc00df3bd0810a95da4 Mon Sep 17 00:00:00 2001 -From: Jiachen YANG <farseerfc@gmail.com> -Date: Fri, 4 Oct 2019 16:59:26 +0900 -Subject: [PATCH 3/6] Revert "Disable DemiBold fallback for Semibold." - -This reverts commit 310c68a744ae8163c96b88944d96a6f6b14b3cdf. ---- - Telegram/lib_ui/ui/style/style_core_font.cpp | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/Telegram/lib_ui/ui/style/style_core_font.cpp -+++ b/Telegram/lib_ui/ui/style/style_core_font.cpp -@@ -225,9 +225,9 @@ - - f.setPixelSize(size); - if (_flags & FontBold) { -- f.setBold(true); -- //} else if (fontFamilies[family] == "Open Sans Semibold") { -- // f.setWeight(QFont::DemiBold); -+ f.setBold(_flags & FontBold); -+ } else if (fontFamilies[family] == "Open Sans Semibold") { -+ f.setWeight(QFont::DemiBold); - } - f.setItalic(_flags & FontItalic); - f.setUnderline(_flags & FontUnderline); @@ -6,61 +6,32 @@ # https://github.com/mymedia2/tdesktop pkgname=telegram-desktop9 -pkgver=1.9.3 +pkgver=1.9.8 pkgrel=1 pkgdesc='Official Telegram Desktop client (personal build)' arch=('x86_64') url="https://desktop.telegram.org/" license=('GPL3') -depends=( - 'enchant' - 'ffmpeg' - 'hicolor-icon-theme' - 'lz4' - 'minizip' - 'openal' - 'qt5-imageformats' - 'xxhash' -) -makedepends=( - 'cmake' - 'git' - 'libappindicator-gtk3' - 'ninja' - 'python' - 'quilt' - 'range-v3' -) -optdepends=( - 'ttf-opensans: default Open Sans font family' - 'libappindicator-gtk3: AppIndicator-based tray icon' -) +depends=('enchant' 'ffmpeg' 'hicolor-icon-theme' 'lz4' 'minizip' 'openal' + 'qt5-imageformats' 'xxhash' 'libappindicator-gtk3') +# for libappindicator-gtk3 see https://bugs.archlinux.org/task/65080 + +makedepends=('cmake' 'git' 'ninja' 'python' 'range-v3') +optdepends=('ttf-opensans: default Open Sans font family') provides=('telegram-desktop') conflicts=('telegram-desktop') -source=( - "https://github.com/telegramdesktop/tdesktop/releases/download/v${pkgver}/tdesktop-${pkgver}-full.tar.gz" - "0001-Dynamic-linking-system-libs.patch" - "0002-Dynamic-linking-system-qt.patch" - "0004-gtk3.patch" - "0005-Use-system-wide-fonts.patch" - "0006-Revert-Disable-DemiBold-fallback-for-Semibold.patch" - "series" +source=("https://github.com/telegramdesktop/tdesktop/releases/download/v${pkgver}/tdesktop-${pkgver}-full.tar.gz" + telegram-desktop.sh - "always_delete_for_everyone.patch" - "always_clear_history_for_everyone.patch" - "always_pin_without_notify.patch" - "always_send_as_photo_or_album.patch" - "clicky_sticker_panel.patch" - "dont_pulse_mentions.patch" - "no_circles.patch" -) -sha512sums=('af8e5d2c74d0b990958edd75a01f40b70bc21c0f69074acfb943f44fdb1f1e84465b461765a1a584513e54ab30045817b42b6839ad16cb4c1043fda89ea600f7' - '69fc5b50d2663af0c0bb539a6ac4b3d8996282f1701f484b9d1e29ddbd6eec942c999ee2f77d7effed13d4ecdd62e03e6ff064be0948ff91124962cc17c57143' - '5675787e849a811679b24e86b64e651c1aded56853e52c9455d8d914b85c153b63287a0d41aaa4c39c0e805ee1f411132431340d7aba99b11fcd1036e8d37680' - '8c3f48536ff3878baa73949057960eb5c8fcf3f152141c42740a7c0f2fc96c1708511a5d4ffe45ae9e20a08f88a3c2c77163a0a2050d7fca4356e4d2a96dfaf1' - 'd5fa5290b7041cb972c78066ca60d1cbc2bb3de10bf571ca1a639bf05abfa029531ffc0facba0564d39e32f89301960f4879b35bb9ac362ae9264d0a8c5c835c' - '41f22a8b63b1929288cca5638c2719ce9754aa4334deb9004370c44f780fb8ac57f2b4075d529c494f4eac49dde22885f0f9efc0911840f79cb5fcf8d737061d' - '17d831ce49ef522bae3558c679dda3eb1d84d69be40d9942f1ec2dc9fe32960b1233b072b09c107e5fc704c4a9286010f2cdd5e9830a2bdad97d3cb24b502ebe' + "always_delete_for_everyone.patch" + "always_clear_history_for_everyone.patch" + "always_pin_without_notify.patch" + "always_send_as_photo_or_album.patch" + "clicky_sticker_panel.patch" + "dont_pulse_mentions.patch" + "no_circles.patch") +sha512sums=('5562eb99812a8faec74fe073323d6e04e36311c1e4ce984035212ecfed8bd5d12df92cd0f0022401201136315fb5556971b267b4bf47edf4eeddc9926c7969dc' + '3c21c871e28bac365400f7bc439a16ad1a9a8d87590ad764ce262f1db968c10387caed372d4e064cb50f43da726cebaa9b24bcbcc7c6d5489515620f44dbf56b' '83af5f5d18bc26d2de5318b97f31956f34ceb0c14efa8cf36c310a543c8c7d3a448c4c448f2fac1e552b40816273bb5139666ff2fa20e2762148ee69ac20d4cb' 'd32c2e0544b858842317b704e58016e028555a3baad6b22226e826c11dac8a412c808ffe8a7ea0f3f23c00c591e1a6e652c2ba63d8369491e188560f8296d0cb' '91a0edab6408a223db77b75df5a913ffd36efa79340e8d78fa01ac2c3b6e09d5a5fc7fa214ccd40473093809f86b7aef199cebf56a1d5821c20083c4a3e5780b' @@ -72,15 +43,14 @@ sha512sums=('af8e5d2c74d0b990958edd75a01f40b70bc21c0f69074acfb943f44fdb1f1e84465 prepare() { cd "$srcdir/tdesktop-$pkgver-full" - QUILT_PATCHES=.. quilt --quiltrc=/dev/null push -a - - patch -Np1 -i "$srcdir/always_delete_for_everyone.patch" - patch -Np1 -i "$srcdir/always_clear_history_for_everyone.patch" - patch -Np1 -i "$srcdir/always_pin_without_notify.patch" - patch -Np1 -i "$srcdir/always_send_as_photo_or_album.patch" - patch -Np1 -i "$srcdir/clicky_sticker_panel.patch" - patch -Np1 -i "$srcdir/dont_pulse_mentions.patch" - patch -Np1 -i "$srcdir/no_circles.patch" + local src + for src in "${source[@]}"; do + src="${src%%::*}" + src="${src##*/}" + [[ $src = *.patch ]] || continue + msg2 "Applying patch $src..." + patch -Np1 < "../$src" + done } build() { @@ -88,34 +58,39 @@ build() { mkdir build export CXXFLAGS="$CXXFLAGS -ffile-prefix-map=$srcdir/tdesktop-$pkgver-full=" cmake -B build -G Ninja . \ + -Ddisable_autoupdate=1 \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DTDESKTOP_API_ID=2040 \ -DTDESKTOP_API_HASH=b18441a1ff607e10a989891a5462e627 \ -DDESKTOP_APP_USE_GLIBC_WRAPS=OFF \ - -DDESKTOP_APP_USE_SYSTEM_LIBS=ON \ + -DDESKTOP_APP_USE_PACKAGED=ON \ + -DDESKTOP_APP_USE_PACKAGED_RLOTTIE=OFF \ -DDESKTOP_APP_DISABLE_CRASH_REPORTS=ON \ - -DTDESKTOP_DISABLE_AUTOUPDATE=ON \ -DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME=ON \ -DTDESKTOP_DISABLE_DESKTOP_FILE_GENERATION=ON \ + -DTDESKTOP_USE_PACKAGED_TGVOIP=OFF \ -DDESKTOP_APP_SPECIAL_TARGET="" \ + -DTDESKTOP_LAUNCHER_BASENAME="telegramdesktop" \ -DTDESKTOP_FORCE_GTK_FILE_DIALOG=ON ninja -C build } package() { - cd "$srcdir/tdesktop-$pkgver-full/" install -dm755 "$pkgdir/usr/bin" - install -m755 "build/bin/Telegram" "$pkgdir/usr/bin/telegram-desktop" + install -m755 telegram-desktop.sh "$pkgdir/usr/bin/telegram-desktop" + + cd tdesktop-$pkgver-full + install -m755 build/bin/telegram-desktop "$pkgdir/usr/bin/telegram-desktop-bin" install -d "$pkgdir/usr/share/applications" - install -m644 "lib/xdg/telegramdesktop.desktop" "$pkgdir/usr/share/applications/telegramdesktop.desktop" + install -m644 lib/xdg/telegramdesktop.desktop "$pkgdir/usr/share/applications/telegramdesktop.desktop" install -d "$pkgdir/usr/share/kservices5" - install -m644 "lib/xdg/tg.protocol" "$pkgdir/usr/share/kservices5/tg.protocol" + install -m644 lib/xdg/tg.protocol "$pkgdir/usr/share/kservices5/tg.protocol" install -d "$pkgdir/usr/share/metainfo/" - install -m644 "lib/xdg/telegramdesktop.appdata.xml" "$pkgdir/usr/share/metainfo/telegramdesktop.appdata.xml" + install -m644 lib/xdg/telegramdesktop.appdata.xml "$pkgdir/usr/share/metainfo/telegramdesktop.appdata.xml" local icon_size icon_dir for icon_size in 16 32 48 64 128 256 512; do diff --git a/series b/series deleted file mode 100644 index 003fff65cc78..000000000000 --- a/series +++ /dev/null @@ -1,5 +0,0 @@ -0001-Dynamic-linking-system-libs.patch -0002-Dynamic-linking-system-qt.patch -0004-gtk3.patch -0005-Use-system-wide-fonts.patch -0006-Revert-Disable-DemiBold-fallback-for-Semibold.patch diff --git a/telegram-desktop.sh b/telegram-desktop.sh new file mode 100644 index 000000000000..6611ff848fc2 --- /dev/null +++ b/telegram-desktop.sh @@ -0,0 +1,3 @@ +#!/usr/bin/sh +unset QT_QPA_PLATFORMTHEME +exec /usr/bin/telegram-desktop-bin "$@" |