JSCall# Packages for Ubuntu Edgy

Now that Ubuntu Edgy has gone final, and I'm no longer tracking the beta, I've made some checkinstall packages for JSCall#. Although JSCall# originated as the native part of AspNetEdit, it has other uses as a limited Gecko-C# bridge. You'll obviously need Firefox, though I don't think there are any other hard dependencies. If a Firefox update breaks the packages, please add a comment to this post to tell me, and I'll rebuild them. There's an AMD64 and an i386 version.

Anyone who's interested in trying AspNetEdit will still have to build MonoDevelop, but will no longer need the C++/GTK+/FireFox dev stuff (on Ubuntu Edgy anyway).

Comments

You should probably look

You should probably look into making packages with pbuilder or similar http://doc.ubuntu.com/ubuntu/packagingguide/C/index.html and not use checkinstall since packages made with checkinstall do not deal with dependencies and are generally non-clean.

JSCALL on Fedora 6 with Firefox 1.5.0.8

Compiling JSCALL on a pure FC6 build fails with errors in the Firefox headers.
The code was extracted from Subversion on Sun Nov 19.
The error is:

In file included from jscallglue.cpp:36:
/usr/include/firefox-1.5.0.8/gtkembedmoz/gtkmozembed_internal.h:41:27: error: nsIWebBrowser.h: No such file or directory
jscallglue.cpp:41:26: error: nsIDOMWindow.h: No such file or directory
jscallglue.cpp:42:28: error: nsIDOMDocument.h: No such file or directory
jscallglue.cpp:43:27: error: nsIDOMElement.h: No such file or directory
jscallglue.cpp:44:24: error: nsIDOMNode.h: No such file or directory
jscallglue.cpp:45:28: error: nsIDOMNodeList.h: No such file or directory
jscallglue.cpp:47:37: error: nsIDOMHTMLScriptElement.h: No such file or directory
/usr/include/firefox-1.5.0.8/gtkembedmoz/gtkmozembed_internal.h:50: error: 'nsIWebBrowser' has not been declared
jscallglue.cpp:62: error: 'nsIDOMDocument' was not declared in this scope
jscallglue.cpp:62: error: template argument 1 is invalid
jscallglue.cpp: In function 'int GetIDOMDocument(GtkMozEmbed*)':
jscallglue.cpp:65: error: 'nsIWebBrowser' was not declared in this scope
jscallglue.cpp:65: error: template argument 1 is invalid
jscallglue.cpp:65: error: invalid type in declaration before ';' token
jscallglue.cpp:66: error: no matching function for call to 'getter_AddRefs(int&)'
jscallglue.cpp:67: warning: converting to non-pointer type 'int' from NULL
jscallglue.cpp:69: error: 'nsIDOMWindow' was not declared in this scope
jscallglue.cpp:69: error: template argument 1 is invalid
jscallglue.cpp:69: error: invalid type in declaration before ';' token
jscallglue.cpp:70: error: base operand of '->' is not a pointer
jscallglue.cpp:70: error: no matching function for call to 'getter_AddRefs(int&)'
jscallglue.cpp:72: error: 'nsIDOMDocument' was not declared in this scope
jscallglue.cpp:72: error: template argument 1 is invalid
jscallglue.cpp:72: error: invalid type in declaration before ';' token
jscallglue.cpp:73: error: base operand of '->' is not a pointer
jscallglue.cpp:73: error: no matching function for call to 'getter_AddRefs(int&)'
jscallglue.cpp: In function 'int PlaceFunctionCall(GtkMozEmbed*, const PRUnichar*, const PRUnichar*, const PRUnichar*)':
jscallglue.cpp:86: error: 'nsIDOMDocument' was not declared in this scope
jscallglue.cpp:86: error: template argument 1 is invalid
jscallglue.cpp:86: error: invalid type in declaration before '=' token
jscallglue.cpp:88: warning: NULL used in arithmetic
jscallglue.cpp:91: error: 'nsIDOMNodeList' was not declared in this scope
jscallglue.cpp:91: error: template argument 1 is invalid
jscallglue.cpp:91: error: invalid type in declaration before ';' token
jscallglue.cpp:92: error: base operand of '->' is not a pointer
jscallglue.cpp:92: error: no matching function for call to 'getter_AddRefs(int&)'
jscallglue.cpp:96: error: base operand of '->' is not a pointer
jscallglue.cpp:100: error: 'nsIDOMNode' was not declared in this scope
jscallglue.cpp:100: error: template argument 1 is invalid
jscallglue.cpp:100: error: invalid type in declaration before ';' token
jscallglue.cpp:101: error: base operand of '->' is not a pointer
jscallglue.cpp:101: error: no matching function for call to 'getter_AddRefs(int&)'
jscallglue.cpp:105: error: 'nsIDOMElement' was not declared in this scope
jscallglue.cpp:105: error: template argument 1 is invalid
jscallglue.cpp:105: error: invalid type in declaration before ';' token
jscallglue.cpp:106: error: base operand of '->' is not a pointer
jscallglue.cpp:106: error: no matching function for call to 'getter_AddRefs(int&)'
jscallglue.cpp:110: error: base operand of '->' is not a pointer
jscallglue.cpp:111: error: base operand of '->' is not a pointer
jscallglue.cpp:112: error: base operand of '->' is not a pointer
jscallglue.cpp:116: error: 'nsIDOMNode' cannot appear in a constant-expression
jscallglue.cpp:116: error: template argument 1 is invalid
jscallglue.cpp:116: error: invalid type in declaration before '=' token
jscallglue.cpp:116: error: invalid conversion from 'int' to 'nsISupports*'
jscallglue.cpp:116: error: initializing argument 1 of 'nsQueryInterface do_QueryInterface(nsISupports*)'
jscallglue.cpp:116: error: cannot convert 'nsQueryInterface' to 'int' in initialization
jscallglue.cpp:118: error: 'nsIDOMNode' cannot appear in a constant-expression
jscallglue.cpp:118: error: template argument 1 is invalid
jscallglue.cpp:118: error: invalid type in declaration before ';' token
jscallglue.cpp:119: error: base operand of '->' is not a pointer
jscallglue.cpp:119: error: no matching function for call to 'getter_AddRefs(int&)'
jscallglue.cpp: In function 'int ExecuteScript(GtkMozEmbed*, const PRUnichar*)':
jscallglue.cpp:131: error: 'nsIDOMDocument' was not declared in this scope
jscallglue.cpp:131: error: template argument 1 is invalid
jscallglue.cpp:131: error: invalid type in declaration before '=' token
jscallglue.cpp:133: warning: NULL used in arithmetic
jscallglue.cpp:137: error: 'nsIDOMElement' was not declared in this scope
jscallglue.cpp:137: error: template argument 1 is invalid
jscallglue.cpp:137: error: invalid type in declaration before ';' token
jscallglue.cpp:138: error: base operand of '->' is not a pointer
jscallglue.cpp:138: error: no matching function for call to 'getter_AddRefs(int&)'
jscallglue.cpp:143: error: 'nsIDOMHTMLScriptElement' was not declared in this scope
jscallglue.cpp:143: error: template argument 1 is invalid
jscallglue.cpp:143: error: invalid type in declaration before '=' token
jscallglue.cpp:143: error: invalid conversion from 'int' to 'nsISupports*'
jscallglue.cpp:143: error: initializing argument 1 of 'nsQueryInterface do_QueryInterface(nsISupports*)'
jscallglue.cpp:143: error: cannot convert 'nsQueryInterface' to 'int' in initialization
jscallglue.cpp:147: error: base operand of '->' is not a pointer
jscallglue.cpp:148: error: base operand of '->' is not a pointer
jscallglue.cpp:151: error: 'nsIDOMElement' cannot appear in a constant-expression
jscallglue.cpp:151: error: template argument 1 is invalid
jscallglue.cpp:151: error: invalid type in declaration before ';' token
jscallglue.cpp:152: error: base operand of '->' is not a pointer
jscallglue.cpp:152: error: no matching function for call to 'getter_AddRefs(int&)'
jscallglue.cpp:157: error: 'nsIDOMNode' was not declared in this scope
jscallglue.cpp:157: error: template argument 1 is invalid
jscallglue.cpp:157: error: invalid type in declaration before ';' token
jscallglue.cpp:158: error: base operand of '->' is not a pointer
jscallglue.cpp:158: error: no matching function for call to 'getter_AddRefs(int&)'
jscallglue.cpp:163: error: base operand of '->' is not a pointer
jscallglue.cpp:163: error: no matching function for call to 'getter_AddRefs(int&)'
make[2]: *** [libjscallglue_la-jscallglue.lo] Error 1

install firefox-devel

install firefox-devel