Hi On Sat, Jan 29, 2022 at 1:10 AM Sandro Mani <manisan...@gmail.com> wrote: > > > On 28.01.22 21:50, Marc-André Lureau wrote: > > Hi > > > > On Sat, Jan 29, 2022 at 12:27 AM Sandro Mani <manisan...@gmail.com> wrote: > >> > >>> Interesting question, it really depends on our users I imagine. > >>> > >>> Since Windows recommends ucrt since Windows 10 (2015) and you can ship > >>> UCRT for earlier versions up to Vista, there are very few reasons you > >>> would want to keep msvcrt. Notably, wine may need msvcrt binaries. > >>> However, if this is the only case, we probably don't want to keep > >>> maintaining and distributing all the msvcrt binaries with Fedora. > >>> > >>> My recommendation going forward (past f37 and ucrt toolchain > >>> introduction probably, unless we all agree?) would be to remove > >>> mingw32/64 libraries, but keep the various toolchains. This way, users > >>> who still want to target msvcrt can rebuild their dependencies > >>> themself relatively easily. > >> This is what I was kinda also thinking about. The one thing that scares > >> me TBH is having to go through rename-rereview of all mingw -> ucrt > >> packages. I wonder if one could handle it like > > Why renaming? what I propose is to add ucrt64-* libraries. > > > > For example, we have mingw32-zlib & mingw64-zlib today. We would have > > to add a third ucrt64-zlib. > > > > It's tedious, but we don't have to do it all in one go, we can add it over > > time. > > > > And with the simple template system I propose (until RPM provides > > something) it is easier to adapt, it avoids having to repeat things. > Wait I think I got confused by the environments overview in [1], which I > read as ucrt being a separate thing than mingw, but it's just mingw with > the different runtime right? So to be precise, the one package should be > called say mingw64-msvc-zlib while the other mingw64-ucrt-zlib?
Yes, it's mingw with a different target runtime. Until ucrt, the target was only x86/x86-64 msvcrt, so mingw32/mingw64 prefix was used. I propose to add the ucrt64 prefix for the MinGW UCRT64 x86-64 Fedora packages. To be pedantic, we should use something like "mingw-w64-ucrt-x86_64" as package prefix I guess. ucrt64 is a reasonable short form. That's also what msys2 picked for their environment (MSYSTEM) and prefix (/ucrt64) So it's not about renaming mingw64-zlib to mingw64-msvc-zlib, and introducing mingw64-ucrt-zlib. It's only about adding ucrt64-zlib (progressively, package by package as needed, over time) > >> - ask FESCO to rename without re-rereview all mingw32/64-* packages to > >> win32/64-* (or whatever generic windows prefix), leaving the runtime out > >> of the package name > >> - when the time comes, change the runtime and just recompile the entire > >> mingw/win package set > > That won't work. One reason you need a transition period is also > > because ucrt may introduce regressions in your package that you may > > have to work on.. I have fixed a few ucrt-related issues in glib > > (among others https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2449) > Yes indeed > >> I guess this would add the challange of keeping the packages in sync > >> with the corresponding native version (which is already quite a > >> challenge inside the distro actually). > > Fedora would no longer ship any library or windows binaries (almost), > > only the cross toolchain. > > > > You would simply run "msys2-pacman -S foopkg" and get either the same > > package distributed for Windows installed somehow on your distro > > (perhaps even under $HOME), or a side msys2 project could cross-build > > them package for your target linux distro (if that's necessary, but I > > think we could eventually get the same windows packages). For the vast > > majority of packages, that approach should work. > > > > The other approach is to simply vendor and cross-build your > > dependencies with your project (like meson wrap, rust etc are doing). > > > > The required bits are only the cross-toolchains then. > So what was on my mind here is that one of the attractiveness of the > current mingw environment is that (for a large part) you can develop the > application on your host system, and then cross-compile the builds for > windows, having a high confidence that the cross-compiled application > will have the same library versions as the ones you developed and tested > with natively. And having them pre-packaged clearly is a huge time-saver. That's a reasonable model. But how many Windows projects out there are tight to the Fedora release lifecycle? A serious Windows project that needs mingw is probably built and tested on Windows, probably using msys2 or with a custom solution. MinGW cross-compilation on Fedora is mostly for Linux developer convenience, and other more marginal requirements. _______________________________________________ mingw mailing list -- mingw@lists.fedoraproject.org To unsubscribe send an email to mingw-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/mingw@lists.fedoraproject.org Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure