Why do we bother with DllCanUnloadNow?

2008-11-24 Thread Mike Hearn
Is there a specific reason for implementing this function anymore? The
resource savings don't seem worth the new potential for bugs. If all
of them were simply returning FALSE then what would be the loss?

thanks -mike




Re: WineConf this weekend

2007-10-02 Thread Mike Hearn
I'll ask Lucy about videos tomorrow. I don't know how long we can
record using the Google equipment but we make videos pretty regularly,
so an unedited video stream might be plausible.

Otherwise if somebody has a camera they want to bring along, feel free
... don't trust me to get video-recording sorted at this stage :/

On 10/2/07, James Hawkins <[EMAIL PROTECTED]> wrote:
> On 10/2/07, Mike Hearn <[EMAIL PROTECTED]> wrote:
> > Hello,
> >
> > If you're on the wineconf mailing list, you already received all the
> > details for this weekend. If you weren't planning on coming, but are
> > near Zurich and want to tag along anyway, feel free! We'll be on the
> > 5th floor of Freigutstrasse 12:
> >
> > http://maps.google.com/maps?q=freigutstrasse+12,zurich
> >
> > Hope you see you all there!
> >
>
> Hi,
>
> Speaking on behalf of those that can't make it to WineConf this year,
> will someone be taking notes or A/V?  It's bad enough that we can't
> join everyone at the pubs, but it's even worse that we miss the
> information exchanged during the discussions.
>
> Thanks,
> James Hawkins
>




WineConf this weekend

2007-10-02 Thread Mike Hearn
Hello,

If you're on the wineconf mailing list, you already received all the
details for this weekend. If you weren't planning on coming, but are
near Zurich and want to tag along anyway, feel free! We'll be on the
5th floor of Freigutstrasse 12:

http://maps.google.com/maps?q=freigutstrasse+12,zurich

Hope you see you all there!

thanks -mike




Announcing WineConf 2007

2007-06-29 Thread Mike Hearn

Yes, it's true! The moment you've all been waiting for!

On 6th/7th October, once more Wine hackers from around the world will
meet to eat, drink, make merry, and discuss the finer details of
reimplementing the Windows API. This year it's Googles turn to host
it, and it'll be at the engineering office in Zurich.

You too can chill out with these awesome froods by signing up for the
wineconf mailing list, and surfing over to:

http://wiki.winehq.org/WineConf2007

... which is currently a bit sparse but will populate nearer the time.

Fascinating talks! Interesting people! Hackfests galore ... and maybe
even fondue!

6th/7th October. Be there or be square.




Re: Wine and menu integration

2007-02-15 Thread Mike Hearn

Hi David,

Sounds great! To submit those files, you need to make a patch ... git
can do this but I don't remember the exact command to use (depends on
your setup also). Or you can do it the old fashioned way using diff
directly. Feel free to ask if you'd like more guidance with this.

Once you have a patch, email it to [EMAIL PROTECTED] so
Alexandre and the others can review it, suggest improvements etc. Good
luck!

On 2/15/07, David Saez Padros <[EMAIL PROTECTED]> wrote:

Hi !!

I saw your post at http://wiki.winehq.org/GnomeMenusIntegration
and i made some freedesktop compliant files which:

- add a global Wine menu item in the Aplications menu (seen
   by all users) with WineFile and WineMine, which also merge
   all user specific wine installed programs.

- add a global menu item for winecfg in System -> Preferences
   (seen by all users)

I also have what should be add to installation so .exe files
are executed with wine when double-clicked (tested in ubuntu)

How could i submit those files ?? I cannot din anything
related to this in the bugzilla :(

--
Best regards ...

I am Homer of Borg. Prepare to be assim... , donuts.


David Saez Padroshttp://www.ols.es
On-Line Services 2000 S.L.   e-mail  [EMAIL PROTECTED]
Pintor Vayreda 1 telf+34 902 50 29 75
08184 Palau-Solita i Plegamans   movil   +34 670 35 27 53









Re: Update RelayExclude and add RelayFromExclude filter in order to avoid not useful APIs in the traces

2006-10-23 Thread Mike Hearn
On Thu, 19 Oct 2006 06:28:28 -0600, Vitaliy Margolen wrote:
> Please don't. Kernel32 is the source of all core functionality. As well
> as winex11drv, user32 and gdi32. No this will generate more broken bug
> reports.

Kernel mainly calls into ntdll these days so you see a lot of wrapper API
calls that don't add much useful info.





Re: use wine as screensaver for x

2006-10-23 Thread Mike Hearn
Yep, I've done this before but it was an evil, awful hack and I don't have
the patch anymore (probably just as well) :)

The way I did it was just to redirect the first created window, but again,
it was hacky. Hopefully you can find a better way.



On Thu, 19 Oct 2006 00:04:39 +0200, Detlef Riekenberg wrote:

> Hi.
> 
> While waiting for the commit of my localspl-Patches, 
> i want to picked up an fun project:
> 
> Has anyone an Idea, how to modify "user32.dll" and
> "winex11.drv" to open a Window, when I already have the
> X11 Window-ID (example: XSCREENSAVER_WINDOW=0x280020)? 
> 
> My Idea is to include the wrapper code in explorer.exe
> and use similar code as already present for "/desktop".
> 
> The Window width and height is not known on startup
> and does not match a well-known Desktop Size.
> I think, I need to add an Export to winex11.drv to fetch
> the size and reuse "X11DRV_create_desktop()" or add an Export
> to someting similar as "X11DRV_create_desktop()".
> 
> 
> The client registers a Window Class with a known name
> ("WindowsScreenSaverClass") and then CreateWindowEx must be 
> redirected to the already created X11-Window.
> 
> A lightwight solution might be to implement minimal features
> from "scrsave.lib" (RegisterClass) in "explorer.exe"
> and then call "ScreenSaverProc" directly.
> 
> 
> Any Ideas?






Re: Execution Trace of Application in Wine

2006-10-23 Thread Mike Hearn
On Mon, 23 Oct 2006 11:59:57 -0400, Sujata Doshi wrote:
> I know I could manually single step via winedbg but I would like to
> automate this process.

WineDbg just uses the debugger APIs like any other app. So you could write
your own program that uses the debugger APIs to do this.

thanks -mike





Re: Run-time error 445

2006-10-23 Thread Mike Hearn
I usually do a +msgbox,+ole,+olerelay trace to get a basic idea of what's
going on here, moving up to +relay if necessary. If it's Visual Basic
stuff most likely you can see what's going on by monitoring OLE Automation.

Good luck!

-mike





Re: Should I give up?

2006-09-06 Thread Mike Hearn
On Wed, 06 Sep 2006 04:25:02 -0700, Damjan Jovanovic wrote:
> I've submitted a test and patch to wine-patches 7
> times now, and received very little feedback, which
> I've always followed.

It may be just that Alexandre is a bit overloaded ... have you tried
chasing him in IRC about it? Vitaliys feedback seems sound but if
Alexandre really objected to those issues he'd probably have let you know.
I suspect it is somehow slipping through the cracks (maybe a spam filter).

Please don't give up! We've all been in this situation, it is not much fun
I know ...

thanks -mike






Re: RFC: XEmbed Systray Patches

2006-08-15 Thread Mike Hearn

On 8/15/06, James Liggett <[EMAIL PROTECTED]> wrote:

Just FYI--I figured out what was wrong with my X test app. I just needed
to set some size hints on the window, and now the size is perfect when
the window docks. Now I've got my test app, a GNOME program, and some
wine apps all peacefully coexisting on my tray, and they all dock
perfectly. Guess there wasn't a bug in GNOME after all... ;)


Great work! Now let's hope Alexandre accepts it.




Re: RFC: XEmbed Systray Patches

2006-08-09 Thread Mike Hearn

On 8/9/06, James Liggett <[EMAIL PROTECTED]> wrote:

way to handle it. What we need to do is get the extended style of the
window, but this seems to involve a bunch of wineserver calls that I'm
not familiar with. Can you help me out on that? Thanks!


You can always stick some needed field in the X11DRV private data (you
can see how to access that in the code itself).


