From fe0095b83dc141d6b488bddc266b02412b1036b7 Mon Sep 17 00:00:00 2001 From: garmr Date: Thu, 26 Feb 2026 17:05:20 -0800 Subject: [PATCH 1/2] update radiance --- go.mod | 4 ++-- go.sum | 8 ++++---- lantern-core/core.go | 16 ---------------- lantern-core/ffi/ffi_linux.go | 29 ++++++++--------------------- 4 files changed, 14 insertions(+), 43 deletions(-) diff --git a/go.mod b/go.mod index 7a8e5013f6..c1524941b8 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/Microsoft/go-winio v0.6.2 github.com/alecthomas/assert/v2 v2.3.0 github.com/getlantern/lantern-server-provisioner v0.0.0-20251031121934-8ea031fccfa9 - github.com/getlantern/radiance v0.0.0-20260225211011-60649d634494 + github.com/getlantern/radiance v0.0.0-20260227010202-aaebc26205fc github.com/sagernet/sing-box v1.12.22 golang.org/x/mobile v0.0.0-20250711185624-d5bb5ecc55c0 golang.org/x/sys v0.40.0 @@ -164,7 +164,7 @@ require ( github.com/getlantern/algeneva v0.0.0-20250307163401-1824e7b54f52 // indirect github.com/getlantern/amp v0.0.0-20260113204224-600f8e8dfe5f // indirect github.com/getlantern/appdir v0.0.0-20250324200952-507a0625eb01 // indirect - github.com/getlantern/common v1.2.1-0.20260121160752-d8ee5791108f // indirect + github.com/getlantern/common v1.2.1-0.20260224184656-5aefb9c21c85 // indirect github.com/getlantern/dnstt v0.0.0-20260112160750-05100563bd0d // indirect github.com/getlantern/fronted v0.0.0-20260225205111-41c9e534027a // indirect github.com/getlantern/golog v0.0.0-20230503153817-8e72de7e0a65 // indirect diff --git a/go.sum b/go.sum index 9c40728dd2..136c10293b 100644 --- a/go.sum +++ b/go.sum @@ -193,8 +193,8 @@ github.com/getlantern/amp v0.0.0-20260113204224-600f8e8dfe5f h1:NLGftemDrbGf7Wce github.com/getlantern/amp v0.0.0-20260113204224-600f8e8dfe5f/go.mod h1:qnMv9szb8JK3kA9W4N2FlYUMj1GkA0x7QEUEPD7tk4o= github.com/getlantern/appdir v0.0.0-20250324200952-507a0625eb01 h1:Mmeh4/DA1OKN9tVWRAvTL5efFx4c7v9/55hoK17NclA= github.com/getlantern/appdir v0.0.0-20250324200952-507a0625eb01/go.mod h1:3vR6+jQdWfWojZ77w+htCqEF5MO/Y2twJOpAvFuM9po= -github.com/getlantern/common v1.2.1-0.20260121160752-d8ee5791108f h1:EqRKCaOBuvVkFsIjeWUYluE4s4TZtVQSClfIWFqcSks= -github.com/getlantern/common v1.2.1-0.20260121160752-d8ee5791108f/go.mod h1:eSSuV4bMPgQJnczBw+KWWqWNo1itzmVxC++qUBPRTt0= +github.com/getlantern/common v1.2.1-0.20260224184656-5aefb9c21c85 h1:jj2Qv6drsceI4v3krNHXSn805QDRqy7w4XMqW359Z18= +github.com/getlantern/common v1.2.1-0.20260224184656-5aefb9c21c85/go.mod h1:eSSuV4bMPgQJnczBw+KWWqWNo1itzmVxC++qUBPRTt0= github.com/getlantern/context v0.0.0-20190109183933-c447772a6520/go.mod h1:L+mq6/vvYHKjCX2oez0CgEAJmbq1fbb/oNJIWQkBybY= github.com/getlantern/context v0.0.0-20220418194847-3d5e7a086201 h1:oEZYEpZo28Wdx+5FZo4aU7JFXu0WG/4wJWese5reQSA= github.com/getlantern/context v0.0.0-20220418194847-3d5e7a086201/go.mod h1:Y9WZUHEb+mpra02CbQ/QczLUe6f0Dezxaw5DCJlJQGo= @@ -242,8 +242,8 @@ github.com/getlantern/osversion v0.0.0-20240418205916-2e84a4a4e175 h1:JWH5BB2o0e github.com/getlantern/osversion v0.0.0-20240418205916-2e84a4a4e175/go.mod h1:h3S9LBmmzN/xM+lwYZHE4abzTtCTtidKtG+nxZcCZX0= github.com/getlantern/pluriconfig v0.0.0-20251126214241-8cc8bc561535 h1:rtDmW8YLAuT8r51ApR5z0d8/qjhHu3TW+divQ2C98Ac= github.com/getlantern/pluriconfig v0.0.0-20251126214241-8cc8bc561535/go.mod h1:WKJEdjMOD4IuTRYwjQHjT4bmqDl5J82RShMLxPAvi0Q= -github.com/getlantern/radiance v0.0.0-20260225211011-60649d634494 h1:KEzJJdbi36nxgGfMLcpHuBTa2suwgdz3xI2Ie0Sv4Ko= -github.com/getlantern/radiance v0.0.0-20260225211011-60649d634494/go.mod h1:KrVcQYh39cZCsKPX6Bp+m76+bRjS0VX11q4XHZeBPP4= +github.com/getlantern/radiance v0.0.0-20260227010202-aaebc26205fc h1:HkDYo2wT0zIggUZIsXYaxc++4eprJOARRPe5aEILDOw= +github.com/getlantern/radiance v0.0.0-20260227010202-aaebc26205fc/go.mod h1:nkeBEjB0/Kfh02W8LAHnLhzSHfu0Aj2ID83EZBe2Jiw= github.com/getlantern/samizdat v0.0.2 h1:PkMu6jsfUz7DLZUH2xh548XfzgPASmq5CajZyUKj/9Y= github.com/getlantern/samizdat v0.0.2/go.mod h1:uEeykQSW2/6rTjfPlj3MTTo59poSHXfAHTGgzYDkbr0= github.com/getlantern/sing v0.7.18-lantern h1:QKGgIUA3LwmKYP/7JlQTRkxj9jnP4cX2Q/B+nd8XEjo= diff --git a/lantern-core/core.go b/lantern-core/core.go index 3806305398..14259673c4 100644 --- a/lantern-core/core.go +++ b/lantern-core/core.go @@ -3,12 +3,10 @@ package lanterncore import ( "context" "encoding/json" - "errors" "fmt" "log/slog" "os" "path/filepath" - "runtime" "strconv" "strings" "sync" @@ -24,7 +22,6 @@ import ( "github.com/getlantern/radiance/issue" "github.com/getlantern/radiance/servers" "github.com/getlantern/radiance/vpn" - "github.com/getlantern/radiance/vpn/ipc" "github.com/getlantern/lantern/lantern-core/apps" privateserver "github.com/getlantern/lantern/lantern-core/private-server" @@ -199,19 +196,6 @@ func (lc *LanternCore) initialize(opts *utils.Opts, eventEmitter utils.FlutterEv return fmt.Errorf("unable to create split tunnel handler: %v", sthErr) } - if runtime.GOOS == "linux" { - slog.Debug("Setting IPC settings path for Linux", "path", settings.GetString(settings.DataPathKey)) - if err := ipc.SetSettingsPath(context.Background(), settings.GetString(settings.DataPathKey)); err != nil { - // lanternd may not be ready yet during app startup; defer this until daemon is reachable. - if errors.Is(err, ipc.ErrIPCNotRunning) || errors.Is(err, ipc.ErrServiceIsNotReady) { - slog.Warn("Skipping IPC settings path update because lanternd is not ready", "error", err) - } else { - slog.Error("Failed to set IPC settings path", "error", err) - return fmt.Errorf("failed to set IPC settings path: %w", err) - } - } - } - lc.serverManager = lc.rad.ServerManager() lc.apiClient = lc.rad.APIHandler() lc.eventEmitter = eventEmitter diff --git a/lantern-core/ffi/ffi_linux.go b/lantern-core/ffi/ffi_linux.go index 23cd25ce35..9c3089270b 100644 --- a/lantern-core/ffi/ffi_linux.go +++ b/lantern-core/ffi/ffi_linux.go @@ -19,6 +19,7 @@ import ( "time" "github.com/getlantern/radiance/servers" + "github.com/getlantern/radiance/vpn" "github.com/getlantern/radiance/vpn/ipc" ) @@ -110,18 +111,18 @@ func startLinuxStatusPoller() { }) } -func mapIPCStateToUIStatus(state string, err error) string { +func mapIPCStateToUIStatus(state ipc.VPNStatus, err error) string { if err != nil { return string(Disconnected) } switch state { - case ipc.StatusRunning: + case ipc.Connected: return string(Connected) - case ipc.StatusConnecting, ipc.StatusInitializing: + case ipc.Connecting: return string(Connecting) - case ipc.StatusClosing: + case ipc.Disconnecting: return string(Disconnecting) - case ipc.StatusClosed: + case ipc.Disconnected: return string(Disconnected) default: return string(Disconnected) @@ -151,10 +152,7 @@ func startVPN(_logDir, _dataDir, _locale *C.char) *C.char { return C.CString(err.Error()) } - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - - if err := ipc.StartService(ctx, "", ""); err != nil && !errors.Is(err, ipc.ErrServiceIsNotReady) { + if err := vpn.AutoConnect(""); err != nil && !errors.Is(err, ipc.ErrServiceIsNotReady) { sendStatusToPort(Error) if errors.Is(err, ipc.ErrIPCNotRunning) { if diagErr := requireLanternServiceAvailable(); diagErr != nil { @@ -196,10 +194,7 @@ func connectToServer(_location, _tag, _logDir, _dataDir, _locale *C.char) *C.cha return SendError(err) } - ctx, cancel := context.WithTimeout(context.Background(), 8*time.Second) - defer cancel() - - if err := ipc.StartService(ctx, group, tag); err != nil && !errors.Is(err, ipc.ErrServiceIsNotReady) { + if err := vpn.Connect(group, tag); err != nil && !errors.Is(err, ipc.ErrServiceIsNotReady) { if errors.Is(err, ipc.ErrIPCNotRunning) { if diagErr := requireLanternServiceAvailable(); diagErr != nil { return SendError(diagErr) @@ -208,14 +203,6 @@ func connectToServer(_location, _tag, _logDir, _dataDir, _locale *C.char) *C.cha return SendError(fmt.Errorf("start service failed: %w", err)) } - if tag == "" { - return C.CString("ok") - } - - if err := ipc.SelectOutbound(ctx, group, tag); err != nil { - return SendError(fmt.Errorf("select outbound failed: %w", err)) - } - return C.CString("ok") } From 5af15105160f0f61c3231a758c90c45fe033021d Mon Sep 17 00:00:00 2001 From: garmr Date: Thu, 26 Feb 2026 17:07:17 -0800 Subject: [PATCH 2/2] pass lanternd dst to nfpm because arch symlinks sbin->bin --- Makefile | 11 +++++++---- linux/packaging/nfpm.yaml | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index dabc4e9e03..f0d844e9c1 100644 --- a/Makefile +++ b/Makefile @@ -313,12 +313,15 @@ linux-release-ci: linux pubget gen patchelf --set-rpath '$$ORIGIN/lib' build/linux/x64/release/bundle/lantern || true @echo "Packaging deb, rpm, and archlinux with nfpm..." - VERSION=$(APP_VERSION) LANTERND_SRC=$(LINUX_SERVICE_DST)/$(LINUX_SERVICE_NAME) SYSTEMD_UNIT_SRC=$(LINUX_SYSTEMD_UNIT_DST) \ + VERSION=$(APP_VERSION) SYSTEMD_UNIT_SRC=$(LINUX_SYSTEMD_UNIT_DST) \ + LANTERND_SRC=$(LINUX_SERVICE_DST)/$(LINUX_SERVICE_NAME) LANTERND_DST=/usr/sbin/$(LINUX_SERVICE_NAME) \ nfpm package -f $(LINUX_PKG_ROOT)/nfpm.yaml -p deb -t $(LINUX_INSTALLER_DEB) - VERSION=$(APP_VERSION) LANTERND_SRC=$(LINUX_SERVICE_DST)/$(LINUX_SERVICE_NAME) SYSTEMD_UNIT_SRC=$(LINUX_SYSTEMD_UNIT_DST) \ + VERSION=$(APP_VERSION) SYSTEMD_UNIT_SRC=$(LINUX_SYSTEMD_UNIT_DST) \ + LANTERND_SRC=$(LINUX_SERVICE_DST)/$(LINUX_SERVICE_NAME) LANTERND_DST=/usr/sbin/$(LINUX_SERVICE_NAME) \ nfpm package -f $(LINUX_PKG_ROOT)/nfpm.yaml -p rpm -t $(LINUX_INSTALLER_RPM) - VERSION=$(APP_VERSION) LANTERND_SRC=$(LINUX_SERVICE_DST)/$(LINUX_SERVICE_NAME) SYSTEMD_UNIT_SRC=$(LINUX_SYSTEMD_UNIT_DST) \ - nfpm package -f $(LINUX_PKG_ROOT)/nfpm.yaml -p archlinux -t $(LINUX_INSTALLER_ARCH) + VERSION=$(APP_VERSION) SYSTEMD_UNIT_SRC=$(LINUX_SYSTEMD_UNIT_DST) \ + LANTERND_SRC=$(LINUX_SERVICE_DST)/$(LINUX_SERVICE_NAME) LANTERND_DST=/usr/bin/$(LINUX_SERVICE_NAME) \ + nfpm package -f $(LINUX_PKG_ROOT)/nfpm.yaml -p archlinux -t $(LINUX_INSTALLER_ARCH) .PHONY: verify-linux-package verify-linux-package: diff --git a/linux/packaging/nfpm.yaml b/linux/packaging/nfpm.yaml index d2c41e0102..d8ba32080e 100644 --- a/linux/packaging/nfpm.yaml +++ b/linux/packaging/nfpm.yaml @@ -18,7 +18,7 @@ contents: # lanternd service binary - src: "${LANTERND_SRC}" - dst: /usr/sbin/lanternd + dst: "${LANTERND_DST}" expand: true # systemd unit