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

aravis: Add a new recipe. #8379

Merged
merged 13 commits into from
Feb 2, 2022
Merged

Conversation

sh0
Copy link
Contributor

@sh0 sh0 commented Dec 9, 2021

Specify library name and version: aravis/0.8.19

Aravis is a library for communicating with Genicam based cameras over USB3 and GigE connections.

Introspection doesn't seem to work, but the option flag to enable it was added anyways.


  • I've read the guidelines for contributing.
  • I've followed the PEP8 style guides for Python code in the recipes.
  • I've used the latest Conan client version.
  • I've tried at least one configuration locally with the
    conan-center hook activated.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@sh0
Copy link
Contributor Author

sh0 commented Dec 10, 2021

Ready for review.

It is technically possible to build shared glib with static MT/MTd runtime with MSVC. However this seems to be unsupported and will cause issues. In this case glib-compile-resources crashes since it opens a file handle through static CRT inside glib.dll and then tries to close it though another static CRT inside glib-compile-resources. It might be a good idea to explicitly disable building with MT/MTd runtime inside glib recipe to avoid some grief for anyone not knowing that problem.

Similarly we must ensure we only have one copy of glib when it is built static. Based on #7142 I used full_package_mode on glib, gstreamer and gst-plugins-base inside package_id to ensure shared option of deps is correct. Unfortunately this will lead to many missing recipe binaries on CI machines as dependencies were built with other versions of glib/gstreamer. Theoretically I can start submitting PRs to change dependency versions in many recipes, but I think that might become never ending whack-a-mole. Right now I just disabled the gstreamer plugin building. @SSE4 do you have any recommendations for me since you fixed the same issue for gstreamer?

I think we need something like options_package_mode in Conan such that package ID depends on shared flag, but not on dependency version.

recipes/aravis/all/conanfile.py Outdated Show resolved Hide resolved
recipes/aravis/all/conanfile.py Show resolved Hide resolved
recipes/aravis/all/conanfile.py Outdated Show resolved Hide resolved
recipes/aravis/all/conanfile.py Show resolved Hide resolved
@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@sh0
Copy link
Contributor Author

sh0 commented Dec 11, 2021

I think what is happening here is that glib tool glib-compile-resources uses the wrong CI machine system libglib-*.so in /usr/lib64 instead of the Conan package one. The system glib version has to be <2.60.0 which does not have g_task_set_name function hence the glib-compile-resources: undefined symbol: g_task_set_name error.

Any ideas how to fix this? The glib-compile-resources is called from meson gnome helper which probably doesn't set LD_LIBRARY_PATH properly.

@ericLemanissier
Copy link
Contributor

You can wrap the meson calls in tools.RunEnvironment

@conan-center-bot

This comment has been minimized.

@sh0
Copy link
Contributor Author

sh0 commented Dec 12, 2021

@ericLemanissier Thanks for the tip. RunEnvironment worked for Linux, but I now have a similar error for macOS:

dyld: Library not loaded: /Users/jenkins/w/BuildSingleReference/.conan/data/glib/2.70.0/_/_/package/fa44afc4793c5d03aff181b297994be9fbcb275b/lib/libgio-2.0.0.dylib
  Referenced from: /Users/jenkins/w/BuildSingleReference@2/.conan/data/glib/2.70.0/_/_/package/fa44afc4793c5d03aff181b297994be9fbcb275b/bin/glib-compile-resources
  Reason: image not found

glib is unpacked in slightly different place (.../BuildSingleReference/... vs .../BuildSingleReference@2/...) and libs are not found. DYLD_LIBRARY_PATH does not seem to work. Only reason I can see right now might be System Integrity Protection introduced in Mac OS 10.11 El Capitan which strips that env variable under some conditions. Any ideas?

@sh0
Copy link
Contributor Author

sh0 commented Dec 15, 2021

I could reproduce the macOS problem on a local machine. It does indeed seem like a System Integrity Protection problem. Please see the linked issue I created.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@sh0
Copy link
Contributor Author

sh0 commented Jan 4, 2022

I disabled macOS for now as the SIP workaround in conan-io/conan#7324 seems to take some time to get merged. There doesn't seem to be any simple workarounds we can apply at this time.

@sh0 sh0 requested a review from uilianries January 4, 2022 15:58
@uilianries
Copy link
Member

@sh0 no problem, we can improve in the future. Thank for your contribution!

uilianries
uilianries previously approved these changes Jan 4, 2022
Copy link
Member

@uilianries uilianries left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@conan-center-bot
Copy link
Collaborator

All green in build 12 (d7366d084139d2d358cf1d21aea3243233cf44dc):

  • aravis/0.8.20@:
    All packages built successfully! (All logs)

@sh0
Copy link
Contributor Author

sh0 commented Jan 17, 2022

Ping @uilianries @ericLemanissier

@sh0
Copy link
Contributor Author

sh0 commented Jan 26, 2022

I'm still looking to get this recipe committed if possible. Any chance of getting this reviewed by anyone? Thanks for your time as always.

Ping @uilianries @ericLemanissier @prince-chrismc @SSE4

Copy link
Member

@uilianries uilianries left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@prince-chrismc prince-chrismc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been waiting too long 😢

Any improvements can wait for a follow up PR. it looks solid

@prince-chrismc
Copy link
Contributor

Looks like I have a bug, prince-chrismc/conan-center-index-pending-review#1 did not advertise your PR. Nothing obvious should have hidden it 😕

@conan-center-bot conan-center-bot merged commit b8401b1 into conan-io:master Feb 2, 2022
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

Successfully merging this pull request may close these issues.

None yet

6 participants