commit: e73850c45728d03f15d798b1224a15584b6120b0
Author: Anna (cybertailor) Vyalkova <cyber+gentoo <AT> sysrq <DOT> in>
AuthorDate: Tue Jan 7 17:52:36 2025 +0000
Commit: Anna Vyalkova <cyber+gentoo <AT> sysrq <DOT> in>
CommitDate: Tue Jan 7 19:58:59 2025 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=e73850c4
net-im/conduit: use llvm-r2 eclass
Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo <AT> sysrq.in>
net-im/conduit/conduit-0.9.0-r1.ebuild | 39 ++++++++++++++++++++++++----------
1 file changed, 28 insertions(+), 11 deletions(-)
diff --git a/net-im/conduit/conduit-0.9.0-r1.ebuild
b/net-im/conduit/conduit-0.9.0-r1.ebuild
index 8f3ceb4b9..7b8501af8 100644
--- a/net-im/conduit/conduit-0.9.0-r1.ebuild
+++ b/net-im/conduit/conduit-0.9.0-r1.ebuild
@@ -1,8 +1,6 @@
-# Copyright 2023-2024 Gentoo Authors
+# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-# Auto-Generated by cargo-ebuild 0.5.4
-
EAPI=8
CRATES="
@@ -373,6 +371,8 @@ CRATES="
[email protected]
[email protected]
"
+LLVM_COMPAT=( {15..19} )
+RUST_MIN_VER="1.79.0"
declare -A GIT_CRATES=(
[ruma-appservice-api]='https://github.com/ruma/ruma;c06af4385e0e30c48a8e9ca3d488da32102d0db9;ruma-%commit%/crates/ruma-appservice-api'
@@ -390,9 +390,7 @@ declare -A GIT_CRATES=(
[ruma]='https://github.com/ruma/ruma;c06af4385e0e30c48a8e9ca3d488da32102d0db9;ruma-%commit%/crates/ruma'
)
-RUST_MIN_VER="1.75.0"
-
-inherit cargo systemd toolchain-funcs
+inherit cargo llvm-r2 systemd toolchain-funcs
MY_P="${PN}-v${PV}"
DESCRIPTION="Matrix homeserver written in Rust"
@@ -430,7 +428,7 @@ IUSE="jemalloc rocksdb system-rocksdb"
# - app-arch/lz4 ("lz4-sys" crate doesn't look for system library...
ironic)
# - dev-db/sqlite:3 ("conduit" pulls "rusqlite[bundled]" explicitly)
# - sys-libs/zlib ("rust-librocksdb-sys" pulls "libz-sys[static]" by
default)
-DEPEND="
+COMMON_DEPEND="
jemalloc? ( dev-libs/jemalloc:= )
rocksdb? (
app-arch/snappy:=
@@ -438,13 +436,21 @@ DEPEND="
system-rocksdb? ( dev-libs/rocksdb )
)
"
-RDEPEND="${DEPEND}
+RDEPEND="${COMMON_DEPEND}
acct-user/conduit
app-misc/ca-certificates
"
+# clang needed for bindgen
+DEPEND="${COMMON_DEPEND}
+ rocksdb? (
+ $(llvm_gen_dep '
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ ')
+ )
+"
BDEPEND="
rocksdb? (
- llvm-core/clang
virtual/pkgconfig
)
"
@@ -453,9 +459,12 @@ DOCS=( {APPSERVICES,CODE_OF_CONDUCT,DEPLOY,README,TURN}.md
)
QA_FLAGS_IGNORED="usr/bin/${PN}"
-src_configure() {
- tc-export AR CC
+pkg_setup() {
+ use rocksdb && llvm-r2_pkg_setup
+ rust_pkg_setup
+}
+src_configure() {
# Tracker bug for that Cargo nonsense:
# https://bugs.gentoo.org/709568
export PKG_CONFIG_ALLOW_CROSS=1
@@ -466,6 +475,14 @@ src_configure() {
if use system-rocksdb; then
export ROCKSDB_INCLUDE_DIR="${ESYSROOT}/usr/include"
export ROCKSDB_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)"
+ elif use rocksdb; then
+ # Rust uses 'gcc' or 'clang' (not 'g++' or 'clang++'), so C++
standard
+ # library needs to be linked explicitly.
+ if [[ $(tc-get-cxx-stdlib) == "libstdc++" ]]; then
+ append-ldflags -lstdc++
+ elif [[ $(tc-get-cxx-stdlib) == "libc++" ]]; then
+ append-ldflags -lc++
+ fi
fi
local myfeatures=(