Skip to content
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

Package is missing major versioned .so file (libgflags.so.2) #9

Open
jjhelmus opened this issue Jul 6, 2017 · 8 comments
Open

Package is missing major versioned .so file (libgflags.so.2) #9

jjhelmus opened this issue Jul 6, 2017 · 8 comments

Comments

@jjhelmus
Copy link

jjhelmus commented Jul 6, 2017

The gflags-2.2.0-1.tar.bz2 package is missing the major versioned shared library, libgflags.so.2, containing only the major.minor and major.minor.micro libraries (libgflags.so.2.2 and libgflags.so.2.2.0). The previous version, 2.1.2 contained a major versioned library and a major.minor.micro library (libgflags.so.2 and libgflags.so.2.1.2). Unfortunately many packages link against the major versioned library which cases errors when this file is missing.

~$ tar tf ~/Downloads/gflags-2.1.2-1.tar.bz2 | grep lib/libgflags.so | sort
lib/libgflags.so
lib/libgflags.so.2
lib/libgflags.so.2.1.2
~$ tar tf ~/Downloads/gflags-2.2.0-1.tar.bz2 | grep lib/libgflags.so | sort
lib/libgflags.so
lib/libgflags.so.2.2
lib/libgflags.so.2.2.0
@jakirkham
Copy link
Member

Isn't libgflags.so.2 just a symlink to the actual library? So wouldn't packages be linked to libgflags.so.2.1.2?

@jjhelmus
Copy link
Author

jjhelmus commented Jul 6, 2017

It looks like this change was intentionally made, gflags/gflags#137. I'll look into a few packages and try to determine why they are linking to libgflags.so.2. The only example I know of at the moment is caffe which is a rather complicated build.

@jakirkham
Copy link
Member

It looks like this change was intentionally made, gflags/gflags#137.

Makes sense. Good to know it is not an issue with using CMake.

The only example I know of at the moment is caffe which is a rather complicated build.

Ouch! Thanks for the heads-up.

@jjhelmus
Copy link
Author

jjhelmus commented Jul 6, 2017

From my searching the only package in conda-forge that this change seems to effect is caffe. I opened an issue in that feedstock reporting the issue.

There are two options that I see:

  1. Update the gflags package to include a symlinked libgflags.so.2 file.
  2. Rebuild the caffe package with a gflags >=2.2 requirement and remove the existing builds.

I'm happy to help with either approach.

@jjhelmus
Copy link
Author

jjhelmus commented Jul 6, 2017

Should add that both the options above can be applied, they are not mutually exclusive.

@jakirkham
Copy link
Member

I'm ok with both options as well. Though the fact that gflags chose to drop libgflags.so.2 seems like a good reason to shy away from relying on it. Rebuilding caffe with gflags 2.2.* would be a good fix. Probably should add this to the pinnings as well. Won't have time to do this myself ATM, but would happily accept PRs for both.

jjhelmus added a commit to jjhelmus/gflags-feedstock that referenced this issue Jul 7, 2017
Some downstream packages including caffe like against these files and break
when they are not present.  On macOS no packages are known which used the .2
libraries and therefore they are not created.

closes conda-forge#9
@jjhelmus
Copy link
Author

jjhelmus commented Jul 7, 2017

PR #10 Adds libgflags.so.2 to the package.

@advance512
Copy link

If you're installing caffe via conda and running into this, try:

conda install python=2.7 caffe-gpu protobuf gflags

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants