-
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
sdl2: refactor access to dependencies for conan 2.0 compatibility #16266
sdl2: refactor access to dependencies for conan 2.0 compatibility #16266
Conversation
recipes/sdl/all/conanfile.py
Outdated
@@ -184,7 +184,7 @@ def build_requirements(self): | |||
# set. This could be because you are using a Mac OS X version less than 10.5 | |||
# or because CMake's platform configuration is corrupt. | |||
# FIXME: Remove once CMake on macOS/M1 CI runners is upgraded. | |||
self.build_requires("cmake/3.22.0") | |||
self.tool_requires("cmake/3.25.2") |
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.
it can be removed I think, it's an old workaround which is now useless.
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.
@jcar87 ?
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'm happy to remove this if I can reproduce the original error and verify that it doesn't happen anymore - otherwise I'd rather keep it out of caution. Are there any details about what exactly was wrong?
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.
It's an issue related to macOS M1 when install_name of dependencies is @rpath
, fixed in CMake 3.17 as far as I remember. MacOS CI agents have been updated with CMake 3.17 months ago (even more than 1 year ago I think) to avoid to add cmake to build requirements.
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.
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.
So it seems the comment explaining the rational of this build requirement is wrong (a copy/paste?).
This comment has been minimized.
This comment has been minimized.
Hooks produced the following warnings for commit 6fd30besdl/2.26.0
sdl/2.0.20
sdl/2.0.16
sdl/2.0.14
|
That's a lot of missing packages 😲 , many of these recipes should work with v2 client. |
@jcar87 might need some tapaholes |
this one last run last week, most of the packages have been generated now :) @prince-chrismc I'll launch jobs for the few ones that are missing @SpaceIm - there are about 700 recipes that are fully compatible with Conan 2.0, with another 200 that are almost there - when all the versions and platforms are taken into account this is a big job. We have been generating the packages in waves, while at the same time fine-tuning the pipeline for 2.0, we're getting there :D |
6fd30be
to
d661b94
Compare
This comment has been minimized.
This comment has been minimized.
5a20239
to
ae9fed4
Compare
This comment has been minimized.
This comment has been minimized.
Hooks produced the following warnings for commit ae9fed4sdl/2.0.16
sdl/2.26.0
sdl/2.26.1
sdl/2.0.18
|
To pass v2 pipeline, it needs #16075 (which needs missing v2 packages of gettext). |
Any progress on this PR? |
I detected other pull requests that are modifying sdl/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. |
Derp I thought this was my PR... Anyways it seems pulseaudio is still missing
|
This comment has been minimized.
This comment has been minimized.
ae9fed4
to
d86533c
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
It failed because of this:
The problem here is that This is what uncovered that
Either way, the build for v2 now progresses further since It's an instance of: libsdl-org/SDL#5088 - which affects version 2.0.18 but not 2.0.20 or greater, from what I can see. Conan Center does not reference any version below 2.0.20 so rather than backport a fix, we can probably remove the old versions. |
This comment has been minimized.
This comment has been minimized.
Hooks produced the following warnings for commit 3b8112esdl/2.26.0
sdl/2.26.1
sdl/2.24.0
sdl/2.24.1
|
This error in the Conan 2.0 pipeline when
On further investigation, no version in Conan Center for
the I'm a bit puzzled as to why the recipe expressed that iconv was unconditionally required on macOS - it wasn't: as we see from the above, it was never correctly found by the build system and the SDL2 build system gracefully falls back. Perhaps because there was no easy/public way of disabling the dependency (which was resolved in a newer version: libsdl-org/SDL#6339). So I'm removing that restriction. In order to avoid problems with the Apple libiconv and this one, I propose that on macOS by default that we don't depend on libiconv. This avoids the potential runtime conflicts between the Conan library and the macOS system library - it just codifies in the recipe what was already happening by accident. On the other hand, this potential conflict is an issue in older versions of macOS where |
This comment has been minimized.
This comment has been minimized.
Hooks produced the following warnings for commit 3bec507sdl/2.26.1
sdl/2.24.1
sdl/2.26.0
sdl/2.24.0
sdl/2.0.20
|
Conan v1 pipeline ✔️All green in build 12 (
Conan v2 pipeline (informative, not required for merge) ✔️
All green in build 13 ( |
Hooks produced the following warnings for commit 70f8952sdl/2.26.0
sdl/2.24.1
sdl/2.24.0
sdl/2.26.1
sdl/2.0.20
|
…compatibility * sdl: refactor access to dependencies for conan 2.0 compatibility * sdl2: remove default dependency on nas * sdl: newest cmake * sdl: add package_type * sdl2: remove old versions and sync wayland requirement * sdl2: fix libiconv on macos * sdl: remove logic for older versions and fix libiconv logic on macOS --------- Co-authored-by: Chris Mc <[email protected]>
Specify library name and version: sdl/all
self.dependencies["xxx"].options
generate()
method)nas
option toFalse
2.0.20
due to build error ([wayland] fails to build with Wayland 1.20.0 - undefined reference to 'wl_proxy_marshal_flags' libsdl-org/SDL#5088) - these versions are no longer referenced by recipes in Conan Center2.0.20
iconv
option toFalse
on macOS by defaultNotes on
nas
dependency:While sdl2 can be compatible with
nas
, it would appear this functionality is not widely used. The sdl binaries provided by other package managers (vcpkg, conda-forge, homebrew) do not include a dependency on nas on Linux, and none of the above mentioned even provide a package for nas. On Ubuntu, the distro maintainers explicitly disable nas support when building nas. Thenas
recipe is a maintenance burden due to its build requirement onimake
, which has been deemed obsolete for well over a decade. This PR sets the default to False, but we may deprecate the nas recipe altogether in the future, if indeed our suspicion is correct that this is not functionality that is in use.Notes on the
iconv
dependency on macOS:iconv
option to False by default - in particular when iconv is enabled andshared=True
, there can be runtime conflicts between the Conan-provided iconv, and the Apple provided one, which comes as a transitive dependency of one of the many system frameworksiconv=True
- to actually use the iconv provided by Conan.