Skip to content

Commit

Permalink
net-misc/aria2: bump to 1.35.0
Browse files Browse the repository at this point in the history
Bump EAPI while we're at it.

Closes: https://bugs.gentoo.org/704086
Package-Manager: Portage-3.0.12, Repoman-3.0.2
Signed-off-by: Peter Alfredsen <crabbedhaloablution@icloud.com>
  • Loading branch information
crabbedhaloablution committed Dec 17, 2020
1 parent eea138f commit b06d206
Show file tree
Hide file tree
Showing 2 changed files with 185 additions and 0 deletions.
1 change: 1 addition & 0 deletions net-misc/aria2/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
DIST aria2-1.34.0.tar.xz 1525908 BLAKE2B 479145af229f5fe864e54c511197bedb306199dbda608416aa295930a8392c7a118993b5a1634db20b380ab448cc8a397a351b6b64560ca263a0818d47a1ae64 SHA512 80bc43e242c06acc95030021cb347b4ec230729f3d7e512ca1932941b34ef95c312a34007a226869e5d720839a400e66cdb072ccab5d42228d8cf3d828723dcc
DIST aria2-1.35.0.tar.xz 1534460 BLAKE2B fc207ad0054e211b79ee1c6302c6bf83d0638fd5659d19dbd63d7cfb31101feb7d1a661b989ec42552c9a5c072dd660d2f7203063c3c1e14f53d5ce4c5a3c317 SHA512 82b49cecd61064ae33b4a422a2320d533f54afea8fab0f014072a46afdc05972d2e9c603e843960c097410adf87290df65849f4ee05e047403618ae50db151ef
184 changes: 184 additions & 0 deletions net-misc/aria2/aria2-1.35.0.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI="7"

inherit bash-completion-r1

DESCRIPTION="A download utility with segmented downloading with BitTorrent support"
HOMEPAGE="https://aria2.github.io/"
SRC_URI="https://github.com/aria2/${PN}/releases/download/release-${PV}/${P}.tar.xz"

LICENSE="GPL-2+-with-openssl-exception"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
SLOT="0"
IUSE="adns bittorrent +gnutls jemalloc libuv +libxml2 metalink +nettle nls sqlite scripts ssh ssl tcmalloc test xmlrpc"
# xmlrpc has no explicit switch, it's turned out by any XML library
# so metalink implicitly forces it on
REQUIRED_USE="?? ( jemalloc tcmalloc )
metalink? ( xmlrpc )"
RESTRICT="!test? ( test )"
# Crazy GnuTLS/OpenSSL/etc. logic below:
# 1. Those libraries are used for two purposes: TLS & MD.
# 2. Upstream preferences are:
# 1) gnutls [tls]
# 2) !gnutls? -> openssl [tls+md]
# 3) !openssl? -> nettle [md]
# 4) !openssl? !nettle? -> gcrypt [md]
# 5) !*? -> bundled md routines (we don't use them)
# 3. There's also gmp usage for bittorrent with nettle.
# 4. You can't really control features, just dependencies.
# (we are skipping native Apple/Windows TLS support)
#
# We map this into:
# ssl? -> openssl || (gnutls + (nettle || libgcrypt ))
# !ssl? -> nettle || libgcrypt

RDEPEND="sys-libs/zlib:0=
adns? ( >=net-dns/c-ares-1.5.0:0= )
jemalloc? ( dev-libs/jemalloc )
libuv? ( >=dev-libs/libuv-1.13:0= )
metalink? (
libxml2? ( >=dev-libs/libxml2-2.6.26:2= )
!libxml2? ( dev-libs/expat:0= ) )
sqlite? ( dev-db/sqlite:3= )
ssh? ( net-libs/libssh2:= )
ssl? (
app-misc/ca-certificates
gnutls? (
>=net-libs/gnutls-1.2.9:0=
nettle? (
>=dev-libs/nettle-2.4:0=
bittorrent? (
>=dev-libs/nettle-2.4:0=[gmp]
>=dev-libs/gmp-6:0=
)
)
!nettle? ( >=dev-libs/libgcrypt-1.2.2:0= )
)
!gnutls? (
dev-libs/openssl:0=
)
)
!ssl? (
nettle? (
>=dev-libs/nettle-2.4:0=
bittorrent? (
>=dev-libs/nettle-2.4:0=[gmp]
>=dev-libs/gmp-6:0=
)
)
!nettle? ( >=dev-libs/libgcrypt-1.2.2:0= )
)
tcmalloc? ( dev-util/google-perftools )
xmlrpc? (
libxml2? ( >=dev-libs/libxml2-2.6.26:2= )
!libxml2? ( dev-libs/expat:0= ) )"

