Re: Including Mono within a Wine package - should Wine expect this?

2008-04-16 Thread Kornél Pál
Hi,

I am almost complete with implementing mixed-mode support for Mono only some 
code cleanup is remaining. Note that however this still will not support 
MSVCRT becuase that assumes that is running on .NET Framework. Also note 
that applications using unmanaged API (COM interfaces and DLL exports) of 
.NET Framework will not be compatible with Mono because those APIs are not 
implemented by Mono.

If my patch will be accepted you will see the changes in SVN trunk of Mono.

 From: Dan Kegel [EMAIL PROTECTED]
 On Sun, Apr 13, 2008 at 11:14 PM, Roderick Colenbrander
 [EMAIL PROTECTED] wrote:
  What we really need is mono's windows.forms to be layered on top of 
 gdi32 and user32 for windows controls like buttons, textboxes and so on 
 .. As lots of programs do overrides using native dlls on them, so that's 
 why it should be real windows controls with a wndproc.

  Ironically the current situation is for a part our own issue. Years ago 
 Mono's windows.forms used winelib. They moved to a managed 
 implementation because they had wine integration issues and we weren't 
 that cooperative. Further they didn't like the 2d performance much 
 (likely due to the lack of a dib engine ..). They might be reluctant to 
 Wine.

 Yup.  We have to really get our act together, then undoing the fork
 might make sense.

Undoing the fork is not that easy because the current System.Windows.Forms 
uses it's own rendering engine and low level parts have been completely 
rewritten to support platform independent rendering and message processing. 
It supports low level WndProc functionality but I don't know how much is it 
compatible with Microsoft's implementation.

Kornél 





Re: Including Mono within a Wine package - should Wine expect this?

2008-04-16 Thread Scott Ritchie
Ove Kaaven wrote:
 Debian's ia32-libs package isn't an example of a whole lot. It grabs
 compiled binaries from the official Debian archive, and nowhere else. It
 isn't built on a 32-bit system. If ia32-libs had contained binaries that
 could not be built 100% automatically using Debian's official archive
 (and only the official archive), it probably wouldn't have gotten into
 Debian. Besides, ia32-libs is not meant to be a long-lived package,
 it'll go away eventually.
 

We've been saying that for 3 years now, and we've only become MORE
dependent on ia32-libs in the process.  The chief culprit, of course, is
Wine, and Wine's need to run 32 bit applications isn't going away soon.

Really, what Debian (and Ubuntu) need is to replace the contents of the
ia32-libs package with proper 32 versions of package (sorta like how
lib32asound and lib32z1 are now).  Fixing that, however, is a bit beyond
the scope of the wine-devel list ;)

Thanks,
Scott Ritchie




Re: Including Mono within a Wine package - should Wine expect this?

2008-04-16 Thread Stephan Hermann
On Wed, 16 Apr 2008 06:52:49 -0700
Scott Ritchie [EMAIL PROTECTED] wrote:

 Ove Kaaven wrote:
  Debian's ia32-libs package isn't an example of a whole lot. It grabs
  compiled binaries from the official Debian archive, and nowhere
  else. It isn't built on a 32-bit system. If ia32-libs had contained
  binaries that could not be built 100% automatically using Debian's
  official archive (and only the official archive), it probably
  wouldn't have gotten into Debian. Besides, ia32-libs is not meant
  to be a long-lived package, it'll go away eventually.
  
 
 We've been saying that for 3 years now, and we've only become MORE
 dependent on ia32-libs in the process.  The chief culprit, of course,
 is Wine, and Wine's need to run 32 bit applications isn't going away
 soon.
 
 Really, what Debian (and Ubuntu) need is to replace the contents of
 the ia32-libs package with proper 32 versions of package (sorta like
 how lib32asound and lib32z1 are now).  Fixing that, however, is a bit
 beyond the scope of the wine-devel list ;)

