-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build tsh with static libfido2 in buildbox and Centos7 #11849
Conversation
6227b4f
to
ec961af
Compare
FYI @zmb3 @russjones Buildbox: $ ldd build/tsh
linux-vdso.so.1 (0x00007ffc5e308000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe89c7de000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe89c5da000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe89c1e9000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe89c9fd000) Centos:
Tried the builds against Debian 7/8 and Ubuntu 14/16/18. Some nice folks tried against Ubuntu 20 as well. The verdict is:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
eudev
is GPL, libudev
from systemd is LGPL, so we can't use the former and we can only dynamically link the latter. 😭
Perhaps we can try with illiliti/libudev-zero? Either that or we bite the bullet and rewrite libfido2 in go, maybe using flynn/hid for zero-dependency hardware detection.
libfido2 hard-depends on libudev and is BSD-2, which confuses my non-layer brain. ¯\(ツ)/¯
I'm OK moving to illiliti/libudev-zero, as it does seem to work. My concern is that, as a single-author library, it's way more likely to be dropped on the floor, whereas eudev appears to be more mature. I do have to say it's a lot easier to build, though...
Yep, I've had my sights on that for a while. If we can pull off libfido2 I do think that's better, because we leverage Yubico's work. Time is the main factor now, as I can't make the next release if I have to rewrite libfido2, but post release this could change. |
Just a quick update, but I tried the "old" U2F tsh in Debian 7 and it doesn't run either, so I think that ship sailed already. # buildbox build (lifted from `make build/tsh`)
$ GOOS=linux GOARCH=amd64 CGO_ENABLED=1 CGO_LDFLAGS="-Wl,-Bstatic -lelf -lz -Wl,-Bdynamic" go build -tags "" -o build/tsh -ldflags '-w -s' ./tool/tsh
# centos7 build (lifted from `make build/tsh`)
$ GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build -tags "" -o build/tsh -ldflags '-w -s' ./tool/tsh
# Debian 7
$ ./tsh # buildbox binary
./tsh: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./tsh)
$ ./tsh # centos7 binary
./tsh: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./tsh) |
ec961af
to
35577f4
Compare
fd4e017
to
714e54f
Compare
PTAL? Now building with illiliti/libudev-zero. |
Friendly ping @timothyb89. |
Useful to test builds.
Convenience target. The centos7 image is base for a few others, which makes it important.
f21e0d0
to
9707467
Compare
This reverts commit 9c89c00.
Build
tsh
with staticlibfido2
,libcbor
,libcrypto
andlibudev-zero
.Dockerfiles for buildbox and Centos7 changed. FIPS and macOS to be addressed at a later date.
Add the
tsh fido2 diag
hidden command for ease of testing.#9160