I'm not quite sure about that one--I've got an X test app that docks,
but I can only get 1 pixel wide. :( On wine, this isn't a problem
though. Still trying to figure out what I need to do.


Oh dear :( Maybe you should ping one of the GNOME guys?

thanks -mike




Re: RFC: XEmbed Systray Patches

2006-08-09 Thread Mike Hearn

On 8/9/06, James Liggett <[EMAIL PROTECTED]> wrote:

Actually, I don't think it has to do with synchronization--I think it
has to do with window mapping.


Ah awesome, good work! I know when I looked at this originally it
seemed you could set a flag that told the embedder whether it was
already mapped or not,  maybe that doesn't work properly. There was
also a problem where a window would dock but only be allocated 1
pixel, I think that was a bug in GNOME that is now fixed. Hopefully we
can nail this all finally.

thanks -mike




Re: RFC: XEmbed Systray Patches

2006-08-08 Thread Mike Hearn

On 8/7/06, James Liggett <[EMAIL PROTECTED]> wrote:

Turns out you're right, Mike. If I add a small (2 ms) sleep after the
dock event is sent, things work perfectly. :) But, this really strikes
me as a hack that doesn't stand a chance of getting into Wine. Is there
a better way to slow down the execution of this code.


It's not that we need to slow it down - slowing something down is
never an acceptable solution to a race. We are missing some kind of
synchronisation somewhere, or perhaps we are doing something funny to
the window immediately after we try and dock it, which causes it to
undock. You need to trace exactly what happens to that window after
it's docked.

thanks -mike




Re: RFC: XEmbed Systray Patches

2006-08-07 Thread Mike Hearn
On Sun, 06 Aug 2006 20:10:19 -0700, James Liggett wrote:
> so I suspect that this has something to do with stack problem

More likely it's a speed issue - logging slows the code down a lot which
could "fix" a race condition. X is sort of susceptible to this kind of
thing it seems.






Re: Time to commit remote ops for VirtualAllocEx, CreateRemoteThread

2006-08-07 Thread Mike Hearn
On Sat, 05 Aug 2006 10:32:15 +0200, Alexandre Julliard wrote:
> Still, doing that stuff in APCs is a step in the right direction, you
> just need to make sure you can safely run these APCs from the SIGUSR1
> handler.

How is the thread to interrupt to be selected? I really am not seeing
what's wrong with a service thread here, it seems the safest and simplest
way forward. We can easily put it into stealth mode by disabling the
attach/detach notifications.

thanks -mike





Re: ntdll: CreateRemoteThread and friends for remote processes, take 3, via APCs

2006-08-03 Thread Mike Hearn
On Thu, 03 Aug 2006 02:08:26 -0500, Thomas Kho wrote:
> APCs are queued per-thread, so I made minimal changes to add a per-process
> APC queue. Of course, this implementation suffers from the limitation that the
> remote process must go into an interuptible wait for the operation to succeed;
> an operation targeting a suspended process would block.

I'll let Alexandre do the review this time. Just one thing - can you try
it with something copy protected? I think some programs rely on being able
to CreateRemoteThread into a program that runs all the time and never
sleeps (eg games that try and get the highest FPS possible).

thanks -mike





Re: ntdll: CreateRemoteThread and RtlCreateUserThread for remote processes, take 2

2006-08-02 Thread Mike Hearn

On 8/3/06, Dan Kegel <[EMAIL PROTECTED]> wrote:

The goal is to get rid of the service thread; the service thread was
just there as a placeholder.  Once it's gone, signals are appropriate.
The realtime signal is just there as a placeholder until we figure out
how to squeze this down into SIGUSR1 and SIGUSR2.


Hm so you'll have to co-ordinate switching the signal mask between
threads as they start up and shut down? I'm not sure that can be done
atomically.

thanks -mike




Re: ntdll: CreateRemoteThread and RtlCreateUserThread for remote processes, take 2

2006-08-02 Thread Mike Hearn
On Tue, 01 Aug 2006 20:41:54 -0500, Thomas Kho wrote:
> This is an implementation of CreateRemoteThread and RtlCreateUserThread for
> remote processes that re-introduces a service thread for each process and uses
> a signal to flag pending operations. Operations are guarded by a global mutex
> for each process.

Hey, great, this is a big improvement on last time.

Still I have a few questions about the approach:

 - The service thread seems like a good idea to me. But why use a signal
   in this case, when there are simpler ways to achieve the same thing,
   for instance with a named pipe?

 - I'm not sure using the realtime signals will work. I don't remember
   the details, Alexandre is the signals guru, but I remember them being
   "awkward"

 - There is a lot of stuff to handle the global mutex. Why is this
   necessary? I'm afraid I really don't see where the lock is needed
   here; if you were using a pipe then the service thread would
   serialize the requests in its main loop

 - Writing to a remote process by taking the address of a variable
   in the current one?! What if the DLLs are located at different
   base addresses? I know this is unlikely to happen in Windows but
   on Linux we have ASLR and they introduced this for Vista as well.
   Assuming a pointer that is valid in one process is also valid in
   another is not a good idea, in general.

And there are a few small style nits, for instance there's usually
no reason to change "void *foo" to "void *foo = NULL", you want it
to remain uninitialized because that way the compiler will warn if
it's ever used before being set to something: superior to blindly
using a NULL ptr with no warning I'm sure you'll agree.

Also watch the code style - internally Wine tends to use unix_style
not hungarian notation, which is usually confined to the API definition
itself.

Anyway, assuming Alexandre concurs with what I've said, here's where you
want to go next:

 * Drop the signal, and use a named pipe instead
 * This should let you drop the global mutex and WriteProcessMemory calls,
   I think?

thanks -mike





Re: Audio stuttering issue

2006-07-29 Thread Mike Hearn
On Thu, 27 Jul 2006 15:05:12 -0700, Chris wrote:
> It does. You don't really have to change anything. 

I thought the user would have to change the limit in their startup scripts
or the like? That isn't going to work, we need it to be fully automatic
with no configuration changes needed.

> RLIMIT_RTPRIO value for the user. I just think it'd be nice to let users of 
> that patch know they don't need to run Wine with root privs if they don't 
> want.

Sure, we should add it to the wiki page or something ...

> I personally don't see what's wrong with letting the user decide.
> Without setting the suid root bit, Wine won't get any more privileges
> than any other Linux app run by the same user would get. 

Well, using the suid-root bit seems more secure than this ... the limit
allows any application to gain realtime privs easily whereas having wine
acquire CAP_SYS_NICE means only Windows apps can get it (or rather it's
very hard for other apps to use Wine to get it).

thanks -mike





Re: Audio stuttering issue

2006-07-27 Thread Mike Hearn
On Thu, 27 Jul 2006 02:18:49 -0700, Chris wrote:
> Or if you still don't want something like that merged in, I'd like to alert 
> the author of that patch that it doesn't require root privs to work. It just 
> needs a non-0 value for RLIMIT_RTPRIO (ulimit -r).

Thanks for the heads up. I'll let Alexandre comment on the other stuff but
I wanted the patch to work out of the box for all users, with no
configuration necessary.

I don't see any way to resolve this issue satisfactorily. Windows apps
require hard real time support, the kernel won't give it to us without
privileged access, Alexandre doesn't want to let Windows apps do that. So
it seems we lose (unless somebody conjures something that works just as
well as that patch does, which so far hasn't happened).

thanks -mike 





Re: ntdll: enable CreateRemoteThread and RtlCreateUserThread for remote processes

2006-07-16 Thread Mike Hearn

On 7/16/06, Alexandre Julliard <[EMAIL PROTECTED]> wrote:

Cloning a new thread is not going to help with this at all, since it still uses 
the
Win32 context of the original thread, so it only makes things worse.


What then is the solution? A service thread? I think it'd be OK to
have the hijacked thread be holding a lock, as CreateThread doesn't
seem to wait on the newly created thread anywhere.

thanks -mike




Re: ntdll: enable CreateRemoteThread and RtlCreateUserThread for remote processes

2006-07-16 Thread Mike Hearn

On 7/16/06, Dan Kegel <[EMAIL PROTECTED]> wrote:

I'd rather not take the chance of doing anything that messes with the
poor thread we're hijacking.Hmm... http://lwn.net/Articles/7577/ makes
me think that converting a linux thread to a win32 thread might
require initializing the thread's TLS area.  We'll look at that a bit.


Basically everything along the Wine CreateThread codepath  setting
up a server connection, registering it with the server, initializing
the TEB, signal setup, synchronizing the Wine VM list with the Linux
VM list, allocating a guard page, doing thread attach notifications
and finally calling the entrypoint inside a SEH backstop handler.

Quite a lot of work, really, so I think it's easier to create the
thread from another Wine thread somehow.

thanks -mike




ntdll: enable CreateRemoteThread and RtlCreateUserThread for remote processes

2006-07-16 Thread Mike Hearn

[forgot to hit "reply to all" instead of just reply ...]

On 7/15/06, Dan Kegel <[EMAIL PROTECTED]> wrote:

The right thing to do would be to promote the linux thread to
be a win32 thread, but as a temporary stopgap, Thomas
had the linux thread just do CreateThread and exit, hoping
that the newly create Windows thread was healthy.


Well, I think calling CreateThread directly from the context of the
hijacked thread would be simpler, though I understand that gets hairy
as well if the hijacked thread is holding (say) the loader lock


Maybe we should look more carefully about what it takes to
build a normal, healthy win32 thread from a posix thread.


This has been looked at in the past for sure, but I'm not sure if it's
documented anywhere.


Well, kind of.  Signals are only delivered when syscalls return, so
they won't work well if the thread you pick to molest happens to
not make any syscalls for a long time.


Hm, really? I haven't come across this before ... how then is it
possible to debug a program that is sitting in while(1); if SIGSTOP
cannot be delivered? Also we already use SIGUSR1 to suspend a thread
and that has to work at any point, so maybe it might need to be
changed.



> You don't preserve the register state.

Really?  What's
   ptrace(PTRACE_GETREGS, pid, NULL, regs)
then, chopped liver? :-)


Oops, my mistake! Sorry Thomas, I didn't see that. If you switch EIP
to a register function though you get all this for free ...


Well, if Alexandre thinks that's the way to go, that'd be fine.
I thought those only fired when the thread in question performed
an alertable wait condition (so says
http://msdn.microsoft.com/library/en-us/dllproc/base/queueuserapc.asp )
so it didn't seem like an obvious way to go.


Right but if the thread is suspended then it's waiting, and we could
maybe hack it to do an alertable wait. Though doing an alertable wait
during a suspend is surely the wrong thing to do in most cases,
presumably the server could easily queue an APC itself but not allow
other clients to do the same.

thanks -mike




Re: ntdll: enable CreateRemoteThread and RtlCreateUserThread for remote processes

2006-07-15 Thread Mike Hearn
Heya,

First of all 'mad propz' to you for tackling this. I have no strong
opinion on whether this approach of hijacking a thread is better than
having a service thread, that's Alexandres call. But a few comments on the
way you've done things here:

I don't think there's any reason to use Linux specific syscalls
to do this. IMHO it can probably be done using only Wine provided APIs and
infrastructure.

I am not how this works. You create a new "raw" kernel thread
using clone, then run NT code using it. But that isn't valid and may not
work - only threads created by Wine may use Win32.

You are using ptrace instead of signals. That seems over complex -
signals are designed to interrupt a thread and have the necessary support
to restart syscalls, preserve registers etc. I know both SIGUSRs are taken
but SIGUSR2 is currently used for the DOSVM which Alexandre wants to
change. You could disable it for your tests, and anyway if it comes to the
crunch SIGUSR2 can always be multiplexed.

You don't preserve the register state. This is something you get for free
with signals, but you'd need to use a register function if you want to do
it outside a signal handler.

There seems to be a race condition - if the main thread is in the
middle of shutting down you might be able to hijack it just as it's about
to exit(), at which point the newly created sacrificial
thread will also be torn down, leaving CreateRemoteThread hung. It could
also cause the newly created thread to try and communicate with the
wineserver after it's been disconnected.

A service thread seems like a cleaner solution in general but if I were
you I'd take this further by using SIGUSR2 to do the remote thread
creation. Alternatively, you might be able to suspend the remote thread
and queue an APC to it.

thanks -mike

On Fri, 14 Jul 2006 19:59:51 -0700, Thomas Kho wrote:
> ntdll: enable CreateRemoteThread and RtlCreateUserThread for remote processes
> 
> Greetings,







Re: git annoyances: git fetch does nothing; git pull works?

2006-07-13 Thread Mike Hearn
On Thu, 13 Jul 2006 08:06:56 -0500, Jeremy White wrote:
> But I have to confess that git makes my head hurt.
> That just could be because this old dog can't learn this
> trick.

Doubtful, it's always made my head hurt too and I was playing with arch,
svk and similar tools years ago :) I think it's just not got a very well
designed user interface (though gitweb is pretty good). SVK may not have
been strictly as powerful but it managed to get by with about 13-14 pretty
obvious commands, and using it was mostly like using CVS in the common
case.

Oh well ...







Re: Debugging _CheckNotSysLevel() errors?

2006-07-07 Thread Mike Hearn
On Fri, 07 Jul 2006 00:24:49 -0700, Dan Kegel wrote:
> http://bugs.winehq.org/show_bug.cgi?id=4063 is a crash
> on exit from a VB6 app due to a _CheckNotSysLevel() error.
> What typically causes these - are they a bug in the windows
> program?  And is there a good reference from understanding
> the whole syslevel thing in gdi?
> Thanks!

The developers guide talks about this, because I once asked exactly the
same questions :)

Syslevels are an internal mutex that understands ordering constraints, if
a syslevel violation occurs it's always a bug in Wine and a backtrace can
be useful to see how Wine got into the invalid state.

thanks -mike





Re: wine packages for Fedora Extras

2006-07-07 Thread Mike Hearn
That's great, thanks!





Re: wine's fullscreen code has no effect on metacity

2006-07-04 Thread Mike Hearn
On Sun, 02 Jul 2006 13:09:59 -0400, Vincent Povirk wrote:
> So, uh, metacity people, under what circumstances would metacity be
> likely to put a window that had sent the proper _NET_WM_STATE_ADD
> message for _NET_WM_STATE_FULLSCREEN behind panels?

Run metacity from the command line so you can see what it prints; metacity
helpfully outputs warnings when applications violate the specs or do
something weird. Maybe we can find out what's going on there.

thanks -mike





Re: Wine, Darwine, CodeWeavers-- Intel MacOS X

2006-06-27 Thread Mike Hearn

On 6/27/06, Steven Edwards <[EMAIL PROTECTED]> wrote:

I don't think they are wrong about feeling that the site just seems to
totally ignore OS X. I guess the FreeBSD and Solaris guys feel the
same way reading over recent discussions. Alexandre does not treat
patches from anyone as a second class citizen but the site does seem
to be very Linux centric rather than platform agnostic. Like read the
Myths page. Its all about Linux. I am happy to rewrite some bits of
the site to make it broader in scope.


That's true, but then what the myths page says could really apply to
any "alt" operating system. But writing
"Linux/FreeBSD/OpenSolaris/MacOS/BeOS" every time is unwieldy,
especially as most of our users are on Linux anyway. I guess you could
rephrase it all in terms of non-Windows systems.




Re: Wine developers?

2006-06-27 Thread Mike Hearn
On Mon, 26 Jun 2006 08:27:10 +1000, Troy Rollo wrote:
> On Friday 23 June 2006 22:50, Mike Hearn wrote:
>> A very specific legal interpretation that would require the
>> company behind Thinstall to want to hurt the Wine project  be careful,
>> none of us are lawyers here.
> 
> That's not entirely true.

We have IP lawyers on wine-devel? Can you say who?

thanks -mike





Re: Wine, Darwine, CodeWeavers-- Intel MacOS X

2006-06-27 Thread Mike Hearn
On Mon, 26 Jun 2006 04:08:30 -0400, William Knop wrote:
> Oh... Sorry about that. I suppose I did come off a bit critical.

I think your email was OK, but wine-devel gets a constant stream of Mac
users/developers telling us how many Mac users want Wine, how they would
be a big benefit to the project, how Apple-land is a land of milk and
honey etc ... whereas not many people here are actually Mac users. Telling
people that's it's super important won't actually speed anything up.

Not aimed specifically at you, this is just a general trend that's been on
the increase lately. You know what they say about wishes and horses ...

thanks -mike





Re: SecuRom investigation

2006-06-25 Thread Mike Hearn
On Sun, 25 Jun 2006 02:34:24 +0100, Martin Owen wrote:
> which if we could get our hands on the source code would at least give
> us more information about how this security works and may even allow us
> to work around it perminently with in wine.

The goal is not to work around it, the goal is to make it work! That is,
it should not be any easier to copy games by using Wine.

As for getting the SR code itself, no can do. We just need to solve this
one the hard way and that means just bashing away at the bugs one at a
time. All copy protection uses kernel drivers these days so the NTOSKRNL
work is required first.





Re: Patch: winex11drv create_cursor Loading 32bit rgba cursor image

2006-06-25 Thread Mike Hearn
Heya Pauli,

A review is enclosed. To submit a patch please send it to
the wine-patches list, where it'll enter Alexandres queue for review.

Firstly I'm kind of surprised this doesn't require the XCursor extension.
Handling the case of a solid alpha channel by converting it to a mask is
fine but you should note with a FIXME cases where it doesn't work properly.

> @@ -422,16 +422,18 @@ static Cursor create_cursor( Display *di
>  }
>  else
>  {
> -int rbits, gbits, bbits, red, green, blue;
> +int rbits, gbits, bbits,abits, red, green, blue, alpha;

abits doesn't seem to be used anywhere (apart from the assignment in the
32bit case).

> +alpha = 255;   // This is vissible?

Yes, 255 is visible/max opacity (note spelling). Use C /* */ style
comments, we require this.

> +if (ptr->bBitsPerPixel == 32)
> +{
> +theChar = theImage[byteIndex++];
> +alpha = theChar;
> +}
>  break;

I'm not sure even why "theChar" exists, apart from in one usage it seems
to be worthless. You could just directly assign it here (with the right
cast). Really this whole function could use a bit of spring cleaning.

