protonscr

Build broken on Debian testing (missging widl binary)

vkd3dclosed
HansKristian-Work/vkd3d-proton#1450 · opened 2023-03-05 by shmerl · updated 2023-03-17 · 11 comments · github
Sshmerl 2023-03-05 github

Commit 2ec6c90ab6676e328883651783e3822579234386 broke building vkd3d-proton on Debian (testing).

I think the only source of widl there is mingw-w64-tools package which provides:

/.
/usr
/usr/bin
...
/usr/bin/i686-w64-mingw32-widl
...
/usr/bin/x86_64-w64-mingw32-widl

So there is no simply widl binary.

Sshmerl 2023-03-05 github

As a workaround, I created a symlink in $HOME/.local/bin and it helped:

ln -s /usr/bin/x86_64-w64-mingw32-widl $HOME/.local/bin/widl

In that case also make sure that $HOME/.local/bin is in your $PATH.

Sshmerl 2023-03-05 github

I see there is also this from wine64-tools: /usr/bin/widl-stable.

Sshmerl 2023-03-05 github

Hm, that's actually a newer one. So doing this also helped:

ln -s /usr/bin/widl-stable $HOME/.local/bin/widl
HHansKristian-Work maintainer 2023-03-06 github

Hm, that's actually a newer one. So doing this also helped:

ln -s /usr/bin/widl-stable $HOME/.local/bin/widl

Why is Debian renaming the widl binary like this?

Sshmerl 2023-03-06 github

Not sure, but my suspicion is that may be they wanted to differentiate wine64-tools as "stable" and "development" variants?

That's what I see in it:

...
/usr/bin/widl-stable
/usr/bin/winebuild-stable
/usr/bin/winecpp-stable
/usr/bin/winedump-stable
/usr/bin/wineg++-stable
/usr/bin/winemaker-stable
/usr/bin/wmc-stable
/usr/bin/wrc-stable
...
Sshmerl 2023-03-06 github

May be one option would be to check for widl-stable in addition or to mention in documentation that symlink would be needed on Debian.

HHansKristian-Work maintainer 2023-03-06 github

May be one option would be to check for widl-stable in addition or to mention in documentation that symlink would be needed on Debian.

The main problem is that Meson broke this (check for mingw-tools, then fallback) and it's not obvious to me how to make it optional.

Ddoitsujin maintainer 2023-03-09 github

find_program can take required : false which we could technically abuse to allow multiple binary names, but things having random names across different distros really isn't helpful.

Rr2rX 2023-03-16 github

After a few weeks of not updating vkd3d-proton for Lutris, I tried compiling it today but it seems that a similar issue is present with Fedora 37 as well.

All dependencies are installed (as I was compiling fine earlier), running Meson v1.0.0, WINE v8.2 and mingw-w64-tools v10.0.0 from Fedora's repo.

When searching for 'widl', my system finds the following:

/usr/bin/i686-w64-mingw32-widl
/usr/bin/x86_64-w64-mingw32-widl
/usr/bin/x86_64-w64-mingw32ucrt-widl

I did exclude a few entries from the list above, specifically for WINE runners in Lutris, Bottles and Heroic (which include 'widl' in their respective 'bin' directories) but I didn't notice one for the system-wide installed version of WINE from Fedora's repo, aside from what was listed above.

Not sure if this makes a difference (although, as mentioned, it was compiling fine a few weeks ago on the same system).

meson-log.txt

Update: So after re-adding the entries in build-win32.txt and build-win64.txt, that were removed in 2ec6c90, it compiles fine.

HHansKristian-Work maintainer 2023-03-17 github

https://github.com/HansKristian-Work/vkd3d-proton/pull/1470 attempts to fix this. Seems to work here at least.

Rr2rX 2023-03-17 github

Hey @HansKristian-Work . Just wanted to let you know that #1470 does indeed fix the issue. It compiles fine now. Good stuff! :+1: