Merge pull request #855 from lucidsoftware/linux-arm64

Add linux-arm64 support
This commit is contained in:
Sveta Smirnova
2024-10-04 19:22:59 +03:00
committed by GitHub
5 changed files with 20 additions and 15 deletions

View File

@@ -10,7 +10,7 @@ Vcs-Browser: https://github.com/percona/percona-toolkit
Vcs-Git: git://github.com/percona/percona-toolkit.git
Package: percona-toolkit
Architecture: amd64
Architecture: @@ARCHITECTURE@@
Depends: ${perl:Depends}, libdbi-perl (>= 1.13), libdbd-mysql-perl | libdbd-mysql-5.1-perl, libterm-readkey-perl (>=2.10),
libio-socket-ssl-perl
Description: Advanced MySQL and system command-line tools

View File

@@ -11,7 +11,7 @@ Vendor: Percona
URL: http://www.percona.com/software/percona-toolkit/
Source: percona-toolkit-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildArch: x86_64
BuildArch: @@ARCHITECTURE@@
BuildRequires: perl(ExtUtils::MakeMaker) make
Requires: perl(DBI) >= 1.13, perl(DBD::mysql) >= 1.0, perl(Time::HiRes), perl(IO::Socket::SSL), perl(Digest::MD5), perl(Term::ReadKey)

View File

