HowTo Compile In Gentoo

From AMule Project FAQ
Revision as of 22:15, 23 February 2005 by Thedude0001 (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Compiling a recent version of amule on Gentoo should be a breeze by just typing 'emerge -av amule' but due to several facts it isn't quite that easy right now. So here's a little Step by Step explanation. PLease read the whole document before doing anything as there are several ways you can use and which will each have a different outcome.

Stable amule from portage

If you just emerge amule you will most likely get the latest package that is marked as stable in portage. This is amule-1.2.8 which is more than 12 months old, lacks several bugfixes and features which could seriously lower your download or make it impossible to connect to some servers. So that is not really an option.

Unstable amule from portage

Gentoo classifies amule2.0.0rc ebuilds as unstable because they are ReleaseCandidates. The latest one available is amule2.0.0rc7. There is an (inofficial) ebuild for rc8, but as rc8 depends on wxGTK2.5.3 to build the amule daemon and wxGTK2.5.3 is hardmasked in portage it isn't available through portage.

However, if rc7 is "new enough" for you enter the following things as root into a console:

mkdir /etc/portage (this could give an error message if the directory already exists, just ignore that)
echo 'net-p2p/amule ~x86' >> /etc/portage/package.keywords
emerge -av amule

However rc7 is getting quite old now, so it is the best thing to use either rc8 or even a recent cvs tarball and compile amule manually.

Recent amule manual installation

Per default Gentoo uses gtk2 in all recent profiles. When it comes to wxGTK (which is needed by amule) this can be some trouble. The recent stable wxGTK in portage is wxGTK2.4.2 which should never be linked against GTK2. It causes random crashes, freezes, inpredictable behaviour and may even harm your pet dog!

So there are two possible ways to go: choose wxGTK2.4.2 linked against GTK1.2 (which should be fine for everybody who doesn't want to use amuled, the amule daemon) or choose wxGTK2.5.3 linked either against GTK1.2 or GTK2 (for those who want to try amuled as amuled doesn't work with wxGTK prior to 2.5.3).

Another thing is unicode support: You can't enable unicode support when using GTK1.2 and enabling unicode with GTK2 causes huge memleaks (100MB and more in 24h). So I will just disable it in these examples.

wxGTK2.4.2

If you don't want to use amuled then wxGTK2.4.2 is just fine for. You only need to tell it that it should link against GTK1.2. To do this grab a console and enter (as root):

mkdir /etc/portage (this may give you an error if the directory already exists, just ignore that)
echo 'x11-libs/wxGTK -gtk2 -unicode' >> /etc/portage/package-use
emerge -av wxGTK

This should (re-)emerge wxGTK2.4.2 linked against GTK1.2. Now you can go on to compiling amule.

wxGTK2.5.3

If you want to use amuled then you need at least wxGTK2.5.3. This is currently hardmasked in portage due to problems when compiling with opengl support. But as amule is no 3D egoshooter we can safely disable opengl support and use it anyway. To do so enter the following into a console as root:

mkdir /etc/portage (this may give you an error if the directory already exists, just ignore that)
echo '=x11-libs/wxGTK-2.5*' >> /etc/portage/package.unmask
echo 'x11-libs/wxGTK ~x86' >> /etc/portage/package.keywords

If you want to use GTK1.2 (recommended):
echo 'x11-libs/wxGTK -gtk2 -unicode -opengl' >> /etc/portage/package.use

If you want to use GTK2 (not thoroughly tested yet):
echo 'x11-libs/wxGTK -unicode -opengl' >> /etc/portage/package.use

<code>emerge -av wxGTK

Compiling amule

Grab either amule2.0.0rc8 from http://www.amule.org or (especially if you want to use amuled) a recent cvs tarball from http://amule.hirnriss.net. Untar it by entering tar -xvjf aMule-foo.tar.bz2 and cd to the new directory.

check ./configure --help for a summary of all configure options. Pick the ones you want and run (as an example building the monolithic client and amulecmd)
./configure --enable-amulecmd

Check the configure output for errors and if everything seems fine type make. Once amule is done compiling change to a root account and type make install to install amule and you're done.