blob: 36621f645bd834f762727ec23a6b5370d91bd4bb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
# Copyright 2020-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake git-r3 optfeature xdg
DESCRIPTION="Native desktop client for Matrix using Qt"
HOMEPAGE="https://github.com/Nheko-Reborn/nheko"
EGIT_REPO_URI="https://github.com/Nheko-Reborn/nheko.git"
# Nheko usually needs a very up-to-date mtxclient which usually needs a very
# up-to-date coeurl. It is impossible to automatically rebuild other live
# packages before rebuilding this, so they are bundled.
MY_DEP_URIS=(
"https://github.com/Nheko-Reborn/mtxclient.git"
"https://nheko.im/nheko-reborn/coeurl.git"
)
LICENSE="GPL-3 MIT"
SLOT="0"
IUSE="X +pie video voip"
REQUIRED_USE="video? ( voip )"
MY_GST_V="1.18"
RDEPEND="
app-text/cmark:=
dev-cpp/cpp-httplib:=
dev-db/lmdb:=
>=dev-db/lmdb++-1.0.0
dev-libs/libevent:=
dev-libs/libfmt:=
>=dev-libs/kdsingleapplication-1.1.0
dev-libs/olm
>=dev-libs/openssl-1.1.0:=
>=dev-libs/qtkeychain-0.14.1-r1:=
>=dev-libs/re2-0.2022.04.01:=
dev-libs/spdlog:=
dev-qt/qtbase:6[concurrent,dbus,gui,widgets]
dev-qt/qtdeclarative:6[widgets]
dev-qt/qtimageformats:6
dev-qt/qtmultimedia:6[gstreamer]
dev-qt/qtsvg:6
net-misc/curl[ssl]
virtual/notification-daemon
voip? (
>=media-plugins/gst-plugins-dtls-${MY_GST_V}
media-plugins/gst-plugins-libnice
>=media-plugins/gst-plugins-meta-${MY_GST_V}[opus]
>=media-plugins/gst-plugins-srtp-${MY_GST_V}
>=media-plugins/gst-plugins-webrtc-${MY_GST_V}
video? (
>=media-libs/gst-plugins-base-${MY_GST_V}[opengl]
>=media-plugins/gst-plugins-meta-${MY_GST_V}[v4l,vpx]
>=media-plugins/gst-plugins-qt6-${MY_GST_V}:1.0
X? (
>=media-plugins/gst-plugins-ximagesrc-${MY_GST_V}
)
)
)
X? (
x11-libs/libxcb:=
x11-libs/xcb-util-wm
)
"
# TODO: gst-plugins-qt6
DEPEND="
dev-cpp/nlohmann_json
${RDEPEND}
"
BDEPEND="
dev-qt/qttools:6[linguist]
|| (
app-text/asciidoc
dev-ruby/asciidoctor
)
"
src_unpack() {
# Unpack dependencies first. The commit ID of the repo used in the last call
# to git-r3_src_unpack is stored and checked by smart-live-rebuild.
for repo_uri in ${MY_DEP_URIS[@]}; do
EGIT_REPO_URI="${repo_uri}" EGIT_CHECKOUT_DIR="${WORKDIR}/${repo_uri##*/}" git-r3_src_unpack
done
git-r3_src_unpack
}
src_prepare() {
# Don't try to download mtxclient and coeurl.
sed -Ei '/GIT_(REPOSITORY|TAG)/d' CMakeLists.txt || die
sed -Ei '/GIT_(REPOSITORY|TAG)/d' ../mtxclient.git/CMakeLists.txt || die
mkdir -p "${WORKDIR}/${P}_build/_deps" || die
mv ../mtxclient.git "${WORKDIR}/${P}_build/_deps/matrixclient-src" || die
mv ../coeurl.git "${WORKDIR}/${P}_build/_deps/coeurl-src" || die
cmake_src_prepare
}
src_configure() {
local -a mycmakeargs=(
-DUSE_BUNDLED_MTXCLIENT=yes
-DUSE_BUNDLED_COEURL=yes
-DBUILD_SHARED_LIBS=no
-DVOIP=$(usex voip)
-DCMAKE_POSITION_INDEPENDENT_CODE=$(usex pie)
-DUSE_BUNDLED_CPPHTTPLIB=no
-DX11=$(usex X)
)
cmake_src_configure
}
src_install() {
cmake_src_install
# Remove stuff from bundled libs.
rm -r "${D}/usr/$(get_libdir)" || die
rm -r "${D}/usr/include" || die
}
pkg_postinst() {
optfeature "audio & video file playback support" \
"media-plugins/gst-plugins-meta[ffmpeg]"
optfeature "secrets storage support other than kwallet (for example gnome-keyring or keepassxc)" \
"dev-libs/qtkeychain[keyring]"
optfeature "additional, less common, image format support" \
"kde-frameworks/kimageformats:6"
optfeature "identicons support" dev-cpp/qt-jdenticon:6
xdg_pkg_postinst
ewarn "since Nheko migrated to Qt 6 video streams will not work for now because"
ewarn "we are missing a dependency. see <https://bugs.gentoo.org/810814> for details"
}
|