I have recently switched to OpenBSD from Linux. I am pleased to say that almost everything works as it should, and I've smoothed over the few issues I noticed in the beginning. However, one problem I still have is that of NetBird.

I am a member of the infrastructure dept. of a student society, in which we use NetBird to restrict access to some of our services (e.g. SSH into the servers). I don't like it, but it's what we're stuck with.

I noticed that the client software is available on FreeBSD, but not on OpenBSD or NetBSD. Just in case it was simpler than it seemed, I cloned the source and attempted to build it. However, I got the following error output:

# github.com/netbirdio/netbird/client/system
system/info.go:186:16: undefined: checkFileAndProcess
system/info.go:192:10: undefined: GetInfo
system/info.go:235:11: undefined: GetInfo
system/info_source.go:151:10: undefined: GetInfo
# github.com/netbirdio/netbird/client/iface
iface/iface.go:31:34: undefined: configurer.WgInterfaceDefault
iface/iface_new.go:20:16: undefined: device.NewTunDevice
# github.com/netbirdio/netbird/client/internal/routemanager/systemops
internal/routemanager/systemops/routeflags_bsd.go:17:64: undefined: unix.RTF_WASCLONED
internal/routemanager/systemops/routeflags_bsd.go:61:16: undefined: unix.RTF_WASCLONED
internal/routemanager/systemops/systemops_bsd.go:159:19: undefined: syscall.RTF_LOCAL

I do not know Go, so I am clueless as to how this could be patched. Can anybody shed any light?

If it's simply impossible, there are workarounds; but it would be awesome if I could have it running natively on my machine.

you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 2 weeks ago

If you search through the source, you will find several places explicitly selecting for freebsd. I don't know Go myself, but the first step should be to enable the FreeBSD path on OpenBSD. Currently you're probably in an undefined path (no platform specific code), so fix that first

  • source