summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-p2p')
-rw-r--r--net-p2p/amule/amule-2.3.1-r1.ebuild112
-rw-r--r--net-p2p/amule/files/amule-2.3.1-build.patch10
-rw-r--r--net-p2p/amule/files/amule-2.3.1-wx3.0.patch45
3 files changed, 167 insertions, 0 deletions
diff --git a/net-p2p/amule/amule-2.3.1-r1.ebuild b/net-p2p/amule/amule-2.3.1-r1.ebuild
new file mode 100644
index 000000000000..8335b249e604
--- /dev/null
+++ b/net-p2p/amule/amule-2.3.1-r1.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+WX_GTK_VER="3.0"
+
+inherit eutils flag-o-matic wxwidgets user
+
+MY_P=${PN/m/M}-${PV}
+S="${WORKDIR}"/${MY_P}
+
+DESCRIPTION="aMule, the all-platform eMule p2p client"
+HOMEPAGE="http://www.amule.org/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="daemon debug geoip nls remote stats unicode upnp +X"
+
+RDEPEND="
+ >=dev-libs/crypto++-5
+ >=sys-libs/zlib-1.2.1
+ stats? ( >=media-libs/gd-2.0.26[jpeg] )
+ geoip? ( dev-libs/geoip )
+ upnp? ( >=net-libs/libupnp-1.6.6 )
+ remote? ( >=media-libs/libpng-1.2.0
+ unicode? ( >=media-libs/gd-2.0.26 ) )
+ X? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )
+ !X? ( x11-libs/wxGTK:${WX_GTK_VER} )
+ !net-p2p/imule
+"
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ if use stats && ! use X; then
+ einfo "Note: You would need both the X and stats USE flags"
+ einfo "to compile aMule Statistics GUI."
+ einfo "I will now compile console versions only."
+ fi
+}
+
+pkg_preinst() {
+ if use daemon || use remote; then
+ enewgroup p2p
+ enewuser p2p -1 -1 /home/p2p p2p
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.2.6-fallocate.diff
+ # Bug 412371
+ epatch "${FILESDIR}"/${PN}-2.3.1-gcc47.patch
+
+ # https://bugs.gentoo.org/show_bug.cgi?id=465084
+ epatch "${FILESDIR}"/${PN}-2.3.1-wx3.0.patch
+ epatch "${FILESDIR}"/${PN}-2.3.1-build.patch
+}
+
+src_configure() {
+ local myconf
+
+ if use X; then
+ einfo "wxGTK with X support will be used"
+ need-wxwidgets unicode
+ else
+ einfo "wxGTK without X support will be used"
+ need-wxwidgets base-unicode
+ fi
+
+ if use X ; then
+ use stats && myconf="${myconf}
+ --enable-wxcas
+ --enable-alc"
+ use remote && myconf="${myconf}
+ --enable-amule-gui"
+ else
+ myconf="
+ --disable-monolithic
+ --disable-amule-gui
+ --disable-wxcas
+ --disable-alc"
+ fi
+
+ econf \
+ --with-wx-config=${WX_CONFIG} \
+ --enable-amulecmd \
+ $(use_enable debug) \
+ $(use_enable !debug optimize) \
+ $(use_enable daemon amule-daemon) \
+ $(use_enable geoip) \
+ $(use_enable nls) \
+ $(use_enable remote webserver) \
+ $(use_enable stats cas) \
+ $(use_enable stats alcc) \
+ $(use_enable upnp) \
+ ${myconf}
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+
+ if use daemon; then
+ newconfd "${FILESDIR}"/amuled.confd amuled
+ newinitd "${FILESDIR}"/amuled.initd amuled
+ fi
+ if use remote; then
+ newconfd "${FILESDIR}"/amuleweb.confd amuleweb
+ newinitd "${FILESDIR}"/amuleweb.initd amuleweb
+ fi
+}
diff --git a/net-p2p/amule/files/amule-2.3.1-build.patch b/net-p2p/amule/files/amule-2.3.1-build.patch
new file mode 100644
index 000000000000..2e977f3f056b
--- /dev/null
+++ b/net-p2p/amule/files/amule-2.3.1-build.patch
@@ -0,0 +1,10 @@
+--- aMule-2.3.1/src/LoggerConsole.cpp~ 2011-06-13 10:50:25.000000000 +0200
++++ aMule-2.3.1/src/LoggerConsole.cpp 2015-04-11 10:58:20.592470541 +0200
+@@ -29,6 +29,7 @@
+
+ #include "Logger.h" // for Add(Debug)LogLineM()
+
++DEFINE_LOCAL_EVENT_TYPE(MULE_EVT_LOGLINE)
+
+ #ifdef __DEBUG__
+ bool CLogger::IsEnabled(DebugType /*type*/) const
diff --git a/net-p2p/amule/files/amule-2.3.1-wx3.0.patch b/net-p2p/amule/files/amule-2.3.1-wx3.0.patch
new file mode 100644
index 000000000000..77568b1b8d7c
--- /dev/null
+++ b/net-p2p/amule/files/amule-2.3.1-wx3.0.patch
@@ -0,0 +1,45 @@
+diff -ur aMule-2.3.1/src/amuled.cpp aMule-2.3.1.wx3/src/amuled.cpp
+--- aMule-2.3.1/src/amuled.cpp 2011-07-13 17:00:12.000000000 +0200
++++ aMule-2.3.1.wx3/src/amuled.cpp 2014-01-19 13:55:50.904800356 +0100
+@@ -423,7 +423,9 @@
+ #ifndef __WXMSW__
+
+
++/*
+ static EndProcessDataMap endProcDataMap;
++*/
+
+
+ int CDaemonAppTraits::WaitForChild(wxExecuteData &execData)
+@@ -449,6 +451,7 @@
+ wxSleep(1);
+ result = AmuleWaitPid(execData.pid, &status, WNOHANG, &msg);
+ if (result == 0) {
++ /*
+ // Add a WxEndProcessData entry to the map, so that we can
+ // support process termination
+ wxEndProcessData *endProcData = new wxEndProcessData();
+@@ -456,6 +459,7 @@
+ endProcData->process = execData.process;
+ endProcData->tag = 0;
+ endProcDataMap[execData.pid] = endProcData;
++ */
+
+ status = execData.pid;
+ } else {
+@@ -480,6 +484,7 @@
+ msg << wxT("OnSignalChildHandler() has been called for child process with pid `") <<
+ siginfo->si_pid <<
+ wxT("'. ");
++/*
+ // Make sure we leave no zombies by calling waitpid()
+ int status = 0;
+ pid_t result = AmuleWaitPid(siginfo->si_pid, &status, WNOHANG, &msg);
+@@ -503,6 +508,7 @@
+ msg << wxT(" Error: the child process pid is not on the pid map.");
+ }
+ }
++*/
+
+ // Log our passage here
+ AddDebugLogLineN(logGeneral, msg);