cvs wine + win2k ole + installshield = unhappy

Dan Kegel dank at kegel.com
Fri Feb 7 11:55:50 CST 2003


Gregory M. Turner wrote:
> Implementing NdrClientCall2 is going to be pretty difficult I think.  Getting 
> it to work for installshield seems like a good pet project for Ove & me... 
> what is the application?

An installer made with plain old Installshield 6.

> You could try:
> 
> $ cd ~/c/windows/system
> $ cp /dos/c/WINNT/system32/rpcrt4.dll .
> $ cd ~/c/temp/disk1
> $ ~/wine/wine --dll compobj,storage,ole,ole2,ole32,rpcrt4=n Setup.exe
> 
> but that may not work either...  Using Win2K ole they will probably call some 
> "port" commands to do the IPC... but that's not implemented in wine.

I played around with that, but ended up writing the following recipe
for running Installshield 6 installers:

-------

Installing Software on Wine

If the setup program was written with Installshield 6, here's how to run it:

You'll need to copy a few Windows files from your Windows
partition.  Only Win98 or WinME files will work; Win2K files don't seem
to work.  If you do not have a license from Microsoft for these
files on this computer, you cannot legally run this software's
installer under Wine (though you can probably install it under Windows
and run it under Wine).  The files you need are

windows/system/compobj.dll
windows/system/ole2.dll
windows/system/ole32.dll
windows/system/oleaut32.dll
windows/system/stdole32.tlb
windows/system/storage.dll
windows/system/rpcrt4.dll

Copy these to your fake Windows directory, e.g. ~/c/windows/system.

For instance,
$ cd /dos/c/windows/system
$ cp compobj.dll ole2.dll ole32.dll oleaut32.dll stdole32.tlb storage.dll rpcrt4.dll ~/c/windows/system

Start the installer (SETUP.EXE) with the command
$ wine --dll compobj,storage,ole,ole2,ole32,oleaut32,rpcrt4=n SETUP.EXE

If you get the error "Error installing iKernel.exe: (0x1400)" at any point,
it's probably because there are leftover processes from a previous try.
You can verify this with the command
$ ps augxw | grep wine

If that command shows old copies of wine, kill them with the command
$ killall wine

Repeat the ps to make sure the old wines are gone.

If you get errors like "Setup failed to launch installation engine: (0x80070008),
it may mean you haven't copied the right Windows files.

The installation will procede normally, if slowly.
At the end, installation may hang after all files are installed.
If this happens, abort the installation by pressing control-C in the window
it was started in.

---------

And yes, native oleaut32 is needed.  Or at least it was with 20030115; this
recipe was for people without cvs.  I bet it hasn't changed much since
the Jan 15th release, though.

Maybe that recipe could be added to the FAQ?

- Dan

-- 
Dan Kegel
http://www.kegel.com
http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=78045




More information about the wine-devel mailing list