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 @@ [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ WINESERVER= +WINEBOOT= [EMAIL PROTECTED]@ #------------------------------------------------------------------------------ @@ -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" ]