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/
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" ]