[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: Problems starting kde 2.1 on Cygwin/Win32
From:       Waldo Bastian <bastian () kde ! org>
Date:       2001-04-20 17:46:04
[Download RAW message or body]

On Thursday 20 April 2000 02:18, Ralf Habacker wrote:
> Hi,
> I'm porting kde2.1 with cygwin and Xfree68 on Windows 2000 with (at now) a
> static compiled version compiled. (KDE1.1.2 ist running in an alpha state
> on Windows 2000.)
>
> Now I have problem to start kde. Dcopserver is running, but kdeinit could
> not communcate with kded (see message later)
>
> My question is where I can found informations to get minimal requirements

Here on this list :-)

> (application, files,..) and verifying steps to get running kde and how to
> debug if problems. I have called some test programms shipped with kdelibs
> and kdebase , but I don't know which i have to run first, second, next and
> so one.

There are two important things that you need to get going. DCOP communication 
and shared libraries.

DCOP is the easiest to start with because it doesn't depend on anything else.
Once you have built dcopserver, you should be able to compile & run 
"testdcop". If you have two terminal windows open, you should be able to 
start "testdcop" in one, and if you then start "testdcop" in the other, you 
should see that the first one gets called. You probably want to have a look 
at how testdcop behaves on Unix machine first, so that you know what to 
expect.

As far as shared libraries go. You must be able to compile KDE modules and 
libraries as shared libraries. This is mostly a matter of fixing libtool. 
Once you have done that you should be able to start "kdeinit" and then 
kdeinit should be able to load e.g. "dcopserver.la".

kdeinit always tries to load an applications as a shared module first, if 
that doesn't work, it will try to execute a normal executable.

Eg. in your log you have:
"Could not dlopen library dcopserver.la: no symbols defined
 Could not load library! Trying exec...."

This means that it tries to open "dcopserver.la" as a module first. However 
that fails, and then it falls back to running the "dcopserver" executable.

"kdeinit: Launched DCOPServer, pid = 3192 result = 0
_IceTransmkdir: Owner of /tmp/.ICE-unix should be set to root"

The above is an indication that running the "dcopserver" executable indeed 
worked and that it is running. The second line is a harmless warning.

"Could not dlopen library klauncher.la: no symbols defined
 Could not load library! Trying exec....
 kdeinit: Launched KLauncher, pid = 2736 result = 0"

This is the same sequence, but now for klauncher. First it tries to open a 
shared module "klauncher.la" but that doesn't work. Then it falls back to 
running the "klaucnher" executable, which works.

"Could not dlopen library kded.la: no symbols defined
 Could not load library! Trying exec....
 kdeinit: Launched KDED, pid = 2348 result = 0"

Same for kded.

" ??? kdeinit: Communication error with launcher. Exiting!"

This is bad. Normally kdeinit starts new processes by forking and then 
loading a shared modules or executing the binary. It gets told by klauncher 
when and what applicatins to start. It uses a pipe between kdeinit and 
klauncher to communicate. This error indicates that this pipe is broken. A 
reason for that could be that klauncher crashed.
 
"Debug: DCOP: register 'anonymous-3124' -> number of clients is now 1"
 
This is good. This is an indication that clients can actually communicate 
with the dcopserver.

"??? Very strange! got a DCOPReply opcode, but we were not waiting for a
 reply!"

Are you using the released sources of KDE 2.1 cq. 2.1.1? I have seen this 
error when using the wrong ICE major opcode for DCOP communication. Both X 
Session Management (XSM) as well as DCOP are based on ICE. XSM should get 
major opcode 0 and DCOP should get opcode 1. This normally works fine if you 
register Session Management first and then DCOP. However, if you don't do 
session management, you tend to get major opcode 0 for DCOP. To workaround 
this situation there is a hack in the DCOPServer constructor that registers 
XSM if it wasn't already registered.

Please also note that for KDE 2.2 we are using a modified implementation of 
ICE (instead of the systems libICE) for DCOP to solve some buffering problems.
You might get better/worse/different results with that one.

Cheers,
Waldo
-- 
bastian@kde.org | SuSE Labs KDE Developer | bastian@suse.com

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic