-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Static build complication on Linux due to OpenSSL and ICU #12948
Comments
When the binary is built on Centos 6.6 and tested on Ubuntu 12.04, there will be this error:
|
When the binary is built on Ubuntu 12.04 and tested on CentOS 6, there is this error:
|
As a comparison,
|
ICU upstream bug: https://bugreports.qt.io/browse/QTBUG-38445 |
@vitallium Do you mean that the mentioned commit start to introduce the broken build? |
@ariya yes, check the line 162 https://github.com/ariya/phantomjs/blob/2.0/src/qt/preconfig.sh#L162 I assume it should be just |
With
|
@vitallium Good news! Now we just need to solve the ICU library... |
@ariya isn't ICU bug fixed in 5.3.1? Or we're talking about something else? |
@kenips Can you elaborate? |
hey @ariya I thought the ICU bug is https://bugreports.qt.io/browse/QTBUG-38445, which is fixed in 5.3.1, isn't it? |
Want to bring this up again as my team is depending on PhantomJS 2.0 for testing. If I simply do |
@ohenak From my understanding, that should theoretically work across similar environments. (e.g. all machines running the same version of Ubuntu). |
I do think ICU was fixed in 5.3.1, but Ubuntu 14.04 has an older version: libqt5core5a:amd64 5.2.1+dfsg-1ubuntu14.2 |
Probably this fix can be backported: https://codereview.qt-project.org/#/c/84012/ Although it's not clear to me whether the problem is in the bundled Qt or in the system's version of Qt. |
Any ETA / roadmap on this issue? We would like to deploy PhantomJS 2.0 without having to compile. |
The only solution which is sustainable in the long term is to have distro-specific packages, like I have done for wkhtmltopdf. Due to the patched/bundled Qt, it does not get packaged with most distributions anyway so having "official" binaries is important. I'm willing to take up just the packaging part, as I'll be working on that anyway in the near future for wkhtmltopdf |
Note that I won't be supporting CentOS 5, as not all security fixes are being backported and getting it to work would be very tough due to very old software versions. |
For people that are actually looking for a built binary of phantom-js 2.0 it seems that the Travis-CI team has one (currently only for Ubuntu-12.04). Thought this would at least help some people on the thread until official binaries are available. https://s3.amazonaws.com/travis-phantomjs/phantomjs-2.0.0-ubuntu-12.04.tar.bz2 We've got this working on 14.04 by manually installing ( http://mirrors.kernel.org/ubuntu/pool/main/i/icu/libicu48_4.8.1.1-3ubuntu0.4_amd64.deb |
you can download libicu for ubuntu 14 (amd64) from this link: http://packages.ubuntu.com/en/precise/amd64/libicu48/download sudo dpkg -i [package-name].deb |
@ashkulz Good call on CentOS 5. PhantomJS 2 probably should not be bothered with it. |
@emaphp This issue has nothing to do with libicu availability. |
FYI: I added compiled binary, built on Ubuntu 14.04 x64 (DigitalOcean 8GB virtual machine), if someone else finds it helpful: https://github.com/Pyppe/phantomjs2.0-ubuntu14.04x64 |
Is it solved? Any help needed? |
@jeanleonino I don't think it's solved. An official phantomjs 2.x binary for Linux is still missing. |
On the other hand, it looks like being fixed in #13822 |
Work is ongoing in #13822, and it sounds really close. On Saturday, December 26, 2015, John Yani notifications@github.com wrote:
This email message is for the sole use of the intended recipient(s) and may |
The solution is to use Docker. The binaries will be provided in the next release 2.1 (when? whenever it's ready!). For further details, refer to #13822 and/or consult the mailing-list. |
@ariya Thanks, and thanks for closing. 👍 |
Guys please make it finally for Ubuntu! It's almost a year since we don't have it. I tried building from binaries, and after 15 hours I still don't have it working! |
For ubuntu, take a look at below page :
|
Thank you very much! It works! |
Ubuntu is trivial. The problem is with CentOS 6. |
Here is a summarized list of several alternatives for everyone. If you can wait for an official Linux binary, watch for the next release of version 2.1. Follow #12970 for further detailed updates. If you can't wait and you want to run PhantomJS on your own Linux system:
Note on trust: While you may have a certain level of trust on your Linux distribution, its packagers, or the folks behind PhantomJS, you need to be cautious in extending that trust to anyone (especially on the Intertubes). Downloading and running an executable from a random person is not necessary the best security practice. If you want to find a way to build PhantomJS Linux binary statically:
I believe that everyone's needs can be fulfilled with one of the above paths. Let's stop this thread for everyone's benefit. |
@sproffer got it working pretty easily on aws lambda with your centos7 build, thanks for the good work ! |
Linux binaries exclusion - for more information see: ariya/phantomjs#12948
I am wanting to build PhantomJS for an ARMv7 Debian-based distro and output a static binary, I don't need a .deb file. There's a lot of noise on the thread you tell us to read.. can you point me at a Dockerfile or a clear set of instructions please? @ariya |
@alexellis as described in https://github.com/ariya/phantomjs/tree/master/deploy
|
So there are no instructions for ARM processors? Is there any reason why you don't have a Dockerfile, too? |
I have written a blog regarding cross compile armv7 binary in docker. You On Sat, Aug 6, 2016 at 10:03 AM Alex Ellis notifications@github.com wrote:
|
Is there any description how to build a PhantomJS version on Ubuntu with static dependencies (especially libicu) based on the latest sources? |
Compared to 1.x, PhantomJS 2.0 has exhibits some problem when being built statically to produce the official Linux binaries.
The text was updated successfully, but these errors were encountered: