-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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] Update dependency support for recent changes. #21980
Conversation
Updates for changes in commits: 7bb175e [aom/libavif] Add support for ARM and UWP a8204d9 [fribidi] Support new platform
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, thanks for your PR!
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 think these messages should just be deleted; they are implied by the dependencies and vcpkg will already print such messages long before attempting to build ffmpeg:
PS C:\Dev\vcpkg> .\vcpkg.exe install ffmpeg[aom]:arm-windows
Computing installation plan...
Error: aom[core] is only supported on '!(windows & arm & !uwp)'
PS C:\Dev\vcpkg>
Similarly, I believe supports expressions on features that exist only to accommodate dependencies should be removed.
Thanks for noticing the duplicate message!
The supports 'platform' values in vcpkg.json are there to enable the 'all' feature to work correctly and the error messages were added to the portfile because at the time vcpkg wasn't generating error messages when unsupported features were enabled (#17153) and im not entirely sure if that situation has been resolved. I should also point out that some of the errors in the portfile and not just due to the dependencies support requirements but also additional requirements of ffmpeg (i.e. vcpkg may be able to build a dependency with configuration x but ffmpeg doesnt support using it) |
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.
This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!
PRs must add only one version and must not modify any published versions
When making any changes to a library, the version or port-version in vcpkg.json
or CONTROL
must be modified.
Error: Local changes detected for ffmpeg but no changes to version or port version.
-- Version: 4.4.1#3
-- Old SHA: 00480edd2a451f2a3a55452779f524709ee52585
-- New SHA: ae9a4b22462b3aea1423c43cc24b4de746df8ab9
-- Did you remember to update the version or port version?
-- Pass `--overwrite-version` to bypass this check.
***No files were updated.***
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.
This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!
After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 772fe6cbce530cb3a5f0fee67b57e9861676e5d0 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/f-/ffmpeg.json b/versions/f-/ffmpeg.json
index e15e945..01ca59e 100644
--- a/versions/f-/ffmpeg.json
+++ b/versions/f-/ffmpeg.json
@@ -6,7 +6,7 @@
"port-version": 4
},
{
- "git-tree": "ae9a4b22462b3aea1423c43cc24b4de746df8ab9",
+ "git-tree": "00480edd2a451f2a3a55452779f524709ee52585",
"version": "4.4.1",
"port-version": 3
},
ports/ffmpeg/portfile.cmake
Outdated
if("aom" IN_LIST FEATURES) | ||
if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" OR VCPKG_TARGET_IS_UWP) | ||
message(FATAL_ERROR "Feature 'aom' does not support 'uwp | arm'") | ||
if ((VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") AND NOT VCPKG_TARGET_IS_UWP) | ||
message(FATAL_ERROR "Feature 'aom' does not support 'windows & arm & !uwp'") | ||
endif() | ||
endif() |
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 think Billy means these messages should just be deleted, it looks doesn't support arm or arm64, which the dependency port aom already have the message.
PS F:\vcpkg\21980\vcpkg> ./vcpkg install ffmpeg[aom]:arm-windows
Computing installation plan...
Error: aom[core] is only supported on '!(windows & arm & !uwp)'
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.
This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!
After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 772fe6cbce530cb3a5f0fee67b57e9861676e5d0 -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/f-/ffmpeg.json b/versions/f-/ffmpeg.json
index e15e945..f51e031 100644
--- a/versions/f-/ffmpeg.json
+++ b/versions/f-/ffmpeg.json
@@ -1,12 +1,12 @@
{
"versions": [
{
- "git-tree": "f61b69b7b8d727e4caf45d7f39d9dcf77e620090",
+ "git-tree": "705505c43d32e7d62a0df59e506b8a3a81d742bd",
"version": "4.4.1",
"port-version": 4
},
{
- "git-tree": "ae9a4b22462b3aea1423c43cc24b4de746df8ab9",
+ "git-tree": "00480edd2a451f2a3a55452779f524709ee52585",
"version": "4.4.1",
"port-version": 3
},
That's not correct; feature resolution does not inspect
In such cases we can leave the message :). I just don't want |
No, but it does check "platform" which is what I was referring to
I can go through and delete everything thats not ffmpeg specific. I wasnt a big fan of adding that in the first place for just the reasons you mentioned. |
Thanks for the updated reporting and working with us on code review feedback! |
In microsoft#21980 , we removed all the blocks for tensorflow which were merely replicating that upstream's "supports" expression. That is the correct behavior: if upstream adds support for a thing, it should start being tested downstream. However, the "all" and "all-nonfree" features of ffmpeg attempt to turn on what is really "all supported" rather than "all", so the feature-dependency needs to be guarded. Note that the ffmpeg[tensorflow] feature remains unguarded! It is ffmpeg[all]'s *dependency* on ffmpeg[tensorflow] that is guarded.
…64. (#22984) * [ffmpeg] Block "tensorflow" for the "all" feature on non-x64. In #21980 , we removed all the blocks for tensorflow which were merely replicating that upstream's "supports" expression. That is the correct behavior: if upstream adds support for a thing, it should start being tested downstream. However, the "all" and "all-nonfree" features of ffmpeg attempt to turn on what is really "all supported" rather than "all", so the feature-dependency needs to be guarded. Note that the ffmpeg[tensorflow] feature remains unguarded! It is ffmpeg[all]'s *dependency* on ffmpeg[tensorflow] that is guarded. * Also guard ass, tensorflow, and fontconfig for uwp
…64. (#22984) * [ffmpeg] Block "tensorflow" for the "all" feature on non-x64. In microsoft/vcpkg#21980 , we removed all the blocks for tensorflow which were merely replicating that upstream's "supports" expression. That is the correct behavior: if upstream adds support for a thing, it should start being tested downstream. However, the "all" and "all-nonfree" features of ffmpeg attempt to turn on what is really "all supported" rather than "all", so the feature-dependency needs to be guarded. Note that the ffmpeg[tensorflow] feature remains unguarded! It is ffmpeg[all]'s *dependency* on ffmpeg[tensorflow] that is guarded. * Also guard ass, tensorflow, and fontconfig for uwp
…64. (#22984) * [ffmpeg] Block "tensorflow" for the "all" feature on non-x64. In microsoft/vcpkg#21980 , we removed all the blocks for tensorflow which were merely replicating that upstream's "supports" expression. That is the correct behavior: if upstream adds support for a thing, it should start being tested downstream. However, the "all" and "all-nonfree" features of ffmpeg attempt to turn on what is really "all supported" rather than "all", so the feature-dependency needs to be guarded. Note that the ffmpeg[tensorflow] feature remains unguarded! It is ffmpeg[all]'s *dependency* on ffmpeg[tensorflow] that is guarded. * Also guard ass, tensorflow, and fontconfig for uwp
Updates for changes in commits:
7bb175e [aom/libavif] Add support for ARM and UWP
a8204d9 [fribidi] Support new platform