Bug 275677 - emulators/wine: Unbreak WOW64
Summary: emulators/wine: Unbreak WOW64
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Gerald Pfeifer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-10 17:10 UTC by Alexander Vereeken
Modified: 2024-07-01 10:06 UTC (History)
3 users (show)

See Also:
gerald: maintainer-feedback+


Attachments
0001-emulators-wine-Unbreak-WOW64.patch (2.68 KB, patch)
2023-12-10 17:10 UTC, Alexander Vereeken
no flags Details | Diff
0001-emulators-wine-Unbreak-WOW64.patch (2.68 KB, patch)
2023-12-10 17:25 UTC, Alexander Vereeken
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Vereeken 2023-12-10 17:10:37 UTC
Created attachment 246955 [details]
0001-emulators-wine-Unbreak-WOW64.patch

Hello,

is an patch to unbreak the WOW64 functionality.

Picked from: 1f07ec6014a3c3380a731efdc74a3cf88b91ca29

Thank you in advance!
Comment 1 Alexander Vereeken 2023-12-10 17:25:40 UTC
Created attachment 246956 [details]
0001-emulators-wine-Unbreak-WOW64.patch

Fix an missing Tab in the PORTREVISION line.
Comment 2 Alastair Hogge 2023-12-11 07:03:15 UTC
Hey Alex, thanks for looping me inβ€”I am compiling and testing now.
Comment 3 Alastair Hogge 2023-12-12 04:44:02 UTC
Setup and play of Mechwarrior 5: Mercenaries works. Great stuff, thanks.

Will have a look at wine-devel in some days if I have time.
Comment 4 commit-hook freebsd_committer freebsd_triage 2023-12-17 23:01:04 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0f2052c3784e3b8d5aed85aab22b8a49613ee85c

commit 0f2052c3784e3b8d5aed85aab22b8a49613ee85c
Author:     Alexander Vereeken <Alexander88207@protonmail.com>
AuthorDate: 2023-12-17 22:58:41 +0000
Commit:     Gerald Pfeifer <gerald@FreeBSD.org>
CommitDate: 2023-12-17 22:59:27 +0000

    emulators/wine: Unbreak WoW64

    This is an excerpt of 1f07ec6014 by Alex S <iwtcex@gmail.com> for
    emulators/wine-proton.

    PR:             275677

 emulators/wine/Makefile                            |  1 +
 .../files/patch-dlls_ntdll_unix_loader.c (new)     | 24 ++++++++++++++++++++++
 emulators/wine/files/wine.sh                       | 11 ++++++++--
 3 files changed, 34 insertions(+), 2 deletions(-)
Comment 5 Gerald Pfeifer freebsd_committer freebsd_triage 2023-12-17 23:06:38 UTC
Thank you Alex S. and Alexander for creating this patch, and Alastair
for testing.

Alex, have you tried pushing this upstream? If not, can you sign off
(here) and I give it a try?
Comment 6 Alex S 2023-12-18 00:06:37 UTC
(In reply to Gerald Pfeifer from comment #5)

> Alex, have you tried pushing this upstream?

I don't think upstream would be interested in a configuration with
multiple bin dirs. And even if they would, implementing something
like WINEBINPATH env var (by analogy with existing WINEDLLPATH)
is preferable over their downright filthy path manipulation code.

This patch is optimized for touching the least amount of lines,
not long-term maintenance.
Comment 7 commit-hook freebsd_committer freebsd_triage 2023-12-23 07:27:52 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8fdba0f4a3ede84338bd09686c554a7e2fdb2acf

commit 8fdba0f4a3ede84338bd09686c554a7e2fdb2acf
Author:     Gerald Pfeifer <gerald@FreeBSD.org>
AuthorDate: 2023-12-23 06:53:06 +0000
Commit:     Gerald Pfeifer <gerald@FreeBSD.org>
CommitDate: 2023-12-23 07:25:53 +0000

    emulators/wine7: Deprecate, to expire 2024-01-29

    We created this port to make up for emulators/wine not providing
    32-bit support nor WoW64 when we moved to Wine 8. Since then both
    have been addressed, one after the other, so time to sunset this
    wine7 port.

    PR:             271201, 272710, 275677

 emulators/wine7/Makefile | 2 ++
 1 file changed, 2 insertions(+)
Comment 8 Gerald Pfeifer freebsd_committer freebsd_triage 2023-12-23 07:37:31 UTC
(In reply to Alex S from comment #6)
> This patch is optimized for touching the least amount of lines,
> not long-term maintenance.

Got it. I do hope someone will find the time to give the new approach
a try on FreeBSD.


While we are at it: the logic of files/wine.sh confused me at first
reading. Would the following be simpler (wineserver32 first, with an 
"elif", ignore the identation change)?

-if [ -z "$WINESERVER" ]
-then
-  if [ -f "${TARGET%/*}/wineserver" ]
-  then
-    export WINESERVER="${TARGET%/*}/wineserver"
-  fi
-  if [ -f "${TARGET%/*}/wineserver32" ]
-  then
+if [ -z "$WINESERVER" ]; then
+  if [ -f "${TARGET%/*}/wineserver32" ]; then
     export WINESERVER="${TARGET%/*}/wineserver32"
+  elif [ -f "${TARGET%/*}/wineserver" ]; then
+    export WINESERVER="${TARGET%/*}/wineserver"
   fi
 fi
Comment 9 Alex S 2023-12-23 07:56:43 UTC
(In reply to Gerald Pfeifer from comment #8)

> wineserver32 first, with an "elif"

Whatever style you prefer.
Comment 10 alt2600 2023-12-25 21:15:51 UTC
doesn't seem to be unbroken. 13.2 amd64


$ winecfg
0024:fixme:ntdll:create_logical_proc_info stub
0024:fixme:ntdll:init_cpu_info Failed to get logical processor information, status 0xc0000002.
002c:fixme:ntdll:create_logical_proc_info stub
002c:fixme:ntdll:init_cpu_info Failed to get logical processor information, status 0xc0000002.
002c:fixme:ntdll:get_firmware_info info_class SYSTEM_FIRMWARE_TABLE_INFORMATION
002c:fixme:ntdll:get_firmware_info info_class SYSTEM_FIRMWARE_TABLE_INFORMATION
002c:err:winediag:getaddrinfo Failed to resolve your host name IP
0034:fixme:ntdll:create_logical_proc_info stub
0034:fixme:ntdll:init_cpu_info Failed to get logical processor information, status 0xc0000002.
003c:fixme:ntdll:create_logical_proc_info stub
003c:fixme:ntdll:init_cpu_info Failed to get logical processor information, status 0xc0000002.
0040:fixme:thread:set_native_thread_name not implemented on this platform
0048:fixme:ntdll:create_logical_proc_info stub
0048:fixme:ntdll:init_cpu_info Failed to get logical processor information, status 0xc0000002.
0058:fixme:thread:set_native_thread_name not implemented on this platform
006c:fixme:ntdll:create_logical_proc_info stub
006c:fixme:ntdll:init_cpu_info Failed to get logical processor information, status 0xc0000002.
0078:fixme:thread:set_native_thread_name not implemented on this platform
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0088:fixme:ntdll:create_logical_proc_info stub
0088:fixme:ntdll:init_cpu_info Failed to get logical processor information, status 0xc0000002.
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
007c:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0094:fixme:ntdll:create_logical_proc_info stub
0094:fixme:ntdll:init_cpu_info Failed to get logical processor information, status 0xc0000002.
00a4:fixme:thread:set_native_thread_name not implemented on this platform
00b0:fixme:ntdll:create_logical_proc_info stub
00b0:fixme:ntdll:init_cpu_info Failed to get logical processor information, status 0xc0000002.
00bc:fixme:thread:set_native_thread_name not implemented on this platform
00c8:fixme:thread:set_native_thread_name not implemented on this platform
00d4:fixme:ntdll:create_logical_proc_info stub
00d4:fixme:ntdll:init_cpu_info Failed to get logical processor information, status 0xc0000002.
00e4:fixme:thread:set_native_thread_name not implemented on this platform
wine: could not load kernel32.dll, status c0000135
Comment 11 Alexander Vereeken 2023-12-25 22:33:46 UTC
(In reply to alt2600 from comment #10)

Hello, the fix doesn't have arrived for 13 amd64 and i386 latest repository yet (At this time of writing its still 8.0.2,1, you need 8.0.2_1,𝟭.)

When building it from ports, make sure that you also have built an i386 version and then install it with "/usr/local/share/wine/pkg32.sh install /path/to/wine/package.txz".
Comment 12 alt2600 2023-12-27 07:03:00 UTC
(In reply to Alexander Vereeken from comment #11)

I didn't use pkg. I built from ports and used poudriere for the 32 bit package using that same ports tree in a 32bit prefix same way I've been using wine7 for a while now.I also let it create a fresh prefix, I renamed my existing .wine directory so everything would be as if a fresh install for testing.

PORTNAME=       wine
DISTVERSION=    8.0.2
PORTREVISION=   1
PORTEPOCH=      1
Comment 13 Gerald Pfeifer freebsd_committer freebsd_triage 2024-01-10 01:35:34 UTC
Let me close this report based on the associated patch(es) having been
committed and various positive reports (also in bug #275619).

alt2600@, I understand you ran into some problems, alas I would not
know how to help based on what I am seeing.
Comment 14 commit-hook freebsd_committer freebsd_triage 2024-01-31 12:29:21 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=ef11261971a87d2b75b352ab479b651d2f2b0b50

commit ef11261971a87d2b75b352ab479b651d2f2b0b50
Author:     Gerald Pfeifer <gerald@FreeBSD.org>
AuthorDate: 2024-01-31 12:27:21 +0000
Commit:     Gerald Pfeifer <gerald@FreeBSD.org>
CommitDate: 2024-01-31 12:27:21 +0000

    emulators/wine: Simplify the logic in wine.sh

    PR:             275677
    Discussed with: Alex S <iwtcex@gmail.com>

 emulators/wine/files/wine.sh | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
Comment 15 commit-hook freebsd_committer freebsd_triage 2024-07-01 10:06:20 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=a1490b259251fe09f42ec55658a0f2c5d89a2479

commit a1490b259251fe09f42ec55658a0f2c5d89a2479
Author:     Gerald Pfeifer <gerald@FreeBSD.org>
AuthorDate: 2024-07-01 10:05:19 +0000
Commit:     Gerald Pfeifer <gerald@FreeBSD.org>
CommitDate: 2024-07-01 10:05:19 +0000

    emulators/wine-devel: Sync files/wine.sh with emulators/wine

    This forward ports the following two commits from emulators/wine
    as far as files/wine.sh goes:

        commit ef11261971a87d2b75b352ab479b651d2f2b0b50
        Author: Gerald Pfeifer <gerald@FreeBSD.org>
        Date:   Wed Jan 31 12:27:21 2024 +0000

        emulators/wine: Simplify the logic in wine.sh

    and

        commit 0f2052c3784e3b8d5aed85aab22b8a49613ee85c
        Author: Alexander Vereeken <Alexander88207@protonmail.com>
        Date:   Sun Dec 17 22:58:41 2023 +0000

        emulators/wine: Unbreak WoW64

        This is an excerpt of 1f07ec6014 by Alex S <iwtcex@gmail.com> for
        emulators/wine-proton.

    PR:             275677, 279927
    Reported by:    scf

 emulators/wine-devel/Makefile      | 1 +
 emulators/wine-devel/files/wine.sh | 9 ++++++---
 2 files changed, 7 insertions(+), 3 deletions(-)