Gitk do Macports crasha retornando “Bus error” no Mac OS X

2

Esta manhã o Gitk simplesmente parou de funcionar. Ele morre retornando “Bus error” no terminal.

> cd ~/mygitproject
> gitk
Bus error

Como o Mac OS X registra todos os crashes no arquivo crashreport.log, fui procurar no log de erros o que havia acontecido na execução do Gitk.

> tail /var/log/crashreporter.log
crashdump: crashdump started
crashdump: Started writing crash report to: /Users/henrique/Library/Logs/CrashReporter/wish.crash.log
crashdump: Finished writing crash report to: /Users/henrique/Library/Logs/CrashReporter/wish.crash.log

Quando um processo aborta subitamente, o CrashReporter registra o problema no arquivo crashreporter.log e cria um outro log detalhado em ~/Library/Logs/CrashReporter/[processo].crash.log.

Essas linhas do crashreporter.log já dão a dica de que a fonte do problema é o wish, interpretator Tcl/Tk que é usado pelo Gitk para criar a interface com o usuário.

Dando uma olhada no wish.crash.log percebi que o Gitk está usando o wish do Macports. O estranho é que eu não lembrava de ter instalado o Tk do Macports. Por isso fui conferir:

>port installed *tk*
The following ports are currently installed:
gtk1 @1.2.10_7 (active)
lablgtk @1.2.7_0 (active)
py25-tkinter @2.5.2_0 (active)
tk @8.5.5_0 (active)

De fato o port tk está instalado, e na mesma listagem está o causador da confusão. O port py25-tkinter depende do port tk, e para resolver esta dependência ambos foram instalados na instalação do py25-tkinter.

>port deps py25-tkinter
py25-tkinter has library dependencies on:
python25
tcl
tk

O Mac OS X vem com o Tk 8.4.7, enquanto o Macports usa o Tk 8.5.5. Pesquisando na internet vi que existem alguns tickets abertos relacionando problemas no wish do macports. Para contornar o problema e fazer o Gitk funcionar novamente, bastou desativar o port Tk e usar o que já vem com o sistema operacional.

>sudo port deactivate tk

você pode gostar também