Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.devel > #101547 > unrolled thread
| Started by | Zebediah Figura <zfigura@codeweavers.com> |
|---|---|
| First post | 2021-09-05 03:40 +0200 |
| Last post | 2022-04-17 02:30 +0200 |
| Articles | 20 on this page of 53 — 8 participants |
Back to article view | Back to linux.debian.devel
Wine MinGW system libraries Zebediah Figura <zfigura@codeweavers.com> - 2021-09-05 03:40 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-05 09:20 +0200
Re: Wine MinGW system libraries Stephen Kitt <skitt@debian.org> - 2021-09-05 18:30 +0200
Re: Wine MinGW system libraries Adrian Bunk <bunk@debian.org> - 2021-09-12 10:00 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-12 15:40 +0200
Re: Wine MinGW system libraries Adrian Bunk <bunk@debian.org> - 2021-09-12 16:10 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-12 16:20 +0200
Re: Wine MinGW system libraries Adrian Bunk <bunk@debian.org> - 2021-09-12 16:40 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-12 17:20 +0200
Re: Wine MinGW system libraries Adrian Bunk <bunk@debian.org> - 2021-09-12 17:30 +0200
Re: Wine MinGW system libraries Helmut Grohne <helmut@subdivi.de> - 2021-09-13 17:50 +0200
Re: Wine MinGW system libraries Stephen Kitt <skitt@debian.org> - 2021-09-13 20:20 +0200
Re: Wine MinGW system libraries Helmut Grohne <helmut@subdivi.de> - 2021-09-13 22:10 +0200
Re: Wine MinGW system libraries Adrian Bunk <bunk@debian.org> - 2021-09-13 22:30 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-13 23:00 +0200
Re: Wine MinGW system libraries Adrian Bunk <bunk@debian.org> - 2021-09-13 23:40 +0200
Re: Wine MinGW system libraries Stephen Kitt <skitt@debian.org> - 2021-09-12 17:40 +0200
Re: Wine MinGW system libraries Adrian Bunk <bunk@debian.org> - 2021-09-12 18:40 +0200
Re: Wine MinGW system libraries Stephen Kitt <skitt@debian.org> - 2021-09-12 19:10 +0200
Re: Wine MinGW system libraries Adrian Bunk <bunk@debian.org> - 2021-09-12 20:20 +0200
Re: Wine MinGW system libraries Stephen Kitt <skitt@debian.org> - 2021-09-13 20:30 +0200
Re: Wine MinGW system libraries Stephen Kitt <skitt@debian.org> - 2021-09-05 18:20 +0200
Re: Wine MinGW system libraries Zebediah Figura <zfigura@codeweavers.com> - 2021-09-05 19:20 +0200
Re: Wine MinGW system libraries Stephen Kitt <skitt@debian.org> - 2021-09-06 09:10 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-06 10:20 +0200
Re: Wine MinGW system libraries Zebediah Figura <zfigura@codeweavers.com> - 2021-09-06 18:40 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-06 21:00 +0200
Re: Wine MinGW system libraries Zebediah Figura <zfigura@codeweavers.com> - 2021-09-07 00:00 +0200
Re: Wine MinGW system libraries Paul Wise <pabs@debian.org> - 2021-09-07 02:50 +0200
Re: Wine MinGW system libraries "Bastien Roucariès" <roucaries.bastien@gmail.com> - 2021-09-07 12:40 +0200
Re: Wine MinGW system libraries Zebediah Figura <zfigura@codeweavers.com> - 2021-09-07 17:50 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-07 19:30 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-07 20:20 +0200
Re: Wine MinGW system libraries Zebediah Figura <zfigura@codeweavers.com> - 2021-09-07 23:20 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-08 01:50 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-08 09:50 +0200
Re: Wine MinGW system libraries Simon McVittie <smcv@debian.org> - 2021-09-08 10:20 +0200
Re: Wine MinGW system libraries Zebediah Figura <zfigura@codeweavers.com> - 2021-09-08 17:50 +0200
Re: Wine MinGW system libraries Paul Wise <pabs@debian.org> - 2021-09-09 03:20 +0200
Re: Wine MinGW system libraries Zebediah Figura <zfigura@codeweavers.com> - 2021-09-09 06:50 +0200
Re: Wine MinGW system libraries Paul Wise <pabs@debian.org> - 2021-09-09 07:20 +0200
Re: Wine MinGW system libraries Zebediah Figura <zfigura@codeweavers.com> - 2021-09-09 07:40 +0200
Re: Wine MinGW system libraries Paul Wise <pabs@debian.org> - 2021-09-09 07:50 +0200
Re: Wine MinGW system libraries Zebediah Figura <zfigura@codeweavers.com> - 2021-09-09 08:10 +0200
Re: Wine MinGW system libraries Paul Wise <pabs@debian.org> - 2021-09-09 09:40 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-10 11:50 +0200
Re: Wine MinGW system libraries Paul Wise <pabs@debian.org> - 2021-09-11 08:10 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-12 17:20 +0200
Re: Wine MinGW system libraries Paul Wise <pabs@debian.org> - 2021-09-08 01:10 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-08 01:30 +0200
Re: Wine MinGW system libraries Adrian Bunk <bunk@debian.org> - 2021-09-11 17:40 +0200
Re: Wine MinGW system libraries Bastien ROUCARIES <roucaries.bastien@gmail.com> - 2021-09-11 20:10 +0200
Re: Wine MinGW system libraries Zebediah Figura <zfigura@codeweavers.com> - 2022-04-17 02:30 +0200
Page 1 of 3 [1] 2 3 Next page →
| From | Zebediah Figura <zfigura@codeweavers.com> |
|---|---|
| Date | 2021-09-05 03:40 +0200 |
| Subject | Wine MinGW system libraries |
| Message-ID | <CTPiy-2xn-3@gated-at.bofh.it> |
Hello all, I'm a contributor to the Wine project. To summarize the following mail, Wine needs special versions of some of its normal dependencies, such as libfreetype and libgnutls, built using the MinGW cross-compiler, and I'm sending out a mail to major distributions in order to get some feedback from our packagers on how these should be built and packaged. For a long time Wine has built all of its Win32 libraries (DLLs and EXEs) as ELF binaries. For various reasons related to application compatibility, we have started building our binaries as PE instead, using the MinGW cross-compiler. It is our intent to expand this to some of our dependencies as well. The list of dependencies that we intend to build using MinGW is not quite fixed yet, but we expect it to include and be mostly limited to the following: * libvkd3d * libFAudio * libgnutls * zlib (currently included via manual source import) * libmpg123 * libgsm * libpng * libjpeg-turbo * libtiff * libfreetype * liblcms2 * jxrlib and dependencies of the above packages (not including CRT dependencies, which Wine provides). There is currently some internal discussion about how these dependencies should be built and linked. There are essentially three questions I see that need to be resolved, and while these resolutions have a significant impact on the Wine building and development process, they also have an impact on distributions, and accordingly I'd like to get input from our packagers to ensure that their considerations are accurately taken into account. (1) Should we build via source import, or link statically, or dynamically? Source imports are dispreferred by Debian [1], on the grounds that they cause duplication of libraries on disk and in memory, and make it harder to handle security updates. They also make building and bisecting harder. Static libraries don't seem to be expressly discouraged, but share most of the same downsides (see also [2]). Note however that if they are linked dynamically, we need to make sure that we load our packages instead of MinGW builds of open-source libraries with applications ship with. There's some internal discussion about whether this is possible while using "stock" builds of MinGW libraries, but, due to the way the Win32 loader works, we will probably need to compile each library, and its dependencies, with a separate, wine-specific name, e.g. "libwinefreetype-6.dll" and "libwineharfbuzz.dll". For a detailed explantion see footnote [3]. Note that all we actually need to change is the name; we don't need to patch the source. Accordingly, although static linking and source imports are generally disprefered, it may quite likely be preferable in our case. We don't get the benefits of on-disk deduplication, since Wine is essentially the only piece of software which needs these libraries. (2) If we use dynamic libraries, should dependencies be included in the main wine package, or packaged separately? This is mostly a question for packagers, although it also relates to (3). I expect that Debian will want to answer "packaged separately" here, on the grounds that this lets them update (say) Wine's libgnutls separately, and in sync with ELF libgnutls, if some security fix is needed. There is a snag, though: we need libraries to be copied into the prefix (there's some internal effort to allow using something like symlinks instead, but this hard and not done yet). Normally we perform this copy every time Wine is updated, but if Wine and its dependencies aren't updated on the same schedule, we may end up loading an old version of a dependency in the prefix. (3) If dependencies are packaged separately, should Wine build them as part of its build tree (e.g. using submodules), or find and link (statically or dynamically) to existing binaries? Linking to existing binaries is generally preferable: it avoids duplication on disk; it reduces compile times when compiling a single package from source (especially the first time). However, we aren't going to benefit from on-disk duplication. And, most importantly, unlike with ELF dependencies, there is no standardized way to locate MinGW libraries—especially if it comes to Wine-specific libraries. We would need a way for Wine's configure script to find these packages—and ideally find them automatically, or else fall back to a submodule-based approach. If we rely on distributions to provide our dependencies, the best idea I have here would be something like a x86_64-w64-mingw32-pkg-config (Fedora actually already ships this, but I think Fedora is the only one). And if we use shared libraries rather than static, things get worse: we need to know the exact path of each library and its dependencies at runtime so that we can copy (or symlink) them into a user's WINEPREFIX. For ELF this is the job of ld.so. For MinGW there is no standardized install location across distributions. For what it's worth, the current proposed solution (which has the support of the Wine maintainer) involves source imports and submodules. There's probably room for changing our approach even after things are committed, but I'd still like to get early feedback from distributions, and make sure that their interests are accurately represented, before we commit. ἔρρωσθε, Zebediah (she/her) [1] https://www.debian.org/doc/debian-policy/ch-source.html#embedded-code-copies [2] https://wiki.debian.org/StaticLinking [3] The basic problem is that applications can and often do ship with PE builds of cross-platform libraries. These libraries can be ahead of Wine's system libraries, behind them, or even built with custom patches. Accordingly we really don't want to load "our" freetype in place of "their" freetype, or "theirs" in place of "ours". But because of the way the Win32 loader works, you can generally only have one DLL of a given name loaded in a process, and further attempts to dlopen() [as it were] "libfreetype-6.dll" will return the handle to the already loaded library, potentially breaking either Wine or the application. There *may* be ways we can hack around this internally, but it's not clear that it's feasible yet, and so it's probably best to assume that we'll need special builds of dynamic libraries.
[toc] | [next] | [standalone]
| From | Bastien ROUCARIES <roucaries.bastien@gmail.com> |
|---|---|
| Date | 2021-09-05 09:20 +0200 |
| Message-ID | <CTUBz-6ai-1@gated-at.bofh.it> |
| In reply to | #101547 |
[Multipart message — attachments visible in raw view] — view raw
Le dim. 5 sept. 2021 à 03:34, Zebediah Figura <zfigura@codeweavers.com> a écrit : > Hello all, > > I'm a contributor to the Wine project. To summarize the following mail, > Wine needs special versions of some of its normal dependencies, such as > libfreetype and libgnutls, built using the MinGW cross-compiler, and I'm > sending out a mail to major distributions in order to get some feedback > from our packagers on how these should be built and packaged. > > For a long time Wine has built all of its Win32 libraries (DLLs and > EXEs) as ELF binaries. For various reasons related to application > compatibility, we have started building our binaries as PE instead, > using the MinGW cross-compiler. It is our intent to expand this to some > of our dependencies as well. The list of dependencies that we intend to > build using MinGW is not quite fixed yet, but we expect it to include > and be mostly limited to the following: > > * libvkd3d > * libFAudio > * libgnutls > * zlib (currently included via manual source import) > * libmpg123 > * libgsm > * libpng > * libjpeg-turbo > * libtiff > * libfreetype > * liblcms2 > * jxrlib > > and dependencies of the above packages (not including CRT dependencies, > which Wine provides). > > There is currently some internal discussion about how these dependencies > should be built and linked. There are essentially three questions I see > that need to be resolved, and while these resolutions have a significant > impact on the Wine building and development process, they also have an > impact on distributions, and accordingly I'd like to get input from our > packagers to ensure that their considerations are accurately taken into > account. > > (1) Should we build via source import, or link statically, or dynamically? > > Source imports are dispreferred by Debian [1], on the grounds that they > cause duplication of libraries on disk and in memory, and make it harder > to handle security updates. They also make building and bisecting > harder. Static libraries don't seem to be expressly discouraged, but > share most of the same downsides (see also [2]). > > Note however that if they are linked dynamically, we need to make sure > that we load our packages instead of MinGW builds of open-source > libraries with applications ship with. There's some internal discussion > about whether this is possible while using "stock" builds of MinGW > libraries, but, due to the way the Win32 loader works, we will probably > need to compile each library, and its dependencies, with a separate, > wine-specific name, e.g. "libwinefreetype-6.dll" and > "libwineharfbuzz.dll". For a detailed explantion see footnote [3]. Note > that all we actually need to change is the name; we don't need to patch > the source. > > Accordingly, although static linking and source imports are generally > disprefered, it may quite likely be preferable in our case. We don't get > the benefits of on-disk deduplication, since Wine is essentially the > only piece of software which needs these libraries. > > (2) If we use dynamic libraries, should dependencies be included in the > main wine package, or packaged separately? > Improve dpkg to support partial arch. I volonteer to implement none arch but i am waiting from guillem here. > This is mostly a question for packagers, although it also relates to (3). > > I expect that Debian will want to answer "packaged separately" here, on > the grounds that this lets them update (say) Wine's libgnutls > separately, and in sync with ELF libgnutls, if some security fix is > needed. There is a snag, though: we need libraries to be copied into the > prefix (there's some internal effort to allow using something like > symlinks instead, but this hard and not done yet). Normally we perform > this copy every time Wine is updated, but if Wine and its dependencies > aren't updated on the same schedule, we may end up loading an old > version of a dependency in the prefix. > > (3) If dependencies are packaged separately, should Wine build them as > part of its build tree (e.g. using submodules), or find and link > (statically or dynamically) to existing binaries? > > Linking to existing binaries is generally preferable: it avoids > duplication on disk; it reduces compile times when compiling a single > package from source (especially the first time). However, we aren't > going to benefit from on-disk duplication. And, most importantly, unlike > with ELF dependencies, there is no standardized way to locate MinGW > libraries—especially if it comes to Wine-specific libraries. We would > need a way for Wine's configure script to find these packages—and > ideally find them automatically, or else fall back to a submodule-based > approach. > > If we rely on distributions to provide our dependencies, the best idea I > have here would be something like a x86_64-w64-mingw32-pkg-config > (Fedora actually already ships this, but I think Fedora is the only > one). And if we use shared libraries rather than static, things get > worse: we need to know the exact path of each library and its > dependencies at runtime so that we can copy (or symlink) them into a > user's WINEPREFIX. For ELF this is the job of ld.so. For MinGW there is > no standardized install location across distributions > Partial arch is the solution hère. I can help also here > > For what it's worth, the current proposed solution (which has the > support of the Wine maintainer) involves source imports and submodules. > There's probably room for changing our approach even after things are > committed, but I'd still like to get early feedback from distributions, > and make sure that their interests are accurately represented, before we > commit. > > ἔρρωσθε, > Zebediah > (she/her) > > [1] > > https://www.debian.org/doc/debian-policy/ch-source.html#embedded-code-copies > > [2] https://wiki.debian.org/StaticLinking > > [3] The basic problem is that applications can and often do ship with PE > builds of cross-platform libraries. These libraries can be ahead of > Wine's system libraries, behind them, or even built with custom patches. > Accordingly we really don't want to load "our" freetype in place of > "their" freetype, or "theirs" in place of "ours". But because of the way > the Win32 loader works, you can generally only have one DLL of a given > name loaded in a process, and further attempts to dlopen() [as it were] > "libfreetype-6.dll" will return the handle to the already loaded > library, potentially breaking either Wine or the application. There > *may* be ways we can hack around this internally, but it's not clear > that it's feasible yet, and so it's probably best to assume that we'll > need special builds of dynamic libraries. > >
[toc] | [prev] | [next] | [standalone]
| From | Stephen Kitt <skitt@debian.org> |
|---|---|
| Date | 2021-09-05 18:30 +0200 |
| Message-ID | <CU3bP-34N-7@gated-at.bofh.it> |
| In reply to | #101549 |
[Multipart message — attachments visible in raw view] — view raw
Hi Bastien, On Sun, 5 Sep 2021 08:53:49 +0200, Bastien ROUCARIES <roucaries.bastien@gmail.com> wrote: > Le dim. 5 sept. 2021 à 03:34, Zebediah Figura <zfigura@codeweavers.com> a > écrit : > > I'm a contributor to the Wine project. To summarize the following mail, > > Wine needs special versions of some of its normal dependencies, such as > > libfreetype and libgnutls, built using the MinGW cross-compiler, and I'm > > sending out a mail to major distributions in order to get some feedback > > from our packagers on how these should be built and packaged. > > > > For a long time Wine has built all of its Win32 libraries (DLLs and > > EXEs) as ELF binaries. For various reasons related to application > > compatibility, we have started building our binaries as PE instead, > > using the MinGW cross-compiler. It is our intent to expand this to some > > of our dependencies as well. The list of dependencies that we intend to > > build using MinGW is not quite fixed yet, but we expect it to include > > and be mostly limited to the following: > > > > * libvkd3d > > * libFAudio > > * libgnutls > > * zlib (currently included via manual source import) > > * libmpg123 > > * libgsm > > * libpng > > * libjpeg-turbo > > * libtiff > > * libfreetype > > * liblcms2 > > * jxrlib > > > > and dependencies of the above packages (not including CRT dependencies, > > which Wine provides). > > > > There is currently some internal discussion about how these dependencies > > should be built and linked. There are essentially three questions I see > > that need to be resolved, and while these resolutions have a significant > > impact on the Wine building and development process, they also have an > > impact on distributions, and accordingly I'd like to get input from our > > packagers to ensure that their considerations are accurately taken into > > account. > > > > (1) Should we build via source import, or link statically, or dynamically? > > > > Source imports are dispreferred by Debian [1], on the grounds that they > > cause duplication of libraries on disk and in memory, and make it harder > > to handle security updates. They also make building and bisecting > > harder. Static libraries don't seem to be expressly discouraged, but > > share most of the same downsides (see also [2]). > > > > Note however that if they are linked dynamically, we need to make sure > > that we load our packages instead of MinGW builds of open-source > > libraries with applications ship with. There's some internal discussion > > about whether this is possible while using "stock" builds of MinGW > > libraries, but, due to the way the Win32 loader works, we will probably > > need to compile each library, and its dependencies, with a separate, > > wine-specific name, e.g. "libwinefreetype-6.dll" and > > "libwineharfbuzz.dll". For a detailed explantion see footnote [3]. Note > > that all we actually need to change is the name; we don't need to patch > > the source. > > > > Accordingly, although static linking and source imports are generally > > disprefered, it may quite likely be preferable in our case. We don't get > > the benefits of on-disk deduplication, since Wine is essentially the > > only piece of software which needs these libraries. > > > > (2) If we use dynamic libraries, should dependencies be included in the > > main wine package, or packaged separately? > > > > > Improve dpkg to support partial arch. I volonteer to implement none arch > but i am waiting from guillem here. Thanks for stepping up! For MinGW-w64 dependencies, an additional requirement is figuring out a solution for https://bugs.debian.org/606825; https://wiki.debian.org/Teams/Dpkg/FAQ#Q._Can_we_add_support_for_new_dpkg_architectures.3F gives additional context. Regards, Stephen
[toc] | [prev] | [next] | [standalone]
| From | Adrian Bunk <bunk@debian.org> |
|---|---|
| Date | 2021-09-12 10:00 +0200 |
| Message-ID | <CWsz7-5HO-1@gated-at.bofh.it> |
| In reply to | #101549 |
On Sun, Sep 05, 2021 at 08:53:49AM +0200, Bastien ROUCARIES wrote: >... > Improve dpkg to support partial arch. I volonteer to implement none arch > but i am waiting from guillem here. >... There is also plenty of infrastructure on the buildd, archive and release team sides that would likely need changes for supporting anything like that. A multilib based approach might be more realistic for bookworm. What benefits would a "none arch" even bring compared to building binary-all packages? The ability to binNMU is the only one that comes into my mind. cu Adrian
[toc] | [prev] | [next] | [standalone]
| From | Bastien ROUCARIES <roucaries.bastien@gmail.com> |
|---|---|
| Date | 2021-09-12 15:40 +0200 |
| Message-ID | <CWxSa-X7-3@gated-at.bofh.it> |
| In reply to | #101665 |
Le dim. 12 sept. 2021 à 07:38, Adrian Bunk <bunk@debian.org> a écrit : > > On Sun, Sep 05, 2021 at 08:53:49AM +0200, Bastien ROUCARIES wrote: > >... > > Improve dpkg to support partial arch. I volonteer to implement none arch > > but i am waiting from guillem here. > >... > > There is also plenty of infrastructure on the buildd, archive and > release team sides that would likely need changes for supporting > anything like that. > > A multilib based approach might be more realistic for bookworm. > > What benefits would a "none arch" even bring compared to building > binary-all packages? > The ability to binNMU is the only one that comes into my mind. we have at least 3 architectures that need uefi none arch... So we build three arch-all package with paterning name. > > cu > Adrian
[toc] | [prev] | [next] | [standalone]
| From | Adrian Bunk <bunk@debian.org> |
|---|---|
| Date | 2021-09-12 16:10 +0200 |
| Message-ID | <CWylb-1ow-1@gated-at.bofh.it> |
| In reply to | #101666 |
On Sun, Sep 12, 2021 at 01:18:11PM +0000, Bastien ROUCARIES wrote: > Le dim. 12 sept. 2021 à 07:38, Adrian Bunk <bunk@debian.org> a écrit : > > > > On Sun, Sep 05, 2021 at 08:53:49AM +0200, Bastien ROUCARIES wrote: > > >... > > > Improve dpkg to support partial arch. I volonteer to implement none arch > > > but i am waiting from guillem here. > > >... > > > > There is also plenty of infrastructure on the buildd, archive and > > release team sides that would likely need changes for supporting > > anything like that. > > > > A multilib based approach might be more realistic for bookworm. > > > > What benefits would a "none arch" even bring compared to building > > binary-all packages? > > The ability to binNMU is the only one that comes into my mind. > we have at least 3 architectures that need uefi none arch... > > So we build three arch-all package with paterning name. I might be misunderstanding what you are trying to do. What release architecture would "none" packages be in the Debian archive, and on what buildds would they be built? Debian buildds are not cross-compiling packages for a different Debian architecture, a partial architecture would still require DSA-maintained buildds doing native building on this partial architecture. cu Adrian
[toc] | [prev] | [next] | [standalone]
| From | Bastien ROUCARIES <roucaries.bastien@gmail.com> |
|---|---|
| Date | 2021-09-12 16:20 +0200 |
| Message-ID | <CWyuS-1rF-7@gated-at.bofh.it> |
| In reply to | #101667 |
Le dim. 12 sept. 2021 à 13:44, Adrian Bunk <bunk@debian.org> a écrit : > > On Sun, Sep 12, 2021 at 01:18:11PM +0000, Bastien ROUCARIES wrote: > > Le dim. 12 sept. 2021 à 07:38, Adrian Bunk <bunk@debian.org> a écrit : > > > > > > On Sun, Sep 05, 2021 at 08:53:49AM +0200, Bastien ROUCARIES wrote: > > > >... > > > > Improve dpkg to support partial arch. I volonteer to implement none arch > > > > but i am waiting from guillem here. > > > >... > > > > > > There is also plenty of infrastructure on the buildd, archive and > > > release team sides that would likely need changes for supporting > > > anything like that. > > > > > > A multilib based approach might be more realistic for bookworm. > > > > > > What benefits would a "none arch" even bring compared to building > > > binary-all packages? > > > The ability to binNMU is the only one that comes into my mind. > > we have at least 3 architectures that need uefi none arch... > > > > So we build three arch-all package with paterning name. > > I might be misunderstanding what you are trying to do. > > What release architecture would "none" packages be in the Debian > archive, and on what buildds would they be built? > > Debian buildds are not cross-compiling packages for a different Debian > architecture, a partial architecture would still require DSA-maintained > buildds doing native building on this partial architecture. I think you misunderstand: https://wiki.debian.org/Teams/Dpkg/Spec/FreestandingArches They are a full color gradiant between: - freestanding arches pure cross compile without any depends except arch:all - partial cross built arch - partial arch - full arch I believe the first step to get partial cross built arch is to begin by freestanding arch. Bastien > cu > Adrian
[toc] | [prev] | [next] | [standalone]
| From | Adrian Bunk <bunk@debian.org> |
|---|---|
| Date | 2021-09-12 16:40 +0200 |
| Message-ID | <CWyOe-1xH-3@gated-at.bofh.it> |
| In reply to | #101668 |
On Sun, Sep 12, 2021 at 01:57:44PM +0000, Bastien ROUCARIES wrote: > > I think you misunderstand: > https://wiki.debian.org/Teams/Dpkg/Spec/FreestandingArches > > They are a full color gradiant between: > - freestanding arches pure cross compile without any depends except arch:all > - partial cross built arch > - partial arch > - full arch > > I believe the first step to get partial cross built arch is to begin > by freestanding arch. I believe this is mostly irrelevant for the discussion about Wine. Making Wine in Debian depend on such lofty ideas that might be available very far in the future (if ever) would imply no Wine in the next Debian releases. Debian 12 will be released mid-2023, which is only 2 years away. Debian 13 will be released mid-2025, which is only 4 years away. If your partial cross built arch is ever fully implemented and supported by Debian it would be a good idea to migrate Wine to using that. But a realistic solution for Wine in Debian 12 has to be multilib, not multiarch. > Bastien cu Adrian
[toc] | [prev] | [next] | [standalone]
| From | Bastien ROUCARIES <roucaries.bastien@gmail.com> |
|---|---|
| Date | 2021-09-12 17:20 +0200 |
| Message-ID | <CWzqW-22E-7@gated-at.bofh.it> |
| In reply to | #101669 |
Le dim. 12 sept. 2021 à 14:16, Adrian Bunk <bunk@debian.org> a écrit : > > On Sun, Sep 12, 2021 at 01:57:44PM +0000, Bastien ROUCARIES wrote: > > > > I think you misunderstand: > > https://wiki.debian.org/Teams/Dpkg/Spec/FreestandingArches > > > > They are a full color gradiant between: > > - freestanding arches pure cross compile without any depends except arch:all > > - partial cross built arch > > - partial arch > > - full arch > > > > I believe the first step to get partial cross built arch is to begin > > by freestanding arch. > > I believe this is mostly irrelevant for the discussion about Wine. > > Making Wine in Debian depend on such lofty ideas that might be available > very far in the future (if ever) would imply no Wine in the next Debian > releases. > > Debian 12 will be released mid-2023, which is only 2 years away. > Debian 13 will be released mid-2025, which is only 4 years away. > > If your partial cross built arch is ever fully implemented and supported > by Debian it would be a good idea to migrate Wine to using that. > > But a realistic solution for Wine in Debian 12 has to be multilib, > not multiarch. Yes but current solution used by wine should be compatible with multiarch. And It was since 2012 that multiarch exists. Maybe time to speed up bastien > > > Bastien > > cu > Adrian
[toc] | [prev] | [next] | [standalone]
| From | Adrian Bunk <bunk@debian.org> |
|---|---|
| Date | 2021-09-12 17:30 +0200 |
| Message-ID | <CWzAC-26q-9@gated-at.bofh.it> |
| In reply to | #101670 |
On Sun, Sep 12, 2021 at 02:57:20PM +0000, Bastien ROUCARIES wrote: > Le dim. 12 sept. 2021 à 14:16, Adrian Bunk <bunk@debian.org> a écrit : > > > > On Sun, Sep 12, 2021 at 01:57:44PM +0000, Bastien ROUCARIES wrote: > > > > > > I think you misunderstand: > > > https://wiki.debian.org/Teams/Dpkg/Spec/FreestandingArches > > > > > > They are a full color gradiant between: > > > - freestanding arches pure cross compile without any depends except arch:all > > > - partial cross built arch > > > - partial arch > > > - full arch > > > > > > I believe the first step to get partial cross built arch is to begin > > > by freestanding arch. > > > > I believe this is mostly irrelevant for the discussion about Wine. > > > > Making Wine in Debian depend on such lofty ideas that might be available > > very far in the future (if ever) would imply no Wine in the next Debian > > releases. > > > > Debian 12 will be released mid-2023, which is only 2 years away. > > Debian 13 will be released mid-2025, which is only 4 years away. > > > > If your partial cross built arch is ever fully implemented and supported > > by Debian it would be a good idea to migrate Wine to using that. > > > > But a realistic solution for Wine in Debian 12 has to be multilib, > > not multiarch. > Yes but current solution used by wine should be compatible with > multiarch. And It was since 2012 that multiarch exists. Maybe time to > speed up I do consider it quite evil how you are trying to steer upstream and Debian maintainers of Wine in a direction where Wine would be taken hostage for some lofty idea you have. > bastien cu Adrian
[toc] | [prev] | [next] | [standalone]
| From | Helmut Grohne <helmut@subdivi.de> |
|---|---|
| Date | 2021-09-13 17:50 +0200 |
| Message-ID | <CWWnv-8eX-3@gated-at.bofh.it> |
| In reply to | #101668 |
I believe I can speak with my "main cross building porter" hat on. On Sun, Sep 12, 2021 at 01:57:44PM +0000, Bastien ROUCARIES wrote: > They are a full color gradiant between: > - freestanding arches pure cross compile without any depends except arch:all > - partial cross built arch > - partial arch > - full arch > > I believe the first step to get partial cross built arch is to begin > by freestanding arch. Certainly not. As much as I would love to see this happen, it is very unrealistic. wine can quite simply use -$arch-cross:all packages like very other bare metal target and switch to our pipe dream once it is ready (if ever). cross building is very far off becoming the thing you want it to be. It presently has a bus factor of around 1.5. Around 59% of source packages are cross-satisfiable. Around 78% of cross-satisfiable packages are cross buildable. In other words: less than 50% of packages are cross buildable. Beyond that, the cross porters cannot keep up with the current rate of regressions. Fractions are falling. To make cross building a viable thing we'd need at least three more porters determined to make it happen. Talk doesn't make it happen. Patches do. Let me know if you want to help. I'll get you started. Helmut
[toc] | [prev] | [next] | [standalone]
| From | Stephen Kitt <skitt@debian.org> |
|---|---|
| Date | 2021-09-13 20:20 +0200 |
| Message-ID | <CWYIG-1vg-11@gated-at.bofh.it> |
| In reply to | #101688 |
[Multipart message — attachments visible in raw view] — view raw
On Mon, 13 Sep 2021 17:39:25 +0200, Helmut Grohne <helmut@subdivi.de> wrote: > I believe I can speak with my "main cross building porter" hat on. > > On Sun, Sep 12, 2021 at 01:57:44PM +0000, Bastien ROUCARIES wrote: > > They are a full color gradiant between: > > - freestanding arches pure cross compile without any depends except > > arch:all > > - partial cross built arch > > - partial arch > > - full arch > > > > I believe the first step to get partial cross built arch is to begin > > by freestanding arch. > > Certainly not. As much as I would love to see this happen, it is very > unrealistic. wine can quite simply use -$arch-cross:all packages like > very other bare metal target and switch to our pipe dream once it is > ready (if ever). And even that assumes that we can get agreement on what $arch should be for Windows targets :-(. > cross building is very far off becoming the thing you want it to be. It > presently has a bus factor of around 1.5. Around 59% of source packages > are cross-satisfiable. Around 78% of cross-satisfiable packages are > cross buildable. In other words: less than 50% of packages are cross > buildable. Beyond that, the cross porters cannot keep up with the > current rate of regressions. Fractions are falling. The bus factor is indeed a problem. For Wine (and even a wider MinGW-w64 ecosystem) we don’t need all that many source packages to be cross-satisfiable for the whole endeavour to be useful... The regressions are significant though: if packages can’t stay cross-satisfiable for Debian cross-targets, there’s little hope they can stay cross-satisfiable for Windows! This means that separate source packages are probably the only viable option. > To make cross building a viable thing we'd need at least three more > porters determined to make it happen. Talk doesn't make it happen. > Patches do. Let me know if you want to help. I'll get you started. Is the process documented anywhere? Or does one simply pick a failure from http://crossqa.debian.net and figure out what’s going wrong (and hope that pulling the threads doesn’t reveal a monster...)? Regards, Stephen
[toc] | [prev] | [next] | [standalone]
| From | Helmut Grohne <helmut@subdivi.de> |
|---|---|
| Date | 2021-09-13 22:10 +0200 |
| Message-ID | <CX0r8-2EF-3@gated-at.bofh.it> |
| In reply to | #101690 |
On Mon, Sep 13, 2021 at 08:19:31PM +0200, Stephen Kitt wrote: > Is the process documented anywhere? Or does one simply pick a failure from > http://crossqa.debian.net and figure out what’s going wrong (and hope that > pulling the threads doesn’t reveal a monster...)? That describes the process quite well. In particular, crossqa.d.n links to existing bug reports to avoid duplication of work. A major lack (beyond people doing the work) is domain-specific knowledge of the various archive sections. So once you locate a monster, don't stop there, but contact debian-cross@lists.debian.org or #debian-bootstrap@oftc and let us combine your domain-specific knowledge with some cross compilation experience to create an original solution. So yeah, start with those packages that you know well. Check http://crossqa.debian.net/src/<sourcepackagename> for your pet packages or follow the "cross" link in the right sidebar at tracker.d.o. Also (thanks to IOhannes zmölnig) enable cross building in your salsa-ci pipeline. In any case though, don't let wine wait for cross building to become a thing. Helmut
[toc] | [prev] | [next] | [standalone]
| From | Adrian Bunk <bunk@debian.org> |
|---|---|
| Date | 2021-09-13 22:30 +0200 |
| Message-ID | <CX0Kt-2Oq-7@gated-at.bofh.it> |
| In reply to | #101690 |
On Mon, Sep 13, 2021 at 08:19:31PM +0200, Stephen Kitt wrote: >... > For Wine (and even a wider MinGW-w64 > ecosystem) we don’t need all that many source packages to be > cross-satisfiable for the whole endeavour to be useful... But you would still need to create and maintain the whole infrastructure. The larger picture is that there are at least 3 big topics: - cross-architecture dependencies - partial release architectures - cross-building a release architecture Every single of these topics would be a huge amount of work. If you need all 3 as basis for a solution for Wine, then that's simply not realistic in the foreseeable future. > The regressions are significant though: if packages can’t stay > cross-satisfiable for Debian cross-targets, there’s little hope they can stay > cross-satisfiable for Windows! This means that separate source packages are > probably the only viable option. >... Separate source packages don't bring any real benefits compared to just bundling and building everything in src:wine. Either would likely imply that Wine in Debian comes without security support, and the Release Notes stating that Wine should only be used for trusted local contents. > Regards, > > Stephen cu Adrian
[toc] | [prev] | [next] | [standalone]
| From | Bastien ROUCARIES <roucaries.bastien@gmail.com> |
|---|---|
| Date | 2021-09-13 23:00 +0200 |
| Message-ID | <CX1dw-2YZ-11@gated-at.bofh.it> |
| In reply to | #101695 |
Le lun. 13 sept. 2021 à 20:24, Adrian Bunk <bunk@debian.org> a écrit : > > On Mon, Sep 13, 2021 at 08:19:31PM +0200, Stephen Kitt wrote: > >... > > For Wine (and even a wider MinGW-w64 > > ecosystem) we don’t need all that many source packages to be > > cross-satisfiable for the whole endeavour to be useful... > > But you would still need to create and maintain the whole > infrastructure. > > The larger picture is that there are at least 3 big topics: > - cross-architecture dependencies > - partial release architectures > - cross-building a release architecture > > Every single of these topics would be a huge amount of work. > > If you need all 3 as basis for a solution for Wine, > then that's simply not realistic in the foreseeable future. > > > The regressions are significant though: if packages can’t stay > > cross-satisfiable for Debian cross-targets, there’s little hope they can stay > > cross-satisfiable for Windows! This means that separate source packages are > > probably the only viable option. > >... > > Separate source packages don't bring any real benefits compared to > just bundling and building everything in src:wine. No please do not do that. Vendoring is bad and I fight on the javascript side since four years, against it. > > Either would likely imply that Wine in Debian comes without security > support, and the Release Notes stating that Wine should only be used > for trusted local contents. > > > Regards, > > > > Stephen > > cu > Adrian >
[toc] | [prev] | [next] | [standalone]
| From | Adrian Bunk <bunk@debian.org> |
|---|---|
| Date | 2021-09-13 23:40 +0200 |
| Message-ID | <CX1Qd-3rw-1@gated-at.bofh.it> |
| In reply to | #101696 |
On Mon, Sep 13, 2021 at 08:38:52PM +0000, Bastien ROUCARIES wrote: > Le lun. 13 sept. 2021 à 20:24, Adrian Bunk <bunk@debian.org> a écrit : > > On Mon, Sep 13, 2021 at 08:19:31PM +0200, Stephen Kitt wrote: >... > > > The regressions are significant though: if packages can’t stay > > > cross-satisfiable for Debian cross-targets, there’s little hope they can stay > > > cross-satisfiable for Windows! This means that separate source packages are > > > probably the only viable option. > > >... > > > > Separate source packages don't bring any real benefits compared to > > just bundling and building everything in src:wine. > > No please do not do that. Vendoring is bad and I fight on the > javascript side since four years, against it. >... Separate source packages that duplicate existing sources are as much vendoring as doing the same inside src:wine. There are only two realistic options for Wine: 1. building multilib packages from the regular sources of the libraries in the archive, or 2. vendoring Noone seems to be willing to do 1., which leaves 2. as only option. cu Adrian
[toc] | [prev] | [next] | [standalone]
| From | Stephen Kitt <skitt@debian.org> |
|---|---|
| Date | 2021-09-12 17:40 +0200 |
| Message-ID | <CWzKi-29R-3@gated-at.bofh.it> |
| In reply to | #101665 |
[Multipart message — attachments visible in raw view] — view raw
On Sun, 12 Sep 2021 10:38:52 +0300, Adrian Bunk <bunk@debian.org> wrote: > On Sun, Sep 05, 2021 at 08:53:49AM +0200, Bastien ROUCARIES wrote: > >... > > Improve dpkg to support partial arch. I volonteer to implement none arch > > but i am waiting from guillem here. > >... > > There is also plenty of infrastructure on the buildd, archive and > release team sides that would likely need changes for supporting > anything like that. > > A multilib based approach might be more realistic for bookworm. > > What benefits would a "none arch" even bring compared to building > binary-all packages? > The ability to binNMU is the only one that comes into my mind. IMO the main benefit of using multiarch would be that packages could be built for the new architectures without changes (ideally). libz is currently built for MinGW-w64 in an “Architecture: all” package, but it’s a separate source package; various other libraries are built with specific support in their source packages. While one could imagine adding support to all the appropriate source packages to build similar “Architecture: all” packages, that would require convincing all the relevant maintainers, and it would end up tying the testing migrations to MinGW-w64... In this scenario the solution wouldn’t be a “none” arch, but a Windows arch, if we can ever resolve https://bugs.debian.org/606825 The buildd situation isn’t necessarily that much of an obstacle: it seems to me we could have “Windows” buildds which are really Linux amd64 systems, that cross-build for Windows. Regards, Stephen
[toc] | [prev] | [next] | [standalone]
| From | Adrian Bunk <bunk@debian.org> |
|---|---|
| Date | 2021-09-12 18:40 +0200 |
| Message-ID | <CWAGl-2IZ-1@gated-at.bofh.it> |
| In reply to | #101673 |
On Sun, Sep 12, 2021 at 05:31:41PM +0200, Stephen Kitt wrote: >... > While one could imagine adding support to all the appropriate > source packages to build similar “Architecture: all” packages, that would > require convincing all the relevant maintainers, Adding a new release architecture (partial or not) requires convincing the ftp team and the release team. It would also require many software changes. How would for example the dependencies of wine:amd64 be fulfilled? Just supporting that package dependencies might only be fulfilled by also using packages from a different architecture would require changes in many places, like for example the testing migration scripts that ensure installability after migration. > and it would end up tying the testing migrations to MinGW-w64... If this partial arch (and Wine) should be part of Debian releases, then testing migrations would have to be tied to it in any case. >... > The buildd situation isn’t necessarily that much of an obstacle: it seems to > me we could have “Windows” buildds which are really Linux amd64 systems, that > cross-build for Windows. The first obstacle is that if you want to be the first who does cross building packages on the buildds, there is likely a lot of work and bugfixing ahead for you for getting that working. > Regards, > > Stephen cu Adrian
[toc] | [prev] | [next] | [standalone]
| From | Stephen Kitt <skitt@debian.org> |
|---|---|
| Date | 2021-09-12 19:10 +0200 |
| Message-ID | <CWB9o-37V-3@gated-at.bofh.it> |
| In reply to | #101674 |
[Multipart message — attachments visible in raw view] — view raw
On Sun, 12 Sep 2021 19:20:16 +0300, Adrian Bunk <bunk@debian.org> wrote: > On Sun, Sep 12, 2021 at 05:31:41PM +0200, Stephen Kitt wrote: > >... > > While one could imagine adding support to all the appropriate > > source packages to build similar “Architecture: all” packages, that would > > require convincing all the relevant maintainers, > > Adding a new release architecture (partial or not) requires convincing > the ftp team and the release team. > > It would also require many software changes. Yes, it would. However, it requires convincing a well-defined set of people *once*. If we handle Windows dependencies using “Architecture: all” packages, we would either end up with something like Fedora’s MinGW-w64 SIG (with a complete set of independent packages), or we would end up having to convince a huge set of package maintainers over and over again. > How would for example the dependencies of wine:amd64 be fulfilled? > > Just supporting that package dependencies might only be fulfilled by > also using packages from a different architecture would require changes > in many places, like for example the testing migration scripts that > ensure installability after migration. In the same way as the none-arch packages would be. Yes, it’s a lot of work, but it’s useful for more than just Wine, and it can be done once for all the interested architectures. > > and it would end up tying the testing migrations to MinGW-w64... > > If this partial arch (and Wine) should be part of Debian releases, > then testing migrations would have to be tied to it in any case. True, I’d missed that. (In my mind I was comparing this with having separate source packages.) > >... > > The buildd situation isn’t necessarily that much of an obstacle: it seems > > to me we could have “Windows” buildds which are really Linux amd64 > > systems, that cross-build for Windows. > > The first obstacle is that if you want to be the first who does cross > building packages on the buildds, there is likely a lot of work and > bugfixing ahead for you for getting that working. A lot of that work has already been done for http://crossqa.debian.net/ Fixing this would reduce the burden on all the maintainers who currently handle cross-built packages in the archive, so overall I think it would be a net win. Regards, Stephen
[toc] | [prev] | [next] | [standalone]
| From | Adrian Bunk <bunk@debian.org> |
|---|---|
| Date | 2021-09-12 20:20 +0200 |
| Message-ID | <CWCf7-3J8-7@gated-at.bofh.it> |
| In reply to | #101675 |
On Sun, Sep 12, 2021 at 07:03:54PM +0200, Stephen Kitt wrote: > On Sun, 12 Sep 2021 19:20:16 +0300, Adrian Bunk <bunk@debian.org> wrote: > > On Sun, Sep 12, 2021 at 05:31:41PM +0200, Stephen Kitt wrote: > > >... > > > While one could imagine adding support to all the appropriate > > > source packages to build similar “Architecture: all” packages, that would > > > require convincing all the relevant maintainers, > > > > Adding a new release architecture (partial or not) requires convincing > > the ftp team and the release team. > > > > It would also require many software changes. > > Yes, it would. However, it requires convincing a well-defined set of people > *once*. If we handle Windows dependencies using “Architecture: all” packages, > we would either end up with something like Fedora’s MinGW-w64 SIG (with a > complete set of independent packages), or we would end up having to convince > a huge set of package maintainers over and over again. Based on the package list provided in the initial email in this thread (and guessing the amount of transitive dependencies) I would have guessed that there are perhaps ~ 30 packages that would have to be touched once. And after that things will just continue working, just like with udebs which are in some ways similar to what is being discussed here. > > How would for example the dependencies of wine:amd64 be fulfilled? > > > > Just supporting that package dependencies might only be fulfilled by > > also using packages from a different architecture would require changes > > in many places, like for example the testing migration scripts that > > ensure installability after migration. > > In the same way as the none-arch packages would be. Yes, it’s a lot of work, > but it’s useful for more than just Wine, and it can be done once for all the > interested architectures. It is also the kind of change where it might be required that it is fully supported in one release before it can be used by packages in the next release, if for example any of dpkg/apt/aptitude/... in the previous stable gives an error when seeing dependencies to another architecture. >... > Regards, > > Stephen cu Adrian
[toc] | [prev] | [next] | [standalone]
Page 1 of 3 [1] 2 3 Next page →
Back to top | Article view | linux.debian.devel
csiph-web