Re: Wine/Interix -- The pros and cons.

2006-03-26 Thread Steven Edwards
Hi,

In short it wont work. In long see inline.

On 3/24/06, Segin [EMAIL PROTECTED] wrote:
 Would Wine load the .dll.so's? Since Interix uses PE for it's native
 format (running on Windows, duh), Would Wine load the .dll.so's? Would
 it reject them being in PE format and having the 'POSIX Layer' attribute
 set, or could we hack on a patch to detect if Wine itself is running in
 said layer, and load them if it is? Would that even *work*? And how
 about detecting Winelib applications? It might get detected as a regular
 Windows app, and ... uh-oh... (let's just say it isn't pretty)

Wine should still load its builtin libs first. Your going to need to
add some configure magic to detect interix/SFU and get it building.
The last time I tried I ran in to conflicts with headers. It seems
what Microsoft has for basic types in the POSIX headers does not match
what windows has.

 There are several obvious pros: You can test Wine almost fully under
 Windows without mingling with Windows's native componets. This would
 allow for better and faster compatability tests. We could also see what
 unknowns exist in Interix -- Althought not nessessrarly useful to Wine
 developers itself, it could mean a whole new generation of applications
 which are half-Unix, half-Windows, if the right holes are found.

You can already test any of the pure Win32 Wine dlls if you do a mingw
build. Trying to to a port is a good bit of work.

A port to SFU has the same problems as a Cygwin port. Your going to
have to implement support in ntdll and wineserver for
get/setthreadcontext. For simple Win32 apps that can just be stubbed
but then you have the harder task of implementing or working around
the lack of send/recvmsg. I think there was a hack to emulate it for
cygwin but I never got around to testing it so you might be able to
come up with a creative solution that will work for both targets. My
advice would be to get it working on cygwin first and then port to
SFU.

Thanks

--
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: Winetools - wine doors

2006-03-26 Thread Karl Lattimer
On Sat, 2006-03-25 at 14:02 -0500, Segin wrote:
 Also note that most of Winetools prior usefullness was killed when we 
 killed ~/.wine/config

Now we rely on winereg? is that correct (I should know this ;)

I've been making some steady progress today, managed to get CD auto
detection working (from some freevo code) and I've added basic SAX
parsing for package lists. I hope I can get a base shell working soon. 

I would love it if people would get involved, a few good coders can have
SVN/trac access I'll work on opening up to the public soon.

pygtk/pyxml/wine hackers/shell scripters very welcome.

Some clarification i need is on how wine executes applications.

AFAIK this is how it works.

wine runs the wineserver and wine-pthread and when the application exits
cleanly wineserver goes too, otherwise winedbg starts. I have code
waiting for wine exit (similar to winetools) which currently works but
I'd like to make sure i'm on the right track ;)

I'd also like to know what is the best way to kill a wine process and
when it should be killed (currently I'm waiting indefinitely for wine to
exit, then waiting 5 minutes on the wineserver).

When is the best time to use wineboot? What purpose does it serve, what
can it break.

Cheers,
  K,





stir stir stir

2006-03-26 Thread Mike Hearn
Deprived of patch-writing time lately I can do little more than cheer the
team on. And of course, take pot-shots at our partners over the wall,
the Windows team themselves ;) Hello there if you're reading this!

In the comments of this anonymous MS employees blogs post (great reporting
here huh) we can find this post by somebody who claims to be on an
appcompat testing team:

 
http://minimsft.blogspot.com/2006/03/vista-2007-fire-leadership-now.html#c114300669155836359

in which the following totally astonishing claim is made:
  
Results: Client appcompat % hovering at 40% (GASP - INTERNAL INFO... 
better moderate this one out)

which is explained due to reduction of testing staff, loss of team morale
and outsourcing of testing.

Can it really be true that the Vista builds have such appallingly low
application compatibility? Anybody who has access to Vista builds want to
comment on this?

Given they (now) have half a year to clean it up, does anybody want to
take bets on what the score will be by the time it
releases? I wonder what this number means (presumably that 40% of apps
work perfectly out of the box), and I also wonder what our own appcompat
score is.

Wouldn't it be scary if Linux ends up more Windows compatible than Windows
is! :)

thanks -mike






Re: WINECFG: use directory harddiskvolume1 for mapping drive C instead of drive_c

2006-03-26 Thread Hans Leidekker

Any word on why this patch wasn't applied? There's a test marked todo_wine
by Stefan Leichter that demonstrates this behaviour. And here's the relevant
part of a relay log:

 0009:Call kernel32.QueryDosDeviceA(7fb0fe68 a:,7fb0f8c8,0400) 
ret=0100503a
 0009:Ret  kernel32.QueryDosDeviceA() retval= ret=0100503a
 0009:Call kernel32.QueryDosDeviceA(7fb0fe68 b:,7fb0f8c8,0400) 
ret=0100503a
 0009:Ret  kernel32.QueryDosDeviceA() retval= ret=0100503a
 0009:Call kernel32.QueryDosDeviceA(7fb0fe68 c:,7fb0f8c8,0400) 
ret=0100503a
 0009:Ret  kernel32.QueryDosDeviceA() retval=000c ret=0100503a
 0009:Call ntdll._strlwr(7fb0f8c8 ..\\drive_c) ret=01005053
 0009:Ret  ntdll._strlwr() retval=7fb0f8c8 ret=01005053
 0009:Call ntdll.strstr(7fb0f8c8 ..\\drive_c,01002638 harddisk) ret=01005069
 0009:Ret  ntdll.strstr() retval= ret=01005069
 0009:Call ntdll.strstr(7fb0f8c8 ..\\drive_c,01002630 ramdisk) ret=0100507d
 0009:Ret  ntdll.strstr() retval= ret=0100507d
 0009:Call kernel32.QueryDosDeviceA(7fb0fe68 d:,7fb0f8c8,0400) 
ret=0100503a
 ...

I know this affects the IE7 and MSI 3.1 installer, but probably more.

--

I've seen installers from Microsoft call QueryDosDevice on the whole
alphabet and search any returned object name for the substrings harddisk
and ramdisk. On Wine they normally won't find any and quit with the
following error:

  Unable to find a volume for file extraction

QueryDosDevice on Wine returns the filename pointed to by the drive link
beneath the dosdevices directory. In a default Wine installation this
is ../drive_c. So a simple fix for this problem is to use the a different
name for that directory, for example the name used for the first harddisk
in the NT object namespace: harddiskvolume1.

 -Hans

Changelog
  Use directory harddiskvolume1 for mapping drive C instead of drive_c.
12bdc95f62dc7adedca4b9f48262c4611a287b1b
diff --git a/programs/winecfg/drivedetect.c b/programs/winecfg/drivedetect.c
index 7c3cf3d..2b55ade 100644
--- a/programs/winecfg/drivedetect.c
+++ b/programs/winecfg/drivedetect.c
@@ -172,7 +172,7 @@ static void report_error(int code)
 if (gui_mode)
 MessageBox(NULL, No virtual drive C mapped\n\nTry running wineprefixcreate, , MB_OK | MB_ICONEXCLAMATION);
 else
-fprintf(stderr, winecfg: no drive_c directory\n);
+fprintf(stderr, winecfg: no drive C mapped\n);
 
 case NO_HOME:
 if (gui_mode)
