Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package mumble

 Movement on this one had mostly been blocked pending some resolution to
 the zeroc-ice ABI breakage, but since people didn't want to relegate it
 to unstable/bpo for fixing the outstanding issues, and zeroc-ice now has
 a fixed version uploaded, here's one that addresses all the current RC
 bugs, that's about as close to the minimal set of changes needed to put
 it in a sane state for a stable release as seems to be practical.

 It's more than I'd usually be comfortable changing during a freeze, but
 given the number of RC issues that it and its deps shook out in the last
 few weeks before the freeze, and the lack of a maintainer for zeroc-ice,
 I wasn't really expecting this to be a viable candidate at all anymore
 by the time the end of June deadline came - and there didn't seem to be
 much point in fiddling around the edges while -ice was a showstopper.

 But since some people really don't want to give up on saving it just yet,
 I guess we'll see what we can do with the hand we've been dealt :)

 Cheers,
 Ron


unblock mumble/1.2.3-349-g315b5f5-2


 debian/MurmurPHP.ini                        |    1 -
 debian/changelog                            |   41 ++
 debian/control                              |   48 ---
 debian/mumble-server-web.README.Debian      |    3 -
 debian/mumble-server-web.conf               |   10 -
 debian/mumble-server-web.dirs               |    1 -
 debian/mumble-server-web.install            |    3 -
 debian/mumble-server-web.links              |    1 -
 debian/mumble-server-web.postinst           |   35 --
 debian/patches/10-use-celt-guard            |  430 ++++++++++++++++++++++++++++
 debian/patches/15-fix-noise-in-opus-mode    |   31 ++
 debian/patches/20-add-opus-threshold-option |  149 +++++++++
 debian/patches/25-add-codec-warnings        |   47 +++
 debian/patches/series                       |    4 
 debian/rules                                |   34 --
 debian/watch                                |    2 
 src/mumble/mumble.pro                       |   13 
 17 files changed, 737 insertions(+), 116 deletions(-)


diff -Nru mumble-1.2.3-348-g317f5a0/debian/changelog 
mumble-1.2.3-349-g315b5f5/debian/changelog
--- mumble-1.2.3-348-g317f5a0/debian/changelog  2012-05-25 04:03:03.000000000 
+0930
+++ mumble-1.2.3-349-g315b5f5/debian/changelog  2012-07-09 03:12:05.000000000 
+0930
@@ -1,3 +1,44 @@
+mumble (1.2.3-349-g315b5f5-2) unstable; urgency=low
+
+  * Drop the hard dep on boost-1.46, that's been removed now.  Closes: #678759
+    Drop the | dep on alternative boost, since that's what got this package
+    overlooked when people were removing boost-1.46.
+
+  * Drop the | dep on libgl-dev, that's been gone a long time now too and
+    leaves us vulnerable to a similar problem.
+
+  * Drop the mumble-server-web package altogether.  Upstream reports that it
+    is unmaintained and "pretty useless anyway", which seems to be well backed
+    up by the fact that a call to Ice_intversion() was added in March 2010,
+    and that function has never existed in any version of zeroc-ice ever.
+    A function named Ice_intVersion was added to -ice 3.2.1 though ...
+    Since it's taken this long for anyone to notice, we can be pretty sure that
+    there aren't any actual users of it.  Closes: #676815, #676816
+
+  * Build-Depend on the unfycked version of zeroc-ice, so the ABI broken one
+    doesn't accidentally get used by an out of date buildd.  Closes: #675955
+    Force building with gcc-4.6, since that's required for zeroc-ice deps now,
+    until they get their act together and write some actually legal code.
+
+  * Cherry-pick the upstream patches to fix the "audio glitches", and provide
+    codec thresholds and warnings.  Closes: #675971 since it fixes the only
+    actual bug reported there.
+
+  * Drop the watch file, since this has been building snapshots from git now
+    since 1.2.3-3 (and before).
+
+ -- Ron Lee <r...@debian.org>  Sun, 08 Jul 2012 06:18:50 +0930
+
+mumble (1.2.3-349-g315b5f5-1) unstable; urgency=low
+
+  * Adopt the package.  Closes: #674719
+  * Drop the dependency on the celt package.  Closes: #674650
+  * Add the upstream patch to enable opus support.
+  * Explicitly disable the bundled libs, don't rely on system lib detection
+    doing that as a side-effect.
+
+ -- Ron Lee <r...@debian.org>  Mon, 04 Jun 2012 03:56:35 +0930
+
 mumble (1.2.3-348-g317f5a0-1) unstable; urgency=low
 
   * New upstream snapshot from 20.05.2012.
diff -Nru mumble-1.2.3-348-g317f5a0/debian/control 
mumble-1.2.3-349-g315b5f5/debian/control
--- mumble-1.2.3-348-g317f5a0/debian/control    2012-05-25 04:03:03.000000000 
+0930
+++ mumble-1.2.3-349-g315b5f5/debian/control    2012-07-09 03:12:05.000000000 
+0930
@@ -1,28 +1,26 @@
 Source: mumble
 Section: sound
 Priority: optional
-Homepage: http://mumble.sourceforge.net/
-Maintainer: Debian VoIP Team <pkg-voip-maintain...@lists.alioth.debian.org>
-Uploaders: Patrick Matthäi <pmatth...@debian.org>,
- Thorvald Natvig <thorv...@debian.org>
-Build-Depends: debhelper (>= 7.0.8),
+Maintainer: Ron Lee <r...@debian.org>
+Uploaders: Thorvald Natvig <thorv...@debian.org>
+Build-Depends: debhelper (>= 7.0.8), g++-4.6,
  po-debconf,
- libboost1.46-dev | libboost-dev (>= 1.38.0),
- libboost-python1.46-dev | libboost-python-dev (>= 1.38.0),
+ libboost-dev (>= 1.42),
+ libboost-python-dev (>= 1.42),
  libqt4-dev (>= 4.5.0),
  hardening-wrapper,
- libgl1-mesa-dev | libgl-dev,
+ libgl1-mesa-dev,
  libasound2-dev,
  libpulse-dev,
  libogg-dev,
  libspeex-dev,
  libspeexdsp-dev,
- libcelt-dev (>= 0.7.0),
+ libopus-dev,
  libsndfile1-dev,
  libssl-dev,
- libzeroc-ice34-dev | libzeroc-ice33-dev | libzeroc-ice32-dev | 
libzeroc-ice-dev,
- ice34-translators | ice33-translators | ice32-translators | ice-translators,
- ice34-slice | ice33-slice | ice32-slice | ice-slice,
+ libzeroc-ice34-dev (>= 3.4.2-8.1),
+ ice34-translators (>= 3.4.2-8.1),
+ ice34-slice (>= 3.4.2-8.1),
  libg15daemon-client-dev,
  libspeechd-dev,
  protobuf-compiler,
