Difference between revisions of "BuildingFreeBSD"
(→Run Murmur) |
(added some historical gotchas i ran into) |
||
Line 69: | Line 69: | ||
* see [[Running Murmur]] for information on how to start the server. | * see [[Running Murmur]] for information on how to start the server. | ||
+ | |||
+ | == Caveats and Historical problems == | ||
+ | |||
+ | === alloca.h missing === | ||
+ | |||
+ | When building 1.1.8 or earlier, build fails because of a missing alloca.h header. On FreeBSD, alloca() is declared in [[http://www.mail-archive.com/autoconf@gnu.org/msg18685.html stdlib.h]], so it's safe to comment the line out (in src/murmur/murmur_pch.h). This has been fixed in git for quite some time. | ||
+ | |||
+ | === Requesting crypt-nonce resync === | ||
+ | |||
+ | On 64-bit FreeBSD installations, Murmur 1.1.x and early 1.2 builds would fail, spamming "Requesting crypt-nonce resync" messages in the log, as reported [[http://sourceforge.net/projects/mumble/forums/forum/492607/topic/3201763?message=7153824 here]] and [[http://sourceforge.net/projects/mumble/forums/forum/492607/topic/3378871 here]]. | ||
+ | |||
+ | Crypto was broken on amd64 (and presumably others), however it's fixed in git. If you're trying to build a 1.1.8 server from source, [[http://mumble.git.sourceforge.net/git/gitweb.cgi?p=mumble/mumble;a=commitdiff;h=279ca01e7c5eb43aaf676cc8e222e45141739a21 this patch]] might help. | ||
+ | |||
[[Category:Development]] | [[Category:Development]] |
Revision as of 17:59, 27 October 2009
Contents
FreeBSD Releases
I can only confirm that Murmur runs on the following FreeBSD releases. However, it should build and run on others just fine. Feel free to edit this to add more versions that you've had success with.
- FreeBSD 7.1
- FreeBSD 7.2
Install the dependencies
Mumble
This is a placeholder. This guide is targed towards Murmur at the moment.
Murmur
The following are the main dependencies required for building 1.20 from SVN.
- devel/boost
- x11/libICE
- security/openssl
- devel/protobuf
- devel/qt4-corelib
- devel/qt4-moc
- net/qt4-network
- devel/qt4-qmake
- devel/qt4-rcc
- database/qt4-sql
- database/qt4-sqlite-plugin
- textproc/qt4-xml
If you want to include Bonjour support, include these deps as well:
- net/avahi
- net/avahi-qt4
Compilation
For the server, Murmur:
qmake-qt4 CONFIG+=no-client CONFIG+=no-dbus CONFIG+=no-bonjour main.pro
make release
Note, I currently don't use CONFIG+=optimize because I'm building on 7.2 and running the binary on 7.1. I have no idea what possible consequences could come of that. I would not expect anything, but I'm just being on the safe side.
Run Murmur
I actually prefer to build Murmur in a VM and send builds up to the production server. In case you're wondering, here are the run deps (without Bonjour support):
libprotobuf.so.3 => /usr/local/lib/libprotobuf.so.3 (0x28205000) libcrypto.so.5 => /lib/libcrypto.so.5 (0x282fb000) libIce.so.33 => /usr/local/lib/libIce.so.33 (0x28454000) libIceUtil.so.33 => /usr/local/lib/libIceUtil.so.33 (0x286f9000) libQtSql.so.4 => /usr/local/lib/qt4/libQtSql.so.4 (0x28738000) libQtXml.so.4 => /usr/local/lib/qt4/libQtXml.so.4 (0x28769000) libQtNetwork.so.4 => /usr/local/lib/qt4/libQtNetwork.so.4 (0x287a8000) libQtCore.so.4 => /usr/local/lib/qt4/libQtCore.so.4 (0x28890000) libz.so.4 => /lib/libz.so.4 (0x28a71000) libgthread-2.0.so.0 => /usr/local/lib/libgthread-2.0.so.0 (0x28a83000) libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x28a88000) libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x28b38000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x28c2d000) libm.so.5 => /lib/libm.so.5 (0x28d22000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x28d37000) libthr.so.3 => /lib/libthr.so.3 (0x28d42000) libc.so.7 => /lib/libc.so.7 (0x28d60000) libbz2.so.3 => /usr/lib/libbz2.so.3 (0x28e62000) libintl.so.8 => /usr/local/lib/libintl.so.8 (0x28e73000) libpcre.so.0 => /usr/local/lib/libpcre.so.0 (0x28e7c000)
- see Running Murmur for information on how to start the server.
Caveats and Historical problems
alloca.h missing
When building 1.1.8 or earlier, build fails because of a missing alloca.h header. On FreeBSD, alloca() is declared in [stdlib.h], so it's safe to comment the line out (in src/murmur/murmur_pch.h). This has been fixed in git for quite some time.
Requesting crypt-nonce resync
On 64-bit FreeBSD installations, Murmur 1.1.x and early 1.2 builds would fail, spamming "Requesting crypt-nonce resync" messages in the log, as reported [here] and [here].
Crypto was broken on amd64 (and presumably others), however it's fixed in git. If you're trying to build a 1.1.8 server from source, [this patch] might help.