Google's support for Wine in 2007

2008-02-13 Thread Dan Kegel
As you might know, I work for Google, and part of my
day job is to help improve Wine.  Here's a little report
about what we've been up to.

Google uses Wine primarily as the basis for the Linux
port of our photo management software, Picasa.
In fact, the Linux version is exactly the Windows build
of Picasa, bundled with a lightly patched version of Wine.
Most of the work in that port was to improve Wine so it
could handle Picasa, and that work is still going on.
Codeweavers did the initial port, and Googlers
Lei Zhang, Nigel Liang, and Michael Moss are
improving Wine further for Picasa 2.7.

Beyond Picasa, a few of us (Lei Zhang, Alex Balut, and I)
have been fixing random Wine bugs in our 20% time.
I've also been doing regular Valgrind runs over the Wine test suite,
pestering developers who accidentally check in code that Valgrind
doesn't like.  Hats off to the Valgrind team for a great tool, and
to the (non-Google) folks who work on Valgrind/Wine compatibility
(Eric Pouech, Tom Hughes, and John Reiser, among others).

Google also sponsored some work by Codeweavers to improve
support for Photoshop ('cause so many people want it) and
for Dragon Naturally Speaking ('cause even Linux users get RSI).
While not yet perfect, those apps are a lot more usable now
as a result.  In particular, Photoshop CS and CS2 are quite usable
indeed.  (See http://wiki.winehq.org/AdobePhotoshop for
details.)

I also had the pleasure of hosting eight students as
Google interns working on Wine throughout the year.
Here are their names, and roughly what they worked on:
Dan Hipschman: widl
Evan Stade: gdiplus, Powerpoint Viewer
James Hawkins: msi
Jennifer Lai: win16 conformance tests
Juan Lang: crypt32, iTunes
Matt Jones: mono testing
Mikolaj Zalewski: Photoshop, Limux
Roy Shea: svchost, BITS

So, you're wondering, what exactly does that all boil down to?
I tallied all our accepted patches recently; the list is now up
(along with the exact Wine source we use for Picasa) at
  http://code.google.com/opensource/wine.html
I was pleasantly surprised at the size of the list.

Separately, Google also sponsored nine Summer of Code
students this year.  Just to name two who remain active even
after the end of summer:
Alex Sørnes, who improved Wine's Wordpad, and
Maarten Lankhorst, who solved tons of sound problems.
(And oh, how nice it is to not have to change sound settings anymore!)

All that may sound like a lot, and perhaps it is, but it pales
compared to the work put in on Wine by the rest of the Wine developers.
Thanks, everybody!  I'm really looking forward to Wine 1.0
(which, according to Alexandre, is planned for sometime in 2008).

Dan Kegel
Software Engineer
Google




Re: [RFC] winecfg enhancements

2008-02-13 Thread Steven Edwards
On Feb 13, 2008 2:29 PM, Reece Dunn <[EMAIL PROTECTED]> wrote:
> And the other proposed improvements? Those were mentioned and can be
> commented on.

I've skimmed the discussion and while its important to me it bears
much too verbose. Can we just get some mockup images of that the
proposed changes would look like?

-- 
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




ddraw / wined3d fighting over the resolution!

2008-02-13 Thread Peter Dons Tychsen
Hi Stefan/Devs.

The funny old game "Insane" has a resolution bug when it exits.
I am not sure exactly how to fix this.

1) It call SetDisplayMode() - switches from 1280 x 1024 -> 640 x 480.
OK.
2) It creates a 3D surface which starts the SwapChain - swapchain saves
current resolution.
3) Exit. It calls RestoreDisplayMode() - switches back to 1280 x 1024.
OK.
4) SwapChain is destroyed. Switches "back" to 640 x 480 ! BAD!

I presume the code guesses that the caller does this in another sequence
(and it does work fine in other sequences).

Why does the SwapChain-destroy function play around with the resolution
at all. Is that really necessary? I think it should not do it if the
caller is ddraw at least.

How do i fix this?

Thanks,

/pedro





Weird failure in kernel32 volume test

2008-02-13 Thread Maarten Lankhorst
Hi all,

The latest update of trying to be the second person for which all tests succeed.
I sent a bunch of patches that make some tests pass.

At the moment I have 3 failures on a clean wineprefix, with no icons
on my desktop, and with wine in native window mode on kde 3.5.x:
user32: 'msg' test fails. The famous 'win' test passes.
kernel32: I get a very weird bug on the 'volume' test. It only occurs
when I run my mini script for running the tests. I have absolutely no
idea why I get ERROR_FILE_NOT_FOUND on FindFirstVolumeA on the first
time I run the whole testsuite, and not successive runs. Anyone has
experienced the same, or have an idea what is going on?
msi: multi-sz failure in msi install, I did a todo_wine on it so it
doesn't stop the build. It seems to be a recent failure though because
I know that it didn't bomb out on install a few days ago.

Anyone else has some tests that consistently fail on make test?

Cheers,
Maarten.


tests
Description: Binary data



Re: gecko download not robust?

2008-02-13 Thread marco

Austin English wrote:
> On Feb 9, 2008 5:17 PM, marco <[EMAIL PROTECTED]> wrote:
>   
>>> Hmm.  gecko download hung for me once.  I saw
>>> fixme:urlmon:ProtocolStream_Read Read failed: 800c0008
>>> in the log, which makes me wonder if our download code
>>> doesn't handle transient network errors well.
>>>
>>> Time to get rid of the download, and just bundle gecko outright, I say...
>>>   
>> I make the mandriva rpms for wine.
>> This would make the rpms 30% bigger.
>> And you would download the same gecko binary over and over again with
>> every new version.
>>
>> But if that is not a problem than it can be easily done.
>>
>>
>> 
>
> Why not have package maintainers package gecko like most do
> development files. So you could have for example on ubuntu:
> $ sudo apt-get install wine wine-dev wine-gecko
>
> Where wine-gecko wouldn't have to be upgraded very often.
>
> -Austin
>
>   

I looked into it.
And there are some options.

I can make a separate  package  of gecko  that  I can make it a 
dependencie of wine.
Problem is people have to know where to find it or the get stuck.

I can also make the package and make it not a dependencie on wine but 
the the people don't know it exist.

And I can just put it in the wine package.

I think this is the best option in this case. Its the easiest option 
because people only have to download en install one package.

marco
















Re: [RFC] winecfg enhancements

2008-02-13 Thread Jeff Zaroyko
Reece Dunn  googlemail.com> writes:

> 
> Hi,
> 
> I am looking at how we can make winecfg more useful. I have already
> supplied patches to allow importing a ubuntu human theme to work :).
> So I am now looking at how to build on that.
> 
[...]
> 
> - Reece
> 
> 

I think this could probably do with some consideration
http://bugs.winehq.org/show_bug.cgi?id=6233 , it describes how the
Applications tab does not belong among the other tabs because it should be
higher up in the hierarchy of things.






Re: [RFC] winecfg enhancements

2008-02-13 Thread Reece Dunn
On 13/02/2008, Juan Lang <[EMAIL PROTECTED]> wrote:
> >  Q: Should we provide a --simple mode for winecfg that has the work
> >  flow that Ubuntu is planning? Not specifying --simple would bring up
> >  the standard winecfg dialog.
>
> If you don't explain what that is, don't expect to many responses.  At
> least, I don't know what it is.

>From https://wiki.ubuntu.com/BetterIntegratedWineSpec:

System->Preferences->Windows Applications

Here we reimplement only the Wine configuration options we need.

* (Pulldown menu): "Default Windows version to emulate when
launching Windows applications"
  o Windows 2000 is currently the upstream default, which
works for most apps
* (unchecked by default) Automatically launch applications upon
inserting a disc
  o This is where the user can disable autorun by default if
he enabled it with the checkbox in the autorun prompt
* (radio button default): Allow full screen applications to change
the resolution
* (radio button alternate): Contain full screen applications in a
window when smaller than the desktop
  o These are the two main use cases of Wine's various Window
managing options. The latter might not be fully functional in time for
Hardy.
* (button) Advanced
  o Launches winecfg, or a similarly functional GTK
