diff options
author | Roy Marples <uberlord@gentoo.org> | 2007-08-07 13:39:50 +0000 |
---|---|---|
committer | Roy Marples <uberlord@gentoo.org> | 2007-08-07 13:39:50 +0000 |
commit | 98c85c8ef5cd4f739f1f4088c9ee9d7271991ea4 (patch) | |
tree | 4bbda000af8bac855b74cd3828e731167fd9f3b6 | |
parent | Stable on sparc wrt #185823 (diff) | |
download | gentoo-2-98c85c8ef5cd4f739f1f4088c9ee9d7271991ea4.tar.gz gentoo-2-98c85c8ef5cd4f739f1f4088c9ee9d7271991ea4.tar.bz2 gentoo-2-98c85c8ef5cd4f739f1f4088c9ee9d7271991ea4.zip |
New init script for baselayout-2, #183840. Keyworded ~x86-fbsd.
(Portage version: 2.1.3.3)
-rw-r--r-- | net-p2p/mldonkey/ChangeLog | 8 | ||||
-rw-r--r-- | net-p2p/mldonkey/files/digest-mldonkey-2.9.0-r1 | 3 | ||||
-rw-r--r-- | net-p2p/mldonkey/files/mldonkey.initd | 141 | ||||
-rw-r--r-- | net-p2p/mldonkey/mldonkey-2.9.0-r1.ebuild | 166 |
4 files changed, 317 insertions, 1 deletions
diff --git a/net-p2p/mldonkey/ChangeLog b/net-p2p/mldonkey/ChangeLog index 3b1e81236839..c6e51e714aba 100644 --- a/net-p2p/mldonkey/ChangeLog +++ b/net-p2p/mldonkey/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for net-p2p/mldonkey # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-p2p/mldonkey/ChangeLog,v 1.175 2007/08/07 09:16:36 armin76 Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-p2p/mldonkey/ChangeLog,v 1.176 2007/08/07 13:39:50 uberlord Exp $ + +*mldonkey-2.9.0-r1 (07 Aug 2007) + + 07 Aug 2007; Roy Marples <uberlord@gentoo.org> +files/mldonkey.initd, + +mldonkey-2.9.0-r1.ebuild: + New init script for baselayout-2, #183840. Keyworded ~x86-fbsd. 07 Aug 2007; Raúl Porcel <armin76@gentoo.org> -mldonkey-2.8.5.ebuild, -mldonkey-2.8.7.ebuild: diff --git a/net-p2p/mldonkey/files/digest-mldonkey-2.9.0-r1 b/net-p2p/mldonkey/files/digest-mldonkey-2.9.0-r1 new file mode 100644 index 000000000000..bc9d7ba3d4f0 --- /dev/null +++ b/net-p2p/mldonkey/files/digest-mldonkey-2.9.0-r1 @@ -0,0 +1,3 @@ +MD5 d8c32704e4e621239d0f4a5b92484402 mldonkey-2.9.0.tar.bz2 2713410 +RMD160 467ece38f57e27adab008d81e8f5c98774ca3f71 mldonkey-2.9.0.tar.bz2 2713410 +SHA256 1d3ac5114be7e592093dd6e2031b1fea642fa641263395e8b0f38c388c232a24 mldonkey-2.9.0.tar.bz2 2713410 diff --git a/net-p2p/mldonkey/files/mldonkey.initd b/net-p2p/mldonkey/files/mldonkey.initd new file mode 100644 index 000000000000..79ba3eeb499e --- /dev/null +++ b/net-p2p/mldonkey/files/mldonkey.initd @@ -0,0 +1,141 @@ +#!/sbin/runscript + +opts="reload slow fast info" + +MLDONKEY_BINARY=${MLDONKEY_BINARY:-/usr/bin/mlnet} +MLDONKEY_TIMEOUT=${TIMEOUT:-10} + +depend() { + need localmount net + ${USE_LOGGER} && use logger +} + +start() { + 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" + fi + + if [ ! -d "${MLDONKEY_DIR}" ]; then + ebegin "Directory ${MLDONKEY_DIR} not existing, trying to create..." + mkdir -p "${MLDONKEY_DIR}" && chown ${USER}:users "${MLDONKEY_DIR}" + eend $? || return 1 + 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 + eend $? +} + +setup_uri() { + BASE="http://" + if [ -n "${USERNAME}" -a -n "${PASSWORD}" ]; then + BASE="${BASE}${USERNAME}:${PASSWORD}@" + fi + BASE="${BASE}${SERVER}:${PORT}" +} + +stop() { + ebegin "Stopping ${SVCNAME} -- please wait" + + setup_uri + wget --spider --timeout="${MLDONKEY_TIMEOUT}" "${BASE}"/submit?q=close_fds -q + wget --spider --timeout="${MLDONKEY_TIMEOUT}" "${BASE}"/submit?q=save -q + wget --spider --timeout="${MLDONKEY_TIMEOUT}" "${BASE}"/submit?q=kill -q + + # give it a chance to die: + local timeout=${MLDONKEY_TIMEOUT} + while [ $timeout -gt 0 ]; do + if ! start-stop-daemon --test --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() { + if ! service_started "${SVCNAME}"; then + eerror "${SVCNAME} is not started" + return 1 + fi + + ebegin "Reloading ${SVCNAME}" + start-stop-daemon --stop --signal HUP --oknodo \ + --exec "${MLDONKEY_BINARY}" --pidfile /var/run/"${SVCNAME}".pid + eend $? +} + +slow() { + if ! service_started "${SVCNAME}"; then + eerror "${SVCNAME} is not started" + return 1 + fi + + ebegin "Reducing bandwidth to ${LOW_DOWN}k/${LOW_UP}k" + setup_uri + wget --spider --timeout="${MLDONKEY_TIMEOUT}" \ + "${BASE}/submit?q=set+max_hard_download_rate+${LOW_DOWN}" -q + wget --spider --timeout=${MLDONKEY_TIMEOUT} \ + "${BASE}/submit?q=set+max_hard_upload_rate+${LOW_UP}" -q + eend $? +} + +fast() { + if ! service_started "${SVCNAME}"; then + eerror "${SVCNAME} is not started" + return 1 + fi + + ebegin "Increasing bandwidth to ${HIGH_DOWN}k/${HIGH_UP}k" + + setup_uri + wget --spider --timeout="${MLDONKEY_TIMEOUT}" \ + "${BASE}/submit?q=set+max_hard_upload_rate+${HIGH_UP}" -q + wget --spider --timeout="${MLDONKEY_TIMEOUT}" \ + "${BASE}/submit?q=set+max_hard_download_rate+${HIGH_DOWN}" -q + eend $? +} + + +info() { + if ! service_started "${SVCNAME}"; then + eerror "${SVCNAME} is not started" + return 1 + fi + + setup_uri + local result=$(wget --timeout="${MLDONKEY_TIMEOUT}" \ + -O - "${BASE}"/submit?q=vo 2>/dev/null | \ + grep -C1 max_hard_upload | \ + grep value=\" | cut -d\" -f2) + if [ "${result}" = "${LOW_UP}" ]; then + einfo "${SVCNAME} runs slow" + else + einfo "${SVCNAME} runs fast" + fi +} diff --git a/net-p2p/mldonkey/mldonkey-2.9.0-r1.ebuild b/net-p2p/mldonkey/mldonkey-2.9.0-r1.ebuild new file mode 100644 index 000000000000..6679ff8c1834 --- /dev/null +++ b/net-p2p/mldonkey/mldonkey-2.9.0-r1.ebuild @@ -0,0 +1,166 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-p2p/mldonkey/mldonkey-2.9.0-r1.ebuild,v 1.1 2007/08/07 13:39:50 uberlord Exp $ + +inherit flag-o-matic + +IUSE="doc fasttrack gd gnutella gtk guionly magic" + +DESCRIPTION="MLDonkey is a multi-network P2P application written in Ocaml, coming with its own Gtk GUI, web and telnet interface." +HOMEPAGE="http://mldonkey.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~sparc ~x86 ~x86-fbsd" +RESTRICT="mirror" + +RDEPEND="dev-lang/perl + guionly? ( >=gnome-base/librsvg-2.4.0 + >=dev-ml/lablgtk-2.6 ) + gtk? ( >=gnome-base/librsvg-2.4.0 + >=dev-ml/lablgtk-2.6 ) + gd? ( >=media-libs/gd-2.0.28 ) + magic? ( sys-apps/file )" + +DEPEND="${RDEPEND} + >=sys-devel/autoconf-2.58 + >=dev-lang/ocaml-3.08.3" + +MLUSER="p2p" + +pkg_setup() { + if use gtk; then + echo "" + einfo "If the compile with gui fails, and you have updated Ocaml" + einfo "recently, you may have forgotten that you need to run" + einfo "/usr/portage/dev-lang/ocaml/files/ocaml-rebuild.sh" + einfo "to learn which ebuilds you need to recompile" + einfo "each time you update Ocaml to a different version" + einfo "see the Ocaml ebuild for details" + echo "" + fi + + if use gtk && !(built_with_use dev-ml/lablgtk svg); then + eerror "dev-ml/lablgtk must be built with the 'svg' USE flag to use the gtk gui" + die "Recompile dev-ml/lablgtk with enabled svg USE flag" + fi + + if use gd && !(built_with_use media-libs/gd truetype); then + eerror "media-libs/gd must be built with 'truetype' to compile" + eerror "MLDonkey with gd support" + die "Recompile media-libs/gd with enabled truetype USE flag" + fi +} + +src_unpack() { + unpack ${A} && cd "${S}" + + export WANT_AUTOCONF=2.5 + cd "${S}"/config + autoconf + cd "${S}" +} + +src_compile() { + append-ldflags -Wl,-z,noexecstack + + # the dirs are not (yet) used, but it doesn't hurt to specify them anyway + + # onlygui Disable all nets support, build only chosen GUI + + if use gtk || use guionly; then + myconf="--enable-gui=newgui2" + else + myconf="--disable-gui" + fi + + if use guionly; then + myconf="${myconf} --disable-multinet --disable-donkey" + fi + + cd ${S} + econf \ + --sysconfdir=/etc/mldonkey \ + --sharedstatedir=/var/mldonkey \ + --localstatedir=/var/mldonkey \ + --enable-checks \ + --disable-batch \ + $(use_enable fasttrack) \ + $(use_enable gnutella) \ + $(use_enable gnutella gnutella2) \ + $(use_enable gd) \ + $(use_enable magic) \ + ${myconf} || die "econf failed" + + export OCAMLRUNPARAM="l=256M" + emake || die "emake failed" + + if ! use guionly; then + emake utils || die "emake utils failed" + fi; +} + +src_install() { + if ! use guionly; then + dobin mlnet mld_hash get_range copysources make_torrent subconv \ + || die "dobin failed" + + newconfd "${FILESDIR}/mldonkey.confd-2.8" mldonkey + fperms 600 /etc/conf.d/mldonkey + newinitd "${FILESDIR}/mldonkey.initd" mldonkey + fi + + if use gtk; then + dobin mlgui mlguistarter || die "dobin failed" + domenu ${FILESDIR}/${PN}-gui.desktop + doicon ${FILESDIR}/${PN}.png + fi + + if use doc ; then + cd ${S}/distrib + dodoc ChangeLog *.txt + dohtml *.html + + insinto /usr/share/doc/${PF}/scripts + doins kill_mldonkey mldonkey_command mldonkey_previewer make_buginfo + + cd ${S}/docs + dodoc *.txt *.tex *.pdf + dohtml *.html + + cd ${S}/docs/developers + dodoc *.txt *.tex + + cd ${S}/docs/images + insinto /usr/share/doc/${PF}/html/images + doins * + fi +} + +pkg_preinst() { + if ! use guionly; then + enewuser ${MLUSER} -1 /bin/bash /home/p2p users + fi +} + +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 + einfo "Attention: 2.6 has changed the inifiles structure, so downgrading" + einfo "will be problematic." + einfo "User settings (admin) are transferred to users.ini from " + einfo "downloads.ini" + einfo "Old ini files are automatically converted to the new format" + echo + else + echo + einfo "Simply run mlgui to start the chosen MLDonkey gui." + einfo "It puts its config files into ~/.mldonkey" + fi +} |