Opened 5 years ago

Last modified 3 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 5 years ago by JohnFHall (John Hall)

Cc: JohnFHall added

comment:2 Changed 5 years ago by mf2k (Frank Schima)

Owner: set to ryandesign
Port: wine; wine-develwine wine-devel
Status: newassigned

In the future, please add the port maintainer(s) to Cc (port info --maintainers wine wine-devel), if any.

comment:3 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)

Port: wine-crossover added
Summary: Wine build ignores -universalwine, 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 5 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 Changed 5 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.

Last edited 4 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:6 Changed 5 years ago by ra1nb0w

Cc: ra1nb0w added

comment:7 Changed 5 years ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added

comment:8 in reply to:  5 ; Changed 4 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, at which point it will be possible to build on newer OS versions as well.

Version 0, edited 4 years ago by ryandesign (Ryan Carsten Schmidt) (next)

comment:9 in reply to:  8 Changed 4 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 3 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 3 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.

Note: See TracTickets for help on using tickets.