The real problem with multi-arch libs is, that it's hard to maintain
inside debian packages at all...not that it's difficult to compile on
amd64 with -m32 , but regarding the different ways of debian/rules
writing with all different maintainer ways to write Makefiles for
accomplishing this tasks is the most difficult thing.

When there are people interested in going a hard way of fixing todays
situation in debian/ubuntu and other distris, please let's do it
, sane and with a plan.

Regards,
\sh
  




Re: Including Mono within a Wine package - should Wine expect this?

2008-04-16 Thread Ove Kaaven
Stephan Hermann skrev:
 When there are people interested in going a hard way of fixing todays
 situation in debian/ubuntu and other distris, please let's do it
 , sane and with a plan.

There's already work going on to try to get a better solution into 
Debian lenny. There's a new ia32-libs-tools package about to enter 
Debian unstable, which would make it possible to replace the big 
ia32-libs package with more fine-grained individual ia32-lib* packages. 
(It may not be true multiarch, but still a lot better than the current 
situation.)






Re: Including Mono within a Wine package - should Wine expect this?

2008-04-15 Thread Kornél Pál
Hi,

 From: Hin-Tak Leung [EMAIL PROTECTED]
 I can't comment on anything else, but after trying to get a .NET WinForms 
 application
 (mentioned in some of the bugs I filed) for a few months under the 3 
 options of
 native linux mono, wine+.NET and wine+mono, I can say that win32 mono uses 
 P/Invoke
 *differently* from how .NET2 does it, and the missing APIs required to get 
 an
 application to work with the wine + win32 mono and wine +MS.NET combo is 
 different.
 So some part of the applications runs better with wine + win32 mono and 
 some better
 with wine + MS.NET ... win32 mono and MS.NET just seems to have different 
 native code dependencies.

The only major difference I know is that Mono uses UTF-8 instead of ACP for 
ANSI functions. If you know some serious issues please feel free to file bug 
report(s) at Mono's Bugzilla.

 From: Dan Kegel [EMAIL PROTECTED]
  http://lists.ximian.com/pipermail/mono-devel-list/2008-April/027491.html

 That's interesting info, thanks.

 At the moment you seem to be taking the lead on these issues.
 Please let us know how it goes.

I have made some progess and now I am able to call unmanaged methods from 
managed methods and also implemented some mscoree.dll hacks that make 
possible to use the NT loader (LoadLibrary). Unfortunately the loader uses 
mscoree.dll located in system32 anyway so I had to modify it's export 
address table in memory. And I also had to implement base relocation and 
import adress table processing for EXE modules because that is not done by 
NT. Processes could only be created from managed EXE files with some more 
intrusive mscoree.dll hacks (mscoree.dll file or registy modifications).

Kornél 





Re: Including Mono within a Wine package - should Wine expect this?

2008-04-15 Thread Dmitry Timoshkov
Kornél Pál [EMAIL PROTECTED] wrote:

 The only major difference I know is that Mono uses UTF-8 instead of ACP for
 ANSI functions.

UTF-8 will break most of Windows applications since they don't expect to see
strings in a multibyte encoding.

-- 
Dmitry.





Re: Including Mono within a Wine package - should Wine expect this?

2008-04-15 Thread Kornél Pál
 The only major difference I know is that Mono uses UTF-8 instead of ACP 
 for
 ANSI functions.

 UTF-8 will break most of Windows applications since they don't expect to 
 see
 strings in a multibyte encoding.

I know that. And the problem is that there is a mess of ACP and UTF-8 inside 
native code of Mono. I tried to change things several times but none of them 
were accepted.

Kornél 





Re: Including Mono within a Wine package - should Wine expect this?

2008-04-15 Thread Ove Kaaven
Scott Ritchie skrev:
 Agreed.  The one tricky thing here is making a proper source package.
  There is some precedent for source packages that don't actually build
 on the architecture they're for.  The ia32-libs package, for instance,
 contains both binary and source versions of the 32 bit libraries since
 it's solely for 64 bit arches, however to build those binaries requires
 use of a 32 bit system.
 
 Similarly, we can ship a wine-gecko source package which includes
 binary and source, with the readme detailing how to actually build the
 binary from the source (ie, use Windows).  Meanwhile the source package
 builds by just copying the binary into the right place (much like how
 ia32-libs builds).

