Your message dated Sat, 10 Nov 2012 14:34:26 +0000 with message-id <1352558066.4531.14.camel@jacala.jungle.funky-badger.org> and subject line Re: Bug#691098: unblock: mumble/1.2.3-349-g315b5f5-2.1 [pre-approval request] has caused the Debian Bug report #691098, regarding unblock: mumble/1.2.3-349-g315b5f5-2.1 [pre-approval request] to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 691098: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=691098 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: unblock: mumble/1.2.3-349-g315b5f5-2.1 [pre-approval request]
- From: gregor herrmann <gregoa@debian.org>
- Date: Sun, 21 Oct 2012 15:54:38 +0200
- Message-id: <20121021135438.GA18508@jadzia.comodo.priv.at>
Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: unblock I'd like to request a pre-approval for a future unblock of a not-yet-uploaded NMU of mumble. This NMU, prepared by Chris Knadle, would fix #675971, thereby implementing the TC decision in #682010. Chris' changes are in the attached mumble-celt.diff. Unfortunately unstable already has a newer version than testing; but on the bright side, the changes already in unstable are required, since mumble in testing currently doesn't build [0] and also fails to start [1], and also closes RC bugs #678759 [2], #676815, #676816. (So going through t-p-u for #675971 doesn't work, since that would also mean including the fixes for the 3 other RC bugs). I'm attaching the full debdiff wheezy/1.2.3-348-g317f5a0-1 → "proposed-sid"/1.2.3-349-g315b5f5-2.1 as mumble-wheezy-sid.diff. Thanks in advance, gregor [0] In file included from /usr/include/Ice/LocalObjectF.h:15:0, from ./Murmur.h:24, from MurmurI.h:4, from MurmurIce.h:42, from MurmurIce.cpp:33: /usr/include/Ice/Handle.h: In instantiation of 'IceInternal::Handle<T>::Handle(T*) [with T = Ice::Communicator]': /usr/include/Ice/OutgoingAsync.h:49:16: required from here /usr/include/Ice/Handle.h:66:13: error: 'upCast' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] compilation terminated due to -Wfatal-errors. This is http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=675971#131 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=672066#54 and [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=675955 [2] also seen at http://people.debian.org/~lucas/logs/2012/10/10/mumble_1.2.3-348-g317f5a0-1_wheezy.log -- .''`. Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06 : :' : Debian GNU/Linux user, admin, and developer - http://www.debian.org/ `. `' Member of VIBE!AT & SPI, fellow of the Free Software Foundation Europe `- NP: Sophie Hunger: Teenage Spiritdiff -Nru mumble-1.2.3-349-g315b5f5/debian/changelog mumble-1.2.3-349-g315b5f5/debian/changelog --- mumble-1.2.3-349-g315b5f5/debian/changelog 2012-07-08 13:42:05.000000000 -0400 +++ mumble-1.2.3-349-g315b5f5/debian/changelog 2012-10-04 21:03:18.000000000 -0400 @@ -1,3 +1,31 @@ +mumble (1.2.3-349-g315b5f5-2.1) unstable; urgency=low + + * Non-maintainer upload. + * Fix "Cannot communicate with the vast majority of Mumble servers due + to lack of required baseline codec": + re-enable using the bundled celt library: + debian/patches/series: + - add 07-use-embedded-celt-baseline patch + debian/patches/07-use-embedded-celt-baseline: + - build Celt 0.7.1 and not 0.11.0 + debian/mumble.install: + - ship Celt 0.7.1 library from the embedded source + debian/rules: + - re-enable Celt using the bundled 0.7.1 version + debian/patches/20-add-opus-threshold-option: + - fix src/murmur/Meta.cpp to set default iOpusThreshold=100 to only + switch from Celt to Opus if 100% of connected clients support Opus + (instead of 1%) + - fix murmur.ini example for opusthreshold option to =100 + (instead of =1) + - add #opusthreshold=100 comments to murmur.ini.system (shipped as + etc/mumble-server.ini) to match murmur.ini example + Closes: #675971. + This implements the TC decision in #682010. + [Thanks to Gregor Hermann for his help and guidance.] + + -- Christopher Knadle <chris.knadle@coredump.us> Thu, 04 Oct 2012 11:45:05 -0400 + 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 diff -Nru mumble-1.2.3-349-g315b5f5/debian/mumble.install mumble-1.2.3-349-g315b5f5/debian/mumble.install --- mumble-1.2.3-349-g315b5f5/debian/mumble.install 2012-07-08 13:42:05.000000000 -0400 +++ mumble-1.2.3-349-g315b5f5/debian/mumble.install 2012-10-04 21:02:08.000000000 -0400 @@ -1,6 +1,6 @@ release/mumble usr/bin/ release/libmumble.so* usr/lib/mumble/ -#release/libcelt0.so.?.?.? usr/lib/mumble/ +release/libcelt0.so.?.?.? usr/lib/mumble/ release/plugins/lib*.so usr/lib/mumble/ icons/mumble.xpm usr/share/pixmaps/ icons/mumble.svg usr/share/icons/hicolor/scalable/apps/ diff -Nru mumble-1.2.3-349-g315b5f5/debian/patches/07-use-embedded-celt-baseline mumble-1.2.3-349-g315b5f5/debian/patches/07-use-embedded-celt-baseline --- mumble-1.2.3-349-g315b5f5/debian/patches/07-use-embedded-celt-baseline 1969-12-31 19:00:00.000000000 -0500 +++ mumble-1.2.3-349-g315b5f5/debian/patches/07-use-embedded-celt-baseline 2012-10-04 21:02:08.000000000 -0400 @@ -0,0 +1,13 @@ +# build and bundle in only celt 0.7.1 if celt is embedded +--- a/main.pro ++++ b/main.pro +@@ -12,7 +12,8 @@ + SUBDIRS *= speexbuild + } + !CONFIG(no-bundled-celt) { +- SUBDIRS *= celt-0.7.0-build celt-0.11.0-build ++ SUBDIRS *= celt-0.7.0-build ++ SUBDIRS -= celt-0.11.0-build + } + + CONFIG(opus) { diff -Nru mumble-1.2.3-349-g315b5f5/debian/patches/20-add-opus-threshold-option mumble-1.2.3-349-g315b5f5/debian/patches/20-add-opus-threshold-option --- mumble-1.2.3-349-g315b5f5/debian/patches/20-add-opus-threshold-option 2012-07-08 13:42:05.000000000 -0400 +++ mumble-1.2.3-349-g315b5f5/debian/patches/20-add-opus-threshold-option 2012-10-04 21:02:08.000000000 -0400 @@ -8,7 +8,7 @@ +# 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 ++#opusthreshold=100 + # Regular expression used to validate channel names # (note that you have to escape backslashes with \ ) @@ -36,7 +36,7 @@ uiUid = uiGid = 0; #endif -+ iOpusThreshold = 1; ++ iOpusThreshold = 100; + qrUserName = QRegExp(QLatin1String("[-=\\w\\[\\]\\{\\}\\(\\)\\@\\|\\.]+")); qrChannelName = QRegExp(QLatin1String("[ \\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\\|]+")); @@ -147,3 +147,16 @@ bool bAllowHTML; QString qsPassword; QString qsWelcomeText; +--- a/scripts/murmur.ini.system ++++ b/scripts/murmur.ini.system +@@ -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=100 ++ + # Regular expression used to validate channel names + # (note that you have to escape backslashes with \ ) + #channelname=[ \\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\\|]+ diff -Nru mumble-1.2.3-349-g315b5f5/debian/patches/series mumble-1.2.3-349-g315b5f5/debian/patches/series --- mumble-1.2.3-349-g315b5f5/debian/patches/series 2012-07-08 13:42:05.000000000 -0400 +++ mumble-1.2.3-349-g315b5f5/debian/patches/series 2012-10-04 21:02:08.000000000 -0400 @@ -1,5 +1,6 @@ 02-reject-with-ip-in-log.diff 05-lsb-description.diff +07-use-embedded-celt-baseline 10-use-celt-guard 15-fix-noise-in-opus-mode 20-add-opus-threshold-option diff -Nru mumble-1.2.3-349-g315b5f5/debian/rules mumble-1.2.3-349-g315b5f5/debian/rules --- mumble-1.2.3-349-g315b5f5/debian/rules 2012-07-08 13:42:05.000000000 -0400 +++ mumble-1.2.3-349-g315b5f5/debian/rules 2012-10-04 21:02:08.000000000 -0400 @@ -25,7 +25,8 @@ CONFIG*=packaged \ CONFIG*=quiet-build-log \ CONFIG*=no-bundled-speex \ - CONFIG*=no-bundled-celt \ + CONFIG*=bundled-celt \ + DEFINES*=USE_CELT \ DEFINES*=NO_UPDATE_CHECK \ DEFINES*=PLUGIN_PATH=/usr/lib/mumble \ DEFINES*=MUMBLE_VERSION=$(MUMBLE_DEB_VERSION) \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-24 20:33:03.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/MurmurPHP.ini 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -ice.slice=/usr/share/slice/Murmur.ice 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-24 20:33:03.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/changelog 2012-10-14 18:37:03.000000000 +0200 @@ -1,3 +1,72 @@ +mumble (1.2.3-349-g315b5f5-2.1) unstable; urgency=low + + * Non-maintainer upload. + * Fix "Cannot communicate with the vast majority of Mumble servers due + to lack of required baseline codec": + re-enable using the bundled celt library: + debian/patches/series: + - add 07-use-embedded-celt-baseline patch + debian/patches/07-use-embedded-celt-baseline: + - build Celt 0.7.1 and not 0.11.0 + debian/mumble.install: + - ship Celt 0.7.1 library from the embedded source + debian/rules: + - re-enable Celt using the bundled 0.7.1 version + debian/patches/20-add-opus-threshold-option: + - fix src/murmur/Meta.cpp to set default iOpusThreshold=100 to only + switch from Celt to Opus if 100% of connected clients support Opus + (instead of 1%) + - fix murmur.ini example for opusthreshold option to =100 + (instead of =1) + - add #opusthreshold=100 comments to murmur.ini.system (shipped as + etc/mumble-server.ini) to match murmur.ini example + Closes: #675971. + This implements the TC decision in #682010. + [Thanks to Gregor Herrmann for his help and guidance.] + + -- Christopher Knadle <chris.knadle@coredump.us> Thu, 04 Oct 2012 11:45:05 -0400 + +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 <ron@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 <ron@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-24 20:33:03.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/control 2012-07-08 19:42:05.000000000 +0200 @@ -1,28 +1,26 @@ Source: mumble Section: sound Priority: optional -Homepage: http://mumble.sourceforge.net/ -Maintainer: Debian VoIP Team <pkg-voip-maintainers@lists.alioth.debian.org> -Uploaders: Patrick Matthäi <pmatthaei@debian.org>, - Thorvald Natvig <thorvald@debian.org> -Build-Depends: debhelper (>= 7.0.8), +Maintainer: Ron Lee <ron@debian.org> +Uploaders: Thorvald Natvig <thorvald@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.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-24 20:33:04.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.README.Debian 1970-01-01 01:00:00.000000000 +0100 @@ -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/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-24 20:33:04.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.conf 1970-01-01 01:00:00.000000000 +0100 @@ -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-24 20:33:04.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.dirs 1970-01-01 01:00:00.000000000 +0100 @@ -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-24 20:33:04.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.install 1970-01-01 01:00:00.000000000 +0100 @@ -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-24 20:33:04.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.links 1970-01-01 01:00:00.000000000 +0100 @@ -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-24 20:33:04.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/mumble-server-web.postinst 1970-01-01 01:00:00.000000000 +0100 @@ -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.install mumble-1.2.3-349-g315b5f5/debian/mumble.install --- mumble-1.2.3-348-g317f5a0/debian/mumble.install 2012-05-24 20:33:03.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/mumble.install 2012-10-14 18:36:54.000000000 +0200 @@ -1,6 +1,6 @@ release/mumble usr/bin/ release/libmumble.so* usr/lib/mumble/ -#release/libcelt0.so.?.?.? usr/lib/mumble/ +release/libcelt0.so.?.?.? usr/lib/mumble/ release/plugins/lib*.so usr/lib/mumble/ icons/mumble.xpm usr/share/pixmaps/ icons/mumble.svg usr/share/icons/hicolor/scalable/apps/ diff -Nru mumble-1.2.3-348-g317f5a0/debian/patches/07-use-embedded-celt-baseline mumble-1.2.3-349-g315b5f5/debian/patches/07-use-embedded-celt-baseline --- mumble-1.2.3-348-g317f5a0/debian/patches/07-use-embedded-celt-baseline 1970-01-01 01:00:00.000000000 +0100 +++ mumble-1.2.3-349-g315b5f5/debian/patches/07-use-embedded-celt-baseline 2012-10-14 18:36:54.000000000 +0200 @@ -0,0 +1,13 @@ +# build and bundle in only celt 0.7.1 if celt is embedded +--- a/main.pro ++++ b/main.pro +@@ -12,7 +12,8 @@ + SUBDIRS *= speexbuild + } + !CONFIG(no-bundled-celt) { +- SUBDIRS *= celt-0.7.0-build celt-0.11.0-build ++ SUBDIRS *= celt-0.7.0-build ++ SUBDIRS -= celt-0.11.0-build + } + + CONFIG(opus) { 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 01:00:00.000000000 +0100 +++ mumble-1.2.3-349-g315b5f5/debian/patches/10-use-celt-guard 2012-07-08 19:42:05.000000000 +0200 @@ -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 01:00:00.000000000 +0100 +++ mumble-1.2.3-349-g315b5f5/debian/patches/15-fix-noise-in-opus-mode 2012-07-08 19:42:05.000000000 +0200 @@ -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 01:00:00.000000000 +0100 +++ mumble-1.2.3-349-g315b5f5/debian/patches/20-add-opus-threshold-option 2012-10-14 18:36:54.000000000 +0200 @@ -0,0 +1,162 @@ +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=100 ++ + # 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 = 100; ++ + 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; +--- a/scripts/murmur.ini.system ++++ b/scripts/murmur.ini.system +@@ -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=100 ++ + # Regular expression used to validate channel names + # (note that you have to escape backslashes with \ ) + #channelname=[ \\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\\|]+ 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 01:00:00.000000000 +0100 +++ mumble-1.2.3-349-g315b5f5/debian/patches/25-add-codec-warnings 2012-07-08 19:42:05.000000000 +0200 @@ -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-24 20:33:03.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/patches/series 2012-10-14 18:36:54.000000000 +0200 @@ -1,2 +1,7 @@ 02-reject-with-ip-in-log.diff 05-lsb-description.diff +07-use-embedded-celt-baseline +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-24 20:33:03.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/rules 2012-10-14 18:36:54.000000000 +0200 @@ -18,12 +18,15 @@ 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*=bundled-celt \ + DEFINES*=USE_CELT \ DEFINES*=NO_UPDATE_CHECK \ DEFINES*=PLUGIN_PATH=/usr/lib/mumble \ DEFINES*=MUMBLE_VERSION=$(MUMBLE_DEB_VERSION) \ @@ -31,7 +34,7 @@ DEFINES*=HAVE_ENDIAN_H touch configure-stamp -build: build-arch build-indep +build: build-arch build-arch: build-arch-stamp @@ -40,14 +43,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 +58,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 +89,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-24 20:33:03.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/debian/watch 1970-01-01 01:00:00.000000000 +0100 @@ -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 14:00:56.000000000 +0200 +++ mumble-1.2.3-349-g315b5f5/src/mumble/mumble.pro 2012-06-03 20:12:20.000000000 +0200 @@ -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 {Attachment: signature.asc
Description: Digital signature
--- End Message ---
--- Begin Message ---
- To: gregor herrmann <gregoa@debian.org>, 691098-done@bugs.debian.org
- Cc: Julien Cristau <jcristau@debian.org>, 675971@bugs.debian.org, Chris.Knadle@coredump.us
- Subject: Re: Bug#691098: unblock: mumble/1.2.3-349-g315b5f5-2.1 [pre-approval request]
- From: "Adam D. Barratt" <adam@adam-barratt.org.uk>
- Date: Sat, 10 Nov 2012 14:34:26 +0000
- Message-id: <1352558066.4531.14.camel@jacala.jungle.funky-badger.org>
- In-reply-to: <20121022172204.GG16369@jadzia.comodo.priv.at>
- References: <20121021135438.GA18508@jadzia.comodo.priv.at> <20121022103034.GU17465@radis.cristau.org> <20121022113509.GR3891@colleen.colgarra.priv.at> <20121022113924.GV17465@radis.cristau.org> <20121022172204.GG16369@jadzia.comodo.priv.at>
On Mon, 2012-10-22 at 19:22 +0200, gregor herrmann wrote: > On Mon, 22 Oct 2012 13:39:24 +0200, Julien Cristau wrote: > > I guess I don't consider this a complicated situation. Either the new > > version is ok, or we release without mumble. Neither the current > > version in sid nor the current version in wheezy are suitable anyway, > > AIUI. > > Ok, I've uploaded 1.2.3-349-g315b5f5-2.1 now, to DELAYED/2 in order > to give the maintainers or other interested parties another chance to > take a look at the changes. Unblocked; thanks. Regards, Adam
--- End Message ---