From 179325d5d671a061959f905fc47a5c9a26b32ca9 Mon Sep 17 00:00:00 2001 From: Jakub Jirutka Date: Sat, 1 Dec 2018 16:08:29 +0000 Subject: main/aria2: add subpackage -daemon for running aria2 as a daemon --- main/aria2/APKBUILD | 37 +++++++++++++++++++--- main/aria2/aria2-daemon.pre-install | 7 +++++ main/aria2/aria2.conf | 61 +++++++++++++++++++++++++++++++++++++ main/aria2/aria2.confd | 10 ++++++ main/aria2/aria2.initd | 32 +++++++++++++++++++ main/aria2/aria2.logrotate | 6 ++++ 6 files changed, 149 insertions(+), 4 deletions(-) create mode 100644 main/aria2/aria2-daemon.pre-install create mode 100644 main/aria2/aria2.conf create mode 100644 main/aria2/aria2.confd create mode 100644 main/aria2/aria2.initd create mode 100644 main/aria2/aria2.logrotate (limited to 'main') diff --git a/main/aria2/APKBUILD b/main/aria2/APKBUILD index e8d4eb01ab7..378124fb515 100644 --- a/main/aria2/APKBUILD +++ b/main/aria2/APKBUILD @@ -1,9 +1,10 @@ # Contributor: Sören Tempel # Contributor: Jeff Bilyk +# Contributor: Jakub Jirutka # Maintainer: Natanael Copa pkgname=aria2 pkgver=1.34.0 -pkgrel=0 +pkgrel=1 pkgdesc="Download utility for HTTP(S), (S)FTP, Bittorrent, and Metalink" url="https://aria2.github.io/" arch="all" @@ -11,8 +12,16 @@ license="GPL-2.0-or-later" depends="ca-certificates" makedepends="gnutls-dev expat-dev sqlite-dev c-ares-dev" checkdepends="cppunit-dev" -subpackages="$pkgname-doc $pkgname-bash-completion:bashcomp:noarch" -source="https://github.com/aria2/$pkgname/releases/download/release-$pkgver/$pkgname-$pkgver.tar.xz" +pkgusers="aria2" +pkggroups="aria2" +install="$pkgname-daemon.pre-install" +subpackages="$pkgname-doc $pkgname-daemon::noarch $pkgname-bash-completion:bashcomp:noarch" +source="https://github.com/aria2/$pkgname/releases/download/release-$pkgver/$pkgname-$pkgver.tar.xz + $pkgname.conf + $pkgname.initd + $pkgname.confd + $pkgname.logrotate + " builddir="$srcdir/$pkgname-$pkgver" build() { @@ -48,4 +57,24 @@ bashcomp() { "$subpkgdir"/usr/share/bash-completion/completions/_aria2c } -sha512sums="80bc43e242c06acc95030021cb347b4ec230729f3d7e512ca1932941b34ef95c312a34007a226869e5d720839a400e66cdb072ccab5d42228d8cf3d828723dcc aria2-1.34.0.tar.xz" +daemon() { + pkgdesc="Support for running Aria2 as a daemon using OpenRC" + depends="$pkgname=$pkgver-r$pkgrel openrc" + + mkdir -p "$subpkgdir" + cd "$subpkgdir" + + install -m 755 -D "$srcdir"/$pkgname.initd etc/init.d/$pkgname + install -m 644 -D "$srcdir"/$pkgname.confd etc/conf.d/$pkgname + install -m 644 -D "$srcdir"/$pkgname.logrotate etc/logrotate.d/$pkgname + install -m 644 -D "$srcdir"/$pkgname.conf etc/$pkgname.conf + + install -m 750 -o aria2 -g aria2 -d var/lib/$pkgname + install -m 700 -o aria2 -g aria2 -d var/cache/$pkgname +} + +sha512sums="80bc43e242c06acc95030021cb347b4ec230729f3d7e512ca1932941b34ef95c312a34007a226869e5d720839a400e66cdb072ccab5d42228d8cf3d828723dcc aria2-1.34.0.tar.xz +dd716f27eae2628bd528fd2842de7881e8f8f00d587b179e832f1639241db5bd8f4e74a5b791ca4de984923654b38a28813a89ad49a864f64534903a46878a60 aria2.conf +a191655122d8d4379dd7aef773c6273387d8417b88f4f8f96d4a2121e71d9d005c84f15382b46b90501ecb3675f2505b22fb9494a0e5c4d96792bf8b29c2c01a aria2.initd +ee49208c36be85fdf820eda0b47549732f720624a6f94702c16e1711823d74a23728944f60c85c11d09db6dbde3515adb32bb5ddf44786645b9a36883a5b6404 aria2.confd +2ed9ff7a5fd1801643e4fb3cdd8cb21f0ead60420c87636bb581fe00828a98a5290a0888e49f6a6becb9f39c3c145b1399aa3a9ae452eb10ac2064c0e7bca1f8 aria2.logrotate" diff --git a/main/aria2/aria2-daemon.pre-install b/main/aria2/aria2-daemon.pre-install new file mode 100644 index 00000000000..c2cb5d26648 --- /dev/null +++ b/main/aria2/aria2-daemon.pre-install @@ -0,0 +1,7 @@ +#!/bin/sh + +addgroup -S aria2 2>/dev/null +adduser -S -D -H -h /var/lib/aria2 -s /sbin/nologin -G aria2 \ + -g 'added by apk for aria2-daemon' aria2 2>/dev/null + +exit 0 diff --git a/main/aria2/aria2.conf b/main/aria2/aria2.conf new file mode 100644 index 00000000000..abca1ea7398 --- /dev/null +++ b/main/aria2/aria2.conf @@ -0,0 +1,61 @@ +# Run aria2c --help=#all to see all the available options. + +# The directory to store the downloaded file. +dir=/var/lib/aria2 + +# Save error/unfinished downloads to this file on exit. +save-session=/var/lib/aria2/aria2.session +input-file=/var/lib/aria2/aria2.session + +# Save error/unfinished downloads to a file specified by save-session option +# every SEC seconds. If 0 is given, file will be saved only when aria2 exits. +save-session-interval=60 + +# Save download even if the download is completed or removed. +force-save=true + +# Continue downloading a partially downloaded files. Only for HTTP/FTP. +continue=true + +# Always resume download. +always-resume=true + +# Set log level to output to file. +# Possible Values: debug, info, notice, warn, error. +log-level=notice + +# Set interval to output download progress summary. +# Setting 0 suppresses the output. +summary-interval=0 + +# File allocation method. "falloc" is the best choice for newer file systems +# such as ext4, Btrfs or XFS. +file-allocation=falloc + + +## RPC + +# Specify a port number for JSON-RPC/XML-RPC server to listen to. +#rpc-listen-port=6800 + +# Listen incoming JSON-RPC/XML-RPC requests on all network interfaces. +#rpc-listen-all=false + +# RPC secret authorization token. Change to some random string! +rpc-secret=top-secret + + +## BitTorrent + +# Specify the external IP address to use in BitTorrent download and DHT. +#bt-external-ip= + +# TCP port number(s) for BitTorrent downloads. +#listen-port=6881-6999 + +# Requires BitTorrent message payload encryption with arc4. +#bt-force-encryption=false + +# Maximum number of files to open in multi-file BitTorrent/Metalink +# downloads globally. +#bt-max-open-files=100 diff --git a/main/aria2/aria2.confd b/main/aria2/aria2.confd new file mode 100644 index 00000000000..d0381c75e7c --- /dev/null +++ b/main/aria2/aria2.confd @@ -0,0 +1,10 @@ +# Configuration for /etc/init.d/aria2 + +# The user (and group) to run Aria2 daemon. +#command_user="aria2" + +# Path of the configuration file. +#cfgfile="/etc/aria2.conf" + +# Path of the log file. +#logfile="/var/log/aria2.log" diff --git a/main/aria2/aria2.initd b/main/aria2/aria2.initd new file mode 100644 index 00000000000..c8e2edcc2f9 --- /dev/null +++ b/main/aria2/aria2.initd @@ -0,0 +1,32 @@ +#!/sbin/openrc-run + +: ${cfgfile:="/etc/aria2.conf"} +: ${logfile:="/var/log/aria2.log"} +: ${command_user:="aria2"} + +command="/usr/bin/aria2c" +command_args=" + --enable-rpc=true + --quiet=true + --log=$logfile + --conf-path=$cfgfile + ${command_args:-}" +command_background="yes" + +pidfile="/run/$RC_SVCNAME.pid" +output_log="/dev/null" +error_log="/dev/null" +start_stop_daemon_args="--env XDG_CACHE_HOME=/var/cache" + +required_files="$cfgfile" + +depend() { + need net + use dns netmount +} + +start_pre() { + local _logfile=$(sed -En 's|^log=([^#]+)|\1|p' "$cfgfile") + + checkpath -f -m 640 -o "$command_user" "${_logfile:-$logfile}" +} diff --git a/main/aria2/aria2.logrotate b/main/aria2/aria2.logrotate new file mode 100644 index 00000000000..e73ffc0444a --- /dev/null +++ b/main/aria2/aria2.logrotate @@ -0,0 +1,6 @@ +/var/log/aria2.log { + compress + copytruncate + missingok + notifempty +} -- cgit v1.2.3