Commit Graph

54 Commits (master)

Author SHA1 Message Date
Ariya Hidayat aaca7774c9 Vagrant setup: Don't clone PhantomJS into Git build directory.
http://code.google.com/p/phantomjs/issues/detail?id=963
2013-01-09 01:03:27 -08:00
Oleg Pudeyev 52e67c5aa7 Use bash from PATH rather than hardcoded in /bin.
E.g. FreeBSD has bash in /usr/local.

http://code.google.com/p/phantomjs/issues/detail?id=597
2013-01-09 00:06:58 -08:00
Ariya Hidayat 69bf72bca7 Setup Vagrant to build Linux packages on CentOS 5.
The goal is to use old glibc so that it can reach more audience (in
particular, RHEL and CentOS users).

Also, we don't compress the executable (using UPX) so that it can be
inspected with ldd. Bonus: no more decompression overhead, faster
startup.

http://code.google.com/p/phantomjs/issues/detail?id=963
2013-01-05 09:35:27 -08:00
Ariya Hidayat d7652abc11 Unix packaging: Fix UPX detection for binary compression.
As pointed out by Cristian Ciupitu, our UPX detection logic was broken.
This is now fixed by using `type` to look for the executable.

http://code.google.com/p/phantomjs/issues/detail?id=928
2012-12-23 14:36:24 -08:00
Ariya Hidayat 59dbd77ef5 Ask for a confirmation before initiating the build.
Although it is mentioned in http://phantomjs.org/build.html, many people
are not aware this, they compile from source (even if a binary package
is available) and get shocked to realize the build takes ages.
The build script is thus modified to give the initial warning.

Unattended build is still possible, just use --confirm flag.

http://code.google.com/p/phantomjs/issues/detail?id=862
2012-11-10 00:11:14 -08:00
Ariya Hidayat 703a4d14e4 Breakpad symbol tool: Make sure it builds on Mac.
https://code.google.com/p/phantomjs/issues/detail?id=576
2012-09-23 22:20:35 -07:00
Ariya Hidayat 0ea2aa0c35 Explicit mentions of third-party code.
http://code.google.com/p/phantomjs/issues/detail?id=718
2012-08-19 12:02:01 -07:00
Jon Leighton 31157fbb98 Make static build work on Linux.
Previously, a static build would produce three separate files:
QtWebKit.a, libjscore.a and libwebcore.a. These seem to have
dependencies on each other and this caused the build errors on Linux.

This change means that the sources of jscore and webcore are both built
directly into the QtWebKit.a target. libjscore.a and libwebcore.a are no
longer built. It is then possible to create a static binary on Linux.

http://code.google.com/p/phantomjs/issues/detail?id=413
2012-07-14 23:32:31 -07:00
Jon Leighton 7892ff3b3e Deploy script improvements.
http://code.google.com/p/phantomjs/issues/detail?id=599

Squashed commit of the following:

commit 2cdcf8a47567f3c067958383843cccf858af531c
Author: Jon Leighton <j@jonathanleighton.com>
Date:   Sat Jul 7 19:37:38 2012 +0100

    Make lib-bundling/brandelf optional in deploy/package.sh

    This configuration has had some problems and we don't wish to use it in
    the official packages.

    Enable it with --bundle-libs.

commit 2a2155a4e1f5873aa8624859cead9d66750747f4
Author: Jon Leighton <j@jonathanleighton.com>
Date:   Sat Jul 7 19:24:40 2012 +0100

    notify user if upx is missing

commit 9656a99df0ff101150276dc88e0127f68041f617
Author: Jon Leighton <j@jonathanleighton.com>
Date:   Sat Jul 7 19:23:36 2012 +0100

    stripping symbols after upx probably doesn't work, reorder that

commit c5f425dc17069c89e7d2ff274309006c728ffab4
Author: Jon Leighton <j@jonathanleighton.com>
Date:   Sat Jul 7 19:17:07 2012 +0100

    fix logical fail