@@ -250,14 +250,14 @@ static void ensure_drive_c_is_mapped(voi
 
 if (drives[2].in_use) return;
 
-len = snprintf(NULL, 0, %s/../drive_c, configdir);
+len = snprintf(NULL, 0, %s/../harddiskvolume1, configdir);
 drive_c_dir = HeapAlloc(GetProcessHeap(), 0, len);
-snprintf(drive_c_dir, len, %s/../drive_c, configdir);
+snprintf(drive_c_dir, len, %s/../harddiskvolume1, configdir);
 HeapFree(GetProcessHeap(), 0, drive_c_dir);
 
 if (stat(drive_c_dir, buf) == 0)
 {
-add_drive('C', ../drive_c, Virtual Windows Drive, 0, DRIVE_FIXED);
+add_drive('C', ../harddiskvolume1, Virtual Windows Drive, 0, DRIVE_FIXED);
 }
 else
 {
diff --git a/programs/winecfg/driveui.c b/programs/winecfg/driveui.c
index ea80889..2dfc2a4 100644
--- a/programs/winecfg/driveui.c
+++ b/programs/winecfg/driveui.c
@@ -342,7 +342,7 @@ static void on_add_click(HWND dialog)
 
 WINE_TRACE(allocating drive letter %c\n, new);
 
-if (new == 'C') add_drive(new, ../drive_c, System Drive, , DRIVE_FIXED);
+if (new == 'C') add_drive(new, ../harddiskvolume1, System Drive, , DRIVE_FIXED);
 else add_drive(new, /, , , DRIVE_UNKNOWN);
 
 fill_drives_list(dialog);
@@ -525,7 +525,7 @@ static void on_edit_changed(HWND dialog,
 
 path = get_text(dialog, id);
 HeapFree(GetProcessHeap(), 0, current_drive-unixpath);
-current_drive-unixpath = path ? path : strdupA(drive_c);
+current_drive-unixpath = path ? path : strdupA(harddiskvolume1);
 
 WINE_TRACE(set path to %s\n, current_drive-unixpath);
 
diff --git a/tools/wineprefixcreate.in b/tools/wineprefixcreate.in
index 3effdb5..dcff18c 100644
--- a/tools/wineprefixcreate.in
+++ b/tools/wineprefixcreate.in
@@ -142,8 +142,8 @@ WINEPREFIX=`cd $WINEPREFIX  pwd`
 if [ ! -d $WINEPREFIX/dosdevices ]
 then
 mkdir $WINEPREFIX/dosdevices
-[ -d $WINEPREFIX/drive_c ] || mkdir $WINEPREFIX/drive_c
-ln -s ../drive_c $WINEPREFIX/dosdevices/c:
+[ -d $WINEPREFIX/harddiskvolume1 ] || mkdir $WINEPREFIX/harddiskvolume1
+ln -s ../harddiskvolume1 $WINEPREFIX/dosdevices/c:
 ln -s / $WINEPREFIX/dosdevices/z:
 fi
 



Re: WINECFG: use directory harddiskvolume1 for mapping drive C instead of drive_c

2006-03-26 Thread Alexandre Julliard
Hans Leidekker [EMAIL PROTECTED] writes:

 Any word on why this patch wasn't applied? There's a test marked todo_wine
 by Stefan Leichter that demonstrates this behaviour. And here's the relevant
 part of a relay log:

QueryDosDevice needs to be fixed to return real device names instead
of just reading the symlink. We can't require people to name their
directories harddisk something. I'm working on it but it needs a bit
more device infrastructure first.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: Alexandre Julliard : server: Class and global atoms should not be local to a window station.

2006-03-26 Thread Alasdair Sinclair

Hi

This patch breaks firefox-1.5 on fedora core 4 (x86-64).


err:ole:CoGetClassObject class {4955dd33-b159-11d0-8fcf-00aa006bcc59}
not registered
err:ole:CoGetClassObject no class object
{4955dd33-b159-11d0-8fcf-00aa006bcc59} could be created for for context 0x1
fixme:ole:CoCreateInstance no classfactory created for CLSID
{4955dd33-b159-11d0-8fcf-00aa006bcc59}, hres is 0x80040154
wine: Unhandled page fault on write access to 0x001a at address
0x6033e436 (thread 0009), starting debugger...
WineDbg starting on pid 0x8
Unhandled exception: page fault on write access to 0x001a in 32-bit
code (0x6033e436).
fixme:dbghelp:sffip_cb NIY on
'c:\builds\tinderbox\Fx-Mozilla1.8\WINNT_5.2_Depend\mozilla\xpcom\build\xpcom_core.pdb'
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:1007 GS:0063
 EIP:6033e436 ESP:7fa0f790 EBP:7fa0f7c0 EFLAGS:00010246(   - 00
-RIZP1)
 EAX:0001 EBX:7f5e866c ECX: EDX:7fa0f704
 ESI: EDI:7fa0fd18
Stack dump:
0x7fa0f790:  0001002a 7f5c580a 0001002a 0113
0x7fa0f7a0:   139c 7fca1cf9 7f5e866c
0x7fa0f7b0:  7fa0f7c0 7f5e866c 0001002a 7fa0fd18
0x7fa0f7c0:  7fa0f800 7f5c6490 6033e417 0001002a
0x7fa0f7d0:  0113  139c 7e270598
0x7fa0f7e0:  7fa0f9ac 7fa0f824 7f595f80 0113
0200: sel=1007 base=7fe6a000 limit=1fff 32-bit rw-
Backtrace:
=1 0x6033e436 in xpcom_core (+0x2e436) (0x6033e436)
  2 0x7f5c6490 WINPROC_CallWndProc+0x70(hwnd=register not in topmost
frame, wParam=0x0, lParam=0x139c) [/ppp/wine/wine-git/dlls
/user/winproc.c:418] in user32 (0x7f5c6490)
  3 0x7f5cd2de CallWindowProcW+0x12e(func=0x7f624c34, hwnd=0x1002a,
msg=0x113, wParam=0x0, lParam=0x139c) [/ppp/wine/wine-git/dll
s/user/winproc.c:3095] in user32 (0x7f5cd2de)
  4 0x7f5926ff DispatchMessageW+0xaf(msg=0x7fa0fd18)
[/ppp/wine/wine-git/dlls/user/message.c:3001] in user32 (0x7f5926ff)
fixme:dbghelp:sffip_cb NIY on
'c:\builds\tinderbox\Fx-Mozilla1.8\WINNT_5.2_Depend\mozilla\browser\app\firefox.pdb'
  5 0x0051866b in firefox (+0x11866b) (0x0051866b)
  6 0x007fd417 in firefox (+0x3fd417) (0x007fd417)
  7 0x00401012 in firefox (+0x1012) (0x00401012)
  8 0x7fc8a00c start_process+0xec(arg=0x0)
[/ppp/wine/wine-git/dlls/kernel/process.c:845] in kernel32 (0x7fc8a00c)
  9 0xf7fcc4f7 wine_switch_to_stack+0x17 in libwine.so.1 (0xf7fcc4f7)

Alexandre Julliard wrote:

Module: wine
Branch: refs/heads/master
Commit: 9873494ced8405113381266b4d99c2a9f3002cb1
URL:
http://source.winehq.org/git/?p=wine.git;a=commit;h=9873494ced8405113381266b4d99c2a9f3002cb1

Author: Alexandre Julliard [EMAIL PROTECTED]
Date:   Wed Mar 22 22:13:40 2006 +0100

server: Class and global atoms should not be local to a window station.

---

 dlls/user/tests/winstation.c |   43 +-
 server/atom.c|   27 --
 server/class.c   |   24 ---
 3 files changed, 62 insertions(+), 32 deletions(-)

diff --git a/dlls/user/tests/winstation.c b/dlls/user/tests/winstation.c
index 4bc1941..a595718 100644
--- a/dlls/user/tests/winstation.c
+++ b/dlls/user/tests/winstation.c






Re: Page fault xmlspy 2006 wine .9.10

2006-03-26 Thread Grant Lewis
Eric Pouech wrote:

 Grant Lewis wrote:
 It's repeatable. I can launch the progam fine but when I click in certain
 parts of the gui I generate the page fault and the program dies.
 
 wine: Unhandled page fault on write access to 0x001f at address
 0x7d62d6 (th
 read 0009), starting debugger...
 WineDbg starting on pid 0x8
 First chance exception: page fault on read access to 0x in 32-bit
 code (
 0x7ffa7292).
 does the attached patch help ?
 A+

I'll try incorporating your patch into the gentoo ebuild and report back if
it helped my situation.

Gramt





Regression in wine made 2006/03/23

2006-03-26 Thread Pavel Troller
Hi!
  I would like to report a regression made by commits issued 2006/03/23 at the
evening. Just now I don't have bisecting environment available, I've just made
a simple CVS regression testing and found the above commit (it modifies
multiple areas) guilty.
  The problem is that DC++ gui is totally screwed up now. It tries to render,
but mostly unsuccessfully, it's full of garbage and doesn't display, what it
should. It doesn't update when necessary. DC++ is simply unusable now.
  I should leave my testing machine now. I can try to pinpoint a particular
patch responsible for this regression later in the evening today, or tomorrow.
  If anybody has an idea, what change could cause this, please let me know,
it will be more easy for me.
With regards, Pavel Troller