Compilando o KDE 4

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.

KDE

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 found

libkparts.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.

kde34.png

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:

screenshot1-kde4.png

Qualquer problema, crítica, ou solução, comentem!

2 Respostas

  1. Ola bom dia,

    Oque estou precisando nao tem muito a ver com o post, mas vi que vc conhece muito sobre o kde entao se voce puder me ajudar, eu tenho aqui uma rede com compartilhamento autofs, nis, samba etc e estou com um problema, que estou trocando as maquinas e estou instalando o debian squezze com kde4 mas, tenho problema para logar quando utilizo um usuario que ja esta criado no kde3 ele nao carrega o home dos usuarios e da um erro e nem loga, dei uma olhada sobre o assunto tentei adicionar uma linha la no /usr/bin/startkde kdehome=$HOME/.kde4 mas nao obtive sucesso voce saberia me indicar uma solução ???

    Obrigado pela atenção

  2. Your article has verified necessary to myself. It’s quite helpful and you’re clearly extremely knowledgeable in this field. You have popped my personal sight to be able to different views on this kind of subject matter along with intriguing, notable and solid content material.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: