Install-amule-freebsd

From AMule Project FAQ
Revision as of 16:17, 31 May 2004 by 80.224.220.9 (Talk)

Jump to: navigation, search

This page is likely to be updated soon, but it might help you even right now.


Install amule 2.0.0rc3 on freebsd 5.x

Why would u ask... we have /usr/ports/net/amule

Well, this is the stable version 1.2.6

We wanna stay current or help testing / debugging, why else would u read this?

Install ports we need if u dont allready have (see pkg_info)

security/cryptopp

and

x11-toolkits/wxgtk

and (but you will have this already ;-)

devel/gettext

and (but you will also have this already ;-)

devel/gmake

You know how to install ports as a BSD user, so I don't have to tell you, I hope. It's just too easy you know. In case you're very new to FreeBSD, consult the great handbook at [1].

NOTE: If you think you have wxGTK installed because you see wxGTK2, you should know, wxGTK is linked against GTK1 and wxGTK2 is linked against GTK2. Using wxGTK2 with aMule will become aMule unstable! You have to use wxGTK, not wxGTK2.

Configure

The ./configure does not work 100% automagically, we must help it out a bit.

I used the following line of configure, wich may differ for you a bit due to different OS or library versions you have installed

Right now this line works for FreeBSD 5.2-CURRENT 03-May-2004 for example but version numbers may be different for FreeBSD 5.2.1 or the upcomming 5.3.

Edit the <your home> tag, of course, or install it elsewhere.

./configure --prefix=/home/<your home>/amule --with-wx-config=/usr/X11R6/bin/wxgtk-2.4-config --with-wxbase-config=/usr/X11R6/bin/wxgtk-2.4-config

NOTE: This is one single line, not 3 lines or whatever wiki/html/your browser wraps this line into.

You will see configure doesn't find gdlib-config, even if you installed gdlib. dont care, its just not there and its no "must have". Just skip it.

NOTE: If you get the following warning

WARNING!! Your wxWidgets copy has been linked against GTK2 and this will make aMule be unstable, use so much cpu and ram. You have been advised, don't report bugs so.

at the end of configure you are probably linking against wxGTK2 instead of wxGTK. aMule will memleak and eat your CPU. It will probably crash as well. Use wxGTK as mentioned above!

Patch 1

The problem would be:

[...]
/usr/bin/ld: cannot find -lcryptopp
gmake[2]: *** [cas] Error 1
gmake[2]: Leaving directory `/home/eugene/aMule-2.0.0rc3/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/home/eugene/aMule-2.0.0rc3'
gmake: *** [all] Error 2

So we patch it now:

edit src/Makefile

Search for the line containing

cryptopp

This line will read as:

LIBS = -lcryptopp

Add -L/usr/local/lib to that line

Now the line will read as:

LIBS = -L/usr/local/lib -lcryptopp

Patch 2

The problem would be:

[...]
amule.cpp:39:30: execinfo.h: No such file or directory
amule.cpp:40:28: mntent.h: No such file or directory
In file included from /usr/local/include/cryptopp/pkcspad.h:4,
from /usr/local/include/cryptopp/rsa.h:9,
from ClientCredits.h:32,
from amule.cpp:86:
/usr/local/include/cryptopp/cryptlib.h:1358:9: warning: "/*" within comment
amule.cpp: In member function `virtual bool CamuleApp: nInit()':
amule.cpp:423: error: `setmntent' undeclared (first use this function)
amule.cpp:423: error: (Each undeclared identifier is reported only once for
each function it appears in.)
amule.cpp:429: error: `getmntent' undeclared (first use this function)
amule.cpp:431: error: invalid use of undefined type `struct mntent'
amule.cpp:427: error: forward declaration of `struct mntent'
amule.cpp:432: error: invalid use of undefined type `struct mntent'
amule.cpp:427: error: forward declaration of `struct mntent'
amule.cpp:437: error: invalid use of undefined type `struct mntent'
amule.cpp:427: error: forward declaration of `struct mntent'
amule.cpp: In member function `virtual void CamuleApp: nFatalException()':
amule.cpp:982: error: `backtrace' undeclared (first use this function)
amule.cpp:987: error: `backtrace_symbols' undeclared (first use this function)
gmake[2]: *** [amule-amule.o] Error 1
gmake[2]: Leaving directory `/home/eugene/aMule-2.0.0rc3/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/home/eugene/aMule-2.0.0rc3'
gmake: *** [all] Error 2

So we patch it now:

As there is no official FreeBSD support in aMule yet we will patch it to work... Well there is OpenBSD support and this support will work for us too :-)

Edit src/amule.cpp

and insert

#define __OPENBSD__

at the top of this file. I placed it right before the first #include line...

"What a workaround!" you may scream. Hey, we don't fiddle too much around with the code, just hack it to work and get ready to share ;-)

Make

make will fail, use gmake

make is BSD make, gmake is gnu make. They are not compatible.

Now do:

gmake

Get yourself a hot green tea (I prefer some sort of sencha) while it is compiling.

Then do:

gmake install

Use it

Just start it with /home/<your home>/amule/bin/amule or wherever you installed it to...

Have phun

Eugene

Update - Using the port

I've just released the 2.0.0rc3 port. See [2] (and [3]) to download it.

Since the port is not (yet) officially available, you'll have to uncompress it (tar xvzf file.tgz) into the /usr/ports/net directory and then do a standard make install.

Any feedback welcome, many thanks to Eugene for this great wiki :)

Ganael Laplanche.