> +
> +//bg or fg?
> +// If there is alpha for fg color then we should 
> calculate avarange
> +// alpha and use that to create transperancy for cursor 
> (at least my gnome 
> +// has transperancy with xorg 7)

I'm afraid it's really not clear what you're doing here. Standard X
cursors cannot have an alpha channel, support for this was added with the
XRender/XCursor extensions which you don't seem to be using. 

Here you seem to have decided that any value larger than 8 for the alpha
channel is solid and anything less is transparent. This makes no sense. A
much simpler way is to just compare against zero and 255, like this:

  if (alpha == 0)
  {
   /* Transparent (note spelling) */
   pAndBits[xorIndex] |= bitShifted;
  }
  else if (alpha < 255)
  {
   static BOOL warned = FALSE;
   
   if (!warned)
   {
   FIXME("non-simple alpha channels are currently unsupported, expect 
visual glitches!\n");
   warned = TRUE;
   }

   /* assume we should display partly transparent pixels anyway */
  }

not this ...

> +if (alpha < threshold>>3)
> +{
> +// Transperant 
> +pAndBits[xorIndex] |= bitShifted; 
> +} 

The other thing that confuses me about this code is that on 
first inspection it appears to be backwards. Surely if the
pixel needs to be transparent then that bit of pAndBits 
should be zero, which is what it's initialized to, and it 
should be set if the pixel is opaque?

I expect I'm confused, after all you tested this. But I'd like
somebody to explain it 


> +// What is going on? 
> +/* TRACE("Cursor file pixel,

No dead code please. If you found this helpful that's great but don't submit 
code that is commented out.

> +if (!pixmapBits
> +&& !pixmapMask)
>  {
>  XFreePixmap( display, pixmapAll );
>  XFreeGC( display, gc );

This isn't strictly correct, as only the last could have failed.
Something like

if (!pixmapBits || !pixmapMask)
{ 
if (pixmapBits) XFreePixmap( display, pixmapAll );
etc  ...
}

would be better.

> @@ -556,6 +592,15 @@ static Cursor create_cursor( Display *di
>  /* Put the image */
>  XCopyArea( display, pixmapBits, pixmapAll, gc,
> 0, 0, xmax, ymax, 0, ptr->nHeight );
> +
> +if (ptr->bBitsPerPixel == 32) +{ +
>   // Keep original transperancy if not rgba cursor +
>   XCopyArea( display, pixmapMask, pixmapAll, gc, +
>  0, 0, xmax, ymax, 0, 0); +}
> +

The comment here is a bit backwards, it implies it's on a 
non-alpha codepath when the reverse is true. It'd be better 
as 

 /* Apply the alpha channel */

or something like that.

Final note - you are using a separate mask when we already have one 
in this code. Why not merge your new mask with the existing one?

thanks -mike





Re: An RPM of wine with safedisc support

2006-06-25 Thread Mike Hearn
On Sat, 24 Jun 2006 15:22:42 +0100, ivanleo wrote:
> Safedisc 2 and above are not supported. 

Is the reason why not on the Wiki? Would be cool to get it there if not.

> To run a safedisc protected game, you must run winecfg and
> set the drive type of your cdrom drive to "cdrom" in the drives tab.
> Yes, this sounds dumb, but it has to be done.

It sounds dumb because it is dumb, it implies a big failure in our auto
detection code. I think the drive autodetect code I wrote was never
enabled was it, as we now use HAL anyway, but it seems we really need to
fix this bug ...

thanks -mike





Re: Ole-BSTR-Concat broken?

2006-06-25 Thread Mike Hearn
On Sat, 24 Jun 2006 11:47:51 +0200, Olaf Schmidt wrote:
> Do you handle the OLE-BSTR-stuff directly in wine, or do you
> give that jobs to other Libs in the system (the 0.9.12er winelib-
> update has also changed some dependencies (Gtk, libc* and 
> others)?

BSTR (Basic String) is a Microsoft specific construct, it has no
equivalent on other platforms, so it's handled internally.

thanks -mike





Re: indented relay traces

2006-06-25 Thread Mike Hearn
On Sat, 24 Jun 2006 02:15:09 -0700, James Hawkins wrote:
> Ah, didn't know about that tool.  You learn something new every day.

Perhaps it should be mentioned in the developer quickstart.

thanks -mike





Re: Autocad 2004 STATUS_INVALID_LDT_OFFSET

2006-06-23 Thread Mike Hearn
On Fri, 23 Jun 2006 14:13:18 +0200, Jaap Stolk wrote:
> 200145:Backtrace:

Hmm seems like you are seeing a mixed debugger/app trace there ... gotta
be careful of that!





Re: Move all common Dll[un]RegisterServer stuff to advapi

2006-06-23 Thread Mike Hearn
On Thu, 22 Jun 2006 15:58:58 -0700, James Hawkins wrote:
> The imports for current dlls concerning advapi32 are fine; no need to
> change to delay import.  I understand where you're going with moving
> factoring out registration, it's just that advapi32 is not the place.
> I'm not sure where else you could put this.  I would ask Alexandre
> whether he wants it done at all, and if so, where the new code should
> be located.

I believe this was discussed when the registration code was first added,
and Alexandre preferred this approach to having some utility DLL. I guess
it's a matter of taste. I would have preferred a wineutils.dll or somesuch
but he is the boss :)

thanks -mike





Re: Wine developers?

2006-06-23 Thread Mike Hearn
Hiya Jonathon,

I wouldn't worry too much about the negative reactions there, which is a
shame. As Molle has pointed out he is not really a Wine developer. I am
and I'd say that it's totally fine to post such a job advert here, I'm
sure there are people here who would like to find a good job with their
skills.

I hope you fill the position soon! Good luck!

thanks -mike

On Tue, 20 Jun 2006 13:59:59 -0700, Jonathan Clark wrote:
>   My name is Jonathan Clark, and I work with a team on a project that has
> some similarities with Wine.  The project is called Thinstall
> (http://thinstall.com), and on first glance similarities may not be
> apparent.  





Re: Wine developers?

2006-06-23 Thread Mike Hearn
On Tue, 20 Jun 2006 19:32:11 -0600, Vitaliy Margolen wrote:
> Basically you are _stealing_ developers from the project. Because with your
> closed source project such developer will be prohibited from participating in
> the Wine project.

A very specific legal interpretation that would require the
company behind Thinstall to want to hurt the Wine project  be careful,
none of us are lawyers here.





Re: LoadResource with module=0x00400000 followed by stack overflow

2006-06-23 Thread Mike Hearn
On Tue, 20 Jun 2006 12:49:25 +0200, Jan-Espen Pettersen wrote:
> Can a win32 program expect that it has write access to the memory
> pointed to by the return value of LoadResource with module 0x0040?
> Should LoadResource in some cases copy the memory and return a writeable
> copy of the resource?

The SEH handling code should catch this case and un-protect the resource
section. At least it does for InstallShield ... I'm not sure why it's not
working here.

thanks -mike





Re: gdiplus.dll

2006-06-16 Thread Mike Hearn
On Fri, 16 Jun 2006 11:52:37 -0400, Steven Edwards wrote:
> Like the parent said, some installers don't ship with it, they expect
> the OS to have it. Office 2007 only runs on XP and higher and it
> expects the dll to already be there.

So we find some free application that contains it and install that first :)

thanks -mike





Re: Add support for full screen window state using the NETWM protocol

2006-06-16 Thread Mike Hearn
On Fri, 16 Jun 2006 18:24:34 +0900, Dmitry Timoshkov wrote:
> Hello,
> 
> this patch works for me with Internet Explorer and Diablo II demo.

I think for full IE support we need more; if you start IE, set it to
fullscreen then quit and restart it the window will now be created
unmanaged. Or at least this is how it used to work.

Still this is fine for the usual case of having it temporarily full screen.

It is most instructive to compare this with my own patch. I can see how
you have simplified some of the logic there. So, thankyou for that. 

thanks -mike





Re: gdiplus.dll

2006-06-16 Thread Mike Hearn
On Fri, 16 Jun 2006 03:56:04 -0400, Steven Edwards wrote:
> What do you mean? I looked at this before and even if we are to use
> libgdiplus we need some way to wrap it in a way the Windows app
> expects.

Why? GDI+ is distributed with applications, so we can put off implementing
it for some time yet. Using Monos GDI+ means using the Windows build of
Cairo too; definitely a good idea IMHO as GDI+ is somewhat nontrivial and
the code has already been written.

thanks -mike





Re: Shell integration

2006-06-16 Thread Mike Hearn
On Fri, 16 Jun 2006 08:54:04 -0400, Ulrich Czekalla wrote:
> That's why I like the idea of using COM. All the infrastructure is already
> there. For now we can implement the trash shell object inside shell32 and
> if someone wants to write a OS/X version all they need to do is override a
> registry key. Other shell integration objects can even be implemented
> out-of-proc in the explorer process all this can be cleanly hidden from the
> shell32 code that uses it.

Out of process COM is never cleanly hidden; if nothing else it can cause
unexpected threads to be created and unexpected re-entrancy via the
implicit message loops.

Given that we already have platform specific handling infrastructure in
the form of the configure script, it could be as simple as having a
conditional Makefile that compiles functions with magic names.

thanks -mike





Re: PATCH: sane.ds / DECLSPEC hidden

2006-06-16 Thread Mike Hearn

On 6/16/06, Robert Shearman <[EMAIL PROTECTED]> wrote:

It's a little harder than that. I experimented with doing this before
and it is necessary to apply that same attribute to all of the functions
exported from libwine and libunicode.


We're already forcing all exported symbols in those libraries to be
visible using the linker script though so I don't see why it'd matter
for them?

thanks -mike




Re: PATCH: sane.ds / DECLSPEC hidden

2006-06-16 Thread Mike Hearn

On 6/15/06, Alexandre Julliard <[EMAIL PROTECTED]> wrote:

No, we only want the internal functions to be hidden.


Right, so we set default visibility to hidden then change WINAPI and
WINAPIV to include __attribute__((visibility(default))). That way only
WINAPI declarations are exported.

thanks -mike




Re: PATCH: sane.ds / DECLSPEC hidden

2006-06-15 Thread Mike Hearn
On Thu, 15 Jun 2006 17:28:12 +0200, Alexandre Julliard wrote:
> No, that's only hiding them. It's not a bad thing to do in a second
> step for functions that really need to be global

Can't this be done automatically by winegcc passing
-ffunction-visibility=hidden or somesuch?

thanks -mike





Re: msi: Cast the total memory to an unsigned int to avoid overflow in machines with more than 2Gb of RAM [resend]

2006-06-15 Thread Mike Hearn
On Thu, 15 Jun 2006 11:04:41 +0200, Alexandre Julliard wrote:
> The existing code should work fine, and yours will return 0 for a 4Gb
> box... It sounds like the problem is in GlobalMemoryStatusEx.

IIRC this API has a quirk w.r.t large memory handling. I remember doing
something to this code a few years ago for this reason. The Ex version
simply fixes this bug, iirc, and adds no new features over the
non-extended version.

thanks -mike





Re: Gecko installer

2006-06-15 Thread Mike Hearn

Yes this problem with the lack of child windows is most troublesome.

I wonder if there is another way to solve this though. By using
COMPOSITE to redirect the window heirarcy of the embedded window to a
pixmap we can proxy events and copy the pixmap to simulate window
embedding, without actually doing so.

However it is probably best to ignore this for now, there is nothing
wrong with using a Windows gecko. Especially if it is included in
packages.

On 6/15/06, Jacek Caban <[EMAIL PROTECTED]> wrote:

I think Alexandre can give you the best answer. Yes, the problem is
mostly because of lack of child X windows. The main thing we'd have to
add to XEmbed spec is clipping but probably there will be more problems.
And I have no idea if freedesktop guys will accept what we need as
clipping in XEmbed spec is useless for most apps (probably everyone
except Wine).





Re: Gecko installer

2006-06-15 Thread Mike Hearn

On 6/14/06, Jacek Caban <[EMAIL PROTECTED]> wrote:

See http://www.winehq.org/?issue=285#MSHTML%20Update. I'd really like to
use Linux Gecko, but it's impossible because we'd need XEmbed embedder
support that's impossible to implement in Wine (perhaps if we added what
we need to XEmbed spec?). That's why MSHTML uses Windows Gecko.


OK. What exactly *do* we need from XEmbed? Is this because we can no
longer use child X windows?

thanks -mike




Re: Gecko installer

2006-06-14 Thread Mike Hearn

On 6/14/06, Jacek Caban <[EMAIL PROTECTED]> wrote:

Last week Wine Gecko was mentioned a few times on this mailing list and
I can see that there is no understanding of it. It's not really
surprising as it's a big mess ATM. We can still use Mozilla ActiveX
control (but that needs to be removed) or (xor) directly Gecko.


Directly how? I am still confused, sorry. By "Gecko" do you mean:

-  A win32 copy of Gecko/GRE/XRE installed in  ~/.wine/drive_c?
-  A native Linux copy of Gecko installed as part of, say, the
distributions Firefox?
- Something else?

thanks -mike




Re: wine XShm problem on remote display

2006-06-14 Thread Mike Hearn
On Tue, 13 Jun 2006 16:22:17 +0200, Alexandre Julliard wrote:
> Wine will handle that error properly, but here it sounds like fst (or
> more likely Gtk) has replaced the Wine error handler with its own, so
> Wine doesn't get a chance to handle it.

Yes, that's the GTK+ error handler. Benjamin, this is a bug in FreeST and
you should report it to the developers there. Fixing this is not very
difficult, hopefully it can be resolved soon.

thanks -mike





Re: Broken FC5 packages - stay clear.

2006-06-14 Thread Mike Hearn
On Wed, 14 Jun 2006 12:37:21 +0200, Andreas Bierfert wrote:
> What I can offer would be this: add a meta package wine-suite which will 
> install all wine
> packages and change the summary of wine so it:
> a) points to the wine-* subpackages so everyone knows they exist
> b) tell them that there is the wine-suite meta package

