net-p2p/retroshare update development ebuild
authorGioacchino Mazzurco <gio@eigenlab.org>
Mon, 23 Apr 2018 08:53:16 +0000 (10:53 +0200)
committerMichał Górny <mgorny@gentoo.org>
Sat, 9 Jun 2018 21:15:36 +0000 (23:15 +0200)
Development version of retroshare expose qmake flags that permit easier
build customization without crufty patching, improve development ebuild
to take advantage of that and have a cleaner ebuild.

Removed VoIP and feedreader plugins are not maintained.

For future stable versions this ebuild should be used as reference
and not the older ones.

Development version depends on rapidjson.

Closes: https://github.com/gentoo/gentoo/pull/8115

net-p2p/retroshare/metadata.xml
net-p2p/retroshare/retroshare-0.6.9999.ebuild

index d634614148a0f2930cf6af6eafd60170d3fb093c..6f5d194f45d17aa806d83c3b7600fd9a68b52d19 100644 (file)
                <name>Sergey Popov</name>
        </maintainer>
        <longdescription lang="en">
-               RetroShare is a Open Source cross-platform, Friend-2-Friend and
+               RetroShare is a Free and Open Source cross-platform, Friend-2-Friend
                secure decentralised communication platform.
-               It lets you to securely chat and share files with your friends
-               and family, using a web-of-trust to authenticate peers and OpenSSL
+               It lets you to securely chat and share files with your friends, family
+               and even unknown people using PGP to authenticate peers and OpenSSL
                to encrypt all communication.
-               RetroShare provides filesharing, chat, messages, forums and
-               channels
+               RetroShare provides filesharing, chat, mails, forums and channels.
        </longdescription>
        <use>
                <flag name="cli">Enables the CLI version of RetroShare</flag>
+               <flag name="control-socket">Enables API via Unix socket support</flag>
                <flag name="feedreader">Enables the Feedreader plugin</flag>
                <flag name="gnome-keyring">Enables potentially insecure autologin capability via Gnome Keyring</flag>
                <flag name="gui">Enables the GUI version of RetroShare</flag>
+               <flag name="settings-api">Enables settings control via API</flag>
+               <flag name="sqlcipher">Enables GXS database encryption via SQLCipher</flag>
                <flag name="voip">Enables VOIP plugin</flag>
+               <flag name="webui">Enables Web interface and API support</flag>
        </use>
        <upstream>
-               <bugs-to>https://sourceforge.net/p/retroshare/bugs</bugs-to>
-               <remote-id type="sourceforge">retroshare</remote-id>
+               <bugs-to>https://github.com/RetroShare/RetroShare/issues</bugs-to>
                <remote-id type="github">RetroShare/RetroShare</remote-id>
        </upstream>
 </pkgmetadata>
index 2a62dc7dc3dcd12ed873541d51713c9372746c80..0db2373b5c229036bb5589e419c1cfef6bd86dc3 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -10,135 +10,105 @@ DESCRIPTION="P2P private sharing application"
 HOMEPAGE="http://retroshare.net"
 
 # pegmarkdown can also be used with MIT
-LICENSE="GPL-2 GPL-3 Apache-2.0 LGPL-2.1"
+LICENSE="AGPL-3 GPL-2 GPL-3 Apache-2.0 LGPL-2.1"
 SLOT="0"
 KEYWORDS=""
 
-IUSE="cli feedreader gnome-keyring +gui voip"
+IUSE="cli control-socket gnome-keyring +gui settings-api +sqlcipher +webui"
 REQUIRED_USE="
        || ( cli gui )
-       feedreader? ( gui )
-       voip? ( gui )"
+       settings-api? ( || ( control-socket webui ) )"
 
 RDEPEND="
        app-arch/bzip2
-       dev-db/sqlcipher
-       dev-libs/openssl:0
-       dev-qt/qtcore:5
-       dev-qt/qtmultimedia:5
-       dev-qt/qtnetwork:5
-       dev-qt/qtprintsupport:5
-       dev-qt/qtscript:5
-       dev-qt/qtxml:5
-       net-libs/libmicrohttpd
-       net-libs/libupnp:0
+       dev-libs/openssl:0=
+       >=dev-libs/rapidjson-1.1.0
+       net-libs/libupnp:0=
        sys-libs/zlib
+       control-socket? ( dev-qt/qtnetwork:5 )
        gnome-keyring? ( gnome-base/libgnome-keyring )
-       feedreader? (
-               dev-libs/libxml2
-               dev-libs/libxslt
-               net-misc/curl
-       )
        gui? (
-               dev-qt/designer:5
+               dev-qt/qtcore:5
+               dev-qt/qtmultimedia:5
+               dev-qt/qtnetwork:5
+               dev-qt/qtprintsupport:5
+               dev-qt/qtscript:5
+               dev-qt/qtxml:5
                dev-qt/qtgui:5
                dev-qt/qtwidgets:5
                dev-qt/qtx11extras:5
                x11-libs/libX11
                x11-libs/libXScrnSaver
        )
