Difference between revisions of "BuildingLinux"

From Mumble Wiki
Jump to: navigation, search
m
(Building Mumble: syntax)
(108 intermediate revisions by 29 users not shown)
Line 1: Line 1:
[http://indiahobart.totalh.com/data/doctor-search.html doctor search] [http://nixadigogu.fhpanel.com/view/improve-sex-life.htm improve sex life] [http://kerriemiddlebro.totalh.com/articles/i-do-bad-things.html i do bad things panties] [http://lolagilstrap.totalh.com/styles/missions.html missions] [http://dreamacammarata.totalh.com/web/archangel.htm archangel] [http://pegradcliffe.totalh.com/web/forced-humiliation.html forced humiliation] [http://firesmith.interfree.it/my-best-friends.htm my best friends mom] [http://valerieller.totalh.com/crossdressing-links.html crossdressing links] [http://tianapereira.totalh.com/web/daily-star-lucy.html daily star lucy pinder] [http://kerriemiddlebro.totalh.com/articles/used-campers.html used campers] [http://kerriemiddlebro.totalh.com/articles/michigan-international.html michigan international speedway] [http://zpkuguh.fhpanel.com/girls-sucking.html girls sucking dicks] [http://tyeshamacgregor.totalh.com/view/accommodation-rent.htm accommodation rent victoria] [http://annamariasamani.totalh.com/anime-porno.html anime porno] [http://lavondamifflin.totalh.com/equipment-photography.html equipment photography professional studio] [http://dzlajici.fhpanel.com/styles/whipping-scenes.html whipping scenes movies database] [http://rinujamta.fhpanel.com/content/logo-design-concepts.html logo design concepts] [http://rinujamta.fhpanel.com/content/calcium.html calcium] [http://tianapereira.totalh.com/web/cbaby.html cbaby] [http://lavondamifflin.totalh.com/state-infrastructure.html state infrastructure bank california] [http://firesmith.interfree.it/hot-vw.htm hot vw] [http://annamariasamani.totalh.com/enlarged-clitoris.html enlarged clitoris] [http://rinujamta.fhpanel.com/content/jeep-grand-cherokee.html jeep grand cherokee srt 8] [http://nicolaich13.interfree.it/web/squishy.htm squishy] [http://zpkuguh.fhpanel.com/haley-hills.html haley hills] [http://indiahobart.totalh.com/data/help-for-troubled.html help for troubled teen] [http://indiahobart.totalh.com/data/settlement-hierarchy.html settlement hierarchy definition] [http://capara.interfree.it/small/truck-bed-covers.html truck bed covers] [http://cybertyger.interfree.it/directory/mini-skirt-gallery.htm mini skirt gallery 1] [http://apockrif.interfree.it/description/shimmy.html shimmy] [http://nixadigogu.fhpanel.com/view/sleeping-beauty.htm sleeping beauty] [http://cybertyger.interfree.it/directory/shoe-store.htm shoe store] [http://nicolaich13.interfree.it/web/perfect-teen.htm perfect teen] [http://nixadigogu.fhpanel.com/view/racing.htm racing] [http://pegradcliffe.totalh.com/web/california-dream.html california dream girls] [http://pegradcliffe.totalh.com/web/inner-peace.html inner peace] [http://apockrif.interfree.it/description/bounty-hunter.html bounty hunter] [http://lavondamifflin.totalh.com/lyrics-rimes.html lyrics rimes] [http://cybertyger.interfree.it/directory/diapered-preteen.htm diapered preteen girls] [http://nixadigogu.fhpanel.com/view/military-retirement.htm military retirement pay chart 2005] [http://firesmith.interfree.it/sexy-erotic-lingerie.htm sexy erotic lingerie] [http://lavondamifflin.totalh.com/fruit-of-the-spirit.html fruit of the spirit] [http://dreamacammarata.totalh.com/web/submissive-male.htm submissive male] [http://dreamacammarata.totalh.com/web/tennis-racquet.htm tennis racquet] [http://nixadigogu.fhpanel.com/view/preteen-fucking.htm preteen fucking] [http://indiahobart.totalh.com/data/free-creampie-pictures.html free creampie pictures] [http://firesmith.interfree.it/free-sailor-moon.htm free sailor moon x] [http://capara.interfree.it/small/manta-ray.html manta ray] [http://tianapereira.totalh.com/web/free-porn-gay.html free porn gay sex] [http://nicolaich13.interfree.it/web/sex-fuck-granny.htm sex fuck granny] [http://xuzilowga.fhpanel.com/new/idea-for-three.html idea for three day vacation] [http://capara.interfree.it/small/epson-ink-cartridge.html epson ink cartridge] [http://kerriemiddlebro.totalh.com/articles/nakedness.html nakedness] [http://kerriemiddlebro.totalh.com/articles/luxury-real-estate.html luxury real estate las vegas] [http://nicolaich13.interfree.it/web/department-of.htm department of health] [http://lavondamifflin.totalh.com/corporate-team-building.html corporate team building] [http://lolagilstrap.totalh.com/styles/college-humor.html college humor] [http://lavondamifflin.totalh.com/free-ringtones.html free ringtones uk] [http://tyeshamacgregor.totalh.com/view/somewhere-out.htm somewhere out there mp3] [http://kerriemiddlebro.totalh.com/articles/american-job-bank.html american job bank] [http://firesmith.interfree.it/harness-racing.htm harness racing] [http://dzlajici.fhpanel.com/styles/cheyenne-silver.html cheyenne silver] [http://xuzilowga.fhpanel.com/new/swaroski-crystal.html swaroski crystal beads] [http://dreamacammarata.totalh.com/web/war-of-the-worlds.htm war of the worlds] [http://apockrif.interfree.it/description/agv.html agv] [http://lavondamifflin.totalh.com/adult-pic.html adult pic] [http://zpkuguh.fhpanel.com/licking-breasts.html licking breasts] [http://tianapereira.totalh.com/web/uw.html uw] [http://dzlajici.fhpanel.com/styles/prison-inmate-locator.html prison inmate locator] [http://nixadigogu.fhpanel.com/view/gratis-poker.htm gratis poker online] [http://dzlajici.fhpanel.com/styles/tony-stewart.html tony stewart] [http://tyeshamacgregor.totalh.com/view/west-virginia-state.htm west virginia state fair] [http://zpkuguh.fhpanel.com/kama-sutra-positions.html kama sutra positions] [http://zpkuguh.fhpanel.com/renegocier-pret.html renegocier pret immobilier] [http://kerriemiddlebro.totalh.com/articles/lyrics-all-things.html lyrics all things are possible] [http://dzlajici.fhpanel.com/styles/the-federal-budget.html the federal budget and the states] [http://dzlajici.fhpanel.com/styles/great-blowjobs.html great blowjobs] [http://kerriemiddlebro.totalh.com/articles/faux-painting-school.html faux painting school] [http://annamariasamani.totalh.com/male-dog-knot.html male dog knot] [http://tianapereira.totalh.com/web/bangers.html bangers] [http://lavondamifflin.totalh.com/coldwater-creek.html coldwater creek coupons discounts] [http://dreamacammarata.totalh.com/web/sega.htm sega] [http://kerriemiddlebro.totalh.com/articles/murray-lawn-mower.html murray lawn mower parts] [http://kerriemiddlebro.totalh.com/articles/swim-boy.html swim boy] [http://annamariasamani.totalh.com/movie-theaters.html movie theaters lincoln ne] [http://lavondamifflin.totalh.com/ion-davidov.html ion davidov] [http://dzlajici.fhpanel.com/styles/horses-for-sale.html horses for sale online] [http://rinujamta.fhpanel.com/content/kevin-bacon.html kevin bacon] [http://indiahobart.totalh.com/data/research.html research] [http://nicolaich13.interfree.it/web/catholic-singles.htm catholic singles] [http://tyeshamacgregor.totalh.com/view/calorie-counter.htm calorie counter] [http://nixadigogu.fhpanel.com/view/project-management.htm project management services] [http://dreamacammarata.totalh.com/web/spice-girls-wannabe.htm spice girls wannabe] [http://indiahobart.totalh.com/data/country-ringtones.html country ringtones] [http://tyeshamacgregor.totalh.com/view/windermere-restaurants.htm windermere restaurants] [http://pegradcliffe.totalh.com/web/cheerleader-lesbians.html cheerleader lesbians] [http://tianapereira.totalh.com/web/ceramic-balls.html ceramic balls] [http://kerriemiddlebro.totalh.com/articles/girls-irish-names.html girls irish names] [http://indiahobart.totalh.com/data/esmeralda.html esmeralda] [http://lavondamifflin.totalh.com/remy-zero.html remy zero] [http://xuzilowga.fhpanel.com/new/men-pissing.html men pissing] [http://cybertyger.interfree.it/directory/lolitas-fucking.htm lolitas fucking] [http://pegradcliffe.totalh.com/web/mosh.html mosh] [http://dreamacammarata.totalh.com/web/preteen-movies.htm preteen movies] [http://capara.interfree.it/small/he-is-here.html he is here] [http://lolagilstrap.totalh.com/styles/eminem-puke.html eminem puke] [http://pegradcliffe.totalh.com/web/nice-looking-breasts.html nice looking breasts] [http://pegradcliffe.totalh.com/web/english-housewives.html english housewives] [http://indiahobart.totalh.com/data/antivirus-gold.html antivirus gold] [http://indiahobart.totalh.com/data/computer-bags.html computer bags] [http://indiahobart.totalh.com/data/lesbians-having.html lesbians having sex] [http://rinujamta.fhpanel.com/content/ppt-networking-introduction.html ppt networking introduction] [http://annamariasamani.totalh.com/sag.html sag] [http://rinujamta.fhpanel.com/content/head-hilton-house.html head hilton house rental] [http://dzlajici.fhpanel.com/styles/naked-secretary.html naked secretary amateur] [http://apockrif.interfree.it/description/leather-lingerie.html leather lingerie manufacturers] [http://zpkuguh.fhpanel.com/off-switch.html off switch] [http://rinujamta.fhpanel.com/content/winston-cup-racing.html winston cup racing] [http://rinujamta.fhpanel.com/content/nut.html nut] [http://cybertyger.interfree.it/directory/anuncios-ver.htm anuncios ver] [http://lavondamifflin.totalh.com/dinars.html dinars] [http://lavondamifflin.totalh.com/elmo-world.html elmo world] [http://indiahobart.totalh.com/data/used-autos.html used autos] [http://pegradcliffe.totalh.com/web/monster-truck.html monster truck] [http://pegradcliffe.totalh.com/web/atlanta-homes.html atlanta homes] [http://zpkuguh.fhpanel.com/reverse-lookup.html reverse lookup] [http://dzlajici.fhpanel.com/styles/sugar-were-going.html sugar were going down] [http://pegradcliffe.totalh.com/web/micro-skimpy.html micro skimpy thongs] [http://xuzilowga.fhpanel.com/new/elephant-penis.html elephant penis] [http://zpkuguh.fhpanel.com/gay-men.html gay men] [http://valerieller.totalh.com/estate-home-real.html estate home real sale winnipeg] [http://valerieller.totalh.com/voice-recorder.html voice recorder] [http://indiahobart.totalh.com/data/lane-transit-system.html lane transit system] [http://nicolaich13.interfree.it/web/russian-revolution.htm russian revolution] [http://dreamacammarata.totalh.com/web/carnival-cruise.htm carnival cruise lines] [http://rinujamta.fhpanel.com/content/birthday-jokes.html birthday jokes] [http://kerriemiddlebro.totalh.com/articles/pop-display-parts.html pop display parts] [http://nixadigogu.fhpanel.com/view/never-give-up.htm never give up] [http://nixadigogu.fhpanel.com/view/electronic-manufacturer.htm electronic manufacturer logos] [http://kerriemiddlebro.totalh.com/articles/sample-wedding-invitation.html sample wedding invitation] [http://cybertyger.interfree.it/directory/slingblade.htm slingblade] [http://indiahobart.totalh.com/data/myrtle-beach-chamber.html myrtle beach chamber of commerce] [http://tyeshamacgregor.totalh.com/view/child-lolita.htm child lolita] [http://kerriemiddlebro.totalh.com/articles/lolita-ass.html lolita ass] [http://tyeshamacgregor.totalh.com/view/mini-harley-chopper.htm mini harley chopper scooter] [http://indiahobart.totalh.com/data/pharrell.html pharrell] [http://dzlajici.fhpanel.com/styles/tcs.html tcs] [http://firesmith.interfree.it/biggest-breasts.htm biggest breasts] [http://pegradcliffe.totalh.com/web/morske-oko.html morske oko] [http://indiahobart.totalh.com/data/eisenhower.html eisenhower] [http://rinujamta.fhpanel.com/content/buprenorphine.html buprenorphine] [http://annamariasamani.totalh.com/stocking-gallery.html stocking gallery] [http://dreamacammarata.totalh.com/web/hirsute-ladies.htm hirsute ladies] [http://kerriemiddlebro.totalh.com/articles/india-stock-margin.html india stock margin] [http://lavondamifflin.totalh.com/adopt-a-child-christmas.html adopt a child christmas] [http://apockrif.interfree.it/description/restaurant-design.html restaurant design] [http://apockrif.interfree.it/description/women-orgasm.html women orgasm] [http://dzlajici.fhpanel.com/styles/vd-vt.html vd vt] [http://nixadigogu.fhpanel.com/view/3d-cartoons.htm 3d cartoons] [http://tyeshamacgregor.totalh.com/view/florida-marlins.htm florida marlins] [http://firesmith.interfree.it/adult-toga-party.htm adult toga party] [http://indiahobart.totalh.com/data/marx-toy-soldiers.html marx toy soldiers] [http://dreamacammarata.totalh.com/web/chickswithdicks.htm chickswithdicks] [http://indiahobart.totalh.com/data/anime-girls-hot.html anime girls hot] [http://tyeshamacgregor.totalh.com/view/coon.htm coon] [http://firesmith.interfree.it/self-dick-sucking.htm self dick sucking] [http://nixadigogu.fhpanel.com/view/boys-masterbating.htm boys masterbating gallery] [http://tianapereira.totalh.com/web/buy-medications.html buy medications online] [http://tyeshamacgregor.totalh.com/view/zaba.htm zaba] [http://indiahobart.totalh.com/data/rim-job.html rim job] [http://nixadigogu.fhpanel.com/view/black-gang-bangs.htm black gang bangs] [http://apockrif.interfree.it/description/scarlett-johanson.html scarlett johanson] [http://zpkuguh.fhpanel.com/free-online-strip.html free online strip poker] [http://lavondamifflin.totalh.com/spread-butt.html spread butt] [http://pegradcliffe.totalh.com/web/ga-lottery-results.html ga lottery results] [http://firesmith.interfree.it/the-fridge-michigan.htm the fridge michigan] [http://apockrif.interfree.it/description/ff7-hentai.html ff7 hentai] [http://kerriemiddlebro.totalh.com/articles/free-myspace.html free myspace layouts] [http://firesmith.interfree.it/tongue-cancer.htm tongue cancer] [http://nixadigogu.fhpanel.com/view/sonic-boom.htm sonic boom] [http://firesmith.interfree.it/joc-song-yung.htm joc song yung] [http://rinujamta.fhpanel.com/content/driving-distance.html driving distance] [http://dreamacammarata.totalh.com/web/katz.htm katz] [http://indiahobart.totalh.com/data/stop-figuring.html stop figuring out precisely how we feel] [http://annamariasamani.totalh.com/real-estate-germantown.html real estate germantown] [http://firesmith.interfree.it/cum-bath.htm cum bath] [http://firesmith.interfree.it/forced.htm forced] [http://tianapereira.totalh.com/web/english-free.html english free songs] [http://lolagilstrap.totalh.com/styles/erotic-naked.html erotic naked models] [http://annamariasamani.totalh.com/leasing-exercise.html leasing exercise equipment] [http://capara.interfree.it/small/nude-beach-pictures.html nude beach pictures] [http://rinujamta.fhpanel.com/content/mack-trucks.html mack trucks] [http://lavondamifflin.totalh.com/brian-adams.html brian adams] [http://nicolaich13.interfree.it/web/penis-extension.htm penis extension] [http://valerieller.totalh.com/panty-teen.html panty teen] [http://indiahobart.totalh.com/data/yulia-nova.html yulia nova] [http://capara.interfree.it/small/male-muscle-worship.html male muscle worship] [http://xuzilowga.fhpanel.com/new/getty-images.html getty images] [http://rinujamta.fhpanel.com/content/boost-chirp-code.html boost chirp code free mobile] [http://lolagilstrap.totalh.com/styles/loads.html loads]
+
{{Building}}
This guide is based on this article [http://www.linux-gamers.net/modules/newbb/viewtopic.php?topic_id=2896&forum=6] found at www.linux-gamers.net.
 
  
== Install the dependencies ==
+
'''Please edit this page if you find a feature or step you think should be included; it's a wiki for a reason! Note you must register and wait about 3 days in order to be able to edit.'''
  
For Mumble/Murmur 1.1.0 and greater (including SVN), Qt 4.3 is required. For the 1.0.0 release, Qt 4.2 is sufficient.
+
= Install the dependencies =
  
=== For Gentoo ===
+
Mumble 1.2.3 or newer requires at least Qt 4.6.
  
Note: Make sure you have sqlite and/ or sqlite3 in your USE flags in /etc/make.conf, if you haven't emerged qt4 with these before, you need to reemerge it.
+
== Debian or Ubuntu ==
 +
We do not recommend building Mumble on Debian 5 ("Lenny") or older. Please update to Debian 6 ("Squeeze") or newer. You may still be able to build it by playing with package sources to include only required packages from Squeeze, but that is not a supported solution.
  
emerge dev-libs/boost media-libs/speex x11-libs/libXevie x11-libs/qt (See Note)
+
You need to make sure you have the needed libraries and dependencies installed to build Mumble and Murmur from source. This can be done in one of those ways:
  
=== For Debian / Ubuntu ===
+
{{Warning
 +
|message=Note that since Debian 10 the ''libg15daemon-client-dev'' package has been removed from their repository. You'll have to use the ''no-g15'' config option or follow [[#G15 Support|G15 support]]
 +
}}
  
apt-get install qt4-dev-tools libqt4-dev libspeex1 libspeex-dev libboost-dev libasound2-dev libxevie-dev libxevie1 libssl-dev g++
+
=== 1.2.x ===
  
It's recommended to remove the package qt3-dev-tools if installed.
+
If your distribution provides packages of the 1.2.x versions, it is sufficient to just run:
 +
apt-get build-dep mumble
  
If you want to use versions of Mumble greater greater than 1.0, you'll need to use Debian lenny or Ubuntu Gutsy, as they are the only versions supporting Qt 4.3.
+
Otherwise, you need to install some development packages manually:
 +
apt-get install build-essential pkg-config qt4-dev-tools libqt4-dev libspeex1 \
 +
                libspeex-dev libboost-dev libasound2-dev libssl-dev g++ \
 +
                libspeechd-dev libzeroc-ice-dev ice-slice libpulse-dev slice2cpp \
 +
                libcap-dev libspeexdsp-dev libprotobuf-dev protobuf-compiler \
 +
                libogg-dev libavahi-compat-libdnssd-dev libsndfile1-dev \
 +
                libg15daemon-client-dev libxi-dev
  
== Download the source ==
+
It is recommended to remove the package qt3-dev-tools if installed.<br>
  
Get the mumble source
+
{{Warning
 +
|message=For ''Ice-3.4.1'' you will need ''libexpat1-dev'' and ''libdb4.6++-dev'', which conflicts with newer packages.
 +
}}
 +
=== 1.3.x ===
  
svn co https://mumble.svn.sourceforge.net/svnroot/mumble/trunk mumble
+
Since Mumble Snapshots aren't available in the repository, you need to install development packages manually:
  cd mumble/
+
  apt-get install build-essential pkg-config qt5-default qttools5-dev-tools libqt5svg5-dev \
 +
                libboost-dev libasound2-dev libssl-dev \
 +
                libspeechd-dev libzeroc-ice-dev libpulse-dev \
 +
                libcap-dev libprotobuf-dev protobuf-compiler \
 +
                libogg-dev libavahi-compat-libdnssd-dev libsndfile1-dev \
 +
                libg15daemon-client-dev libxi-dev
  
== Compile Mumble and Murmur (Mumble server) ==
+
Now go on to the section [[#Getting_the_source|Getting the source]].
  
  qmake main.pro
+
== Fedora ==
  make
+
 
 +
=== 1.2.x ===
 +
 
 +
dnf builddep mumble
 +
 
 +
=== 1.3.x ===
 +
 
 +
{{Warning
 +
|message=The build has been tested on a Docker builder using the official Fedora image. You may need to [[BuildingLinux#Finding_missing_dependencies|install more dependencies]] on a standard installation.
 +
}}
 +
  dnf install make gcc gcc-c++ which qt5* protobuf-compiler protobuf-devel openssl-devel \
 +
            libsndfile-devel alsa-lib-devel avahi-compat-libdns_sd-devel libXi-devel \
 +
            speech-dispatcher-devel flac-devel libogg-devel libvorbis-devel libcap-devel
 +
 
 +
=== Finding missing dependencies ===
 +
 
 +
If the build fails even after installing the dependencies listed above, you'll need to find out that package name on your own. I use <tt>dnf provides</tt> to hunt these things down. This command is best learned through a demonstration, so here's an example Mumble build that's missing a dependency:
 +
 
 +
  $ cd $YOUR_MUMBLE_REPO
 +
  $ qmake CONFIG+="no-g15 no-ice" -recursive
 +
  $ make
 +
  ... omitted lots of build info ....
 +
  mumble_pch.hpp:117:20: fatal error: dns_sd.h: No such file or directory
 +
  compilation terminated.
 +
  make[2]: *** [release/mumble.gch/c++] Error 1
 +
  make[2]: Leaving directory `/home/dafrito/src/mumble/src/mumble'
 +
  make[1]: *** [release] Error 2
 +
  make[1]: Leaving directory `/home/dafrito/src/mumble/src/mumble'
 +
  make: *** [sub-src-mumble-make_default-ordered] Error 2
 +
  $
 +
 
 +
The key line in the above is the "fatal error: dns_sd.h: No such file or directory" This will always be very close to the bottom of make's output. We'll need to install that header file somehow, so we'll try looking in Fedora's repos first. <tt>yum provides</tt> lets us search for packages that provide a specified file. In this case, we'll look for packages that give us <tt>dns_sd.h</tt>
 +
 
 +
  $ dnf provides '*/dns_sd.h' # be careful not to forget the quotes or the wildcard here
 +
  avahi-compat-libdns_sd-devel-0.6.30-4.fc16.i686 : Header files for the Apple Bonjour mDNSResponder compatibility libraries
 +
  Repo        : fedora
 +
  Matched from:
 +
  Filename    : /usr/include/avahi-compat-libdns_sd/dns_sd.h
 +
  Filename    : /usr/include/dns_sd.h
 +
 
 +
This lets us know that <tt>avahi-compat-libdns_sd-devel</tt> provides the needed header, so now we can install that package
 +
 
 +
  $ dnf install avahi-compat-libdns_sd-devel
 +
  .. lots of installation ..
 +
 
 +
And now we can try building Mumble again using <tt>make</tt>. If you're missing multiple packages, then you'll probably need to repeat the above process to satisfy any missing dependencies. If Mumble still doesn't build, you may be able to discern which feature is causing problems and avoid building it entirely using a <tt>CONFIG+=no-*</tt> option. You can look at INSTALL for details on what features can be toggled off. For example. <tt>qmake CONFIG+=no-server -recursive</tt> will omit the server component of Mumble.
 +
 
 +
=== ICE Support ===
 +
 
 +
The package libICE-devel isn't available in the Fedora repositories anymore.
 +
You need to compile Ice from source or build Mumble without Ice support using "CONFIG+=no-ice".
 +
 
 +
 
 +
== Arch Linux ==
 +
 
 +
At the time of writing, Murmur is in pacman's repositories, but doesn't support Ice because the zeroc-ice component isn't in the repositories. To build an Ice-capable Murmur, you'll need to setup and be familiar with the [http://wiki.archlinux.org/index.php/Arch_Build_System#Walkthrough Arch Build System], which is outside the scope of this document.
 +
 
 +
Next, I grabbed the [http://aur.archlinux.org/packages.php?ID=13951 zeroc-ice tarball], and extracted it into my ABS directory. I edited the PKGCONFIG to remove all the Java bindings for Ice - because I won't be needing them and didn't want to wait for the Java stuff to install as a dependency, if you feel you might want/need Java/Ice later on, then leave it in - then built and installed the package as per the instructions in the ABS walkthrough.
 +
 
 +
Grab the [http://aur.archlinux.org/packages.php?ID=19980 Murmur-ice tarball] and extract it in your ABS directory. Build, and if you want the stable release, install the resulting package with pacman.
 +
 
 +
If you want to build from git, you should have most of the required runtime dependencies, but you'll also want these for building:
 +
 
 +
pacman -S base-devel git
 +
 
 +
At this point you should be able to continue on to [[#Installing_from_source|Installing from Source]].
 +
 
 +
== G15 Support ==
 +
Some distributions don't package G15 support. In that case the build will fail with a missing "g15daemon_client.h" header file.
 +
 
 +
You can avoid building G15 support using a <tt>qmake CONFIG+=no-g15</tt>. However, if you'd like to build this, it is possible to install it manually by building the G15 stuff from source. Be warned that this process can be a little tricky since you'll be building and installing RPMs manually, as well as building another component from source.
 +
 
 +
 
 +
Finally, the G15 daemon will need to be built from scratch:
 +
 
 +
  $ svn co https://svn.code.sf.net/p/g15daemon/code/trunk g15daemon-code
 +
  $ cd g15daemon-code/g15daemon
 +
  $ autoreconf -i
 +
  $ ./configure
 +
  $ make
 +
  $ make install
 +
 
 +
At this point, if all other dependencies are met, you should be able to build Mumble with G15 support.
 +
 
 +
=== Fedora ===
 +
These instructions are meant to guide you on how to build the G15 library itself on Fedora. On other distributions you'll have to adapt accordingly.
 +
 
 +
First, install some dependencies that you'll need later:
 +
 
 +
  $ dnf install libdaemon-devel libusb-devel libtool svn rpm-build autoconf automake libtool
 +
 
 +
Then pick up the G15 library that's already been packaged (this was linked to in the Bugzilla ticket):
 +
 
 +
  $ wget http://zero456.fedorapeople.org/libg15-1.2.7-1.fc16.src.rpm
 +
  $ rpmbuild --rebuild libg15-1.2.7-1.fc16.src.rpm
 +
 
 +
It's possible you'll run into missing dependencies at this point. Follow the <tt>yum provides</tt> process outlined above to find out what you'll need to install.
 +
 
 +
  $ cd ~/rpmbuild/RPMS
 +
  $ ls
 +
  noarch  x86_64 i686
 +
  $ cd `uname -p` # equates to x86_64 on my system, may be i686 on yours
 +
  $ dnf localinstall libg15*
 +
 
 +
 
 +
 
 +
= Getting the source =
 +
 
 +
The best way to get Mumble's source is using Git.
 +
You can also download the latest ZIP package from GitHub.
 +
 
 +
== Git ==
 +
For compiling from Git make sure you've installed Git:
 +
 
 +
apt-get install git
 +
 
 +
Next, download the Mumble source (this may take a minute. At this time of writing, 2016, November 4th, the size is 43.39 MiB):
 +
git clone git://github.com/mumble-voip/mumble.git mumble
 +
cd mumble
 +
git submodule init
 +
git submodule update
 +
 
 +
To use the current (development) branch, which you most likely do:
 +
git checkout --track -b master origin/master
 +
 
 +
To use the 1.3.x (stable) branch:
 +
git checkout --track -b 1.3.x origin/v1.3.x
 +
 
 +
If you want to update your local branch, make sure you're still in the main git directory ('mumble' in the above example) and use this command:
 +
git pull
 +
 
 +
== Zip package ==
 +
Download the latest zip archive from [https://github.com/mumble-voip/mumble/archive/master.zip GitHub], extract it and fetch the submodules:
 +
 
 +
  unzip mumble-master.zip -d mumble
 +
cd mumble
 +
git submodule init
 +
git submodule update
 +
 
 +
= Compiling Mumble and Murmur =
 +
 
 +
== From Qt Creator ==
 +
 
 +
=== Installing Qt Creator ===
 +
On Debian or Ubuntu:
 +
apt-get install qtcreator
 +
On Fedora:
 +
dnf install qt-creator
 +
On Arch Linux:
 +
pacman -S qtcreator
  
Alternatively, if you are using Debian:
+
=== Building and running Mumble ===
 +
Open the project file '''main.pro''' located in the main directory, choose the build preset you want to use and press on the green arrow that seems like a play button.
 +
Mumble will start automatically once it's ready.
  
qmake-qt4 main.pro
+
== From the terminal ==
make
 
  
===Push to talk===
+
For more configuration options on the qmake command read the supplied INSTALL file.
  
For using push to talk, edit /etc/X11/xorg.conf:
+
Be sure to have the pre-requisites installed and in place for your linux distribution (see the sections above) before you begin compiling it.
  
Section "Extensions"
+
=== Building Mumble ===
    Option "XEVIE" "Enable"
 
EndSection
 
  
Restart the Xserver.
+
qmake -recursive main.pro
 +
make
  
'''Note''': If you use Mumble 1.1.0 or newer, you don't need to enable Xevie, if you run mumble as an user with read access to /dev/input
+
If you want to compile only the Mumble server (aka Murmur), then type:
  
===Text to Speech===
+
qmake -recursive main.pro CONFIG+=no-client
 +
make
  
For text-to-speech voices you will need to install festival and at least a voice. Most distros ship packages for that in their repositories.
+
{{Iconbox begin|type=info}}The available CONFIG options are explained in [https://github.com/mumble-voip/mumble/blob/master/INSTALL INSTALL].{{Iconbox end}}
  
== Run Mumble ==
+
=== Running Mumble ===
  
 
  cd release
 
  cd release
 
  ./mumble
 
  ./mumble
  
== Run Murmur ==
+
== Build errors ==
  
* see [[Running Murmur]]
+
=== one or more PCH files were found, but they were invalid ===
 +
This error means that you have attempted to compile before and now you probably changed some configuration. This lead to the PCH (pre-compiled header file) to be invalid. In order to solve this issue, run <code>make clean</code> before trying to compile again.
 +
 
 +
= Running Murmur =
 +
 
 +
See the dedicated page: [[Running Murmur]]
  
 
[[Category:Development]]
 
[[Category:Development]]
 +
 +
= Text to Speech =
 +
 +
For text-to-speech voices you will need to install speech dispatcher and at least a voice. Most distros ship packages for that in their repositories.

Revision as of 21:21, 19 May 2020

Building Guides

This page is one of a set of Building pages/guides for the different OSes with information on building Mumble/Murmur.

BuildingLinux BuildingFreeBSD BuildingOpenBSD BuildingMacOSX BuildingWindows


Please edit this page if you find a feature or step you think should be included; it's a wiki for a reason! Note you must register and wait about 3 days in order to be able to edit.

Install the dependencies

Mumble 1.2.3 or newer requires at least Qt 4.6.

Debian or Ubuntu

We do not recommend building Mumble on Debian 5 ("Lenny") or older. Please update to Debian 6 ("Squeeze") or newer. You may still be able to build it by playing with package sources to include only required packages from Squeeze, but that is not a supported solution.

You need to make sure you have the needed libraries and dependencies installed to build Mumble and Murmur from source. This can be done in one of those ways:

Icons oxygen 48x48 status task-attention.png
Warning: Note that since Debian 10 the libg15daemon-client-dev package has been removed from their repository. You'll have to use the no-g15 config option or follow G15 support


1.2.x

If your distribution provides packages of the 1.2.x versions, it is sufficient to just run:

apt-get build-dep mumble

Otherwise, you need to install some development packages manually:

apt-get install build-essential pkg-config qt4-dev-tools libqt4-dev libspeex1 \
                libspeex-dev libboost-dev libasound2-dev libssl-dev g++ \
                libspeechd-dev libzeroc-ice-dev ice-slice libpulse-dev slice2cpp \
                libcap-dev libspeexdsp-dev libprotobuf-dev protobuf-compiler \
                libogg-dev libavahi-compat-libdnssd-dev libsndfile1-dev \
                libg15daemon-client-dev libxi-dev 

It is recommended to remove the package qt3-dev-tools if installed.

Icons oxygen 48x48 status task-attention.png
Warning: For Ice-3.4.1 you will need libexpat1-dev and libdb4.6++-dev, which conflicts with newer packages.

1.3.x

Since Mumble Snapshots aren't available in the repository, you need to install development packages manually:

apt-get install build-essential pkg-config qt5-default qttools5-dev-tools libqt5svg5-dev \
                libboost-dev libasound2-dev libssl-dev \
                libspeechd-dev libzeroc-ice-dev libpulse-dev \
                libcap-dev libprotobuf-dev protobuf-compiler \
                libogg-dev libavahi-compat-libdnssd-dev libsndfile1-dev \
                libg15daemon-client-dev libxi-dev 

Now go on to the section Getting the source.

Fedora

1.2.x

dnf builddep mumble

1.3.x

Icons oxygen 48x48 status task-attention.png
Warning: The build has been tested on a Docker builder using the official Fedora image. You may need to install more dependencies on a standard installation.
dnf install make gcc gcc-c++ which qt5* protobuf-compiler protobuf-devel openssl-devel \
            libsndfile-devel alsa-lib-devel avahi-compat-libdns_sd-devel libXi-devel \
            speech-dispatcher-devel flac-devel libogg-devel libvorbis-devel libcap-devel

Finding missing dependencies

If the build fails even after installing the dependencies listed above, you'll need to find out that package name on your own. I use dnf provides to hunt these things down. This command is best learned through a demonstration, so here's an example Mumble build that's missing a dependency:

 $ cd $YOUR_MUMBLE_REPO
 $ qmake CONFIG+="no-g15 no-ice" -recursive
 $ make
 ... omitted lots of build info ....
 mumble_pch.hpp:117:20: fatal error: dns_sd.h: No such file or directory
 compilation terminated.
 make[2]: *** [release/mumble.gch/c++] Error 1
 make[2]: Leaving directory `/home/dafrito/src/mumble/src/mumble'
 make[1]: *** [release] Error 2
 make[1]: Leaving directory `/home/dafrito/src/mumble/src/mumble'
 make: *** [sub-src-mumble-make_default-ordered] Error 2
 $

The key line in the above is the "fatal error: dns_sd.h: No such file or directory" This will always be very close to the bottom of make's output. We'll need to install that header file somehow, so we'll try looking in Fedora's repos first. yum provides lets us search for packages that provide a specified file. In this case, we'll look for packages that give us dns_sd.h

 $ dnf provides '*/dns_sd.h' # be careful not to forget the quotes or the wildcard here
 avahi-compat-libdns_sd-devel-0.6.30-4.fc16.i686 : Header files for the Apple Bonjour mDNSResponder compatibility libraries
 Repo        : fedora
 Matched from:
 Filename    : /usr/include/avahi-compat-libdns_sd/dns_sd.h
 Filename    : /usr/include/dns_sd.h

This lets us know that avahi-compat-libdns_sd-devel provides the needed header, so now we can install that package

 $ dnf install avahi-compat-libdns_sd-devel
 .. lots of installation ..

And now we can try building Mumble again using make. If you're missing multiple packages, then you'll probably need to repeat the above process to satisfy any missing dependencies. If Mumble still doesn't build, you may be able to discern which feature is causing problems and avoid building it entirely using a CONFIG+=no-* option. You can look at INSTALL for details on what features can be toggled off. For example. qmake CONFIG+=no-server -recursive will omit the server component of Mumble.

ICE Support

The package libICE-devel isn't available in the Fedora repositories anymore. You need to compile Ice from source or build Mumble without Ice support using "CONFIG+=no-ice".


Arch Linux

At the time of writing, Murmur is in pacman's repositories, but doesn't support Ice because the zeroc-ice component isn't in the repositories. To build an Ice-capable Murmur, you'll need to setup and be familiar with the Arch Build System, which is outside the scope of this document.

Next, I grabbed the zeroc-ice tarball, and extracted it into my ABS directory. I edited the PKGCONFIG to remove all the Java bindings for Ice - because I won't be needing them and didn't want to wait for the Java stuff to install as a dependency, if you feel you might want/need Java/Ice later on, then leave it in - then built and installed the package as per the instructions in the ABS walkthrough.

Grab the Murmur-ice tarball and extract it in your ABS directory. Build, and if you want the stable release, install the resulting package with pacman.

If you want to build from git, you should have most of the required runtime dependencies, but you'll also want these for building:

pacman -S base-devel git

At this point you should be able to continue on to Installing from Source.

G15 Support

Some distributions don't package G15 support. In that case the build will fail with a missing "g15daemon_client.h" header file.

You can avoid building G15 support using a qmake CONFIG+=no-g15. However, if you'd like to build this, it is possible to install it manually by building the G15 stuff from source. Be warned that this process can be a little tricky since you'll be building and installing RPMs manually, as well as building another component from source.


Finally, the G15 daemon will need to be built from scratch:

 $ svn co https://svn.code.sf.net/p/g15daemon/code/trunk g15daemon-code
 $ cd g15daemon-code/g15daemon
 $ autoreconf -i
 $ ./configure
 $ make
 $ make install

At this point, if all other dependencies are met, you should be able to build Mumble with G15 support.

Fedora

These instructions are meant to guide you on how to build the G15 library itself on Fedora. On other distributions you'll have to adapt accordingly.

First, install some dependencies that you'll need later:

 $ dnf install libdaemon-devel libusb-devel libtool svn rpm-build autoconf automake libtool

Then pick up the G15 library that's already been packaged (this was linked to in the Bugzilla ticket):

 $ wget http://zero456.fedorapeople.org/libg15-1.2.7-1.fc16.src.rpm
 $ rpmbuild --rebuild libg15-1.2.7-1.fc16.src.rpm

It's possible you'll run into missing dependencies at this point. Follow the yum provides process outlined above to find out what you'll need to install.

 $ cd ~/rpmbuild/RPMS
 $ ls
 noarch  x86_64 i686
 $ cd `uname -p` # equates to x86_64 on my system, may be i686 on yours
 $ dnf localinstall libg15*


Getting the source

The best way to get Mumble's source is using Git. You can also download the latest ZIP package from GitHub.

Git

For compiling from Git make sure you've installed Git:

apt-get install git

Next, download the Mumble source (this may take a minute. At this time of writing, 2016, November 4th, the size is 43.39 MiB):

git clone git://github.com/mumble-voip/mumble.git mumble
cd mumble
git submodule init
git submodule update

To use the current (development) branch, which you most likely do:

git checkout --track -b master origin/master

To use the 1.3.x (stable) branch:

git checkout --track -b 1.3.x origin/v1.3.x

If you want to update your local branch, make sure you're still in the main git directory ('mumble' in the above example) and use this command:

git pull

Zip package

Download the latest zip archive from GitHub, extract it and fetch the submodules:

unzip mumble-master.zip -d mumble
cd mumble
git submodule init
git submodule update

Compiling Mumble and Murmur

From Qt Creator

Installing Qt Creator

On Debian or Ubuntu:

apt-get install qtcreator

On Fedora:

dnf install qt-creator

On Arch Linux:

pacman -S qtcreator

Building and running Mumble

Open the project file main.pro located in the main directory, choose the build preset you want to use and press on the green arrow that seems like a play button. Mumble will start automatically once it's ready.

From the terminal

For more configuration options on the qmake command read the supplied INSTALL file.

Be sure to have the pre-requisites installed and in place for your linux distribution (see the sections above) before you begin compiling it.

Building Mumble

qmake -recursive main.pro
make

If you want to compile only the Mumble server (aka Murmur), then type:

qmake -recursive main.pro CONFIG+=no-client
make
Icons oxygen 48x48 actions view-pim-notes.png
The available CONFIG options are explained in INSTALL.

Running Mumble

cd release
./mumble

Build errors

one or more PCH files were found, but they were invalid

This error means that you have attempted to compile before and now you probably changed some configuration. This lead to the PCH (pre-compiled header file) to be invalid. In order to solve this issue, run make clean before trying to compile again.

Running Murmur

See the dedicated page: Running Murmur

Text to Speech

For text-to-speech voices you will need to install speech dispatcher and at least a voice. Most distros ship packages for that in their repositories.