Wine on Windows is an idea of real-world usefulness, as newer versions of Microsoft Windows increasingly fail to support apps Wine still supports.
I've started a wiki page: http://wiki.winehq.org/WineOnWindows
This covers my experiments with the three main POSIX layers (Cygwin, MinGW and Interix) on XPsp3.
Various people have told me they've got it to work before (native compilation and install on Windows), but I seem to be the one gathering data :-) If anyone who's done it could please (a) put there what they did with what versions of Wine and tools (b) check with current Wine, that would be most appreciated.
- d.
Wine on Windows is an idea of real-world usefulness, as newer versions of Microsoft Windows increasingly fail to support apps Wine still supports.
I've started a wiki page: http://wiki.winehq.org/WineOnWindows
This covers my experiments with the three main POSIX layers (Cygwin, MinGW and Interix) on XPsp3.
Various people have told me they've got it to work before (native compilation and install on Windows), but I seem to be the one gathering data :-) If anyone who's done it could please (a) put there what they did with what versions of Wine and tools (b) check with current Wine, that would be most appreciated.
- d.
Cygwin/Mingw doesn't work due to missing functionality for wineserver I believe (not sure what). Someone recently claimed that he indeed had wine working on Interix on a 32-bit WinXP. Right now he was trying to compile it on a 64-bit Windows but had all sorts of troubles. For instance there is some define for ELF stuff which he had to disable. He didn't succeed in compiling it and I have doubts that he succeeded before but Interix looks the most promosing of the options right now.
Roderick
On Tue, Dec 30, 2008 at 5:02 PM, Roderick Colenbrander thunderbird2k@gmx.net wrote:
Cygwin/Mingw doesn't work due to missing functionality for wineserver I believe (not sure what). Someone recently claimed that he indeed had wine working on Interix on a 32-bit WinXP. Right now he was trying to compile it on a 64-bit Windows but had all sorts of troubles. For instance there is some define for ELF stuff which he had to disable. He didn't succeed in compiling it and I have doubts that he succeeded before but Interix looks the most promosing of the options right now.
I've poked at it off and on over the years Its been my experience building on Cygwin was actually less trouble. Cygwin and SFU/Internix both require the same basic lowlevel magic. Proper signal handling, getting the thread management right and sendmsg/recvmsg support. I think someone on the cygwin side was working on the sendmsg/recvmsg part so maybe that could be ported over to SFU.
Honestly though I think this is the wrong approach. If you want to emulate an older windows environment you should look at something like VMware's Thinapp. The Wine on Windows method is going to involve either emulating Win32 on Cygwin on Win32 or Win32 on POSIX on NTOS. I think its too many layers of abstraction and redirection. I don't know the internals of the Thinapp design, (if Ge van Geldorp is lurking he can explain more), but I believe it uses Side by Side assemblies to link on older versions of Windows dlls or Windows replacement dlls to trick the applications in to thinking they are on older Windows. You could take the existing Wine for Mingw32 dlls and a good bit of other Wine code and try to start a project doing something like this without the overhead of the wineserver and posix emulation.
A FOSS Thinapp clone sounds like a reall fun project actually...
Thanks
[reviving oldish thread]
2008/12/31 Steven Edwards winehacker@gmail.com:
I've poked at it off and on over the years Its been my experience building on Cygwin was actually less trouble. Cygwin and SFU/Internix both require the same basic lowlevel magic. Proper signal handling, getting the thread management right and sendmsg/recvmsg support. I think someone on the cygwin side was working on the sendmsg/recvmsg part so maybe that could be ported over to SFU.
I thought Cygwin had long had sendmsg/recvmsg:
http://www.cygwin.com/ml/cygwin-patches/2002-q1/msg00111.html
What do you mean here?
- d.
On Wed, Mar 11, 2009 at 5:53 PM, David Gerard dgerard@gmail.com wrote:
I thought Cygwin had long had sendmsg/recvmsg:
http://www.cygwin.com/ml/cygwin-patches/2002-q1/msg00111.html
What do you mean here?
It has an implementation but not one that supports doing a recvmsg with a file descriptor so I understand. It seems Interix/Services for Unix and Subsystem for Unix applications have the same problem. According to Microsofts documentation (thanks Thunderbird) Vista/Windows Server 2008 and the Subsystem for Unix applications is supposed to support this so we might actually have a chance at seeing Wine run on Windows soon. I have a regression test for passing file descriptors with sendmsg/recvmsg I am working on that should be ready in a few more days and will post it. I'll test with Cygwin and SFU under Windows XP. Hopefully someone with Vista and Windows Server 2003 or 2007 can test for us.
2009/3/11 Steven Edwards winehacker@gmail.com:
On Wed, Mar 11, 2009 at 5:53 PM, David Gerard dgerard@gmail.com wrote:
I thought Cygwin had long had sendmsg/recvmsg:
According to Microsofts documentation (thanks Thunderbird) Vista/Windows Server 2008 and the Subsystem for Unix applications is supposed to support this so we might actually have a chance at seeing Wine run on Windows soon. I have a regression test for passing file descriptors with sendmsg/recvmsg I am working on that should be ready in a few more days and will post it. I'll test with Cygwin and SFU under Windows XP. Hopefully someone with Vista and Windows Server 2003 or 2007 can test for us.
SUA for Windows 7 should be available around RC time: http://blogs.msdn.com/sfu/archive/2009/01/23/nfs-and-sua-in-windows-7.aspx
(I've been experimenting with the Windows 7 beta. I'll have to hold off on more of that until I have a spare machine with the ridiculous quantities of memory it wants to run without great pain. Stupidly fat. Pretty, though.)
Vista/Win7 is where Wine on Windows would actually be useful to users, of course - given Wine targets XP already.
- d.
Hi,
On Wed, Mar 11, 2009 at 7:54 PM, David Gerard dgerard@gmail.com wrote:
SUA for Windows 7 should be available around RC time: http://blogs.msdn.com/sfu/archive/2009/01/23/nfs-and-sua-in-windows-7.aspx
(I've been experimenting with the Windows 7 beta. I'll have to hold off on more of that until I have a spare machine with the ridiculous quantities of memory it wants to run without great pain. Stupidly fat. Pretty, though.)
Vista/Win7 is where Wine on Windows would actually be useful to users, of course - given Wine targets XP already.
If you get a chance with a Win7 beta and SUA, please try to compile and run the included test. It does not build for me on SFU 3.5 and it fails on Cygwin. Hopefully it will work on newer SUA.
Thanks
2009/1/1 Steven Edwards winehacker@gmail.com:
Honestly though I think this is the wrong approach. If you want to emulate an older windows environment you should look at something like VMware's Thinapp. The Wine on Windows method is going to involve either emulating Win32 on Cygwin on Win32 or Win32 on POSIX on NTOS. I think its too many layers of abstraction and redirection. I don't know the internals of the Thinapp design, (if Ge van Geldorp is lurking he can explain more), but I believe it uses Side by Side assemblies to link on older versions of Windows dlls or Windows replacement dlls to trick the applications in to thinking they are on older Windows. You could take the existing Wine for Mingw32 dlls and a good bit of other Wine code and try to start a project doing something like this without the overhead of the wineserver and posix emulation.
A FOSS Thinapp clone sounds like a reall fun project actually...
I see two advantages of Wine over VMware technology here. 1) Wine is free, VMware Thinapp is trial/commercial license 2) VMware is a virtual machine, even for Thinapp. You need a copy of a complete operating system to run apps inside it.
The argument could be made that a virtual machine (e.g. VirtualBox OSE, QEMU or KVM/QEMU) is a better solution to getting Windows programs to run than using Wine (in particular VirtualBox which supports hardware accelerated OpenGL and, using wined3d in the development version, DirectX). So why has there been any development on Wine at all over the past 16 years or so? Because Wine is *not* a complete operating system, and because Wine is distributed under free (beer and speech forms) licenses.
I also see two problems with the idea of creating a Wine-based thinapp clone. 1) Effort. You're talking about a redesign of Wine that involves removing POSIX and wineserver dependence. This is not a trivial thing in any way, shape or form. Wine is designed from the start to provide a Win32 compatibility layer and environment on Unix and Unix-like systems. You would also have to remove all X11 dependence. (I'm not sure how Wine on Windows works right now, is there a DirectX pass-through or does it use an X server?) 2) Wine already allows you to change what Windows version is reported to applications on a per-app basis. I'm unsure what component is used for this, but I suspect it's built somewhere into wineserver. Someone correct me if I'm wrong :)