Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

net-misc/aria2: bump to 1.35.0 #18694

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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 \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sorry for missing this previously but I don't think you're actually using extended regexp syntax here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're correct. I was experimenting with a one-liner to start with, but felt better with a readable solution.

-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
}