summaryrefslogtreecommitdiff
path: root/net-p2p/mldonkey/mldonkey-3.1.7-r3.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'net-p2p/mldonkey/mldonkey-3.1.7-r3.ebuild')
-rw-r--r--net-p2p/mldonkey/mldonkey-3.1.7-r3.ebuild191
1 files changed, 191 insertions, 0 deletions
diff --git a/net-p2p/mldonkey/mldonkey-3.1.7-r3.ebuild b/net-p2p/mldonkey/mldonkey-3.1.7-r3.ebuild
new file mode 100644
index 000000000000..4941249e3559
--- /dev/null
+++ b/net-p2p/mldonkey/mldonkey-3.1.7-r3.ebuild
@@ -0,0 +1,191 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+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"
+SRC_URI="https://github.com/ygrek/mldonkey/releases/download/release-${PV//./-}-2/${P}-2.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~x86"
+
+IUSE="bittorrent doc fasttrack gd gnutella gtk guionly magic +ocamlopt upnp"
+
+REQUIRED_USE="guionly? ( gtk )"
+
+RDEPEND="dev-lang/perl
+ dev-ml/camlp4:=
+ gd? ( media-libs/gd:2=[truetype] )
+ gtk? (
+ 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? (
+ 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? (
+ net-libs/libnatpmp
+ net-libs/miniupnpc:=
+ )
+ !guionly? ( acct-user/p2p )
+ app-arch/bzip2
+ sys-libs/zlib
+"
+# Can't yet use newer OCaml
+# -unsafe-string usage:
+# https://github.com/ygrek/mldonkey/issues/46
+DEPEND="${RDEPEND}
+ <dev-lang/ocaml-4.10:=[ocamlopt?]
+ bittorrent? (
+ || (
+ <dev-lang/ocaml-4.06[ocamlopt?]
+ dev-ml/num
+ )
+ )"
+
+RESTRICT="!ocamlopt? ( strip )"
+
+PATCHES=( "${FILESDIR}/cpp17-byte-namespace.patch" )
+
+S="${WORKDIR}/${P}-2"
+
+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 config || die
+ eautoconf
+ cd .. || die
+ if ! use ocamlopt; then
+ sed -i -e "s/ocamlopt/idontwantocamlopt/g" "${S}/config/configure" || die "failed to disable ocamlopt"
+ fi
+
+ default
+}
+
+src_configure() {
+ local myconf=()
+
+ if use gtk; then
+ myconf+=( --enable-gui=newgui2 )
+ else
+ myconf+=( --disable-gui )
+ fi
+
+ if use guionly; then
+ myconf+=( --disable-multinet --disable-donkey )
+ fi
+
+ local my_extra_libs
+ if use gd; then
+ my_extra_libs="-lpng"
+ fi
+
+ econf LIBS="${my_extra_libs}"\
+ --sysconfdir=/etc/mldonkey \
+ --sharedstatedir=/var/mldonkey \
+ --localstatedir=/var/mldonkey \
+ --enable-checks \
+ --disable-batch \
+ $(use_enable bittorrent) \
+ $(use_enable fasttrack) \
+ $(use_enable gnutella) \
+ $(use_enable gnutella gnutella2) \
+ $(use_enable gd) \
+ $(use_enable magic) \
+ $(use_enable upnp upnp-natpmp) \
+ --disable-force-upnp-natpmp \
+ ${myconf[@]}
+}
+
+src_compile() {
+ export OCAMLRUNPARAM="l=256M"
+ emake -j1 # Upstream bug #48
+
+ if ! use guionly; then
+ emake utils
+ fi
+}
+
+src_install() {
+ local myext i
+ use ocamlopt || myext=".byte"
+ if ! use guionly; then
+ for i in mlnet mld_hash get_range copysources subconv; do
+ newbin "${i}${myext}" "${i}"
+ done
+ use bittorrent && newbin "make_torrent${myext}" make_torrent
+
+ systemd_dounit "${FILESDIR}/${PN}.service"
+ newconfd "${FILESDIR}/mldonkey.confd" mldonkey
+ newinitd "${FILESDIR}/mldonkey.initd" mldonkey
+ fi
+
+ if use gtk; then
+ for i in mlgui mlguistarter; do
+ newbin "${i}${myext}" "${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
+ docompress -x "/usr/share/doc/${PF}/scripts" "/usr/share/doc/${PF}/html"
+
+ dodoc distrib/ChangeLog distrib/*.txt docs/*.txt docs/*.tex docs/*.pdf docs/developers/*.{txt,tex}
+
+ docinto scripts
+ dodoc distrib/{kill_mldonkey,mldonkey_command,mldonkey_previewer,make_buginfo}
+
+ docinto html
+ dodoc docs/*.html
+
+ docinto html/images
+ dodoc docs/images/*
+ fi
+}
+
+pkg_postinst() {
+ 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
+}