net-libs/tdlib: New package

New dependency of telegram-desktop. Packaged in full, instead of just
the required tde2e part, due to programs such as tdlib-purple using it
as well.

Signed-off-by: Esteve Varela Colominas <esteve.varela@gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/42194
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Esteve Varela Colominas
2025-05-21 21:36:33 +02:00
committed by Sam James
parent 9eb1e1f700
commit 5c4e1ba64f
3 changed files with 96 additions and 0 deletions

1
net-libs/tdlib/Manifest Normal file
View File

@@ -0,0 +1 @@
DIST tdlib-1.8.49_p20250510.tar.gz 5477630 BLAKE2B 4f42bdb5306bf16c5e8f7f13809c3d1aa6f4805584aa21c87a2fb342b6b56c6ee9a6d8e108fabe42c195aa5ad03a7fc1d880fbcf68c8452359cfdf5bede33f7a SHA512 c0ec498011b821d545904674ed3534a5a2be4b38025daa4bb4e9661ec62c1583bc1edadb1dae2bc2619dc50e72baf5a3690e9aed6e87b2c123ce27370d00d9ff

View File

@@ -0,0 +1,18 @@
<?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">tdlib/td</remote-id>
</upstream>
<use>
<flag name="tde2e">Install tde2e headers and cmake config</flag>
</use>
</pkgmetadata>

View File

@@ -0,0 +1,77 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="Cross-platform library for building Telegram clients"
HOMEPAGE="https://github.com/tdlib/td"
MY_PV="51743dfd01dff6179e2d8f7095729caa4e2222e9"
SRC_URI="https://github.com/tdlib/td/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/td-${MY_PV}"
LICENSE="Boost-1.0"
SLOT="0/${PV%_p*}"
KEYWORDS="~amd64"
IUSE="+tde2e test"
RESTRICT="!test? ( test )"
RDEPEND="
dev-libs/openssl
sys-libs/zlib
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-util/gperf
"
src_prepare() {
sed -e '/add_library(/s/ STATIC//' \
-i CMakeLists.txt */CMakeLists.txt || die
sed -e '/set(INSTALL_STATIC_TARGETS /s/ tdjson_static TdJsonStatic//' \
-e '/generate_pkgconfig(tdjson_static /d' \
-i CMakeLists.txt || die
# Benchmarks take way too long to compile
sed -e '/add_subdirectory(benchmark)/d' \
-i CMakeLists.txt || die
# Fix tests linking
sed -e 's/target_link_libraries(run_all_tests PRIVATE /&tdmtproto /' \
-i test/CMakeLists.txt
cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
-DBUILD_TESTING=$(usex test)
-DTDE2E_INSTALL_INCLUDES=yes
)
cmake_src_configure
if use tde2e; then
# Generate cmake configuration files for the e2e-only variant
# These are required by certain programs which depend on "tde2e"
mycmakeargs+=( -DTD_E2E_ONLY=ON )
BUILD_DIR="${S}_tde2e" cmake_src_configure
fi
}
src_install() {
cmake_src_install
if use tde2e; then
# Install the tde2e headers
insinto /usr/include/td/e2e
doins tde2e/td/e2e/e2e_api.h tde2e/td/e2e/e2e_errors.h
# Install the tde2e cmake files
cd "${S}_tde2e" || die
insinto /usr/$(get_libdir)/cmake/tde2e
doins tde2eConfig.cmake tde2eConfigVersion.cmake
doins CMakeFiles/Export/*/tde2eStaticTargets*.cmake
fi
}