2012-07-08 17:42:58 -07:00
Jon Leighton 1bcacde12c Increase VM memory. Necessary for linking on 64-bit build.
http://code.google.com/p/phantomjs/issues/detail?id=599
2012-07-07 08:03:02 -07:00
Jon Leighton e05c887c96 Use zip for the OS X package
Requested by @ariya, who was concerned that .tar.bz2 might be confusing to
OS X users who are not well-versed in UNIX.
2012-06-29 14:54:39 +01:00
Jon Leighton 5f510967db Fix the top-level folder name in the packaged symbol tarball. 2012-06-29 14:44:10 +01:00
Jon Leighton 13c1c164d9 Don't build the deploy in debug mode.
Debug mode turns off all optimisations. This make PhantomJS considerably
slower.

Instead, we build in 'release' mode, but generate debugging symbols at
the same time.

This may present some problems analysing crashes, if the optimisations
make that difficult. However, in my testing I was able to get useful
debug output even with optimisations enabled. So we should see how we go
- if it becomes a problem we can produce seperate debug binaries with no
optimisations.

https://code.google.com/p/phantomjs/issues/detail?id=599
2012-06-29 14:27:48 +01:00
Ariya Hidayat 8c46d6db83 Only compress with UPX if it's available.
Also, make sure we use the maximum compression level.

http://code.google.com/p/phantomjs/issues/detail?id=599
2012-06-20 21:18:37 -07:00
Jon Leighton 7ff61604e3 use upx to compress binary on OS X 2012-06-19 23:49:06 +01:00
Jon Leighton d0ee703529 tweak/fix provision-vm.sh 2012-06-19 23:19:49 +01:00
Jon Leighton fe784b45e6 PhantomJS itself also needs to be build in debug mode.
https://code.google.com/p/phantomjs/issues/detail?id=599
2012-06-19 00:30:17 +01:00
Jon Leighton aa533a5659 ignore deploy/brandelf 2012-06-19 00:29:18 +01:00
Tom Stuart & Jon Leighton 5fa0202f29 Add breakpad support for Mac
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
2012-06-19 00:28:37 +01:00
Jon Leighton 1b621e9f50 Provide scripts and workflow for building Linux packages for release. 2012-06-17 23:40:12 +01:00
Jon Leighton 1b53adec2b Tweak the linux deploy script.
* Use exec to replace the bootstrap shell script
* Name the bootstrap shell script `phantomjs` so that invocation is no
  different

http://code.google.com/p/phantomjs/issues/detail?id=413
2012-06-08 11:10:56 +02:00
Milian Wolff e185a5c2b6 Improve package-linux-dynamic.sh to create a quasi-static phantomjs.
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)
2012-04-25 19:36:00 +02:00
Ariya Hidayat 13d4f28ece Build scripts clean up.
The contents of deploy/build* scripts have been merged and consolidated
into ./build.sh as part of the Qt import workflow.

http://code.google.com/p/phantomjs/issues/detail?id=226
2012-03-09 07:29:48 -08:00
Ariya Hidayat a398b3fec0 Revamp the build scripts in deploy/.
Technically only deploy/package-linux-dynamic.sh is relevant and it's
been adjusted appropriately. All other files are obsoleted with the new
build process.

http://code.google.com/p/phantomjs/issues/detail?id=226
2012-03-08 21:58:30 -08:00
Milian Wolff a0ef8cb898 simplify maintenance of custom qt-patches during deployment
generic patches now reside in deploy/qt-patches/all
while 4.8 patches are now in deploy/qt-patches/4.8

all *.patch files in these folders are applied during deployment

http://code.google.com/p/phantomjs/issues/detail?id=197
http://code.google.com/p/phantomjs/issues/detail?id=142
2012-03-04 21:07:26 -08:00
Milian Wolff 9943ae541b fix headless-build on linux
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
2012-03-04 21:06:24 -08:00
Jon Leighton 7fa13832ef Deploy script refactoring and improvements.
For some detailed discussion, check out
https://github.com/ariya/phantomjs/pull/190.

http://code.google.com/p/phantomjs/issues/detail?id=197
http://code.google.com/p/phantomjs/issues/detail?id=142
2012-02-09 01:12:47 -08:00
Ariya Hidayat 84cd6a61ad Merge branch 'master' of github.com:ariya/phantomjs
Conflicts:
	deploy/build-mac.sh
