From 430c6ced88bf4b475ebf10dd05545c4a050f2982 Mon Sep 17 00:00:00 2001 From: Viktor Liu Date: Sun, 19 Jan 2025 01:18:50 +0100 Subject: [PATCH 1/3] Allow freebsd to build netbird-ui --- client/ui/client_ui.go | 4 ++-- client/ui/font_bsd.go | 24 ++++++++++++++---------- client/ui/font_darwin.go | 18 ++++++++++++++++++ client/ui/network.go | 2 +- 4 files changed, 35 insertions(+), 13 deletions(-) create mode 100644 client/ui/font_darwin.go diff --git a/client/ui/client_ui.go b/client/ui/client_ui.go index 49b0f53cf05..f22ee377b38 100644 --- a/client/ui/client_ui.go +++ b/client/ui/client_ui.go @@ -1,4 +1,4 @@ -//go:build !(linux && 386) && !freebsd +//go:build !(linux && 386) package main @@ -876,7 +876,7 @@ func openURL(url string) error { err = exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Start() case "darwin": err = exec.Command("open", url).Start() - case "linux": + case "linux", "freebsd": err = exec.Command("xdg-open", url).Start() default: err = fmt.Errorf("unsupported platform") diff --git a/client/ui/font_bsd.go b/client/ui/font_bsd.go index 84cb5993ddc..139f38f40ab 100644 --- a/client/ui/font_bsd.go +++ b/client/ui/font_bsd.go @@ -1,4 +1,4 @@ -//go:build darwin +//go:build freebsd || openbsd || netbsd || dragonfly package main @@ -9,18 +9,22 @@ import ( log "github.com/sirupsen/logrus" ) -const defaultFontPath = "/Library/Fonts/Arial Unicode.ttf" - func (s *serviceClient) setDefaultFonts() { - // TODO: add other bsd paths - if runtime.GOOS != "darwin" { - return + paths := []string{ + "/usr/local/share/fonts/TTF/DejaVuSans.ttf", + "/usr/local/share/fonts/dejavu/DejaVuSans.ttf", + "/usr/local/share/noto/NotoSans-Regular.ttf", + "/usr/local/share/fonts/noto/NotoSans-Regular.ttf", + "/usr/local/share/fonts/liberation-fonts-ttf/LiberationSans-Regular.ttf", } - if _, err := os.Stat(defaultFontPath); err != nil { - log.Errorf("Failed to find default font file: %v", err) - return + for _, fontPath := range paths { + if _, err := os.Stat(fontPath); err == nil { + os.Setenv("FYNE_FONT", fontPath) + log.Debugf("Using font: %s", fontPath) + return + } } - os.Setenv("FYNE_FONT", defaultFontPath) + log.Errorf("Failed to find any suitable font files for %s", runtime.GOOS) } diff --git a/client/ui/font_darwin.go b/client/ui/font_darwin.go new file mode 100644 index 00000000000..cafb72f59b3 --- /dev/null +++ b/client/ui/font_darwin.go @@ -0,0 +1,18 @@ +package main + +import ( + "os" + + log "github.com/sirupsen/logrus" +) + +const defaultFontPath = "/Library/Fonts/Arial Unicode.ttf" + +func (s *serviceClient) setDefaultFonts() { + if _, err := os.Stat(defaultFontPath); err != nil { + log.Errorf("Failed to find default font file: %v", err) + return + } + + os.Setenv("FYNE_FONT", defaultFontPath) +} diff --git a/client/ui/network.go b/client/ui/network.go index e6f027f0edf..852c4765b27 100644 --- a/client/ui/network.go +++ b/client/ui/network.go @@ -1,4 +1,4 @@ -//go:build !(linux && 386) && !freebsd +//go:build !(linux && 386) package main From b20c8d5ceb9414aa1ca651115ec36669aee10f69 Mon Sep 17 00:00:00 2001 From: Viktor Liu Date: Sun, 19 Jan 2025 22:27:58 +0100 Subject: [PATCH 2/3] Add missing package --- .github/workflows/golang-test-freebsd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/golang-test-freebsd.yml b/.github/workflows/golang-test-freebsd.yml index a2d743715fa..ab070af3842 100644 --- a/.github/workflows/golang-test-freebsd.yml +++ b/.github/workflows/golang-test-freebsd.yml @@ -24,7 +24,7 @@ jobs: copyback: false release: "14.1" prepare: | - pkg install -y go + pkg install -y go pkgconf # -x - to print all executed commands # -e - to faile on first error From abaa97513c5e3fed523fc28200f3a615d4814de6 Mon Sep 17 00:00:00 2001 From: Viktor Liu Date: Sun, 19 Jan 2025 23:52:37 +0100 Subject: [PATCH 3/3] Add xorg package for CI --- .github/workflows/golang-test-freebsd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/golang-test-freebsd.yml b/.github/workflows/golang-test-freebsd.yml index ab070af3842..7a2d3cf3ca7 100644 --- a/.github/workflows/golang-test-freebsd.yml +++ b/.github/workflows/golang-test-freebsd.yml @@ -24,7 +24,7 @@ jobs: copyback: false release: "14.1" prepare: | - pkg install -y go pkgconf + pkg install -y go pkgconf xorg # -x - to print all executed commands # -e - to faile on first error