application. We can consider removing this when Wine's defaults get
good enough, however likely not by Hardy. To reimplement the
configuration we need in GTK requires some upstream changes (see [WWW]
ConsoleConfiguration on Wine's wiki.


And the other proposed improvements? Those were mentioned and can be
commented on.

- Reece




Almost done...

2008-02-13 Thread Maarten Lankhorst
Hi all,

Right now I got down to only the user32 msg test failing (minus the
todo's). I solved the user32 win test with a very high-tech solution:
Remove all icons from my desktop, which prevents the stupid file
description popup from failing the user32 win test. The other way
would be to run it in a wine desktop which would also prevent this (I
got no failures on runtest, except the todo's).

The msg tests are more difficult. For some reason I accidentally
passed them once, when I had  the debug scrolling on. But after that
there were always failures on my pc. Is there any way to sync those so
that it is less prone to timing issues?

Cheers,
Maarten.




Re: d3d: Add a slight delay before testing the ddraw and d3d9 visual tests

2008-02-13 Thread Peter Dons Tychsen
OK. I still think he should put a FIXME remark in the test-case,
and document why Sleep() is needed. Someone might fix the driver
someday. 

The only reason i yelled "alert!", is that i have seen so much bad code
which has come to a state where the are Sleep(143) here and Sleep(1332)
there, where nobody can remember why they are there and what the Sleep
count represents (most of the time no-one ever knew! :-)). In the mean
time, the real bugs just getter harder to 
find, as they are covered by all the messy Sleeps(). I see allot of this
kind of yap in telecom embedded software (mobile phones etc.).

In this case Maarten probably knows what he is doing (he usually does).
But thanks for the follow up!

And now i will go to Sleep().

Thanks,

/p

On Wed, 2008-02-13 at 11:28 +0100, Stefan Dösinger wrote:
> Am Mittwoch, 13. Februar 2008 03:11:24 schrieb Peter Dons Tychsen:
> > Eh, this does not seem like a proper way to get a unit test to pass.
> >
> > Sleep()... that leads to the dark side! :-)
> I talked to Maarten on IRC about this. The problem seems to be that his 
> monitor takes ages to mode switch, but ChangeDisplaySettings returns before 
> this modeswitch is done. Also the opengl driver attempts to draw before the 
> setup is ready, which fails and causes the test failures.
> 
> So it sounds like a driver bug which will only affect the tests(since games 
> draw repeatedly and do not care if the first few frames do not render 
> properly)





Re: [PATCH] include: add ISampleGrabber interface

2008-02-13 Thread Lei Zhang
On Feb 13, 2008 3:03 PM, Lei Zhang <[EMAIL PROTECTED]> wrote:
> Hi,
>
> This patch adds the ISampleGrabber interface, also needed by IMediaDet.
>

Bah, let me try again. Just realized I forgot to pass -n to git
format-patch as well.




Re: Fixing the last failing tests

2008-02-13 Thread Dan Kegel
Dmitry wrote:
>> An example is IsWindowUnicode. It always returns TRUE on XP,
>
>That's not true.

The test you submitted that checks this,
http://www.winehq.org/pipermail/wine-patches/2005-July/018839.html
must have passed once on Windows,
but it seems to be failing now; see e.g.
http://test.winehq.org/data/200802131000/xp_rs-winxp-sp2/user32:win.txt
which is full of lines like
win.c:3656: Test failed: IsWindowUnicode expected to return FALSE

Do you have a Windows system where that test passes currently?
- Dan




Re: gecko download not robust?

2008-02-13 Thread Steven Edwards
On Feb 10, 2008 10:11 PM, Jacek Caban <[EMAIL PROTECTED]> wrote:
> Compiling the package is quite tricky. I've compiled it on Windows XP
> using MSVC. There is no other way ATM, so I think that my Gecko package
> should be included as is in Linux packages.

Where is the source package? Is it just from the normal firefox source
tree with certain configuration options?

-- 
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: gecko download not robust?

2008-02-13 Thread Austin English
You could make it a suggested package, a la wine-dev. Including is
also a possibility, but keep in mind that's several megabytes that
don't change with each release (or that often) that have to be
redownloaded each time. I've got high bandwith, so doesn't bother me,
but a lot of people don't...

-Austin

On Feb 13, 2008 3:24 PM, marco <[EMAIL PROTECTED]> wrote:
>
>
> Austin English wrote:
> > On Feb 9, 2008 5:17 PM, marco <[EMAIL PROTECTED]> wrote:
> >
> >>> Hmm.  gecko download hung for me once.  I saw
> >>> fixme:urlmon:ProtocolStream_Read Read failed: 800c0008
> >>> in the log, which makes me wonder if our download code
> >>> doesn't handle transient network errors well.
> >>>
> >>> Time to get rid of the download, and just bundle gecko outright, I say...
> >>>
> >> I make the mandriva rpms for wine.
> >> This would make the rpms 30% bigger.
> >> And you would download the same gecko binary over and over again with
> >> every new version.
> >>
> >> But if that is not a problem than it can be easily done.
> >>
> >>
> >>
> >
> > Why not have package maintainers package gecko like most do
> > development files. So you could have for example on ubuntu:
> > $ sudo apt-get install wine wine-dev wine-gecko
> >
> > Where wine-gecko wouldn't have to be upgraded very often.
> >
> > -Austin
> >
> >
>
> I looked into it.
> And there are some options.
>
> I can make a separate  package  of gecko  that  I can make it a
> dependencie of wine.
> Problem is people have to know where to find it or the get stuck.
>
> I can also make the package and make it not a dependencie on wine but
> the the people don't know it exist.
>
> And I can just put it in the wine package.
>
> I think this is the best option in this case. Its the easiest option
> because people only have to download en install one package.
>
> marco
>
>
>
>
>
>
>
>
>
>
>
>
>




Re: msxml3: Implement IXMLDOMDocument IDispatch interface

2008-02-13 Thread Alistair Leslie-Hughes
Hi,
  Was there anything wrong with this patch?

Dont commit this patch if nothing is wrong. I will submit a series of 
patches, that will include these changes.

Best Regards
 Alistair Leslie-Hughes


"Alistair Leslie-Hughes" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]
> Hi,
>
> Fixes bug http://bugs.winehq.org/show_bug.cgi?id=11257
>
> Changelog:
> msxml3: Implement IXMLDOMDocument IDispatch interface
>
> Best Regards
>  Alistair Leslie-Hughes
>





