termui hanging in FreeBSD

Labels: Non-actionable area/ui/terminal kind/bug

Timeline

njthomas (njthomas) opened

When I start termui, I see the git-bug termui interface, but none of my keys work. I have to kill the process to get out.

  • this is only happening on FreeBSD
  • it is happening FreeBSD 11.3 and 12.1 (I've not tested with 12.0)
  • it is not happening on OpenBSD (tested on 6.6)
  • in FreeBSD, I used both the ports/pkg version (v0.7.1), but I also compiled v0.7.1, and v0.70 from src
  • it does not seem to be SHELL dependent (it happens in both zsh and bash)
  • I have built v0.5.0 from src and the problem does not happen there
  • I believe I first saw the problem on or about 2019-09-18 because of this comment: https://github.com/MichaelMure/git-bug/issues/99#issuecomment-532893529 (I did not have time then to investigate further)
  • will try and investigate further, in the meantime, I'm asking other FreeBSD users to try and replicate

FWIW, all other git-bug operations seem to work (add, ls, ls-label, etc.)

Lewis Cook (lcook) commented (edited)

FreeBSD port maintainer for git-bug here.

As the go package awesome-gocui is using a custom fork of termbox, it's slightly outdated and hasn't inherited the FreeBSD fixes from upstream and subsequently causing these issues you're experiencing. Since applying the patch aforementioned I'm no longer facing this issue, either:

  • Fixes are merged into the forked termbox awecome-gocui uses;
  • awesome-gocui switches it's custom fork to the upstream version.

In any case it would be worth creating an issue there mentioning this. For now, I'll submit a patch on FreeBSD bugzilla including the fixes and we can go from there.

Edit: Report has been submitted on bugzilla. As per standards, it'll await for review and will be merged when someone gets an opportunity to. If you want to try this fix locally, apply this patch to the port and rebuild.

Michael Muré (MichaelMure) added label kind/bug

Michael Muré (MichaelMure) added label area/ui/terminal

Michael Muré (MichaelMure) commented

FreeBSD port maintainer for git-bug here.

Ho hello, thank you !

So if this patch is accepted in the FreeBSD package, does that mean that this problem is resolved in practice ? Otherwise there is still the possibility to fork the forked (sight) go-termbox and pin this version in git-bug but that's something I would gladly avoid if possible.

Lewis Cook (lcook) commented (edited)

So if this patch is accepted in the FreeBSD package, does that mean that this problem is resolved in practice ?

In theory, it's resolved in practice via the package; only because a band-aid is being applied to this very particular case—what it doesn't do is solve the underlying issue. It doesn't stop someone from manually cloning this repo on FreeBSD, building and facing what's been described above. Since it's a one-liner fix it wouldn't be too difficult to have it merged into the fork at awesome-gocui/termbox-go. However, I'm not sure if/when it'll be merged seeing that it hasn't had that much activity.

I suggest:

  1. Creating a pull-request on awesome-gocui/termbox-go addressing the upstream fix;
  2. Mentioning that you can install the package on FreeBSD (pkg install git-bug) somewhere in the README;
  3. Pinning this issue so FreeBSD users can find this thread.

I'll happily complete both 1 and 2. I don't mind either way, really. :)

Michael Muré (MichaelMure) commented

Yes the best scenario is to have that merged upstream. Not sure it's going to happen soon because they are in the process of ditching entirely go-termbox to use tcell instead (https://github.com/awesome-gocui/gocui/pull/45). This is a rather slow and painful process.

1 and 2 sounds good to me. Let's keep this issue open as well until it's fully resolved.

Lewis Cook (lcook) commented

In other news, the FreeBSD bugzilla report has been reviewed and merged fixing this issue for the package.

Not sure it's going to happen soon because they are in the process of ditching entirely go-termbox to use tcell instead

For now I think it's best to wait and see what happens in regards to this, then to act accordingly for termbox.

njthomas (njthomas) commented

Confirmed that the patch fixes the FreeBSD port version, and I was able to apply the same patch and build git-bug from GitHub source.

Michael Muré (MichaelMure) added label Non-actionable

Michael Muré (MichaelMure) commented

This should be resolved now as gocui doesn't use termbox anymore.

Michael Muré (MichaelMure) closed the bug