[RFC] Idea how to fix PATH (and other) problems

Christian Ehrlicher Ch.Ehrlicher at gmx.de
Wed Aug 8 09:49:23 CEST 2007


Von: Andreas Pakulat <apaku at gmx.de>
> On 08.08.07 06:32:51, Christian Ehrlicher wrote:
> > Andreas Pakulat schrieb:
> > >On 07.08.07 10:50:38, Christian Ehrlicher wrote:
> > >>Hi,
> > >>
> > >>Due to recent discussions on k-c-d where to put shared libs on win32,
> I 
> > >>thougt it would be nice to think about what else is different on win32
> / 
> > >>where we have to take care of:
> > >>
> > >>- we have to modify the PATH env var - this makes it impossible to
> move 
> > >>around our install dir
> > >>- we have to take care that we use the correct dependency libs
> > >>- we've two different compilers which are not ABI compatible
> > >>- the application icon is not included in the executable because it's
> handled 
> > >>totally different on non win32
> > >>
> > >>All this makes it hard for a normal user to use kde apps on win32.
> > >>
> > >>My idea is to create a wrapper executable which handles all the things
> above 
> > >>for us. This wrapper is merged with the executable on install time and
> is 
> > >>written with pure win32 api to avoid dependencies. On execution the
> wrapper 
> > >>sets up all things needed to execute the programm (maybe saving some
> settings 
> > >>in the registry to avoid delays on the next run). It sets up the
> correct 
> > >>PATH, looks if all our dep libs are available (in the path) and also
> knows if 
> > >>it's a mingw or msvc binary (and therefore set the path to 
> > >>kde4-install/lib/msvc or kde4-install/lib/mingw).
> > >>After all is done, the real executable is executed with CreateProcess 
> > >>directly from the memory - like a packer for executables. When the app
> is 
> > >>crashing, it should also be possible to get some more informations
> because we 
> > >>launched the app and therefore can play Dr.Watson.
> > >Hmm, sounds like an ok plan to me, as long as this really stays within
> > >the limits of changing some library paths, PATH and packing the
> > >executable. PutHuhn just said some very scary things on IRC (he
> > >mentioned upx and relocating , fixing import tables and what not) and I
> > >don't think thats a good way to make it easier for users (he also said
> > >that would be trial/error and pretty much black magic stuff going on).
> > As I only want to have one executable we'Ve two options
> > a) 'unpack' the real executable into a temp directory and execute it
> > b) execute it from memory
> > 
> > I'd prefer the second, but for the start the first will work too
> 
> Uhm, but CreateProcess doesn't work for execut memory, or does it? I
> mean that solution that PutHuhn presented for executing from memory
> sounded extremly scary and I'd rather have the packager copy the .dll's
> around for the packages instead of that ugly solution.
> 
But with your solution you don't solve anything - I as the user want to execute my program by clicking on my executable and not on another one somewhere else.
As I said - for now we can extract the real executable to the disk and execute it, and later we can try to add in-memory execution.

Christian
-- 
GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS.
Alle Infos und kostenlose Anmeldung: http://www.gmx.net/de/go/freemail



More information about the Kde-windows mailing list