Hi Milian,
Thanks for replying.
On 26/06/12 21:36, Milian Wolff wrote:
> On Tuesday 26 June 2012 08:22:11 Ariya Hidayat wrote:
>> I admit I didn't check it with 64-bit. I don't mind this is to be
>> reverted until we find the solution and/or a better almost-static
>> alternative.
>>
>> Milian, what do you think?
>
> I don't get it: This deployment step is totally optional, so if people don't
> want to use it (i.e. it messes things up for them), then they could just not
> use it?
That's a good point. I assumed that because the script was added to the
phantomjs repository, it had become the "blessed" way to create the
linux package which gets distributed on google code. We could make it an
optional step in the script (e.g. via a command line option), and then
the question of whether to use it for the "official" linux packages is a
separate one.
Do you use this script to create your own packages? If so, I presume
that's because you need to deploy to multiple different systems and
don't want to recompile for each target system? (Just trying to better
understand the use case.)
> Furthermore, I tested this on a 64Bit built-host and successfully ran these on
> different 32bit and 64bit machines - both older distros and newer ones. So if
> this step really breaks things for you, I'd be interested in knowing whats
> going on (which distro? does it work without deployment step? ...)
Yes, it definitely breaks and it's definitely not an issue when
switching back to not changing the ELF header and not bundling
additional libraries other than the Qt ones and fontconfig + truetype.
As I stated in my email, the program does run successfully, but it fails
when trying to load any page. If you want to take a look, here is the
package that I originally built using the full 'quasi-static' setup:
http://dump.jonathanleighton.com/phantomjs-1.6.0-linux-x86_64-dynamic.tar.bz2
The package was built in an Ubuntu Lucid x86_64 virtual machine. I then
tested it on my host machine, which is Fedora 16 x86_64. Running a
simple script like this:
var page = require('webpage').create()
page.open('
http://google.com/', function(status) {
console.log(status)
})
results in "fail" being printed to the terminal. The page does not load
successfully for reasons that are unknown to me.
This symptom also matches the problem reported in the recent thread
titled "Anyone having problem with ver1.6 linux version?" [which related
to the 32 bit package, not 64 bit], although I can't say for sure
whether that was the same issue.
I have some questions regarding the brandelf step. Please excuse my
ignorance, I couldn't find any obvious answers during my own research...
We use brandelf to change the header to state that the binary adheres to
the SysV ABI. Are there no differences between the SysV ABI and the
Linux ABI? Is it safe to just "rebrand" like this? (I.e. do we not need
to compile for SysV ABI compatibility from the start?)
[Note that this can't be the source of the issue I experienced, as the
binary on Ubuntu Lucid comes out with the SysV ABI anyway.]
Also, do you know how this setup interacts with Qt's efforts to detect
SSL libraries at runtime?
Thanks,
Jon