Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 382361

Summary: media-tv/xbmc-10.1 fails to build when mysql headers are in /usr/include/ and not /usr/include/mysql/
Product: Gentoo Linux Reporter: Rafal Kupiec <belliash>
Component: New packagesAssignee: Gentoo Linux MySQL bugs team <mysql-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: xbox
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Rafal Kupiec 2011-09-09 09:37:18 UTC
It failing due to missing headers.
I mark this task as major as it is impossible to use this package ever. There is no working version in portage.

Reproducible: Always

Steps to Reproduce:
1. emerge xbmc
Actual Results:  
------------------------
  XBMC Configuration:
------------------------
  Debugging:    No
  Profiling:    No
  Optimization: No
  Crosscomp.:   No
  target ARCH:  no
  target CPU:   no
  OpenGL:       Yes
  VDPAU:        Yes
  VAAPI:        Yes
  CrystalHD:    No
  VDADecoder:   No
  OpenMax:      No
  Joystick:     No
  XRandR:       Yes
  GOOM:         Yes
  Bluray:       No
  MID Support:  No
  ccache:       No
  PulseAudio:   No
  HAL Support:  No
  FAAC:         Yes
  DVDCSS:       No
  Avahi:        No
  Non-free:     Yes
  ASAP Codec:   No
  Webserver:    No
  libRTMP support:      No
  Deprecated libdts:    No
  Deprecated liba52:    No
  External FFmpeg:      Yes
  External Python:      No
  prefix:       /usr
------------------------

>>> Source configured.
>>> Compiling source in /var/tmp/portage/media-tv/xbmc-10.1/work/xbmc-10.1 ...
make -j16 -s 
Making all in docsrc
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../libcpluff -I../libcpluff -DNDEBUG -I. -DCP_C_API=CP_EXPORT -DCP_HOST=\"x86_64-pc-linux-gnu\" -DCP_DATADIR=\"/usr/local/share\" -march=corei7 -mtune=corei7 -O2 -s -pipe -fomit-frame-pointer -finline-functions -ftree-vectorize -fgraphite-identity -floop-block -floop-interchange -floop-strip-mine -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG=1 -MT psymbol.lo -MD -MP -MF .deps/psymbol.Tpo -c psymbol.c  -fPIC -DPIC -o .libs/psymbol.o
In file included from ../Database.h:25:0,
                 from ../AddonDatabase.h:23,
                 from AddonManager.h:32,
                 from AddonManager.cpp:21:
../lib/sqLite/mysqldataset.h:30:25: fatal error: mysql/mysql.h: No such file or directory
compilation terminated.
make[1]: *** [AddonManager.o] Error 1
make[1]: *** Waiting for unfinished jobs....
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../libcpluff -I../libcpluff -DNDEBUG -I. -DCP_C_API=CP_EXPORT -DCP_HOST=\"x86_64-pc-linux-gnu\" -DCP_DATADIR=\"/usr/local/share\" -march=corei7 -mtune=corei7 -O2 -s -pipe -fomit-frame-pointer -finline-functions -ftree-vectorize -fgraphite-identity -floop-block -floop-interchange -floop-strip-mine -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG=1 -MT psymbol.lo -MD -MP -MF .deps/psymbol.Tpo -c psymbol.c -o psymbol.o >/dev/null 2>&1
In file included from ../Database.h:25:0,
                 from ../AddonDatabase.h:23,
                 from AddonManager.h:32,
                 from Addon.cpp:23:
../lib/sqLite/mysqldataset.h:30:25: fatal error: mysql/mysql.h: No such file or directory
compilation terminated.
make[1]: *** [Addon.o] Error 1
make: *** [xbmc/addons/addons.a] Error 2
make: *** Waiting for unfinished jobs....
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../libcpluff -I../libcpluff -DNDEBUG -I. -DCP_C_API=CP_EXPORT -DCP_HOST=\"x86_64-pc-linux-gnu\" -DCP_DATADIR=\"/usr/local/share\" -march=corei7 -mtune=corei7 -O2 -s -pipe -fomit-frame-pointer -finline-functions -ftree-vectorize -fgraphite-identity -floop-block -floop-interchange -floop-strip-mine -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG=1 -MT pscan.lo -MD -MP -MF .deps/pscan.Tpo -c pscan.c  -fPIC -DPIC -o .libs/pscan.o
In file included from Database.h:25:0,
                 from TextureDatabase.h:24,
                 from TextureCache.h:26,
                 from Application.cpp:76:
lib/sqLite/mysqldataset.h:30:25: fatal error: mysql/mysql.h: No such file or directory
compilation terminated.
make[1]: *** [Application.o] Error 1
make[1]: *** Waiting for unfinished jobs....


Expected Results:  
Build it fine

[ebuild   R     ] dev-db/mysql-5.1.58-r1  USE="berkdb community ssl -big-tables -cluster -debug -embedded -extraengine -latin1 -max-idx-128 -minimal -pbxt -perl -profiling (-selinux) -static -test -xtradb" 0 kB

[ebuild  N      ] media-tv/xbmc-10.1  USE="alsa sse sse2 udev vaapi vdpau xrandr (-altivec) -avahi -css -debug -joystick -midi -profile -pulseaudio -rtmp -webserver" 0 kB
Comment 1 Roy Bamford gentoo-dev 2011-09-12 20:59:35 UTC
dev-db/mysql-5.1.58-r1  USE="berkdb community perl ssl -big-tables -cluster -debug -embedded -extraengine -latin1 -max-idx-128 -minimal -pbxt -profiling (-selinux) -static -test -xtradb" 0 kB

in combination with  
media-tv/xbmc-10.1  USE="alsa css pulseaudio sse sse2 udev vdpau xrandr (-altivec) -avahi -debug -joystick -midi -profile -rtmp -vaapi -webserver"

causes xbmc to fail to build because xbmc is looking in the wrong place for errmsg.h and mysql.h.  These files exist in /usr/include/ but xbmc looks in /usr/include/mysql

The workaround/dirty hack is 
mkdir /usr/include/mysql
cd /usr/include/mysql
ln -s ../errmsg.h errmsg.h
ln -s  ../mysql.h mysql.h

This allows the above versions to build together.  It won't run for me, I get segfaults in the nvidia binary blob.
Comment 2 Roy Bamford gentoo-dev 2011-09-17 16:05:39 UTC
Builds and works with the workaround described in comment 1.

The run time failure with the nvidia binary blob is an unrelated known ndidia-drivers bug. nvidia-drivers needs /tmp mounted with the exec option or it won't do 3D.
Comment 3 Rafal Kupiec 2011-09-17 16:21:45 UTC
So maybe you can force mysql ebuild to create that symlinks? Nicer workaround and symlinks will be removed with mysql, so no trash will left.
Comment 4 SpanKY gentoo-dev 2011-09-18 00:48:23 UTC
mysql installs headers into /usr/include/mysql/ for me
Comment 5 Jorge Manuel B. S. Vicetto (RETIRED) Gentoo Infrastructure gentoo-dev 2011-09-18 01:00:05 UTC
You've probably hit bug 375063. Please make sure you rebuild mysql, after syncing the tree / overlay.
Comment 6 Jorge Manuel B. S. Vicetto (RETIRED) Gentoo Infrastructure gentoo-dev 2011-10-26 19:33:58 UTC
I'm closing as fixed as we haven't got any more bug reports about installing include files and libraries in the wrong path.