blob: cb2eae216dbe62d3c915ff7af34c7b6fb9e070f7 (
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
129
130
131
132
133
134
135
136
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit autotools 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="~amd64 ~arm ~hppa ~ia64 ~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-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() {
# 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
}
|