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.

all 3 comments

sorted by: hot top controversial new old
[–] 2 points 2 weeks ago (1 child)

What did you run? They mention a getting-started.sh script.

  • source
  • hideshow 1 child comment
  • [–] 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