This provides support for compiling the breakpad client into PhantomJS,
and generifies that Linux packaging scripts so that they also apply to
OS X and automate the symbol generation.
Building the Breakpad tool programs seems to be less than
straightforward on OS X, and documentation is poor. We have managed to
produce tools/dump-syms-mac.pro which allows building the dump_syms
program for dumping the debugging symbols. This needed a couple of
modifications to breakpad in order to compile successfully.
We have run out of time to work on making the minidump_stackwalk program
build. However, this is solely a developer tool and so it can wait until
after the 1.6 release before we complete this work.
Testing is welcome!
https://code.google.com/p/phantomjs/issues/detail?id=576
The script now copies all required shared libraries found via ldd
to the deployment folder.
Furthermore, a run-script is created that runs the phantomjs binary
through the copied build-host's ld-linux.so to ensure all symbols
are properly resolved.
Last but not least, we now include a very slightly modified brandelf.c
from FreeBSD. This version can be compiled on Linux machines and is
used to change the ELF ABI of the binary and libs in the deployment
folder, such that they all use the old SYSV OS ABI for compatibility.
Usage:
$ package-linux-dynamic.sh
$ scp phantomjs-$version.tar.bz2 yourhost
$ ssh yourhost
$ tar -xf phantomjs-$version.tar.bz2
$ ./phantomjs-$version/phantomjs.sh
CC ISSUE: 413 (http://code.google.com/p/phantomjs/issues/detail?id=413)
(proper static build would still be desirable eventually if possible)
in such cases, DISABLE_HEADLESS was unset and hence
the expansion -a -eq 0 resulted in a bash error:
bash: [: too many arguments
this is fixed now by using string-based comparison
http://code.google.com/p/phantomjs/issues/detail?id=197
Also make it always put the files in deploy/, regardless of where the
script is run from. (So use can run deploy/build-linux.sh from the root
directory.)
Code was added to WebKit to detect whether the click event on the file
input element is triggered by user action or by a script. If it's by a
script, the event is ignored. This prevented us from simulating a click
on the element.
This fix just patches WebKit to remove the detection.
The relevant WebKit commit is:
931870c11b
The associated WebKit bug is:
https://bugs.webkit.org/show_bug.cgi?id=47593
Our bug is:
http://code.google.com/p/phantomjs/issues/detail?id=307&q=upload