blob: c918a08fe99ccfd5278dc8e3529186123f298e8e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
inherit autotools flag-o-matic systemd toolchain-funcs
DESCRIPTION="Multi-network P2P application written in Ocaml, with Gtk, web & telnet interface"
HOMEPAGE="https://github.com/ygrek/mldonkey"
SRC_URI="https://github.com/ygrek/mldonkey/releases/download/release-${PV//./-}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
IUSE="bittorrent doc fasttrack gd gnutella magic +ocamlopt upnp"
RDEPEND="dev-lang/perl
dev-ml/camlp4:=
gd? ( media-libs/gd:2=[truetype] )
magic? ( sys-apps/file )
upnp? (
net-libs/libnatpmp
net-libs/miniupnpc:=
)
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-5:=[ocamlopt?]
bittorrent? ( dev-ml/num )
"
RESTRICT="!ocamlopt? ( strip )"
pkg_setup() {
# 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=()
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 \
--disable-gui
${myconf[@]}
}
src_compile() {
export OCAMLRUNPARAM="l=256M"
emake -j1 # Upstream bug #48
emake utils
}
src_install() {
local myext i
use ocamlopt || myext=".byte"
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
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
}
|