chef / omnibus

Easily create full-stack installers for your project across a variety of platforms.
Apache License 2.0
1.29k stars 294 forks source link

include/libs don't seem to get set right #876

Open jaymzh opened 5 years ago

jaymzh commented 5 years ago

Description

[It's unclear to me if this is a bug here in omnibus or a bug in the way chefdk uses omnibus.]

On omnibus packages with a ruby in them, the system's openssl header files are used when installing gems. For example:

/opt/chefdk/bin/gem install rugged

will compile using the header files in /usr/include/openssl` which, on Debian-like platforms is different enough from the one in the omnibus package that symbols are no longer found and you end up with bugs like this one: https://github.com/facebook/grocery-delivery/issues/48

You can work around it with OPENSSL_ROOT_DIR, but you shouldn't have to.

Omnibus Version

Whatever chefdk was built with. :)

Platform Version

Reprod on Debian sid and Ubuntu.

Replication Case

/opt/chefdk/embedded/bin/gem install grocery_delivery
/opt/chefdk/embedded/bin/grocery-delivery --help

On debian-like distros.

Build Output

jaymzh commented 5 years ago

ping?

jaymzh commented 5 years ago

Pretty please?

lamont-granquist commented 5 years ago

I'm fairly certain that this comes back to that gem's build system not picking up the correct values from mkmf.rb and injecting them into the cmake build system for libgit2 that they've got in order to correctly build against /opt/chef{dk}/embedded/lib. I don't think its a general problem with omnibus, or solvable in omnibus -- it just doesn't matter for most people who build their ruby against /usr/lib.

jaymzh commented 5 years ago

Perhaps. Since setting OPENSSL_ROOT_DIR=/opt/chefdk/embedded or I guess these days OPENSSL_ROOT_DIR=/opt/chef-workstation/embedded solves it, it feels like this is a think that omnibus should just do though.