Debian would not accept this into main. Perhaps into contrib, maybe. For 
example, DFSG-free Java programs that must be compiled with a non-free 
Java compiler (because the free compilers aren't good enough) goes into 
contrib, not main (though even here, it should be possible to 
auto-rebuild the package).

Debian's ia32-libs package isn't an example of a whole lot. It grabs 
compiled binaries from the official Debian archive, and nowhere else. It 
isn't built on a 32-bit system. If ia32-libs had contained binaries that 
could not be built 100% automatically using Debian's official archive 
(and only the official archive), it probably wouldn't have gotten into 
Debian. Besides, ia32-libs is not meant to be a long-lived package, 
it'll go away eventually.






Re: Including Mono within a Wine package - should Wine expect this?

2008-04-14 Thread Roderick Colenbrander
 On Sun, Apr 13, 2008 at 10:11 AM, Steven Edwards [EMAIL PROTECTED]
 wrote:
   Rather than ignoring mono these issues make it sound like Wine and
   mono should try to work together again. The EULA for the .NET runtime
   prohibits distributing it and using it on non-windows licensed systems
   so we are in much the same legal situation with IE where we have to
   have a replacement.
 
 Yes, exactly.  I've been discussing this a bit on the mono list.
 
 There are two big pieces of work needed:
 1) support for mixed assemblies in Mono for Windows
 2) porting Mono's WinForms on top of Wine gdiplus
 instead of Mono gdiplus (and making it more win32-ish as
 a result)
 
 This would be a fine summer project for somebody properly motivated.
 
 There will be more incentive to do this as we get Microsoft .NET working
 better, and it becomes clearer just how many applications need one
 or the other of the two items above to run.
 
 In short: I think the path to Mono+Wine nivana at the moment leads
 directly through enemy territory: we have to get MS .net working better
 first
 before it's clear it'll be worth it.
 - Dan
 

What we really need is mono's windows.forms to be layered on top of gdi32 and 
user32 for windows controls like buttons, textboxes and so on .. As lots of 
programs do overrides using native dlls on them, so that's why it should be 
real windows controls with a wndproc.

Ironically the current situation is for a part our own issue. Years ago Mono's 
windows.forms used winelib. They moved to a managed implementation because they 
had wine integration issues and we weren't that cooperative. Further they 
didn't like the 2d performance much (likely due to the lack of a dib engine 
..). They might be reluctant to Wine.

Roderick 
-- 
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer




Re: Including Mono within a Wine package - should Wine expect this?

2008-04-14 Thread Dan Kegel
On Sun, Apr 13, 2008 at 11:14 PM, Roderick Colenbrander
[EMAIL PROTECTED] wrote:
  What we really need is mono's windows.forms to be layered on top of gdi32 
 and user32 for windows controls like buttons, textboxes and so on .. As lots 
 of programs do overrides using native dlls on them, so that's why it should 
 be real windows controls with a wndproc.

  Ironically the current situation is for a part our own issue. Years ago 
 Mono's windows.forms used winelib. They moved to a managed implementation 
 because they had wine integration issues and we weren't that cooperative. 
 Further they didn't like the 2d performance much (likely due to the lack of a 
 dib engine ..). They might be reluctant to Wine.

Yup.  We have to really get our act together, then undoing the fork
might make sense.




Re: Including Mono within a Wine package - should Wine expect this?

2008-04-14 Thread Hin-Tak Leung
--- On Sun, 13/4/08, Dan Kegel [EMAIL PROTECTED] wrote:
snipped
   2) porting Mono's WinForms on top of Wine
 gdiplus
   instead of Mono gdiplus (and making it more
 win32-ish as
   a result)
 
   Mono is using MS GDI+ on Windows since it uses GDI+.
 Mono's libgdiplus is
  only used on non-Windows platforms.
 
 I guess I assumed that Mono used native WinForms on
 Windows,
 and that its winforms code was only used on Linux.  I
 clearly
 don't know enough about Mono to discuss it
 intelligently :-)
