On 12/11/2015 11:08 PM, Austin English wrote: > On Fri, Dec 11, 2015 at 3:52 PM, Jens Reyer <[email protected]> wrote: >> Hi, >> >> please see below for another patch. IMO it is clean, simple and >> matches the logic of the wine-script perfectly. >> >> It tries to detect the correct wine version using the following >> precedence: >> >> 1. WINEARCH - can't be misinterpreted and was also used >> previously. >> 2. WINEPREFIX - if it is set and system.reg exists, we have a >> clean indicator if it is a 32-bit or 64-bit installation, >> and therefore which wine to use. >> 3. WINELOADER - if it is set to a known loader, use this for >> deciding which wine to use. >> The 32-bit loaders seem to work with both wine32 and wine64, >> but I see no point in doing this here. Instead it is easier >> to choose the correct 32-bit or 64-bit wineprefix later if >> wine loader and binary match. >> Note that I'm not really familiar with the preloader. >> 4. Test with "file" if $1 is a 64-bit application. Note that some >> 64-bit applications have PE32 installers, or install single >> PE32 executables. But those also seem to work with wine64 as >> long as wine32 is installed. Therefore only testing for PE32+. [...] > Only speaking as an upstream observer, I haven't followed the issues > with the debian wine packaging too closely..
Thanks a lot for your constructive and informational feedback Austin. I appreciate this very much. I'll definitely not insist on using my patches (this and the WoW64 patch), but I think they help to discuss this matter. The current status in Debian is to prefer Wine32, even if Wine64 is installed. This is a constant source for bugreports of users thinking that Wine64 doesn't work - generally, and specifically in combination with binfmt. However I now see the benefit of defaulting to wine32 (even despite of my new knowledge that WoW64 already works), given the maybe typical installation on amd64: 1.) Install wine, pulling in wine64. 2.) Realize that wine32 is missing. 3.) Add the foreign arch and install wine32. Because of this, and "wine" depending on "wine64|wine32", the default on Debian (amd64) is to have wine64 installed. Further we have to avoid breaking existing installations. With current default 32-bit wineprefixes (although many have wine64 installed), a simple change to WoW64 (=prefer Wine64 if installed) would cause a lot of breakage. However if we do it, now (close to a new stable upstream release, and a year before Debian freeeze) would be the best time. > That said, I think going out of your way to detect what sort of prefix > to use is the wrong approach. A properly built wow64 install will > automatically use the correct wine bitness when launching > applications. Trying to detect what architecture to use is prone to > breakage, as you've seen. I see two reasons for it: 1.) Checking with "file" (but honoring the WINE* variables first) allows to continue to default to Wine32, while you still can install 64-bit apps without manual intervention. However at least 64-bit apps with PE32 installers make this as a sole solution "problematic" and obfuscating problems (-> consider tagging #769234 as "wontfix"). 2.) Testing existing wineprefixes allows to change the default to WoW64 (if wine64 is installed) without breaking old installations > In general, upstream recommends running 32-bit Wine if 64-bit > executables are not needed. For users on 64-bit OSes, the > recommendation is usually to remove Wine64 packages if you don't want > them. Oh, I'd been under the impression that WoW64 is the default and recommended by upstream. Seeing that it may also cause problems, and reading you, I'm glad that we have 32-bit as default and I think we should stay with that, even if wine64 is installed. However we definitely should add something to the README. Given no other changes in the packaging I'd propose [2]. Maybe we should consider dropping the automatic setting of WINEPREFIX, because it is not set session-wide. Like the automatic detection, this is a feature that may obfuscate problems. Yet, how to handle this for existing installations? Setting the WINEPREFIX made sense for separate 32-/64-bit installation. But now that I know that WoW64 works, I see less use in it. Maybe we should offer a separate "wine-wow64" package similar to the "wine" package (but conflicting with it), that offers a version of the wine script that prefers win64 and depends on wine32 _and_ wine64. The "Depends: wine64|wine32" in the wine package might be reversed to "wine32|wine64". > I don't know what issues these wrapper scripts the package is using > are supposed to solve, they seem to be causing more issues than they > solve, AFAICT. I honestly can't comment on the general usefulness of/requirement for the wrapper scripts (yet). Maybe I agree with you, maybe there's a hard reason to use them. For me, I just started to work in the existing system. > In any case, good luck, thanks for packaging/updating Wine on Debian. Thanks again, and at the same time honoring Mike's and Stephen's work. Greets jre [1]: This might be done more fine-grained, distinguishing between wine32 not being installed, and foreign arch i386 missing. [2]: Proposal for README and wiki: -------- snip -------- 32-bit/64-bit/WoW64 =================== To run 64-bit Windows applications you have to install both wine32 and wine64 (or wine32-development and wine64-development). It is not recommended to only install wine64 (or wine64-development). This alone will still use 32-bit Wine uniquely. To run 64-bit applications you have to set "WINEARCH=win64". Then both 32-bit and 64-bit applications will be installed in 64-bit wineprefixes (WoW64). Examples: $ WINEARCH=win64 wine $ WINEARCH=win64 wine-development If you generally use Wine32, you have to manually add "WINEARCH=win64" to Desktop launchers of applications installed that way. If you want to use Wine64/WoW64 permanently, include the following two lines in your ~/.bashrc file. Because Wine64 on Debian uses ~/.wine64 as default wineprefix, you should specify that at the same time: export WINEARCH=win64 export WINEPREFIX="~/.wine64" Some 32-bit applications only run with Wine32 (but not with WoW64). If you generally use Wine64, use "WINEARCH=win32" and a separate wineprefix for these applications. -------- snap -------- _______________________________________________ pkg-wine-party mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-wine-party
