blob: d33aa29b29335c2637aa56d02e014ca8a199f745 (
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
136
137
138
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic desktop qmake-utils xdg
DESCRIPTION="Friend to Friend secure communication and sharing application"
HOMEPAGE="https://retroshare.cc"
SRC_URI="https://download.opensuse.org/repositories/network:/retroshare/Debian_Testing/retroshare-common_${PV}.orig.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/RetroShare"
# NOTE: GitHub releases/archive is impractical to build so we use the OBS repo
LICENSE="AGPL-3 Apache-2.0 CC-BY-SA-4.0 GPL-2 GPL-3 LGPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="keyring cli +gui +jsonapi libupnp +miniupnp +service +sqlcipher plugins"
REQUIRED_USE="
|| ( gui service )
?? ( libupnp miniupnp )
plugins? ( gui )
service? ( || ( cli jsonapi ) )"
RDEPEND="
app-arch/bzip2
dev-libs/openssl:0=
sys-libs/zlib
keyring? ( app-crypt/libsecret )
gui? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtmultimedia:5
dev-qt/qtnetwork:5
dev-qt/qtprintsupport:5
dev-qt/qtxml:5
dev-qt/qtwidgets:5
dev-qt/qtx11extras:5
x11-libs/libX11
x11-libs/libXScrnSaver
)
libupnp? ( net-libs/libupnp:= )
miniupnp? ( net-libs/miniupnpc:= )
sqlcipher? ( dev-db/sqlcipher )
!sqlcipher? ( dev-db/sqlite:3 )
plugins? (
media-libs/speex
media-libs/speexdsp
<media-video/ffmpeg-5
)"
# NOTE(setan): rapidjson might not be needed if not using jsonapi. This is to be tested
DEPEND="${RDEPEND}
>=dev-libs/rapidjson-1.1.0
gui? ( dev-qt/designer:5 )"
BDEPEND="dev-build/cmake
dev-qt/qtcore:5
virtual/pkgconfig
gui? ( x11-base/xorg-proto )
jsonapi? ( app-text/doxygen )"
src_configure() {
local qconfigs=(
$(usex cli '' 'no_')rs_service_terminal_login
$(usex keyring '' 'no_')rs_autologin
$(usex gui '' 'no_')retroshare_gui
$(usex jsonapi '' 'no_')rs_jsonapi
$(usex service '' 'no_')retroshare_service
$(usex sqlcipher '' 'no_')sqlcipher
$(usex plugins '' 'no_')retroshare_plugins
)
local qupnplibs="none"
use miniupnp && qupnplibs="miniupnpc"
use libupnp && qupnplibs="upnp ixml"
# bug 907898
use elibc_musl && append-flags -D_LARGEFILE64_SOURCE
# REVIEW: qmake is deprecated
# https://github.com/RetroShare/RetroShare/tree/master/jsonapi-generator
eqmake5 CONFIG+="${qconfigs[*]}" \
RS_MAJOR_VERSION=$(ver_cut 1) RS_MINOR_VERSION=$(ver_cut 2) \
RS_MINI_VERSION=$(ver_cut 3) RS_EXTRA_VERSION="-gentoo-${PR}" \
RS_UPNP_LIB="${qupnplibs}"
}
src_install() {
use gui && dobin retroshare-gui/src/retroshare
use service && dobin retroshare-service/src/retroshare-service
insinto /usr/share/retroshare
doins libbitdht/src/bitdht/bdboot.txt
use gui && doins -r retroshare-gui/src/qss
dodoc README.asciidoc
if use gui; then
make_desktop_entry retroshare
for i in 24 48 64 128 ; do
doicon -s ${i} "data/${i}x${i}/apps/retroshare.png"
done
fi
if use plugins; then
insinto /usr/lib/retroshare/extensions6
doins plugins/*/lib/*.so
fi
}
pkg_preinst() {
xdg_pkg_preinst
if ! use sqlcipher && ! has_version "net-p2p/retroshare[-sqlcipher]"; then
ewarn "You have disabled GXS database encryption, ${PN} will use SQLite"
ewarn "instead of SQLCipher for GXS databases."
ewarn "Builds using SQLite and builds using SQLCipher have incompatible"
ewarn "database format, so you will need to manually delete GXS"
ewarn "database (loosing all your GXS data and identities) when you"
ewarn "toggle sqlcipher USE flag."
fi
if [[ ${REPLACING_VERSIONS} ]]; then
if ver_test ${REPLACING_VERSIONS} -lt 0.6; then
ewarn "You are upgrading from Retroshare 0.5.* to ${PV}"
ewarn "Version 0.6.* is backward-incompatible with 0.5 branch"
ewarn "and clients with 0.6.* can not connect to clients that have 0.5.*"
ewarn "It's recommended to drop all your configuration and either"
ewarn "generate a new certificate or import existing from a backup"
break
fi
if ver_test ${REPLACING_VERSIONS} -ge 0.6.0 && ver_test ${REPLACING_VERSIONS} -lt 0.6.4; then
elog "Main executable has been renamed upstream from RetroShare06 to retroshare"
break
fi
fi
}
|