After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 623768 - libproxy build fail: "jsapi.h not found"
libproxy build fail: "jsapi.h not found"
Status: RESOLVED FIXED
Product: jhbuild
Classification: Infrastructure
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Jhbuild maintainers
Jhbuild QA
: 628558 (view as bug list)
Depends on: 628558
Blocks:
 
 
Reported: 2010-07-07 17:08 UTC by Frank Solensky
Modified: 2010-09-28 12:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
[2.32,3.0] Fixed mozilla-js.pc include path (2.54 KB, patch)
2010-09-10 20:46 UTC, Nicolas Dufresne (ndufresne)
none Details | Review

Description Frank Solensky 2010-07-07 17:08:27 UTC
Using jhbuild, building from scratch:
---
frank@frank:~$ jhbuild buildone  libproxy
*** Checking out libproxy *** [1/1]
gunzip -dc "/opt/gnome2/usr/src/libproxy-0.4.3.tar.gz" | tar xf -
*** Applying patch libproxy-0.4-python-libdir.patch *** [1/1]
patch -p1 < "/mnt/common/home/frank/.cache/jhbuild/libproxy-0.4-python-libdir.patch"
patching file bindings/CMakeLists.txt
patching file bindings/perl/CMakeLists.txt
*** Configuring libproxy *** [1/1]
cmake -DCMAKE_INSTALL_PREFIX=/opt/gnome2 /opt/gnome2/usr/src/libproxy-0.4.3
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/lib64/ccache/gcc
-- Check for working C compiler: /usr/lib64/ccache/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/lib64/ccache/c++
-- Check for working CXX compiler: /usr/lib64/ccache/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- CTest cannot determine repository type. Please set UPDATE_TYPE to 'cvs' or 'svn'. CTest update will not work.
-- checking for modules 'NetworkManager;dbus-1'
--   found NetworkManager, version 0.7.2.997
--   found dbus-1, version 1.2.24
-- checking for module 'webkit-1.0'
--   package 'webkit-1.0' not found
-- checking for one of the modules 'xulrunner-js;firefox-js;mozilla-js;seamonkey-js'
--   found mozilla-js, version 1.9.1.7
-- checking for modules 'gconf-2.0;gobject-2.0'
--   found gconf-2.0, version 2.31.6
--   found gobject-2.0, version 2.25.11
MODULES TO BUILD:
	*	config_envvar
	m	config_gnome
		config_kde4
		config_macosx
		config_w32reg
	*	ignore_domain
	*	ignore_hostname
	*	ignore_ip
	m	network_networkmanager
	*	pacrunner_mozjs
		pacrunner_webkit
	*	wpad_dns_alias

-- Found PythonInterp: /usr/bin/python2.6
-- Found Perl: /usr/bin/perl
-- Found PerlLibs: /usr/lib64/perl5/CORE/libperl.so
-- Configuring done
-- Generating done
-- Build files have been written to: /mnt/common/opt/gnome2/usr/src/libproxy-0.4.3
*** Building libproxy *** [1/1]
make
Scanning dependencies of target libmodman
[  2%] Building CXX object libmodman/CMakeFiles/libmodman.dir/module_manager.cpp.o
Linking CXX shared library libmodman.so
...
[ 68%] Building CXX object libproxy/CMakeFiles/libproxy.dir/modules/ignore_ip.cpp.o
[ 71%] Building CXX object libproxy/CMakeFiles/libproxy.dir/modules/pacrunner_mozjs.cpp.o
/opt/gnome2/usr/src/libproxy-0.4.3/libproxy/modules/pacrunner_mozjs.cpp:34:19: error: jsapi.h: No such file or directory
/opt/gnome2/usr/src/libproxy-0.4.3/libproxy/modules/pacrunner_mozjs.cpp:45: error: ‘JSBool’ does not name a type
...
/opt/gnome2/usr/src/libproxy-0.4.3/libproxy/modules/pacrunner_mozjs.cpp:158: error: ‘JS_GetStringBytes’ was not declared in this scope
make[2]: *** [libproxy/CMakeFiles/libproxy.dir/modules/pacrunner_mozjs.cpp.o] Error 1
make[1]: *** [libproxy/CMakeFiles/libproxy.dir/all] Error 2
make: *** [all] Error 2
*** Error during phase build of libproxy: ########## Error running make *** [1/1]
---

I don't know if this matters or not but xlrunner-devel-1.9.2.4-1.fc13 (x86_64) is installed on this system and includes jsapi.h.  However the search for javascript modules skipped over xlrunner and went to mozilla-js instead.

Thanks in advance..
Comment 1 Frank Solensky 2010-07-15 04:28:18 UTC
It's a bit of a hack but I've got a workaround once a compile fails:
- edit libproxy/CMakeFiles/libproxy.dir/flags.make
- the value of CXX_FLAGS needs to add -I<prefix>/include/xulrunner-1.9.1.7/unstable

The "stable" directory is included in CXX_FLAGS but the "unstable" directory (where 'jsapi.h' is installed) is not.
Comment 2 Fabio Durán Verdugo 2010-07-29 22:46:06 UTC
Yes is True the problem is solve, but this bug is part of GNOME? I Dont Know....
Comment 3 Frank Solensky 2010-07-30 02:19:00 UTC
I'm not sure either.  I ran into this while trying to pull a gnome-3 sandbox together so it's either libproxy or that the gnome-3 build is one dot-rev behind (http://code.google.com/p/libproxy/ indicates current is 0.4.4; jhbuild is offering 0.4.3)
Comment 4 Gil Forcada 2010-08-07 12:48:50 UTC
I'm hitting the same issue.

Seems xulrunner's fault though: http://www.mail-archive.com/slackbuilds-users@slackbuilds.org/msg03622.html

I also tried to update the libproxy versin to 0.4.4 but it also fails
Comment 5 Gil Forcada 2010-08-08 18:44:01 UTC
Ok,

I made it work just by:

cd /opt/gnome/install/include/xulrunner-1.9.1.7
cp unstable/js* stable/

What I found weird is that libproxy needs this files which come from xulrunner but on libproxy jhbuld info it says that libproxy has to go BEFORE mozilla, so on a clean scenario (i.e. your first build) you get a circular dependency because when builiding libproxy there will still not be any js* files.
Comment 6 Nicolas Dufresne (ndufresne) 2010-09-09 15:08:05 UTC
(In reply to comment #5)
> Ok,
> 
> I made it work just by:
> 
> cd /opt/gnome/install/include/xulrunner-1.9.1.7
> cp unstable/js* stable/

Actually the bug is in mozilla-js.pc file, no in libproxy, see bug 628558 for a fix. Updating to xulrunner 1.9.2 would also make it work since this bug is fixed upstream.

> 
> What I found weird is that libproxy needs this files which come from xulrunner
> but on libproxy jhbuld info it says that libproxy has to go BEFORE mozilla, so
> on a clean scenario (i.e. your first build) you get a circular dependency
> because when builiding libproxy there will still not be any js* files.

Not a jhbuild expert, but I think after is applied to libproxy, meaning that if mozilla or WebKit is part of your build, you should build libproxy after those.
Comment 7 Nicolas Dufresne (ndufresne) 2010-09-10 20:46:12 UTC
Created attachment 169991 [details] [review]
[2.32,3.0] Fixed mozilla-js.pc include path

This fixes mozilla-js.pc include path and fixes libproxy compilation at the same time.
Comment 8 Nicolas Dufresne (ndufresne) 2010-09-10 20:46:31 UTC
*** Bug 628558 has been marked as a duplicate of this bug. ***
Comment 9 Frederic Peters 2010-09-28 12:47:41 UTC
It's finally in.

commit 9c8d8f7c0cfca82b6df71bf8d0715ad4c79d0b4b
Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Date:   Tue Sep 28 14:15:19 2010 +0200

    [2.32, 3.0] Fixed mozilla-js.pc include path
    
    In xulrunner 1.9.1 the JavaScript engine headers are found in unstable
    folder of the includes directory while mozilla-js.pc says it's in
    stable. This fixes libproxy build against mozilla.