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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-p2p/mldonkey/mldonkey-2.7.7.ebuild,v 1.8 2007/01/13 11:59:30 armin76 Exp $
inherit flag-o-matic
IUSE="gtk guionly batch gd doc"
DESCRIPTION="mldonkey is a new client to access the eDonkey network. It is written in Objective-Caml, and comes with its own GTK GUI, an HTTP interface and a 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"
RESTRICT="nomirror"
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 )
gd? ( >=media-libs/gd-2.0.28 )"
DEPEND="${RDEPEND}
>=sys-devel/autoconf-2.58
!batch? ( >=dev-lang/ocaml-3.08.3 )
batch? ( net-misc/wget )"
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
if use gtk && !(built_with_use dev-ml/lablgtk svg); then
eerror "dev-ml/lablgtk must be built with the 'svg' USE flag to use the gtk gui"
die "Recompile dev-ml/lablgtk with enabled svg USE flag"
fi
if use gd && !(built_with_use media-libs/gd truetype); then
eerror "media-libs/gd must be built with 'truetype' to compile"
eerror "mldonkey with gd support"
die "Recompile media-libs/gd with enabled truetype USE flag"
fi
}
src_unpack() {
unpack ${A}
cd ${S}
export WANT_AUTOCONF=2.5
cd ${S}/config
autoconf
cd ${S}
}
src_compile() {
append-ldflags -Wl,-z,noexecstack
# the dirs are not (yet) used, but it doesn't hurt to specify them anyway
# batch Automatically download and build OCAML-3.08.3 for compiling itself
# 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 \
`use_enable batch` \
`use_enable gd` \
${myconf} || die "Configure Failed!"
export OCAMLRUNPARAM="l=256M"
emake || die "Make Failed"
if ! use guionly; then
emake utils || die "make utils failed"
fi;
}
src_install() {
if ! use guionly; then
dobin mlnet mld_hash get_range copysources make_torrent subconv
dobin ${FILESDIR}/mldonkey
insinto /etc/conf.d; newins ${FILESDIR}/mldonkey.confd mldonkey
exeinto /etc/init.d; newexe ${FILESDIR}/mldonkey.initd mldonkey
fi
if use gtk; then
dobin mlgui mlguistarter mlchat mlim
domenu ${FILESDIR}/${PN}-gui.desktop
doicon ${FILESDIR}/${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 /bin/bash /home/p2p users
fi
}
pkg_postinst() {
if ! use guionly; then
echo
einfo "Running \`mldonkey' will start the server inside ~/.mldonkey/"
einfo "If you want to start mldonkey in a particular working directory,"
einfo "use the \`mlnet' command."
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 modonkey gui."
einfo "It puts its config files into ~/.mldonkey"
fi
}
|