snipped

I can't comment on anything else, but after trying to get a .NET WinForms 
application
(mentioned in some of the bugs I filed) for a few months under the 3 options of 
native linux mono, wine+.NET and wine+mono, I can say that win32 mono uses 
P/Invoke
*differently* from how .NET2 does it, and the missing APIs required to get an
application to work with the wine + win32 mono and wine +MS.NET combo is 
different.
So some part of the applications runs better with wine + win32 mono and some 
better
with wine + MS.NET ... win32 mono and MS.NET just seems to have different 
native code dependencies.




  ___ 
Yahoo! For Good helps you make a difference  

http://uk.promotions.yahoo.com/forgood/




Re: Including Mono within a Wine package - should Wine expect this?

2008-04-13 Thread Steven Edwards
On Fri, Apr 11, 2008 at 8:50 AM, Roderick Colenbrander
[EMAIL PROTECTED] wrote:
  For a part the issue is that lots of programs are hybrid ones. Some of them 
 behave 'nicely' in the way they just call a few functions from a native win32 
 dll. I think apps that embed COM objects (like a Word viewer, ..) are worse 
 as mono doesn't offer this at all. The most problematic thing is that mono's 
 windows.forms is fully managed while microsoft just layered it on top of 
 gdi32/gdiplus/user32. This allows you to use standard win32 apis on most 
 windows.forms controls to override behavior. A lot of apps do this, so even 
 if you could access native win32 dlls, magic like this won't work at all. 
 Second COM objects might also rely on evil win32 magic.

Rather than ignoring mono these issues make it sound like Wine and
mono should try to work together again. The EULA for the .NET runtime
prohibits distributing it and using it on non-windows licensed systems
so we are in much the same legal situation with IE where we have to
have a replacement.

-- 
Steven Edwards

There is one thing stronger than all the armies in the world, and
that is an idea whose time has come. - Victor Hugo




Re: Including Mono within a Wine package - should Wine expect this?

2008-04-13 Thread Dan Kegel
On Sun, Apr 13, 2008 at 10:11 AM, Steven Edwards [EMAIL PROTECTED] wrote:
  Rather than ignoring mono these issues make it sound like Wine and
  mono should try to work together again. The EULA for the .NET runtime
  prohibits distributing it and using it on non-windows licensed systems
  so we are in much the same legal situation with IE where we have to
  have a replacement.

Yes, exactly.  I've been discussing this a bit on the mono list.

There are two big pieces of work needed:
1) support for mixed assemblies in Mono for Windows
2) porting Mono's WinForms on top of Wine gdiplus
instead of Mono gdiplus (and making it more win32-ish as
a result)

This would be a fine summer project for somebody properly motivated.

There will be more incentive to do this as we get Microsoft .NET working
better, and it becomes clearer just how many applications need one
or the other of the two items above to run.

In short: I think the path to Mono+Wine nivana at the moment leads
directly through enemy territory: we have to get MS .net working better first
before it's clear it'll be worth it.
- Dan




Re: Including Mono within a Wine package - should Wine expect this?

2008-04-13 Thread Kornél Pál
Hi,

 1) support for mixed assemblies in Mono for Windows

I'm trying to do some work on that.

 2) porting Mono's WinForms on top of Wine gdiplus
 instead of Mono gdiplus (and making it more win32-ish as
 a result)

