Running Wine 10 configure does not pass lib checks

Does anyone know a range of hrevs where the redrawing issues started or maybe a more specific time range?
Before or after June 2023 can mean anything.
I read through the Git log from begin of April 2023 to the end of August 2023 and found only one commit where I thought that could be the one causing the issues.
I then build a haiku.hpkg with it reverted,and it turned out that wasn’t the right one.
I’ll look again if I can find more changes that might have probably caused the issues (or not),but limiting the set of changes I have to review to anything between the newest known working and the oldest known not working hrev would make it a lot easier.

1 Like

Well, couldn’t help myself, so I gave it a try, I got as far as a build and a package, but it doesn’t launch (missing some driver or the like?)
In case someone is interested, uploaded the work (based on the 7.1 recipe/patch) to: wine, add 10.6 recipe/patchset · d9a445962e - Begasus/haikuports - Codeberg.org

3 Likes

I got that number from an ActionRetro video where he was toying around with the system, in the video he runs hrev57085 and the redraw bug is present, then adds that in Beta 4 Wine was working without that issue. Hrev 57085 is from 14 June 2023.
Please note that I never said before or after June, that would indeed make the info I’ve given useless. :slight_smile: I said before/around June, meaning the bug could’ve surfaced first in June 2023 and no later than that.

Given your test I suppose the range could be shortened to sometime before/around April 2023, which is something at least.

I’ve just found another forum post which mentions hrev56976 being broken already: My progress in porting Wine - #194 by danboid
That was on May 8,but I still don’t know how long before that it has been broken.
Beta4 was made based on hrev56578 from November 2022,which gives a pretty big range of hrevs to check.
Any known working hrevs after Beta4?

It sure is tedious work but it could be “optimized”, we know the breakage happened between November 2022 and April 2023, so one could test an hrev in-between these dates, from February, if it works then the culprit is in the Feb/April range, if it doesn’t then one would only have to check between Nov/Feb. Doing it like this (taking an hrev in the middle of the time period we want to examine each time) should speed up the search considerably.

(Kind of like a certain logic puzzle about scale weights)

In programmer terminology this is called bisecting : )

1 Like

I have found the commit that introduced the problem now.
It was hrev56677 - https://git.haiku-os.org/haiku/commit/src/servers/app?id=c565d98b6b91173aff4d8e4e2507256434ff8830
I built the current Haiku source with only that specific commit reverted and now Wine is working again.
Maybe that can be worked around directly in the Wine code,since that commit only changes the default of a variable.
Calling Window::EnableUpdateRequests() in the Wine Haiku driver should do the trick.

6 Likes

Kudos for finding the offending commit @nipos

1 Like

Thankfully all that testing is not required anymore… and yes, unfortunately the more time passes the more an old Beta will have issues like the one you described, it’s kind of unavoidable :slight_smile:

Using @Begasus recipe and patchset and using Haikuporter now i have a working make.
Haikuporter has a learning curve but eventually is easier if you have a working recipe to base your new version than trying configure and make manually.

Started out first by just downloading and came accross errors pretty fast, taking the existing patch and updating that to match latest release is easier then tackling all those errors one by one :slight_smile:

One big thing that changed in the patchset is from the vulkan_driver.h, the source file changed so much that the previous patch couldn’t be applied on that, it builds without the patch, but probably explains a “failing” driver when launching wine with my attempt.

1 Like

I haven’t been successful yet in getting a Windows executable to work with Haiku’s implementation of Wine.

@Begasus i don’t understand how did you create git patch for wine 10… Did you use git diff comparing X547 wine 7.9 and official wine 10.6? I tried creating wine 8 and wine 9 and they all fail on git am on the first dll. Can you explain pls?

I wrote a guide on how to update .patchsets. You can find the post about it here.

I wrote it to have a step-by-step guide based on a real example. Not the most clear/readable thing on the planet (mostly because it assumes certain familiarity with HaikuPorter, git, etc), but I follow that procedure all the time now.

In any case… you first need to understand that Haikuporter downloads the a source tarball, extracts it into a “work-dir”, then it initializes a git repo there, adding all the original files from the tarball. It tags it “ORIGIN”, so you can work there as you please… edit, commit, etc, and either revert back to “ORIGIN” if something goes wrong, or ask HaikuPorter to extract (haikuporter wine -e) a .patchset file containing all the commits you made.

if a .patchset already exists, but fails to apply (as in git am fails)… you can either fix things manually, of (try to) follow the guide I’ve mentioned above.

Good luck!

1 Like

@BiPolar thanks for sharing… This looks like pretty advanced git stuff…

Can be intimidating at first, yes, but if even I managed to learn it, anyone can :slight_smile: .

Trying to learn this, while starting with a large .patchset might not be the best approach (silly me did that with the ones for Python and virtualbox_guess_additions, LOL!). Only after doing it “manually” for a long time I ended up using the method on the linked guide.