summaryrefslogtreecommitdiff
path: root/net-p2p/mldonkey
diff options
context:
space:
mode:
Diffstat (limited to 'net-p2p/mldonkey')
-rw-r--r--net-p2p/mldonkey/Manifest7
-rw-r--r--net-p2p/mldonkey/files/mldonkey.confd22
-rw-r--r--net-p2p/mldonkey/files/mldonkey.initd112
-rw-r--r--net-p2p/mldonkey/files/mldonkey.service14
-rw-r--r--net-p2p/mldonkey/mldonkey-3.1.7-r3.ebuild (renamed from net-p2p/mldonkey/mldonkey-3.1.7-r2.ebuild)47
5 files changed, 55 insertions, 147 deletions
diff --git a/net-p2p/mldonkey/Manifest b/net-p2p/mldonkey/Manifest
index f67951d390d6..50f8b5119c3b 100644
--- a/net-p2p/mldonkey/Manifest
+++ b/net-p2p/mldonkey/Manifest
@@ -1,6 +1,7 @@
AUX cpp17-byte-namespace.patch 2224 BLAKE2B 8d69353ae9a5d3297f304d2b130ed06f5f2f8aef5ae1116a69e36019c70e3c991354b0d8ad27951910b67b8a87641b563c7065c4e50f11452c0f9be79971cbae SHA512 8f7e1893846568e41e651f63ed9a003090adbe3ec7a6ccb18a1e2638ccbc9b249e99b27babfca030129d8b4c1f72b752a5c6eb18cc21a066cd08ff414c92a8d8
-AUX mldonkey.confd 949 BLAKE2B 05e1ceaa111249a979931c14eb599201e525f50af2370318c4bd0b6025694b55167e400c784774719dc084e326de378365e6a53badaf48cc1681003ef5b55ceb SHA512 d45f8ca35aacbd4f05a936c591866b7cb4b19e6c69139f728160c8dc09b3d4c1f689d28fa7287692f8382c291b50ff91b3ea594fe781f861efa991f2927e882c
-AUX mldonkey.initd 3509 BLAKE2B d3098a027f044f3bfc7559fa1869f7080844de1cec93fe26424322aafd482c7f010fef96854115e42e4b2a37f31b1d0f6caf94abf0c97c52d794db4767f5c0c1 SHA512 0c423feb9abbe7b08d77a3221a3638a0a93526bbf68c5e60e944413f4fd13ac44813609179b981c31d19e1e8fe11333f16dc8388a144208694cb84c008dbbed3
+AUX mldonkey.confd 573 BLAKE2B 35ed4b2648f550ffaf0108485a89b8b2f49d7241b581cbe69ad7b445ced5189e3d1f7307782e281f6cb6353ae8ada504cdabe165667080041189c9906adc6b66 SHA512 abc172eb78edf6f5b2e993a94400654161a78a23acbe717e9cca80d4207dfd8e79dd3dee095355daffa13a1c26db4d995292c61e9f0683cf36ef33e862ffb3f7
+AUX mldonkey.initd 1488 BLAKE2B 062bc7f00dc798bab4da0a0bdef87c5d2a3388a67ceddbbbb73b2fd702225198fe575972785689201073bf2e6ff678e2ba8bc7567e54c65230c16285f94cd7e3 SHA512 2e7f9a42c3dd6f50c62ea5c031c89d0b13000d6be768d374d1ffe063f1d5d598c15862c683c989c7539f77da083ba2a86eee0154aae06b89be74d60e5e136909
+AUX mldonkey.service 274 BLAKE2B 2ff70c85d4f8f07435ce973d4b8bd3f90999b433187060ebb1500f9964a5df7b3aa05cd0391efa748201b5d3ce496f985b971200bdf19e36a9edc6cf66f24fa2 SHA512 62fab67f8ca13e539b3ecfefe8d16a8cfbaad296f1a9d3f16dea8dcaa189946f2631545c940bb88e29ae119ad7285fbd7cd1cd047fe7a85b746d1ee36e13d8ce
DIST mldonkey-3.1.7-2.tar.bz2 2801815 BLAKE2B f914648b4e2a358e51518f3b58dc0df803cdb28d7706783504644266690514c17c2cae0688011073391db221eb8f38c7cbaf1e913220d824e41ca2e23d4c8587 SHA512 11cb0fa0db95e918c291009f4121a1b34cf485e5ac6826a72a4dc520dd78d21ced40d205fa26eb451c7d3eb31f2193cbb64e46c99c85dc932762c1bcc4da4934
-EBUILD mldonkey-3.1.7-r2.ebuild 4659 BLAKE2B 60a14309d772b80cd916b1b187795e69592c7604eae0034b7bb64040d5848d2f17945ef0606000f208e79ffe737dfacf796187899c1c16ab1402a66796d05e34 SHA512 5346ed2cf24081cafbd05ac373a02ae9f8f9e21b720992d0d476d3cb366fbf488a4acba0c7e112dd2a15e6b61f2ae53058352432b43803ec366abccf21840e59
+EBUILD mldonkey-3.1.7-r3.ebuild 4864 BLAKE2B 443b78097a39a219e7b1f46922647fc3f2c3d1d787a78f37f1698cbfcf548b86c3b6afb429b3dff6fac628ec3c1db3085b3840ff3f99d56fef0e5d355984cc99 SHA512 b81d37756cc31e21ab5cd7116ef2fec74d437f95389fde72be28792115107b40fe681344324454fba3d44739798b6698e9ae08c9ed948b9af4e725aec02e5eba
MISC metadata.xml 810 BLAKE2B 111ab6f9b165a59465beb7ac8c7cdf6651c72484dc2a5f77f0b6cbad44d6a71d44ca27aeb3785af9b2cbb0a5ae624b784db88b7790abdae98b36bf393a1cca08 SHA512 e59c710af7fab80b1da8ec97acd5d43cf8e725bc97c6b1d6257134e689ef6abdf9a8b5716131e512ee1ae4abc1fdb2f15a36dc09f40ef7aa726d414e2e0614a6
diff --git a/net-p2p/mldonkey/files/mldonkey.confd b/net-p2p/mldonkey/files/mldonkey.confd
index 7cdb2b7134ed..509409b02232 100644
--- a/net-p2p/mldonkey/files/mldonkey.confd
+++ b/net-p2p/mldonkey/files/mldonkey.confd
@@ -9,7 +9,7 @@
USER="p2p"
# mldonkey's working dir (must be existing)
-MLDONKEY_DIR="/home/p2p/mldonkey"
+MLDONKEY_DIR="/var/lib/mldonkey"
# logfile (/dev/null for nowhere)
LOG="/var/log/mldonkey.log"
@@ -18,25 +18,5 @@ LOG="/var/log/mldonkey.log"
# set log_to_syslog true
USE_LOGGER=false
-# bandwidth control, values in kb/s
-LOW_DOWN="6"
-LOW_UP="2"
-HIGH_DOWN="30"
-HIGH_UP="10"
-
# nice level, 0<x<19, more nice -> less cpuspeed consumed
NICE="19"
-
-# mldonkey server ip, usually localhost
-SERVER="localhost"
-
-# port for webinterface, usually 4080
-PORT="4080"
-
-# port for telnet interface, usually 4000
-TELNET_PORT="4000"
-
-# to enable password restricted access,
-# uncomment and set BOTH following vars:
-#USERNAME="admin"
-#PASSWORD=""
diff --git a/net-p2p/mldonkey/files/mldonkey.initd b/net-p2p/mldonkey/files/mldonkey.initd
index b7e561372392..c7fa3d5051c5 100644
--- a/net-p2p/mldonkey/files/mldonkey.initd
+++ b/net-p2p/mldonkey/files/mldonkey.initd
@@ -3,7 +3,6 @@
extra_started_commands="reload slow fast info"
MLDONKEY_BINARY=${MLDONKEY_BINARY:-/usr/bin/mlnet}
-MLDONKEY_TIMEOUT=${TIMEOUT:-10}
depend() {
need localmount net
@@ -11,13 +10,16 @@ depend() {
}
start() {
+ if [ -n "${BASEDIR}${SUBDIR}${LOW_DOWN}${LOW_UP}${HIGH_DOWN}${HIGH_UP}${SERVER}${PORT}${TELNET_PORT}${USERNAME}${PASSWORD}${MLDONKEY_TIMEOUT}" ]; then
+ ewarn "The following settings are deprecated and will be ignored,"
+ ewarn "please remove them from /etc/conf.d/mldonkey:"
+ ewarn "LOW_DOWN LOW_UP HIGH_DOWN HIGH_UP SERVER PORT TELNET_PORT USERNAME PASSWORD MLDONKEY_TIMEOUT"
+ fi
+
if [ -z "${MLDONKEY_DIR}" ]; then
- ewarn "mldonkey's start script has been changed. You should remove"
- ewarn "BASEDIR and SUBDIR from /etc/conf.d/mldonkey and set MLDONKEY_DIR"
- ewarn "to the correct value (you probably want"
- ewarn "MLDONKEY_DIR=${BASEDIR}/${SUBDIR})"
- MLDONKEY_DIR="${BASEDIR}/${SUBDIR}"
- einfo "Using ${MLDONKEY_DIR} as working directory"
+ eerror "Please set MLDONKEY_DIR in /etc/conf.d/mldonkey to the directory"
+ eerror "where you want MLDonkey to save its files"
+ return 1
fi
if [ ! -d "${MLDONKEY_DIR}" ]; then
@@ -27,115 +29,21 @@ start() {
fi
ebegin "Starting ${SVCNAME}"
- cd "${MLDONKEY_DIR}"
- export MLDONKEY_DIR
start-stop-daemon --start --user "${USER}" --nice "${NICE}" \
--exec "${MLDONKEY_BINARY}" --pidfile /var/run/"${SVCNAME}".pid \
- --background --make-pidfile
+ --env "MLDONKEY_DIR=${MLDONKEY_DIR}" --background --make-pidfile
eend $?
}
-send_telnet_commands() {
- if [ -z "${TELNET_PORT+x}" ]; then
- return 1
- fi
- local cmds=
- if [ -n "${USERNAME}" -a -n "${PASSWORD}" ]; then
- cmds="auth ${USERNAME} ${PASSWORD}\n"
- fi
- cmds="$cmds\nansi false\n"
- while [ $# -gt 0 ]; do
- cmds="$cmds$1\n"
- shift
- done
- printf "$cmds\nexit\n" | nc -w "${MLDONKEY_TIMEOUT}" localhost "${TELNET_PORT}" 2> /dev/null
- return $?
-}
-
-send_http_commands() {
- if [ -z "${PORT+x}" ]; then
- return 1
- fi
- local base="http://"
- if [ -n "${USERNAME}" -a -n "${PASSWORD}" ]; then
- base="${base}${USERNAME}:${PASSWORD}@"
- fi
- base="${base}${SERVER}:${PORT}"
- local retval=0
- while [ $retval -eq 0 -a $# -gt 0 ]; do
- wget -q -O /dev/stdout --timeout="${MLDONKEY_TIMEOUT}" "${base}/submit?q=${1// /+}" 2> /dev/null
- retval=$?
- shift
- done
- return $retval
-}
-
-send_commands() {
- send_telnet_commands "$@" &> /dev/null || send_http_commands "$@" &> /dev/null
- return $?
-}
-
stop() {
- ebegin "Stopping ${SVCNAME} -- please wait"
-
- send_commands close_fds save kill
-
- # give it a chance to die:
- local timeout=${MLDONKEY_TIMEOUT}
- while [ $timeout -gt 0 ]; do
- if ! start-stop-daemon --test --quiet --quiet --stop \
- --exec "${MLDONKEY_BINARY}" \
- --pidfile /var/run/"${SVCNAME}".pid ; then
- eend 0
- return 0
- fi
- sleep 1
- timeout=$((${timeout} - 1))
- done
-
- eend 1 "Failed to cleanly stop ${SVCNAME}"
- ebegin "Forcing ${SVCNAME} to stop"
start-stop-daemon --stop --exec "${MLDONKEY_BINARY}" \
--pidfile /var/run/"${SVCNAME}".pid
eend $?
}
-# This doesn't work for baselayout-2
-restart() {
- svc_stop
- sleep 5
- svc_start
-}
-
reload() {
ebegin "Reloading ${SVCNAME}"
start-stop-daemon --stop --signal HUP --oknodo \
--exec "${MLDONKEY_BINARY}" --pidfile /var/run/"${SVCNAME}".pid
eend $?
}
-
-slow() {
- ebegin "Reducing bandwidth to ${LOW_DOWN}k/${LOW_UP}k"
- send_commands "set max_hard_download_rate ${LOW_DOWN}" "set max_hard_upload_rate ${LOW_UP}"
- eend $?
-}
-
-fast() {
- ebegin "Increasing bandwidth to ${HIGH_DOWN}k/${HIGH_UP}k"
- send_commands "set max_hard_upload_rate ${HIGH_UP}" "set max_hard_download_rate ${HIGH_DOWN}"
- eend $?
-}
-
-
-info() {
- set -o pipefail
- local result=$(
- send_telnet_commands "voo max_hard_upload_rate" | grep -a 'max_hard_upload_rate.* =' | cut -d \ -f 3 ||
- send_http_commands "voo max_hard_upload_rate" | fgrep name=value | sed -e 's/.*value="//' -e 's/".*//'
- )
- if [ "${result}" = "${LOW_UP}" ]; then
- einfo "${SVCNAME} runs slow"
- else
- einfo "${SVCNAME} runs fast"
- fi
-}
diff --git a/net-p2p/mldonkey/files/mldonkey.service b/net-p2p/mldonkey/files/mldonkey.service
new file mode 100644
index 000000000000..4cc0b7fc945b
--- /dev/null
+++ b/net-p2p/mldonkey/files/mldonkey.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=MLDonkey multi-network P2P client service
+After=network.target
+
+[Service]
+User=p2p
+LimitNICE=+19
+Environment=MLDONKEY_DIR=/var/lib/mldonkey
+ExecStart=/usr/bin/mlnet
+ExecReload=/bin/kill -HUP $MAINPID
+KillMode=process
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-p2p/mldonkey/mldonkey-3.1.7-r2.ebuild b/net-p2p/mldonkey/mldonkey-3.1.7-r3.ebuild
index c1bb19df5b69..4941249e3559 100644
--- a/net-p2p/mldonkey/mldonkey-3.1.7-r2.ebuild
+++ b/net-p2p/mldonkey/mldonkey-3.1.7-r3.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
-inherit autotools desktop flag-o-matic toolchain-funcs
+inherit autotools desktop flag-o-matic systemd toolchain-funcs
DESCRIPTION="Multi-network P2P application written in Ocaml, with Gtk, web & telnet interface"
HOMEPAGE="http://mldonkey.sourceforge.net/ https://github.com/ygrek/mldonkey"
@@ -17,16 +17,28 @@ IUSE="bittorrent doc fasttrack gd gnutella gtk guionly magic +ocamlopt upnp"
REQUIRED_USE="guionly? ( gtk )"
-COMMON_DEPEND="dev-lang/perl
+RDEPEND="dev-lang/perl
dev-ml/camlp4:=
- gd? ( media-libs/gd[truetype] )
+ gd? ( media-libs/gd:2=[truetype] )
gtk? (
- gnome-base/librsvg
+ dev-libs/glib:2
dev-ml/lablgtk:2=[svg]
+ gnome-base/librsvg:2
+ media-libs/libpng:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:2
+ x11-libs/libX11
+ x11-libs/pango
)
guionly? (
- gnome-base/librsvg
+ dev-libs/glib:2
dev-ml/lablgtk:2=[svg]
+ gnome-base/librsvg:2
+ media-libs/libpng:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:2
+ x11-libs/libX11
+ x11-libs/pango
)
magic? ( sys-apps/file )
upnp? (
@@ -34,13 +46,13 @@ COMMON_DEPEND="dev-lang/perl
net-libs/miniupnpc:=
)
!guionly? ( acct-user/p2p )
+ app-arch/bzip2
+ sys-libs/zlib
"
-RDEPEND="${COMMON_DEPEND}
- || ( net-analyzer/netcat net-analyzer/openbsd-netcat )"
# Can't yet use newer OCaml
# -unsafe-string usage:
# https://github.com/ygrek/mldonkey/issues/46
-DEPEND="${COMMON_DEPEND}
+DEPEND="${RDEPEND}
<dev-lang/ocaml-4.10:=[ocamlopt?]
bittorrent? (
|| (
@@ -141,8 +153,8 @@ src_install() {
done
use bittorrent && newbin "make_torrent${myext}" make_torrent
+ systemd_dounit "${FILESDIR}/${PN}.service"
newconfd "${FILESDIR}/mldonkey.confd" mldonkey
- fperms 600 /etc/conf.d/mldonkey
newinitd "${FILESDIR}/mldonkey.initd" mldonkey
fi
@@ -171,16 +183,9 @@ src_install() {
}
pkg_postinst() {
- if ! use guionly; then
- echo
- einfo "If you want to start MLDonkey as a system service, use"
- einfo "the /etc/init.d/mldonkey script. To control bandwidth, use"
- einfo "the 'slow' and 'fast' arguments. Be sure to have a look at"
- einfo "/etc/conf.d/mldonkey also."
- echo
- else
- echo
- einfo "Simply run mlgui to start the chosen MLDonkey gui."
- einfo "It puts its config files into ~/.mldonkey"
+ if [ -f /etc/conf.d/mldonkey ] && grep -qE "^(BASEDIR|SUBDIR|LOW_DOWN|LOW_UP|HIGH_DOWN|HIGH_UP|SERVER|PORT|TELNET_PORT|USERNAME|PASSWORD|MLDONKEY_TIMEOUT)=" /etc/conf.d/mldonkey; then
+ ewarn "The following settings are deprecated and will be ignored,"
+ ewarn "please remove them from /etc/conf.d/mldonkey:"
+ ewarn "LOW_DOWN LOW_UP HIGH_DOWN HIGH_UP SERVER PORT TELNET_PORT USERNAME PASSWORD MLDONKEY_TIMEOUT"
fi
}