2011-12-30 07:32:12 -08:00
Jon Leighton 977e1aab17 Make linux build script use the Qt 4.8.0 tarball.
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.)
2011-12-30 11:47:03 +00:00
Jon Leighton 00a8e72fb3 Fix file upload on Qt 4.8.
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
2011-12-30 11:46:58 +00:00
Ariya Hidayat 30134bab5d Workaround to prevent WebCoreMovieObserver confusion.
The solution is for the static build script to disable QuickTime video.
In many cases, video support for a headless engine is not so useful.

http://code.google.com/p/phantomjs/issues/detail?id=321
2011-12-29 19:25:18 -08:00
Ariya Hidayat bb07cb941e Linux build script: Keep to 4 parallel jobs at most.
http://code.google.com/p/phantomjs/issues/detail?id=197
2011-12-23 21:06:23 -08:00
Ariya Hidayat 6356c28ba3 Mac build script: x86 only for better compatibility.
http://code.google.com/p/phantomjs/issues/detail?id=142
2011-12-22 21:54:55 -08:00
Ariya Hidayat 7ad2f213c8 Mac build script: Make sure it's executable.
http://code.google.com/p/phantomjs/issues/detail?id=142
2011-12-22 21:54:51 -08:00
Ariya Hidayat 90252916a6 Static build: Don't merge Mac and Linux script.
Apparently with Qt 4.8, static build on Linux does not work out of the
box so there is no need to merge the static build scripts.

Also, tweak some configure options.

http://code.google.com/p/phantomjs/issues/detail?id=142
http://code.google.com/p/phantomjs/issues/detail?id=197
2011-12-22 21:54:37 -08:00
Ariya Hidayat 9ca1a4042c Mac build script: update to get Qt 4.8.0.
http://code.google.com/p/phantomjs/issues/detail?id=142
2011-12-21 07:59:39 -08:00
Leo Franchi d5b2d110fb Add patches 2011-11-15 22:29:59 -05:00
Leo Franchi f22877d625 Add Qt 4.8 support to deploy script, along with some patches to qt 2011-11-15 19:36:14 -05:00
Ariya Hidayat 04e281e365 Static Linux build script: disable some more configs.
http://code.google.com/p/phantomjs/issues/detail?id=197
2011-11-04 19:54:24 -07:00
Ariya Hidayat ada7611cda Initial version of build script for static Linux.
http://code.google.com/p/phantomjs/issues/detail?id=197
2011-11-04 08:39:01 -07:00
Ariya Hidayat d90d11b551 Mac build script: check curl status to detect failed download.
http://code.google.com/p/phantomjs/issues/detail?id=142
2011-09-10 17:23:36 -07:00
Ariya Hidayat b20aa4345e Mac build script: detect UPX properly.
http://code.google.com/p/phantomjs/issues/detail?id=142
2011-09-10 11:02:49 -07:00
Ariya Hidayat 293c7a4498 Mac build script: compress the executable.
Using both strip and upx, this makes the executable 3.5x smaller.

http://code.google.com/p/phantomjs/issues/detail?id=142
2011-09-09 22:43:05 -07:00
Ariya Hidayat 53b70172a1 Mac build script: workaround for qt_menu.nib problem.
http://code.google.com/p/phantomjs/issues/detail?id=142

See also the Qt bug:
https://bugreports.qt.nokia.com/browse/QTBUG-5952
2011-09-09 22:01:09 -07:00
Ariya Hidayat b68e06a11c Mac build script: ensure it can link to jscore library.
http://code.google.com/p/phantomjs/issues/detail?id=142
2011-09-09 21:58:00 -07:00
Ariya Hidayat 7a2fd4e93c Mac build script: clean any remaining of the previous build.
http://code.google.com/p/phantomjs/issues/detail?id=142
2011-09-09 09:13:28 -07:00
Ariya Hidayat f5c2b7f69b Build script: use the correct QMake.
Now the remaining problem is jscore linking.

http://code.google.com/p/phantomjs/issues/detail?id=141
2011-09-09 08:00:22 -07:00
Ariya Hidayat a0b97e8c6f Mac OS X build script: use 4.7.4, static build QtWebKit and PhantomJS. 2011-09-01 17:37:50 -07:00
Ariya Hidayat 47929b4507 Mac build script: patch to allow static build, install as final step. 2011-08-22 09:03:11 -07:00
Ariya Hidayat 149c951262 Mac build script: for some reasons, need to invoke make twice. 2011-08-20 16:09:15 -07:00