Bug 237020 - media-libs/plib-1.8.5 - /usr/include/plib/puSDL.h has wrong include for SDL.h
Bug#: 237020 Product:  Gentoo Linux Version: unspecified Platform: All
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: games@gentoo.org Reported By: polynomial-c@gentoo.org
Component: Library
URL: 
Summary: media-libs/plib-1.8.5 - /usr/include/plib/puSDL.h has wrong include for SDL.h
Keywords:  
Status Whiteboard: 
Opened: 2008-09-07 22:27 0000
Description:   Opened: 2008-09-07 22:27 0000
Hi,

this happened when I tried to compile games-simulation/flightgear-1.0.0 which
depends on media-libs/plib:

x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../../src/Include -I../..
-I../../src  -I/usr/X11R6/include  -march=opteron -mtune=opteron -O2
-finline-functions -pipe -D_REENTRANT -c -o aircraft.o aircraft.cxx
In file included from /usr/include/plib/pu.h:1591,
                 from ../../src/GUI/gui.h:36,
                 from ../../src/Cockpit/hud.hxx:60,
                 from aircraft.cxx:42:
/usr/include/plib/puSDL.h:32:17: error: SDL.h: No such file or directory
In file included from /usr/include/plib/pu.h:1591,
                 from ../../src/GUI/gui.h:36,
                 from ../../src/Cockpit/hud.hxx:60,
                 from aircraft.cxx:42:
/usr/include/plib/puSDL.h: In function 'void puGetWindowSizeSDL(int*, int*)':
/usr/include/plib/puSDL.h:42: error: 'SDL_Surface' was not declared in this
scope
/usr/include/plib/puSDL.h:42: error: 'display' was not declared in this scope
/usr/include/plib/puSDL.h:42: error: 'SDL_GetVideoSurface' was not declared in
this scope
make[2]: *** [aircraft.o] Error 1
make[2]: Leaving directory
`/var/tmp/portage/games-simulation/flightgear-1.0.0/work/FlightGear-1.0.0/src/Aircraft'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/var/tmp/portage/games-simulation/flightgear-1.0.0/work/FlightGear-1.0.0/src'
make: *** [all-recursive] Error 1

I looked into "/usr/include/plib/pu.h" and it includes SDL.h this way:

#include "SDL.h"

which is wrong because the only SDL.h I have installed resides in
"/usr/include/SDL/SDL.h". So the correct include should be:

#include "SDL/SDL.h"


barcelona:~ # emerge -qpv libsdl plib
[ebuild   R   ] media-libs/libsdl-1.2.13  USE="X -aalib alsa -arts
-custom-cflags -dga -directfb -esd -fbcon -ggi -libcaca -nas -noaudio
-nojoystick -novideo opengl -oss -pulseaudio (-svga) -xinerama xv"
[ebuild   R   ] media-libs/plib-1.8.5
barcelona:~ # emerge --info
Portage 2.1.5.6 (default/linux/amd64/2008.0/desktop, gcc-4.2.4, glibc-2.7-r2,
2.6.25.16 x86_64)
=================================================================
System uname: 2.6.25.16 x86_64 Quad-Core AMD Opteron(tm) Processor 2354
Timestamp of tree: Sun, 07 Sep 2008 18:00:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7, 2.1.6-r1
dev-lang/python:     2.5.2-r7
dev-util/ccache:     2.4-r7
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.2.5
sys-apps/sandbox:    1.2.18.1-r3
sys-devel/autoconf:  2.13, 2.62-r1
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.4
virtual/os-headers:  2.6.25-r4
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=opteron -mtune=opteron -O2 -finline-functions -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config
/usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/X11/Sessions /etc/X11/app-defaults /etc/X11/xinit
/etc/bash_completion.d /etc/bonobo-activation /etc/ca-certificates.conf
/etc/cups /etc/dbus-1 /etc/env.d /etc/env.d/java/ /etc/eselect/compiler
/etc/fish /etc/fonts /etc/fonts/fonts.conf /etc/foomatic /etc/gconf
/etc/gentoo-release /etc/gimp /etc/gnome-vfs-2.0 /etc/gtk /etc/gtk-2.0
/etc/hotplug /etc/hotplug.d /etc/imlib /etc/init.d /etc/iproute2 /etc/nas
/etc/ntop /etc/pam.d /etc/pango /etc/profile.d /etc/revdep-rebuild /etc/sasl2
/etc/sgml /etc/ssl /etc/ssmtp /etc/t1lib /etc/terminfo /etc/udev/rules.d
/etc/xinetd.d /etc/xml /etc/zsh"
CXXFLAGS="-march=opteron -mtune=opteron -O2 -finline-functions -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--alphabetical --with-bdeps=y"
FEATURES="ccache collision-protect distlocks parallel-fetch sandbox sfperms
strict unmerge-orphans userfetch userpriv usersandbox"
GENTOO_MIRRORS="ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror
ftp://ftp.tu-clausthal.de/pub/linux/gentoo http://distfiles.gentoo.org
http://www.ibiblio.org/pub/Linux/distributions/gentoo"
LDFLAGS="-Wl,-O1,--hash-style=gnu,--sort-common,--as-needed"
LINGUAS="de"
MAKEOPTS="-j7"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
--force --whole-file --delete --stats --timeout=180 --exclude=/distfiles
--exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://192.168.0.254/gentoo-portage"
USE="3dnow 3dnowext X a52 aac acpi alsa amd64 amd64codecs asf avi berkdb
branding bzip2 cairo cdparanoia cdr cli cracklib crypt cups dvd dvdr dvdread
emboss encode fam ffmpeg flac gdbm gif gnutls gpg gtk gtk2 iconv idn
imagemagick imlib isdnlog jpeg kde kdehiddenvisibility lame libwww mad midi
mikmod mjpeg mmx mmxext mp3 mpeg mudflap multilib ncurses nls nptl nptlonly
nsplugin ogg oggvorbis opengl pam pcre pdf png pppd qt3 qt3support quicktime
readline reflection sdl session silc slang smp spell spl sse sse2 ssl
startup-notification svg sysfs tga theora threads tiff truetype usb v4l2 vcd
vorbis x264 xcomposite xml xml2 xorg xprint xulrunner xv xvid zlib"
ALSA_CARDS="emu10k1 hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix
dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter
mmap_emul mulaw multi null plug rate route share shm softvol" ELIBC="glibc"
INPUT_DEVICES="keyboard mouse" KERNEL="linux" LINGUAS="de" USERLAND="GNU"
VIDEO_CARDS="nv nvidia"
Unset:  CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, LANG, LC_ALL,
PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

Reproducible: Always

Steps to Reproduce:
I only tried to emerge flightgear on my ~amd64 machine:
1.) emerge flightgear
2.) watch flightgear failing with the above mentioned error...

------- Comment #1 From Lars Wendler (Polynomial-C) 2008-09-07 22:31:51 0000 -------
Created an attachment (id=164861) [details]
plib-1.8.5.ebuild.patch

Possible fix. Some sed action which corrects the include during src_unpack()

------- Comment #2 From Rafał Mużyło 2008-09-08 00:45:40 0000 -------
Actually, as 'pkg-config sdl --cflags' returns:
-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL
the problem lies probably elsewhere (maybe something gets
misdetected at configure).

------- Comment #3 From Lars Wendler (Polynomial-C) 2008-09-08 01:12:10 0000 -------
whoops, fixed summary...

------- Comment #4 From Wormo 2008-09-08 06:31:13 0000 -------
Please attach the full build log, and how about config.log from flightgear

------- Comment #5 From Lars Wendler (Polynomial-C) 2008-09-08 12:10:53 0000 -------
Created an attachment (id=164898) [details]
plib-1.8.5 build.log

------- Comment #6 From Lars Wendler (Polynomial-C) 2008-09-08 12:16:07 0000 -------
Created an attachment (id=164899) [details]
flightgear-1.0.0 config.log

------- Comment #7 From Mr. Bones. 2008-09-08 17:20:34 0000 -------
"SDL.h" is the recommended way to use SDL.  I patched the configure for
flightgear to use sdl-config to pick up the include file directory.