ArmyCyberInstitute / cmgr

CTF Challenge Manager
Apache License 2.0
17 stars 9 forks source link

Portability - libc dependency #37

Closed jrolli closed 2 years ago

jrolli commented 2 years ago

Issue

The current configuration of the core library relies on sqlite3 which in turn relies on CGO and libc. This significantly reduces the portability of the Linux version of the released binaries. Specifically, the packaged version cannot be run on Ubuntu 18.04 because of a mismatch in the libc version.

Proposal

Change the sqlite3 dependency from using github.com/mattn/go-sqlite3 to modernc.org/sqlite. This should remove the libc runtime dependency and make the core library (and released binaries) significantly more portable across Linux distributions.

Concerns

jrolli commented 2 years ago

As an additional advantage, this may make it easier to add experimental support for Windows containers/challenges. The last time I looked at it, there are some implicit POSIX assumptions but it mostly worked.