Mono is using MS GDI+ on Windows since it uses GDI+. Mono's libgdiplus is 
only used on non-Windows platforms. If Wine's GDI+ is not supported by Mono 
(I haven't tried) it's Wine's GDI+ that has to be fixed because Mono works 
perfectly with MS GDI+.

I also suggested on mono-devel-list that process creation and module loading 
for managed modules should be supported by ntdll.dll via callbacks to 
mscoree.dll as described in
http://lists.ximian.com/pipermail/mono-devel-list/2008-April/027491.html

Kornél 





Re: Including Mono within a Wine package - should Wine expect this?

2008-04-13 Thread Dan Kegel
On Sun, Apr 13, 2008 at 12:55 PM, Kornél Pál [EMAIL PROTECTED] wrote:
  1) support for mixed assemblies in Mono for Windows

  I'm trying to do some work on that.

Cool!

  2) porting Mono's WinForms on top of Wine gdiplus
  instead of Mono gdiplus (and making it more win32-ish as
  a result)

  Mono is using MS GDI+ on Windows since it uses GDI+. Mono's libgdiplus is
 only used on non-Windows platforms.

I guess I assumed that Mono used native WinForms on Windows,
and that its winforms code was only used on Linux.  I clearly
don't know enough about Mono to discuss it intelligently :-)

  I also suggested on mono-devel-list that process creation and module
 loading for managed modules should be supported by ntdll.dll via callbacks
 to mscoree.dll as described in
  http://lists.ximian.com/pipermail/mono-devel-list/2008-April/027491.html

That's interesting info, thanks.

At the moment you seem to be taking the lead on these issues.
Please let us know how it goes.
- Dan




Re: Including Mono within a Wine package - should Wine expect this?

2008-04-11 Thread Scott Ritchie
Dan Kegel wrote:
 On Thu, Apr 10, 2008 at 7:40 PM, Scott Ritchie [EMAIL PROTECTED] wrote:
   Wine-mono on the other hand is probably premature.
   How many apps are helped at the moment by
 winetricks mono12
   ?  I don't think it's a large number.

  Honestly I don't know.  Is this due to inadequacies in the current mono,
  or inadequacies in Wine?
 
 Mono doesn't even try to handle mixed-mode assemblies (i.e. ones
 that contain some native code).  And by gum, every .net app built
 by Microsoft tools seems to include some native code for some odd
 reason.  Go figure!

Is this true even for the Windows version of Mono?  If Mono is supposed
to be a replacement for what the .net framework provides, then it seems
like duplicating this functionality on Windows (and therefore Wine)
would be part of it.

I did some searching as for why this is the case.  This link:
http://www.jprl.com/Blog/archive/development/mono/2008/Jan-27.html
indicates that the main issue is the loader supporting PE files, which
is what Wine already does.

 
  Either way, Mono 2.0 will finally come out around the same time as Wine
  1.0 (quarter 2 of 2008), and I suspect the number of applications Mono
  helps will greatly improve by then.
 
 Maybe, but only apps that have been properly cleaned of native code.
 - Dan

Hmm...it seems like gluing Mono and Wine together would require a bit
more collaboration than the two projects have.

Thanks,
Scott Ritchie




Re: Including Mono within a Wine package - should Wine expect this?

2008-04-11 Thread Roderick Colenbrander
 Dan Kegel wrote:
  On Thu, Apr 10, 2008 at 7:40 PM, Scott Ritchie [EMAIL PROTECTED]
 wrote:
Wine-mono on the other hand is probably premature.
How many apps are helped at the moment by
  winetricks mono12
?  I don't think it's a large number.
 
   Honestly I don't know.  Is this due to inadequacies in the current
 mono,
   or inadequacies in Wine?
  
  Mono doesn't even try to handle mixed-mode assemblies (i.e. ones
  that contain some native code).  And by gum, every .net app built
  by Microsoft tools seems to include some native code for some odd
  reason.  Go figure!
 
 Is this true even for the Windows version of Mono?  If Mono is supposed
 to be a replacement for what the .net framework provides, then it seems
 like duplicating this functionality on Windows (and therefore Wine)
 would be part of it.
 
 I did some searching as for why this is the case.  This link:
 http://www.jprl.com/Blog/archive/development/mono/2008/Jan-27.html
 indicates that the main issue is the loader supporting PE files, which
 is what Wine already does.
 
  
   Either way, Mono 2.0 will finally come out around the same time as
 Wine
   1.0 (quarter 2 of 2008), and I suspect the number of applications Mono
   helps will greatly improve by then.
  
  Maybe, but only apps that have been properly cleaned of native code.
  - Dan
 
 Hmm...it seems like gluing Mono and Wine together would require a bit
 more collaboration than the two projects have.
 
 Thanks,
 Scott Ritchie
 

