O bug que não gosta do sábado e da terça.

Hoje fui surpreendido pelo bug mais esquisito de todos os tempos, o gnome-shell não funcionou porque um de seus complementos(gnome-extensions) responsável por exibir o calendário não é capaz de exibir a palavra “Sábado” e “Terça”. Este complemento já vem ativado com o gnome-shell por padrão, sem ele, o gnome-shell também não carrega. Daí a explicação de porque às vezes o gnome-shell simplesmente deixa de funcionar de um dia para o outro.

O bug ocorre porque uma string de tradução foi escrita quando estava codificada num locale, geralmente UTF-8, mas aí seu sistema está com ISO-8859-1 ou outro qualquer, daí então um programa vai apresentar ou realizar algum calculo com essas strings e obtém um “Invalid UTF-8”. Esse tipo de erro deveria ser tratado dentro de um programa, mas aparentemente os complementos para o GNOME não fazem isso gerando um “Fatal Error” e deixando de funcionar. Curiosamente, o gnome-shell deveria se proteger quando um complemento deixa de funcionar por um “Fatal Error”, mas não faz isso e também deixa de funcionar. Se uma das grandes vantagens do gnome-shell é sua personalização através de complementos, então ele deverá se preparar melhor  para que o mal comportamento deles não possam causar instabilidade no sistema por inteiro.

A solução para esse problema é simples (Obrigado Fábio Nogueira por se adiantar), edite alguns arquivos de configuração, em alguns casos alterando linhas e em outros adicionando-as, seguem-se :

/var/lib/locales/supported.d/local :

pt_BR ISO-8859-1
en_US.UTF-8 UTF-8

trocar para :

pt_BR.UTF-8 UTF-8
en_US.UTF-8 UTF-8

A linha “pt_BR.UTF-8 UTF-8” é colocada no lugar de “pt_BR ISO-8859-1”.

/etc/default/locale :

LANG="pt_BR"
LANGUAGE="pt_BR:pt:en"
LC_MESSAGES="pt_BR.UTF-8"
LC_CTYPE="pt_BR.UTF-8"
LC_COLLATE="pt_BR.UTF-8"
LC_ALL="pt_BR.UTF-8"

Salve estes arquivos com a modificação sugerida e feche o editor de textos. E tenha muita atenção, inclusive as aspas(“), pois um erro de sintaxe nesses arquivos e provavelmente seu sistema GNOME/KDE/… não subirá mais, até mesmo a montagem de discos durante o boot pode estar comprometida.

Para efetivar as mudanças nos arquivos de configurações modificados, execute no terminal (na sequencia) :

sudo locale-gen pt_BR.UTF-8 en_US.UTF-8
sudo locale-gen --purge
sudo dpkg-reconfigure locales

Lembrando que as citações a “en_US*” que houverem neste artigo, é apenas no caso de manter o idioma inglês. No Ubuntu 11.10 eu não recomendo que remova o idioma inglês do sistema, de fato, pode haver comportamento estranho de alguns programas quando se faz isso. Aqui, toda vez que removo o idioma inglês me aparecem três outros idiomas “zh_CN:zh_HK:zh_TW” que eu julgo serem chineses e que não são passiveis de remoção, ou pelo menos, o Language Settings do Ubuntu não deixa que remova-os (?).  Nesse caso, a remoção do idioma em inglês é um tiro pela culatra.

Como testar se o procedimento acima funcionou corretamente e não terei problemas com “Invalid UTF-8” em meus programas ? Bem, eu faço assim, mando iniciar o sistema e fazer as checagens do disco. Você deve estar se perguntando : “O que isso tem a ver com o idioma ?”. A principio nada, mas quando o sistema faz checagem dos discos apresenta uma mensagem que é importante para mim :

"Pressione [C] para cancelar as verificações..."

Então, quando vejo que “verificações” está escrito corretamente então significa que minhas alterações funcionaram, caso contrário, o “çõ” fica esclerosado exibindo caracteres não naturais. Para realizar este teste :

sudo touch /forcefsck
sudo reboot

Depois disso, o computador será reiniciado e iniciará o procedimento de varredura do disco.

A minha iso personalizada já inclui a correção deste bug, ubuntu-11.10c-hamacker-amd64.iso está na programação.

  1. #1 por Carlos Felipe Araújo em 12 \12\UTC novembro \12\UTC 2011 - 10:36

    Sugestões de wallpapers

    Ocelot:
    http://wallbase.cc/wallpaper/119511
    http://wallbase.cc/wallpaper/639351

    Outros:
    http://wallbase.cc/wallpaper/1110204
    http://wallbase.cc/wallpaper/1200889

    E pelo amor de Deus, restaura o som de login.. ;/

  2. #2 por hamacker em 12 \12\UTC novembro \12\UTC 2011 - 11:42

    Altere você mesmo na lista de aplicativos de sessão, o programa Gnome Login Sound é o responsável.

  3. #3 por Sergio (@voyeg3r) em 14 \14\UTC novembro \14\UTC 2011 - 13:57

    Retuitei sua dica, boa mesmo. Para lhe premiar vou passar um link do forum Arch Linux
    sobre como colocar o cache do firefox na memória de forma trivial https://wiki.archlinux.org/index.php/Firefox_Ramdisk

%d blogueiros gostam disto: