On Tue, Aug 9, 2011 at 3:53 PM, dsh <daniel.hais...@googlemail.com> wrote:
> Hi Jean-Sebastien Delfino,
>
> some things I noticed during the configure process (I am using MacPorts):
>
> * I think it would help to point out in the INSTALL file that mozjs
> can be downloaded at -> ftp://ftp.mozilla.org/pub/mozilla.org/js/
> * On OSX Lion xulrunner won't install from MacPorts and thus one would
> end up without a proper mozjs installation
> * If compiling mozjs from the prio mentioned URL, it ends up to be
> installed as /opt/local/lib/libmozjs185.1.0.0.dylib which causes the
> configure process to fail
> * I thus symlinked /opt/local/lib/libmozjs185.1.0.0.dylib to
> /opt/local/lib/libmozjs.dylib

I usually run configure
--with-js-include=$build/tracemonkey-bin/include/js
--with-js-lib=$build/tracemonkey-bin/lib
with $build pointing to a non-system directory;

... after having built trace monkey like this:
curl -OL http://hg.mozilla.org/tracemonkey/archive/e4364736e170.tar.gz
mv e4364736e170.tar.gz tracemonkey-e4364736e170.tar.gz
tar xzf tracemonkey-e4364736e170.tar.gz
cd tracemonkey-e4364736e170/js/src
$build/autoconf-2.13-bin/bin/autoconf
./configure --prefix=$build/tracemonkey-bin
make
make install

... and on Mac OS X this additional step:
install_name_tool -id $build/tracemonkey-bin/lib/libmozjs.dylib
$build/tracemonkey-bin/lib/libmozjs.dylib

I've never had much luck installing libmozjs in the system directories
for all kinds of reasons. On Ubuntu and Redhat I had conflicts with
already installed incompatible versions, dependencies dragged by
xulrunner, and IIRC similar issues on Mac OS X with macports too.

Thanks for the link to js 185, I'll try it on Ubuntu, Redhat and Mac
OS X too, happy to switch to it if it works on these systems, but I'd
like to avoid installing it in the default system directories (hoping
there's a way to specify the install dir with --prefix).

More generally I try to stay away from using pre-built packaged system
dependencies for the following reasons:

- most of the times they system dependencies conflict with the
versions of the dependencies I want, for example Ubuntu 10.10 ships
with Apache httpd 2.2.16 which is really old compared to the 2.3.10
version used by Tuscany;

- using the system dependencies shipped with the operating system
means versions on different systems, different behavior and
significant effort to port and test with all these different versions;

- if I need to debug or patch them I'll have to recompile them anyway,
and if I do that then I'll have to install them in a non-system
directory to not mess up my system; After all, that's the beauty of
open-source, you can get the source, compile it yourself and install
it wherever is most convenient for you...

- if I need to install Tuscany and its dependencies on a new machine
(an EC2 VM for example), it's much easier to build and install all the
dependencies in the same directory as Tuscany, zip that directory up,
and transfer that zip to the target VMs without altering its system
directories.

> * The configure process is looking for -lapr-2 instead of -lapr-1 (I
> have APR 1.4.5_1 installed)
> * I thus had to symlink /opt/local/lib/libapr-1.0.dylib to
> /opt/local/lib/libapr-2.dylib

Yes I've been using apr-2 as it's required by httpd's mod-session for
crypto. See the related email discussion on the httpd dev list there:
http://markmail.org/thread/dbavlf55ywf2a33h

I don't think that APR 1.4.5 includes the crypto API required by httpd
2.3.x mod_session_crypto yet, so we're stuck with APR trunk for now,
until APR releases that API and httpd ports to that release.

>
> If you like I could try to update the INSTALL document accordingly and
> attach the patch to a JIRA.

That would help, but what would help even more , I think, would be to
have a script that downloads / checks out the dependencies and builds
them end to end on a particular system. The single INSTALL doc may get
really big if we start to add to it all the different instructions to
build off system dependencies on Ubuntu, Redhat, Mac OS X, FreeBSD
etc...

There's already a script to build everything on Ubuntu 10.x there:
https://svn.apache.org/repos/asf/tuscany/sca-cpp/trunk/ubuntu/ubuntu-install

There's another one for Mac OS X Leopard and Lion there:
https://svn.apache.org/repos/asf/tuscany/sca-cpp/trunk/macos/macos-install

... which by the way should help you build on MacOS without fighting
with any system dependencies. With that script, you should be able to
build on a pristine Mac OS system + GCC 4.4+ from Macport or other,
without polluting your system directories with any other dependencies
at all... as all required dependencies are built from source by the
script.

> I am doing the dependency setup in
> parallel on FreeBSD 8.2 to see whether I would run into similar issues
> (for instance the one of having a -lapr-1 installed instead of the
> expected -lapr-2). We could then decide whether we want to improve the
> auto* tools infrastructure or not (or even migrate to CMake).
>
> PS: I am planning to create a FreeBSD port for Apache Tuscany (native)
> cause I feel having to setup all of these dependencies is kind of
> daunting.

Cool, it'd be really cool to have another similar build script for
FreeBSD too :)

> Cheers
> Daniel
>

--
Jean-Sebastien

Reply via email to