Well, that would be an improvement but people tend to just guess
at what they need to type for programs like yum/apt. It's one of the
problems they have. Does "yum install epiphany" install a web browser or a
card game? You don't know unless you check beforehand (or try it).

I think a meta package called "wine" that installed everything would be
much better because that would do what end users would intuitively expect.
And Wine isn't really a suite. It's a large, monolithic program. If it was
a suite we'd realease separate tarballs upstream.

> and of course as discussed before add a Require for wine-tools to wine.

Yes that would fix this problem for now.

> I do listen to your requests and if you
> take a look around there are not many packagers who actually do this...

I know, and apologise for my harsh tone earlier. I think it's great you
are here on wine-devel and working through the problems with us. 

Hopefully you also understand the source of our frustration - I have
wasted *many* hours debugging problems that turned out to be caused by bad
packaging. This problem occurs all the time and when we eventually get one
problem fixed, some other distro somewhere else gets it wrong again and we
are back to square one. It feels like we never move forward on this issue.

Also I'm afraid the answer of "report bugs to bugzilla.redhat.com"
is not OK because it is not under our control. I'd say the vast
majority of end users don't use distributor bug systems and never have,
not even for Debian which has always had this policy. They post to
wine-users, or IRC, or our bugzilla, or random web forums. And then we get
to pick up the pieces.

Maybe this summer I can work on what I always said I would and do a Wine
autopackage ...

thanks -mike





Re: Broken FC5 packages - stay clear.

2006-06-12 Thread Mike Hearn
There seems to be another issue here ... you removed the rpath code with a
link to two bugs that don't seem to indicate that was causing the problem.

Now I appreciate that given RPMs are not relocatable it makes no
difference to your users but I am concerned that a problem apparently
unconnected to it caused this change. Vendor patches are bad, for Wine
they usually either mask upstream bugs or cause them.

Specifically the libGL problem is a bug in that users setup (maybe in
Fedora), and I don't think it's in Wine. I don't see where the
/usr/lib/nvidia search path is coming from - if it's LD_LIBRARY_PATH then
we should be using DT_RUNPATH in Wine and not DT_RPATH so we should fix
it. If it's in the linker config then you are relying on a very particular
combination of factors which may be true for some binaries shipped with
Fedora but are not guaranteed by the ELF or Linux ABIs - you can't have a
/usr/lib/libGL.so.1 and always expect it to lose to
/usr/lib/nvidia/libGL.so.1!

thanks -mike





Re: Broken FC5 packages - stay clear.

2006-06-12 Thread Mike Hearn
On Mon, 12 Jun 2006 00:03:23 +0200, Andreas Bierfert wrote:
> Well from a wine perspective I see that this makes sense, but if you take a 
> look
> at all the dependencies it is another story...

This is a problem with RPM and not with Wine. If RPM/yum had the concept
of optional dependencies like some other systems do then this would really
not be an issue. A better way to handle this would be to fix RPM, or
simply to not mark them as dependencies at all yet still build the
package with those features enabled. If the supporting libraries are
missing the features will be disabled at runtime usually with a message on
stderr.

The problem here is exactly the same as with Debian. This approach is
just broken and should not be used. What if the user does not know about
wine-tools and does not install it? They will be missing:

 * winecmd
 * notepad
 * winedbg
 * winepath
 * winhelp
 * _EXPLORER_

These may appear to to be optional but they are not.

Explorer is needed for shell integration, HAL support and system tray
support. It is not an end user tool, it's a part of the Wine
infrastructure.

Winedbg is needed to produce useful crash data for developers. Notepad and
winecmd are sometimes used by installers which will *fail silently* if
they are missing. Winepath is used by various third party scripts. Winhelp
is used by apps for online help, obviously.

Gah. This is just frustrating. The same mistakes are made over and over
and over again. And we are the ones who get to pick up the bugs. What was
wrong with the way Vincent did it?

-m





Re: Gnome and KDE wine configuration tools

2006-06-12 Thread Mike Hearn
Hmm, Wine Doors looks pretty cool. At least, it seems to have a nice UI.

Though I question how much preset "profiles" can achieve these days ...
we're getting closer to not needing them all the time. Maybe if the
profiles can do things like install native MSI/DCOM/MDAC/InternetExplorer
etc it might prove handy for end users.





Re: WM_GETICON patch

2006-06-12 Thread Mike Hearn
On Sun, 11 Jun 2006 20:26:11 -0700, Chris wrote:
> Aren't icons already created on the global heap? They're created with 
> GlobalAlloc16, and (optionally) added to a link list of shared icons. 

No, this is a confusing Win32ism. The "global heap" is not actually
global, it's process-local. There *is* a shared heap in Windows 9x but not
in NT. 

GDI objects are stored in the kernel in Windows, and so are "shared" via
that mechanism. We do the same thing by moving things into the wineserver
and transporting them via RPC.

Actually images are stored as pixmaps in the X server, so it'd be awfully
convenient if we could leverage that but I suspect the need to support
non-X display systems means we have to do it the hard way, by shovelling
image bits across the socket.

thanks -mike





Re: WM_GETICON patch

2006-06-11 Thread Mike Hearn
On Sat, 10 Jun 2006 16:35:45 -0700, Chris wrote:
> Originally GeoShell would show no icon on the taskbar and print 
> a lot of fixme messages about it being unsupported. With this patch it now 
> (always) shows the Wine glass icon for programs, with no such fixme messages. 

Well I guess this is a slight improvement but obviously WM_GETICON
requires inter-process bitmaps to be supported in some fashion, which is a
fair bit of work. Maybe for efficiency reasons even requiring the dreaded
remote thread creation/service thread :)

thanks -mike





Re: Icmp* functions in iphlpapi.dll

2006-06-11 Thread Mike Hearn
On Sat, 10 Jun 2006 21:37:01 -0500, Carl Fongheiser wrote:
> Bad, bad idea.  In Windows programming, you *never* call LoadLibrary from
> DllMain.  Inside of DllMain, you can't call anything which uses the loader
> lock, because the loader lock is already taken out.  As best as I read the
> Wine code, it has the same limitation.

Loader lock is a recursive critical section so it's OK to do that from the
same thread and actually, the Wine loader code is written to allow that to
work.

That said it's quite dangerous to do much of anything inside a DllMain
because so much stuff in Win32 relies on multiple threads or inter-thread
messaging behind your back.

thanks -mike





Re: Broken FC5 packages - stay clear.

2006-06-11 Thread Mike Hearn
On Sun, 11 Jun 2006 11:09:10 +0200, Andreas Bierfert wrote:
> Yes it is (ok more like 11 but ok). For me it works for the programs it should
> work on...

We had this problem with Debian, where people didn't install the "utils"
package and apps broke mysteriously. Unless you have a lot of experience
of Wine debugging you cannot detect this easily ... please, there's no
reason to split this stuff up as Wine will load everything in a failsafe
fashion so there is no need to mark the package as depending on a million
things.

Out of interest what are the 11 packages?

thanks -mike





Re: My new hero...

2006-06-11 Thread Mike Hearn
On Tue, 06 Jun 2006 22:43:27 -0700, Dan Kegel wrote:
> Mike, what was that you were saying about
> there not being any wine hackers who fixed
> problems all around the wine tree anymore?