@@ -30,15 +28,15 @@
  libavahi-compat-libdnssd-dev,
  libxi-dev,
  libcap-dev [linux-any]
-Standards-Version: 3.9.3
-Vcs-Svn: svn://svn.debian.org/pkg-voip/mumble/trunk/
-Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-voip/mumble/
+Standards-Version: 3.9.3.1
+Homepage: http://mumble.sourceforge.net/
+Vcs-Git: git://git.debian.org/users/ron/mumble.git
+Vcs-Browser: http://git.debian.org/?p=users/ron/mumble.git;a=summary
 
 Package: mumble
 Architecture: any
 Depends: ${shlibs:Depends},
  ${misc:Depends},
- libcelt0 (>= 0.7.0) | libcelt0-0 (>= 0.7.1~),
  libqt4-sql-sqlite,
  lsb-release
 Recommends: speech-dispatcher
@@ -87,21 +85,3 @@
  .
  This package contains the debugging symbols for the 'mumble' and
  'mumble-server' packages.
-
-Package: mumble-server-web
-Architecture: all
-Depends: ${misc:Depends},
- ${perl:Depends},
- mumble-server (>= ${binary:Version}),
- apache2,
- exim4 | mail-transport-agent,
- libnet-dbus-perl,
- libcgi-session-perl,
- libhtml-template-perl,
- php-zeroc-ice,
- ice34-translators | ice33-translators | ice32-translators | ice-translators,
- ice34-slice | ice33-slice | ice32-slice | ice-slice
-Description: Web scripts for mumble-server
- Murmur (in the package mumble-server) is the VoIP server component for
- Mumble. This package contains web scripts for registering users, uploading
- custom textures and showing a list of currently connected users.
diff -Nru mumble-1.2.3-348-g317f5a0/debian/mumble-server-web.conf 
mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.conf
--- mumble-1.2.3-348-g317f5a0/debian/mumble-server-web.conf     2012-05-25 
04:03:04.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.conf     1970-01-01 
09:30:00.000000000 +0930
@@ -1,10 +0,0 @@
-Alias /mumble-server /usr/share/mumble-server-web/www/
-
-<Directory /usr/share/mumble-server-web/www/>
-       Options FollowSymLinks ExecCGI
-       AllowOverride None
-       AddHandler cgi-script .cgi
-       DirectoryIndex index.php
-       Order allow,deny
-       Allow from all
-</Directory>
diff -Nru mumble-1.2.3-348-g317f5a0/debian/mumble-server-web.dirs 
mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.dirs
--- mumble-1.2.3-348-g317f5a0/debian/mumble-server-web.dirs     2012-05-25 
04:03:04.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.dirs     1970-01-01 
09:30:00.000000000 +0930
@@ -1 +0,0 @@
-usr/share/mumble-server-web/www
diff -Nru mumble-1.2.3-348-g317f5a0/debian/mumble-server-web.install 
mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.install
--- mumble-1.2.3-348-g317f5a0/debian/mumble-server-web.install  2012-05-25 
04:03:04.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.install  1970-01-01 
09:30:00.000000000 +0930
@@ -1,3 +0,0 @@
-debian/MurmurPHP.ini etc/php5/conf.d
-debian/mumble-server-web.conf etc/apache2/conf.d
-scripts/weblist.php usr/share/mumble-server-web/www
diff -Nru mumble-1.2.3-348-g317f5a0/debian/mumble-server-web.links 
mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.links
--- mumble-1.2.3-348-g317f5a0/debian/mumble-server-web.links    2012-05-25 
04:03:04.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.links    1970-01-01 
09:30:00.000000000 +0930
@@ -1 +0,0 @@
-usr/share/mumble-server-web/www/weblist.php 
usr/share/mumble-server-web/www/index.php
diff -Nru mumble-1.2.3-348-g317f5a0/debian/mumble-server-web.postinst 
mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.postinst
--- mumble-1.2.3-348-g317f5a0/debian/mumble-server-web.postinst 2012-05-25 
04:03:04.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.postinst 1970-01-01 
09:30:00.000000000 +0930
@@ -1,35 +0,0 @@
-#! /bin/sh
-# postinst script for mumble-server-web
-
-set -e
-
-# summary of how this script can be called:
-#        * <postinst> `configure' <most-recently-configured-version>
-#        * <old-postinst> `abort-upgrade' <new version>
-#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-#          <new-version>
-#        * <postinst> `abort-remove'
-#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-#          <failed-install-package> <version> `removing'
-#          <conflicting-package> <version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-
-case "$1" in
-       configure)
-               # Restart apache2 to load new config
-               invoke-rc.d --quiet apache2 reload
-       ;;
-
-       abort-upgrade|abort-remove|abort-deconfigure)
-       ;;
-
-       *)
-               echo "postinst called with unknown argument \`$1'" >&2
-               exit 1
-       ;;
-esac
-
-#DEBHELPER#
-
-exit 0
diff -Nru mumble-1.2.3-348-g317f5a0/debian/mumble-server-web.README.Debian 
mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.README.Debian
--- mumble-1.2.3-348-g317f5a0/debian/mumble-server-web.README.Debian    
2012-05-25 04:03:04.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.README.Debian    
1970-01-01 09:30:00.000000000 +0930
@@ -1,3 +0,0 @@
-If you have got Apache running, you can get a server list on:
-
-       http://localhost/mumble-server/
diff -Nru mumble-1.2.3-348-g317f5a0/debian/MurmurPHP.ini 
mumble-1.2.3-349-g315b5f5/debian/MurmurPHP.ini
--- mumble-1.2.3-348-g317f5a0/debian/MurmurPHP.ini      2012-05-25 
04:03:03.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/debian/MurmurPHP.ini      1970-01-01 
09:30:00.000000000 +0930
@@ -1 +0,0 @@
-ice.slice=/usr/share/slice/Murmur.ice
diff -Nru mumble-1.2.3-348-g317f5a0/debian/patches/10-use-celt-guard 
mumble-1.2.3-349-g315b5f5/debian/patches/10-use-celt-guard
--- mumble-1.2.3-348-g317f5a0/debian/patches/10-use-celt-guard  1970-01-01 
09:30:00.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/debian/patches/10-use-celt-guard  2012-07-09 
03:12:05.000000000 +0930
@@ -0,0 +1,430 @@
+diff --git a/src/mumble/Audio.cpp b/src/mumble/Audio.cpp
+index ef78f81..dc2352d 100644
+--- a/src/mumble/Audio.cpp
++++ b/src/mumble/Audio.cpp
+@@ -49,6 +49,7 @@ LoopUser LoopUser::lpLoopy;
+ CodecInit ciInit;
+ 
+ void CodecInit::initialize() {
++#ifdef USE_CELT
+       CELTCodec *codec = NULL;
+ 
+       codec = new CELTCodec070(QLatin1String("0.7.0"));
+@@ -103,12 +104,15 @@ void CodecInit::initialize() {
+                       delete codec;
+               }
+       }
++#endif
+ }
+ 
+ void CodecInit::destroy() {
++#ifdef USE_CELT
+       foreach(CELTCodec *codec, g.qmCodecs)
+               delete codec;
+       g.qmCodecs.clear();
++#endif
+ }
+ 
+ #ifdef Q_CC_GNU
+@@ -123,6 +127,7 @@ extern "C" {
+ };
+ #endif
+ 
++#ifdef USE_CELT
+ CELTCodec::CELTCodec(const QString &version) {
+       bValid = false;
+       cmMode = NULL;
+@@ -311,6 +316,7 @@ int CELTCodec011::encode(CELTEncoder *st, const celt_int16 
*pcm, unsigned char *
+ int CELTCodec011::decode_float(CELTDecoder *st, const unsigned char *data, 
int len, float *pcm) {
+       return celt_decode_float(st, data, len, pcm, SAMPLE_RATE / 100);
+ }
++#endif // USE_CELT
+ 
+ LoopUser::LoopUser() {
+       qsName = QLatin1String("Loopy");
+diff --git a/src/mumble/Audio.h b/src/mumble/Audio.h
+index 3aa851d..d91027a 100644
+--- a/src/mumble/Audio.h
++++ b/src/mumble/Audio.h
+@@ -32,7 +32,10 @@
+ #define AUDIO_H_
+ 
+ #include <stdint.h>
++
++#ifdef USE_CELT
+ #include <celt.h>
++#endif
+ 
+ #include <QtCore/QByteArray>
+ #include <QtCore/QLibrary>
+@@ -52,6 +55,7 @@
+ 
+ typedef QPair<QString,QVariant> audioDevice;
+ 
++#ifdef USE_CELT
+ class CELTCodec {
+       private:
+               Q_DISABLE_COPY(CELTCodec)
+@@ -139,6 +143,7 @@ class CELTCodec011 : public CELTCodec {
+               virtual int encode(CELTEncoder *st, const celt_int16 *pcm, 
unsigned char *compressed, int nbCompressedBytes);
+               virtual int decode_float(CELTDecoder *st, const unsigned char 
*data, int len, float *pcm);
+ };
++#endif  // USE_CELT
+ 
+ class LoopUser : public ClientUser {
+       private:
+diff --git a/src/mumble/AudioInput.cpp b/src/mumble/AudioInput.cpp
+index c663c3c..624e1df 100644
+--- a/src/mumble/AudioInput.cpp
++++ b/src/mumble/AudioInput.cpp
+@@ -100,10 +100,16 @@ AudioInput::AudioInput() : 
opusBuffer(g.s.iFramesPerPacket * (SAMPLE_RATE / 100)
+ 
+       g.iAudioBandwidth = getNetworkBandwidth(iAudioQuality, iAudioFrames);
+ 
++#ifdef USE_CELT
+       umtType = MessageHandler::UDPVoiceCELTAlpha;
++#else
++      umtType = MessageHandler::UDPVoiceOpus;
++#endif
+ 
++#ifdef USE_CELT
+       cCodec = NULL;
+       ceEncoder = NULL;
++#endif
+ 
+       iSampleRate = SAMPLE_RATE;
+       iFrameSize = SAMPLE_RATE / 100;
+@@ -166,9 +172,11 @@ AudioInput::~AudioInput() {
+               opus_encoder_destroy(opusState);
+ #endif
+ 
++#ifdef USE_CELT
+       if (ceEncoder) {
+               cCodec->celt_encoder_destroy(ceEncoder);
+       }
++#endif
+ 
+       foreach(short *buf, qlEchoFrames)
+               delete [] buf;
+@@ -610,6 +618,7 @@ bool AudioInput::selectCodec() {
+       }
+ 
+       if (!useOpus) {
++#ifdef USE_CELT
+               CELTCodec *switchto = NULL;
+               if ((!g.uiSession || (g.s.lmLoopMode == Settings::Local)) && 
(!g.qmCodecs.isEmpty())) {
+                       // Use latest for local loopback
+@@ -640,6 +649,7 @@ bool AudioInput::selectCodec() {
+               }
+ 
+               if (!cCodec)
++#endif
+                       return false;
+       }
+ 
+@@ -647,6 +657,7 @@ bool AudioInput::selectCodec() {
+       if (useOpus) {
+               umtType = MessageHandler::UDPVoiceOpus;
+       } else {
++#ifdef USE_CELT
+               if (!g.uiSession) {
+                       umtType = MessageHandler::UDPVoiceCELTAlpha;
+               } else {
+@@ -659,6 +670,7 @@ bool AudioInput::selectCodec() {
+                               qWarning() << "Couldn't find message type for 
codec version" << v;
+                       }
+               }
++#endif
+       }
+ 
+       if (umtType != previousType) {
+@@ -688,6 +700,7 @@ int AudioInput::encodeOpusFrame(short *source, int size, 
unsigned char *buffer)
+ 
+ int AudioInput::encodeCELTFrame(short *psSource, unsigned char *buffer) {
+       int len = 0;
++#ifdef USE_CELT
+       if (!cCodec)
+               return len;
+ 
+@@ -699,7 +712,7 @@ int AudioInput::encodeCELTFrame(short *psSource, unsigned 
char *buffer) {
+       cCodec->celt_encoder_ctl(ceEncoder, CELT_SET_VBR_RATE(iAudioQuality));
+       len = cCodec->encode(ceEncoder, psSource, buffer, qMin(iAudioQuality / 
(8 * 100), 127));
+       iBitrate = len * 100 * 8;
+-
++#endif
+       return len;
+ }
+ 
+@@ -841,12 +854,15 @@ void AudioInput::encodeAudioFrame() {
+       if (!selectCodec())
+               return;
+ 
++#ifdef USE_CELT
+       if (umtType == MessageHandler::UDPVoiceCELTAlpha || umtType == 
MessageHandler::UDPVoiceCELTBeta) {
+               len = encodeCELTFrame(psSource, buffer);
+               if (len == 0)
+                       return;
+               ++iBufferedFrames;
+-      } else if (umtType == MessageHandler::UDPVoiceOpus) {
++      } else
++#endif
++      if (umtType == MessageHandler::UDPVoiceOpus) {
+               encoded = false;
+               opusBuffer.insert(opusBuffer.end(), psSource, psSource + 
iFrameSize);
+               ++iBufferedFrames;
+diff --git a/src/mumble/AudioInput.h b/src/mumble/AudioInput.h
+index c7b8f98..1ffbf1d 100644
+--- a/src/mumble/AudioInput.h
++++ b/src/mumble/AudioInput.h
+@@ -117,8 +117,10 @@ class AudioInput : public QThread {
+               SpeexPreprocessState *sppPreprocess;
+               SpeexEchoState *sesEcho;
+ 
++#ifdef USE_CELT
+               CELTCodec *cCodec;
+               CELTEncoder *ceEncoder;
++#endif
+ 
+               int iAudioQuality;
+               int iAudioFrames;
+diff --git a/src/mumble/AudioOutputSpeech.cpp 
b/src/mumble/AudioOutputSpeech.cpp
+index c09dabc..5939fe6 100644
+--- a/src/mumble/AudioOutputSpeech.cpp
++++ b/src/mumble/AudioOutputSpeech.cpp
+@@ -48,8 +48,10 @@ AudioOutputSpeech::AudioOutputSpeech(ClientUser *user, 
unsigned int freq, Messag
+       umtType = type;
+       iMixerFreq = freq;
+ 
++#ifdef USE_CELT
+       cCodec = NULL;
+       cdDecoder = NULL;
++#endif
+       dsSpeex = NULL;
+       opusState = NULL;
+ 
+@@ -113,9 +115,12 @@ AudioOutputSpeech::~AudioOutputSpeech() {
+       if (opusState)
+               opus_decoder_destroy(opusState);
+ #endif
++#ifdef USE_CELT
+       if (cdDecoder) {
+               cCodec->celt_decoder_destroy(cdDecoder);
+-      } else if (dsSpeex) {
++      } else
++#endif
++      if (dsSpeex) {
+               speex_bits_destroy(&sbBits);
+               speex_decoder_destroy(dsSpeex);
+       }
+@@ -302,6 +307,7 @@ bool AudioOutputSpeech::needSamples(unsigned int snum) {
+                       if (! qlFrames.isEmpty()) {
+                               QByteArray qba = qlFrames.takeFirst();
+ 
++#ifdef USE_CELT
+                               if (umtType == 
MessageHandler::UDPVoiceCELTAlpha || umtType == 
MessageHandler::UDPVoiceCELTBeta) {
+                                       int wantversion = (umtType == 
MessageHandler::UDPVoiceCELTAlpha) ? g.iCodecAlpha : g.iCodecBeta;
+                                       if ((p == &LoopUser::lpLoopy) && (! 
g.qmCodecs.isEmpty())) {
+@@ -323,7 +329,9 @@ bool AudioOutputSpeech::needSamples(unsigned int snum) {
+                                               cCodec->decode_float(cdDecoder, 
qba.isEmpty() ? NULL : reinterpret_cast<const unsigned char 
*>(qba.constData()), qba.size(), pOut);
+                                       else
+                                               memset(pOut, 0, sizeof(float) * 
iFrameSize);
+-                              } else if (umtType == 
MessageHandler::UDPVoiceOpus) {
++                              } else
++#endif
++                              if (umtType == MessageHandler::UDPVoiceOpus) {
+ #ifdef USE_OPUS
+                                       decodedSamples = 
opus_decode_float(opusState, qba.isEmpty() ? NULL : reinterpret_cast<const 
unsigned char *>(qba.constData()), qba.size(), pOut, iAudioBufferSize, 0);
+                                       iOutputSize = static_cast<unsigned 
int>(ceilf(static_cast<float>(decodedSamples * iMixerFreq) / 
static_cast<float>(iSampleRate)));
+@@ -369,12 +377,15 @@ bool AudioOutputSpeech::needSamples(unsigned int snum) {
+                               if (qlFrames.isEmpty() && bHasTerminator)
+                                       nextalive = false;
+                       } else {
++#ifdef USE_CELT
+                               if (umtType == 
MessageHandler::UDPVoiceCELTAlpha || umtType == 
MessageHandler::UDPVoiceCELTBeta) {
+                                       if (cdDecoder)
+                                               cCodec->decode_float(cdDecoder, 
NULL, 0, pOut);
+                                       else
+                                               memset(pOut, 0, sizeof(float) * 
iFrameSize);
+-                              } else if (umtType == 
MessageHandler::UDPVoiceOpus) {
++                              } else
++#endif
++                              if (umtType == MessageHandler::UDPVoiceOpus) {
+ #ifdef USE_OPUS
+                                       opus_decode_float(opusState, NULL, 0, 
pOut, iFrameSize, 0);
+ #endif
+diff --git a/src/mumble/AudioOutputSpeech.h b/src/mumble/AudioOutputSpeech.h
+index d123c8a..1199585 100644
+--- a/src/mumble/AudioOutputSpeech.h
++++ b/src/mumble/AudioOutputSpeech.h
+@@ -36,14 +36,20 @@
+ #include <speex/speex.h>
+ #include <speex/speex_resampler.h>
+ #include <speex/speex_jitter.h>
++
++#ifdef USE_CELT
+ #include <celt.h>
++#endif
+ 
+ #include <QtCore/QMutex>
+ 
+ #include "AudioOutputUser.h"
+ #include "Message.h"
+ 
++#ifdef USE_CELT
+ class CELTCodec;
++#endif
++
+ class ClientUser;
+ struct OpusDecoder;
+ 
+@@ -74,8 +80,10 @@ class AudioOutputSpeech : public AudioOutputUser {
+               JitterBuffer *jbJitter;
+               int iMissCount;
+ 
++#ifdef USE_CELT
+               CELTCodec *cCodec;
+               CELTDecoder *cdDecoder;
++#endif
+ 
+               OpusDecoder *opusState;
+ 
+diff --git a/src/mumble/Global.h b/src/mumble/Global.h
+index f50d8dd..d4669d8 100644
+--- a/src/mumble/Global.h
++++ b/src/mumble/Global.h
+@@ -54,7 +54,9 @@ class Overlay;
+ class LCD;
+ class BonjourClient;
+ class OverlayClient;
++#ifdef USE_CELT
+ class CELTCodec;
++#endif
+ 
+ class QNetworkAccessManager;
+ 
+@@ -92,7 +94,9 @@ public:
+       int iMaxBandwidth;
+       int iAudioBandwidth;
+       QDir qdBasePath;
++#ifdef USE_CELT
+       QMap<int, CELTCodec *> qmCodecs;
++#endif
+       int iCodecAlpha, iCodecBeta;
+       bool bPreferAlpha;
+       bool bOpus;
+diff --git a/src/mumble/MainWindow.cpp b/src/mumble/MainWindow.cpp
+index 1ff8eb1..178f2de 100644
+--- a/src/mumble/MainWindow.cpp
++++ b/src/mumble/MainWindow.cpp
+@@ -1046,12 +1046,16 @@ static const QString currentCodec() {
+       if (g.bOpus)
+               return QLatin1String("Opus");
+ 
++#ifdef USE_CELT
+       int v = g.bPreferAlpha ? g.iCodecAlpha : g.iCodecBeta;
+       CELTCodec* cc = g.qmCodecs.value(v);
+       if (cc)
+               return QString::fromLatin1("CELT %1").arg(cc->version());
+       else
+               return QString::fromLatin1("CELT %1").arg(QString::number(v, 
16));
++#else
++      return QLatin1String("None");
++#endif
+ }
+ 
+ void MainWindow::on_qaServerInformation_triggered() {
+diff --git a/src/mumble/Messages.cpp b/src/mumble/Messages.cpp
+index 8806c0d..2aabbda 100644
+--- a/src/mumble/Messages.cpp
++++ b/src/mumble/Messages.cpp
+@@ -735,6 +735,7 @@ void MainWindow::msgCodecVersion(const 
MumbleProto::CodecVersion &msg) {
+       g.bOpus = msg.opus();
+ #endif
+ 
++#ifdef USE_CELT
+       // Workaround for broken 1.2.2 servers
+       if (g.sh && g.sh->uiVersion == 0x010202 && alpha != -1 && alpha == 
beta) {
+               if (pref)
+@@ -768,6 +769,7 @@ void MainWindow::msgCodecVersion(const 
MumbleProto::CodecVersion &msg) {
+       } else {
+               warned = false;
+       }
++#endif
+ }
+ 
+ void MainWindow::msgUserStats(const MumbleProto::UserStats &msg) {
+diff --git a/src/mumble/ServerHandler.cpp b/src/mumble/ServerHandler.cpp
+index b5bbc96..d0feb69 100644
+--- a/src/mumble/ServerHandler.cpp
++++ b/src/mumble/ServerHandler.cpp
+@@ -189,8 +189,10 @@ void ServerHandler::udpReady() {
+                                       
accUDP(static_cast<double>(tTimestamp.elapsed() - t) / 1000.0);
+                               }
+                               break;
++#ifdef USE_CELT
+                       case MessageHandler::UDPVoiceCELTAlpha:
+                       case MessageHandler::UDPVoiceCELTBeta:
++#endif
+                       case MessageHandler::UDPVoiceSpeex:
+                       case MessageHandler::UDPVoiceOpus:
+                               handleVoicePacket(msgFlags, pds, msgType);
+@@ -420,8 +422,10 @@ void ServerHandler::message(unsigned int msgType, const 
QByteArray &qbaMsg) {
+               PacketDataStream pds(qbaMsg.constData() + 1, qbaMsg.size());
+ 
+               switch (umsgType) {
++#ifdef USE_CELT
+                       case MessageHandler::UDPVoiceCELTAlpha:
+                       case MessageHandler::UDPVoiceCELTBeta:
++#endif
+                       case MessageHandler::UDPVoiceSpeex:
+                               handleVoicePacket(msgFlags, pds, umsgType);
+                               break;
+@@ -539,9 +543,11 @@ void ServerHandler::serverConnectionConnected() {
+       foreach(const QString &qs, tokens)
+               mpa.add_tokens(u8(qs));
+ 
++#ifdef USE_CELT
+       QMap<int, CELTCodec *>::const_iterator i;
+       for (i=g.qmCodecs.constBegin(); i != g.qmCodecs.constEnd(); ++i)
+               mpa.add_celt_versions(i.key());
++#endif
+ #ifdef USE_OPUS
+       mpa.set_opus(true);
+ #else
+diff --git a/src/mumble/UserInformation.cpp b/src/mumble/UserInformation.cpp
+index af1dbe3..36fdde5 100644
+--- a/src/mumble/UserInformation.cpp
++++ b/src/mumble/UserInformation.cpp
+@@ -160,6 +160,7 @@ void UserInformation::update(const MumbleProto::UserStats 
&msg) {
+               qlVersion->setText(tr("%1 
(%2)").arg(MumbleVersion::toString(mpv.version())).arg(u8(mpv.release())));
+               qlOS->setText(tr("%1 
(%2)").arg(u8(mpv.os())).arg(u8(mpv.os_version())));
+       }
++#ifdef USE_CELT
+       if (msg.celt_versions_size() > 0) {
+               QStringList qsl;
+               for (int i=0;i<msg.celt_versions_size(); ++i) {
+@@ -172,6 +173,7 @@ void UserInformation::update(const MumbleProto::UserStats 
&msg) {
+               }
+               qlCELT->setText(qsl.join(tr(", ")));
+       }
++#endif
+       if (msg.has_opus()) {
+               qlOpus->setText(msg.opus() ? tr("Supported") : tr("Not 
Supported"));
+       }
+diff --git a/src/mumble/mumble_pch.hpp b/src/mumble/mumble_pch.hpp
+index d8c4dbd..2089c94 100644
+--- a/src/mumble/mumble_pch.hpp
++++ b/src/mumble/mumble_pch.hpp
+@@ -52,8 +52,12 @@
+ #define __int64_t __int64
+ #include <sndfile.h>
+ #undef __int64_t
++
++#ifdef USE_CELT
+ #include <celt.h>
+ #include <celt_header.h>
++#endif
++
+ #include <speex/speex.h>
+ #include <speex/speex_header.h>
+ #include <speex/speex_jitter.h>
diff -Nru mumble-1.2.3-348-g317f5a0/debian/patches/15-fix-noise-in-opus-mode 
mumble-1.2.3-349-g315b5f5/debian/patches/15-fix-noise-in-opus-mode
--- mumble-1.2.3-348-g317f5a0/debian/patches/15-fix-noise-in-opus-mode  
1970-01-01 09:30:00.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/debian/patches/15-fix-noise-in-opus-mode  
2012-07-09 03:12:05.000000000 +0930
@@ -0,0 +1,31 @@
+diff --git a/src/mumble/AudioOutputSpeech.cpp 
b/src/mumble/AudioOutputSpeech.cpp
+index 5939fe6..e67fc87 100644
+--- a/src/mumble/AudioOutputSpeech.cpp
++++ b/src/mumble/AudioOutputSpeech.cpp
+@@ -334,8 +334,6 @@ bool AudioOutputSpeech::needSamples(unsigned int snum) {
+                               if (umtType == MessageHandler::UDPVoiceOpus) {
+ #ifdef USE_OPUS
+                                       decodedSamples = 
opus_decode_float(opusState, qba.isEmpty() ? NULL : reinterpret_cast<const 
unsigned char *>(qba.constData()), qba.size(), pOut, iAudioBufferSize, 0);
+-                                      iOutputSize = static_cast<unsigned 
int>(ceilf(static_cast<float>(decodedSamples * iMixerFreq) / 
static_cast<float>(iSampleRate)));
+-                                      resizeBuffer(iBufferFilled + 
iOutputSize);
+ #endif
+                               } else {
+                                       if (qba.isEmpty()) {
+@@ -387,7 +385,7 @@ bool AudioOutputSpeech::needSamples(unsigned int snum) {
+ #endif
+                               if (umtType == MessageHandler::UDPVoiceOpus) {
+ #ifdef USE_OPUS
+-                                      opus_decode_float(opusState, NULL, 0, 
pOut, iFrameSize, 0);
++                                      decodedSamples = 
opus_decode_float(opusState, NULL, 0, pOut, iFrameSize, 0);
+ #endif
+                               } else {
+                                       speex_decode(dsSpeex, NULL, pOut);
+@@ -410,7 +408,7 @@ bool AudioOutputSpeech::needSamples(unsigned int snum) {
+               }
+ nextframe:
+               spx_uint32_t inlen = decodedSamples;
+-              spx_uint32_t outlen = iOutputSize;
++              spx_uint32_t outlen = static_cast<unsigned 
int>(ceilf(static_cast<float>(decodedSamples * iMixerFreq) / 
static_cast<float>(iSampleRate)));
+               if (srs && bLastAlive)
+                       speex_resampler_process_float(srs, 0, fResamplerBuffer, 
&inlen, pfBuffer + iBufferFilled, &outlen);
+               iBufferFilled += outlen;
diff -Nru mumble-1.2.3-348-g317f5a0/debian/patches/20-add-opus-threshold-option 
mumble-1.2.3-349-g315b5f5/debian/patches/20-add-opus-threshold-option
--- mumble-1.2.3-348-g317f5a0/debian/patches/20-add-opus-threshold-option       
1970-01-01 09:30:00.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/debian/patches/20-add-opus-threshold-option       
2012-07-09 03:12:05.000000000 +0930
@@ -0,0 +1,149 @@
+diff --git a/scripts/murmur.ini b/scripts/murmur.ini
+index f941531..87d49fd 100644
+--- a/scripts/murmur.ini
++++ b/scripts/murmur.ini
+@@ -86,6 +86,10 @@ bandwidth=72000
+ # Maximum number of concurrent clients allowed.
+ users=100
+ 
++# Amount of users with Opus support needed to force Opus usage, in percent.
++# 0 = Always enable Opus, 100 = enable Opus if it's supported by all clients.
++#opusthreshold=1
++
+ # Regular expression used to validate channel names
+ # (note that you have to escape backslashes with \ )
+ #channelname=[ \\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\\|]+
+diff --git a/src/murmur/Messages.cpp b/src/murmur/Messages.cpp
+index 0d7a5ed..4b6be72 100644
+--- a/src/murmur/Messages.cpp
++++ b/src/murmur/Messages.cpp
+@@ -391,7 +391,9 @@ void Server::msgAuthenticate(ServerUser *uSource, 
MumbleProto::Authenticate &msg
+               mpsug.set_positional(qvSuggestPositional.toBool());
+       if (! qvSuggestPushToTalk.isNull())
+               mpsug.set_push_to_talk(qvSuggestPushToTalk.toBool());
+-      sendMessage(uSource, mpsug);
++      if (mpsug.ByteSize() > 0) {
++              sendMessage(uSource, mpsug);
++      }
+ 
+       log(uSource, "Authenticated");
+ 
+diff --git a/src/murmur/Meta.cpp b/src/murmur/Meta.cpp
+index dc55b3a..4333ae2 100644
+--- a/src/murmur/Meta.cpp
++++ b/src/murmur/Meta.cpp
+@@ -81,6 +81,8 @@ MetaParams::MetaParams() {
+       uiUid = uiGid = 0;
+ #endif
+ 
++      iOpusThreshold = 1;
++
+       qrUserName = 
QRegExp(QLatin1String("[-=\\w\\[\\]\\{\\}\\(\\)\\@\\|\\.]+"));
+       qrChannelName = QRegExp(QLatin1String("[ 
\\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\\|]+"));
+ 
+@@ -283,6 +285,8 @@ void MetaParams::read(QString fname) {
+       if (qvSuggestPushToTalk.toString().trimmed().isEmpty())
+               qvSuggestPushToTalk = QVariant();
+ 
++      iOpusThreshold = qsSettings->value("opusthreshold", 
iOpusThreshold).toInt();
++
+ #ifdef Q_OS_UNIX
+       qsName = qsSettings->value("uname").toString();
+       if (geteuid() == 0) {
+@@ -441,6 +445,7 @@ void MetaParams::read(QString fname) {
+       qmConfig.insert(QLatin1String("suggestversion"), 
qvSuggestVersion.isNull() ? QString() : qvSuggestVersion.toString());
+       qmConfig.insert(QLatin1String("suggestpositional"), 
qvSuggestPositional.isNull() ? QString() : qvSuggestPositional.toString());
+       qmConfig.insert(QLatin1String("suggestpushtotalk"), 
qvSuggestPushToTalk.isNull() ? QString() : qvSuggestPushToTalk.toString());
++      qmConfig.insert(QLatin1String("opusthreshold"), 
QString::number(iOpusThreshold));
+ }
+ 
+ Meta::Meta() {
+diff --git a/src/murmur/Meta.h b/src/murmur/Meta.h
+index 7ed0595..669e76c 100644
+--- a/src/murmur/Meta.h
++++ b/src/murmur/Meta.h
+@@ -60,6 +60,7 @@ struct MetaParams {
+       bool bRememberChan;
+       int iMaxTextMessageLength;
+       int iMaxImageMessageLength;
++      int iOpusThreshold;
+       bool bAllowHTML;
+       QString qsPassword;
+       QString qsWelcomeText;
+diff --git a/src/murmur/Server.cpp b/src/murmur/Server.cpp
+index 547d699..f015bac 100644
+--- a/src/murmur/Server.cpp
++++ b/src/murmur/Server.cpp
+@@ -331,6 +331,7 @@ void Server::readParams() {
+       qvSuggestVersion = Meta::mp.qvSuggestVersion;
+       qvSuggestPositional = Meta::mp.qvSuggestPositional;
+       qvSuggestPushToTalk = Meta::mp.qvSuggestPushToTalk;
++      iOpusThreshold = Meta::mp.iOpusThreshold;
+ 
+       QString qsHost = getConf("host", QString()).toString();
+       if (! qsHost.isEmpty()) {
+@@ -393,6 +394,8 @@ void Server::readParams() {
+       if (qvSuggestPushToTalk.toString().trimmed().isEmpty())
+               qvSuggestPushToTalk = QVariant();
+ 
++      iOpusThreshold = getConf("opusthreshold", iOpusThreshold).toInt();
++
+       qrUserName=QRegExp(getConf("username", 
qrUserName.pattern()).toString());
+       qrChannelName=QRegExp(getConf("channelname", 
qrChannelName.pattern()).toString());
+ }
+@@ -503,6 +506,8 @@ void Server::setLiveConf(const QString &key, const QString 
&value) {
+               qvSuggestPositional = ! v.isNull() ? (v.isEmpty() ? QVariant() 
: v) : Meta::mp.qvSuggestPositional;
+       else if (key == "suggestpushtotalk")
+               qvSuggestPushToTalk = ! v.isNull() ? (v.isEmpty() ? QVariant() 
: v) : Meta::mp.qvSuggestPushToTalk;
++      else if (key == "opusthreshold")
++              iOpusThreshold = i ? i : Meta::mp.iOpusThreshold;
+ }
+ 
+ #ifdef USE_BONJOUR
+@@ -1648,8 +1653,9 @@ void Server::recheckCodecVersions() {
+ 
+       if (! users)
+               return;
+-              
+-      bool allHasOpus = (opus == users);
++
++      // Enable Opus if the number of users with Opus is higher than the 
threshold
++      bool enableOpus = ((opus * 100 / users) >= iOpusThreshold);
+ 
+       // Find the best possible codec most users support
+       int version = 0;
+@@ -1680,17 +1686,17 @@ void Server::recheckCodecVersions() {
+                       iCodecAlpha = version;
+               else
+                       iCodecBeta = version;
+-      } else if (bOpus == allHasOpus) {
++      } else if (bOpus == enableOpus) {
+               return;
+       }
+-      
+-      bOpus = allHasOpus;
+-      
++
++      bOpus = enableOpus;
++
+       MumbleProto::CodecVersion mpcv;
+       mpcv.set_alpha(iCodecAlpha);
+       mpcv.set_beta(iCodecBeta);
+       mpcv.set_prefer_alpha(bPreferAlpha);
+-      mpcv.set_opus(allHasOpus);
++      mpcv.set_opus(bOpus);
+       sendAll(mpcv);
+ 
+       log(QString::fromLatin1("CELT codec switch %1 %2 (prefer %3) (Opus 
%4)").arg(iCodecAlpha,0,16).arg(iCodecBeta,0,16).arg(bPreferAlpha ? iCodecAlpha 
: iCodecBeta,0,16).arg(bOpus));
+diff --git a/src/murmur/Server.h b/src/murmur/Server.h
+index 788eb89..66025de 100644
+--- a/src/murmur/Server.h
++++ b/src/murmur/Server.h
+@@ -132,6 +132,7 @@ class Server : public QThread {
+               bool bRememberChan;
+               int iMaxTextMessageLength;
+               int iMaxImageMessageLength;
++              int iOpusThreshold;
+               bool bAllowHTML;
+               QString qsPassword;
+               QString qsWelcomeText;
diff -Nru mumble-1.2.3-348-g317f5a0/debian/patches/25-add-codec-warnings 
mumble-1.2.3-349-g315b5f5/debian/patches/25-add-codec-warnings
--- mumble-1.2.3-348-g317f5a0/debian/patches/25-add-codec-warnings      
1970-01-01 09:30:00.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/debian/patches/25-add-codec-warnings      
2012-07-09 03:12:05.000000000 +0930
@@ -0,0 +1,47 @@
+diff --git a/src/murmur/Messages.cpp b/src/murmur/Messages.cpp
+index 4b6be72..6310f89 100644
+--- a/src/murmur/Messages.cpp
++++ b/src/murmur/Messages.cpp
+@@ -201,6 +201,7 @@ void Server::msgAuthenticate(ServerUser *uSource, 
MumbleProto::Authenticate &msg
+       mpcrypt.set_client_nonce(std::string(reinterpret_cast<const char 
*>(uSource->csCrypt.decrypt_iv), AES_BLOCK_SIZE));
+       sendMessage(uSource, mpcrypt);
+ 
++      bool fake_celt_support = false;
+       if (msg.celt_versions_size() > 0) {
+               for (int i=0;i < msg.celt_versions_size(); ++i)
+                       uSource->qlCodecs.append(msg.celt_versions(i));
+@@ -217,6 +219,12 @@ void Server::msgAuthenticate(ServerUser *uSource, 
MumbleProto::Authenticate &msg
+       mpcv.set_opus(bOpus);
+       sendMessage(uSource, mpcv);
+ 
++      if (!bOpus && uSource->bOpus && fake_celt_support) {
++              sendTextMessage(NULL, uSource, false, 
QLatin1String("<strong>WARNING:</strong> Your client doesn't support the CELT 
codec, you won't be able to talk to or hear most clients. Please make sure your 
client was built with CELT support."));
++      } else if (bOpus && !uSource->bOpus) {
++              sendTextMessage(NULL, uSource, false, 
QLatin1String("<strong>WARNING:</strong> Your client doesn't support the Opus 
codec, you won't be able to talk or hear anyone. Please upgrade to a client 
with Opus support."));
++      }
++
+       // Transmit channel tree
+       QQueue<Channel *> q;
+       QSet<Channel *> chans;
+diff --git a/src/murmur/Server.cpp b/src/murmur/Server.cpp
+index f015bac..b1700fd 100644
+--- a/src/murmur/Server.cpp
++++ b/src/murmur/Server.cpp
+@@ -773,6 +773,8 @@ void Server::run() {
+                                       case MessageHandler::UDPVoiceSpeex:
+                                       case MessageHandler::UDPVoiceCELTAlpha:
+                                       case MessageHandler::UDPVoiceCELTBeta:
++                                              if (bOpus)
++                                                      break;
+                                       case MessageHandler::UDPVoiceOpus: {
+                                                       u->bUdp = true;
+                                                       processMsg(u, buffer, 
len);
+@@ -1275,6 +1277,8 @@ void Server::message(unsigned int uiType, const 
QByteArray &qbaMsg, ServerUser *
+                       case MessageHandler::UDPVoiceCELTAlpha:
+                       case MessageHandler::UDPVoiceCELTBeta:
+                       case MessageHandler::UDPVoiceSpeex:
++                              if (bOpus)
++                                      break;
+                       case MessageHandler::UDPVoiceOpus:
+                               processMsg(u, buffer, l);
+                               break;
diff -Nru mumble-1.2.3-348-g317f5a0/debian/patches/series 
mumble-1.2.3-349-g315b5f5/debian/patches/series
--- mumble-1.2.3-348-g317f5a0/debian/patches/series     2012-05-25 
04:03:03.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/debian/patches/series     2012-07-09 
03:12:05.000000000 +0930
@@ -1,2 +1,6 @@
 02-reject-with-ip-in-log.diff
 05-lsb-description.diff
+10-use-celt-guard
+15-fix-noise-in-opus-mode
+20-add-opus-threshold-option
+25-add-codec-warnings
diff -Nru mumble-1.2.3-348-g317f5a0/debian/rules 
mumble-1.2.3-349-g315b5f5/debian/rules
--- mumble-1.2.3-348-g317f5a0/debian/rules      2012-05-25 04:03:03.000000000 
+0930
+++ mumble-1.2.3-349-g315b5f5/debian/rules      2012-07-09 03:12:05.000000000 
+0930
@@ -18,12 +18,14 @@
 configure: configure-stamp
 configure-stamp:
        dh_testdir
-       qmake-qt4 -recursive main.pro \
+       qmake-qt4 QMAKE_CXX=g++-4.6 QMAKE_CC=gcc-4.6 -recursive main.pro \
        CONFIG*=release \
        CONFIG*=symbols \
        CONFIG*=no-embed-qt-translations \
        CONFIG*=packaged \
        CONFIG*=quiet-build-log \
+       CONFIG*=no-bundled-speex \
+       CONFIG*=no-bundled-celt \
        DEFINES*=NO_UPDATE_CHECK \
        DEFINES*=PLUGIN_PATH=/usr/lib/mumble \
        DEFINES*=MUMBLE_VERSION=$(MUMBLE_DEB_VERSION) \
@@ -31,7 +33,7 @@
        DEFINES*=HAVE_ENDIAN_H
        touch configure-stamp
 
-build: build-arch build-indep
+build: build-arch
 
 build-arch: build-arch-stamp
 
@@ -40,14 +42,13 @@
        slice2html -I/usr/share/Ice-3.4.1/slice -I/usr/share/Ice-3.3.1/slice 
-I/usr/share/Ice/slice src/murmur/Murmur.ice --output-dir Ice
        touch $@
 
-build-indep: build-indep-stamp
+build-indep:
 
-build-indep-stamp:
 
 clean:
        dh_testdir
        dh_testroot
-       rm -f build-arch-stamp build-indep-stamp configure-stamp
+       rm -f build-arch-stamp configure-stamp
        [ ! -f Makefile ] || $(MAKE) distclean
        [ ! -d gendoc ] || rm -rf Ice
        rm -rf release debug
@@ -56,15 +57,7 @@
        debconf-updatepo
        dh_clean
 
-install: install-indep install-arch
-
-install-indep:
-       dh_testdir
-       dh_testroot
-       dh_prep
-       dh_installdirs -i
-       dh_install -i
-       install -m 0755 -D ./scripts/weblist.pl 
$(CURDIR)/debian/mumble-server-web/usr/share/mumble-server-web/www/weblist.cgi
+install: install-arch
 
 install-arch:
        dh_testdir
@@ -95,22 +88,19 @@
        dh_strip --dbg-package=mumble-dbg
        dh_compress
        dh_fixperms
-       dh_perl $(CURDIR)/debian/mumble-server-web/usr/lib/cgi-bin/mumble-server
        dh_installdeb
        dh_shlibdeps
        dh_gencontrol
        dh_md5sums
        dh_builddeb
 
-binary-indep: build-indep install-indep
-       $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
+binary-indep:
 
 binary-arch: build-arch install-arch
        $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
 
-binary:        binary-indep binary-arch
-
-get-orig-source:
-       wget -O $(SOURCE_DIR)/mumble_$(VERSION).orig.tar.gz 
http://mumble.info/snapshot/mumble-$(VERSION).tar.gz
+binary:        binary-arch
 
-.PHONY: build clean binary-indep binary-arch binary install install-indep 
install-arch configure
+.PHONY: clean configure build build-arch build-indep \
+        binary binary-arch binary-indep binary-common \
+        install install-arch
diff -Nru mumble-1.2.3-348-g317f5a0/debian/watch 
mumble-1.2.3-349-g315b5f5/debian/watch
--- mumble-1.2.3-348-g317f5a0/debian/watch      2012-05-25 04:03:03.000000000 
+0930
+++ mumble-1.2.3-349-g315b5f5/debian/watch      1970-01-01 09:30:00.000000000 
+0930
@@ -1,2 +0,0 @@
-version=3
-http://sf.net/mumble/mumble-(.*)\.tar\.gz
diff -Nru mumble-1.2.3-348-g317f5a0/src/mumble/mumble.pro 
mumble-1.2.3-349-g315b5f5/src/mumble/mumble.pro
--- mumble-1.2.3-348-g317f5a0/src/mumble/mumble.pro     2012-05-20 
21:30:56.000000000 +0930
+++ mumble-1.2.3-349-g315b5f5/src/mumble/mumble.pro     2012-06-04 
03:42:20.000000000 +0930
@@ -77,10 +77,15 @@
   DEFINES *= NO_VORBIS_RECORDING
 }
 
-CONFIG(opus) {
-       INCLUDEPATH *= ../../opus-src/celt ../../opus-src/include 
../../opus-src/src ../../opus-build/src
-       DEFINES *= USE_OPUS
-       LIBS *= -lopus
+unix:system(pkg-config --exists opus) {
+  PKGCONFIG *= opus
+  DEFINES *= USE_OPUS
+} else {
+  CONFIG(opus) {
+    INCLUDEPATH *= ../../opus-src/celt ../../opus-src/include 
../../opus-src/src ../../opus-build/src
+    DEFINES *= USE_OPUS
+    LIBS *= -lopus
+  }
 }
 
 win32 {




--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to