commit:     68ae6665c6cf68fbc2f50a57442fedcffd3be331
Author:     Josiah Mullins <jomull01 <AT> protonmail <DOT> com>
AuthorDate: Wed May 22 21:27:33 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun May 26 09:43:26 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=68ae6665

net-libs/tox: New use flag dht-node.

This commit introduces the use flag dht-node. This flag
controls the building of the program /usr/bin/DHT_bootstrap.
This flag is turned off by default. This helps mitigate
the impact of Bug 684470.

Signed-off-by: Josiah Mullins <JoMull01 <AT> protonmail.com>
Bug: https://bugs.gentoo.org/684470
Package-Manager: Portage-2.3.62, Repoman-2.3.11
Closes: https://github.com/gentoo/gentoo/pull/12009
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 net-libs/tox/metadata.xml        |   1 +
 net-libs/tox/tox-0.2.9-r1.ebuild | 110 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 111 insertions(+)

diff --git a/net-libs/tox/metadata.xml b/net-libs/tox/metadata.xml
index 4c464531d0b..9b67a0bb173 100644
--- a/net-libs/tox/metadata.xml
+++ b/net-libs/tox/metadata.xml
@@ -11,6 +11,7 @@
        </maintainer>
        <use>
                <flag name="av">Adds support for audio and video.</flag>
+               <flag name="dht-node">Enables DHT Bootstrap Node.</flag> 
                <flag name="no-log">Log level: 0 (no debug info logged)</flag>
                <flag name="log-error">Log level: 1</flag>
                <flag name="log-warn">Log level: 2</flag>

diff --git a/net-libs/tox/tox-0.2.9-r1.ebuild b/net-libs/tox/tox-0.2.9-r1.ebuild
new file mode 100644
index 00000000000..96361d5998c
--- /dev/null
+++ b/net-libs/tox/tox-0.2.9-r1.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils systemd user
+
+MY_P="c-toxcore-${PV}"
+DESCRIPTION="Encrypted P2P, messaging, and audio/video calling platform"
+HOMEPAGE="https://tox.chat";
+SRC_URI="https://github.com/TokTok/c-toxcore/archive/v${PV}.tar.gz -> 
${MY_P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0/0.2"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+av daemon dht-node ipv6 log-debug +log-error log-info log-trace 
log-warn static-libs test"
+
+REQUIRED_USE="?? ( log-debug log-error log-info log-trace log-warn )
+               daemon? ( dht-node )"
+
+RDEPEND="
+       av? ( media-libs/libvpx:=
+               media-libs/opus )
+       daemon? ( dev-libs/libconfig )
+       >=dev-libs/libsodium-0.6.1:=[asm,urandom,-minimal]"
+BDEPEND="virtual/pkgconfig"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+       cmake-utils_src_prepare
+       #remove faulty tests
+       for testname in bootstrap lan_discovery save_compatibility tcp_relay 
tox_many_tcp; do
+               sed -i -e "/^auto_test(${testname})$/d" CMakeLists.txt || die
+       done
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DAUTOTEST=$(usex test)
+               -DBOOTSTRAP_DAEMON=$(usex daemon)
+               -DBUILD_MISC_TESTS=$(usex test)
+               -DBUILD_TOXAV=$(usex av)
+               -DDHT_BOOTSTRAP=$(usex dht-node)
+               -DENABLE_SHARED=ON
+               -DENABLE_STATIC=$(usex static-libs)
+               -DMUST_BUILD_TOXAV=$(usex av))
+       if use test; then
+               mycmakeargs+=(
+                       -DBUILD_AV_TEST=$(usex av)
+                       -DTEST_TIMEOUT_SECONDS=120
+                       -DUSE_IPV6=$(usex ipv6))
+       else
+               mycmakeargs+=(
+                       -DBUILD_AV_TEST=OFF
+                       -DUSE_IPV6=OFF)
+       fi
+
+       if use log-trace; then
+               mycmakeargs+=(-DMIN_LOGGER_LEVEL="TRACE")
+       elif use log-debug; then
+               mycmakeargs+=(-DMIN_LOGGER_LEVEL="DEBUG")
+       elif use log-info; then
+               mycmakeargs+=(-DMIN_LOGGER_LEVEL="INFO")
+       elif use log-warn; then
+               mycmakeargs+=(-DMIN_LOGGER_LEVEL="WARNING")
+       elif use log-error; then
+               mycmakeargs+=(-DMIN_LOGGER_LEVEL="ERROR")
+       else
+               mycmakeargs+=(-DMIN_LOGGER_LEVEL="")
+               einfo "Logging disabled"
+       fi
+
+       cmake-utils_src_configure
+}
+
+src_install() {
+       cmake-utils_src_install
+
+       if use daemon; then
+               newinitd "${FILESDIR}"/initd tox-dht-daemon
+               newconfd "${FILESDIR}"/confd tox-dht-daemon
+               insinto /etc
+               doins "${FILESDIR}"/tox-bootstrapd.conf
+               systemd_dounit "${FILESDIR}"/tox-bootstrapd.service
+       fi
+}
+
+pkg_postinst() {
+       if use dht-node; then
+               ewarn "There is currently an unresolved issue with tox"
+               ewarn "DHT Bootstrap node that causes the program to be"
+               ewarn "built with a null library reference. This"
+               ewarn "causes an infinite loop for certain revdep-rebuild"
+               ewarn "commands. If you aren't running a node, please"
+               ewarn "consider disabling the DHT-node use flag."
+       fi
+       if use daemon; then
+               enewgroup tox
+               enewuser tox -1 -1 -1 tox
+               if [[ -f ${EROOT}/var/lib/tox-dht-bootstrap/key ]]; then
+                       ewarn "Backwards compatability with the bootstrap 
daemon might have been"
+                       ewarn "broken a while ago. To resolve this issue, 
REMOVE the following files:"
+                       ewarn "    ${EROOT}/var/lib/tox-dht-bootstrap/key"
+                       ewarn "    ${EROOT}/etc/tox-bootstrapd.conf"
+                       ewarn "    
${EROOT}/run/tox-dht-bootstrap/tox-dht-bootstrap.pid"
+                       ewarn "Then just re-emerge net-libs/tox"
+               fi
+       fi
+}

Reply via email to