I consider myself joyfully corrected! :) Go Qingdao!





Re: wined3d: Another GLSL shader status update

2006-06-11 Thread Mike Hearn
On Tue, 06 Jun 2006 13:55:15 -0400, Jason Green wrote:
> FYI - I just added a bunch to this page to get us started:
> 
> http://wiki.winehq.org/DirectX-Shaders

That's awesome, exactly the sort of thing I was looking for. This sort of
high level overview is very useful for new hackers! :)

thanks -mike





Re: msi: Fix some copy/paste bugs in the implementationof condition operators.

2006-06-06 Thread Mike Hearn

On 6/6/06, EA Durbin <[EMAIL PROTECTED]> wrote:

I've decided to concentrate my efforts in another area, so I won't be
looking at msi any longer. I admit I 'm no C expert, I'm a web developer by
trade. Though I started to look at the C code to get away from php/perl/ruby
and get aquainted with the language in my leisure time, I need no assitance
with web development. As I would still like to contribute to the wine
project I will be focusing my efforts on Appdb and Bugzilla.


Well, that's great too but I don't want to see you give up! :) I know
this particular adventure hasn't gone quite right but there's plenty
of areas you can contribute. When I started I was no C expert either
but it's a simple language and can be quickly learned.  Often this
happens, you debug something to find that it's in an area not many
people can work on.

If you want my advice, it'd be to just try your hand at debugging
random apps. Find one that doesn't work, poke it a bit to find out why
not, if you aren't getting anywhere throw it away and move onto the
next. This lets you see a lot of the code quickly, and you'll probably
find that some bugs are much easier to fix than the one you found.

thanks -mike




Re: acad 2004 license file bug

2006-06-06 Thread Mike Hearn
On Tue, 06 Jun 2006 12:36:07 +0100, Mike Hearn wrote:
> Right now we don't set the registry key saying we have IE installed, even
> though many of the DLLs the app probably needs are there and functioning
> correctly. I think the plan is to add this reg key after the last of
> Jaceks IE work is merged but only the big J himself could comment on that.

Specifically I can't figure out if we're supposed to install a
Windows gecko based product or if it can use my native Linux Firefox ...





Re: Re: Linux noob

2006-06-06 Thread Mike Hearn
On Tue, 06 Jun 2006 03:27:52 +, NikNot wrote:
> Indeed! This is something that I found infuriating since I first
> used wine. What possible reason would there be to make this
> a "hidden" directory? From whom exactly should it be hidden
> and why?

Historical reasons. I'm switching this thread to wine-devel as TransGaming
do in fact make the virtual C drive visible by default and it's maybe
something we should do too. On the other hand, it might just be
wallpapering over other usability problems (lack of menu integration, most
obviously). How often does average jack need to go poking around
C:\Program Files in real Windows?

thanks -mike





Re: acad 2004 license file bug

2006-06-06 Thread Mike Hearn
On Mon, 05 Jun 2006 10:23:45 +0200, Jaap Stolk wrote:
> Thanks. but it doesn't seem to fool autocad. I tried:
> WINEDEBUG=+server wine setup.exe > ~/mywinelog.txt
> but it still logs to stout and my system can't keep up with the scrolling.
> Is there a way to watch just the registry read/write ?

You want 

WINEDEBUG=+reg wine setup.exe 2>/tmp/log

Note that you redirect stderr not stdout.

thanks -mike





Re: msi: Fix some copy/paste bugs in the implementation of condition operators.

2006-06-06 Thread Mike Hearn
On Mon, 05 Jun 2006 10:14:50 -0600, Vitaliy Margolen wrote:
> So until you show us some code that verifies what you are talking about,
> please stay away from the e-mail clinet.

He has done exactly that though not in a form we can put in the test
suite, and he is not "flaming" anybody. I think you need to calm down a
bit.

thanks -mike





Re: acad 2004 license file bug

2006-06-06 Thread Mike Hearn
On Sun, 04 Jun 2006 20:43:17 +0200, Jaap Stolk wrote:
> The autocad installer indicated that I needed internet explorer 6.0,
> so I installed that using winetools. (can wine fake internet explorer,
> so i don't need to install the real thing?)

Mostly yes, but that area of code is still being worked on quite heavily.
We're supposed to be able to use Mozilla but last time I tried running
"wine iexplore" it told me it couldn't load Gecko so I'm not sure what's
going on there 

Right now we don't set the registry key saying we have IE installed, even
though many of the DLLs the app probably needs are there and functioning
correctly. I think the plan is to add this reg key after the last of
Jaceks IE work is merged but only the big J himself could comment on that.

> anyway, the autocad installer now complains that the licence file
> could not be found, but this bug report indicates that this problem is
> supposed to be fixed:

Mike doesn't have AutoCad so it may not be fixed. The problem must lie
elsewhere. Native MSI can be installed if you use Win98 mode, or you could
try debugging Wines own MSI implementation.

> Should I try the suggested "fix": copy the bin/acadfeui/eula directory
> from the cd-rom to the c:\ root ?

Sure, why not, it may work.

thanks -mike





Re: DirectX blitter bug

2006-06-06 Thread Mike Hearn
On Sun, 04 Jun 2006 02:51:31 +0200, Alexander Nicolaysen Sørnes wrote:
> This is fixed in Stefan's ddraw patchset.

Awesome :) I look forward to it being merged.

thanks -mike





Re: wined3d: Another GLSL shader status update

2006-06-06 Thread Mike Hearn
On Sun, 04 Jun 2006 12:04:21 -0400, Jason Green wrote:
> > This is an elaborate scheme with linked lists in each shader - is that
> > really necessary?
> > I'm very confused after reading the code (but maybe that's just me :)
> 
> If we link the programs together every time the Set__Shader() is called,
> it brings performance to a halt (that what my glsl_hack4.diff did).

Re: the recent discussion on code commenting and documentation, it'd be
nice if the patch explained this somewhere. It'd be even nicer still if at
some point one of you guys could take a break from the codeface and write
a chapter for the Wine Developer Guide on shaders and how all this works
... it seems incredibly opaque and the last thing we want is a re-run of
the DCOM situation where the only people who understood it left or hacked
on other things for a while and we lost the knowledge of how it worked.

thanks -mike





Re: Wine VM86 exception handling bug?

2006-06-05 Thread Mike Hearn

On 6/5/06, Robert Shearman <[EMAIL PROTECTED]> wrote:

It depends whether it's in a convenient form. For a 100-byte COM file,
it is probably already in its most convenient form.


If, like Rob, you are an i386 ninja master who wields a disassembler
as most of us wield a knife and fork then yes maybe :) For the rest of
us source code can be occasionally convenient 

thanks -mike




Re: Wine VM86 exception handling bug?

2006-06-05 Thread Mike Hearn

On 6/5/06, Dmitry Timoshkov <[EMAIL PROTECTED]> wrote:

> I'd rather we got out of the habit of doing this seeing as I think git can
> deal with binaries better than cvs can.

There is no point in storing the binaries in the *source* tree, besides
tiny .com file which shows the bug shouldn't take more than 100 bytes
of an array in the .c file.


Sure it might be small, but it's still a binary no matter how we store
it. It's not more useful as an array than as a true binary file on
disk. Why obfuscate and expand it by embedding it into a text file?

thanks -mike




DirectX blitter bug

2006-06-03 Thread Mike Hearn
Lords of Magic works perfectly EXCEPT that rendering is corrupted when it
is using DirectX "fast blitting"; they provide a software emulated
workaround for some truly ancient cards (Matrox Mystique anyone?) and the
game works well in this mode. But it should work properly in DirectX
accelerated mode too.

The kind of corruption varies but it appears as, for instance, mouse
trails which to me suggests some kind of co-ordinate system problem.

The demo is here:

ftp://ftp.sierra.com/pub/sierra/lordsofmagic/demos/si_lordsofmagic_demo.exe

and it installs cleanly on the master branch.

If any DirectDraw gurus want to take a look, please do! I bet this problem
affects other games too

thanks -mike





Re: Shell integration idea

2006-06-03 Thread Mike Hearn

On 6/3/06, Mikołaj Zalewski <[EMAIL PROTECTED]> wrote:

  OK, I won't insist on aggregation :). As for apartments I've thought
that something like that:
HRESULT res=CoInitializeEx(NULL, COINIT_MULTITHREADED);
/* working with objects with ThreadingModel Both */
if (SUCCEEDED(res)) CoUninitialize();

won't have any side effects.


Well, you'd be possibly changing the apartment of the current thread,
which is not allowed IIRC.


But if the number of developers that knows
about COM is low then maybe that it's better to use simple ops structs
instead.


I'd say so...

thanks -mike



Re: Wine VM86 exception handling bug?

2006-06-03 Thread Mike Hearn
On Fri, 02 Jun 2006 08:01:55 -0700, Dan Kegel wrote:
> You can embed a trivial DOS executable as data in the .c file

I'd rather we got out of the habit of doing this seeing as I think git can
deal with binaries better than cvs can.

thanks -mike





Re: Prospects of an OpenAL audio driver...

2006-06-03 Thread Mike Hearn
On Fri, 02 Jun 2006 02:08:04 -0700, Nick Burns wrote:
> Are there any problems with using OpenAL for such a purpose?

Probably not, it depends on the exact level of abstraction OpenAL gives.
But it begs the question - why?

thanks -mike





Re: ntdll: a simple implementation of cross-process NtAllocateVirtualMemory

2006-06-03 Thread Mike Hearn
On Sat, 03 Jun 2006 09:43:04 +0200, Alexandre Julliard wrote:
> If it's a solution that can be expanded later on to cover the other
> cases, yes, but not if it's a dead-end.

