Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 75315 - Use built_with_use() to check that kdelibs is compiled with arts
Summary: Use built_with_use() to check that kdelibs is compiled with arts
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: AMD64 Linux
: High major (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
: 91225 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-12-22 07:34 UTC by Peter Humphrey
Modified: 2005-07-28 04:07 UTC (History)
1 user (show)

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


Attachments
kde_eclass_arts_check.patch (kde_eclass_arts_check.patch,1014 bytes, patch)
2005-01-30 09:06 UTC, Simone Gotti (RETIRED)
Details | Diff
kde_eclass_arts_check.patch (kde_eclass_arts_check.patch,1008 bytes, patch)
2005-01-31 13:52 UTC, Simone Gotti (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Humphrey 2004-12-22 07:34:01 UTC
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"
Comment 1 Caleb Tennis (RETIRED) gentoo-dev 2004-12-22 07:52:57 UTC
I'm guessing you didn't compile kdelibs with the arts use flag turned on...
Comment 2 Peter Humphrey 2004-12-22 08:11:14 UTC
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?
Comment 3 Caleb Tennis (RETIRED) gentoo-dev 2004-12-22 08:17:25 UTC
Not really, no, but there's no "real good way" to enforce this, unfortunately.
Comment 4 Carsten Lohrke (RETIRED) gentoo-dev 2004-12-22 08:41:59 UTC
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?
Comment 5 Caleb Tennis (RETIRED) gentoo-dev 2004-12-22 09:52:57 UTC
I think vapier added a function in an eclass to perform this type of check - will have to look into it.
Comment 6 Simone Gotti (RETIRED) gentoo-dev 2004-12-22 10:00:15 UTC
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.
Comment 7 Caleb Tennis (RETIRED) gentoo-dev 2004-12-22 10:08:40 UTC
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 :(
Comment 8 Simone Gotti (RETIRED) gentoo-dev 2005-01-30 09:06:12 UTC
What about this patch. If you are OK I'll commit it.
Comment 9 Simone Gotti (RETIRED) gentoo-dev 2005-01-30 09:06:41 UTC
Created attachment 49953 [details, diff]
kde_eclass_arts_check.patch
Comment 10 Carsten Lohrke (RETIRED) gentoo-dev 2005-01-31 12:02:56 UTC
Looks good from my POV. Only the error message needs to be surveyed by a native english speaker.
Comment 11 Caleb Tennis (RETIRED) gentoo-dev 2005-01-31 12:10:14 UTC
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.
Comment 12 Simone Gotti (RETIRED) gentoo-dev 2005-01-31 13:52:29 UTC
Dehehe. My english sucks... :P

Ok to commit this patch?
Comment 13 Simone Gotti (RETIRED) gentoo-dev 2005-01-31 13:52:51 UTC
Created attachment 50073 [details, diff]
kde_eclass_arts_check.patch
Comment 14 Caleb Tennis (RETIRED) gentoo-dev 2005-01-31 13:55:02 UTC
Yeah, I like it.
Comment 15 Peter Humphrey 2005-02-01 02:15:04 UTC
I like the error message too. (Originator)
Comment 16 Gregorio Guidi (RETIRED) gentoo-dev 2005-02-15 15:21:48 UTC
Time to commit?
Comment 17 Simone Gotti (RETIRED) gentoo-dev 2005-02-16 00:35:22 UTC
Yes please do. I cannot do it now.
Comment 18 Gregorio Guidi (RETIRED) gentoo-dev 2005-02-16 03:37:00 UTC
Ok, committed.
Comment 19 Kurt Hindenburg 2005-03-19 16:13:05 UTC
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.
Comment 20 Simone Gotti (RETIRED) gentoo-dev 2005-03-20 06:49:20 UTC
If you are developing you shouldn't disable arts support or you should use your own arts/kdelibs compiled in a local dir.
Comment 21 Dan Armak (RETIRED) gentoo-dev 2005-05-25 11:20:59 UTC
*** Bug 91225 has been marked as a duplicate of this bug. ***
Comment 22 Dan Armak (RETIRED) gentoo-dev 2005-07-28 03:23:28 UTC
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... 
Comment 23 Carsten Lohrke (RETIRED) gentoo-dev 2005-07-28 04:07:45 UTC
>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.