Difference between revisions of "Install-amule-freebsd"

From AMule Project FAQ
Jump to: navigation, search
(No embedded crypto++)
 
(31 intermediate revisions by 10 users not shown)
Line 1: Line 1:
<h1><font color=red>The Information on this page is very Old. Someone should update it</font></h1>
+
<center>
 +
[[Install-amule-freebsd|English]] |
 +
[[Install-amule-freebsd-ru|Русский]] |
 +
[[Install-amule-freebsd-es|Espa&ntilde;ol]] |
 +
[[Install-amule-freebsd-it|Italiano]]
 +
</center>
  
== Installing official [[aMule]] ports  ==
+
== Install aMule 2.2.4 on [http://www.freebsd.org FreeBSD] 6.X, 7.X ==
 +
Check that your /usr/ports is up-to-date, for example using portsnap:
 +
          portsnap fetch update
  
Version 2.1.3
+
(you may need portsnap extract or portsnap fetch extract if not done before, you should be told at the end if this is necessary)
  
The amule port can be found at:
+
Then, as the ports tree has been updated to 2.2.4, you should be able to just
  
/usr/ports/net-p2p/amule2
+
Install aMule
  
I prefer the installation of applications on freebsd through the ports collection. Assumeing you're useing freebsd 6.2, as root:
+
            cd /usr/ports/net/amule2
 +
            make config
 +
            make install clean
  
# cd /usr/ports/net-p2p/amule2
 
# make install clean
 
  
In the next menu select deamon if you've plans to remote control aMule, or leave the options as they are, press OK and wait for compilation. The time needed depends on the depended applications that has te be installed. The program directory can be found: (~./aMule/). Means as root:
+
That should download and make all necessary dependencies etc.
  
/root/.aMule/
+
But if that doesn't work you can try (should also be useful for a newer version of aMule then 2.2.4 and the cvs):
 
+
any other user:
+
 
+
/usr/home/<username>/.aMule/
+
 
+
amule.conf can be found directly in the program folder. The webserver config file has to be made:
+
 
+
# amuleweb -w.
+
 
+
and is called remote.conf
+
 
+
 
+
The stable [[aMule]] is version 2.1.3.
+
 
+
We wanna stay current? Help test? Help debug? Continue with this article to learn how to install/compile aMule on your system.
+
 
+
== Install [[aMule CVS]] on [http://www.freebsd.org FreeBSD] 6.2 ==
+
  
  
Check that your /usr/port is up-to-date, for example using portsnap:
 
''portsnap fetch update''
 
  
Upgrade the FreeBSD flex release (2.5.4) with the new one (2.5.33):
+
Upgrade the FreeBSD 6.X (not needed on FreeBSD 7.X) flex release (2.5.4) with the new one (2.5.35):
  
''cd  /usr/ports/textproc/flex''
+
            cd  /usr/ports/textproc/flex
''make install clean''
+
            make install clean
  
 
This installation didn't override the old /usr/bin/, but put a new release on /usr/local/bin/.
 
This installation didn't override the old /usr/bin/, but put a new release on /usr/local/bin/.
Line 48: Line 36:
 
Then we need to rename the old flex release:
 
Then we need to rename the old flex release:
  
''mv /usr/bin/flex /usr/bin/flex.old''
+
            mv /usr/bin/flex /usr/bin/flex.old
  
 
And check your version with this command:
 
And check your version with this command:
  
''flex --version''
+
            flex --version
  
You should obtain: 2.5.33
+
You should obtain: 2.5.35 (or newer)
  
 
Install wxgtk28:
 
Install wxgtk28:
  
''cd /usr/ports/x11-toolkits/wxgtk28-unicode/''
+
            cd /usr/ports/x11-toolkits/wxgtk28-unicode/
 +
            make install clean
  
''make install clean''
+
Install cryptopp:
  
Download the latest [[aMule CVS]] snapshot
+
            cd /usr/ports/security/cryptopp
[http://www.amule.org/files/download.php?file=5 here].
+
            make install clean
  
(This article is tested with http://www.hirnriss.net/files/cvs/aMule-CVS-20071002.tar.bz2)
+
Install GD:
  
''tar -zxvf aMule-CVS-20071002.tar.bz2''
+
            cd /usr/ports/graphics/gd
 +
            make install clean
  
''cd amule-cvs/''
+
Install GeoIP:
  
''./configure --prefix=/home/'''user'''/amule-cvs/
+
            cd /usr/ports/net/GeoIP/
--with-wx-config=/usr/local/bin/wxgtk2u-2.8-config
+
            make install clean
--disable-debug --with-curl-config=/usr/local/bin/curl-config --enable-webserver
+
--enable-optimize --with-included-gettext --enable-amule-daemon --enable-amulecmd --enable-cas''
+
  
'''NOTE:''' Check [[configure]]. Also, change '''user''' for your user name.
+
Download the aMule 2.2.4 source code
 
+
[http://www.amule.org/files/files.php?cat=42 here].
''gmake''
+
 
+
''gmake install''
+
 
+
== Install [[aMule CVS]] on [http://www.freebsd.org FreeBSD] 5.3 ==
+
 
+
Make sure you have installed:
+
 
+
''/usr/ports/x11-toolkits/wxgtk2''
+
 
+
* Ignore the "problems" about [[wxGTK]]2 on [http://www.freebsd.org FreeBSD]. It works perfectly!
+
 
+
Download the latest [[aMule CVS]] snapshot
+
[http://www.amule.org/files/download.php?file=5 here].
+
 
+
(This article is tested with http://amule.hirnriss.net/cvs/aMule-cvs-20041215.tar.bz2)
+
  
''tar -zxvf aMule-cvs-20041215.tar.bz2''
+
            tar -zxvf aMule-2.2.4.tar.bz2
 +
            cd aMule-2.2.2/
  
''cd amule-cvs/''
+
You need to edit the file src/Scanner.l and after the line:
 +
            #include <wx/string.h>
 +
Add the line:
 +
            #include "Scanner.h.in"
  
''./configure --prefix=/home/'''user'''/amule-cvs/
+
Configure some environement variable, for bash user:
--with-wx-config=/usr/X11R6/bin/wx-config
+
            export CPPFLAGS="-I/usr/local/include"
--with-wxbase-config=/usr/X11R6/bin/wx-config
+
            export LDFLAGS="-L/usr/local/lib"
--disable-debug --with-curl-config=/usr/local/bin/curl-config
+
Or for csh user (default under FreeBSD):
--enable-optimize --x-libraries=/usr/X11R6/lib
+
            setenv CPPFLAGS "-I/usr/local/include"
--x-includes=/usr/X11R6/include --localstatedir=/usr/X11R6/share/gnome
+
            setenv LDFLAGS "-L/usr/local/lib"
--datadir=/usr/X11R6/share/gnome --with-html-dir=/usr/X11R6/share/doc
+
Then start the compilation:
--with-crypto-prefix=/usr/local --with-included-gettext --disable-cas''
+
           
 +
            ./configure --prefix=/home/'''user'''/aMule-2.2.4/ \
 +
            --with-wx-config=/usr/local/bin/wxgtk2u-2.8-config --with-crypto-prefix=/usr/local/ \
 +
            --disable-debug --with-curl-config=/usr/local/bin/curl-config --enable-webserver  \
 +
            --enable-optimize --with-included-gettext --enable-amule-daemon --enable-amulecmd \
 +
            --enable-cas --enable-alcc --enable-geoip
  
 
'''NOTE:''' Check [[configure]]. Also, change '''user''' for your user name.
 
'''NOTE:''' Check [[configure]]. Also, change '''user''' for your user name.
  
''gmake''
+
            gmake
 +
            gmake install
  
''cd ~/amule-cvs/src/amule''
+
And start it:
 +
          ./amule-2.2.4/bin/amule &
  
If you would like to compile/install [[aMule]] 2.0.0-rc7, you can follow the same instructions.
 
  
Greetz,
+
== Configuration info ==
Martin
+
  
[mailto://amule@air-maxx.net amule@air-maxx.net]
+
After successfully installing:
  
== Manual compilation ==
+
The program directory can be found: (~./aMule/). Means as root:
  
Follow this guide to compile [[aMule]] on your [http://www.freebsd.org FreeBSD] system.
+
/root/.aMule/
  
===  Requirements ===
+
any other user:
  
Install this ports if you don't already have them installed (see ''pkg_info''), since they are needed to compile [[aMule]]:
+
/usr/home/<username>/.aMule/
  
''x11-toolkits/wxgtk''
+
amule.conf can be found directly in the program folder. The webserver config file has to be made:
''security/cryptopp''
+
  
Also (but you will have these already ;-)) ''devel/gettext'' and ''devel/gmake''
+
# amuleweb -w.
  
You know how to install ports as a [http://www.bsd.org 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 [http://www.freebsd.org FreeBSD], consult the great [http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook handbook] at [http://www.freebsd.org http://www.freebsd.org].
+
and is called remote.conf
 
+
'''NOTE:''' If you think you have [[wxWidgets|wxGTK]] installed because you see [[wxWidgets|wxGTK2]], you should know, [[wxWidgets|wxGTK]] is linked against [http://www.gtk.org GTK1] and [[wxWidgets|wxGTK2]] is linked against [http://www.gtk.org GTK2]. Using [[wxWidgets|wxGTK2]] with [[aMule]] might become [[aMule]] unstable! You should use [[wxWidgets|wxGTK]], not [[wxWidgets|wxGTK2]].
+
 
+
===  Configure  ===
+
 
+
(Tested with  [http://www.freebsd.org FreeBSD] 5.2-CURRENT 03-May-2004)
+
 
+
The ''./configure'' does not work 100% automagically, we must help it out a bit (check [[configure]]).
+
 
+
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 [http://wiki.org/wiki.cgi?WhatIsWiki wiki]/HTML/your browser wraps this line into.
+
 
+
You will see configure doesn't find ''gdlib-config'', even if you installed ''gdlib''. Don't care, it's just not there and it's 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 [[wxWidgets|wxGTK2]] instead of [[wxWidgets|wxGTK]]. [[aMule]] will memleak and eat your CPU. It will probably crash as well. Use [[wxWidgets|wxGTK]] as mentioned above!
+
 
+
===  Make  ===
+
 
+
''make'' will fail, use ''gmake''
+
 
+
''make'' is [http://www.bsd.org BSD] [http://www.gnu.org/software/make make], ''gmake'' is [http://www.gnu.org GNU] [http://www.gnu.org/software/make 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
+
 
+
== The [[aMule]] 2.0.0 port ==
+
 
+
Hi :)
+
 
+
I've just released the 2.0.0 port !!! As ususal, available here :
+
http://contribs.martymac.com and soon on http://dl.amule.org !!!!
+
 
+
A few modifications : it is now linked against [[wxGTK]]2-unicode-devel ; it will be linked back against [[wxGTK]]2-unicode (stable) when [[wxWidgets|2.6]] is out. The small [[ed2k_command]] binary is also now named ''ed2k'', it is no more renamed to ''amule-ed2k''. Finally, the port will only build on [http://www.freebsd.org 5.x], no more on [http://www.freebsd.org 4.x], sorry... For [http://www.freebsd.org 4.x] compatibility, see this old good port ''net/amule'' (which should be soon renamed to ''net/amule1'') in the official source tree.
+
 
+
The port builds fine on [http://www.x86-64.org amd64], and should on [http://www.intel.com/design/support/faq/embed_proces/x86faq.htm x86] :P
+
 
+
Enjoy!
+
 
+
Ganael LAPLANCHE
+
 
+
http://contribs.martymac.com
+
 
+
[mailto://ganael.laplanche@martymac.com ganael.laplanche@martymac.com]
+
 
+
== The [[aMule]] 2.0.0-rc7 port ==
+
 
+
Hi all, the rc7 port is now available on my website:
+
http://contribs.martymac.com
+
 
+
I've also added binaries for those who don't want to spend time to compile. The port works on [http://www.freebsd.org FreeBSD] 4.10 and 5.2.1. Any feedback welcome. I've changed some options to the Makefile: amule-ed2k-handler is now amule-ed2k, and cmd+GUI options are now joined in global ones. Do a "make config" prior to the "make install" to update your config file.
+
 
+
Enjoy :)
+
 
+
Ganael LAPLANCHE
+
 
+
http://contribs.martymac.com
+
 
+
[mailto://ganael.laplanche@martymac.com ganael.laplanche@martymac.com]
+
 
+
== The [[aMule]] 2.0.0-rc6 port ==
+
 
+
Visit http://www.amule-project.net/amule/thread.php?threadid=3758 and do as it says ;-)
+
 
+
== The [[aMule]] 2.0.0-rc4a ports ==
+
+
Hi all, new update to this wiki: 2.0.0rc4a ports are available. No, you ain't dreaming, you've just seen an 's' appended, because there are two ports.
+
 
+
Unfortunately, [http://www.freebsd.org FreeBSD] 4.x (and [http://gcc.gnu.org GCC] 2.95) doesn't provide some required libs (see the patches inside the archive) to build this brand-new [[aMule]] version, so I released two ports :
+
 
+
*One for the 4.x branch, which won't compile under 5.x:
+
Includes many patches, sometimes tricky, to make it work. This could lead to unstability and require further testing. Any feedback is welcome :)
+
 
+
*Another one for the 5.x branch, wich won't compile under 4.x:
+
This one doesn't include any patch.
+
 
+
To download the ports: http://www.amule.org/amule/download.php or http://contribs.martymac.com
+
 
+
Enjoy!
+
 
+
Ganael LAPLANCHE
+
 
+
http://contribs.martymac.com
+
 
+
[mailto://ganael.laplanche@martymac.com ganael.laplanche@martymac.com]
+
 
+
== The [[aMule]] 2.0.0-rc3 port ==
+
 
+
I've just released the 2.0.0rc3 port.
+
 
+
See http://www.amule.org/amule/download.php (and http://contribs.martymac.com ) to download it.
+
 
+
== Installing non-official ports ==
+
 
+
If you download a port which is not 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.
+
 
+
== Compilation problems ==
+
 
+
If you still can't compile [[aMule]] see if the following patches work.
+
 
+
=== Patch 1 ===
+
 
+
The problem would be:
+
 
+
''<pre>[...]
+
/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</pre>''
+
 
+
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:
+
 
+
''<pre>[...]
+
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</pre>''
+
 
+
So we patch it now:
+
 
+
As there is no official [http://www.freebsd.org FreeBSD] support in [[aMule]] yet we will patch it to work... Well there is [http://www.openbsd.org 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 ;-)
+

Latest revision as of 18:13, 8 February 2010

English | Русский | Español | Italiano

Install aMule 2.2.4 on FreeBSD 6.X, 7.X

Check that your /usr/ports is up-to-date, for example using portsnap:

          portsnap fetch update

(you may need portsnap extract or portsnap fetch extract if not done before, you should be told at the end if this is necessary)

Then, as the ports tree has been updated to 2.2.4, you should be able to just

Install aMule

           cd /usr/ports/net/amule2
           make config
           make install clean


That should download and make all necessary dependencies etc.

But if that doesn't work you can try (should also be useful for a newer version of aMule then 2.2.4 and the cvs):


Upgrade the FreeBSD 6.X (not needed on FreeBSD 7.X) flex release (2.5.4) with the new one (2.5.35):

           cd  /usr/ports/textproc/flex
           make install clean

This installation didn't override the old /usr/bin/, but put a new release on /usr/local/bin/.

Then we need to rename the old flex release:

           mv /usr/bin/flex /usr/bin/flex.old

And check your version with this command:

           flex --version

You should obtain: 2.5.35 (or newer)

Install wxgtk28:

           cd /usr/ports/x11-toolkits/wxgtk28-unicode/
           make install clean

Install cryptopp:

           cd /usr/ports/security/cryptopp
           make install clean

Install GD:

           cd /usr/ports/graphics/gd
           make install clean

Install GeoIP:

           cd /usr/ports/net/GeoIP/
           make install clean

Download the aMule 2.2.4 source code here.

           tar -zxvf aMule-2.2.4.tar.bz2
           cd aMule-2.2.2/

You need to edit the file src/Scanner.l and after the line:

           #include <wx/string.h>

Add the line:

           #include "Scanner.h.in"

Configure some environement variable, for bash user:

           export CPPFLAGS="-I/usr/local/include"
           export LDFLAGS="-L/usr/local/lib"

Or for csh user (default under FreeBSD):

           setenv CPPFLAGS "-I/usr/local/include"
           setenv LDFLAGS "-L/usr/local/lib"

Then start the compilation:

           ./configure --prefix=/home/user/aMule-2.2.4/ \
           --with-wx-config=/usr/local/bin/wxgtk2u-2.8-config --with-crypto-prefix=/usr/local/ \
           --disable-debug --with-curl-config=/usr/local/bin/curl-config --enable-webserver  \
           --enable-optimize --with-included-gettext --enable-amule-daemon --enable-amulecmd \
           --enable-cas --enable-alcc --enable-geoip

NOTE: Check configure. Also, change user for your user name.

           gmake
           gmake install

And start it:

          ./amule-2.2.4/bin/amule &


Configuration info

After successfully installing:

The program directory can be found: (~./aMule/). Means as root:

/root/.aMule/

any other user:

/usr/home/<username>/.aMule/

amule.conf can be found directly in the program folder. The webserver config file has to be made:

  1. amuleweb -w.

and is called remote.conf