KDE 3

This frequently answered questions are collected from the kde-cygwin mailing list and the kde-cygwin related sourceforge foren. If you don't find an answer for your problem here, please take a look directly into the mailing list and/or the foren.

Index

    Configuration

    Troubleshooting

    KDevelop


    Configuration

    I don't like to use the whole desktop, only single kde applications. How do I do that ?

    Running kde applications without the desktop requires running some basic application like shown below:
    ipc-daemon2 &
    Xwin -multiwindow &
    kdeeinit --no-kded --nofork &
    
    After that you can run any kde application
    • starting kwrite
      kwrite
      
    • starting kate
      kwrite
      
    • starting kdevelop
      kdevelop
      
    You may save some starting time by using the following sequence:
    kwrite --nofork &
    

    This prevents that kwrite forks itself into the background and release the shell, which is very time consuming. Instead it instructs the shell to run the application independing from the shell, which goes much faster. (I have measured 50% lower startup times for kicker) Please note, that the --nofork isn't supported by all applications, konqueroer for example does not switch itself into the background by default, so you have to start it with:

    konqueror &
    

    How do I move/copy a cygwin-kde installation to another computer ?

    The regular procedure is splited into two parts. Please note that this will only work between WinNT,Win2K and WinXp, not between one of this and Wi n 9x.
    1. Copy the whole directory tree containing the cygwin (by default c:\cygwin) to the other computer.
    2. Export the cygwin related registry settings in a file say cygwin.reg, change the required path in the export file to the new locations and apply the registry settings on the new computer by double clicking on the file.

      The relating registry key is located below HKEY_LOCAL_MACHINE\Software\Cygnus Solutions.

    How do I configure Printing in kde ?

    Printing support in kde-cygwin is currently performed with the ghostscript package.

    • Install the ghostscript-x11 and cygutils package, if not already installed.
    • Edit the file /opt/kde3/bin/cygprint and change the related variables for your settings. The possible values could be extracted from the ghostscript documentation.
      # for network shares use "\\\\server\\share"
      PRINTER="lpt1:"
      PRINTER_TYPE=deskjet
      PAPER_SIZE=a4
      
    • In the printing dialog, select "Print with external application" in the printing dialog and enter cygprint and click "Print" to perform the printing.
      In case of errors you may inspect the file /var/log/cygprint.log, which contains all output from the cygprint tool.

    An example of the used printing script is listed below:

    $ cat >/opt/kde3/bin/cygprint
    #!/bin/sh
    PRINTER="\\\\server\\share"
    #PRINTER="lpt1:"
    PRINTER_TYPE=deskjet
    PAPER_SIZE=a4
    
    LOG_FILE=/var/log/cygprint.log
    echo $0 $* >>$LOG_FILE
    if test -z "$1"; then
            echo "usage $0 "
            exit 1
    fi
    #$TMPFILE=$1
    if test -n `echo $1 | grep "^/tmp"`; then
            TMPFILE=$1.$$
    else
            TMPFILE=/tmp/$1.$$
    fi
    GS_PARAMS="-q -sPAPERSIZE=$PAPER_SIZE -sDEVICE=$PRINTER_TYPE -sOutputFile=$TMPFILE -dNOPAUSE -dBATCH $1"
    echo "gs $GS_PARAMS" >>$LOG_FILE
    gs $GS_PARAMS >>$LOG_FILE 2>&1
    
    # in case of errors
    if test "$?" != "0"; then
            exit $?
    fi
    
    if test -f $TMPFILE; then
            echo "/usr/bin/lpr -l -d $PRINTER $TMPFILE" >>$LOG_FILE
            /usr/bin/lpr -l -d $PRINTER $TMPFILE >>$LOG_FILE 2>&1
            echo "rm $TMPFILE" >>$LOG_FILE
            rm $TMPFILE >>$LOG_FILE 2>&1
    fi
    exit $?
    

    The default kde fonts looks very ugly - How could I use Windows True Type fonts ?

    Install the Windows True Type fonts with the KControl font installer module.

    You should change your current cygwin user to root

    (old)   Habacker:unused_by_nt/2000/xp:11002:10545:....:/home/Habacker:/bin/bash
    
    (new)   Habacker:unused_by_nt/2000/xp:0:0:....:/home/Habacker:/bin/bash
    
    • Create a new directory /usr/X11R6/lib/X11/fonts/truetype if not existant from the bash shell:
      mkdir /usr/X11R6/lib/X11/fonts/truetype
      
    • Run from kicker: System Administration->Font Installer or start
      kcmshell system/kcmfontinst
      
    • Switch the view to the "extended mode", select the folder "truetype" and click "Add".
    • Then go to the font directory of your windows installation, which may depend on your os type and cygwin mount path settings e.g.
      /cygdrive/c/Windows/fonts or
      /cygdrive/c/WINNT/fonts or
      /c/Windows/fonts or
      /c/WINNT/fonts
      
    • select the desired fonts and select 'OK'.
    • Then press "Apply" to add the selected fonts to you KDE installation. This step may need some time. Error messages while performing this step could be ignored.
    • At last you can change KDE font settings with
      kcmshell LookNFeel/fonts
      
    • If you are using kdebase release 3.1.4-1 or lower the newly created font path isn't available for X in further X session, which could be fixed by a little shell script inserted into /opt/kde3/bin/startkde. How to apply:

      Search for the following code lines in /opt/kde3/bin/startkde

      #
      # Check first for current resolution/depth
      #
      export X=`xdpyinfo |grep dimensions:|cut -d " " -f 7|cut -d "x" -f 1`
      export Y=`xdpyinfo |grep dimensions:|cut -d " " -f 7|cut -d "x" -f 2`
      export D=`xdpyinfo |awk '/depths/ {print $NF}'`
      [ -e "$HOME/.skel/kdebase" ] || INITIAL="--force"
      
      and append the following lines:
      #
      # add truetype font dir to font list exists (kcminit does not do this)
      #
      if test -d "/usr/X11R6/lib/X11/fonts/truetype"; then
              xset +fp /usr/X11R6/lib/X11/fonts/truetype
      fi
      
    • Now you are ready to use the Windows true type fonts. We have good very experiences on Windows XP with the Verdana or Tohama fonts.

    Does font anti-aliasing works ?

    Currently no, but a good workaround is to use the Windows true type fonts. See topic \faqref[truetype].

    How do I run a minimal KDE 3 ?

    After you have installed the latest qt and KDE release you can start a minimal KDE 3 with the following commands (for KDE >= 3.1.4):
    export SHELL=/bin/bash
    ipc-daemon2 &
    XWin -multiwindow -clipboard &
    kdeinit +kcminit &
    kicker & (optional)
    ... &
    
    No you can start any kde application from the bash shell by using the following command:
     &
    
    where is the name of the requested kde application.

    Troubleshooting

    I get an error message "*** unable to remap ... to same address as parent" What could I do ?

    This error indicates an dll loading problem while forking a cygwin process. This problem could be solved by using the rebaseall utility of the rebase package which is written by Jashon Tishler (application) and RalfHabacker (rebasing related win32 imagehelp libary replacement for all cygwin supported platforms).

    To fix this problem please install the rebase utility through the cygwin installer (if not already present), stop all cygwin processes but bash and run the following command (add -v if you like to get a detailed list of the performed actions):

    $ rebaseall [-v]
    
    This command searches all installed dll's and take care, that dll's does have uniq base addresses.
    Windows XP note:
    It may be required to restart your computer due to a problem with the windows dll cache. If some of your cygwin applications does not work as before rebasing, please restart.

    Why must I run rebaseall after a clean install ?

    This rebaseall command gives each cygwin related dll a uniq base address to ensure an ordered dll loading in a process memory area.

    By default the linker gives all dll's the same base address (0x10000000), which could result in a "unable to remap" problem, when a cygwin process tries to fork a child process.

    BTW: I have heard, that this rebasing task is also done by other windows installer, but they don't tell about this.

    The cygwin window I used to kick off KDE is outputting that it can't load a library, is that normal?

    kdeinit, kde's application launcher process starts application by forking itself and loading the required application located in a shared library to reduce memory consumption and startup time.

    If kdeinit does not find such a dll, it prints out the informational message "Could not load library! Trying exec....", then it tries to fork and exec the required application directly.

    Why do I get the message "It looks like dcopserver is already running.." ?

    Sometime users experienced the following message:

    ---------------------------------
    
    It looks like dcopserver is already running.
    If you are sure that it is not already running,
    remove /home/de067018/.DCOPserver_minniti_127.0.0.1_0
    and start dcopserver again.
    
    ---------------------------------
    

    This error indicates that the dcopserver is still running probably from a previous KDE session.

    This could happen if one have started KDE before and the session is broken by unusually user intervention lilke killing the xserver or an internal failure (remember KDE is of beta quality).

    In mostly cases you can fix this by starting KDE again. If this does not help open the task manager and kill the dcopserver process.

    Why do I get the message "DCOPClient::attachInternal. Attach failed Authentication Rejected" ?

    This may be file access problem in your home directory. See the relating thread in the kde-cygwin mailing list AW: DCOPClient errors in WinXP for further informations.

    Why do I get the message "Error reading from /home/.../.DCOPserver_..._127.0.0.1_0, didn't read the expected .. bytes" ?

    This error message is caused by a text mounted entry in the cygwin mount table. Make sure, that the root dir is mounted in bin mode.See the following example, which shows a text mounted root path:

    $ mount
    c:\cygwin\usr\X11R6\lib\X11\fonts on /usr/X11R6/lib/X11/fonts type system (binmode)
    c:\cygwin\opt\kde3 on /opt/kde3 type system (binmode)
    c:\cygwin\bin on /usr/bin type system (binmode)
    c:\cygwin\lib on /usr/lib type system (binmode)
    c:\cygwin on / type system (textmode)
                                ^^^^^^^^
    

    Change the mount mode to binary with the following commands:

    $ cd c:/cygwin/bin (or wathever your cygwin root dir is)
    $ umount -s /
    $ mount -s -b c:/cygwin /
    

    Why do I get the message "cygheap_fixup_in_child: Couldn't reserve ... bytes of space for cygwin's heap ..." ?

    If you got an error message similar to:
    ... cygheap_fixup_in_child: Couldn't reserve 9891792 bytes of space for cygwin's heap (0x61810000 < 0x6C0000 >) in child, Win32 error 487
    c:\cygwin\....exe (3684): *** m.AllocationBase 0x0, m.BaseAddress 0x61810000, m.RegionSize 0x1B0000, m.State 0x10000
    
    this indicates mostly a rebase problem. Cygwin tries to reserve an amount of memory on top of the address area of the cygwin1.dll. If this area is already allocated by another dll or shared memory segment, the allocation fails and the above mentioned error is raised.
    You can fix this problem by rebasing all cygwin related dll's with a base address below the cygwin1.dll itself.
    rebaseall -b 0x61000000
    

    Why do I get the error message "The application failed to initialize properly 0xc0000005)..." when running applications I have self compiled ?

    This error indicates a problem of the ld auto-import support and newer gcc releases using readonly variables. To avoid this problem you should uses a recent qt/cygwin releases (>3.3.3), which contains all required support (see mkspecs/cygwin-g++) or add the required stuff by hand:

    • download the specific ld linker script and either
    • add the following switches to your compile line:
      ... -fdata-sections
      
      and the following switches to your link line:
      ... -Wl,--enable-runtime-pseudo-reloc -Wl,--script,< YOUR_PATH >/i386pe.x-no-rdata
      
    • or use the following configure line
      CFLAGS="-fdata-sections" LDFLAGS="-Wl,--enable-runtime-pseudo-reloc -Wl,--script,< YOUR_PATH >/i386pe.x-no-rdata" .. configure ... 
      

    With cygwin 1.5.5-1 starting the small KDE desktop works, but starting full KDE hangs - What could I do ?

    Is seems that cygwin 1.5.5-1 contains a bug, which lets kcminit hangs. Currently three workarounds are known:

    1. Remove the term '+kcminit' from /opt/kde3/startkde.bat or /opt/kde3/bin/startkde if you are starting kde from a bash shell. Please note that this disables special keyboard layout settings, which is no problem is you are using the standard keyboard.
    2. downgrade to cygwin 1.5.4-1, which does not contain this error.
    3. install a cygwin snapshot from http://www.cygwin.com
    4. wait for the next cygwin upgrade

    After running startkde.bat under windows 9x I got the following messages: Out of environment space - What can I do ?

    The W9x dos shell default environment space is to small for kde. To extend see Microsoft Knowledge Base Article - 230205.

    I have installed the KDE3 devel setup package, but I cannot find any *.dll.a files in the kde's lib dir. What's going wrong ?

    The *.dll.a files are so-called "import libraries" for the linker and are symbolic links to the related dll. It seems that the inno setup compiler is not able to deal with symbolic links. I will see how this could be fixed in further releases.

    A workaround is to use the following sh script, which recreates the necessary links. Enter /opt/kde3/bin before running it.

    for i in `ls *.dll`; do cd ../lib;  j=`echo $i | sed \
     "s,-[0-9.-]*dll,.dll,g;s,cyg,lib,g"`; ln -fs ../bin/$i $j.a; cd ../bin ; \
    done
    

    How do I debug the KDE3 start procedure in case of problems ?

    Requirements:
    1. Please make sure, you have a full working cygwin and xfree installation
    2. Don't use rebased or rebinded kde dll's or applications, because this could result in segfault problems. If you not know anything about this terms, you can skip the next sentence. If you have rebased or rebinded reinstall the KDE packages.

    Lets start:

    1. enter a bash shell and set kde related environment
      export KDEDIR=/opt/kde3
      export QTDIR=/opt/kde3
      export KDEHOME=$HOME/.kde3
      export PATH=$KDEDIR/bin:$KDEDIR/lib:$QTDIR/bin:/usr/X11R6/bin:$PATH
      export LTDL_LIBRARY_PATH=$KDEDIR/lib:$KDEDIR/bin:/usr/X11R6/bin
      export LD_LIBRARY_PATH=$KDEDIR/lib:$KDEDIR/bin:/usr/X11R6/bin
      export DISPLAY=127.0.0.1:0
      
    2. start xserver
      $ XWin  -nowinkill -noreset &
      
    3. try to start dcopserver
      $ dcopserver
      

      afterwards the following lines should be printed (note that the printed pid numbers anonymous-xxxx are samples and may be different for you):

      _KDE_IceTransmkdir: Owner of /tmp/.ICE-unix should be set to root
      DCOP: register 'anonymous-xxxx' -> number of clients is now 1
      DCOPServer up and running.
      DCOP: unregister 'anonymous-xxx'
      

      additional the following files should be available (part of the names may be different)

      $ ls /tmp/.ICE-unix/  -l
      total 0
      srwxrwxrwx    1 1002     Kein           51 Jun 14 11:15 dcop2256-1024046152
      
      
      $ ls al ~/.DCOP*
      lrwxrwxrwx 1 1002 Kein 191 Jun 14 11:33 .DCOPserver_BRAMSCHE -> /home/habacker/.DCOPserver_BRAMSCHE_BRAMSCHE-0
      -rwxrwxrwx 1 1002 Kein  55 Jun 14 11:33 .DCOPserver_BRAMSCHE_BRAMSCHE-0
      
      Additional possible errors could be:
      • \faqref[dcopserver_running]
      • \faqref[dcop_auth]
    4. try to start kdeinit
      $ kdeinit --no-dcop --no-kded
      

      then the following lines should be printed (note that xxxx and are placeholders):

      kdeinit: launch -> klauncher (null)
      kdeinit: Launched KLauncher, pid = xxxx result = 0
      DCOP: register 'klauncher' -> number of clients is now 1
      DCOP: unregister 'klauncher'
      DCOP: register 'klauncher' -> number of clients is now 1
      kdecore (KSocket): Trying to listen on Unix /home/xxxxx/.kde2/socket-
       /klauncherjjHrMb.slave-socket
      DCOP: register 'anonymous-xxxx' -> number of clients is now 2
      kdecore (KSocket): Socket bound: 7
      DCOP: new daemon klauncher
      DCOP: unregister 'anonymous-xxxx'
      kdeinit: opened connection to :0.0
      
    5. try to start kded

      $ kded
      

      then the following lines should be printed

      DCOP: register 'kded' -> number of clients is now 1
      DCOP: unregister 'kded'
      DCOP: register 'kded' -> number of clients is now 1
      DCOP: register 'anonymous-2180' -> number of clients is now 2
      kded: Does not exist! (/home/xxx/.kde3/share/servicetypes/)
      kded: Does not exist! (/home/xxx/.kde3/share/mimelnk/)
      kded: Does not exist! (/home/xxx/.kde3/share/services/)
      DCOP: register 'anonymous-2132' -> number of clients is now 3
      kio (KLauncher): KLauncher: Got kdeinit_exec_wait('kbuildsycoca', ...)
      kdeinit: Got EXEC_NEW 'kbuildsycoca' from launcher.
      kdeinit: launch -> kbuildsycoca --incremental
      library=kbuildsycoca.la: No file names kbuildsycoca.la found in paths.
      Could not load library! Trying exec....
      kio (KLauncher): kbuildsycoca (pid 2064) up and running.
      DCOP: register 'kbuildsycoca' -> number of clients is now 4
      kbuildsycoca: Recreating ksycoca file
      kbuildsycoca: Database is up to date
      kdeinit: PID 2064 terminated.
      DCOP: unregister 'kbuildsycoca'
      DCOP: unregister 'anonymous-2132'
      kio (KLauncher): KLauncher: Got kdeinit_exec_wait('kconf_update', ...)
      kdeinit: Got EXEC_NEW 'kconf_update' from launcher.
      kdeinit: launch -> kconf_update ☺
      kio (KLauncher): kconf_update (pid 2736) up and running.
      kdeinit: PID 2736 terminated.
      DCOP: new daemon kded
      
    6. start kwin
      $ kwin &
      

      then the following lines should be printed (note that the printed pid numbers anonymous-xxxx are samples and may be different for you):

      DCOP: register 'anonymous-1380' -> number of clients is now 1
      kio (KLauncher): KLauncher: Got start_service_by_desktop_name('knotify', ...)
      kdeinit: Got EXEC_NEW 'knotify' from launcher.
      kdeinit: launch -> knotify ☺
      kio (KLauncher): knotify (pid 2056) up and running.
      DCOP: register 'knotify' -> number of clients is now 2
      DCOP: register 'anonymous-2056' -> number of clients is now 3
      DCOP: unregister 'anonymous-1380'
      DCOP: register 'anonymous-1380' -> number of clients is now 3
      DCOP: unregister 'anonymous-1380'
      DCOP: register 'kwin' -> number of clients is now 3
      DCOP: new daemon knotify
      DCOP: unregister 'anonymous-2056'
      kdeinit: PID 2056 terminated.
      

    If any of this messages are not printed or looks different, than you have a problem with this step, for which you should search the mailing lists or the foren.

    I've got a message about a missing file 'cygpng12.dll' - What could I do ?

    That means you haven't installed one of the needed cygwin base packages. You should start again the cygwin installer and install the libpng12 packages.

    General hint: If you are missing a file and don't know to which package it belongs, enter it's name on http://cygwin.com/packages. Then it prints out the package(s) where this file belongs.

    KDevelop

    I can't create a new project - what's going wrong ?

    This could be a packaging issue. Try the following command (requires an installed perl package) after installation of kdevelop:
    cd /opt/kde3/share/apps/kdevappwizard/
    for i in ` grep -sHr kdevelop-3.0.0-r8 * | sed 's,:#!.*,,g'` ; do echo $i; \
       perl -pi -e "s,/var/tmp/portage/kdevelop-3.0.0-r8/image/,,g" $i; done
    
     
    Prev:CompilingNext:Overview

    GOWEBCounter by INLINE visitors Hosted by SourceForge