Opened 6 years ago
Last modified 4 years ago
#58025 assigned defect
wine, wine-devel, wine-crossover: build ignores -universal
Reported by: | JohnFHall (John Hall) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.5.4 |
Keywords: | Cc: | JohnFHall (John Hall), ra1nb0w, BishopBerkeley, thomasrussellmurphy (Thomas Russell Murphy) | |
Port: | wine wine-devel wine-crossover |
Description
Trying to remove universal build from my macports install was going well until I got to wine.
Even when /opt/local/etc/macports/variants.conf has added line '-universal' and installing wine with "sudo port install wine -universal" wine, and all its dependencies were rebuilt with +universal
This may be old news, but it is new to me. Wine should allow build X86_64 only in my view.
Aaaaghh!!!
Change History (12)
comment:1 Changed 6 years ago by JohnFHall (John Hall)
Cc: | JohnFHall added |
---|
comment:2 Changed 6 years ago by mf2k (Frank Schima)
Owner: | set to ryandesign |
---|---|
Port: | wine; wine-devel → wine wine-devel |
Status: | new → assigned |
comment:3 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
Port: | wine-crossover added |
---|---|
Summary: | Wine build ignores -universal → wine, wine-devel, wine-crossover: build ignores -universal |
Here's why it works this way:
32-bit Wine can only run 32-bit Windows software. 64-bit Wine can run 64-bit Windows software, and can run 32-bit Windows software if a 32-bit Wine is also installed and 64-bit Wine is told at configure time where it is. While Apple has pushed developers toward 64-bit for many years, Microsoft still supports 32-bit software and still offers users the choice of installing a 32-bit-only version of Windows, and it is my understanding that, unlike on macOS, 32-bit apps are still prevalent on Windows. For these reasons, when 64-bit support was added to the MacPorts Wine ports, it was thought that giving the user the option of installing it 64-bit only would not be desirable, because that would prevent the user from running much Windows software. Therefore the port defaults to a universal build. The non-universal build is a 32-bit build, to match how it was before 64-bit support was added to the Wine ports, thus the non-universal Wine builds still require Wine's dependencies to be installed universal.
However, then macOS Mojave was released, which no longer supports building 32-bit software, so the Wine ports cannot be built on Mojave at present (see other tickets). I was able to build the Wine ports 64-bit only on Mojave after tweaking the Portfile a bit, and maybe we should make that change in the Wine ports: make the non-universal build a 64-bit only build on 64-bit systems. This may prevent the user from running 32-bit Windows software on Mojave, but that's better than preventing the user from running all Windows software on Mojave.
Next year macOS 10.15 will remove all remaining support for 32-bit software, at which point even the above won't help. CodeWeavers has already announced that they are working on a solution (which I assume will be an i386 emulator ). Hopefully we can incorporate their solution into MacPorts whenever they publish it.
comment:4 Changed 6 years ago by JohnFHall (John Hall)
Thank you for your concise and helpful description of the problem with ongoing wine development.
I look forward to its future.
John
comment:5 follow-up: 8 Changed 6 years ago by BishopBerkeley
I assume that this is why I get the following error when I try to install wine-devel on my 10.14.3 machine:
Error: wine-devel cannot be installed for the configured build_arch 'x86_64' because it only supports the arch(s) 'i386'.
I really hope wine is fixed. I'm tired of maintaining a virtual machine just so that I can run a couple of old Windoze applications.
Thanks.
comment:6 Changed 6 years ago by ra1nb0w
Cc: | ra1nb0w added |
---|
comment:7 Changed 5 years ago by cooljeanius (Eric Gallager)
Cc: | cooljeanius added |
---|
comment:8 follow-up: 9 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | BishopBerkeley added |
---|
Replying to BishopBerkeley:
I really hope wine is fixed.
In what way is it broken? As far as I know, it works fine, provided you build it universal, which does require using macOS High Sierra or older since it is not possible to build 32-bit software in MacPorts on macOS Mojave or later. In the future we will offer the new 32-on-64 functionality that has become available in wine 5 crossover 19, at which point it will be possible to build on newer OS versions as well.
comment:9 Changed 5 years ago by BishopBerkeley
Thank you. That's the answer I was looking for. I will look for wine 5 and install then.
Replying to ryandesign:
Replying to BishopBerkeley:
I really hope wine is fixed.
In what way is it broken? As far as I know, it works fine, provided you build it universal, which does require using macOS High Sierra or older since it is not possible to build 32-bit software in MacPorts on macOS Mojave or later. In the future we will offer the new 32-on-64 functionality that has become available in wine 5, at which point it will be possible to build on newer OS versions as well.
comment:10 Changed 4 years ago by cooljeanius (Eric Gallager)
Cc: | cooljeanius removed |
---|
comment:11 Changed 4 years ago by thomasrussellmurphy (Thomas Russell Murphy)
Presumably this means that the build status for 10.14 and 10.15 will remain broken, as they have since 2020-04 and no explicit error message about incompatibility with the OS version will be given on attempted install on these systems?
comment:12 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | thomasrussellmurphy added |
---|
Although the build status information on the web page is not authoritative, it does currently correctly indicate that wine cannot be built on 10.14 or 10.15. When I have time, I will finish up and commit my work that updates the wine ports to be compatible with 10.14 and later and to allow 32-bit only, 64-bit only, or 32-and-64-bit builds.
In the future, please add the port maintainer(s) to Cc (
port info --maintainers wine wine-devel
), if any.