linamh/net-p2p/mldonkey/mldonkey-3.0.1.ebuild

172 lines
4.6 KiB
Bash

# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-p2p/mldonkey/mldonkey-3.0.1.ebuild,v 1.7 2010/01/13 15:02:32 ranger Exp $
EAPI="2"
WANT_AUTOCONF=2.5
inherit flag-o-matic eutils autotools toolchain-funcs
IUSE="doc fasttrack gd gnutella gtk guionly magic +ocamlopt"
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"
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[svg] )
gd? ( >=media-libs/gd-2.0.28[truetype] )
magic? ( sys-apps/file )"
DEPEND="${RDEPEND}
>=dev-lang/ocaml-3.10.2[ocamlopt?]
sys-apps/sed"
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
# dev-lang/ocaml creates its own objects but calls gcc for linking, which will
# results in relocations if gcc wants to create a PIE executable
if gcc-specs-pie ; then
append-ldflags -nopie
ewarn "Ocaml generates its own native asm, you're using a PIE compiler"
ewarn "We have appended -nopie to ocaml build options"
ewarn "because linking an executable with pie while the objects are not pic will not work"
fi
}
src_prepare() {
cd "${S}"/config
eautoconf
cd "${S}"
use ocamlopt || sed -i -e "s/ocamlopt/idontwantocamlopt/g" "${S}/config/configure" || die "failed to disable ocamlopt"
}
src_configure() {
# 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) \
--enable-ocamlver=3.10 \
${myconf} || die "econf failed"
}
src_compile() {
export OCAMLRUNPARAM="l=256M"
emake || die "emake failed"
if ! use guionly; then
emake utils || die "emake utils failed"
fi;
}
src_install() {
local myext=""
use ocamlopt || myext=".byte"
use ocamlopt || export STRIP_MASK="*/bin/*"
if ! use guionly; then
for i in mlnet mld_hash get_range copysources make_torrent subconv; do
newbin $i$myext $i || die "failed to install $i"
done
newconfd "${FILESDIR}/mldonkey.confd-2.8" mldonkey
fperms 600 /etc/conf.d/mldonkey
newinitd "${FILESDIR}/mldonkey.initd" mldonkey
fi
if use gtk; then
for i in mlgui mlguistarter; do
newbin $i$myext $i || die "failed to install $i"
done
make_desktop_entry mlgui "MLDonkey GUI" mldonkey "Network;P2P"
newicon "${S}"/packages/rpm/mldonkey-icon-48.png ${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 -1 /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
}