-
Notifications
You must be signed in to change notification settings - Fork 346
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to 0.12.5 #49
Update to 0.12.5 #49
Conversation
Also separate 32/64bit version on macos and use more specific filenames.
Uses `lsb_release` to decide which Ubuntu version is in use.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This solution isn't viable, there are a bunch of users on Centos and other flavors of Ubuntu (some of which may have an issue with the xenial or bionic binaries).
Would be nice to exclude the binary packages and pull in only the required binary, on demand, via a config file. Eventually, this could possibly be automated.
@webaholik thanks for your hints so far. If you have access to a CentOS 7 and 6 machine you could do me a favor and check the content of E.g. on Ubuntu it looks like:
|
Add some example command on how to extract binaries for the different systems.
@webaholik I've added the binaries for CentOS. Maybe you can try this out now? |
Centos 6 does not have CentOS 6:
CentOS 7:
and apparently
Debian 9:
|
@joergschiller, feel free to improve, but I've tested this in Debian 9, CentOS 7 & CentOS 6:
|
@unixmonkey I've added Dockerfiles for the linux based distros to ease testing. There is also a rudimentary minitest in |
@unixmonkey I'll try to have a look at the binary compression later. But I know that GitHub disallows files larger than 100 MB (https://help.github.com/en/articles/working-with-large-files). Usually one manages bigger files with https://git-lfs.github.com/ - I used it before and it works very well. Can I add it here? |
Expectation won't match otherwise (as output includes all build info).
I tried to move the binaries to Git LFS but GitHub doesn't allow adding LFS objects on forks until the original repo has at least one LFS object (see git-lfs/git-lfs#1449 (comment)). I've made a copy of the repo for testing and added Git LFS to it: Maybe @unixmonkey you can have a look around if this fine for you and I'll try to provide you with the necessary steps to 'introduce' Git LFS - if you're not already aware of that ;-) It makes things easier, e.g. we can't see the changes of this PR here because the diff is too large. And files larger than 100 MB are forbidden, which prevents compressing all the binaries. |
I really appreciate your work and understand that there are a lot more things for you to do. Just want to see if there is something I can do to bring this forward? |
@joergschiller Are some of the binaries bigger than 100mb compressed? The OSX uncompressed binary is 46M. Doesn't GitHub's file size limit mean that we'd have to host the LFS files outside of GitHub? This post states that Rubygems itself has a 500mb limit on gems. I'm not sure what to do here, perhaps we could make this an umbrella repo, with dependencies on other (new) repos for certain platforms or architectures to split things up, but managing all that "extra" is pretty unappealing too. Do you have any thoughts, @zakird ? |
Good point! Each file is well below the per file limit of Github even without compression:
Compressing all files individually (with Don't know why I was so focused on compressing them into one big tar file... |
In terms of avoiding a fat binary gem I like the way webdrivers does it. It downloads the required binary during runtime/first use: https://github.com/titusfortner/webdrivers/blob/master/lib/webdrivers/common.rb#L89 |
hi @joergschiller, thanks for the hard work, especially the testing part with docker and README file are With my macOS I experienced this error while trying to make a PDF, (
maybe we should add this option to the gem too |
Thanks for trying it out @longkt90 ! I can reproduce the issue with a hardlink:
When running It's just a guess: but running I'm not sure if we should override this with Or it is somehow a race condition. The script extracts the binary on first run. If it is executed multiple times in parallel with no extracted binary ready it could be in a strange state. I'll try to test and think about this ;-) |
There was an error on macOS when a hard link to the archive exists (could be Time Machine). Even with `--keep` it states: 'Input file has 1 other link'. Using `--force` fixes this.
Thanks for the great work here 👍. I have a suggestion –or four:
|
Hi Skye! Thanks for your feedback.
Sounds like a good and standard way to split this gem into smaller parts. I've not seen an example how to to this (but also haven't looked alot yet). Maybe you have more information about how to do this?
Sounds reasonable. I thought bzip2 is widespread but also needed to install it in some of the testing containers as well. I'll switch to gzip and deflate within ruby, the compression ratio is good as well:
|
I wonder how many other non-centos users are 💔 by the delay in supporting the latest version vs. making sure everything is spick-and-span before releasing an update...? |
@joergschiller, @unixmonkey - I was summoned by a troll. What else is required on this one to get it to the finish line, anything I can help with? |
<3 <3 <3 🤗 <3 <3 <3 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR is fine! The owner should merge it!
Does this bundle all of the possible bin images into the gem, thereby making the gem very VERY large? |
Ok yeah, built a branch using this PR and in the words of Trump, this gem is YUUUUGE! I was able to install this fork to my machine (using the gem |
From my point of view this is ready. It will produce a rather fat gem at the moment but one may keep the work to further break this down to another PR. |
Yes definitely this gem is very large, all the binaries alone are slightly over 200 MB. @sshaw suggested to create platform-specific gems via RubyGems platform option (#49 (comment)). For the time being I focused on getting the update ready. I was not able to look into splitting it up yet. Maybe you can help? |
@joergschiller what do you need me to do, write some code? We need to generate and build 4 gemspecs. 3 of them will assign platform specific values:
And assign the appropriate binary to |
Compressing with bzip/zlib is fine in transport, but we can probably do one better and ship |
So @k3rni, with your PR the size of your gem is 45MB with all executables? If so, we should go with that and move on with our lives. Well, assuming there's someone out there in this word that can merge! 🗺🤓 |
Sorry for not coming back to this in the last weeks. We recently switched to grover (uses Puppeteer) because it supports newer features because of Chromium instead of Qt WebKit. Feel free to merge this or use it otherwise or close this PR. |
@joergschiller This is now released. Thank you for your help. |
@unixmonkey @joergschiller Is it possible to add CentOS 8? |
@pedrofurtado There is no official binary for CentOS 8 listed here: Does the binary for CentOS 7 work on CentOS 8? If so, a small adjustment to |
@unixmonkey Thanks for feedback! 👍 wkhtmltopdf/wkhtmltopdf#4490 |
Need one for CentOS 8 badly. |
@breisig They've said above that this could be an easy fix, but you'll need to help them out by testing the CentOS 7 binary on your system. If it works then you could even do the PR yourself by the looks of things.
|
Update to 0.12.5
Update to 0.12.5
Update to 0.12.5
Hello!
In reference to #46 I would like to propose this PR to update the wkhtmltopdf binaries to 0.12.5.
I extracted the binaries from https://wkhtmltopdf.org/downloads.html for:
The wrapper script was updated as well to support the different Ubuntu releases.
It still should only work on Ubuntu as it calls
lsb_release
to retrieve the codename. It was mentioned that the last version also only works on Ubuntu-based systems.I tested it (very) shortly on my Macbook (macOS Cocoa 64-bit) and a Ubuntu 16.04 (xenial) amd64 machine. But I thought this PR would be a good starting point to discuss the changes.
Thanks alot for your work on this Gem so far!