mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-17 02:39:08 -07:00
net-p2p/retroshare: Patch bundled libraries, improve ebuild
- port a patch from bundled rapidjson - use upstream .desktop file - avoid evaluating `uselibupnp` if USE=miniupnp (default) Signed-off-by: Filip Kobierski <fkobi@pm.me> Closes: https://github.com/gentoo/gentoo/pull/39471 Signed-off-by: Joonas Niilola <juippis@gentoo.org>
This commit is contained in:
committed by
Joonas Niilola
parent
8729d6e593
commit
de321b8b2d
@@ -0,0 +1,24 @@
|
||||
This fixes a c23 issue in the rapidjson library:
|
||||
|
||||
error: assignment of read-only member 'rapidjson::GenericStringRef::length'
|
||||
|
||||
This was fixed upstream in 2016 and this patch combines two commit from PR
|
||||
https://github.com/Tencent/rapidjson/pull/719
|
||||
We are using OpenBuildService as the tarball source and it bundles libraries that old.
|
||||
|
||||
For Gentoo details see https://bugs.gentoo.org/945721
|
||||
--- a/supportlibs/rapidjson/include/rapidjson/document.h
|
||||
+++ b/supportlibs/rapidjson/include/rapidjson/document.h
|
||||
@@ -316,10 +316,10 @@
|
||||
|
||||
GenericStringRef(const GenericStringRef& rhs) : s(rhs.s), length(rhs.length) {}
|
||||
|
||||
- GenericStringRef& operator=(const GenericStringRef& rhs) { s = rhs.s; length = rhs.length; }
|
||||
-
|
||||
//! implicit conversion to plain CharType pointer
|
||||
operator const Ch *() const { return s; }
|
||||
+ //! Copy assignment operator not permitted - immutable type
|
||||
+ GenericStringRef& operator=(const GenericStringRef& rhs) /* = delete */;
|
||||
|
||||
const Ch* const s; //!< plain CharType pointer
|
||||
const SizeType length; //!< length of the string (excluding the trailing NULL terminator)
|
||||
136
net-p2p/retroshare/retroshare-0.6.7-r3.ebuild
Normal file
136
net-p2p/retroshare/retroshare-0.6.7-r3.ebuild
Normal file
@@ -0,0 +1,136 @@
|
||||
# Copyright 1999-2025 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
|
||||
# but they squash point releases and include 3rd party libraries in the tarball
|
||||
|
||||
LICENSE="AGPL-3 Apache-2.0 CC-BY-SA-4.0 GPL-2 GPL-3 LGPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="cli +gui +jsonapi keyring libupnp +miniupnp plugins +service +sqlcipher"
|
||||
|
||||
REQUIRED_USE="
|
||||
|| ( gui service )
|
||||
?? ( libupnp miniupnp )
|
||||
plugins? ( gui )
|
||||
service? ( || ( cli jsonapi ) )
|
||||
"
|
||||
RDEPEND="
|
||||
app-arch/bzip2
|
||||
dev-libs/openssl:0=
|
||||
sys-libs/zlib
|
||||
gui? (
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtmultimedia:5
|
||||
dev-qt/qtnetwork:5
|
||||
dev-qt/qtprintsupport:5
|
||||
dev-qt/qtwidgets:5
|
||||
dev-qt/qtx11extras:5
|
||||
dev-qt/qtxml:5
|
||||
x11-libs/libX11
|
||||
x11-libs/libXScrnSaver
|
||||
)
|
||||
keyring? ( app-crypt/libsecret )
|
||||
libupnp? ( net-libs/libupnp:= )
|
||||
miniupnp? ( net-libs/miniupnpc:= )
|
||||
plugins? (
|
||||
media-libs/speex
|
||||
media-libs/speexdsp
|
||||
<media-video/ffmpeg-5
|
||||
)
|
||||
sqlcipher? ( dev-db/sqlcipher )
|
||||
!sqlcipher? ( dev-db/sqlite:3 )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
gui? ( dev-qt/designer:5 )
|
||||
jsonapi? ( >=dev-libs/rapidjson-1.1.0 )
|
||||
"
|
||||
BDEPEND="
|
||||
dev-build/cmake
|
||||
dev-qt/qtcore:5
|
||||
virtual/pkgconfig
|
||||
gui? ( x11-base/xorg-proto )
|
||||
jsonapi? ( app-text/doxygen )
|
||||
"
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${P}-fix-miniupnp-api-v18.patch
|
||||
"${FILESDIR}"/${P}_fix-old-rapidjson.patch
|
||||
)
|
||||
|
||||
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"
|
||||
if use miniupnp; then
|
||||
qupnplibs="miniupnpc"
|
||||
elif use libupnp; then
|
||||
qupnplibs="upnp ixml"
|
||||
fi
|
||||
|
||||
# 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 service && dobin retroshare-service/src/retroshare-service
|
||||
|
||||
insinto /usr/share/retroshare
|
||||
doins libbitdht/src/bitdht/bdboot.txt
|
||||
|
||||
dodoc README.asciidoc
|
||||
|
||||
if use gui; then
|
||||
dobin retroshare-gui/src/retroshare
|
||||
doins -r retroshare-gui/src/qss
|
||||
|
||||
doicon data/${PN}.xpm
|
||||
domenu data/${PN}.desktop
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user