This is an automated email from the ASF dual-hosted git repository.
djwang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry-backup.git
The following commit(s) were added to refs/heads/main by this push:
new 90e80bd3 Package: add .tar.gz package for Linux platforms
90e80bd3 is described below
commit 90e80bd3d33e4912c25bba6742ce696ac4fd80d5
Author: Dianjin Wang <[email protected]>
AuthorDate: Fri Feb 13 19:05:34 2026 +0800
Package: add .tar.gz package for Linux platforms
---
Makefile | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
VERSION | 1 +
2 files changed, 78 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index b797fe8d..a5c3138a 100644
--- a/Makefile
+++ b/Makefile
@@ -11,7 +11,7 @@ HELPER=gpbackup_helper
S3PLUGIN=gpbackup_s3_plugin
BIN_DIR=$(shell echo $${GOPATH:-~/go} | awk -F':' '{ print $$1 "/bin"}')
GINKGO_FLAGS := -r --keep-going --randomize-suites --randomize-all --no-color
-GIT_VERSION := $(shell git describe --tags | perl -pe
's/(.*)-([0-9]*)-(g[0-9a-f]*)/\1+dev.\2.\3/')
+GIT_VERSION := $(shell v=$$(git describe --tags 2>/dev/null); if [ -n "$$v" ];
then echo $$v | perl -pe 's/(.*)-([0-9]*)-(g[0-9a-f]*)/\1+dev.\2.\3/'; else cat
VERSION 2>/dev/null || echo "dev"; fi)
BACKUP_VERSION_STR=github.com/apache/cloudberry-backup/backup.version=$(GIT_VERSION)
RESTORE_VERSION_STR=github.com/apache/cloudberry-backup/restore.version=$(GIT_VERSION)
HELPER_VERSION_STR=github.com/apache/cloudberry-backup/helper.version=$(GIT_VERSION)
@@ -153,3 +153,79 @@ test-s3-local: build install
${PWD}/plugins/plugin_test.sh $(BIN_DIR)/gpbackup_s3_plugin
/tmp/minio_config.yaml
docker stop s3-minio
docker rm s3-minio
+
+# Packaging targets
+# NOTE: Build on a baseline system with older glibc (e.g., Rocky 8)
+# for maximum runtime compatibility across distributions.
+PACKAGE_NAME=apache-cloudberry-backup-incubating
+PACKAGE_VERSION=$(shell cat VERSION 2>/dev/null || git describe --tags
--exact-match 2>/dev/null || git describe --tags --always | sed 's/-.*//' ||
echo "dev")
+
+# Auto-detect current platform if not specified
+CURRENT_GOOS=$(shell go env GOOS)
+CURRENT_GOARCH=$(shell go env GOARCH)
+GOOS ?= $(CURRENT_GOOS)
+GOARCH ?= $(CURRENT_GOARCH)
+
+BUILD_DIR=build
+
+# CGO is required for SQLite support
+CGO ?= 1
+
+package:
+ @echo "Building package for $(GOOS)/$(GOARCH) with
CGO_ENABLED=$(CGO)..."
+ @mkdir -p
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/bin
+ @GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=$(CGO) go build -tags
'$(BACKUP)' -o
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/bin/$(BACKUP)
--ldflags '-X $(BACKUP_VERSION_STR)'
+ @GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=$(CGO) go build -tags
'$(RESTORE)' -o
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/bin/$(RESTORE)
--ldflags '-X $(RESTORE_VERSION_STR)'
+ @GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=$(CGO) go build -tags
'$(HELPER)' -o
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/bin/$(HELPER)
--ldflags '-X $(HELPER_VERSION_STR)'
+ @GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=$(CGO) go build -tags
'$(S3PLUGIN)' -o
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/bin/$(S3PLUGIN)
--ldflags '-X $(S3PLUGIN_VERSION_STR)'
+ @echo "Creating install script..."
+ @echo '#!/bin/bash' >
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'set -e' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo '' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo '# Use GPHOME if set, otherwise use default path' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'if [ -n "$$GPHOME" ]; then' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo ' INSTALL_DIR="$$GPHOME"' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'elif [ -n "$$INSTALL_DIR" ]; then' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo ' INSTALL_DIR="$$INSTALL_DIR"' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'else' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo ' INSTALL_DIR="/usr/local"' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'fi' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo '' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'SCRIPT_DIR="$$(cd "$$(dirname "$${BASH_SOURCE[0]}")" && pwd)"'
>> $(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo '' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'echo "Installing $(PACKAGE_NAME) to $$INSTALL_DIR..."' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo '' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo '# Install binary files' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'sudo cp "$${SCRIPT_DIR}/bin/"* "$${INSTALL_DIR}/bin/"' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo '' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo '# Set permissions' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'sudo chmod 755 "$${INSTALL_DIR}/bin/$(BACKUP)"' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'sudo chmod 755 "$${INSTALL_DIR}/bin/$(RESTORE)"' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'sudo chmod 755 "$${INSTALL_DIR}/bin/$(HELPER)"' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'sudo chmod 755 "$${INSTALL_DIR}/bin/$(S3PLUGIN)"' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo '' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'echo "Installation complete!"' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo 'echo "$(PACKAGE_NAME) binaries installed to
$${INSTALL_DIR}/bin/"' >>
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @chmod +x
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/install.sh
+ @echo "Creating tar.gz package..."
+ @cd $(BUILD_DIR) && tar -czf
$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH).tar.gz
$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH)/
+ @echo "Package created:
$(BUILD_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH).tar.gz"
+ @echo "Contents:"
+ @cd $(BUILD_DIR) && tar -tzf
$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$(GOOS)-$(GOARCH).tar.gz | head -20
+
+package-linux-amd64:
+ @echo "Building Linux AMD64 package..."
+ GOOS=linux GOARCH=amd64 make package
+
+package-linux-arm64:
+ @echo "Building Linux ARM64 package..."
+ GOOS=linux GOARCH=arm64 make package
+
+package-all: package-linux-amd64 package-linux-arm64
+ @echo "All packages built successfully!"
+
+package-clean:
+ @rm -rf $(BUILD_DIR)
+ @echo "Build directory cleaned"
+
+.PHONY: package package-linux-amd64 package-linux-arm64 package-all
package-clean
diff --git a/VERSION b/VERSION
new file mode 100644
index 00000000..7ec1d6db
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+2.1.0
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]