git gui не может запуститься из-за неверного номера версии

Я использую древнюю Ubuntu и после автоматического обновления git-gui перестал работать и вместо этого жалуется

Error in startup script: expected version number but got "1.7.0-"
    while executing
"package vsatisfies $_git_version 1.7.0-"
    (file "/usr/local/libexec/git-core/git-gui" line 1)

Мое "исправление" должно было вернуться /usr/lib/git-core/git-gui следующее

1286c1286
< if {[package vsatisfies $_git_version 1.7.0]} {
---
> if {[package vsatisfies $_git_version 1.7.0-]} {
1542c1542
<   if {[package vsatisfies $::_git_version 1.6.3]} {
---
>   if {[package vsatisfies $::_git_version 1.6.3-]} {

Печально то, что после очередного обновления это случилось снова. Эта проблема, кажется, встречается редко, единственная релевантная ссылка с этого года, которую я нашел, была удаленным вопросом о SO. я использую git 2.0.0, tclsh 8.4,

1 ответ

Решение

В Tcl 8.5 произошло изменение в логике удовлетворения номеров версий пакетов, что позволило ему поддерживать более сложные выражения версий. Похоже, что git-gui использует этот расширенный синтаксис (без необходимости), и поэтому вы будете бороться с ним каждый раз, когда будете обновлять его, пока не обновите свою систему до Tcl 8.5.

Это рекомендуется в любом случае; Tcl 8.4 не поддерживается, будущих выпусков не будет, и изменения в логике версии пакета не будут перенесены.


В баге есть ошибка git-gui код; он должен сказать сам по себе где-то (вероятно, в верхней части основного сценария) именно это:

package require Tcl 8.5

так как он использует функциональность из Tcl 8.5. Это не исправит ситуацию для вас, но скажет вам правильную вещь, которую вы должны сделать с этим.

Другие вопросы по тегам