@@ -323,7 +323,7 @@ build_srpm(){
cd ${WORKDIR}/rpmbuild/SPECS
echo '%undefine _missing_build_ids_terminate_build' | cat - percona-toolkit.spec > pt.spec && mv pt.spec percona-toolkit.spec
echo '%define debug_package %{nil}' | cat - percona-toolkit.spec > pt.spec && mv pt.spec percona-toolkit.spec
sed -i "s/@@ARHITECTURE@@/x86_64/" percona-toolkit.spec
sed -i "s/@@ARCHITECTURE@@/x86_64/" percona-toolkit.spec
cd ${WORKDIR}/${PRODUCT_FULL}
rm -rf bin/govendor
rm -rf bin/glide
@@ -417,7 +417,7 @@ build_source_deb(){
mv ${TARFILE} ${PRODUCT}_${VERSION}.orig.tar.gz
update_go
cd ${WORKDIR}/${BUILDDIR}
sed -i 's/@@ARHITECTURE@@/amd64/' debian/control
sed -i 's/@@ARCHITECTURE@@/amd64/' debian/control
cd debian
echo "${PRODUCT} (${VERSION}) unstable; urgency=low" > changelog
echo " * Initial Release." >> changelog

View File

@@ -133,6 +133,12 @@ linux-amd64: ## Build Go tools for linux-amd64.
@$(foreach pkg,$(pkgs),rm -f ${BIN_DIR}/$(pkg) 2> /dev/null;)
@$(foreach pkg,$(pkgs),GOOS=linux GOARCH=amd64 go build -ldflags ${LDFLAGS} -o ${BIN_DIR}/$(pkg) ./$(pkg);)
linux-arm64: ## Build Go tools for linux-arm64.
@echo "Building linux/arm64 binaries in ${BIN_DIR} as version ${VERSION}"
@cd ${TOP_DIR} && go get ./...
@$(foreach pkg,$(pkgs),rm -f ${BIN_DIR}/$(pkg) 2> /dev/null;)
@$(foreach pkg,$(pkgs),GOOS=linux GOARCH=arm64 go build -ldflags ${LDFLAGS} -o ${BIN_DIR}/$(pkg) ./$(pkg);)
linux-386: ## Build Go tools for linux-386
@echo "Building linux/386 binaries in ${BIN_DIR} as version ${VERSION}"
@cd ${TOP_DIR} && go get ./...

View File

@@ -223,7 +223,7 @@ update_manifest() {
echo -n "Updating MANIFEST... "
cd $BRANCH
echo -n > MANIFEST
for file in * bin/* docs/*.pod; do
for file in * bin/* docs/*.pod $(find src/go); do
if [ -f $file ]; then
echo $file >> MANIFEST
fi
@@ -343,12 +343,9 @@ prep_release_dir() {
elif [ -d $RELEASE_DIR/$PKG ]; then
rm -rf $RELEASE_DIR/$PKG
fi
(
cd $RELEASE_DIR
mkdir -p $PKG $PKG/bin $PKG/docs $PKG/lib
)
update_manifest
for file in `cat MANIFEST`; do
mkdir -p $RELEASE_DIR/$PKG/$(dirname $file)
cp $file $RELEASE_DIR/$PKG/$file
done
echo "OK"
@@ -364,6 +361,7 @@ build_tar() {
build_rpm() {
echo -n "Building $PKG-1.$ARCH.rpm... "
cd $RELEASE_DIR
sed -e "s/@@ARCHITECTURE@@/$ARCH/" $RPM_CONFIG_DIR/percona-toolkit.spec > $RELEASE_DIR/percona-toolkit.spec
if [ ! -f "$PKG.tar.gz" ]; then
die "Cannot build RPM because $PKG.tar.gz does not exist"
fi
@@ -373,7 +371,7 @@ build_rpm() {
cd rpm
local topdir=`pwd`
# Build RPM package from the tarball.
rpmbuild -bb --clean $RPM_CONFIG_DIR/percona-toolkit.spec \
rpmbuild -bb --clean $RELEASE_DIR/percona-toolkit.spec \
--quiet \
--define "_topdir $PWD" \
--define "_sourcedir $RELEASE_DIR" \
@@ -409,6 +407,7 @@ build_deb() {
rm -rf * $RELEASE_DIR/$PKG/debian
fi
cp $BRANCH/config/deb/* $RELEASE_DIR/$PKG/debian/
sed -e "s/@@ARCHITECTURE@@/$DEB_ARCH/" $DEB_CONFIG_DIR/control > $RELEASE_DIR/$PKG/debian/control
# Build Debian binary and source packages.
cd $RELEASE_DIR/$PKG
@@ -485,13 +484,16 @@ OS_ARCH=${3:-linux-amd64}
ONLY_UPDATE_VERSION=${ONLY_UPDATE_VERSION:-0}
ONLY_UPDATE_COPYRIGHT_YEAR=${ONLY_UPDATE_COPYRIGHT_YEAR:-0}
if [ $OS_ARCH != "linux-amd64" ] && [ $OS_ARCH != "linux-386" ] && [ $OS_ARCH != "darwin-amd64" ]; then
die "Valid OS-ARCH combinations are: linux-amd64, linux-386, darwin-amd64"
if [ $OS_ARCH != "linux-amd64" ] && [ $OS_ARCH != "linux-arm64" ] && [ $OS_ARCH != "linux-386" ] && [ $OS_ARCH != "darwin-amd64" ]; then
die "Valid OS-ARCH combinations are: linux-amd64, linux-arm64, linux-386, darwin-amd64"
fi
if [ $OS_ARCH == "linux-amd64" ]; then
ARCH="x86_64"
DEB_ARCH="amd64"
elif [ $OS_ARCH == "linux-arm64" ]; then
ARCH="aarch64"
DEB_ARCH="arm64"
elif [ $OS_ARCH == "linux-386" ]; then
ARCH="i386"
DEB_ARCH="i386"
@@ -500,9 +502,6 @@ else
DEB_ARCH="all"
fi
sed -i'.bak' -e "s/@@ARHITECTURE@@/$ARCH/" $RPM_CONFIG_DIR/percona-toolkit.spec
sed -i'.bak' -e "s/@@ARHITECTURE@@/$DEB_ARCH/" $DEB_CONFIG_DIR/control
if [ ! -f $REL_NOTES ]; then
die "$REL_NOTES does not exist"
fi