[ 81%] Building CXX object kmix/CMakeFiles/kdeinit_kmix.dir/core/mixdevicecomposite.o cd /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3_build/kmix && /usr/bin/x86_64-pc-linux-gnu-g++ -Dkdeinit_kmix_EXPORTS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -D_REENTRANT -DKDE_DEPRECATED_WARNINGS -DKDE4_CMAKE_TOPLEVEL_DIR_LENGTH=41 -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -D_REENTRANT -DKDE_DEPRECATED_WARNINGS -DKDE4_CMAKE_TOPLEVEL_DIR_LENGTH=41 -DKDE_DEFAULT_DEBUG_AREA=67100 -DHAVE_CANBERRA -DQT_NO_DEBUG -DNDEBUG -march=native -O2 -pipe -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions -DQT_NO_EXCEPTIONS -fno-check-new -fno-common -Woverloaded-virtual -fno-threadsafe-statics -fvisibility=hidden -Werror=return-type -fvisibility-inlines-hidden -fPIC -I/var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3_build/kmix -I/var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix -I/var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3 -I/var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3_build -I/usr/include/KDE -I/usr/include/qt4/QtXmlPatterns -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtWebKit -I/usr/include/qt4/QtUiTools -I/usr/include/qt4/QtTest -I/usr/include/qt4/QtSvg -I/usr/include/qt4/QtSql -I/usr/include/qt4/QtScriptTools -I/usr/include/qt4/QtScript -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtMultimedia -I/usr/include/qt4/QtDesigner -I/usr/include/qt4/QtDeclarative -I/usr/include/qt4/QtDBus -I/usr/include/qt4/Qt3Support -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/usr/include/qt4/Qt -I/usr/share/qt4/mkspecs/default -I/usr/include/qt4 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib/oss/include -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/kdeinit_kmix.dir/core/mixdevicecomposite.o -c /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/core/mixdevicecomposite.cpp In file included from /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/kmix-backends.cpp:63:0, from /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/core/mixer.cpp:31: /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss.cpp: In member function 'int Mixer_OSS::setRecsrcToOSS(const QString&, bool)': /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss.cpp:263:19: warning: variable 'oldrecsrc' set but not used [-Wunused-but-set-variable] In file included from /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/kmix-backends.cpp:76:0, from /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/core/mixer.cpp:31: /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss4.cpp: In member function 'virtual int Mixer_OSS4::open()': /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss4.cpp:354:25: error: no match for 'operator=' in 'masterHeuristic = md' /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss4.cpp:354:25: note: candidates are: /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:1038:9: note: template<class _Tp1> std::tr1::shared_ptr& std::tr1::shared_ptr::operator=(const std::tr1::shared_ptr<_Tp1>&) [with _Tp1 = _Tp1, _Tp = MixDevice, std::tr1::shared_ptr<_Tp> = std::tr1::shared_ptr<MixDevice>] /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:1047:9: note: template<class _Tp1> std::tr1::shared_ptr& std::tr1::shared_ptr::operator=(std::auto_ptr<_Tp1>&) [with _Tp1 = _Tp1, _Tp = MixDevice, std::tr1::shared_ptr<_Tp> = std::tr1::shared_ptr<MixDevice>] /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:992:11: note: std::tr1::shared_ptr<MixDevice>& std::tr1::shared_ptr<MixDevice>::operator=(const std::tr1::shared_ptr<MixDevice>&) /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:992:11: note: no known conversion for argument 1 from 'MixDevice*' to 'const std::tr1::shared_ptr<MixDevice>&' /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss4.cpp:360:29: error: no match for 'operator=' in '((Mixer_OSS4*)this)->Mixer_OSS4::<anonymous>.Mixer_Backend::m_recommendedMaster = md' /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss4.cpp:360:29: note: candidates are: /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:1038:9: note: template<class _Tp1> std::tr1::shared_ptr& std::tr1::shared_ptr::operator=(const std::tr1::shared_ptr<_Tp1>&) [with _Tp1 = _Tp1, _Tp = MixDevice, std::tr1::shared_ptr<_Tp> = std::tr1::shared_ptr<MixDevice>] /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:1047:9: note: template<class _Tp1> std::tr1::shared_ptr& std::tr1::shared_ptr::operator=(std::auto_ptr<_Tp1>&) [with _Tp1 = _Tp1, _Tp = MixDevice, std::tr1::shared_ptr<_Tp> = std::tr1::shared_ptr<MixDevice>] /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:992:11: note: std::tr1::shared_ptr<MixDevice>& std::tr1::shared_ptr<MixDevice>::operator=(const std::tr1::shared_ptr<MixDevice>&) /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:992:11: note: no known conversion for argument 1 from 'MixDevice*' to 'const std::tr1::shared_ptr<MixDevice>&' /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss4.cpp:388:29: error: no match for 'operator=' in '((Mixer_OSS4*)this)->Mixer_OSS4::<anonymous>.Mixer_Backend::m_recommendedMaster = md' /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss4.cpp:388:29: note: candidates are: /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:1038:9: note: template<class _Tp1> std::tr1::shared_ptr& std::tr1::shared_ptr::operator=(const std::tr1::shared_ptr<_Tp1>&) [with _Tp1 = _Tp1, _Tp = MixDevice, std::tr1::shared_ptr<_Tp> = std::tr1::shared_ptr<MixDevice>] /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:1047:9: note: template<class _Tp1> std::tr1::shared_ptr& std::tr1::shared_ptr::operator=(std::auto_ptr<_Tp1>&) [with _Tp1 = _Tp1, _Tp = MixDevice, std::tr1::shared_ptr<_Tp> = std::tr1::shared_ptr<MixDevice>] /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:992:11: note: std::tr1::shared_ptr<MixDevice>& std::tr1::shared_ptr<MixDevice>::operator=(const std::tr1::shared_ptr<MixDevice>&) /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:992:11: note: no known conversion for argument 1 from 'MixDevice*' to 'const std::tr1::shared_ptr<MixDevice>&' /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss4.cpp:434:55: error: no matching function for call to 'VolumeChannel::VolumeChannel(Volume::ChannelMask)' /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss4.cpp:434:55: note: candidates are: /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/core/volume.h:171:3: note: VolumeChannel::VolumeChannel() /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/core/volume.h:171:3: note: candidate expects 0 arguments, 1 provided /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/core/volume.h:164:3: note: VolumeChannel::VolumeChannel(Volume::ChannelID) /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/core/volume.h:164:3: note: no known conversion for argument 1 from 'Volume::ChannelMask' to 'Volume::ChannelID' /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/core/volume.h:161:7: note: VolumeChannel::VolumeChannel(const VolumeChannel&) /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/core/volume.h:161:7: note: no known conversion for argument 1 from 'Volume::ChannelMask' to 'const VolumeChannel&' /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss4.cpp: In member function 'virtual int Mixer_OSS4::close()': /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss4.cpp:480:24: error: no match for 'operator=' in '((Mixer_OSS4*)this)->Mixer_OSS4::<anonymous>.Mixer_Backend::m_recommendedMaster = 0l' /var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3/kmix/backends/mixer_oss4.cpp:480:24: note: candidates are: /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:1038:9: note: template<class _Tp1> std::tr1::shared_ptr& std::tr1::shared_ptr::operator=(const std::tr1::shared_ptr<_Tp1>&) [with _Tp1 = _Tp1, _Tp = MixDevice, std::tr1::shared_ptr<_Tp> = std::tr1::shared_ptr<MixDevice>] /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:1047:9: note: template<class _Tp1> std::tr1::shared_ptr& std::tr1::shared_ptr::operator=(std::auto_ptr<_Tp1>&) [with _Tp1 = _Tp1, _Tp = MixDevice, std::tr1::shared_ptr<_Tp> = std::tr1::shared_ptr<MixDevice>] /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:992:11: note: std::tr1::shared_ptr<MixDevice>& std::tr1::shared_ptr<MixDevice>::operator=(const std::tr1::shared_ptr<MixDevice>&) /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/tr1/shared_ptr.h:992:11: note: no known conversion for argument 1 from 'long int' to 'const std::tr1::shared_ptr<MixDevice>&' make[2]: *** [kmix/CMakeFiles/kdeinit_kmix.dir/core/mixer.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory `/var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3_build' make[1]: *** [kmix/CMakeFiles/kdeinit_kmix.dir/all] Error 2 make[1]: Leaving directory `/var/tmp/portage/kde-base/kmix-4.8.3/work/kmix-4.8.3_build' make: *** [all] Error 2
https://bugs.kde.org/show_bug.cgi?id=292595
Can anyone using OSS4 confirm that with the patch attached to the upstream bug, KMix functions correctly?
The patch made kmix-4.8.0 (I think it was 4.8.0...) compile, and I could use the sliders to control the mixers. But AFAIR there were issues; the mixer value after login was not set correctly, also mute was not recognized, and I think mute even did not work. At some point, KMix continously used a fair amount of CPU (10-20%), so i uninstalled kmix and used ossxmix + some custom commands bound to shortcuts. KMix also has an automagic dependency on OSS4, so as soon as OSS4 is installed, unpatched kmix will fail to compile. I am back to alsa but have OSS4 still installed, if you want me to test something.
Created attachment 311535 [details] additional patch to make kmix compile with gcc-4.6.x I can't say what "x" in 4.6.x must be here (I am quite sure, that I set up this PC with at least gcc-4.6.1 and I definitly was able to build kmix+oss4 without those fixes for shared_ptr :/ kmix + oss4 works, but mixer behave weird: changing master changes several other mixers, it also disables locking right/left channels and changes them separately, and mute does not work. So for me it is not usable. I tried it with recently updated oss-devel-9999 + pf-sources-3.3.1 built completely without alsa-support.
Created attachment 311589 [details] fix shared_ptrs, again Former patch made kmix crash on shutdown - using different shared_ptrs on the same pointer is not a good solution... (don't know how this ever could have worked... operator= on an implicit created shared_ptr should work, but addToPool creates a completely new shared_ptr-instance with a new ref-counter - it should have crashed yet in the past) Nevertheless, the issues with weird mixer behaviour remain.
> Nevertheless, the issues with weird mixer behaviour remain. Fixed by rebuilding oss-devel (there were no commits to the repo since I installed it the last time, so something else must have broken oss4...) Now only muting master must get fixed.
Upstream has no objections to Franz's patch, so if there are no further issues raised, I will commit it both here and upstream soon.
Thanks everyone. + 17 May 2012; Michael Palimaka <kensington@...> + +files/kmix-4.8.3-oss4.patch, kmix-4.8.3.ebuild: + Fix build with OSS4. Patch by Franz Fellner <alpine.art.de <at> googlemail.com>. + Fixes bug #415573. Also pushed upstream: http://quickgit.kde.org/?p=kmix.git&a=commit&h=380102b7150228b7057bbaae4bc2a73f13d3a9fc http://quickgit.kde.org/?p=kmix.git&a=commit&h=a0308d01123ec01bf19fd420273907ddf0a9fd6f