-
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
ffmpeg/4.4: Upgrade and properly handle component versioning #7563
Conversation
Properly version components.
This comment has been minimized.
This comment has been minimized.
I detected other pull requests that are modifying ffmpeg/all recipe: This message is automatically generated by https://github.com/ericLemanissier/conan-center-conflicting-prs so don't hesitate to report issues/improvements there. |
I am now reading versions from the source code. Nothing strange added in conandata.yml. |
This comment has been minimized.
This comment has been minimized.
yes, this is useful. ffmpeg libraries might have different versions:
for the Mac failure, you need to add the following code below the line 529 (
|
Thanks for the tip! Let's see how it goes with your fix. |
okay, it seems like I was wrong. the functions are from |
This comment has been minimized.
This comment has been minimized.
Just for curiosity: what is the goal of filling this version information? I don't find documentation about component version. |
one of the scenarios is to support pkg-config version expressions, like:
I think |
Co-authored-by: Martin Delille <martin@delille.org>
this is exactly my use case :-) |
This comment has been minimized.
This comment has been minimized.
OK, I checked, there's no option fore coreaudio. But it seems linked with AudioToolbox. https://github.com/FFmpeg/FFmpeg/blob/master/configure#L3437 |
yes, looks good! |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
for line in version_file: | ||
match = re.search(pattern, line) |
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.
How big are the files? I am wondering if package_info runs more then once there might be an annoying performance issue...
See #4319
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.
these are relatively small text files, about 50 lines:
https://github.com/FFmpeg/FFmpeg/blob/master/libavdevice/version.h
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.
I do not know conan well enough. I do not know what is best. Here are the solutions I have in mind:
- execute this code at package build time and create a file containing the versions.
in package_info(), I could read this file - I could simply cache the version, so that if package_info() is called multiple times for the same instance, the files are read just once.
- do both of these.
- keep it like this. Reading 766 lines from 9 files (~27kb total) in package_info() is OK.
@prince-chrismc @SSE4 what solution seems best?
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.
keep it simple, no need for caching or creating an extra file for now :)
Co-authored-by: Chris Mc <prince.chrismc@gmail.com>
Co-authored-by: Chris Mc <prince.chrismc@gmail.com>
This comment has been minimized.
This comment has been minimized.
I had another question: why ffmpeg 4.4 doesn't have three digit in its versioning scheme (like 4.2.1 and 4.3.2) ? |
I do not know. Maybe they think 4.4 looks better than 4.4.0? |
it was always the case. they had |
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.
LGTM
This trick doesn't work with new generator |
This merge request upgrades ffmpeg/4.4 and adds support for component versioning.
ffmpeg is composed of several libraries. The release page shows versions of all libraries the ffmpeg package contain.
This MR proposes to propagate those versions to the corresponding conan components, so that consumers that check for components version work without modification. I came to this when working on installing gstreamer with conan (I will open a serparate MR for this).
conan-center hook activated.