diff options
author | V3n3RiX <venerix@koprulu.sector> | 2022-03-20 00:40:44 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2022-03-20 00:40:44 +0000 |
commit | 4cbcc855382a06088e2f016f62cafdbcb7e40665 (patch) | |
tree | 356496503d52354aa6d9f2d36126302fed5f3a73 /net-p2p/mldonkey/mldonkey-3.1.7-r3.ebuild | |
parent | fcc5224904648a8e6eb528d7603154160a20022f (diff) |
gentoo resync : 20.03.2022
Diffstat (limited to 'net-p2p/mldonkey/mldonkey-3.1.7-r3.ebuild')
-rw-r--r-- | net-p2p/mldonkey/mldonkey-3.1.7-r3.ebuild | 191 |
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 +} |