Telegram* updated
This commit is contained in:
parent
003c14d62a
commit
d1a2f821f1
68
eclass/patches.eclass
Normal file
68
eclass/patches.eclass
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# Copyright 1999-2022 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
# @ECLASS: patches.eclass
|
||||||
|
# @MAINTAINER:
|
||||||
|
# mva
|
||||||
|
# @AUTHOR:
|
||||||
|
# mva
|
||||||
|
# @BLURB: autopatching magic (pretty useful for me, but criticized for obscurity and looks like not suitable for gentoo repo)
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Eclass that checks for patches directories existance and auto-add them into PATCHES=()
|
||||||
|
|
||||||
|
EXPORT_FUNCTIONS src_prepare
|
||||||
|
|
||||||
|
|
||||||
|
patches_src_prepare() {
|
||||||
|
[[ -z ${PATCHES[@]} ]] && PATCHES=()
|
||||||
|
PATCHDIR_BASE="${FILESDIR}/patches"
|
||||||
|
PATCHDIRS=("${CUSTOM_PATCHDIR:-non-existant-dir}" "${SLOT//\/*}" "${PV}" "${PV}-${PR}")
|
||||||
|
for PATCHDIR in ${PATCHDIRS[@]/#/${PATCHDIR_BASE}/}; do
|
||||||
|
if [[ -d "${PATCHDIR}" ]]; then
|
||||||
|
_patchdir_not_empty() {
|
||||||
|
local has_files
|
||||||
|
local LC_ALL=POSIX
|
||||||
|
local prev_shopt=$(shopt -p nullglob)
|
||||||
|
shopt -s nullglob
|
||||||
|
local f
|
||||||
|
local lvl=${2}
|
||||||
|
for f in "${1:-${PATCHDIR}}"/*; do
|
||||||
|
if [[ "${f}" == *.diff || "${f}" == *.patch ]] && [[ -f "${f}" || -L "${f}" ]]; then
|
||||||
|
has_files=1
|
||||||
|
elif [[ -d "${f}" ]] && [[ "${lvl:-0}" -eq 0 ]]; then
|
||||||
|
# limit recursion to first level only,
|
||||||
|
# since eapply cannot into recursion,
|
||||||
|
# while 2-lvl "conditional" patching implemented below
|
||||||
|
let lvl+=1
|
||||||
|
_patchdir_not_empty "${f}" "${lvl}" && has_files=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
${prev_shopt}
|
||||||
|
[[ -n "${has_files}" ]]; return $?
|
||||||
|
}
|
||||||
|
|
||||||
|
_patchdir_not_empty && PATCHES+=("${PATCHDIR}")
|
||||||
|
|
||||||
|
if [[ -d "${PATCHDIR}/conditional" ]]; then
|
||||||
|
pushd "${PATCHDIR}/conditional" &>/dev/null
|
||||||
|
for d in *; do
|
||||||
|
if [[ -d ${d} ]]; then
|
||||||
|
if [[ "${d##no-}" == ${d} ]]; then
|
||||||
|
(use "${d}" && _patchdir_not_empty "${d}") && PATCHES+=("${PATCHDIR}/conditional/${d}")
|
||||||
|
else
|
||||||
|
(use "${d##no-}" && _patchdir_not_empty "${d}") || PATCHES+=("${PATCHDIR}/conditional/${d}")
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
popd &>/dev/null
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if declare -f cmake-utils_src_prepare &>/dev/null; then
|
||||||
|
cmake-utils_src_prepare
|
||||||
|
elif declare -f cmake_src_prepare &>/dev/null; then
|
||||||
|
cmake_src_prepare
|
||||||
|
else
|
||||||
|
default_src_prepare
|
||||||
|
fi
|
||||||
|
}
|
1
media-libs/libtgvoip/Manifest
Normal file
1
media-libs/libtgvoip/Manifest
Normal file
@ -0,0 +1 @@
|
|||||||
|
DIST libtgvoip-2.4.5_pre20231016.tar.gz 1089860 BLAKE2B b472ed42fb089d136ec00aec55a3869acb2f5eac219747c75a6643aa4ff3715924af3379e846cdb4962bb72b69007422ca9063ba457d3c8fdb6f03ce41fec981 SHA512 6e9bc8b229622ac2d7fd5bd60f48a1709a3914b8c610a0257471a39bef613a4302d15d1eb32fcd6e13f99b22e3d82e78c9e7f91a5bccb1c84641be965c72f646
|
94
media-libs/libtgvoip/files/cmake/libtgvoip.cmake
Normal file
94
media-libs/libtgvoip/files/cmake/libtgvoip.cmake
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
project(tgvoip)
|
||||||
|
|
||||||
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
|
option(ENABLE_ALSA "Enable ALSA" ON)
|
||||||
|
option(ENABLE_PULSEAUDIO "Enable pulseaudio" ON)
|
||||||
|
option(BUILD_STATIC_LIBRARY "Build static library" OFF)
|
||||||
|
option(BUILD_SHARED_LIBRARY "Build static library" ON)
|
||||||
|
|
||||||
|
file(GLOB TGVOIP_SOURCE_FILES
|
||||||
|
*.cpp
|
||||||
|
audio/*.cpp
|
||||||
|
os/linux/*.cpp
|
||||||
|
os/posix/*.cpp
|
||||||
|
video/*.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
if(BUILD_SHARED_LIBRARY OR BUILD_STATIC_LIBRARY)
|
||||||
|
find_package(tg_owt REQUIRED)
|
||||||
|
find_package(PkgConfig REQUIRED)
|
||||||
|
pkg_check_modules(OPUS REQUIRED opus)
|
||||||
|
set(TGVOIP_COMPILE_DEFINITIONS TGVOIP_USE_DESKTOP_DSP WEBRTC_NS_FLOAT WEBRTC_POSIX WEBRTC_LINUX INSTALL_TARGETS)
|
||||||
|
|
||||||
|
if(ENABLE_ALSA)
|
||||||
|
pkg_check_modules(ALSA REQUIRED alsa)
|
||||||
|
else()
|
||||||
|
file(GLOB ALSA_SOURCE_FILES
|
||||||
|
os/linux/AudioInputALSA.cpp
|
||||||
|
os/linux/AudioOutputALSA.cpp
|
||||||
|
)
|
||||||
|
list(REMOVE_ITEM TGVOIP_SOURCE_FILES ${ALSA_SOURCE_FILES})
|
||||||
|
list(APPEND TGVOIP_COMPILE_DEFINITIONS WITHOUT_ALSA)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_PULSEAUDIO)
|
||||||
|
pkg_check_modules(LIBPULSE REQUIRED libpulse)
|
||||||
|
else()
|
||||||
|
file(GLOB PULSEAUDIO_SOURCE_FILES
|
||||||
|
os/linux/AudioInputPulse.cpp
|
||||||
|
os/linux/AudioOutputPulse.cpp
|
||||||
|
os/linux/AudioPulse.cpp
|
||||||
|
)
|
||||||
|
list(REMOVE_ITEM TGVOIP_SOURCE_FILES ${PULSEAUDIO_SOURCE_FILES})
|
||||||
|
list(APPEND TGVOIP_COMPILE_DEFINITIONS WITHOUT_PULSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
get_target_property(OWT_INCLUDE_DIRS tg_owt::tg_owt INTERFACE_INCLUDE_DIRECTORIES)
|
||||||
|
|
||||||
|
add_library(${PROJECT_NAME} OBJECT ${TGVOIP_SOURCE_FILES})
|
||||||
|
list(APPEND INSTALL_TARGETS ${PROJECT_NAME})
|
||||||
|
target_compile_definitions(${PROJECT_NAME} PUBLIC ${TGVOIP_COMPILE_DEFINITIONS})
|
||||||
|
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||||
|
"${OPUS_INCLUDE_DIRS}"
|
||||||
|
# "${CMAKE_CURRENT_LIST_DIR}/webrtc_dsp"
|
||||||
|
"${CMAKE_CURRENT_LIST_DIR}/audio"
|
||||||
|
"${CMAKE_CURRENT_LIST_DIR}/video"
|
||||||
|
"${OWT_INCLUDE_DIRS}"
|
||||||
|
)
|
||||||
|
set(LIBTGVOIP_VERSION 2.4.4)
|
||||||
|
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
||||||
|
set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
|
||||||
|
set(libdir "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
|
||||||
|
set(includedir "${CMAKE_INSTALL_PREFIX}/include")
|
||||||
|
configure_file(tgvoip.pc.in tgvoip.pc @ONLY)
|
||||||
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tgvoip.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
||||||
|
|
||||||
|
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER TgVoip.h)
|
||||||
|
# install(TARGETS ${PROJECT_NAME} PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/tgvoip")
|
||||||
|
endif(BUILD_SHARED_LIBRARY OR BUILD_STATIC_LIBRARY)
|
||||||
|
|
||||||
|
if(BUILD_SHARED_LIBRARY)
|
||||||
|
add_library(${PROJECT_NAME}_shared SHARED $<TARGET_OBJECTS:${PROJECT_NAME}>)
|
||||||
|
target_compile_definitions(${PROJECT_NAME}_shared PUBLIC ${TGVOIP_COMPILE_DEFINITIONS})
|
||||||
|
set_target_properties(${PROJECT_NAME}_shared PROPERTIES OUTPUT_NAME ${PROJECT_NAME})
|
||||||
|
set_target_properties(${PROJECT_NAME}_shared PROPERTIES SOVERSION 2 VERSION ${LIBTGVOIP_VERSION})
|
||||||
|
target_link_libraries(${PROJECT_NAME}_shared dl ${OPUS_LIBRARIES} tg_owt)
|
||||||
|
list(APPEND INSTALL_TARGETS ${PROJECT_NAME}_shared)
|
||||||
|
endif(BUILD_SHARED_LIBRARY)
|
||||||
|
|
||||||
|
if(BUILD_STATIC_LIBRARY)
|
||||||
|
add_library(${PROJECT_NAME}_static STATIC $<TARGET_OBJECTS:${PROJECT_NAME}>)
|
||||||
|
target_compile_definitions(${PROJECT_NAME}_static PUBLIC ${TGVOIP_COMPILE_DEFINITIONS})
|
||||||
|
set_target_properties(${PROJECT_NAME}_static PROPERTIES OUTPUT_NAME ${PROJECT_NAME})
|
||||||
|
target_link_libraries(${PROJECT_NAME}_static dl ${OPUS_LIBRARIES} tg_owt)
|
||||||
|
list(APPEND INSTALL_TARGETS ${PROJECT_NAME}_static)
|
||||||
|
endif(BUILD_STATIC_LIBRARY)
|
||||||
|
|
||||||
|
install(TARGETS ${INSTALL_TARGETS}
|
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
install(DIRECTORY ${CMAKE_SOURCE_DIR}/ DESTINATION include/${PROJECT_NAME} FILES_MATCHING PATTERN "*.h*" PATTERN "webrtc_dsp/*" EXCLUDE PATTERN ".git*" EXCLUDE)
|
100
media-libs/libtgvoip/libtgvoip-2.4.5_pre20231016.ebuild
Normal file
100
media-libs/libtgvoip/libtgvoip-2.4.5_pre20231016.ebuild
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools flag-o-matic patches
|
||||||
|
# cmake
|
||||||
|
|
||||||
|
if [[ "${PV}" == 9999 ]]; then
|
||||||
|
EGIT_SUBMODULES=(-cmake)
|
||||||
|
EGIT_REPO_URI="https://github.com/telegramdesktop/${PN}"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
if [[ "${PV}" == *_pre* ]]; then
|
||||||
|
EGIT_COMMIT="06983098037603a4b2e5f7a8ba665da32857a631"
|
||||||
|
fi
|
||||||
|
MY_PV="${EGIT_COMMIT:-${PV}}"
|
||||||
|
SRC_URI="https://github.com/telegramdesktop/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
|
||||||
|
# ~mips
|
||||||
|
# ^ pulseaudio
|
||||||
|
S="${WORKDIR}/${PN}-${MY_PV}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="VoIP library for Telegram clients"
|
||||||
|
HOMEPAGE="https://github.com/telegramdesktop/libtgvoip"
|
||||||
|
|
||||||
|
LICENSE="Unlicense"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="+alsa +dsp pulseaudio pipewire static-libs"
|
||||||
|
REQUIRED_USE="|| ( dsp alsa pulseaudio pipewire )"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
alsa? ( media-libs/alsa-lib )
|
||||||
|
dsp? (
|
||||||
|
dev-cpp/abseil-cpp:=
|
||||||
|
>=media-libs/tg_owt-0_pre20230401:=
|
||||||
|
)
|
||||||
|
dev-libs/openssl:=
|
||||||
|
media-libs/opus
|
||||||
|
pulseaudio? ( !pipewire? ( media-sound/pulseaudio-daemon ) )
|
||||||
|
pipewire? (
|
||||||
|
!media-sound/pulseaudio-daemon
|
||||||
|
media-video/pipewire[sound-server(-)]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="virtual/pkgconfig"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# cp "${FILESDIR}"/cmake/"${PN}".cmake "${S}"/CMakeLists.txt
|
||||||
|
rm -rf "${S}"/webrtc_dsp # we'll link over tg_owt instead
|
||||||
|
# Will be controlled by us
|
||||||
|
sed -i -e '/^CFLAGS += -DTGVOIP_NO_DSP/d' Makefile.am || die
|
||||||
|
# https://bugs.gentoo.org/717210
|
||||||
|
echo 'libtgvoip_la_LIBTOOLFLAGS = --tag=CXX' >> Makefile.am || die
|
||||||
|
# default
|
||||||
|
patches_src_prepare
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
# src_configure() {
|
||||||
|
# filter-flags '-DDEBUG' # produces bugs in bundled forks of 3party code
|
||||||
|
# append-cppflags '-DNDEBUG' # Telegram sets that in code
|
||||||
|
# # (and I also forced that in ebuild to have the same behaviour),
|
||||||
|
# # and segfaults on voice calls on mismatch
|
||||||
|
# # (if tg was built with it, and deps are built without it, and vice versa)
|
||||||
|
# local mycmakeargs=(
|
||||||
|
# #-DDESKTOP_APP_USE_PACKAGED=TRUE
|
||||||
|
# #-DDESKTOP_APP_DISABLE_CRASH_REPORTS=TRUE
|
||||||
|
# -DBUILD_STATIC_LIBRARY=$(usex static-libs ON OFF)
|
||||||
|
# -DENABLE_ALSA=$(usex alsa ON OFF)
|
||||||
|
# -DENABLE_PULSEAUDIO=$(usex pulseaudio ON $(usex pipewire ON OFF))
|
||||||
|
# )
|
||||||
|
# cmake_src_configure
|
||||||
|
# }
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Not using the CMake build despite being the preferred one, because
|
||||||
|
# it's lacking relevant configure options.
|
||||||
|
local myconf=(
|
||||||
|
--disable-dsp # WebRTC is linked from tg_owt
|
||||||
|
$(use_with alsa)
|
||||||
|
$(use_with pulseaudio pulse)
|
||||||
|
$(use_with pipewire pulse)
|
||||||
|
)
|
||||||
|
if use dsp; then
|
||||||
|
append-cppflags "-I${ESYSROOT}/usr/include/tg_owt"
|
||||||
|
# append-cppflags "-I${ESYSROOT}/usr/include/tg_owt/third_party/abseil-cpp"
|
||||||
|
append-libs '-ltg_owt'
|
||||||
|
else
|
||||||
|
append-cppflags '-DTGVOIP_NO_DSP'
|
||||||
|
fi
|
||||||
|
econf "${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
default
|
||||||
|
find "${D}" -name '*.la' -delete || die
|
||||||
|
}
|
100
media-libs/libtgvoip/libtgvoip-9999.ebuild
Normal file
100
media-libs/libtgvoip/libtgvoip-9999.ebuild
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
# Copyright 1999-2023 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit autotools flag-o-matic patches
|
||||||
|
# cmake
|
||||||
|
|
||||||
|
if [[ "${PV}" == 9999 ]]; then
|
||||||
|
EGIT_SUBMODULES=(-cmake)
|
||||||
|
EGIT_REPO_URI="https://github.com/telegramdesktop/${PN}"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
if [[ "${PV}" == *_pre* ]]; then
|
||||||
|
EGIT_COMMIT="06983098037603a4b2e5f7a8ba665da32857a631"
|
||||||
|
fi
|
||||||
|
MY_PV="${EGIT_COMMIT:-${PV}}"
|
||||||
|
SRC_URI="https://github.com/telegramdesktop/${PN}/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
|
||||||
|
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
|
||||||
|
# ~mips
|
||||||
|
# ^ pulseaudio
|
||||||
|
S="${WORKDIR}/${PN}-${MY_PV}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="VoIP library for Telegram clients"
|
||||||
|
HOMEPAGE="https://github.com/telegramdesktop/libtgvoip"
|
||||||
|
|
||||||
|
LICENSE="Unlicense"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="+alsa +dsp pulseaudio pipewire static-libs"
|
||||||
|
REQUIRED_USE="|| ( dsp alsa pulseaudio pipewire )"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
alsa? ( media-libs/alsa-lib )
|
||||||
|
dsp? (
|
||||||
|
dev-cpp/abseil-cpp:=
|
||||||
|
>=media-libs/tg_owt-0_pre20230401:=
|
||||||
|
)
|
||||||
|
dev-libs/openssl:=
|
||||||
|
media-libs/opus
|
||||||
|
pulseaudio? ( !pipewire? ( media-sound/pulseaudio-daemon ) )
|
||||||
|
pipewire? (
|
||||||
|
!media-sound/pulseaudio-daemon
|
||||||
|
media-video/pipewire[sound-server(-)]
|
||||||
|
)
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND="virtual/pkgconfig"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# cp "${FILESDIR}"/cmake/"${PN}".cmake "${S}"/CMakeLists.txt
|
||||||
|
rm -rf "${S}"/webrtc_dsp # we'll link over tg_owt instead
|
||||||
|
# Will be controlled by us
|
||||||
|
sed -i -e '/^CFLAGS += -DTGVOIP_NO_DSP/d' Makefile.am || die
|
||||||
|
# https://bugs.gentoo.org/717210
|
||||||
|
echo 'libtgvoip_la_LIBTOOLFLAGS = --tag=CXX' >> Makefile.am || die
|
||||||
|
# default
|
||||||
|
patches_src_prepare
|
||||||
|
eautoreconf
|
||||||
|
}
|
||||||
|
|
||||||
|
# src_configure() {
|
||||||
|
# filter-flags '-DDEBUG' # produces bugs in bundled forks of 3party code
|
||||||
|
# append-cppflags '-DNDEBUG' # Telegram sets that in code
|
||||||
|
# # (and I also forced that in ebuild to have the same behaviour),
|
||||||
|
# # and segfaults on voice calls on mismatch
|
||||||
|
# # (if tg was built with it, and deps are built without it, and vice versa)
|
||||||
|
# local mycmakeargs=(
|
||||||
|
# #-DDESKTOP_APP_USE_PACKAGED=TRUE
|
||||||
|
# #-DDESKTOP_APP_DISABLE_CRASH_REPORTS=TRUE
|
||||||
|
# -DBUILD_STATIC_LIBRARY=$(usex static-libs ON OFF)
|
||||||
|
# -DENABLE_ALSA=$(usex alsa ON OFF)
|
||||||
|
# -DENABLE_PULSEAUDIO=$(usex pulseaudio ON $(usex pipewire ON OFF))
|
||||||
|
# )
|
||||||
|
# cmake_src_configure
|
||||||
|
# }
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Not using the CMake build despite being the preferred one, because
|
||||||
|
# it's lacking relevant configure options.
|
||||||
|
local myconf=(
|
||||||
|
--disable-dsp # WebRTC is linked from tg_owt
|
||||||
|
$(use_with alsa)
|
||||||
|
$(use_with pulseaudio pulse)
|
||||||
|
$(use_with pipewire pulse)
|
||||||
|
)
|
||||||
|
if use dsp; then
|
||||||
|
append-cppflags "-I${ESYSROOT}/usr/include/tg_owt"
|
||||||
|
# append-cppflags "-I${ESYSROOT}/usr/include/tg_owt/third_party/abseil-cpp"
|
||||||
|
append-libs '-ltg_owt'
|
||||||
|
else
|
||||||
|
append-cppflags '-DTGVOIP_NO_DSP'
|
||||||
|
fi
|
||||||
|
econf "${myconf[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
default
|
||||||
|
find "${D}" -name '*.la' -delete || die
|
||||||
|
}
|
21
media-libs/libtgvoip/metadata.xml
Normal file
21
media-libs/libtgvoip/metadata.xml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>mva@gentoo.org</email>
|
||||||
|
<description>Also, you can find me on IRC (Libera.Chat) as mva, or in Telegram as @mva_name</description>
|
||||||
|
<name>Vadim A. Misbakh-Soloviov</name>
|
||||||
|
</maintainer>
|
||||||
|
<use>
|
||||||
|
<flag name="alsa">Enable ALSA support</flag>
|
||||||
|
<flag name="dsp">Enable signal processing (echo cancellation, noise suppression, and automatic gain control)</flag>
|
||||||
|
<flag name="pulseaudio">Enable PulseAudio support</flag>
|
||||||
|
<flag name="pipewire">Enable PipeWire support (actually, only force needed dependencies)</flag>
|
||||||
|
<!-- <flag name="libcxx">Build with <pkg>sys-devel/clang</pkg> against <pkg>sys-libs/libcxx</pkg></flag> -->
|
||||||
|
<flag name="static-libs">Build static library</flag>
|
||||||
|
</use>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="github">grishka/libtgvoip</remote-id>
|
||||||
|
<bugs-to>https://github.com/grishka/libtgvoip/issues</bugs-to>
|
||||||
|
</upstream>
|
||||||
|
</pkgmetadata>
|
3
media-libs/tg_owt/Manifest
Normal file
3
media-libs/tg_owt/Manifest
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
DIST libsrtp-f53df50059906e5c364eca65bd3c847cac9ef192.tar.gz 638464 BLAKE2B e876d606a73a9da226806fb14f6a53ba9339a4738c4785494144d835717fe76e37b585cd6168e98f0929faee262c8d26c021c333397712bf7bdc587e812fb8f1 SHA512 8713f84cc470540f4ccd3826d9da3460ab2ce0b81dfecc9b2d7be20a498ce945759b5f869ba722fbffdbcc68af38fddbd44342fc700f0c6b3dd05b18283fb868
|
||||||
|
DIST libyuv-914624f0b8b92986ef385e9650ee7b5fb07099e9.tar.bz2 427558 BLAKE2B d1c87228de1120a883c4c06bdfbd809190a60862a3f8923513fbd057a28859a25882db109a1ff8e2c1ac584cb40a4c9c7d253c858c236d589019b849a78f7a8c SHA512 7596a33d2d6f94dca077929ba433d13a5e663eee01f63a9cfa8b8881d3270b7488cce8d40046429db3acf8ba3a89e58baba30f692ceb2088933a4beffc6a192e
|
||||||
|
DIST tg_owt-0_pre20231221.tar.gz 13725943 BLAKE2B cd1fd52353cbbcad0ff8bd566394ce4238ecd1714ba30b1d8b275956c29ffe87f228b78048a4ec56faad63c802150635e5c71ae09c01f8673827a67ec3a593c8 SHA512 1a11d880a209eb82f702da8bc5ccb677042e7864065c442d9e1fd0ee60fe48ac911d5421e579273fbee9a0ce4437000e3c230a9f2cb2236dceff4750c28a4dc9
|
15
media-libs/tg_owt/metadata.xml
Normal file
15
media-libs/tg_owt/metadata.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person" proxied="yes">
|
||||||
|
<email>esteve.varela@gmail.com</email>
|
||||||
|
<name>Esteve Varela Colominas</name>
|
||||||
|
</maintainer>
|
||||||
|
<maintainer type="project" proxied="proxy">
|
||||||
|
<email>proxy-maint@gentoo.org</email>
|
||||||
|
<name>Proxy Maintainers</name>
|
||||||
|
</maintainer>
|
||||||
|
<upstream>
|
||||||
|
<remote-id type="github">desktop-app/tg_owt</remote-id>
|
||||||
|
</upstream>
|
||||||
|
</pkgmetadata>
|
129
media-libs/tg_owt/tg_owt-0_pre20231221.ebuild
Normal file
129
media-libs/tg_owt/tg_owt-0_pre20231221.ebuild
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
# Copyright 2020-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
inherit cmake flag-o-matic
|
||||||
|
|
||||||
|
DESCRIPTION="WebRTC build for Telegram"
|
||||||
|
HOMEPAGE="https://github.com/desktop-app/tg_owt"
|
||||||
|
|
||||||
|
TG_OWT_COMMIT="afd9d5d31798d3eacf9ed6c30601e91d0f1e4d60"
|
||||||
|
LIBYUV_COMMIT="914624f0b8b92986ef385e9650ee7b5fb07099e9"
|
||||||
|
LIBSRTP_COMMIT="f53df50059906e5c364eca65bd3c847cac9ef192"
|
||||||
|
SRC_URI="https://github.com/desktop-app/tg_owt/archive/${TG_OWT_COMMIT}.tar.gz -> ${P}.tar.gz
|
||||||
|
https://gitlab.com/chromiumsrc/libyuv/-/archive/${LIBYUV_COMMIT}/libyuv-${LIBYUV_COMMIT}.tar.bz2
|
||||||
|
https://github.com/cisco/libsrtp/archive/${LIBSRTP_COMMIT}.tar.gz -> libsrtp-${LIBSRTP_COMMIT}.tar.gz"
|
||||||
|
S="${WORKDIR}/${PN}-${TG_OWT_COMMIT}"
|
||||||
|
# Upstream libyuv: https://chromium.googlesource.com/libyuv/libyuv
|
||||||
|
|
||||||
|
LICENSE="BSD"
|
||||||
|
SLOT="0/${PV##*pre}"
|
||||||
|
KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv"
|
||||||
|
IUSE="screencast +X"
|
||||||
|
|
||||||
|
# This package's USE flags may change the ABI and require a rebuild of
|
||||||
|
# dependent pacakges. As such, one should make sure to depend on
|
||||||
|
# media-libs/tg_owt[x=,y=,z=] for any package that uses this.
|
||||||
|
# Furthermore, the -DNDEBUG preprocessor flag should be defined by any
|
||||||
|
# dependent package, failure to do so will change the ABI in the header files.
|
||||||
|
|
||||||
|
# Bundled libs:
|
||||||
|
# - libyuv (no stable versioning, www-client/chromium and media-libs/libvpx bundle it)
|
||||||
|
# - libsrtp (project uses private APIs)
|
||||||
|
# - pffft (no stable versioning, patched)
|
||||||
|
RDEPEND="
|
||||||
|
>=dev-cpp/abseil-cpp-20220623.1:=
|
||||||
|
dev-libs/openssl:=
|
||||||
|
dev-libs/protobuf:=
|
||||||
|
media-libs/libjpeg-turbo:=
|
||||||
|
>=media-libs/libvpx-1.10.0:=
|
||||||
|
media-libs/openh264:=
|
||||||
|
media-libs/opus
|
||||||
|
media-video/ffmpeg:=
|
||||||
|
dev-libs/crc32c
|
||||||
|
screencast? (
|
||||||
|
dev-libs/glib:2
|
||||||
|
media-video/pipewire:=
|
||||||
|
)
|
||||||
|
X? (
|
||||||
|
x11-libs/libX11
|
||||||
|
x11-libs/libXcomposite
|
||||||
|
x11-libs/libXdamage
|
||||||
|
x11-libs/libXext
|
||||||
|
x11-libs/libXfixes
|
||||||
|
x11-libs/libXrender
|
||||||
|
x11-libs/libXrandr
|
||||||
|
x11-libs/libXtst
|
||||||
|
)
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
screencast? (
|
||||||
|
media-libs/libglvnd
|
||||||
|
media-libs/mesa
|
||||||
|
x11-libs/libdrm
|
||||||
|
)
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
virtual/pkgconfig
|
||||||
|
X? ( x11-base/xorg-proto )
|
||||||
|
"
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
unpack "${P}.tar.gz"
|
||||||
|
unpack "libyuv-${LIBYUV_COMMIT}.tar.bz2"
|
||||||
|
mv -T "libyuv-${LIBYUV_COMMIT}" "${S}/src/third_party/libyuv" || die
|
||||||
|
unpack "libsrtp-${LIBSRTP_COMMIT}.tar.gz"
|
||||||
|
mv -T "libsrtp-${LIBSRTP_COMMIT}" "${S}/src/third_party/libsrtp" || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# libopenh264 has GENERATED files with yasm that aren't excluded by
|
||||||
|
# EXCLUDE_FROM_ALL, and I have no clue how to avoid this.
|
||||||
|
# These source files aren't used with system-openh264, anyway.
|
||||||
|
sed -i '/include(cmake\/libopenh264.cmake)/d' CMakeLists.txt || die
|
||||||
|
|
||||||
|
# The sources for these aren't available, avoid needing them
|
||||||
|
sed -e '/include(cmake\/libcrc32c.cmake)/d' \
|
||||||
|
-e '/include(cmake\/libabsl.cmake)/d' -i CMakeLists.txt || die
|
||||||
|
|
||||||
|
# "lol" said the scorpion, "lmao"
|
||||||
|
sed -i '/if (BUILD_SHARED_LIBS)/{n;n;s/WARNING/DEBUG/}' CMakeLists.txt || die
|
||||||
|
|
||||||
|
cmake_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Defined by -DCMAKE_BUILD_TYPE=Release, avoids crashes
|
||||||
|
# See https://bugs.gentoo.org/754012
|
||||||
|
# EAPI 8 still wipes this flag.
|
||||||
|
append-cppflags '-DNDEBUG'
|
||||||
|
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DTG_OWT_USE_X11=$(usex X)
|
||||||
|
-DTG_OWT_USE_PIPEWIRE=$(usex screencast)
|
||||||
|
)
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake_src_install
|
||||||
|
|
||||||
|
# Save about 15MB of useless headers
|
||||||
|
rm -r "${ED}/usr/include/tg_owt/rtc_base/third_party" || die
|
||||||
|
rm -r "${ED}/usr/include/tg_owt/common_audio/third_party" || die
|
||||||
|
rm -r "${ED}/usr/include/tg_owt/modules/third_party" || die
|
||||||
|
rm -r "${ED}/usr/include/tg_owt/third_party" || die
|
||||||
|
|
||||||
|
# Install a few headers anyway, as required by net-im/telegram-desktop...
|
||||||
|
local headers=(
|
||||||
|
third_party/libyuv/include
|
||||||
|
rtc_base/third_party/sigslot
|
||||||
|
rtc_base/third_party/base64
|
||||||
|
)
|
||||||
|
for dir in "${headers[@]}"; do
|
||||||
|
pushd "${S}/src/${dir}" > /dev/null || die
|
||||||
|
find -type f -name "*.h" -exec install -Dm644 '{}' "${ED}/usr/include/tg_owt/${dir}/{}" \; || die
|
||||||
|
popd > /dev/null || die
|
||||||
|
done
|
||||||
|
}
|
@ -1 +1 @@
|
|||||||
DIST tdesktop-3.6.1-full.tar.gz 41226549 SHA256 1e87df0970b135d566f5af4bc6c2695fc98ba387dc1137100a478f02d48c12e8 SHA512 dd216c720ea3b1c72669805bb31319746a7ddfe746d188bf2ae0c5cdf0a10b379fc2e888a26fe755d77381fc5d9aa638cedc76b2dce1f1126a9c1ef9c02da2ba WHIRLPOOL 9cbf5c46bc937793ab37d7ccf93ab391aee2b3fb06ce7b07c1767af126875db5489a6f8aa6897281f71d44d71f08c7e6cd2ec1a24d4be673ca7e188bb6ef8030
|
DIST tdesktop-4.14.15-full.tar.gz 68147116 SHA256 969b7e4d22229717ea7b210e3c429f25fd5d06ec61ef3030f993e8f912c1ebe6 SHA512 12812fa1fd067fca03b2e5cb04502ef05e98368b91a4ed5458a61a0bea8b3d6daf6c32b7632c170fe0904acb63eb422f6fa6364e4af18f73e49659e2d50f531b WHIRLPOOL fdb60f373c779e08b3f14f07b56a92fbaf92585bbec3d361baf3bbf52987765784808ac85c051db7fe12256884f315b6e34fbe8884388f47b6a377f7c23531fb
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
--- tdesktop-3.3.0-full.orig/Telegram/lib_spellcheck/spellcheck/platform/linux/spellcheck_linux.cpp
|
|
||||||
+++ tdesktop-3.3.0-full/Telegram/lib_spellcheck/spellcheck/platform/linux/spellcheck_linux.cpp
|
|
||||||
@@ -34,7 +34,7 @@
|
|
||||||
auto IsHebrew(const QString &word) {
|
|
||||||
// Words with mixed scripts will be automatically ignored,
|
|
||||||
// so this check should be fine.
|
|
||||||
- return ::Spellchecker::WordScript(&word) == QChar::Script_Hebrew;
|
|
||||||
+ return ::Spellchecker::WordScript(word) == QChar::Script_Hebrew;
|
|
||||||
}
|
|
||||||
|
|
||||||
class EnchantSpellChecker {
|
|
||||||
@@ -154,7 +154,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
auto EnchantSpellChecker::findSuggestions(const QString &word) {
|
|
||||||
- const auto wordScript = ::Spellchecker::WordScript(&word);
|
|
||||||
+ const auto wordScript = ::Spellchecker::WordScript(word);
|
|
||||||
auto w = word.toStdString();
|
|
||||||
std::vector<QString> result;
|
|
||||||
if (!_validators.size()) {
|
|
@ -1,33 +0,0 @@
|
|||||||
Stub out some glibc-specific functions
|
|
||||||
|
|
||||||
This allows support for alternative libcs like musl
|
|
||||||
|
|
||||||
--- tdesktop-3.5.2-full.orig/Telegram/lib_base/base/platform/linux/base_info_linux.cpp
|
|
||||||
+++ tdesktop-3.5.2-full/Telegram/lib_base/base/platform/linux/base_info_linux.cpp
|
|
||||||
@@ -22,7 +22,7 @@
|
|
||||||
|
|
||||||
#include <sys/utsname.h>
|
|
||||||
|
|
||||||
-#ifdef Q_OS_LINUX
|
|
||||||
+#if defined(Q_OS_LINUX) && defined(__GLIBC__)
|
|
||||||
#include <gnu/libc-version.h>
|
|
||||||
#endif // Q_OS_LINUX
|
|
||||||
|
|
||||||
@@ -200,7 +200,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
QString GetLibcName() {
|
|
||||||
-#ifdef Q_OS_LINUX
|
|
||||||
+#if defined(Q_OS_LINUX) && defined(__GLIBC__)
|
|
||||||
return "glibc";
|
|
||||||
#endif // Q_OS_LINUX
|
|
||||||
|
|
||||||
@@ -208,7 +208,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
QString GetLibcVersion() {
|
|
||||||
-#ifdef Q_OS_LINUX
|
|
||||||
+#if defined(Q_OS_LINUX) && defined(__GLIBC__)
|
|
||||||
static const auto result = [&] {
|
|
||||||
const auto version = QString::fromLatin1(gnu_get_libc_version());
|
|
||||||
return QVersionNumber::fromString(version).isNull() ? QString() : version;
|
|
@ -1,41 +0,0 @@
|
|||||||
Only link jemalloc for the Telegram binary
|
|
||||||
|
|
||||||
Some combination of factors is making the different codegen tools hang when
|
|
||||||
jemalloc is linked for those, and they're ran under portage's sandbox. Since
|
|
||||||
this is only used during build-time, and jemalloc is merely necessary to
|
|
||||||
improve runtime memory use, it's unnecessary to use it for anything else.
|
|
||||||
|
|
||||||
--- tdesktop-3.6.0-full.orig/Telegram/CMakeLists.txt
|
|
||||||
+++ tdesktop-3.6.0-full/Telegram/CMakeLists.txt
|
|
||||||
@@ -1376,6 +1376,14 @@
|
|
||||||
desktop-app::external_kwayland
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
+
|
|
||||||
+ if (NOT DESKTOP_APP_DISABLE_JEMALLOC)
|
|
||||||
+ target_link_libraries(Telegram
|
|
||||||
+ INTERFACE
|
|
||||||
+ $<TARGET_OBJECTS:desktop-app::linux_jemalloc_helper>
|
|
||||||
+ $<LINK_ONLY:desktop-app::external_jemalloc>
|
|
||||||
+ )
|
|
||||||
+ endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (build_macstore)
|
|
||||||
--- tdesktop-3.6.0-full.orig/cmake/options_linux.cmake
|
|
||||||
+++ tdesktop-3.6.0-full/cmake/options_linux.cmake
|
|
||||||
@@ -62,14 +62,6 @@
|
|
||||||
target_link_options(common_options INTERFACE $<IF:$<CONFIG:Debug>,,-g -flto -fuse-linker-plugin>)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
-if (NOT DESKTOP_APP_DISABLE_JEMALLOC)
|
|
||||||
- target_link_libraries(common_options
|
|
||||||
- INTERFACE
|
|
||||||
- $<TARGET_OBJECTS:desktop-app::linux_jemalloc_helper>
|
|
||||||
- $<LINK_ONLY:desktop-app::external_jemalloc>
|
|
||||||
- )
|
|
||||||
-endif()
|
|
||||||
-
|
|
||||||
target_link_libraries(common_options
|
|
||||||
INTERFACE
|
|
||||||
${CMAKE_DL_LIBS}
|
|
@ -1,75 +0,0 @@
|
|||||||
Support FFmpeg 5
|
|
||||||
|
|
||||||
I'm not comfortable changing the _durationInMilliseconds formula on older
|
|
||||||
versions of ffmpeg. Doing that only for newer versions also reduces the amount
|
|
||||||
of testing this patch needs (of which it'll get very minimal amounts, this is a
|
|
||||||
job better left for upstream when they get to it).
|
|
||||||
|
|
||||||
Also it doesn't compile under ffmpeg 4 if the variables are constants :/
|
|
||||||
|
|
||||||
--- tdesktop-3.6.0-full.orig/Telegram/ThirdParty/tgcalls/tgcalls/group/AudioStreamingPartInternal.cpp
|
|
||||||
+++ tdesktop-3.6.0-full/Telegram/ThirdParty/tgcalls/tgcalls/group/AudioStreamingPartInternal.cpp
|
|
||||||
@@ -104,7 +104,11 @@
|
|
||||||
|
|
||||||
_frame = av_frame_alloc();
|
|
||||||
|
|
||||||
+#if LIBAVFORMAT_VERSION_MAJOR >= 59
|
|
||||||
+ const AVInputFormat *inputFormat = av_find_input_format(container.c_str());
|
|
||||||
+#else
|
|
||||||
AVInputFormat *inputFormat = av_find_input_format(container.c_str());
|
|
||||||
+#endif
|
|
||||||
if (!inputFormat) {
|
|
||||||
_didReadToEnd = true;
|
|
||||||
return;
|
|
||||||
@@ -144,7 +148,11 @@
|
|
||||||
|
|
||||||
_streamId = i;
|
|
||||||
|
|
||||||
+#if LIBAVFORMAT_VERSION_MAJOR >= 59
|
|
||||||
+ _durationInMilliseconds = inStream->duration * 1000 / 48000;
|
|
||||||
+#else
|
|
||||||
_durationInMilliseconds = (int)((inStream->duration + inStream->first_dts) * 1000 / 48000);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
if (inStream->metadata) {
|
|
||||||
AVDictionaryEntry *entry = av_dict_get(inStream->metadata, "TG_META", nullptr, 0);
|
|
||||||
--- tdesktop-3.6.0-full.orig/Telegram/ThirdParty/tgcalls/tgcalls/group/AudioStreamingPartPersistentDecoder.cpp
|
|
||||||
+++ tdesktop-3.6.0-full/Telegram/ThirdParty/tgcalls/tgcalls/group/AudioStreamingPartPersistentDecoder.cpp
|
|
||||||
@@ -32,7 +32,11 @@
|
|
||||||
AudioStreamingPartPersistentDecoderState(AVCodecParameters const *codecParameters, AVRational timeBase) :
|
|
||||||
_codecParameters(codecParameters),
|
|
||||||
_timeBase(timeBase) {
|
|
||||||
+#ifdef LIBAVCODEC_VERSION_MAJOR >= 59
|
|
||||||
+ const AVCodec *codec = avcodec_find_decoder(codecParameters->codec_id);
|
|
||||||
+#else
|
|
||||||
AVCodec *codec = avcodec_find_decoder(codecParameters->codec_id);
|
|
||||||
+#endif
|
|
||||||
if (codec) {
|
|
||||||
_codecContext = avcodec_alloc_context3(codec);
|
|
||||||
int ret = avcodec_parameters_to_context(_codecContext, codecParameters);
|
|
||||||
--- tdesktop-3.6.0-full.orig/Telegram/ThirdParty/tgcalls/tgcalls/group/VideoStreamingPart.cpp
|
|
||||||
+++ tdesktop-3.6.0-full/Telegram/ThirdParty/tgcalls/tgcalls/group/VideoStreamingPart.cpp
|
|
||||||
@@ -280,7 +280,11 @@
|
|
||||||
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
+#if LIBAVFORMAT_VERSION_MAJOR >= 59
|
|
||||||
+ const AVInputFormat *inputFormat = av_find_input_format(container.c_str());
|
|
||||||
+#else
|
|
||||||
AVInputFormat *inputFormat = av_find_input_format(container.c_str());
|
|
||||||
+#endif
|
|
||||||
if (!inputFormat) {
|
|
||||||
_didReadToEnd = true;
|
|
||||||
return;
|
|
||||||
@@ -323,7 +327,11 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
if (videoCodecParameters && videoStream) {
|
|
||||||
+#if LIBAVCODEC_VERSION_MAJOR >= 59
|
|
||||||
+ const AVCodec *codec = avcodec_find_decoder(videoCodecParameters->codec_id);
|
|
||||||
+#else
|
|
||||||
AVCodec *codec = avcodec_find_decoder(videoCodecParameters->codec_id);
|
|
||||||
+#endif
|
|
||||||
if (codec) {
|
|
||||||
_codecContext = avcodec_alloc_context3(codec);
|
|
||||||
ret = avcodec_parameters_to_context(_codecContext, videoCodecParameters);
|
|
@ -1,46 +0,0 @@
|
|||||||
Description: Do not capture buttons in AccountsList that belong to inner VerticalLayout widget
|
|
||||||
This fixes a use-after-free error (double destruction) in the main menu right after account switching.
|
|
||||||
Bug-Debian: https://bugs.debian.org/1008156
|
|
||||||
Bug-Ubuntu: https://launchpad.net/bugs/1967673
|
|
||||||
Forwarded: https://github.com/telegramdesktop/tdesktop/pull/24301
|
|
||||||
Author: Nicholas Guriev <guriev-ns@ya.ru>
|
|
||||||
Last-Update: Sat, 09 Apr 2022 13:47:55 +0300
|
|
||||||
|
|
||||||
diff --git a/Telegram/SourceFiles/settings/settings_information.cpp b/Telegram/SourceFiles/settings/settings_information.cpp
|
|
||||||
index 092194dcf5ce..08365a9a0c27 100644
|
|
||||||
--- a/Telegram/SourceFiles/settings/settings_information.cpp
|
|
||||||
+++ b/Telegram/SourceFiles/settings/settings_information.cpp
|
|
||||||
@@ -78,9 +78,7 @@ class AccountsList final {
|
|
||||||
int _outerIndex = 0;
|
|
||||||
|
|
||||||
Ui::SlideWrap<Ui::SettingsButton> *_addAccount = nullptr;
|
|
||||||
- base::flat_map<
|
|
||||||
- not_null<Main::Account*>,
|
|
||||||
- base::unique_qptr<Ui::SettingsButton>> _watched;
|
|
||||||
+ base::flat_map<not_null<Main::Account*>, Ui::SettingsButton*> _watched;
|
|
||||||
|
|
||||||
base::unique_qptr<Ui::PopupMenu> _contextMenu;
|
|
||||||
std::unique_ptr<Ui::VerticalLayoutReorder> _reorder;
|
|
||||||
@@ -730,7 +728,7 @@ void AccountsList::rebuild() {
|
|
||||||
order.reserve(inner->count());
|
|
||||||
for (auto i = 0; i < inner->count(); i++) {
|
|
||||||
for (const auto &[account, button] : _watched) {
|
|
||||||
- if (button.get() == inner->widgetAt(i)) {
|
|
||||||
+ if (button == inner->widgetAt(i)) {
|
|
||||||
order.push_back(account->session().uniqueId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -769,11 +767,11 @@ void AccountsList::rebuild() {
|
|
||||||
account,
|
|
||||||
std::move(activate));
|
|
||||||
};
|
|
||||||
- button.reset(inner->add(MakeAccountButton(
|
|
||||||
+ button = inner->add(MakeAccountButton(
|
|
||||||
inner,
|
|
||||||
_controller,
|
|
||||||
account,
|
|
||||||
- std::move(callback))));
|
|
||||||
+ std::move(callback)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
inner->resizeToWidth(_outer->width());
|
|
@ -0,0 +1,32 @@
|
|||||||
|
Use system cppgir
|
||||||
|
|
||||||
|
https://github.com/desktop-app/cmake_helpers/issues/282
|
||||||
|
https://github.com/desktop-app/cmake_helpers/pull/305
|
||||||
|
--- tdesktop-4.10.0-full.orig/cmake/external/glib/CMakeLists.txt
|
||||||
|
+++ tdesktop-4.10.0-full/cmake/external/glib/CMakeLists.txt
|
||||||
|
@@ -7,14 +7,6 @@
|
||||||
|
add_library(external_glib INTERFACE IMPORTED GLOBAL)
|
||||||
|
add_library(desktop-app::external_glib ALIAS external_glib)
|
||||||
|
|
||||||
|
-function(add_cppgir) # isolate scope
|
||||||
|
- set(BUILD_TESTING OFF)
|
||||||
|
- set(BUILD_DOC OFF)
|
||||||
|
- set(BUILD_EXAMPLES OFF)
|
||||||
|
- add_subdirectory(cppgir EXCLUDE_FROM_ALL)
|
||||||
|
-endfunction()
|
||||||
|
-add_cppgir()
|
||||||
|
-
|
||||||
|
include(generate_cppgir.cmake)
|
||||||
|
generate_cppgir(external_glib Gio-2.0)
|
||||||
|
|
||||||
|
--- tdesktop-4.10.0-full.orig/cmake/external/glib/generate_cppgir.cmake
|
||||||
|
+++ tdesktop-4.10.0-full/cmake/external/glib/generate_cppgir.cmake
|
||||||
|
@@ -4,6 +4,8 @@
|
||||||
|
# For license and copyright information please follow this link:
|
||||||
|
# https://github.com/desktop-app/legal/blob/master/LEGAL
|
||||||
|
|
||||||
|
+find_package(CppGir REQUIRED)
|
||||||
|
+
|
||||||
|
function(generate_cppgir target_name gir)
|
||||||
|
# cppgir generates all the dependent headers everytime, better to have a global folder
|
||||||
|
set(gen_dst ${CMAKE_BINARY_DIR}/gen)
|
@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/Telegram/lib_base/base/qt/qt_compare.h b/Telegram/lib_base/base/qt/qt_compare.h
|
||||||
|
index ca03fa2..d1eb6ab 100644
|
||||||
|
--- a/Telegram/lib_base/base/qt/qt_compare.h
|
||||||
|
+++ b/Telegram/lib_base/base/qt/qt_compare.h
|
||||||
|
@@ -10,6 +10,7 @@
|
||||||
|
#include <gsl/pointers>
|
||||||
|
|
||||||
|
#include <QString>
|
||||||
|
+#include <variant>
|
||||||
|
|
||||||
|
#if !defined(__apple_build_version__) || (__apple_build_version__ > 12000032)
|
||||||
|
|
@ -1,164 +0,0 @@
|
|||||||
# Copyright 2020-2022 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
PYTHON_COMPAT=( python3_{8..10} )
|
|
||||||
|
|
||||||
inherit xdg cmake python-any-r1 optfeature
|
|
||||||
|
|
||||||
DESCRIPTION="Official desktop client for Telegram"
|
|
||||||
HOMEPAGE="https://desktop.telegram.org"
|
|
||||||
|
|
||||||
MY_P="tdesktop-${PV}-full"
|
|
||||||
SRC_URI="https://github.com/telegramdesktop/tdesktop/releases/download/v${PV}/${MY_P}.tar.gz"
|
|
||||||
S="${WORKDIR}/${MY_P}"
|
|
||||||
|
|
||||||
LICENSE="BSD GPL-3-with-openssl-exception LGPL-2+"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
|
|
||||||
IUSE="+dbus enchant +hunspell +jemalloc screencast +spell wayland +X"
|
|
||||||
REQUIRED_USE="
|
|
||||||
spell? (
|
|
||||||
^^ ( enchant hunspell )
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
!net-im/telegram-desktop-bin
|
|
||||||
app-arch/lz4:=
|
|
||||||
dev-cpp/abseil-cpp:=
|
|
||||||
dev-libs/libdispatch
|
|
||||||
dev-libs/openssl:=
|
|
||||||
dev-libs/xxhash
|
|
||||||
>=dev-qt/qtcore-5.15:5
|
|
||||||
>=dev-qt/qtgui-5.15:5[dbus?,jpeg,png,wayland?,X?]
|
|
||||||
>=dev-qt/qtimageformats-5.15:5
|
|
||||||
>=dev-qt/qtnetwork-5.15:5[ssl]
|
|
||||||
>=dev-qt/qtsvg-5.15:5
|
|
||||||
>=dev-qt/qtwidgets-5.15:5[png,X?]
|
|
||||||
media-fonts/open-sans
|
|
||||||
media-libs/fontconfig:=
|
|
||||||
~media-libs/libtgvoip-2.4.4_p20220117
|
|
||||||
media-libs/openal
|
|
||||||
media-libs/opus:=
|
|
||||||
media-libs/rnnoise
|
|
||||||
~media-libs/tg_owt-0_pre20220209[screencast=,X=]
|
|
||||||
media-video/ffmpeg:=[opus]
|
|
||||||
sys-libs/zlib:=[minizip]
|
|
||||||
dbus? (
|
|
||||||
dev-cpp/glibmm:2
|
|
||||||
dev-qt/qtdbus:5
|
|
||||||
dev-libs/libdbusmenu-qt[qt5(+)]
|
|
||||||
)
|
|
||||||
enchant? ( app-text/enchant:= )
|
|
||||||
hunspell? ( >=app-text/hunspell-1.7:= )
|
|
||||||
jemalloc? ( dev-libs/jemalloc:=[-lazy-lock] )
|
|
||||||
wayland? (
|
|
||||||
dev-qt/qtwayland:=
|
|
||||||
kde-frameworks/kwayland:=
|
|
||||||
)
|
|
||||||
X? ( x11-libs/libxcb:= )
|
|
||||||
"
|
|
||||||
DEPEND="${RDEPEND}
|
|
||||||
dev-cpp/range-v3
|
|
||||||
=dev-cpp/ms-gsl-3*
|
|
||||||
"
|
|
||||||
BDEPEND="
|
|
||||||
${PYTHON_DEPS}
|
|
||||||
>=dev-util/cmake-3.16
|
|
||||||
virtual/pkgconfig
|
|
||||||
"
|
|
||||||
# dev-libs/jemalloc:=[-lazy-lock] -> https://bugs.gentoo.org/803233
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}/tdesktop-3.6.0-jemalloc-only-telegram.patch"
|
|
||||||
"${FILESDIR}/tdesktop-3.3.0-fix-enchant.patch"
|
|
||||||
"${FILESDIR}/tdesktop-3.5.2-musl.patch"
|
|
||||||
"${FILESDIR}/tdesktop-3.6.0-support-ffmpeg5.patch"
|
|
||||||
"${FILESDIR}/tdesktop-3.6.1-fix-double-destruction.patch"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Current desktop-file-utils-0.26 does not understand Version=1.5
|
|
||||||
QA_DESKTOP_FILE="usr/share/applications/${PN}.desktop"
|
|
||||||
|
|
||||||
pkg_pretend() {
|
|
||||||
if has ccache ${FEATURES}; then
|
|
||||||
ewarn
|
|
||||||
ewarn "ccache does not work with ${PN} out of the box"
|
|
||||||
ewarn "due to usage of precompiled headers"
|
|
||||||
ewarn "check bug https://bugs.gentoo.org/715114 for more info"
|
|
||||||
ewarn
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
# no explicit toggle, doesn't build with the system one #752417
|
|
||||||
sed -i 's/DESKTOP_APP_USE_PACKAGED/NO_ONE_WILL_EVER_SET_THIS/' \
|
|
||||||
cmake/external/rlottie/CMakeLists.txt || die
|
|
||||||
|
|
||||||
cmake_src_prepare
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local mycmakeargs=(
|
|
||||||
-DTDESKTOP_LAUNCHER_BASENAME="${PN}"
|
|
||||||
-DCMAKE_DISABLE_FIND_PACKAGE_tl-expected=ON # header only lib, some git version. prevents warnings.
|
|
||||||
-DDESKTOP_APP_QT6=OFF
|
|
||||||
|
|
||||||
-DDESKTOP_APP_DISABLE_DBUS_INTEGRATION=$(usex !dbus)
|
|
||||||
-DDESKTOP_APP_DISABLE_X11_INTEGRATION=$(usex !X)
|
|
||||||
-DDESKTOP_APP_DISABLE_WAYLAND_INTEGRATION=$(usex !wayland)
|
|
||||||
-DDESKTOP_APP_DISABLE_SPELLCHECK=$(usex !spell) # enables hunspell (recommended)
|
|
||||||
-DDESKTOP_APP_USE_ENCHANT=$(usex enchant) # enables enchant and disables hunspell
|
|
||||||
|
|
||||||
# This option is heavily discouraged by upstream.
|
|
||||||
# See files/tdesktop-*-jemalloc-optional.patch
|
|
||||||
-DDESKTOP_APP_DISABLE_JEMALLOC=$(usex !jemalloc)
|
|
||||||
)
|
|
||||||
|
|
||||||
if [[ -n ${MY_TDESKTOP_API_ID} && -n ${MY_TDESKTOP_API_HASH} ]]; then
|
|
||||||
einfo "Found custom API credentials"
|
|
||||||
mycmakeargs+=(
|
|
||||||
-DTDESKTOP_API_ID="${MY_TDESKTOP_API_ID}"
|
|
||||||
-DTDESKTOP_API_HASH="${MY_TDESKTOP_API_HASH}"
|
|
||||||
)
|
|
||||||
else
|
|
||||||
# https://github.com/telegramdesktop/tdesktop/blob/dev/snap/snapcraft.yaml
|
|
||||||
# Building with snapcraft API credentials by default
|
|
||||||
# Custom API credentials can be obtained here:
|
|
||||||
# https://github.com/telegramdesktop/tdesktop/blob/dev/docs/api_credentials.md
|
|
||||||
# After getting credentials you can export variables:
|
|
||||||
# export MY_TDESKTOP_API_ID="17349""
|
|
||||||
# export MY_TDESKTOP_API_HASH="344583e45741c457fe1862106095a5eb"
|
|
||||||
# and restart the build"
|
|
||||||
# you can set above variables (without export) in /etc/portage/env/net-im/telegram-desktop
|
|
||||||
# portage will use custom variable every build automatically
|
|
||||||
mycmakeargs+=(
|
|
||||||
-DTDESKTOP_API_ID="611335"
|
|
||||||
-DTDESKTOP_API_HASH="d524b414d21f4d37f08684c1df41ac9c"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
cmake_src_configure
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
xdg_pkg_postinst
|
|
||||||
if ! use X && ! use screencast; then
|
|
||||||
elog "both the 'X' and 'screencast' useflags are disabled, screen sharing won't work!"
|
|
||||||
elog
|
|
||||||
fi
|
|
||||||
if has_version '<dev-qt/qtcore-5.15.2-r10'; then
|
|
||||||
ewarn "Versions of dev-qt/qtcore lower than 5.15.2-r10 might cause telegram"
|
|
||||||
ewarn "to crash when pasting big images from the clipboard."
|
|
||||||
ewarn
|
|
||||||
fi
|
|
||||||
if ! use jemalloc && use elibc_glibc; then
|
|
||||||
ewarn "Disabling USE=jemalloc on glibc systems may cause very high RAM usage!"
|
|
||||||
ewarn "Do NOT report issues about RAM usage without enabling this flag first."
|
|
||||||
ewarn
|
|
||||||
fi
|
|
||||||
optfeature_header
|
|
||||||
optfeature "shop payment support (requires USE=dbus enabled)" net-libs/webkit-gtk
|
|
||||||
}
|
|
238
net-im/telegram-desktop/telegram-desktop-4.14.15.ebuild
Normal file
238
net-im/telegram-desktop/telegram-desktop-4.14.15.ebuild
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
# Copyright 2020-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{11..12} )
|
||||||
|
|
||||||
|
inherit xdg cmake python-any-r1 optfeature flag-o-matic
|
||||||
|
|
||||||
|
DESCRIPTION="Official desktop client for Telegram"
|
||||||
|
HOMEPAGE="https://desktop.telegram.org"
|
||||||
|
|
||||||
|
MY_P="tdesktop-${PV}-full"
|
||||||
|
SRC_URI="https://github.com/telegramdesktop/tdesktop/releases/download/v${PV}/${MY_P}.tar.gz"
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="BSD GPL-3-with-openssl-exception LGPL-2+"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv"
|
||||||
|
IUSE="dbus enchant +fonts screencast qt6 qt6-imageformats wayland webkit +X"
|
||||||
|
REQUIRED_USE="
|
||||||
|
qt6-imageformats? ( qt6 )
|
||||||
|
"
|
||||||
|
|
||||||
|
KIMAGEFORMATS_RDEPEND="
|
||||||
|
media-libs/libavif:=
|
||||||
|
media-libs/libheif:=
|
||||||
|
>=media-libs/libjxl-0.8.0:=
|
||||||
|
"
|
||||||
|
CDEPEND="
|
||||||
|
!net-im/telegram-desktop-bin
|
||||||
|
app-arch/lz4:=
|
||||||
|
dev-cpp/abseil-cpp:=
|
||||||
|
>=dev-cpp/glibmm-2.77:2.68
|
||||||
|
dev-libs/glib:2
|
||||||
|
dev-libs/libdispatch
|
||||||
|
dev-libs/openssl:=
|
||||||
|
dev-libs/protobuf
|
||||||
|
dev-libs/xxhash
|
||||||
|
media-libs/libjpeg-turbo:=
|
||||||
|
>=media-libs/libtgvoip-2.4.4_p20230929
|
||||||
|
media-libs/openal
|
||||||
|
media-libs/opus
|
||||||
|
media-libs/rnnoise
|
||||||
|
>=media-libs/tg_owt-0_pre20230921:=[screencast=,X=]
|
||||||
|
media-video/ffmpeg:=[opus,vpx]
|
||||||
|
sys-libs/zlib:=[minizip]
|
||||||
|
virtual/opengl
|
||||||
|
!enchant? ( >=app-text/hunspell-1.7:= )
|
||||||
|
enchant? ( app-text/enchant:= )
|
||||||
|
!qt6? (
|
||||||
|
>=dev-qt/qtcore-5.15:5=
|
||||||
|
>=dev-qt/qtgui-5.15:5=[dbus?,jpeg,png,wayland?,X?]
|
||||||
|
>=dev-qt/qtimageformats-5.15:5
|
||||||
|
>=dev-qt/qtnetwork-5.15:5[ssl]
|
||||||
|
>=dev-qt/qtsvg-5.15:5
|
||||||
|
>=dev-qt/qtwidgets-5.15:5[png,X?]
|
||||||
|
kde-frameworks/kcoreaddons:5
|
||||||
|
webkit? (
|
||||||
|
>=dev-qt/qtdeclarative-5.15:5
|
||||||
|
>=dev-qt/qtwayland-5.15:5
|
||||||
|
)
|
||||||
|
)
|
||||||
|
qt6? (
|
||||||
|
>=dev-qt/qtbase-6.5:6=[dbus?,gui,network,opengl,wayland?,widgets,X?]
|
||||||
|
>=dev-qt/qtimageformats-6.5:6
|
||||||
|
>=dev-qt/qtsvg-6.5:6
|
||||||
|
webkit? (
|
||||||
|
>=dev-qt/qtdeclarative-6.5:6
|
||||||
|
>=dev-qt/qtwayland-6.5:6[compositor]
|
||||||
|
)
|
||||||
|
qt6-imageformats? (
|
||||||
|
>=dev-qt/qtimageformats-6.5:6=
|
||||||
|
${KIMAGEFORMATS_RDEPEND}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
X? (
|
||||||
|
x11-libs/libxcb:=
|
||||||
|
x11-libs/xcb-util-keysyms
|
||||||
|
)
|
||||||
|
"
|
||||||
|
RDEPEND="${CDEPEND}
|
||||||
|
webkit? ( net-libs/webkit-gtk:4.1 net-libs/webkit-gtk:6 )
|
||||||
|
"
|
||||||
|
DEPEND="${CDEPEND}
|
||||||
|
>=dev-cpp/cppgir-0_p20240110
|
||||||
|
>=dev-cpp/ms-gsl-4
|
||||||
|
dev-cpp/expected-lite
|
||||||
|
dev-cpp/range-v3
|
||||||
|
"
|
||||||
|
BDEPEND="
|
||||||
|
${PYTHON_DEPS}
|
||||||
|
>=dev-build/cmake-3.16
|
||||||
|
>=dev-cpp/cppgir-0_p20230926
|
||||||
|
dev-util/gdbus-codegen
|
||||||
|
virtual/pkgconfig
|
||||||
|
wayland? ( dev-util/wayland-scanner )
|
||||||
|
"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/tdesktop-4.10.0-system-cppgir.patch"
|
||||||
|
"${FILESDIR}/tdesktop-4.10.5-qt_compare.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg_pretend() {
|
||||||
|
if has ccache ${FEATURES}; then
|
||||||
|
ewarn "ccache does not work with ${PN} out of the box"
|
||||||
|
ewarn "due to usage of precompiled headers"
|
||||||
|
ewarn "check bug https://bugs.gentoo.org/715114 for more info"
|
||||||
|
ewarn
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# Bundle kde-frameworks/kimageformats for qt6, since it's impossible to
|
||||||
|
# build in gentoo right now.
|
||||||
|
if use qt6-imageformats; then
|
||||||
|
sed -e 's/DESKTOP_APP_USE_PACKAGED_LAZY/TRUE/' -i \
|
||||||
|
cmake/external/kimageformats/CMakeLists.txt || die
|
||||||
|
printf '%s\n' \
|
||||||
|
'Q_IMPORT_PLUGIN(QAVIFPlugin)' \
|
||||||
|
'Q_IMPORT_PLUGIN(HEIFPlugin)' \
|
||||||
|
'Q_IMPORT_PLUGIN(QJpegXLPlugin)' \
|
||||||
|
>> cmake/external/qt/qt_static_plugins/qt_static_plugins.cpp || die
|
||||||
|
fi
|
||||||
|
# kde-frameworks/kcoreaddons is bundled when using qt6.
|
||||||
|
|
||||||
|
# Happily fail if libraries aren't found...
|
||||||
|
find -type f \( -name 'CMakeLists.txt' -o -name '*.cmake' \) \
|
||||||
|
\! -path './Telegram/lib_webview/CMakeLists.txt' \
|
||||||
|
\! -path './cmake/external/expected/CMakeLists.txt' \
|
||||||
|
\! -path './cmake/external/kcoreaddons/CMakeLists.txt' \
|
||||||
|
\! -path './cmake/external/qt/package.cmake' \
|
||||||
|
-print0 | xargs -0 sed -i \
|
||||||
|
-e '/pkg_check_modules(/s/[^ ]*)/REQUIRED &/' \
|
||||||
|
-e '/find_package(/s/)/ REQUIRED)/' || die
|
||||||
|
# Make sure to check the excluded files for new
|
||||||
|
# CMAKE_DISABLE_FIND_PACKAGE entries.
|
||||||
|
|
||||||
|
# Control QtDBus dependency from here, to avoid messing with QtGui.
|
||||||
|
if ! use dbus; then
|
||||||
|
sed -e '/find_package(Qt[^ ]* OPTIONAL_COMPONENTS/s/DBus *//' \
|
||||||
|
-i cmake/external/qt/package.cmake || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
cmake_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Having user paths sneak into the build environment through the
|
||||||
|
# XDG_DATA_DIRS variable causes all sorts of weirdness with cppgir:
|
||||||
|
# - bug 909038: can't read from flatpak directories (fixed upstream)
|
||||||
|
# - bug 920819: system-wide directories ignored when variable is set
|
||||||
|
export XDG_DATA_DIRS="${EPREFIX}/usr/share"
|
||||||
|
|
||||||
|
# Evil flag (bug #919201)
|
||||||
|
filter-flags -fno-delete-null-pointer-checks
|
||||||
|
|
||||||
|
# The ABI of media-libs/tg_owt breaks if the -DNDEBUG flag doesn't keep
|
||||||
|
# the same state across both projects.
|
||||||
|
# See https://bugs.gentoo.org/866055
|
||||||
|
append-cppflags '-DNDEBUG'
|
||||||
|
|
||||||
|
local qt=$(usex qt6 6 5)
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DQT_VERSION_MAJOR=${qt}
|
||||||
|
|
||||||
|
# Override new cmake.eclass defaults (https://bugs.gentoo.org/921939)
|
||||||
|
# Upstream never tests this any other way
|
||||||
|
-DCMAKE_DISABLE_PRECOMPILE_HEADERS=OFF
|
||||||
|
|
||||||
|
# Control automagic dependencies on certain packages
|
||||||
|
## Header-only lib, some git version.
|
||||||
|
-DCMAKE_DISABLE_FIND_PACKAGE_tl-expected=ON
|
||||||
|
-DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}Quick=$(usex !webkit)
|
||||||
|
-DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}QuickWidgets=$(usex !webkit)
|
||||||
|
-DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}WaylandClient=$(usex !wayland)
|
||||||
|
## Only used in Telegram/lib_webview/CMakeLists.txt
|
||||||
|
-DCMAKE_DISABLE_FIND_PACKAGE_Qt${qt}WaylandCompositor=$(usex !webkit)
|
||||||
|
## KF6CoreAddons is currently unavailable in ::gentoo
|
||||||
|
-DCMAKE_DISABLE_FIND_PACKAGE_KF${qt}CoreAddons=$(usex qt6)
|
||||||
|
|
||||||
|
-DDESKTOP_APP_DISABLE_X11_INTEGRATION=$(usex !X)
|
||||||
|
-DDESKTOP_APP_DISABLE_WAYLAND_INTEGRATION=$(usex !wayland)
|
||||||
|
## Enables enchant and disables hunspell
|
||||||
|
-DDESKTOP_APP_USE_ENCHANT=$(usex enchant)
|
||||||
|
## Use system fonts instead of bundled ones
|
||||||
|
-DDESKTOP_APP_USE_PACKAGED_FONTS=$(usex !fonts)
|
||||||
|
)
|
||||||
|
|
||||||
|
if [[ -n ${MY_TDESKTOP_API_ID} && -n ${MY_TDESKTOP_API_HASH} ]]; then
|
||||||
|
einfo "Found custom API credentials"
|
||||||
|
mycmakeargs+=(
|
||||||
|
-DTDESKTOP_API_ID="${MY_TDESKTOP_API_ID}"
|
||||||
|
-DTDESKTOP_API_HASH="${MY_TDESKTOP_API_HASH}"
|
||||||
|
)
|
||||||
|
else
|
||||||
|
# https://github.com/telegramdesktop/tdesktop/blob/dev/snap/snapcraft.yaml
|
||||||
|
# Building with snapcraft API credentials by default
|
||||||
|
# Custom API credentials can be obtained here:
|
||||||
|
# https://github.com/telegramdesktop/tdesktop/blob/dev/docs/api_credentials.md
|
||||||
|
# After getting credentials you can export variables:
|
||||||
|
# export MY_TDESKTOP_API_ID="17349""
|
||||||
|
# export MY_TDESKTOP_API_HASH="344583e45741c457fe1862106095a5eb"
|
||||||
|
# and restart the build"
|
||||||
|
# you can set above variables (without export) in /etc/portage/env/net-im/telegram-desktop
|
||||||
|
# portage will use custom variable every build automatically
|
||||||
|
mycmakeargs+=(
|
||||||
|
-DTDESKTOP_API_ID="611335"
|
||||||
|
-DTDESKTOP_API_HASH="d524b414d21f4d37f08684c1df41ac9c"
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
xdg_pkg_postinst
|
||||||
|
if ! use X && ! use screencast; then
|
||||||
|
ewarn "both the 'X' and 'screencast' USE flags are disabled, screen sharing won't work!"
|
||||||
|
ewarn
|
||||||
|
fi
|
||||||
|
if use wayland && ! use qt6; then
|
||||||
|
ewarn "Wayland-specific integrations have been deprecated with Qt5."
|
||||||
|
ewarn "The app will continue to function under wayland, but some"
|
||||||
|
ewarn "functionality may be reduced."
|
||||||
|
ewarn "These integrations are only supported when built with Qt6."
|
||||||
|
ewarn
|
||||||
|
fi
|
||||||
|
if use qt6 && ! use qt6-imageformats; then
|
||||||
|
elog "Enable USE=qt6-imageformats for AVIF, HEIF and JpegXL support"
|
||||||
|
elog
|
||||||
|
fi
|
||||||
|
optfeature_header
|
||||||
|
if ! use qt6; then
|
||||||
|
optfeature "AVIF, HEIF and JpegXL image support" kde-frameworks/kimageformats[avif,heif,jpegxl]
|
||||||
|
fi
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user