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: Added new versions and conan v2 support #14907

Closed
wants to merge 10 commits into from

Conversation

larshg
Copy link

@larshg larshg commented Dec 23, 2022

Specify library name and version: 1.14.5, 1.19.2 and 1.20.5

Added several versions
Updated to support conan V2

superseeds and consolidates #13537 and #13400


@CLAassistant
Copy link

CLAassistant commented Dec 23, 2022

CLA assistant check
All committers have signed the CLA.

@conan-center-bot

This comment has been minimized.

1 similar comment
@conan-center-bot

This comment has been minimized.

@larshg larshg mentioned this pull request Dec 23, 2022
Updated to support conan V2
@conan-center-bot

This comment has been minimized.

library: reorganize imports.
@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@larshg
Copy link
Author

larshg commented Dec 23, 2022

Version >1.20 fails to build statically with the following error:
[1840/1843] Linking target gstreamer-full-1.0.dll
FAILED: gstreamer-full-1.0.dll
"link" @gstreamer-full-1.0.dll.rsp
Microsoft (R) Incremental Linker Version 14.34.31933.0
Copyright (C) Microsoft Corporation. All rights reserved.

gstreamer-full-1.0.dll.rsp : fatal error LNK1170: line in command file contains 131071 or more characters

Seems like a meson / MSVC Linker issue.

Should static builds be disabled for those versions somehow?

@ghost ghost mentioned this pull request Dec 23, 2022
4 tasks
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 looks super good, just a few questions + minor suggestions

def requirements(self):
self.requires("glib/2.72.0")
def configure(self):
if self.options.shared or self.settings.os == "Windows":
Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Author

Choose a reason for hiding this comment

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

I have just "merged" the condtions from configure and config_options - but they are called independently or?

Copy link
Contributor

Choose a reason for hiding this comment

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

They are called independently. Most notably to the user before or after passing the command line input.

Our usual template give the best UX.

  • if you set fpic on windows it's a hard error (since that just isnt a thing)
  • If you pass fpic on linux but also shared it just disgarded since the value need to be true

you need to pass one option instead of worrying about both + this matches the internal logic of the helpers

Copy link
Author

Choose a reason for hiding this comment

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

Not entirely sure how its notably to the user, if its removed in either calls, but I have reverted to having both configure and config_options. I'll try read about the two.

Copy link
Author

@larshg larshg Jan 4, 2023

Choose a reason for hiding this comment

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

Ahh, I think I get it now. If they are removed in config_options, you get an error if you try set it in your conan call, since its no longer an option.
If removed in configure, you won't get an error even if you tried to set it - hence it can be more difficult to actually figure out if the value you try to set is actually used or not.

recipes/gstreamer/all/conanfile.py Outdated Show resolved Hide resolved
recipes/gstreamer/all/conanfile.py Show resolved Hide resolved
recipes/gstreamer/config.yml Show resolved Hide resolved
recipes/gstreamer/config.yml Outdated Show resolved Hide resolved
@conan-center-bot

This comment has been minimized.

self.info is only for package ID

Co-authored-by: Chris Mc <prince.chrismc@gmail.com>
@conan-center-bot

This comment has been minimized.

@larshg
Copy link
Author

larshg commented Jan 2, 2023

When is 1.56 installed on the build servers? Should I try with 1.54?

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@larshg
Copy link
Author

larshg commented Jan 3, 2023

Requires a fix added in 1.56.

@conan-center-bot

This comment has been minimized.

@prince-chrismc
Copy link
Contributor

When is 1.56 installed on the build servers? Should I try with 1.54?

It will be a while, CCI is general 1 release behind. I'd suggest making it work with 1.54 or we'll have to be patient 😞

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.

Just one question about the license change :) otherwise it looks good + I tried to answer some of the previous stuff

url = "https://github.com/conan-io/conan-center-index"
homepage = "https://gstreamer.freedesktop.org/"
license = "GPL-2.0-only"
license = "LGPL-2.0-or-later"
Copy link
Contributor

Choose a reason for hiding this comment

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

Why was this changed?

Copy link
Author

Choose a reason for hiding this comment

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

I did due to the other PR did it 😄
But reading this it should be correct to change it to LGPL.

def requirements(self):
self.requires("glib/2.72.0")
def configure(self):
if self.options.shared or self.settings.os == "Windows":
Copy link
Contributor

Choose a reason for hiding this comment

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

They are called independently. Most notably to the user before or after passing the command line input.

Our usual template give the best UX.

  • if you set fpic on windows it's a hard error (since that just isnt a thing)
  • If you pass fpic on linux but also shared it just disgarded since the value need to be true

you need to pass one option instead of worrying about both + this matches the internal logic of the helpers


def validate(self):
if not self.options["glib"].shared and self.options.shared:
if not self.dependencies.direct_host["glib"].options.shared and self.options.shared:
Copy link
Contributor

Choose a reason for hiding this comment

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

recipes/gstreamer/config.yml Show resolved Hide resolved
@conan-center-bot

This comment has been minimized.

@larshg
Copy link
Author

larshg commented Jan 4, 2023

I think currently it fails with 1.54, due to this being fixed, which is available from 1.56.
So I don't think we can fix it in the recipe - only by omitting the -pr:b profile, but I guess its not setable for the build on the CI?

@prince-chrismc
Copy link
Contributor

c3i was update so lets give it a try

@conan-center-bot

This comment has been minimized.

@stale
Copy link

stale bot commented Feb 18, 2023

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Feb 18, 2023
@larshg larshg closed this Feb 21, 2023
@larshg larshg reopened this Feb 21, 2023
@stale stale bot removed the stale label Feb 21, 2023
@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ❌

Sorry, the system is under maintenance and it doesn't accept builds right now. Thanks for your understanding and help with the Conan Center Index!


Conan v2 pipeline (informative, not required for merge) ❌

Note: Conan v2 builds are informative and they are not required for the PR to be merged.

The v2 pipeline failed. Please, review the errors and note this will be required for pull requests to be merged in the near future.

See details:

Sorry, the system is under maintenance and it doesn't accept builds right now. Thanks for your understanding and help with the Conan Center Index!

@larshg
Copy link
Author

larshg commented Feb 21, 2023

@prince-chrismc Something I can do about the timeout it mentions for gstreamer/1.19.1@macOS, Clang ?

@stale
Copy link

stale bot commented Mar 25, 2023

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Mar 25, 2023
@stale
Copy link

stale bot commented Apr 25, 2023

This pull request has been automatically closed because it has not had recent activity. Thank you for your contributions.

@stale stale bot closed this Apr 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants