Fresh kde-3.1.1-b1 cannot find some dlls
Jan Henrik Sylvester
jan_henrik at web.de
Thu Jun 19 03:15:40 CEST 2003
> Von: Ralf Habacker [mailto:Ralf.Habacker at freenet.de]
> > > From: ralf.habacker at freenet.de
> > > Hi,
> > >
> > > >Hi!
> > >
> > > >I installed "setup-kde-3.1.1-b1.exe" to a cygwin install, on which
> > > >no version of kde was installed before.
> > >
> > > >After adding the kde path by hand (the installer did not do it),
> > > >at least some of it runs fine. During startup I get errors from
> > > > kwin.exe (kwin.dll not found)
> > > > kicker.exe (cygkickermain-1.dll not found)
> > > >and the desktop does not work (as you can imagine).
> > > >From kde 2 beta, I remember you had to install some kde 1 package,
> > > >but I cannot remember which one and I haven't found anything in
> > > >the release notes or requirements.
> > >
> > > >So, what is missing?
> > >
> > > Which os are you using ? We have encountered environment problem
> > > with Xp and ME. There is a patched startkde.bat in this list.
> > > Search for startkde.bat or similar.
> > Thanks. Windows XP. I'll look for it. Though, I did add
> > C:\cygwin\opt\kde3\bin to my path manually. Is the installer
> > supposed to do that? For ME and any NT version you need to append
> > it to the value of the registry key "PATH" under
> > "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment"
> > in HKEY_LOCAL_MACHINE and then post the message below.
> The recent setup sets the environment HKCU\environment not HKLM\.....
> Probably this is the problem. I've added the setup related things
> to the cvs
> (If anyone like to take a look see cvs dir setups/kde3)
> I'm preparing a binary update tomorrow with the registry hack for testing.
The problem was with the environment -- I assumed it was only the path.
The startup-script depends on CYGWIN_ROOT, which your installer set for
the current user (during install) only.
I don't know, whether or not KDEDIR and LTDL_LIBRARY_PATH are needed or set
by the startup-script, but I copied them to the machine environment anyhow.
For that user KDEHOME is set to "Application Data" in the Windows user
profile directory, which seems weird to me, but as far as I can see, the
startup-script overwrites this setting. I guess it should be removed.
Maybe your startup-script should be a bash-script instead of a batch-file
-- after a login you could use the variables set by the cygwin login script
(and assume defaults within the cygwin tree). That would be a better place
than the Windows environment.
> > Anyhow, I don't think that's the cause. With an Administrator-User
> > KDE starts just fine. The error only occurs as a (Power-) User that
> > has only read access to the cygwin tree except for the /home/<user>
> > (full access) and /tmp (create files / directories, full access to
> > own files, and no access to foreign files) directory. Does KDE need
> > special privileges for other directories?
> I haven't digged into this very deeply. If you like you can try
> to the filemon
> utility from www.sysinternals.com to check this.
I used it during kde startup -- glad that I've got 512 MB of RAM
-- filemon used well above 100 MB. :-)
> > > >BTW: What is the explorer kill and restart during install good for?
> > > >If you want to refresh the environment, an api call like this
> > > > SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,
> > > > (LPARAM) "Environment", SMTO_ABORTIFHUNG, 5000,
> > > >&dummy);
> > > >is more appropriate.
> > >
> > > Thanks for this hint. I will try to add this to the installer.
> Is there anyone who have an idea how to include this into a My inno setup
> Extensions installer script http://www.wintax.nl/isx/ ?
> This is the relating C prototyp
> LRESULT SendMessageTimeout( HWND hWnd,
> UINT Msg,
> WPARAM wParam,
> LPARAM lParam,
> UINT fuFlags,
> UINT uTimeout,
> PDWORD_PTR lpdwResult
> > That does not affect running command prompts and -- well any program
> > that ignores this message. The explorer.exe will reread the
> > environment.
> That seems to be enough , because the kde desktop will be started usually
> through the explorer.
Now I see how things are related. IMHO, you shouldn't use the Windows
environment at all, but use the cygwin profile (if needed) and a
Otherwise, the CYGWIN_ROOT variable should be sufficient, since all others
can be (are already?) set by the startup-script.
The startup-script could set the CYGWIN_ROOT to "C:\cygwin" if it's not set.
I just examined that script. If LTDL_LIBRARY_PATH is needed, you should
introduce a default for that, too. And I don't know, if you really want
to overwrite KDEHOME and SHELL, if they are already set.
> > Thus, it'll affect any new process started, but I'm not
> > sure about the ones started by processes that have not updated their
> > environments.
More information about the kde-cygwin