-       voip? (
-               media-libs/opencv[-qt4(-)]
-               media-libs/speex
-               virtual/ffmpeg[encode]
-       )"
-DEPEND="${RDEPEND}
-       virtual/pkgconfig"
-
-src_prepare() {
-       local dir
-
-       sed -i \
-               -e "s|/usr/lib/retroshare/extensions6/|/usr/$(get_libdir)/${PN}/extensions6/|" \
-               libretroshare/src/rsserver/rsinit.cc \
-               || die "sed on libretroshare/src/rsserver/rsinit.cc failed"
+       settings-api? ( dev-qt/qtcore:5 )
+       sqlcipher? ( dev-db/sqlcipher )
+       !sqlcipher? ( dev-db/sqlite:3 )
+       webui? ( net-libs/libmicrohttpd )"
 
-       rs_src_dirs="libbitdht/src openpgpsdk/src libresapi/src libretroshare/src supportlibs/pegmarkdown"
-       use cli && rs_src_dirs="${rs_src_dirs} retroshare-nogui/src"
-       use feedreader && rs_src_dirs="${rs_src_dirs} plugins/FeedReader"
-       use gui && rs_src_dirs="${rs_src_dirs} retroshare-gui/src"
-       use voip && rs_src_dirs="${rs_src_dirs} plugins/VOIP"
-
-       # Force linking to sqlcipher ONLY
-       sed -i \
-               -e '/isEmpty(SQLCIPHER_OK) {/aerror(libsqlcipher not found)' \
-               retroshare-gui/src/retroshare-gui.pro \
-               retroshare-nogui/src/retroshare-nogui.pro || die 'sed on retroshare-gui/src/retroshare-gui.pro failed'
-
-       # Avoid openpgpsdk false dependency on qtgui
-       sed -i '2iQT -= gui' openpgpsdk/src/openpgpsdk.pro || die
-
-       eapply_user
-}
+DEPEND="${RDEPEND}
+       gui? ( dev-qt/designer:5 )
+       dev-qt/qtcore:5
+       virtual/pkgconfig
+"
 
 src_configure() {
-       for dir in ${rs_src_dirs} ; do
-               pushd "${S}/${dir}" >/dev/null || die
-               eqmake5 $(use gnome-keyring && echo CONFIG+=rs_autologin)
-               popd >/dev/null || die
-       done
-}
+       local qConfigs=()
 
-src_compile() {
-       local dir
-
-       for dir in ${rs_src_dirs} ; do
-               emake -C "${dir}"
-       done
+       qConfigs+=( $(usex cli '' 'no_')retroshare_nogui )
+       qConfigs+=( $(usex control-socket '' 'no_')libresapilocalserver )
+       qConfigs+=( $(usex gnome-keyring '' 'no_')rs_autologin )
+       qConfigs+=( $(usex gui '' 'no_')retroshare_gui )
+       qConfigs+=( $(usex settings-api '' 'no_')libresapi_settings )
+       qConfigs+=( $(usex sqlcipher '' 'no_')sqlcipher )
+       qConfigs+=( $(usex webui '' 'no_')libresapihttpserver )
 
-       unset rs_src_dirs
+       eqmake5 CONFIG+="${qConfigs[*]}"
 }
 
 src_install() {
-       local i
-       local extension_dir="/usr/$(get_libdir)/${PN}/extensions6/"
-
        use cli && dobin retroshare-nogui/src/retroshare-nogui
        use gui && dobin retroshare-gui/src/retroshare
 
-       exeinto "${extension_dir}"
-       use feedreader && doexe plugins/FeedReader/*.so*
-       use voip && doexe plugins/VOIP/*.so*
-
        insinto /usr/share/retroshare
        doins libbitdht/src/bitdht/bdboot.txt
 
-       doins -r libresapi/src/webui
+       use webui && doins -r libresapi/src/webui
 
        dodoc README.md
        make_desktop_entry retroshare
+
        for i in 24 48 64 128 ; do
                doicon -s ${i} "data/${i}x${i}/apps/retroshare.png"
        done
 }
 
+pkg_pretend() {
+       if ! use 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
+}
+
 pkg_preinst() {
        local ver
        for ver in ${REPLACING_VERSIONS}; do
                if ! version_is_at_least 0.5.9999 ${ver}; then
-                       elog "You are upgrading from Retroshare 0.5.* to ${PV}"
-                       elog "Version 0.6.* is backward-incompatible with 0.5 branch"
-                       elog "and clients with 0.6.* can not connect to clients that have 0.5.*"
-                       elog "It's recommended to drop all your configuration and either"
-                       elog "generate a new certificate or import existing from a backup"
+                       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 version_is_at_least 0.6.0 ${ver}; then
-                       elog "Main executable was renamed upstream from RetroShare06 to retroshare"
+               if version_is_at_least 0.6.0 ${ver} && ! version_is_at_least 0.6.4 ${ver}; then
+                       elog "Main executable has been renamed upstream from RetroShare06 to retroshare"
                        break
                fi
        done
-       gnome2_icon_savelist
 }
 
 pkg_postinst() {