From 993affcb12696fa0a38a7fa9cc57047aebf86be9 Mon Sep 17 00:00:00 2001 From: soffokl Date: Thu, 13 Aug 2026 12:40:16 +0600 Subject: [PATCH] feat: enhance Debian packaging to include dynamic updater binary path --- bin/package_debian | 3 ++- ci/packages/package.go | 23 ++++++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/bin/package_debian b/bin/package_debian index 4c8297a4e..92959e3ab 100755 --- a/bin/package_debian +++ b/bin/package_debian @@ -23,6 +23,7 @@ OS_DIR_DOC="/usr/share/doc/mysterium-node" OS_DIR_INSTALLATION="/usr/lib/mysterium-node/installation" OS_DIR_SUDOERS="/etc/sudoers.d" BINARY=${BINARY:-"build/myst/myst"} +UPDATER_BINARY=${UPDATER_BINARY:-"build/myst/myst-updater"} VERSION=$1 if [ -z "$VERSION" ]; then @@ -72,7 +73,7 @@ printf "Building Debian package '$PACKAGE_FILE' for architecture '$ARCH' ..\n" \ --after-remove bin/package/installation/post-uninstall.sh \ -s dir -t deb \ ${BINARY}=${OS_DIR_BIN}/myst \ - build/myst/myst-updater=/usr/lib/mysterium-node/myst-updater \ + ${UPDATER_BINARY}=/usr/lib/mysterium-node/myst-updater \ bin/package/config/linux/=${OS_DIR_CONFIG}/ \ bin/package/config/common/=${OS_DIR_CONFIG}/ \ bin/package/sudoers/=${OS_DIR_SUDOERS}/ \ diff --git a/ci/packages/package.go b/ci/packages/package.go index c7c60bd93..356432e9f 100644 --- a/ci/packages/package.go +++ b/ci/packages/package.go @@ -18,6 +18,7 @@ package packages import ( + "errors" "fmt" "os" "path" @@ -402,8 +403,28 @@ func packageDebian(binaryPath, arch string) error { if err := env.EnsureEnvVars(env.BuildVersion); err != nil { return err } + updaterPath := path.Join("build", "myst", "myst-updater") + if _, err := os.Stat(updaterPath); errors.Is(err, os.ErrNotExist) { + goArch := arch + extraEnvs := map[string]string{} + switch arch { + case "armhf": + goArch = "arm" + case "armv6l": + goArch = "arm" + extraEnvs["GOARM"] = "6" + } + + if err := buildBinaryFor(path.Join("cmd", "myst_updater", "main.go"), "myst_updater", "linux", goArch, extraEnvs, true); err != nil { + return err + } + updaterPath = path.Join("build", "myst_updater", "myst_updater") + } else if err != nil { + return err + } envs := map[string]string{ - "BINARY": binaryPath, + "BINARY": binaryPath, + "UPDATER_BINARY": updaterPath, } if gopath, _ := sh.Output("go", "env", "GOPATH"); gopath != "" {