Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 415573 - kde-base/kmix-4.8.3 fails build with oss4
Summary: kde-base/kmix-4.8.3 fails build with oss4
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo KDE team
URL: https://bugs.kde.org/show_bug.cgi?id=...
Whiteboard: Fixed in 4.8.4
Keywords:
Depends on:
Blocks: kde-4.8.3-stable
  Show dependency tree
 
Reported: 2012-05-12 13:02 UTC by Lukas Zavodny
Modified: 2012-05-17 18:44 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
additional patch to make kmix compile with gcc-4.6.x (oss4_shared_ptr.patch,905 bytes, text/plain)
2012-05-12 19:15 UTC, Franz Trischberger
Details
fix shared_ptrs, again (oss4_shared_ptr_3.patch.org,3.33 KB, text/plain)
2012-05-13 07:26 UTC, Franz Trischberger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lukas Zavodny 2012-05-12 13:02:53 UTC
[ 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
Comment 1 Franz Trischberger 2012-05-12 13:57:36 UTC
https://bugs.kde.org/show_bug.cgi?id=292595
Comment 2 Michael Palimaka (kensington) gentoo-dev 2012-05-12 16:19:28 UTC
Can anyone using OSS4 confirm that with the patch attached to the upstream bug, KMix functions correctly?
Comment 3 Franz Trischberger 2012-05-12 17:51:13 UTC
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.
Comment 4 Franz Trischberger 2012-05-12 19:15:26 UTC
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.
Comment 5 Franz Trischberger 2012-05-13 07:26:16 UTC
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.
Comment 6 Franz Trischberger 2012-05-13 07:37:10 UTC
> 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.
Comment 7 Michael Palimaka (kensington) gentoo-dev 2012-05-17 14:07:32 UTC
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.
Comment 8 Michael Palimaka (kensington) gentoo-dev 2012-05-17 18:42:14 UTC
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