For a part the issue is that lots of programs are hybrid ones. Some of them 
behave 'nicely' in the way they just call a few functions from a native win32 
dll. I think apps that embed COM objects (like a Word viewer, ..) are worse as 
mono doesn't offer this at all. The most problematic thing is that mono's 
windows.forms is fully managed while microsoft just layered it on top of 
gdi32/gdiplus/user32. This allows you to use standard win32 apis on most 
windows.forms controls to override behavior. A lot of apps do this, so even if 
you could access native win32 dlls, magic like this won't work at all. Second 
COM objects might also rely on evil win32 magic.

All in all mono only works on a few well behaved apps and most don't behave 
well. PersonallY I think a win32 mono package for wine is nearly useless.

Roderick
-- 
Psst! Geheimtipp: Online Games kostenlos spielen bei den GMX Free Games! 
http://games.entertainment.gmx.net/de/entertainment/games/free




re: Including Mono within a Wine package - should Wine expect this?

2008-04-10 Thread Dan Kegel
A wine-gecko package would be very useful.

Wine-mono on the other hand is probably premature.
How many apps are helped at the moment by
  winetricks mono12
?  I don't think it's a large number.

The wine-gecko package should just be a repackaging
of the same blob that is normally downloaded,
at least until we figure out how to do a proper cross-build.




Re: Including Mono within a Wine package - should Wine expect this?

2008-04-10 Thread Scott Ritchie
Dan Kegel wrote:
 A wine-gecko package would be very useful.
 
 Wine-mono on the other hand is probably premature.
 How many apps are helped at the moment by
   winetricks mono12
 ?  I don't think it's a large number.

Honestly I don't know.  Is this due to inadequacies in the current mono,
or inadequacies in Wine?

Either way, Mono 2.0 will finally come out around the same time as Wine
1.0 (quarter 2 of 2008), and I suspect the number of applications Mono
helps will greatly improve by then.

 
 The wine-gecko package should just be a repackaging
 of the same blob that is normally downloaded,
 at least until we figure out how to do a proper cross-build.
 
 

Agreed.  The one tricky thing here is making a proper source package.
 There is some precedent for source packages that don't actually build
on the architecture they're for.  The ia32-libs package, for instance,
contains both binary and source versions of the 32 bit libraries since
it's solely for 64 bit arches, however to build those binaries requires
use of a 32 bit system.

Similarly, we can ship a wine-gecko source package which includes
binary and source, with the readme detailing how to actually build the
binary from the source (ie, use Windows).  Meanwhile the source package
builds by just copying the binary into the right place (much like how
ia32-libs builds).

Thanks,
Scott Ritchie




Re: Including Mono within a Wine package - should Wine expect this?

2008-04-10 Thread Dan Kegel
On Thu, Apr 10, 2008 at 7:40 PM, Scott Ritchie [EMAIL PROTECTED] wrote:
   Wine-mono on the other hand is probably premature.
   How many apps are helped at the moment by
 winetricks mono12
   ?  I don't think it's a large number.

  Honestly I don't know.  Is this due to inadequacies in the current mono,
  or inadequacies in Wine?

Mono doesn't even try to handle mixed-mode assemblies (i.e. ones
that contain some native code).  And by gum, every .net app built
by Microsoft tools seems to include some native code for some odd
reason.  Go figure!

  Either way, Mono 2.0 will finally come out around the same time as Wine
  1.0 (quarter 2 of 2008), and I suspect the number of applications Mono
  helps will greatly improve by then.

Maybe, but only apps that have been properly cleaned of native code.
- Dan