DEPEND="${RDEPEND}
test? ( >=dev-util/cppunit-1.12.0:0 )"
RDEPEND+="
nls? ( virtual/libiconv virtual/libintl )
scripts? ( dev-lang/ruby )"
BDEPEND="app-arch/xz-utils
virtual/pkgconfig
nls? ( sys-devel/gettext )"

pkg_setup() {
if use scripts && ! use xmlrpc; then
ewarn "Please note that you may need to enable USE=xmlrpc to run the aria2rpc"
ewarn "and aria2mon scripts against the local aria2."
fi
}

src_prepare() {
default
sed -i -e "s|/tmp|${T}|" test/*.cc test/*.txt || die "sed failed"
# Fails with USE=bittorrent && FEATURES=network-sandbox
sed -i -E \
-e '/^@ENABLE_BITTORRENT_TRUE@ LpdMessageDispatcherTest/d' \
-e '/^@ENABLE_BITTORRENT_TRUE@ LpdMessageReceiverTest/d' \
test/Makefile.in || die
}

src_configure() {
local myconf=(
# threads, epoll: check for best portability

# do not try to compile and run a test LIBXML program
--disable-xmltest
# enable the shared library
--enable-libaria2
# zlib should always be available anyway
--with-libz
--with-ca-bundle="${EPREFIX}/etc/ssl/certs/ca-certificates.crt"

# optional features
$(use_enable bittorrent)
$(use_enable metalink)
$(use_enable nls)
$(use_with adns libcares)
$(use_with jemalloc)
$(use_with libuv)
$(use_with sqlite sqlite3)
$(use_with ssh libssh2)
$(use_with tcmalloc)
)

# See TLS/MD logic described above deps.
if use ssl && ! use gnutls; then
# 1. if ssl & !gnutls, use openssl and disable gnutls
myconf+=( --without-gnutls --with-openssl )
else
myconf+=(
# 2. otherwise, disable openssl
--without-openssl
# 3. if ssl & gnutls, use gnutls
$(use_with ssl gnutls)

# 4. switch between nettle & libgcrypt
$(use_with nettle libnettle)
$(use_with !nettle libgcrypt)
)

# 5. if bittorrent is used along with nettle, use libgmp
if use bittorrent && use nettle; then
myconf+=( --with-libgmp )
else
myconf+=( --without-libgmp )
fi
fi

# metalink+xmlrpc := libxml2 / expat
# USE=(metalink || xmlrpc)
# + USE=libxml2 -> libxml2
# + USE=-libxml2 -> expat

if use metalink || use xmlrpc; then
myconf+=( $(use_with !libxml2 libexpat) $(use_with libxml2) )
else
myconf+=( --without-libexpat --without-libxml2 )
fi

# Note:
# - always enable gzip/http compression since zlib should always be available anyway
# - always enable epoll since we can assume kernel 2.6.x
# - other options for threads: solaris, pth, win32
econf "${myconf[@]}"
}

src_install() {
default
rm -r "${ED}"/usr/share/doc/aria2 \
"${ED}"/usr/share/doc/${PF}/README{,.html} || die

dobashcomp doc/bash_completion/aria2c
use scripts && dobin doc/xmlrpc/aria2{mon,rpc}
}

pkg_postinst() {
if use xmlrpc; then
elog "If you would like to use the additional aria2mon and aria2rpc tools,"
elog "you need to have \033[1mdev-lang/ruby\033[0m installed."
fi
}

0 comments on commit b06d206

Please sign in to comment.