Bugzilla Bug 77563 k3b depends on media-libs/libsamplerate is wrong. there is no need for that library and i will not install that to blow my system and others sure do not like that, too. Please add it with USE-Flag or drop it. Thanks! Reproducible: Always Steps to Reproduce: 1. k3b Actual Results: k3b: error while loading shared libraries: libsamplerate.so.0: cannot open shared object file: No such file or directory does _not_ happen! Expected Results: drop that dependency or add USE-Flag, thanks! anomalie ~ # emerge info Portage 2.0.51-r8 (default-linux/x86/2004.3, gcc-3.4.3, glibc-2.3.4.20041102-r0, 2.6.10-ano1 i686) ================================================================= System uname: 2.6.10-ano1 i686 Intel(R) Pentium(R) 4 CPU 2.80GHz Gentoo Base System version 1.6.8 Python: dev-lang/python-2.4 [2.4 (#1, Dec 21 2004, 18:16:26)] dev-lang/python: 2.4 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.8.5-r2, 1.6.3, 1.9.3, 1.5, 1.7.9 sys-devel/binutils: 2.15.94.0.1, 2.15.94.0.2 sys-devel/libtool: 1.5.10-r2 virtual/os-headers: 2.6.8.1-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O2 -mtune=pentium4 -march=pentium4 -pipe -fforce-addr -fforce-mem -momit-leaf-frame-pointer -fomit-frame-pointer -fweb -ftracer -frename-registers" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -mtune=pentium4 -march=pentium4 -pipe -fforce-addr -fforce-mem -momit-leaf-frame-pointer -fomit-frame-pointer -fweb -ftracer -frename-registers -fvisibility-inlines-hidden" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms" GENTOO_MIRRORS="http://ftp.uni-erlangen.de/pub/mirrors/gentoo http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://gentoo.inode.at/ ftp://gentoo.inode.at/source/" LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X aalib acpi alsa apache2 avi berkdb bitmap-fonts cdr cups curl dga dts dvd dvdr dvdread fastcgi fbcon gd gif glx gpm gtk gtk2 hardenedphp icq imap imlib ipv6 java jpeg ldap lesstif libwww mad mbox mmx mmx2 motif mpeg multislot mysql ncurses nls nptl nptlonly nvidia oggvorbis opengl pam pdflib perl png python qt quicktime readline sasl sdl sse sse2 ssl tcltk tcpd tiff truetype truetype-fonts type1-fonts unicode usb userlocales vhosts videos wmf wxwindows x86 xface xinerama xml xml2 xmms xprint xv xvid zlib video_cards_nvidia linguas_de"
to be precise: k3b will link to libsamplerate if it founds it on the system, and will use an internal copy if it can't find it. Probably k3b will need a patch to not link to the system one even if it is present... will look into it.
would be more interesting what USE-Flags and packages the one had/has that got that linking error. Having that linked could be useful for some but not for all like me. I do not see where it links internally to libsamplerate. I will attach output of 'ldd /usr/bin/k3b' and 'equery files k3b' - can be ignored this part ;)
Created attachment 48289 [details] . the output
hm, and how did it "found" libsamplerate on that ones box if it was not there?
> I do not see where it links internally to libsamplerate nm -DC /usr/lib/libk3bplugin.so.2.0.0 |grep src_set_ratio > hm, and how did it "found" libsamplerate on that ones box if it was not there? ???
i mean, the reporter of that mentioned bug had that missing lib error. i am wondering how that could be. I do not have libsamplerate merged and I do not get that error. He seemed to not have it either but it errored out. Why?! Does he use any other USE-Flag(s) or merged any other program that this could happen?
> He seemed to not have it either but it errored out. He stated that he _had_ libsamplerate, then he removed it, and k3b broke. It seems reasonable.
ah, ok. thanks for pointer. but still i hope that this lib will be optional or dropped from the ebuild somewhen. thanks :)
Fixed in 0.11.18-r1, added patch to force compilation against internal libsamplerate.
what is the problem with libsamplerate? It is used by many other programs. So why is it a problem to use _ONE_ system lib, instead a replika?
by many? i did not have it. i just do not want to bloat my system with libraries or programs i never use. my point of view. also, k3b went fine for long without it so why adding unnessecary stuff? if someone really want system's libsamplerate adding a USE-Flag for it i would suggest.
Hanno: K3b depends on libsamplerate in any case, but now it uses the one, which comes with K3b instead the one of the system. Gregorio: I don't understand this either. Usually you don't want to have more than one libsamplerate using the precious ram.
i did not say at least did not meant that it does _not_ depend on any libsamplerate. it did _not_ depend on system's one. i hope it is clear now.
I'm open to suggestions: - depend unconditionally on the external libsamplerate (dissatisfy dont-want-a-bloated-system people) - add use flag to select between then (dissatisfy there-are-too-much-useflags people) - always link against internal copy (dissatisfy dont-waste-my-system-resources people) I belong to all three categories, so I lose in any case ;) take your pick!
well, im used to edit ebuilds because of unwanted dependencies using own script around emerge sync already. did not think in that impact that Carsten mentioned with double ram usage have way enough of it. better to add it so. but i will drop it because it would be the only libsamplerate lib on system i hope. ;)
ah forgot to add: there cannot be too many use flags for a distro which is up to choices. :P hope my english is not that bad :(
yes, libsamplerate is used by some audio-tools, i.e. bmp-crossfade and others! it's a very cool lib! If YOU don't need it, it's YOUR problem. An USE-flag is ok, but removing it at all is A VERY BAD IDEA!
btw: there's already an USE-flag called 'libsamplerate'. So why don't we just use it?
Because it's not logical. If you add an use "libsamplerate" an user will think that you can enable/disable the use of that lib. Now instead, we'll always use it but we have to choose which one to use (the one provided by k3b or the system one).
i did not really think in the cause i would do with this thread. but again thinking about this situation it is really the best to add libsamplerate to k3b ebuild reason given by comment #12 from Carsten Lohrke. ugly hackers like me just drop it from ebuild by script or manual or overlay or what-/however.
why i initially reported here? i saw that other bugreport and thought 'hey i do not have libsamplerate installed but k3b works just fine. so let's report it is not needed.' now i see, again, the reason from Carsten as the correct solution. k3b uses libsamplerate anyway it is merged. having libsamplerate as standalone merged lib and linking k3b against it is sane in memory management and sane in general because other packages link against it, too. blah blah beer ;) what i miss was the reason why it was added now. just because someone had libsamplerate, unmerged it and k3b breaks is normal if k3b was linked against it. i thought revdep-rebuild would solve that as well. that confused me which drove me here. again, i am sorry about this report. it is invalid i would say...
Ok. Carsten, just revert, or tell me to do so.
there're other ebuilds out there, where we have the problem, that you can't enable/disable features, because the configure-scripts is too intelligent and enables a feature, if it finds the corresponding lib. So I don't have a problem with an USE-flag, which disables the dependency. If it is not installed, it will not be included. And because of the useflag-dependency, it will not be installed anymore. Best solution of course would be a patch for the configure-script. But this should be done upstream! So my suggestion is: USE-flag "libsamplerate" + "use_enable libsamplerate". Furthermore: tell the upstream to fix the configure-script to be not so "intelligent".
I just committed k3b-0.11.19, and readded the dependencies to libsamplerate. Anyone feel free to change it the way you like, I really don't care much.
You were a few hours faster than me, Gregorio. :) Just want to add a comment: I think we should always prefer system libs, because of a) the unneeded memory consumption, if libraries are not shared and more important b) in case of a vulnerability we and the security herd have unnecessarily an extra maintenance job to do.