Bug 259223 - emulators/wine-devel : The move to user32u for gdi32 break wine completely
Summary: emulators/wine-devel : The move to user32u for gdi32 break wine completely
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Gerald Pfeifer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-10-17 08:44 UTC by Thibault Payet
Modified: 2021-10-24 01:53 UTC (History)
2 users (show)

See Also:
gerald: maintainer-feedback+


Attachments
package win32u.dll correctly (1.45 KB, patch)
2021-10-23 12:12 UTC, Damjan Jovanovic
damjan.jov: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Thibault Payet 2021-10-17 08:44:27 UTC
In a newly fresh environment, winecfg give
002c:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
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:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\gdi32.dll") not found
002c:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\system32\\user32.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\user32.dll") not found
002c:err:module:import_dll Library user32.dll (which is needed by L"C:\\windows\\system32\\shcore.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\gdi32.dll") not found
002c:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\system32\\user32.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\user32.dll") not found
002c:err:module:import_dll Library user32.dll (which is needed by L"C:\\windows\\system32\\ole32.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\gdi32.dll") not found
002c:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\system32\\ole32.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\gdi32.dll") not found
002c:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\system32\\user32.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\user32.dll") not found
002c:err:module:import_dll Library user32.dll (which is needed by L"C:\\windows\\system32\\combase.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\gdi32.dll") not found
002c:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\system32\\combase.dll") not found
002c:err:module:import_dll Library combase.dll (which is needed by L"C:\\windows\\system32\\ole32.dll") not found
002c:err:module:import_dll Library ole32.dll (which is needed by L"C:\\windows\\system32\\shcore.dll") not found
002c:err:module:import_dll Library shcore.dll (which is needed by L"C:\\windows\\system32\\shlwapi.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\gdi32.dll") not found
002c:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\system32\\user32.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\user32.dll") not found
002c:err:module:import_dll Library user32.dll (which is needed by L"C:\\windows\\system32\\shlwapi.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\gdi32.dll") not found
002c:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\system32\\shlwapi.dll") not found
002c:err:module:import_dll Library shlwapi.dll (which is needed by L"C:\\windows\\system32\\shell32.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\gdi32.dll") not found
002c:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\system32\\user32.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\user32.dll") not found
002c:err:module:import_dll Library user32.dll (which is needed by L"C:\\windows\\system32\\shell32.dll") not found
002c:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\system32\\gdi32.dll") not found
002c:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\system32\\shell32.dll") not found
002c:err:module:DelayLoadFailureHook failed to delay load shell32.dll.SHGetFolderPathW
wine: Call from 000000007B038B18 to unimplemented function shell32.dll.SHGetFolderPathW, aborting
wine: Unimplemented function shell32.dll.SHGetFolderPathW called at address 000000007B038B18 (thread 002c), starting debugger...
002c:err:seh:start_debugger Couldn't start debugger L"winedbg --auto 40 52" (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
wine: could not load kernel32.dll, status c0000135


It seems that it wants to link to win32u.dll and not win32u.so

See https://source.winehq.org/git/wine.git/blobdiff/5a66203ba5f1e34c9ac700f626024a0b976a0475..80df54a407680859ea777ae0b60aef6f8f378719:/dlls/user32/Makefile.in

So I guess that we need to have win32u.dll
Comment 1 Damjan Jovanovic 2021-10-23 12:12:31 UTC
Created attachment 228961 [details]
package win32u.dll correctly

It appears win32u.dll was only getting packaged on i386. This patch gets it to package on amd64 too.
Comment 2 Gerald Pfeifer freebsd_committer freebsd_triage 2021-10-23 16:30:12 UTC
Thank you, Damjan!

And sorry (and thanks for the report), Thibault. Looks I caused this
before passing the torch of maintainership to Damjan.

I'll see to double check and commit this in the next 18 hours...
Comment 3 Gerald Pfeifer freebsd_committer freebsd_triage 2021-10-23 16:44:46 UTC
Ah, just realized the upstream change to depend on win32u took place
with the latest bi-weekly snapshot only ... so I don't need to feel
that bad, actually. :-)
Comment 4 Gerald Pfeifer freebsd_committer freebsd_triage 2021-10-23 17:11:46 UTC
By the way, thank you for the upstream reference, Thibault. :)
Comment 5 commit-hook freebsd_committer freebsd_triage 2021-10-24 01:52:18 UTC
A commit in branch main references this bug:

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

commit 58a766e89fa983048907cbfa02aebcd4a0fa2251
Author:     Damjan Jovanovic <damjan.jov@gmail.com>
AuthorDate: 2021-10-24 01:46:39 +0000
Commit:     Gerald Pfeifer <gerald@FreeBSD.org>
CommitDate: 2021-10-24 01:50:34 +0000

    emulators/wine-devel: Package win32u.dll on 64-bit, too

    Since upstream commit 80df54a407680859ea777ae0b60aef6f8f378719
    in early October 2021, and thus the recent 6.19 release, user32
    directly links to win32u which has evolved from a pure stub
    during that period.

    We have been packaging win32u since FreeBSD commit
    1b62862f143abe52c91f69e09c024d8814fd6b95 and the update to Wine 6.11,
    alas only on i386. Now it builds and is necessary universally, so
    package it everywhere.

    Bump PORTREVISION.

    PR:             259223
    Reported by:    Thibault Payet <monwarez@mailoo.org>
    Approved by:    maintainer (= author)

 emulators/wine-devel/Makefile  | 1 +
 emulators/wine-devel/pkg-plist | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)
Comment 6 Gerald Pfeifer freebsd_committer freebsd_triage 2021-10-24 01:53:58 UTC
This should address the issue, Thibault. Please advise if it does (not).