-
-
Notifications
You must be signed in to change notification settings - Fork 409
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
directx9 can't be installed (in 64-bit wineprefix at least) #1172
Comments
I suspect the problem involves cabextract. Maybe I shouldn't be using the debian repository cabextract with winehq wine? I tried bypassing the directx9 package but I still had issues. I also had issues with Visual C++ 2010 x64. |
What version of cabextract do you have? |
1.9-1 . Checking the version revealed that at least part of the problem wasn't with cabextract. The main change of 1.9-2, which is what SID uses, is "Force libmspack0 version >= 0.9.1-1 to avoid bugs in that package". Lo and behold, libmspack0 in Debian Testing is 0.8-1 as of this writing, with SID of course having the newer version. Having backported libmspack0 0.9.1-1 to Testing, I deleted my wineprefix and cache and started from scratch. I'll let you know the results in a moment. |
Yeah, it's a real issue, but only in 64-bit. I'll take a look. |
When registering quartz, it loads devenum. While winetricks has 32/64 bit quartz, there's only 32-bit devenum, so it fails to load. We'll probably have to find a 64-bit devenum, but the only one I've found is a .msu (https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2016/ms16-007) |
For a workaround, we could skip those dlls on win64: does that, if you'd like to test. @gverm what do you think, since you added those dlls? I suspect qcap may need to go too (it at least registers without issue). |
@austin987 Wouldn't skipping them defeat the purpose of the verb? Maybe, although unfortunate, we should not allow directx9 to be used in a 64bit prefix? Also, does this bug affect other verbs that call quartz, e.g. directmusic? |
Hi, Guys. @Danfun64 I don't know if this is your problem too but I was having problems installing directx on debian via winetricks. Looks like is really a problem with cabextract 1.9-1 on debian. Option -F is corrupting files or something like that. |
That was my first problem, but I figured it out fairly quickly. The problem now is that Microsoft 64-bit devenum is hard to find apparently. As I mentioned, the main difference between cabextract 1.9-1 and 1.9-2 appears to be that 1.9-2 requires a newer version of libmspack0. |
Oh sorry! Newbie thing. I read your messages but doesn't figured it out. |
@austin987 Ping (for my previous comment) |
Hi @gverm Thanks for the ping (and sorry for missing your comment before). I didn't realize that native directmusic called quartz. This is a tricky one. AFAICT, some dlls would still be useful (e.g., d3dx), but can be installed via separate verb. The dpn* stuff is only 32-bit on 64-bit windows AFAIK, so those also shouldn't attempt to be registered as 64-bit (though registering only as 32-bit should work). My initial thought is that directx9 should be win32 only, but in the process, we should:
For 2/3, my thought is something like: (better wording of course preferred). |
Feedback would be appreciated by everyone ^ |
Is there really any reason for directx9 to exist? |
At this point, mostly historical. I mostly avoided touching it since it's references so many places (for better or worse). My initial thought is that it should be deprecated and replaced with a warning and replacement verbs, but I'd a wider discussion changing it. Given that you've touched several directx components recently @zfigura, I'd love your input. |
I don't get the impression it's ever common to need all of native DirectX, or even most of it. For developers I get the impression it makes things a little more difficult since it means polluting the prefix, and when something is fixed with directx9 it's not clear even what part of Wine the problem is in. I honestly had the impression it was already kind of deprecated. I'm trying to think of reasons to keep it around, but besides not breaking people's scripts, I'm not sure I can think of any. But perhaps others have different opinions. |
I don't know if it's common to check the exit code of winetricks, but since that verb is no longer doing what is expected, it may make sense to return nonzero exit code in that case (i.e. w_die I guess). |
I was debating that. Then I had the thought that it was often called when it wasn't needed. I'll think on it some more. |
That's a fair point. I'd still lean towards failing in this case, as a way of warning people that calls to directx9 should be replaced, even if it should be replaced with nothing. I did a quick search of bugzilla, and less than 50 (and perhaps significantly less) bugs report using directx9. About half of the ones I checked also report using individual verbs that are installed by directx9 (e.g. people will do |
Thinking about this a bit more, I agree that returning an error makes sense. However, I'd like to minimize collateral damage, so my plan is to make a release soonish, then make this commit afterward, so it only affects git users, and regressions can be fixed before the next release. |
FWIW, the same quartz issue also affects directmusic, which I sometimes use to fix issues with old games. |
I'm testing Debian in a virtual machine, and am trying to install the directx9 package in wine (yes, I know it's "overkill", but...). Unfortunately, there appears to be something... off ... with directx_feb2010_redist.exe
http://paste.debian.net/1063871/
I'm running Debian Testing with the winehq repository and the latest winetricks. I was hoping to play a 64-bit only game, hence why I'm using a 64-bit wineprefix.
The text was updated successfully, but these errors were encountered: