emerge kdemultimedia - results: ... x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../arts/runtime -I../../arts/runtime -I/usr/kde/3.3/include/arts -I/usr/kde/3.3/include -I/usr/qt/3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -DNO_DEBUG -O2 -march=opteron -O2 -pipe -fomit-frame-pointer -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -c -o createtool.o createtool.cpp structure.cpp: In member function `virtual bool Structure::startExecute()': structure.cpp:109: error: `KArtsServer' undeclared (first use this function) structure.cpp:109: error: (Each undeclared identifier is reported only once for each function it appears in.) x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../arts/runtime -I../../arts/runtime -I/usr/kde/3.3/include/arts -I/usr/kde/3.3/include -I/usr/qt/3/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -DNO_DEBUG -O2 -march=opteron -O2 -pipe -fomit-frame-pointer -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -c -o structureport.o structureport.cpp make[4]: *** [structure.o] Error 1 make[4]: *** Waiting for unfinished jobs.... main.cpp:56:25: kartsserver.h: No such file or directory main.cpp: In member function `bool ArtsBuilderWindow::save(QString)': main.cpp:605: error: `KArtsServer' undeclared (first use this function) main.cpp:605: error: (Each undeclared identifier is reported only once for each function it appears in.) make[4]: *** [main.o] Error 1 make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2/arts/builder' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2/arts' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/kdemultimedia-3.3.2/work/kdemultimedia-3.3.2' make: *** [all] Error 2 Reproducible: Always Steps to Reproduce: 1. emerge kdemultimedia 2. 3. Actual Results: Compiler errors. Expected Results: Compilation success. Gentoo Base System version 1.6.8 Portage 2.0.51-r8 (default-linux/amd64/2004.3, gcc-3.4.3, glibc-2.3.4.20041102-r0, 2.6.9-gentoo-r10 x86_64) ================================================================= System uname: 2.6.9-gentoo-r10 x86_64 AMD Opteron(tm) Processor 246 Python: dev-lang/python-2.3.4 [2.3.4 (#1, Dec 21 2004, 18:04:02)] ccache version 2.3 [enabled] dev-lang/python: 2.3.4 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.5, 1.8.5-r2, 1.6.3, 1.7.9, 1.4_p6, 1.9.3 sys-devel/binutils: 2.15.92.0.2-r2 sys-devel/libtool: 1.5.10-r2, 1.5.10-r1, 1.5.2-r7 virtual/os-headers: 2.6.8.1-r1 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="no" CFLAGS="-march=opteron -O3 -pipe -fomit-frame-pointer" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /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/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/X11/xdm/Xservers /etc/fonts /etc/gconf /etc/rc.d /etc/rsync /etc/terminfo /etc/wget /etc/env.d" CXXFLAGS="-march=opteron -O3 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox userpriv usersandbox" GENTOO_MIRRORS="http://ftp.easynet.nl/mirror/gentoo/ ftp://ftp.easynet.nl/mirror/gentoo/ ftp://ftp.tu-clausthal.de/pub/linux/gentoo/" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="amd64 X acpi alsa arts berkdb bitmap-fonts cdr crypt cups dvd f77 fam flac foomaticdb fortran gif gimpprint gpm gstreamer gtk gtk2 imap ipv6 java jp2 jpeg kde lzw lzw-tiff motif multilib ncurses nls ofx oggvorbis opengl oss pam perl png ppds python qt quotes readline ssl tcpd tiff truetype usb userlocales xml xml2 xpm xrandr xv zlib linguas_en_GB"
I'm guessing you didn't compile kdelibs with the arts use flag turned on...
It seems you're right. I'll correct that and try again - thanks. However, is it proper behaviour for any setting of USE flags to cause a compilation error?
Not really, no, but there's no "real good way" to enforce this, unfortunately.
Caleb: Can't we add check for existence of e.g. "/usr/kde/3.3/lib/libartskde.la" in the eclass and provide the user with the necessary information this way!? Would be convenient for all of us, imho. :) btw. I'm just compiling koffice with the xpdf fix to be sure that it works, are you caring for kdegraphics?
I think vapier added a function in an eclass to perform this type of check - will have to look into it.
it's in the eutils eclass: # Hack for people to figure out if a package was built with # certain USE flags # # Usage: built_with_use <DEPEND ATOM> <List of USE flags> # ex: built_with_use xchat gtk2 built_with_use() Just also remember the mail I sent to you about this solution or the split of kdelibs in 2 parts.
carlo: yeah, will be as soon as I can. I'm under about 30cm of snow right now, so getting from work to home is a bit difficult :(
What about this patch. If you are OK I'll commit it.
Created attachment 49953 [details, diff] kde_eclass_arts_check.patch
Looks good from my POV. Only the error message needs to be surveyed by a native english speaker.
You are trying to compile xxx with the "arts" USE flag enabled. However, $(best_version kdelibs) was compiled with this flag disabled. You must either disable this use flag, or recompile $(best_version kdelibs) with this use flag enabled.
Dehehe. My english sucks... :P Ok to commit this patch?
Created attachment 50073 [details, diff] kde_eclass_arts_check.patch
Yeah, I like it.
I like the error message too. (Originator)
Time to commit?
Yes please do. I cannot do it now.
Ok, committed.
Is there a way to disable this checking? Since I'm a KDE developer, I use KDE CVS/HEAD sources and this new arts check causes errors when compiling a KDE program (such as kplayer). Someone on gentoo-user suggested a serious hack to /var/db/pkg/*/*/USE which seems to work.
If you are developing you shouldn't disable arts support or you should use your own arts/kdelibs compiled in a local dir.
*** Bug 91225 has been marked as a duplicate of this bug. ***
I just realized that (almost) all the ebuilds that have hard deps on arts (eg noatun, kdemultimedia-arts, artsplugin-*) are in fact missing those deps in $DEPEND. They only have the pkg_setup check for USE arts. Is there a particular reason for this? Shouldn't we add the dep? It would fix the case where kdelibs isn't installed and the user types 'emerge ... noatun ...'. arts is a dep, and will be merged, and that will turn on the arts use flag via use.defaults, and kdelibs will use it too. Well, that probably wouldn't happen, I don't think portage updates the use flags between sequential emerges based on use.default. Still, why are the deps missing? I must be forgetting something...
>Is there a particular reason for this? Shouldn't we add the dep? The implicit kdelibs depedency ant the check via eclass suffices imho. >and that will turn on the arts use flag via use.defaults You know, use.defaults is something I hate about portage, because it you can't rely on the defaults you set. Ebuilds should never tweak portage to set use flags. I know I'm not the only dev who thinks so and one day I will start pushing to bury this broken apprach.