-
Notifications
You must be signed in to change notification settings - Fork 15
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
compatibility issue with libarchive shipped in ChefDK #3
Comments
(somewhat) related: chef-boneyard/libarchive#1 |
Is this only present with the ChefDK, or is Omnibus Chef shipping libarchive as well? |
/ping @reset |
Pulling down Now that I look through the issue log, missing support for libarchive13 appears to be a theme. Is there a problem extending |
Yeah it's a real thing that the libarchive gem is trying to dynamically link to a sepcific version of the libarchive api. The package containing the version needed can be installed and the gem can be installed to specifically link against that one. It's actually probably a good idea for all gems installed by a cookbook, for use within that cookbook, which contain a C extension that links to a dynamic library, to be installed this way. |
Only if you can guarantee that the C extensions load the chosen version of the library. What we have here is an example of the desired version being downloaded and installed, and then ignored because another match was found (presumably earlier in the dynamic library search path.) |
@phs that's exactly what I just recommended we do - link to the specific shared library when you build the gem |
You haven't mentioned what the trouble is with making |
@phs I haven't mentioned that becuase I don't believe that is a good option. We shouldn't maintain a library that supports every version possible of a shared object on somebodies machine. You have two options. Statically compile libarchive into your shit or dynamically link against an exact version on disk. Since we happen to be not only installing the gem and the package in this piece of software we have the ability to dynamically link to whatever version we just installed. This is an easy fix for whoever wants to do it |
this is now exceptionally old |
ChefDK version 0.10.0 installs
libarchive.so.13.1.2
, which causes problems withffi-libarchive
when used through thelibarchive
Chef cookbook at https://github.com/reset/libarchive-cookbook. Here's the output for the failure that occurs while trying to extract an archive for theconsul
cookbook:And here's the
Vagrantfile
that produced the above output. You should be able to run it in isolation to reproduce the issue:If you uncomment the line with
sudo rm
after "UNCOMMENT ME", the problem no longer reproduces becauseffi-libarchive
uses an older libarchive at/usr/lib/x86_64-linux-gnu/libarchive.so.12
.We believe this is the ultimate underlying cause of an issue with the
consul
cookbook: sous-chefs/consul#241The text was updated successfully, but these errors were encountered: