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

gstreamer-full: new recipe #23694

Draft
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

fnadeau
Copy link
Contributor

@fnadeau fnadeau commented Apr 22, 2024

Specify library name and version: gstreamer-full/1.24.2

gstreamer and its pluggins are maintained at a different pace.
gstreamer- 1.22.6
gst-plugings-base 1.19.2
gst-plugings-good 1.19.1
gst-plugings-ugly 1.19.1
gst-plugings-bad 1.19.1
gst-libav 1.19.1

From a maintainability point of view, any update from gstreamer upstream requires 6 PR for conan to catch-up. This does not include PR for missing items such as gst-rtsp-server. Since 1.24 it is now possible to do a full build static. This would make the version bump way easier. It should be possible to have a full build dynamic, this could be added later.

There is still a bit of work and testing todo. I would like to gather interest and comment on the package.


@conan-center-bot

This comment has been minimized.

self.options.rm_safe('gst_base_ximage')
self.options.rm_safe('gst_base_xvimage')

if not self.options.with_base:
Copy link
Contributor

Choose a reason for hiding this comment

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

This won't work, unfortunately. The user-provided values for options are not available in config_options() or even configure(). You will have to del self.info.options.xyz' the options that have no effect in package_id()` instead.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm not sure I follow. Doc seems to do it in configure(), see second snippet where they remove fPIC.

I have no issue with moving it to package_id(), just want to understand a bit better. Thanks

Copy link
Contributor

Choose a reason for hiding this comment

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

@danimtb Maybe you or someone else from the team can clarify whether the configure() step can be used like that or not, given that you were wrestling with similar issues in the Arrow recipe. Does the standard if self.options.shared: del self.options.fPIC even work as intended?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm re-reading the doc and I think it should be in configure() and not in config_option() (that was a mistake as you pointed out, only settings is populated), and not in package_id(). I'll wait for confirmation on this. Thanks

recipes/gstreamer-full/all/conanfile.py Outdated Show resolved Hide resolved
@valgur
Copy link
Contributor

valgur commented Apr 22, 2024

Looks promising at a first glance. Thank you very much!

All of the sub-packages, except for gst-libav to some degree, are very likely to be used simultaneously, so packaging them as a single unit makes sense to me.

As for the difficulty of bumping 6 different packages one-by-one. That is currently quite painful indeed, but Conan devs have mentioned that support for modifying of multiple packages in a single PR will likely be added some time soon. @RubenRBS do you know if and when that feature might land on CCI?

Co-authored-by: Martin Valgur <martin.valgur@gmail.com>
@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
Copy link
Collaborator

Conan v1 pipeline ❌

Failure in build 5 (e6ee8462b7ea265eee96c1c890e152aaada88125):

  • gstreamer-full/1.24.3:
    Error running command conan export recipes/gstreamer-full/all/conanfile.py gstreamer-full/1.24.3@:
    WARN: *** Conan 1 is legacy and on a deprecation path ***
    WARN: *** Please upgrade to Conan 2 ***
    ERROR: Error loading conanfile at '/home/conan/workspace/prod-v1_cci_PR-23694/recipes/gstreamer-full/all/conanfile.py': Current Conan version (1.64.0) does not satisfy the defined one (>=2.3.0).
    

Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.


Conan v2 pipeline ❌

Note: Conan v2 builds are now mandatory. Please read our discussion about it.

The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping @conan-io/barbarians on the PR and we will help you.

See details:

Failure in build 5 (e6ee8462b7ea265eee96c1c890e152aaada88125):

  • gstreamer-full/1.24.3:
    Error running command conan export --name gstreamer-full --version 1.24.3 recipes/gstreamer-full/all/conanfile.py:
    ======== Exporting recipe to the cache ========
    ERROR: Error loading conanfile at '/home/conan/workspace/prod-v2_cci_PR-23694/recipes/gstreamer-full/all/conanfile.py': Current Conan version (2.2.2) does not satisfy the defined one (>=2.3.0).
    

Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability.

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

Successfully merging this pull request may close these issues.

3 participants