When this was discussed before the idea of bringing back the service
thread was raised. I still think we should do this, assuming details like
suppressing attach notifications are done properly ...

thanks -mike





Re: MSI query tests

2006-06-03 Thread Mike Hearn
On Thu, 01 Jun 2006 21:51:20 -0500, EA Durbin wrote:
> I don't know how I would run this on windows. 

You don't have to, you just need to run it against a native MSI.

As to how to convert your findings into a test case, I guess that may be
trickier. There is some fundamental behavior here that is wrong, so
creating a database that shows the problem then testing queries on it
might work?

thanks -mike





Re: Shell integration idea

2006-06-03 Thread Mike Hearn
On Fri, 02 Jun 2006 20:16:25 +0200, Mikolaj Zalewski wrote:
> Of course when we use COM aggregation instead of a factory pattern we 
> will have all the interfaces visible under one CLSID so we will be able 
> to construct a IWineTrash directly with the main object hidden behind 
> the scene.

Argh, this is exactly what Alexandre meant! :)

The number of developers that understand COM aggregation and all the
baroque rules that make it up is very, very low. A simple ops struct of
function pointers as used in the wineserver or kernel would be fine here
... COM adds an awful lot of complexity that really isn't needed at all
(eg you must call CoInitialize, which means caring about apartments, which
means possibly instantiating a STA when windows wouldn't, which means pain).

thanks -mike





Re: How are we doing?

2006-06-03 Thread Mike Hearn
On Sat, 03 Jun 2006 12:03:21 +1000, Jeff Latimer wrote:
> We seem to have a policy of not accepting comments in exisiting code.  

We do? I seem to recall having comment patches accepted before. Albiet a
long time ago.

> If I add comments to existing code that clear up a mystery I have found 
> they are nicely deleted.  A pity as the comments would help me next time 
> I am in the area if no one else.

Hmm, well that should be changed if so! I can agree that some parts of
Wine are painfully obscure. I've learned most of what I know about how
Wine works by asking questions here and on IRC. Hopefully the developer
guide expansion I worked on a while ago covers a lot of the more exotic
topics.

thanks -mike





Re: How are we doing?

2006-06-03 Thread Mike Hearn
On Fri, 02 Jun 2006 08:03:46 -0500, Jeremy White wrote:
> And I think I would agree that the Wine server is commented 
> about right; it is, imho, a beautiful piece of code.

+1 to that. I reckon I didn't really grok in that deep-down-in-your-soul
way what "good coding style" is until I took time to study the wineserver.

That said, some parts of it could use a tad more explanation. The reader
will know that files are opened for clients by the wineserver due to POSIX
locking semantics . but not any more detail than that.

How on earth does the blocking/sync/wait infrastructure in the server
work? What is an "in flight" fd? When I started it was black magic.

It also has a bunch of comments like this:

/* initialize the structure for a newly allocated thread */
inline static void init_thread_structure( struct thread *thread )

;)

That said, I could not have written the wineserver, so my comments should
be taken for what they're worth (not much)!

thanks -mike





Re: How are we doing?

2006-06-03 Thread Mike Hearn
On Fri, 02 Jun 2006 12:33:03 +0100, Robert Shearman wrote:
> The lack of comments in your email is more horrifying.

Haha :)

Maybe we should have a new janitorial task "comment code", or maybe
Alexandre should reject patches that don't have enough comments?

The problem I think is that because MSDN basically describes what the code
is meant to do, developers familiar with that area end up perceiving it
all as "obvious". I know this was an issue with the old DCOM code, and it
took a long time before I really understood what it was doing. I think the
new code is a lot better commented which is nice. Plus we have in depth
explanations of DCOM in the developer guide now.

The other issue is that Wine is an extremely opaque codebase *unless* you
know operating system design inside out, in which case it's often self
explanatory. Most people don't, and this surfaces as "I wish it had more
comments". Well, yeah 

thanks -mike





Re: wineprefix: Create a cdrom drive if it exists at /media/cdrom

2006-06-01 Thread Mike Hearn

On 6/1/06, Jesse Allen <[EMAIL PROTECTED]> wrote:

What about the device node symlink? It's needed for the games alot and
it's the number one thing I get asked for help for now. We don't have
an easy way to detect it, although HAL should be able fix it.


Right well that's us being borked somewhere ... Alexandre has said on
IRC that we shouldn't actually need the x:: symlink anymore :)




Re: wine problems on a 64bit system

2006-06-01 Thread Mike Hearn

On 6/1/06, Alexandre Julliard <[EMAIL PROTECTED]> wrote:

Yes, I'm afraid we'll have to do that by default, there are too many
broken binaries out there.


I think we've only seen a couple of such reports so far  given
that the exec bit was never enforced before now it wouldn't be
surprising if there are lots of buggy apps out there but we don't seem
to be seeing them yet.

Perhaps for NX capable systems it could be an appdefault? The security
enhancement it gives would be nice to have at least as an option for
power users (yeah yeah I know, another pref ...)

thanks -mike




Re: wineprefix: Create a cdrom drive if it exists at /media/cdrom

2006-06-01 Thread Mike Hearn
The location CD drives are mounted changes between systems, this patch is
essentially specific to yours. Wine already supports HAL, which should
solve this in a more correct manner (though we have reports it doesn't
work for some games!), so how comes that's not enough?

thanks -mike





Re: wine problems on a 64bit system

2006-06-01 Thread Mike Hearn
On Wed, 31 May 2006 07:26:37 +0200, Pavel Troller wrote:
>   The machines are running very similar kernels. Both are hardened with
> exec-shield, but even disabling it on a 64bit by
> 'echo 0 >/proc/sys/kernel/exec-shield' doesn't help. The 32bit works even with
> exec-shield enabled (and doesn't print the no-exec message).

As a hack you can change the code so every range of memory that is mapped
is mapped executable.

thanks -mike





Re: How are we doing?

2006-06-01 Thread Mike Hearn

On 6/1/06, Alexandre Julliard <[EMAIL PROTECTED]> wrote:

> It's possible to see on wiki the "trust points" positions  ? :)
> And on each WWN, see the variations (seems the famous kde buzz) :)

The commit logs contain the time of the change and the time of the
commit, so you could use that to build a top-10 of the developers with
the best patch-to-commit times ;-)


Heh :) Bear in mind that it depends a lot on the patch and what kind
of work you're doing. Getting some clearly correct typo fixes in for
an obscure DLL is going to be a lot easier even for 'untrusted'
developers than, say, implementing SetThreadPriority which touches the
core of Wine in a sensitive area and is somewhat controversial.

There's no special privilege for CW employees or SoC students, though
we appreciate it may look that way at first glance. I'm a CW employee
on and off (more off than on lately due to university) and I get
patches rejected all the time  :)

thanks -mike




Re: How are we doing?

2006-05-31 Thread Mike Hearn
On Wed, 31 May 2006 14:57:06 +0200, Hans Leidekker wrote:
> At the same time we should think of exciting new possibilities that an open 
> source implementation of the Windows API brings to the table.

At past WineConfs the possibility of reaching out to Windows developers
was raised, by making it easier for Windows guys to use our code. For
instance if they have built their app on an API but need a bugfix or
feature Wine is the obvious candidate but right now we make it hard for
them to do that. We're very Linux/UNIX centric (eg build system ...)

thanks 





Re: World of Warcraft (WoW) patch/more address space layout stuff

2006-05-30 Thread Mike Hearn

WoW Has a all chain of checks that go up all the way to rootkit reveler
to make sure the user is not aided by an automatic system, Given the
player an advantage  other players do not have. The Memory layout checks
is for making sure the program is not loaded by a Debugger of sorts. Or
that core Dll(s) where not replaced/hooked/emulated.


Yes, it could be the Warden, but I doubt it. If the Warden is
triggered you get banned from the game yet this bug surfaces not as
spurious bannings but some kind of mouse control/targetting problem.
To be honest I'm amazed we haven't seen any reports of Wine triggering
anti-cheat systems like Blizzards before, and I'm sure we'd hear about
it if it did 


It is possible that approaching Blizzard might be helpful. Is WoW
supported by Cedega?


Yes, using a slightly more generic version of the same memory layout hack.

thanks -mike




Re: How are we doing?

2006-05-30 Thread Mike Hearn

On 5/30/06, Dmitry Timoshkov <[EMAIL PROTECTED]> wrote:

I can't believe that writing a good test case showing the bug and adding
it to the Wine test harness is such hard thing to do for a good Windows
developer who already knows what he expects from a particular Win32 API.


But most developers who come to Wine are not Windows developers, they
are Linux developers who want to run an app or game. Often finding the
bug is much harder than fixing it these days. It takes practice to
learn how to read a relay trace or debug a mysterious crash.

There is documentation showing how to do this with examples but I
guess it could go further.


Once the test is in the Wine tree that becomes *much* easier to pinpoint
the bug and decide what is the real fix for it.


Yes, sometimes. Some things are hard to show with unit tests. Consider
the case of "I run my game and the audio glitches". It turned out that
for some people that was due to scheduling problems and a fix is to
use POSIX capabilities to add SetThreadPriority support to the
wineserver. For somebody new to Wine that would be a very difficult
problem to track down and fix, and hard to unit test.

I agree that proving a problem using a test is a good way to start for
many bugs however, especially message related ones.

thanks -mike




Re: World of Warcraft (WoW) patch/more address space layout stuff

2006-05-30 Thread Mike Hearn

