-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
- [gstreamer] use full_package_mode for GLib #7734
- [gstreamer] use full_package_mode for GLib #7734
Conversation
This comment has been minimized.
This comment has been minimized.
Signed-off-by: SSE4 <[email protected]>
4218442
to
811b766
Compare
Therefore I advice to:
It's important for CCI to provide binaries and a valid package id for the default options, otherwise it contaminates all downstream recipes. |
Co-authored-by: SpaceIm <[email protected]>
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
What about I mean, if |
maybe it can work, I didn't test that configuration(s). anyway, it's not something CCI ever builds. |
Sure, but it will affect the if self.options["glib"].static and self.options.shared:
raise ConanInvalidConfiguration and the same check should be done for all the consumers of |
@@ -114,6 +120,9 @@ def package(self): | |||
tools.rmdir(os.path.join(self.package_folder, "share")) | |||
tools.remove_files_by_mask(self.package_folder, "*.pdb") | |||
|
|||
def package_id(self): | |||
self.info.requires["glib"].full_package_mode() |
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.
shouldn't we use shared_library_package_id here ?
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.
that package id is when you are linking shared + static, here we are aligned (shared + shared; static + static)
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.
comment from conan developers (conan-io/conan#9712):
The shared_library_package_id() helper was introduced to try to alleviate this issue, but it was not matured and it was not adopted in ConanCenter recipes.
I don't think it is worth the huge effort to improve and adopt the shared_library_package_id(), but if anything is to be done, it should be opt-in.
I have relaxed the check for now, as it requires more investigation (testing more different combinations of shared/static configurations for Glib/GStreamer/GstPlugins). I am marking PR as ready for review, let's move forward. |
I think right now we (in conan center) have a consensus to not use an option override for the downstream dependencies. there are different concerns on why shared/static builds might not be desired, e.g.:
so it might be a big pain if you suddenly find some unexpected shared/static library you didn't ask for |
This comment has been minimized.
This comment has been minimized.
All green in build 7 (
|
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.
Providing bad binaries is worse then providing nothing at all imo
I am okay with this
* - [gstreamer] use full_package_mode for GLib Signed-off-by: SSE4 <[email protected]> * Update recipes/gstreamer/all/conanfile.py Co-authored-by: SpaceIm <[email protected]> * Update recipes/gstreamer/all/conanfile.py * Update recipes/gstreamer/all/conanfile.py * Update recipes/gstreamer/all/conanfile.py Co-authored-by: SpaceIm <[email protected]>
* - [gstreamer] use full_package_mode for GLib Signed-off-by: SSE4 <[email protected]> * Update recipes/gstreamer/all/conanfile.py Co-authored-by: SpaceIm <[email protected]> * Update recipes/gstreamer/all/conanfile.py * Update recipes/gstreamer/all/conanfile.py * Update recipes/gstreamer/all/conanfile.py Co-authored-by: SpaceIm <[email protected]>
long story, please read carefully:
#7142 (comment)
conan-io/conan#9712
TLDR:
2.1.
glib:shared=False
,gstreamer:shared=False
,gst-plugins-*:shared=False
2.2.
glib:shared=True
,gstreamer:shared=True
,gst-plugins-*:shared=True
2.3. everything else is unsupported and should be discarded in
validate
glib:shared=False
is not supported on Windows (read, if you're interested: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1655 https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1316)4.1. all static (default) -
*:shared=False
4.2.
<current recipe>:shared=True
+ all the dependencies static (default)being pragmatic, it's probably too much to reject these builds and require to always build from sources.
OTOH these builds are technically invalid anyway, and shouldn't be used by anyone, since they contain UB.
I am very tentative on these changes, so it's a draft for now, let's discuss and exchange opinions/arguments.
Specify library name and version: gstreamer/all
This is also a good place to share with all of us why you are submitting this PR (specially if it is a new addition to ConanCenter): is it a dependency of other libraries you want to package? Are you the author of the library? Thanks!
conan-center hook activated.