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

Bug 340231

Summary: xulrunner-1.9.2.9-r1: at least the libxul-embedding.pc should contain nspr --cflags as it depends on nspr headers
Product: Gentoo Linux Reporter: Ingo Krabbe <ikrabbe.ask>
Component: Current packagesAssignee: Mozilla Gentoo Team <mozilla>
Status: RESOLVED INVALID    
Severity: normal    
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Ingo Krabbe 2010-10-09 09:47:16 UTC
I tried to build yelp from git sources against --enable-gecko=libxul-embedding, which fails prominently due to prtypes.h missing from nscore.h

The yelp ebuild seems to be patched against that bug, but actually xulrunner should be patched or modified that the pkg-config file contains that right dependency.

Reproducible: Always

Steps to Reproduce:
Build your own yelp-2.30.2 from git repository against xulrunner-1.9.2.9-r1 with use flags:
     Installed versions:  1.9.2.9-r1(1.9)(23:25:09 23.09.2010)(alsa cups dbus gnome ipc libnotify -custom-optimization -debug -elibc_FreeBSD -java -startup-notification -system-sqlite -wifi)

./configure --prefix=/usr --enable-gecko=libxul-embedding

make
Actual Results:  
make[3]: Entering directory `/home/ingo/Software/gtk-devel/yelp/src'
g++ -DHAVE_CONFIG_H -I. -I..  -I.. -I../src -DG_LOG_DOMAIN=\"Yelp\" -DPREFIX=\""/usr"\" -DSYSCONFDIR=\""/usr/etc"\" -DDATADIR=\""/usr/share"\" -DLIBDIR=\""/usr/lib"\" -DIMAGEDIR=\""/usr/share/images/yelp"\" -DSERVERDIR=\"/usr/libexec\" -DBINDIR=\""/usr/bin"\" -DSHAREDIR=\""/usr/share/yelp"\" -DMOZILLA_HOME=\""\"" -DGDU_ICON_PATH=\"/usr/share/gnome-doc-utils/icons\"  -DXPCOM_GLUE -fshort-wchar -I/usr/include/xulrunner-1.9.2   -DXPCOM_GLUE -fshort-wchar -I/usr/include/xulrunner-1.9.2   -DXPCOM_GLUE -fshort-wchar -I/usr/include/xulrunner-1.9.2   -I/usr/include/xulrunner-1.9.2/unstable/. -I/usr/include/xulrunner-1.9.2/unstable/commandhandler -I/usr/include/xulrunner-1.9.2/unstable/content -I/usr/include/xulrunner-1.9.2/unstable/docshell -I/usr/include/xulrunner-1.9.2/unstable/dom -I/usr/include/xulrunner-1.9.2/unstable/fastfind -I/usr/include/xulrunner-1.9.2/unstable/find -I/usr/include/xulrunner-1.9.2/unstable/gtkembedmoz -I/usr/include/xulrunner-1.9.2/unstable/gfx -I/usr/include/xulrunner-1.9.2/unstable/layout -I/usr/include/xulrunner-1.9.2/unstable/necko -I/usr/include/xulrunner-1.9.2/unstable/pref -I/usr/include/xulrunner-1.9.2/unstable/string -I/usr/include/xulrunner-1.9.2/unstable/uriloader -I/usr/include/xulrunner-1.9.2/unstable/webbrwsr -I/usr/include/xulrunner-1.9.2/unstable/webshell -I/usr/include/xulrunner-1.9.2/unstable/widget -DEGG_SM_CLIENT_BACKEND_XSMP  -pthread -DORBIT2=1 -DQT_SHARED -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gtk-2.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/qt4 -I/usr/include/qt4/QtGui -I/usr/include/libdrm -I/usr/include/qt4/QtCore -I/usr/include/libxml2 -I/usr/include/startup-notification-1.0 -I/usr/include/rarian    -DXPCOM_GLUE -fshort-wchar -I/usr/include/xulrunner-1.9.2   -DXPCOM_GLUE -fshort-wchar -I/usr/include/xulrunner-1.9.2   -DXPCOM_GLUE -fshort-wchar -I/usr/include/xulrunner-1.9.2   -fno-rtti  -fshort-wchar -g -O2 -Wall -Wno-unused  -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -g -O2 -MT yelp-Yelper.o -MD -MP -MF .deps/yelp-Yelper.Tpo -c -o yelp-Yelper.o `test -f 'Yelper.cpp' || echo './'`Yelper.cpp
In file included from /usr/include/xulrunner-1.9.2/nsXPCOMStrings.h:42,
                 from /usr/include/xulrunner-1.9.2/nsStringAPI.h:53,
                 from Yelper.cpp:28:
/usr/include/xulrunner-1.9.2/nscore.h:51:21: error: prtypes.h: No such file or directory
In file included from Yelper.cpp:28:
/usr/include/xulrunner-1.9.2/nsStringAPI.h:55:19: error: prlog.h: No such file or directory
In file included from Yelper.cpp:30:
/usr/include/xulrunner-1.9.2/gtkmozembed.h:57:1: warning: "NS_HIDDEN" redefined
In file included from /usr/include/xulrunner-1.9.2/nsXPCOMStrings.h:42,
                 from /usr/include/xulrunner-1.9.2/nsStringAPI.h:53,
                 from Yelper.cpp:28:

[and so on ...]

Expected Results:  
beautiful silence and happiness about a running make

that error simply comes from missing -I/usr/include/nspr which should be contained in libxul-embedding.pc --cflags.
Comment 1 Ingo Krabbe 2010-10-09 09:51:26 UTC
All that needs to be done is adding

Requires: nspr

to the libxul-embedding.pc

Comment 2 Jory A. Pratt gentoo-dev 2010-10-09 12:41:46 UTC
Yelp needs to depend on nspr, there is nothing specific about embedding needing to depend on nspr.
Comment 3 Ingo Krabbe 2010-10-09 14:21:12 UTC
I don't think that this is true, as yelp just includes nscore.h from xulrunner, that again depends on prtypes.h (as seen in the error log), that prtypes.h is again from nspr, so finally yelp just depends on nspr because the xulrunner file depends on it.

I really cannot understand how you can close a bug with such a lapidar message, without going deeper into that topic.  Please explain why yelp might still depend directly on nspr and no other package that include nscore.h from xulrunner does.
Comment 4 Jory A. Pratt gentoo-dev 2010-10-09 23:42:02 UTC
Please do not reopen this, we have already had this discussion upstream and will not change our decision in the distro. Nothing about libxul-embedding depends on nspr being avaliable hense there is no reason for it to be required. Yelp needs to check for the libs that it needs, not depend on packages providing them for it.
Comment 5 Ingo Krabbe 2010-10-10 04:16:04 UTC
Ok I will leave this bug closed then, but I assume now you came to the wrong solution in your discussion with upstream.