-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
1 parent
eea138f
commit b06d206
Showing
2 changed files
with
185 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
} |