A quarta versão do KDE foi lançada oficialmente no dia 11 de Janeiro, de lá pra cá diversos blogs comentaram. Desde meados do segundo semestre do ano passado tenho tentado compilá-lo, contudo a restrição de tempo não permitia fuçar muito nos erros que apareciam. As férias e o lançamento da versão “estável” permitiram eu testá-lo com mais facilidade. Caso você não opte por pegar um pacote pré-compilado e deseja compilar o código, irei nesse post apresentar algumas dicas e espero que as mesmas dificuldades, se existirem, sejam solucionadas rapidamente.

Primeiramente, no site do KDE.org há uma seção dedicada aos usuários que desejam instalar compilando o código-fonte, é fundamental lê-la antes de tomar qualquer atitude. Eu segui esse link em inglês, mas recentemente descobri que há uma versão em português. Do artigo eu não criei o usuário kde-devel (fiz a instalação como root) mas respeitando os diretórios para não sobreescrever a versão atual o KDE. No final, ficou algo do tipo:
Minha instalação atual (KDE 3.5) está em /usr/kde/3.5
A nova versão (KDE 4.0) irá ficar em /usr/kde/4.0
Para tal eu editei as linhas referentes ~/.bashrc.
export KDEDIR=/usr/kde/4.0
export KDEHOME=$HOME/.kde4
export KDETMP=/tmp/$USER-kde4
mkdir -p $KDETMP
export KDEDIRS=$KDEDIR
Após o efetuar chekout (co) do código e o cmakekde no kdelibs, kdepimlibs e kdebase você terá terá os executáveis instalados no diretório escolhido. Já é possível testar alguns aplicativos como o konqueror e o kwrite. Se houver um problema na execução de aplicativos pode ser algum problema na localização das bibliotecas compartilhadas, vamos usar o ldd para corrigir o problema. Vamos imaginar que o kwrite não abra, uma saída possível pode ser:
ldd /usr/kde/4.0/bin/kwrite
linux-gate.so.1 => (0xffffe000)
libkdeinit4_kwrite.so => /usr/kde/4.0/lib/libkdeinit4_kwrite.so (0xb7fa0000)
libkdecore.so.5 => not foundlibkparts.so.4 => /usr/kde/4.0/lib/libkparts.so.4 (0xb7d73000)
libkio.so.5 => /usr/kde/4.0/lib/libkio.so.5 (0xb7b3b000)
libktexteditor.so.4 => /usr/kde/4.0/lib/libktexteditor.so.4 (0xb7b0d000)
Mas essa biblioteca existe, está lá pasta /usr/kde/4.0/lib, só que o sistema procura pelas bibliotecas em pastas específicas, como a /usr/lib. Para tal é necessário criar um link simbólico:
cd /usr/lib
ln -s /usr/kde/4.0/lib/libkdecore.so.5 libkdecore.so.5
É preciso fazer esse comando para cada biblioteca que não for encontrada pelo ldd. Se tudo está funcionando, podemos prosseguir e fazer um teste completo com um startx (startkde no .xinitrc) para ver se estava tudo certo, apareceu o seguinte erro:
kdeinit4: symbol lookup error: /usr/lib/libkio.so.5: undefined symbol: _ZN6Strigi14AnalysisResultC1ERKSslRNS_11IndexWrite rERNS_14StreamAnalyzerES2_startkde: Could not start kdeinit4. Check your installation.
O primeiro passo é ver se realmente esse símbolo é não-definido. Usaremos o comando nm para listar os símbolos de um objeto:
nm -D /usr/lib/libkio.so.5 | grep _ZN6Strigi14AnalysisResultC1ERKSslRNS_11IndexWriterERNS_14StreamAnalyzerE
Se apareceu algum resultado é porque existe o símbolo e o problema está na maneira como essa biblioteca é carregada. Descobri a solução nesse fórum. É preciso editar o programa startkde que é na verdade um shell script executável e inserir a seguinte linha em negrito.
LD_BIND_NOW=true kdeinit4 +kcminit_startup
kdeinit4 +kcminit_startup
No fórum, o autor diz que pode-se remover a linha LD_BIND_NOW, mas não tive nenhum erro mantendo-a no script, apenas a inserção da linha em negrito resolveu o problema.
Outro fator crucial são as variáveis de ambiente, há aquelas que o usuário utiliza, a do sistema. É preciso tê-las bem definidas, senão podem acontecer erros como na imagem abaixo, no qual uma instância do KDE 4 e inicializada sobre uma do KDE 3.
Para tal é preciso ajustar. No caso da distribuição utilizada eu alterei os arquivos que remetem ao arquivo /etc/profile, que são as configurações da pasta /etc/env.d/ no qual eu criei um arquivo com todas as variáveis necessárias:
PATH=/usr/kde/4.0/bin
ROOTPATH=/usr/kde/4.0/sbin:/usr/kde/4.0/bin
LDPATH=/usr/kde/4.0/lib
MANPATH=/usr/kde/4.0/share/man
CONFIG_PROTECT=”/usr/kde/4.0/share/config /usr/kde/4.0/env /usr/kde/4.0/shutdown /usr/share/config”
KDEDIRS=”/usr:/usr/local:/usr/kde/4.0″
#KDE_IS_PRELINKED=1
XDG_DATA_DIRS=”/usr/share:/usr/kde/4.0/share:/usr/local/share”
COLON_SEPARATED=”XDG_DATA_DIRS”
Lembre-se que as sessões do kdm normalmente ficam na pasta /usr/share/xsessions na forma de arquivos com a extensão .desktop. Basta criar um novo arquivo preenchendo as seguintes informações:
[Desktop Entry]
Encoding=UTF-8
Type=XSession
Exec=/usr/kde/4.0/bin/startkde
TryExec=/usr/kde/4.0/bin/startkde
Name=KDE4
Abaixo um screenshot:
Qualquer problema, crítica, ou solução, comentem!
