remotemobprogramming / mob

Tool for smooth git handover.
https://mob.sh
MIT License
1.66k stars 149 forks source link

Doesn't run on Debian 10 #393

Closed rico-chet closed 1 year ago

rico-chet commented 1 year ago

Doesn't run on a 2019 OS.

$ curl -sL install.mob.sh | sudo sh
installing latest 'mob' release from GitHub to /usr/local/bin...
Mob binary location: /usr/local/bin/mob
mob: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by mob)
mob: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by mob)
Mob binary version:

Couldn't find a 'say' command on your system.
While 'mob' will still work, you won't get any spoken indication that your time is up.
Please refer to the documentation how to setup text to speech on a *NIX system:

     https://mob.sh#linux-timer

$ mob start
mob: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by mob)
mob: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by mob)
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
$ dpkg --list | grep libc-bin
ii  libc-bin                              2.28-10                     amd64        GNU C Library: Binaries
$

Will probably not run on Debian 11, either (released 2021, has glibc 2.31)

Debian 10 is what we use in our dev container because Debian 11 has a broken make.

hollesse commented 1 year ago

I found two issues related to this: https://github.com/golang/go/issues/58550 https://github.com/golang/go/issues/57328

I see two possible reasons for this issue. We build mob with an ubuntu-latest on github actions which have a newer version of glibc. Second reason we are now using go 1.20 which just dynamically link the glibc dependency at runtime and does not ship its own compiled version.

We need to think about who we will proceed here.

gregorriegler commented 1 year ago

Thank you @rico-chet @hollesse you mean using CGO_ENABLED=0 ?

hollesse commented 1 year ago

@gregorriegler Could be one option. But I am not sure if we need glibc. There we need to further investigate. One point for glibc could be our network request we are doing for the timer. Maybe there is also an option to just statically link it again as it was in the go release we used before.

hollesse commented 1 year ago

one more resource i found, which should help us. https://mt165.co.uk/blog/static-link-go/

hollesse commented 1 year ago

should be fixed with 3e849a243a8ed3a8ef4aa3d81ac8dee6ab35903d tested it on ubuntu 21. So the next release should work again :)

rico-chet commented 1 year ago

confirm that 4.4.5 works in a Debian 10.0 container