running wineboot from the server - HELP!

Shachar Shemesh wine-devel at sun.consumer.org.il
Mon Mar 10 15:35:14 CST 2003


Hi,

I know I promised this over three weeks ago, but things have been very 
busy for me lately.

This email is slightly long. Please please please read through it. I 
need help to get wineboot working automatically (a blocking issue for 
0.9), and I need someone who understands both the server and the loading 
order to comment.

This is the first part of the required change. Applying it at the moment 
does not make sense, as I am not yet sure that this is the right one (it 
may make more sense to point the env at the .exe.so file rather than the 
wrapper - more about that in a second).

I am, more or less, ready to give up. Someone suggested I look at the 
way caching the font metrics delays normal load. Well, I tried. I'm not 
sure I got it right, though.

If I understand correctly, the way to go for wineboot to run is this:
wineboot, upon first run, will aquire a system wide named mutex that 
means "I am working on it". If the mutex exists, it will block on it. 
Once it got it it will immediatly release it and exit.

If the mutext doesn't exist at all, it will aquire it and do it's magic. 
Once done it will release it, but not delete it, and exit. All that is 
left to do is that all programs must load wineboot as part of the 
startup. It may require modifying it to be a DLL instead of an EXE, but 
so be it.

Can someone who understands the server, and the interaction between the 
server and normal apps comment on this scheme?

Also, how do I at all make each and every prog load wineboot.dll?

            Shachar

-- 
Shachar Shemesh
Open Source integration consultant
Home page & resume - http://www.shemesh.biz/

-------------- next part --------------
Index: programs/winelauncher.in
===================================================================
RCS file: /home/sun/sources/cvs/wine/programs/winelauncher.in,v
retrieving revision 1.2
diff -u -r1.2 winelauncher.in
--- programs/winelauncher.in	5 Jul 2002 21:18:41 -0000	1.2
+++ programs/winelauncher.in	10 Mar 2003 21:27:27 -0000
@@ -37,6 +37,7 @@
 WINEBIN=@bindir@
 WINELIB=@libdir@
 WINESERVER=
+WINEBOOT=
 WINEDLLPATH=@dlldir@
 
 #------------------------------------------------------------------------------
@@ -178,12 +179,20 @@
     WINESERVER=$WINEBIN/wineserver
 fi
 
+if [ -x $WINEBIN/wineboot ] ; then
+    WINEBOOT=$WINEBIN/wineboot
+fi
+
 #------------------------------------------------------------------------------
 #  Hey, if we built Wine from source, let's add a little extra fun to
 #   mix it up a bit
 #------------------------------------------------------------------------------
 if [ -x $WINEBIN/server/wineserver ] ; then
     WINESERVER=$WINEBIN/server/wineserver
+fi
+
+if [ -x $WINEBIN/programs/wineboot/wineboot ] ; then
+    WINEBOOT=$WINEBIN/programs/wineboot/wineboot
 fi
 
 if [ -r $WINELIB/dlls/ntdll.dll.so ] ; then
Index: tools/winewrapper
===================================================================
RCS file: /home/sun/sources/cvs/wine/tools/winewrapper,v
retrieving revision 1.3
diff -u -r1.3 winewrapper
--- tools/winewrapper	25 Sep 2002 03:29:56 -0000	1.3
+++ tools/winewrapper	23 Feb 2003 13:49:11 -0000
@@ -70,8 +70,9 @@
 fi
 WINEDLLPATH="$topdir/dlls:$topdir/programs"
 WINESERVER="$topdir/server/wineserver"
+WINEBOOT="$topdir/programs/wineboot/wineboot"
 WINELOADER="$topdir/miscemu/wine"
-export LD_LIBRARY_PATH WINEDLLPATH WINESERVER WINELOADER
+export LD_LIBRARY_PATH WINEDLLPATH WINESERVER WINEBOOT WINELOADER
 
 # any local settings ?
 if [ -f "$topdir/.winewrapper" ]


More information about the wine-devel mailing list