> From 7cc5228684ed6d9aaace829cc1b8ebb43e5f4325 Mon Sep 17 00:00:00 2001
> From: Alistair Leslie-Hughes <[EMAIL PROTECTED]>
> Date: Fri, 25 Jan 2008 22:34:36 +1100
> Subject: [PATCH] Implement IXMLDOMDocument IDispatch interface
> To: wine-patches <[EMAIL PROTECTED]>
>
> ---
> dlls/msxml3/domdoc.c|   53 +--
> dlls/msxml3/main.c  |   58 
> +++
> dlls/msxml3/msxml_private.h |8 ++
> 3 files changed, 111 insertions(+), 8 deletions(-)
>
> diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
> index 06388c8..9d6b94b 100644
> --- a/dlls/msxml3/domdoc.c
> +++ b/dlls/msxml3/domdoc.c
> @@ -416,16 +416,29 @@ static ULONG WINAPI domdoc_Release(
>
> static HRESULT WINAPI domdoc_GetTypeInfoCount( IXMLDOMDocument2 *iface, 
> UINT* pctinfo )
> {
> -FIXME("\n");
> -return E_NOTIMPL;
> +domdoc *This = impl_from_IXMLDOMDocument2( iface );
> +
> +TRACE("(%p)->(%p)\n", This, pctinfo);
> +
> +*pctinfo = 1;
> +
> +return S_OK;
> }
>
> static HRESULT WINAPI domdoc_GetTypeInfo(
> IXMLDOMDocument2 *iface,
> UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo )
> {
> -FIXME("\n");
> -return E_NOTIMPL;
> +domdoc *This = impl_from_IXMLDOMDocument2( iface );
> +HRESULT hr;
> +
> +TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
> +
> +hr = get_typeinfo(IXMLDOMDocument2_tid, ppTInfo);
> +if(SUCCEEDED(hr))
> +ITypeInfo_AddRef(*ppTInfo);
> +
> +return hr;
> }
>
> static HRESULT WINAPI domdoc_GetIDsOfNames(
> @@ -436,8 +449,21 @@ static HRESULT WINAPI domdoc_GetIDsOfNames(
> LCID lcid,
> DISPID* rgDispId)
> {
> -FIXME("\n");
> -return E_NOTIMPL;
> +domdoc *This = impl_from_IXMLDOMDocument2( iface );
> +ITypeInfo *typeinfo;
> +HRESULT hr;
> +
> +TRACE("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), 
> rgszNames, cNames,
> +  lcid, rgDispId);
> +
> +if(!rgszNames || cNames == 0 || !rgDispId)
> +return E_INVALIDARG;
> +
> +hr = get_typeinfo(IXMLDOMDocument2_tid, &typeinfo);
> +if(SUCCEEDED(hr))
> +hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, 
> rgDispId);
> +
> +return hr;
> }
>
>
> @@ -452,8 +478,19 @@ static HRESULT WINAPI domdoc_Invoke(
> EXCEPINFO* pExcepInfo,
> UINT* puArgErr)
> {
> -FIXME("\n");
> -return E_NOTIMPL;
> +domdoc *This = impl_from_IXMLDOMDocument2( iface );
> +ITypeInfo *typeinfo;
> +HRESULT hr;
> +
> +TRACE("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, 
> debugstr_guid(riid),
> +  lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
> +
> +hr = get_typeinfo(IXMLDOMDocument2_tid, &typeinfo);
> +if(SUCCEEDED(hr))
> +hr = ITypeInfo_Invoke(typeinfo, &(This->lpVtbl), dispIdMember, 
> wFlags, pDispParams,
> +pVarResult, pExcepInfo, puArgErr);
> +
> +return hr;
> }
>
>
> diff --git a/dlls/msxml3/main.c b/dlls/msxml3/main.c
> index 62bf2b5..41afbe6 100644
> --- a/dlls/msxml3/main.c
> +++ b/dlls/msxml3/main.c
> @@ -21,6 +21,8 @@
>
> #include "config.h"
>
> +#define COBJMACROS
> +
> #include 
> #include "windef.h"
> #include "winbase.h"
> @@ -34,6 +36,61 @@
>
> WINE_DEFAULT_DEBUG_CHANNEL(msxml);
>
> +
> +static ITypeLib *typelib;
> +static ITypeInfo *typeinfos[LAST_tid];
> +
> +static REFIID tid_ids[] = {
> +&IID_IXMLDOMDocument2
> +};
> +
> +HRESULT get_typeinfo(enum tid_t tid, ITypeInfo **typeinfo)
> +{
> +HRESULT hres;
> +
> +if(!typelib) {
> +ITypeLib *tl;
> +
> +hres = LoadRegTypeLib(&LIBID_MSXML2, 3, 0, LOCALE_SYSTEM_DEFAULT, 
> &tl);
> +if(FAILED(hres)) {
> +ERR("LoadRegTypeLib failed: %08x\n", hres);
> +return hres;
> +}
> +
> +if(InterlockedCompareExchangePointer((void**)&typelib, tl, NULL))
> +ITypeLib_Release(tl);
> +}
> +
> +if(!typeinfos[tid]) {
> +ITypeInfo *typeinfo;
> +
> +hres = ITypeLib_GetTypeInfoOfGuid(typelib, tid_ids[tid], 
> &typeinfo);
> +if(FAILED(hres)) {
> +ERR("GetTypeInfoOfGuid failed: %08x\n", hres);
> +return hres;
> +}
> +
> +if(InterlockedCompareExchangePointer((void**)(typeinfos+tid), 
> typeinfo, NULL))
> +ITypeInfo_Release(typeinfo);
> +}
> +
> +*typeinfo = typeinfos[tid];
> +return S_OK;
> +}
> +
> +static void pro

Re: [PATCH] Environment variable to specify X11 window for desktop

2008-02-13 Thread Lei Zhang
On Feb 12, 2008 5:13 PM, Timothy Lee <[EMAIL PROTECTED]> wrote:
> Dear all,
>
> The attached patch allows the WINE desktop to be embedded within an
> existing X11 window, and is similar to the windowed mode in WINE.
>
> I've tested this feature using MS PowerPoint Viewer 2007, so that a
> fullscreen slideshow can be fitted inside any X11 window.
>
> Regards,
> Timothy Lee
>
>
>
>
>

Patches should be sent to [EMAIL PROTECTED] Please do not use
C++ style comments. See:
http://www.winehq.org/site/docs/winedev-guide/style-notes




Re: user32: correct the caption bar and it's buttons' sizes

2008-02-13 Thread Peter Oberndorfer
On Mittwoch 13 Februar 2008, Divan Burger wrote:
> 

What is the problem without the patch?
is the caption bar drawn too high 1 pixel?

I ask because i have a patch that restores the 1 pixel
high line between the caption bar and the client area
(and at the same time decreases the height of the caption bar)
see it attached

for the NC_DrawXXXButton functions:
you also need to update hittest calculation
else the wrong buttons are activated.
For example when you press the mouse down on the left side of the close 
button, but maximize gets activated

>     case SM_CYCAPTION:
>         if (!spi_loaded[SPI_NONCLIENTMETRICS_IDX]) load_nonclient_metrics();
>-        return nonclient_metrics.iCaptionHeight + 1;
>+        return nonclient_metrics.iCaptionHeight;

this breaks a test in sysparams.c:2416
ok_gsm( SM_CYCAPTION, ncm.iCaptionHeight+1);
and 5 other tests

Greetings Peter
From 62066e37c5a01155eff03b01af76010a521cd114 Mon Sep 17 00:00:00 2001
From: Peter Oberndorfer <[EMAIL PROTECTED]>
Date: Wed, 9 Jan 2008 17:22:39 +0100
Subject: [PATCH] fix caption bar being too high by 1 pixel
To: [EMAIL PROTECTED]

this problem was introduced in commit 567b6facab5623857b399c80c96db97d3344c8ac
Add support for drawing gradient captions.
---
 dlls/user32/nonclient.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/dlls/user32/nonclient.c b/dlls/user32/nonclient.c
index 503f7c1..1cdcbf6 100644
--- a/dlls/user32/nonclient.c
+++ b/dlls/user32/nonclient.c
@@ -917,7 +917,7 @@ static void  NC_DrawCaption( HDC  hdc, RECT *rect, HWND hwnd, DWORD  style,
 r.bottom--;
 
 SystemParametersInfoW (SPI_GETGRADIENTCAPTIONS, 0, &gradient, 0);
-NC_DrawCaptionBar (hdc, rect, style, active, gradient);
+NC_DrawCaptionBar (hdc, &r, style, active, gradient);
 
 if ((style & WS_SYSMENU) && !(exStyle & WS_EX_TOOLWINDOW)) {
 if (NC_DrawSysButton (hwnd, hdc, FALSE))
-- 
1.5.4




missed systray patches

2008-02-13 Thread Kirill K. Smirnov
Hello,

Is there anything wrong with the serie of patches?

systray[0/4]: systray improvements [try 2]
http://www.winehq.org/pipermail/wine-patches/2008-February/049772.html

--
Kirill




Re: [RFC] winecfg enhancements

2008-02-13 Thread Juan Lang
>  Q: Should we provide a --simple mode for winecfg that has the work
>  flow that Ubuntu is planning? Not specifying --simple would bring up
>  the standard winecfg dialog.

If you don't explain what that is, don't expect to many responses.  At
least, I don't know what it is.
--Juan




Re: Fixing the last failing tests

2008-02-13 Thread Kuba Ober
On Tuesday 12 February 2008, James Hawkins wrote:
> On Feb 12, 2008 8:16 PM, Peter Dons Tychsen <[EMAIL PROTECTED]> wrote:
> > Hello M.
> >
> > What is wrong with detecting the version, and branching the test code
> > accordingly? Other tests do that IIRC. I think that is a better
> > solution, if the version selector in winecfg is still going to be
> > meaningful (registry).
>
> The only time the tests should check for the windows version is if we
> know an app does the same thing, which is hardly ever.

Well, if we have an old app from win9x times, it will expect windows 95 
behavior, without checking for windows version of course.

So if Wine is set to impersonate win95, then it should behave like on win95 
and the tests should check windows (here: wine) version to select a proper 
test. Such a version-specific test should pass on win95 and wine with win95 
personality chosen. It should also pass on other versions, by choosing a 
different path (and possibly doing nothing if it doesn't apply to that 
windows version).

So, for example, methinks all applicable unicode tests should be disabled on 
the early win95 versions which had no such support (if so bolt-on unicode is 
detected).

Wouldn't that make sense?

Cheers, Kuba




Re: How is the testsuite built for windows

2008-02-13 Thread Paul Millar
Hi Maarten,

On Wednesday 13 February 2008 00:51:11 Maarten Lankhorst wrote:
> Who managed to compile all wine tests for windows, and how is it done?

Once a day, quisquiliae head-node (attempt to) build winetest.exe (and also 
the other Wine .exe and .dll files).  Some details about this are available 
here:
http://quisquiliae.physics.gla.ac.uk/cross/

The cron script builds winetest.exe and checks whether it has changed since 
last time.  If so, registers the new build.
(This is a slight over-simplification.)

There are some notes on how to build a Windows PE cross-compiler available 
from here:
http://www.astro.gla.ac.uk/~paulm/Cross/

There is also a script that automates building the cross-compiler.  Wine is 
written exclusively in C, so by default, only the C frontend is built.  The 
script should support building other language frontends, but this hasn't been 
tested much.

This page also includes a set of patches for MinGW's Win32API package to allow 
MinGW to compile winetest.exe.  This patch-set is almost exclusively the work 
of others: Stefan Leichter featuring most prominently (many thanks!)

Hans Leidekker maintains a set of RPMs that should provide identical coverage 
of Win32API as Stefan, Hans, myself and others share the set of patches.  
Hans' RPMs are available from:

http://mirzam.it.vu.nl/mingw/

Cheers,

Paul.







[RFC] winecfg enhancements

2008-02-13 Thread Reece Dunn
Hi,

I am looking at how we can make winecfg more useful. I have already
supplied patches to allow importing a ubuntu human theme to work :).
So I am now looking at how to build on that.

On the Desktop Integration tab, I am planning on adding the following
improvements:

  * Split the Appearance section into Theme and Appearance.

The rationale behind this is while the two are linked, they are
also distinct. It will make it possible to simplify "Install theme..."
to just "Install...", and support enhancements below.

  *  Pre-populate the Theme list with themes in
WINDOWS/Resources/Themes and with other *.theme files added by the
user.

The rationale behind this is that it simplifies the workflow for
the average usage (e.g. install a theme, then select it).

  *  Rename "Install theme..." to "Add...".

 The rationale is that we are not installing a theme, but setting
it as the theme being used. Having the theme appear in the Themes list
in the future further supports this name change and workflow.

  *  Rename "(No Theme)" to "Wine Default".

The rationale behind this is that it isn't true that there is no
theme installed (in the sense that a theme can be a set of colours and
metrics).

  *  Provide an "Export..." button to the Themes section.

The rationale behind this is that it makes it easier to create,
modify and preview themes being created. Therefore, you could create a
Ubuntu Human or Oxygen theme from winecfg.

  *  Make the theme importer read the themes [Theme]/DisplayName property.

The rationale behind this is to make the display name user friendly.

  *  Add --import-theme command line support to winecfg.

The rationale behind this is to support loading a theme via a
script (e.g. post-install configuration), without resorting to the
winecfg GUI.

  *  Make the shell folders a drop down list.

The rationale behind this is that it is unclear what "link to"
applies to. An alternative is to make the listview have the
showselalways flag, so it is clearer what folder "link to" is relating
to.

Q: Should we provide a --simple mode for winecfg that has the work
flow that Ubuntu is planning? Not specifying --simple would bring up
the standard winecfg dialog.

- Reece




Re: [PATCH #1] wininet: Added beginning support for HTTP cache files.

2008-02-13 Thread Robert Shearman
Jacek Caban wrote:
> +/* FIXME: Better check, when we have to create the cache file */
> +if(bSuccess && (lpwhr->hdr.dwFlags & INTERNET_FLAG_NEED_FILE)) {
> +WCHAR url[INTERNET_MAX_URL_LENGTH];
> +WCHAR cacheFileName[MAX_PATH+1];
> +BOOL b;
> +
> +b = HTTP_GetRequestURL(lpwhr, url);
> +if(!b) {
> +WARN("Could not get URL\n");
> +goto lend;
> +}
> +
> +b = CreateUrlCacheEntryW(url, lpwhr->dwContentLength > 0 ? 
> lpwhr->dwContentLength : 0, NULL, cacheFileName, 0);
> +if(b) {
> +lpwhr->lpszCacheFile = WININET_strdupW(cacheFileName);
> +lpwhr->hCacheFile = CreateFileW(lpwhr->lpszCacheFile, 
> GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,
> +  NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
> +if(lpwhr->hCacheFile == INVALID_HANDLE_VALUE) {
> +WARN("Could not create file: %u\n", GetLastError());
> +lpwhr->hCacheFile = NULL;
> +}
> +}else {
> +WARN("Could not create cache entry: %08x\n", GetLastError());
> +}
> +}
>
>   

It may be beyond the scope of your patch, but you're creating the cache 
file without committing the entry elsewhere so that it can be found at a 
later time. According to MSDN, this should be done in HTTP_FinishedReading.

-- 
Rob Shearman





Re: d3d: Add a slight delay before testing the ddraw and d3d9 visual tests

2008-02-13 Thread Stefan Dösinger
Am Mittwoch, 13. Februar 2008 03:11:24 schrieb Peter Dons Tychsen:
> Eh, this does not seem like a proper way to get a unit test to pass.
>
> Sleep()... that leads to the dark side! :-)
I talked to Maarten on IRC about this. The problem seems to be that his 
monitor takes ages to mode switch, but ChangeDisplaySettings returns before 
this modeswitch is done. Also the opengl driver attempts to draw before the 
setup is ready, which fails and causes the test failures.

So it sounds like a driver bug which will only affect the tests(since games 
draw repeatedly and do not care if the first few frames do not render 
properly)




Re: d3d: Add a slight delay before testing the ddraw and d3d9 visual tests

2008-02-13 Thread Kai Blin
On Wednesday 13 February 2008 03:11:24 Peter Dons Tychsen wrote:

> The string "This makes the tests pass on my pc" isn't very good either.
> What system?

Given that the default mode for the tests in the last years has been "Needs to 
pass on Alexandre's system", I don't think it's that bad. ;)

Cheeers,
Kai

-- 
Kai Blin
WorldForge developer  http://www.worldforge.org/
Wine developerhttp://wiki.winehq.org/KaiBlin
Samba team member http://www.samba.org/samba/team/
--
Will code for cotton.


signature.asc
Description: This is a digitally signed message part.



Re: Patch: create a WinHttpDetectAutoProxyConfigUrl function

2008-02-13 Thread Dmitry Timoshkov
"Joshua Hudson" <[EMAIL PROTECTED]> wrote:

> --- wine-0.9.54/dlls/winhttp/winhttp.spec   2008-02-11 20:54:39.0
> -0800
> +++ wine-0.9.54/dlls/winhttp/winhttp.spec.bak   2008-02-11 20:52:39.0
> -0800

The patch is wrapped.

> @@ -8,7 +8,7 @@
> @ stub WinHttpConnect
> @ stub WinHttpCrackUrl
> @ stub WinHttpCreateUrl
> -@ stdcall WinHttpDetectAutoProxyConfigUrl(long ptr)
> +@ stub WinHttpDetectAutoProxyConfigUrl

And this part seems to be reverted.

-- 
Dmitry.




Re: Add a slight delay before testing the ddraw and d3d9 visual tests

2008-02-13 Thread Dmitry Timoshkov
"Maarten Lankhorst" <[EMAIL PROTECTED]> wrote:

> This makes the tests pass on my pc.

Perhaps there is something less hacky way like GdiFlush() which is more
appropriate for this.

-- 
Dmitry.




Re: How is the testsuite built for windows

2008-02-13 Thread Paul Vriens
Maarten Lankhorst wrote:
> Hi all,
> 
> I'm trying to get the tests to run in windows, but I'm not sure how to build
> them. Any attempt to do mingw cross compiling fails badly.
> 
> Who managed to compile all wine tests for windows, and how is it done?
> 
> Cheers,
> Maarten.
> 
> 
> 
> 
> 
> 
Hi Maarten,

I'm doing this all the time. Before I sent a patch I usually have it cross 
compiled and tested on different flavors of Windows.

I'm running Fedora 8 and I'm using the RPM's provided via 
http://mirzam.it.vu.nl/mingw/packages.

Mingw has to be very-up-to-date to be able to cross compile all tests. With the 
latest RPM's I can still cross compile all tests.

Or are you talking about the full winetest.exe?

-- 
Cheers,

Paul.




[PATCH] Environment variable to specify X11 window for desktop

2008-02-13 Thread Timothy Lee

Dear all,

The attached patch allows the WINE desktop to be embedded within an 
existing X11 window, and is similar to the windowed mode in WINE.


I've tested this feature using MS PowerPoint Viewer 2007, so that a 
fullscreen slideshow can be fitted inside any X11 window.


Regards,
Timothy Lee

diff -Naur -wbBE wine-0.9.54-fe/dlls/winex11.drv/x11drv_main.c wine-0.9.54-fe.rootwin/dlls/winex11.drv/x11drv_main.c
--- wine-0.9.54-fe/dlls/winex11.drv/x11drv_main.c	2008-01-26 00:05:38.0 +0800
+++ wine-0.9.54-fe.rootwin/dlls/winex11.drv/x11drv_main.c	2008-02-12 23:20:33.0 +0800
@@ -447,6 +447,8 @@
 Display *display;
 XVisualInfo *desktop_vi = NULL;
 const char *env;
+int new_root = -1;
+XWindowAttributes attr;
 
 setup_options();
 
@@ -525,6 +527,22 @@
 
 if (TRACE_ON(synchronous)) XSynchronize( display, True );
 
+// Handle WINEROOTWIN environment variable
+if (getenv( "WINEROOTWIN" ))
+{
+const char* root_str = getenv( "WINEROOTWIN" );
+if (0 == strncmp( root_str, "0x", 2 ))
+sscanf( root_str + 2, "%x", &new_root );
+else
+sscanf( root_str, "%d", &new_root );
+if ((new_root >= 0)
+&& XGetWindowAttributes( display, (Window)new_root, &attr ))
+root_window = (Window)new_root;
+}
+
+if (root_window != DefaultRootWindow( display ))
+xinerama_init( attr.width, attr.height );
+else
 xinerama_init( WidthOfScreen(screen), HeightOfScreen(screen) );
 X11DRV_Settings_Init();
 
diff -Naur -wbBE wine-0.9.54-fe/loader/wine.man.in wine-0.9.54-fe.rootwin/loader/wine.man.in
--- wine-0.9.54-fe/loader/wine.man.in	2008-01-26 00:05:38.0 +0800
+++ wine-0.9.54-fe.rootwin/loader/wine.man.in	2008-02-12 23:52:34.0 +0800
@@ -207,6 +207,14 @@
 .I DISPLAY
 Specifies the X11 display to use.
 .TP
+.I WINEROOTWIN
+If set,
+.B
+wine
+will embed its desktop under an existing X11 window with the ID specified by
+this variable.  This allows fullscreen Windows applications to be embedded
+inside X11 applications.
+.TP
 OSS sound driver configuration variables
 .TP
 .I AUDIODEV




How is the testsuite built for windows

2008-02-13 Thread Maarten Lankhorst
Hi all,

I'm trying to get the tests to run in windows, but I'm not sure how to build
them. Any attempt to do mingw cross compiling fails badly.

Who managed to compile all wine tests for windows, and how is it done?

Cheers,
Maarten.