Interesting.. if MacOSX has a similar memory layout as linux, maybe we
could get Blizzard to include a workaround that is only active when it
sees that it's running under wine/cedega.


Well if you can get the email address of a WoW developer then maybe we
can track down where the problem in WoW is and work with them to fix
it. I don't think Wine-specific workarounds make any sense: the
address space layout when not requesting a specific address is not
guaranteed. Vista already includes ASLR which is likely to break such
software. It will need to be fixed sooner or later, might as well be
sooner :)

thanks -mike




Re: World of Warcraft (WoW) patch/more address space layout stuff

2006-05-30 Thread Mike Hearn
On Tue, 30 May 2006 16:08:42 +0200, Tomas Carnecky wrote:
> Since WoW also runs on MacOSX, how does the memory layout on MacOSX
> differ from NT and Linux? 

I have no idea, but the MacOS and Windows versions of WoW will be
different; probably the bug is only in the Windows specific parts of the
code.

> Maybe that's the reason why they won't do a
> Linux port: because they rely on a certain memory layout and the code
> can't be changed that easily.

I suspect the real reason is the usual one: concern over profitability.
They'd need to have a full time Linux dev team as well, because the code
constantly evolves. The problems Second Life is having shows what happens
when you don't do that :/

thanks -mike





Re: Wine 1.0 Tasks

2006-05-30 Thread Mike Hearn
On Tue, 30 May 2006 07:14:07 -0700, Dan Kegel wrote:
> Go ahead and retarget those to 1.0, then, please.

OK. I need to talk to Tony, I seem to have lost my bugzilla privs at some
point (probably changing email address).

> I agree that Sun's Java runtime is probably something we should support for 
> 1.0.
> But Java isn't "just fine" under Wine; I've run into installers that
> fail because they crash inside Sun's JVM on Wine.  

That sucks :( A few years ago I was running pretty complex Swing apps on
it. I wonder if it's regressed or if those are bugs I just never hit.

> If someone wants to start putting effort into getting .NET, or for that
> matter Mono, up and running, great.  But personally, I'd be just fine
> with making .NET support a 1.1 feature. - Dan

Yes, OK. What's the use case for running VS on Linux; is the idea that as
developers migrate they can continue working on their old software? Or
that they can use these tools to write new software that targets Win32?

thanks -mike





Re: Set up wine-macosx? (Re: How are we doing?)

2006-05-30 Thread Mike Hearn
On Mon, 29 May 2006 23:47:26 -0700, Jim White wrote:
> But I do know I set up Darwine because of the antagonistic
> and dismissive tone here when I tried to discuss Darwin & Mac OS X
> development ideas.

I have yet to see anybody give Emmanuel and the other Darwine developers
anything but respect. The "dismissive tone" you received are because you
are not a developer and like most open source projects, Wine has a simple
currency -> those who do the work get the respect. 

Tell people they should work on a port to a platform they don't use and
you'll be told to do the work yourself. Dismissive? Maybe. Unexpected? I'd
hope not.

> Darwine is a "private community"?  "Second-class citizen in the Wine
> world"?  Uh, yeah.  I'm really feeling the love here.

You've misinterpreted a statement of fact as some kind of insult. Work
that doesn't take place on wine-devel is invisible to most Wine
developers, it's as simple as that.
 
> Oh, wait.  The award *did* get mentioned in Wine Weekly issue #311.
> Hmmm, except that not only is Darwine not in the subject line, it isn't
>  mentioned at all.  There is some whining that Wine didn't win though.
> Thanks guys.

Look, there are various reasons why some developers - and it seems maybe
Marcus is in that group - are uncertain as to whether a Mac port is a good
thing. This has been explained to you before. So why do you act shocked
when an individual is "unsure whether to be happy or sad" over the news?

> Lest you think I'm complaining here, I'm not.

You clearly are complaining, there's no other way to describe it.

-mike





Re: How are we doing?

2006-05-30 Thread Mike Hearn
Got a reply from somebody who would rather remain anonymous:

-

This may be just me, but the learning curve is probably much more
steep for a "general purpose" hacker than for a particular dll. I have
some apps I'd like to get working, but I find that the underlying
problems tend to take a long time to find, and when I do find them
they tend to fall into one of these categories:
-relatively simple to hack around, but difficult to really fix
-involves implementing or fixing something that's way beyond my skills
-it's unclear how to properly fix the problem

None of those result in a patch. Usually they only will only result in
a bug report or (if it's something the developers are aware of)
nothing at all. On the other hand, I'm not really interested in
working on a particular dll; I just want my apps to run correctly on
wine with as little kludging around things as possible.

-

... which is certainly true, it has a steep learning curve. But I think we
need more people doing such things :/

thanks -mike





Re: Wine 1.0 Tasks

2006-05-30 Thread Mike Hearn
On Mon, 29 May 2006 21:01:46 -0700, Dan Kegel wrote:
> I suspect a few of these are stale, and a bunch others are missing,
> but I like the idea of using bugzilla to track our progress to 1.0.

Hmm, maybe. Bugzilla lists have a tendency to come and go though as people
nominate their bugs and as they are fixed. I think it's not quite as
satisfying as a mostly static list. I appreciate it's easier to set up
though :)
 
> What other bugs should be fixed before 1.0?

IMHO we should really nail the window management problems. The WM rewrite
was supposed to fix our woes with unmanaged windows and fullscreening for
ever but it hasn't happened yet.

> It's probably unreasonable to require 1.0 to support .NET

Is it? We already run Java just fine and I am sure Mike M had command line
.NET apps running a year or two ago. It might be plausible.

thanks -mike





Re: World of Warcraft (WoW) patch/more address space layout stuff

2006-05-30 Thread Mike Hearn

On 5/30/06, n0dalus <[EMAIL PROTECTED]> wrote:

It would be really great if someone could document the patch and
explain what exactly is stopping WoW from working (as well as which
changes would cause problems for other programs).


It's a bug in WoW itself, it relies upon the exact way NT maps memory
which is different to how Linux does it. I guess they are storing
information in the high bits of a pointer somewhere or some similar
trick.

The patch is a hack that makes Wine follow the Windows method -
unfortunately it will happily force an allocation to an area that is
already allocated. Right now it relies on pure luck to avoid blasting
a previous allocation. Expect random undebuggable failures with this
technique.


I think there would be more chance of getting developers working on the problem 
if the
problems involved were clearer and easier to see/understand.


The real issue is that it seems not many Wine developers play WoW themselves ;)


Given the amount of users who use wine to run WoW, would it be
possible to have the patch included with a compile-time option? Would
it even be possible to make the patch a runtime feature?


Doubtful. You'd have to ask Alexandre. He may know of a different
solution also. Wine has a policy of not accepting application specific
hacks though there are a few generic hacks in there.

You'd be better off IMHO by preparing your own Wine binary install
that is specific to WoW itself.

thanks -mike




How are we doing?

2006-05-29 Thread Mike Hearn
As the Summer Of Code begins and new blood joins us all at once,
I thought it'd be a good time to open a discussion on how we are doing as
a project. 

Questions to consider:

 * Is Wine improving or is the regression rate matching the improvement
   rate?

 * Are we producing a quality product, from the perspective of
   non-technical end users?   (I appreciate this isn't a goal for everyone)

 * Are we turning away potential developers for any reason? Could we do
   more to attract new hackers?

 * Are the projects fundamental processes serving us well?

 * Any other thoughts for improvement?

In case it's not clear, I'm talking about the project as a community
adventure here rather than technical aspects of the codebase.

>From my own perspective I think Wine is doing better than ever before.
What prompted this email is the realisation that in the past few days I've
used Wine nearly every day to run a variety of apps - from games to
utilities - and it's succeeded with every single one. Not always
perfect but always good enough. I am no longer surprised when Wine runs an
app correctly as I was when I first came to the project, these days I
nearly take it for granted. Though this may be due to having developed a
feel for what will work and what won't :)

So clearly we're doing something right ... I also think we are doing OK
with attracting and keeping new hackers. The influx of new Direct3D talent
lately is fabulous for instance. The experiences of our SoC students will
be useful in assessing how to improve the learning curve and we need to
tap this resource better than we did last year.

In other words, I think we're doing pretty well. I feel more
positive about the project that I have done for a long time. It seems like
as Win32 stagnated and slowed down over the past 6 years we've been able
to turn the tide and add our own code faster than Microsoft can, which is
the tipping point.

So areas for improvement?

 * We seem to be doing very well in recruiting hackers who work on one
   particular DLL or area and solidly improve that, but a less well
   when it comes to 'general purpose' hackers who just take random apps
   and make them work. 

   It might just be that I'm out of touch but I don't see as much
   patch traffic these days along the lines of "This patch set fixes
   XYZ app" followed by 6 patches to 6 different DLLs. Discussion on
   IRC/wine-devel is 
   
 * No clear roadmap to 1.0 - for 0.9 we had Dimis TODO list and it was
   quite satisfying to see them go green as tasks were completed. I guess
   we have a 1.0 TODO list too but I never see any updates to it :(

 * Integration with other projects is still a weak area. Desktop/kernel/X 
   integration could all use some work. I know I know, I'm guilty in
   not doing my bit here too  maybe I will find my hack-fu returning
   sometime soon and work on the fullscreen patch again :)

 * App specific patches. Well I don't expect policy here to change anytime
   soon but extreme cases like the WoW VMA layout problem which affects
   tons of users do highlight the issue.

 * A few random things I already got into arguments about (forums, libwine
   api etc) :)

What do you guys think? 

thanks -mike





  1   2   3   4   5   6   7   8   9   10   >