-
-
Notifications
You must be signed in to change notification settings - Fork 11.1k
Fix unbounded review issues and localization #8498
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
ad974bc
429bed6
bb1ba82
75839bf
3da1f8b
543852e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -41,6 +41,16 @@ LINUX_LIB_ARM64 := $(BIN_DIR)/linux-arm64/$(LANTERN_LIB_NAME).so | |||||||||||||||||||||||||||||||||||||||||
| LINUX_LIB_BUILD := $(BIN_DIR)/linux/$(LINUX_LIB) | ||||||||||||||||||||||||||||||||||||||||||
| LINUX_INSTALLER_DEB := $(INSTALLER_NAME)$(if $(filter-out production,$(BUILD_TYPE)),-$(BUILD_TYPE)).deb | ||||||||||||||||||||||||||||||||||||||||||
| LINUX_INSTALLER_RPM := $(INSTALLER_NAME)$(if $(filter-out production,$(BUILD_TYPE)),-$(BUILD_TYPE)).rpm | ||||||||||||||||||||||||||||||||||||||||||
| LINUX_INSTALLER_ARCH := $(INSTALLER_NAME)$(if $(filter-out production,$(BUILD_TYPE)),-$(BUILD_TYPE)).pkg.tar.zst | ||||||||||||||||||||||||||||||||||||||||||
| LINUX_SERVICE_NAME := lanternd | ||||||||||||||||||||||||||||||||||||||||||
| LINUX_SERVICE_SRC := $(RADIANCE_REPO)/cmd/lanternd | ||||||||||||||||||||||||||||||||||||||||||
| LINUX_SERVICE_BUILD_AMD64 := $(BIN_DIR)/linux-amd64/$(LINUX_SERVICE_NAME) | ||||||||||||||||||||||||||||||||||||||||||
| LINUX_SERVICE_BUILD_ARM64 := $(BIN_DIR)/linux-arm64/$(LINUX_SERVICE_NAME) | ||||||||||||||||||||||||||||||||||||||||||
| LINUX_PKG_ROOT := linux/packaging | ||||||||||||||||||||||||||||||||||||||||||
| LINUX_SERVICE_DST := $(LINUX_PKG_ROOT)/usr/sbin | ||||||||||||||||||||||||||||||||||||||||||
| LINUX_PKG_SYSTEMD_DIR := $(LINUX_PKG_ROOT)/usr/lib/systemd/system | ||||||||||||||||||||||||||||||||||||||||||
| LINUX_SYSTEMD_UNIT_SRC := $(shell go list -m -f '{{.Dir}}' $(RADIANCE_REPO))/cmd/lanternd/lanternd.service | ||||||||||||||||||||||||||||||||||||||||||
| LINUX_SYSTEMD_UNIT_DST := $(LINUX_PKG_SYSTEMD_DIR)/lanternd.service | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| ifeq ($(OS),Windows_NT) | ||||||||||||||||||||||||||||||||||||||||||
| PS := powershell -NoProfile -ExecutionPolicy Bypass -Command | ||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -168,7 +178,6 @@ install-macos-deps: install-gomobile | |||||||||||||||||||||||||||||||||||||||||
| brew tap joshdk/tap | ||||||||||||||||||||||||||||||||||||||||||
| brew install joshdk/tap/retry | ||||||||||||||||||||||||||||||||||||||||||
| brew install imagemagick || true | ||||||||||||||||||||||||||||||||||||||||||
| dart pub global activate flutter_distributor | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| .PHONY: macos | ||||||||||||||||||||||||||||||||||||||||||
| macos: $(MACOS_FRAMEWORK_BUILD) | ||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -242,7 +251,8 @@ macos-release: clean macos pubget gen build-macos-release sign-app package-macos | |||||||||||||||||||||||||||||||||||||||||
| .PHONY: install-linux-deps | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| install-linux-deps: | ||||||||||||||||||||||||||||||||||||||||||
| dart pub global activate flutter_distributor | ||||||||||||||||||||||||||||||||||||||||||
| @command -v nfpm >/dev/null 2>&1 || \ | ||||||||||||||||||||||||||||||||||||||||||
| { echo "Installing nfpm..."; go install github.com/goreleaser/nfpm/v2/cmd/nfpm@v2.45.0; } | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| .PHONY: linux-arm64 | ||||||||||||||||||||||||||||||||||||||||||
| linux-arm64: $(LINUX_LIB_ARM64) | ||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -261,23 +271,58 @@ linux: linux-amd64 | |||||||||||||||||||||||||||||||||||||||||
| mkdir -p $(BIN_DIR)/linux | ||||||||||||||||||||||||||||||||||||||||||
| cp $(LINUX_LIB_AMD64) $(LINUX_LIB_BUILD) | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| .PHONY: linux-service-amd64 linux-service-arm64 stage-linux-service | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| linux-service-amd64: $(GO_SOURCES) | ||||||||||||||||||||||||||||||||||||||||||
| $(call MKDIR_P,$(dir $(LINUX_SERVICE_BUILD_AMD64))) | ||||||||||||||||||||||||||||||||||||||||||
| GOOS=linux GOARCH=amd64 CGO_ENABLED=1 \ | ||||||||||||||||||||||||||||||||||||||||||
| go build -v -trimpath -tags "$(TAGS)" \ | ||||||||||||||||||||||||||||||||||||||||||
| -ldflags "-w -s $(EXTRA_LDFLAGS)" \ | ||||||||||||||||||||||||||||||||||||||||||
| -o $(LINUX_SERVICE_BUILD_AMD64) $(LINUX_SERVICE_SRC) | ||||||||||||||||||||||||||||||||||||||||||
| @echo "Built Linux service: $(LINUX_SERVICE_BUILD_AMD64)" | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| linux-service-arm64: $(GO_SOURCES) | ||||||||||||||||||||||||||||||||||||||||||
| $(call MKDIR_P,$(dir $(LINUX_SERVICE_BUILD_ARM64))) | ||||||||||||||||||||||||||||||||||||||||||
| GOOS=linux GOARCH=arm64 CGO_ENABLED=1 \ | ||||||||||||||||||||||||||||||||||||||||||
| go build -v -trimpath -tags "$(TAGS)" \ | ||||||||||||||||||||||||||||||||||||||||||
| -ldflags "-w -s $(EXTRA_LDFLAGS)" \ | ||||||||||||||||||||||||||||||||||||||||||
| -o $(LINUX_SERVICE_BUILD_ARM64) $(LINUX_SERVICE_SRC) | ||||||||||||||||||||||||||||||||||||||||||
| @echo "Built Linux service: $(LINUX_SERVICE_BUILD_ARM64)" | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| stage-linux-service: linux-service-amd64 | ||||||||||||||||||||||||||||||||||||||||||
| @echo "Staging systemd unit + service binary $(LINUX_PKG_ROOT)..." | ||||||||||||||||||||||||||||||||||||||||||
| $(call MKDIR_P,$(LINUX_SERVICE_DST)) | ||||||||||||||||||||||||||||||||||||||||||
| $(call COPY_FILE,$(LINUX_SERVICE_BUILD_AMD64),$(LINUX_SERVICE_DST)/$(LINUX_SERVICE_NAME)) | ||||||||||||||||||||||||||||||||||||||||||
| $(call MKDIR_P,$(LINUX_PKG_SYSTEMD_DIR)) | ||||||||||||||||||||||||||||||||||||||||||
| $(call COPY_FILE,$(LINUX_SYSTEMD_UNIT_SRC),$(LINUX_SYSTEMD_UNIT_DST)) | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| .PHONY: linux-debug | ||||||||||||||||||||||||||||||||||||||||||
| linux-debug: | ||||||||||||||||||||||||||||||||||||||||||
| @echo "Building Flutter app (debug) for Linux..." | ||||||||||||||||||||||||||||||||||||||||||
| flutter build linux --debug | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| .PHONY: linux-release | ||||||||||||||||||||||||||||||||||||||||||
| linux-release: clean linux pubget gen | ||||||||||||||||||||||||||||||||||||||||||
| .PHONY: linux-release linux-release-ci | ||||||||||||||||||||||||||||||||||||||||||
| linux-release: clean linux-release-ci | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| linux-release-ci: linux pubget gen | ||||||||||||||||||||||||||||||||||||||||||
| @echo "Building Flutter app (release) for Linux..." | ||||||||||||||||||||||||||||||||||||||||||
| flutter build linux --release $(DART_DEFINES) | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| cp $(LINUX_LIB_BUILD) build/linux/x64/release/bundle | ||||||||||||||||||||||||||||||||||||||||||
| $(MAKE) stage-linux-service | ||||||||||||||||||||||||||||||||||||||||||
| patchelf --set-rpath '$$ORIGIN/lib' build/linux/x64/release/bundle/lantern || true | ||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||
| flutter_distributor package --build-dart-define=BUILD_TYPE=$(BUILD_TYPE) \ | ||||||||||||||||||||||||||||||||||||||||||
| --build-dart-define=VERSION=$(VERSION) --platform linux --targets "deb,rpm" --skip-clean | ||||||||||||||||||||||||||||||||||||||||||
| @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) \ | ||||||||||||||||||||||||||||||||||||||||||
| 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) \ | ||||||||||||||||||||||||||||||||||||||||||
| 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) \ | ||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+316
to
+320
|
||||||||||||||||||||||||||||||||||||||||||
| 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 deb -t $(LINUX_INSTALLER_DEB) | |
| 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 rpm -t $(LINUX_INSTALLER_RPM) | |
| VERSION=$(APP_VERSION) LANTERND_SRC=$(LINUX_SERVICE_DST)/$(LINUX_SERVICE_NAME) SYSTEMD_UNIT_SRC=$(LINUX_SYSTEMD_UNIT_DST) \ | |
| VERSION=$${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 deb -t $(LINUX_INSTALLER_DEB) | |
| VERSION=$${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 rpm -t $(LINUX_INSTALLER_RPM) | |
| VERSION=$${VERSION:-$(APP_VERSION)} LANTERND_SRC=$(LINUX_SERVICE_DST)/$(LINUX_SERVICE_NAME) SYSTEMD_UNIT_SRC=$(LINUX_SYSTEMD_UNIT_DST) \ |
Copilot
AI
Feb 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nfpm.yaml uses arch: "${GOARCH}", but these nfpm invocations don’t set GOARCH in the environment. Since GOARCH set in other recipes (e.g., linux-amd64) won’t carry over here, packaging can end up with an empty/incorrect arch. Set GOARCH=amd64/arm64 explicitly for each nfpm call (or remove the env substitution).
| 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 deb -t $(LINUX_INSTALLER_DEB) | |
| 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 rpm -t $(LINUX_INSTALLER_RPM) | |
| VERSION=$(APP_VERSION) LANTERND_SRC=$(LINUX_SERVICE_DST)/$(LINUX_SERVICE_NAME) SYSTEMD_UNIT_SRC=$(LINUX_SYSTEMD_UNIT_DST) \ | |
| VERSION=$(APP_VERSION) LANTERND_SRC=$(LINUX_SERVICE_DST)/$(LINUX_SERVICE_NAME) SYSTEMD_UNIT_SRC=$(LINUX_SYSTEMD_UNIT_DST) GOARCH=amd64 \ | |
| 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) GOARCH=amd64 \ | |
| 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) GOARCH=amd64 \ |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -29,6 +29,47 @@ make macos | |||||
| flutter run -d macos | ||||||
| ``` | ||||||
|
|
||||||
| # Build and run the app on Linux (systemd daemon, no sudo) | ||||||
|
|
||||||
| 1. Build Linux artifacts | ||||||
|
|
||||||
| ```bash | ||||||
| make linux-release | ||||||
| ``` | ||||||
|
|
||||||
| 2. Install the `.deb` (requires root only for install) | ||||||
|
|
||||||
| ```bash | ||||||
| sudo apt install ./lantern-installer-*.deb | ||||||
| ``` | ||||||
|
|
||||||
| 3. Check daemon status | ||||||
|
|
||||||
| ```bash | ||||||
| systemctl status lanternd.service | ||||||
| ``` | ||||||
|
|
||||||
| 4. Run Lantern app as your normal user | ||||||
|
|
||||||
| ```bash | ||||||
| flutter run -d linux | ||||||
| ``` | ||||||
|
|
||||||
| Troubleshooting: | ||||||
|
|
||||||
| ```bash | ||||||
| journalctl -u lanternd.service -n 200 --no-pager | ||||||
| ``` | ||||||
|
|
||||||
| Uninstall / cleanup: | ||||||
|
|
||||||
| ```bash | ||||||
| sudo systemctl disable --now lanternd.service | ||||||
| sudo apt remove lantern | ||||||
| sudo rm -f /usr/lib/systemd/system/lanternd.service /usr/lib/lantern/lanternd | ||||||
|
||||||
| sudo rm -f /usr/lib/systemd/system/lanternd.service /usr/lib/lantern/lanternd | |
| sudo rm -f /usr/lib/systemd/system/lanternd.service /usr/sbin/lanternd |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CI runs the Linux UI integration test with ENABLE_IP_CHECK=true, which makes the test depend on an external endpoint (api64.ipify.org). This can introduce flaky failures due to transient network/DNS/service issues unrelated to the app behavior. Consider leaving ENABLE_IP_CHECK=false in CI (or making the IP check best-effort/non-fatal) and relying on the connect/disconnect state assertions as the primary signal.