Gentoo Archives: gentoo-commits

From: Anna Vyalkova <cyber+gentoo@×××××.in>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/guru:dev commit in: net-libs/td/
Date: Wed, 09 Feb 2022 00:24:58
Message-Id: 1644363613.de8c2499e60687d09b9a18e7e15bd32a4f2a1a6b.cybertailor@gentoo
1 commit: de8c2499e60687d09b9a18e7e15bd32a4f2a1a6b
2 Author: Anna (cybertailor) Vyalkova <cyber+gentoo <AT> sysrq <DOT> in>
3 AuthorDate: Tue Feb 8 11:56:13 2022 +0000
4 Commit: Anna Vyalkova <cyber+gentoo <AT> sysrq <DOT> in>
5 CommitDate: Tue Feb 8 23:40:13 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=de8c2499
7
8 net-libs/td: initial import
9
10 Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo <AT> sysrq.in>
11
12 net-libs/td/Manifest | 1 +
13 net-libs/td/metadata.xml | 17 +++++
14 net-libs/td/td-1.8.0.ebuild | 147 ++++++++++++++++++++++++++++++++++++++++++++
15 3 files changed, 165 insertions(+)
16
17 diff --git a/net-libs/td/Manifest b/net-libs/td/Manifest
18 new file mode 100644
19 index 000000000..4906891d1
20 --- /dev/null
21 +++ b/net-libs/td/Manifest
22 @@ -0,0 +1 @@
23 +DIST td-1.8.0.tar.gz 4527846 BLAKE2B c75dd8513e1d0c248cd910f277bedc2f5c7f565b3450dcf8112df8d3b14f343c9fb144b9f45e4768b70ec89203d9b8b66396dfb45b76f7bd62c0d42b0294dbc2 SHA512 7992bc295900b4a770ec3316cc5d32eac5ced45d9019d65d56d753875fb07ccaca80db6ed8217472cef9a40ac0bf54b438214728f110f3b1ea62078252740640
24
25 diff --git a/net-libs/td/metadata.xml b/net-libs/td/metadata.xml
26 new file mode 100644
27 index 000000000..cbe66e366
28 --- /dev/null
29 +++ b/net-libs/td/metadata.xml
30 @@ -0,0 +1,17 @@
31 +<?xml version="1.0" encoding="UTF-8"?>
32 +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
33 +<pkgmetadata>
34 + <maintainer type="person">
35 + <email>cyber+gentoo@×××××.in</email>
36 + <name>Anna</name>
37 + </maintainer>
38 + <upstream>
39 + <doc>https://core.telegram.org/tdlib/docs/</doc>
40 + <remote-id type="github">tdlib/td</remote-id>
41 + </upstream>
42 + <use>
43 + <flag name="benchmark">Enable benchmarking</flag>
44 + <flag name="dotnet">Add support for .NET</flag>
45 + <flag name="jumbo-build">Combine source files to speed up build process</flag>
46 + </use>
47 +</pkgmetadata>
48
49 diff --git a/net-libs/td/td-1.8.0.ebuild b/net-libs/td/td-1.8.0.ebuild
50 new file mode 100644
51 index 000000000..d719fbdaa
52 --- /dev/null
53 +++ b/net-libs/td/td-1.8.0.ebuild
54 @@ -0,0 +1,147 @@
55 +# Copyright 2022 Gentoo Authors
56 +# Distributed under the terms of the GNU General Public License v2
57 +
58 +EAPI=8
59 +
60 +DOCS_BUILDER="doxygen"
61 +inherit cmake docs
62 +
63 +DESCRIPTION="Cross-platform library for building Telegram clients"
64 +HOMEPAGE="https://core.telegram.org/tdlib https://github.com/tdlib/td"
65 +SRC_URI="https://github.com/tdlib/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
66 +
67 +LICENSE="Boost-1.0"
68 +SLOT="0"
69 +KEYWORDS="~amd64"
70 +IUSE="benchmark dotnet java +jumbo-build static-libs test"
71 +
72 +RESTRICT="!test? ( test )"
73 +
74 +DEPEND="
75 + dev-libs/openssl:=
76 + sys-libs/zlib:=
77 + dotnet? ( virtual/dotnet-sdk:* )
78 + java? ( virtual/jdk:*[-headless-awt] )
79 +"
80 +RDEPEND="${DEPEND}"
81 +BDEPEND="
82 + dev-lang/php[cli]
83 + dev-util/gperf
84 +"
85 +
86 +DOCS=( CHANGELOG.md README.md )
87 +
88 +TEST_TARGETS=(
89 + test-crypto
90 + #test-online -- requires network
91 + #test-tdutils -- hangs
92 + #run_all_tests -- segfaults
93 +)
94 +BENCH_TARGETS=(
95 + bench_{actor,empty,handshake,misc}
96 + bench_http
97 + check_tls
98 + #bench_{db,tddb} -- fail
99 + #bench_http_server{,_cheat,_fast} - hang
100 + #bench_http_reader -- fails
101 + #check_proxy -- requires proxy
102 + #rmdir -- fails
103 + #wget -- requires network
104 +)
105 +
106 +src_prepare() {
107 + sed "/find_program(CCACHE_FOUND ccache)/d" -i CMakeLists.txt || die
108 + echo "" > gen_git_commit_h.sh || die
109 +
110 + use test || cmake_comment_add_subdirectory test
111 + use benchmark || cmake_comment_add_subdirectory benchmark
112 +
113 + cmake_src_prepare
114 +}
115 +
116 +src_configure() {
117 + local mycmakeargs=(
118 + -DTD_ENABLE_DOTNET=$(usex dotnet)
119 + )
120 +
121 + if use java; then
122 + local JAVA_HOME=$(java-config -O)
123 + local JAVA_AWT_LIBRARY=$(echo "${JAVA_HOME}"/jre/lib/*/libjawt.so)
124 + local JAVA_JVM_LIBRARY=$(echo "${JAVA_HOME}"/jre/lib/*/libjava.so)
125 +
126 + mycmakeargs+=(
127 + -DTD_ENABLE_JNI=ON
128 + -DJAVA_AWT_LIBRARY="${JAVA_AWT_LIBRARY}"
129 + -DJAVA_JVM_LIBRARY="${JAVA_JVM_LIBRARY}"
130 + -DJAVA_INCLUDE_PATH="${JAVA_HOME}/include"
131 + -DJAVA_INCLUDE_PATH2="${JAVA_HOME}/include/linux"
132 + -DJAVA_AWT_INCLUDE_PATH="${JAVA_HOME}/include"
133 + )
134 + fi
135 +
136 + cmake_src_configure
137 +}
138 +
139 +src_compile() {
140 + einfo "Generating TL source file"
141 + cmake_build tl_generate_common tl_generate_json
142 +
143 + einfo "Generating git_info.h"
144 + cat <<- EOF > auto/git_info.h || die
145 + #pragma once
146 + #define GIT_COMMIT "v${PV}"
147 + #define GIT_DIRTY 0
148 + EOF
149 +
150 + if ! use jumbo-build; then
151 + einfo "Splitting source files"
152 + php SplitSource.php || die
153 + fi
154 +
155 + # Let's build the library
156 + einfo "Building TDLib"
157 + cmake_src_compile
158 +
159 + if use test; then
160 + einfo "Building tests"
161 + cmake_build "${TEST_TARGETS[@]}"
162 + fi
163 +
164 + if use doc; then
165 + einfo "Generating docs"
166 + docs_compile
167 + fi
168 +}
169 +
170 +src_test() {
171 + # segfault
172 + #cmake_src_test
173 +
174 + pushd "${BUILD_DIR}"/test > /dev/null || die
175 + for exe in "${TEST_TARGETS[@]}"; do
176 + einfo "Running ${exe}"
177 + ./"${exe}" || die "${exe} failed"
178 + done
179 + popd > /dev/null || die
180 +
181 + if use benchmark; then
182 + pushd "${BUILD_DIR}"/benchmark > /dev/null || die
183 + for exe in "${BENCH_TARGETS[@]}"; do
184 + einfo "Running ${exe}"
185 + ./"${exe}" || die "${exe} failed"
186 + done
187 + popd > /dev/null || die
188 + fi
189 +}
190 +
191 +src_install() {
192 + cmake_src_install
193 +
194 + docompress -x /usr/share/doc/${PF}/example
195 + dodoc -r example
196 +
197 + if ! use static-libs; then
198 + einfo "Removing static libraries"
199 + find "${D}" -type f -name '*.a' -delete || die
200 + fi
201 +}