-
Notifications
You must be signed in to change notification settings - Fork 604
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
Please update fmt to 9.0.0 #74
Comments
@Tachi107 fmt 9.0.0 has breaking changes compared to 7.1.3 . It can be ported but won't be easy |
Yeah I know, that's why I opened an issue instead of submitting a PR ;) |
vcpkg doesn't offer fmt 9.0.0 yet, despite it being released over a month ago. I assume this is another blocker for the developers of Cemu |
@Scrumplex It does offer it |
Yes, it was merged 22 days ago, see microsoft/vcpkg#25658 |
With port overlays its pretty easy to use any version of the lib we want. The actual issue are the many breaking changes they introduced, so updating our code to support fmt 9.x.x is no longer trivial. I think it makes more sense to include fmt 7.x.x as a git submodule which avoids the need for vcpkg. In the long term we can then work towards supporting later versions of fmt. |
The issue is not vcpkg itself, as it is usable on Linux, but the fact that users can't use the system version. This also makes it unlikely for Cemu to be packaged by distros, as they have a policy of not allowing bundled libraries, except for rare cases. No pressure though, updating the used fmt version is far from the only problem affecting the Linux builds :) |
If a distribution won't allow Cemu to be packaged without bundling certain libraries (where Cemu depends on a version that's incompatible with the system one) then honestly that distribution shouldn't be packaging Cemu in the first place, or they should be packaging a version of that library co-installable with the official "system" library (such as |
hmm, the website only shows 8.1.1 though :| |
There are a lot of pros and cons of the "no bundling" policy (security, reproducibility, size...). Sometimes it is even possible to install different versions of the same library, but you quickly run into issues like "both libfmt-7 and libfmt-9 install Anyway, distribution policies are outside of the scope of this issue. |
I am well aware, having been substantially involved as a system package and maintainer for a number of years now. That has given me a lot of first-hand experience in how the needs/goals of distributions and the needs/goals of complex applications are often diametrically opposed.
Typically for rolling distributions this is done when libfmt is upgraded from say major version 7 to 8. The alternative here is that the distro updates the
I will note that you yourself brought up packaging of Cemu with "This also makes it unlikely for Cemu to be packaged by distros". The natural question that brings up is "Is being packaged by distributions an explicit goal of the Cemu Linux port?". I'll open up a separate issue for that discussion however. |
Yeah in Debian we update libfmt and fill release-critical bugs to all the packages that fail to build with the new release. This also incentivises maintainers to write patches to fix the build failures and submit them upstream.
I expressed myself poorly. I meant that it should not be the main focus of the thread. Distribution policies are one of the reason why I reported this, but it is not what the thread is about. Just curious, on what distro do you work? |
And it still means that for users of that distro that Cemu is likely going to be broken until those patches are created because the new version of the library probably breaks ABI compatibility (otherwise Cemu would have likely built against it).
Solus Linux now, but I'm also currently involved in the still-nascent SerpentOS. |
No, Cemu is not going to be broken. The only thing that gets replaced are the development headers, shared libraries are versioned (a compiled executable doesn't link to
Oh, cool :) |
Closing this because of our stance in regards to #78. Currently, the officially encouraged way of building Cemu for development is with vcpkg which we have bundled with the fmt version that works. If thats not possible for whatever reason and system libraries have to be used (pull request for that is pending) then we can solve the original issue by using fmt as a git submodule. I rather not we swap out library versions and potentially introduce new bugs when we still have so many problems to solve. |
@Exzap you should close this as "wontfix", not "completed" |
libfmt 9.0.0 has lots of improvements (more constexpr stuff, improved C++20 compatibility), and updating to it would improve the situation for #1, as it is currently impossible to build Cemu using the system version of libfmt on recent distros.
Cemu is currently using version 7.1.3, released at the end of 2020.
The text was updated successfully, but these errors were encountered: