54 Commits

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