diff --git a/debian/Makefile b/debian/Makefile index cc818cd536..b66dee46b1 100644 --- a/debian/Makefile +++ b/debian/Makefile @@ -68,7 +68,7 @@ install: apply-patches disableupdates=""; if [[ $(word 1,$(split_version)) -ge 3 && $(word 2,$(split_version)) -ge 43 ]]; then disableupdates="_disableupdates"; fi; \ baseurl="s3-us-west-2.amazonaws.com/confluent.cloud"; if [[ $(word 1,$(split_version)) -ge 4 && $(word 2,$(split_version)) -ge 1 ]]; then baseurl="packages.confluent.io"; fi; \ version="_$${v}$(CLI_VERSION)"; if [[ $(word 1,$(split_version)) -ge 4 && $(word 2,$(split_version)) -ge 1 ]]; then version=""; fi; \ - for dir in darwin_amd64 darwin_arm64 linux_amd64 linux_arm64; do \ + for dir in darwin_amd64 darwin_arm64 linux_amd64 linux_arm64 linux_s390x; do \ archive=confluent$${version}_$${dir}$${disableupdates}.tar.gz; \ curl -fs https://$${baseurl}/confluent-cli/archives/$(CLI_VERSION)/$${archive} -o $${archive}; \ mkdir -p $${dir} $${dir}-temp; \ @@ -116,21 +116,25 @@ else RPM_RELEASE_ID=$(REVISION) endif -rpm: rpm-amd64-build rpm-arm64-build +rpm: rpm-amd64-build rpm-arm64-build rpm-s390x-build + find RPM_BUILDING/{,S}RPMS/ -type f | xargs -n1 -iXXX mv XXX . + @echo + @echo "=================================================" + @echo "The RPMs have been created and can be found here:" + @ls -laF $(FULL_PACKAGE_TITLE)*rpm + @echo "=================================================" rpm-amd64-build: rpm-amd64-spec echo "Building the amd64 RPM" - rpmbuild --define="_topdir `pwd`/RPM_BUILDING" --nodebuginfo -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz || rpmbuild --define="_topdir `pwd`/RPM_BUILDING" -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz + rpmbuild --target=x86_64 --define="_topdir `pwd`/RPM_BUILDING" --nodebuginfo -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz || rpmbuild --target=x86_64 --define="_topdir `pwd`/RPM_BUILDING" -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz rpm-arm64-build: rpm-arm64-spec echo "Building the arm64 RPM" rpmbuild --target=aarch64 --define="_topdir `pwd`/RPM_BUILDING" --nodebuginfo -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz || rpmbuild --target=aarch64 --define="_topdir `pwd`/RPM_BUILDING" -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz - find RPM_BUILDING/{,S}RPMS/ -type f | xargs -n1 -iXXX mv XXX . - echo - echo "=================================================" - echo "The RPMs have been created and can be found here:" - @ls -laF $(FULL_PACKAGE_TITLE)*rpm - echo "=================================================" + +rpm-s390x-build: rpm-s390x-spec + echo "Building the s390x RPM" + rpmbuild --target=s390x --define="_topdir `pwd`/RPM_BUILDING" --nodebuginfo -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz || rpmbuild --target=s390x --define="_topdir `pwd`/RPM_BUILDING" -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz # Unfortunately, because of version naming issues and the way rpmbuild expects # the paths in the tar file to be named, we need to rearchive the package. So @@ -142,15 +146,23 @@ rpm-amd64-spec: rpm-build-area install debian/$(FULL_PACKAGE_TITLE).spec.in RELE rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) mkdir $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) cp -R $(DESTDIR)/* $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) - sed "s/##RPMVERSION##/$(RPM_VERSION)/g; s/##RPMRELEASE##/$(RPM_RELEASE_ID)/g; s/##EXCLUDEARCH##/arm64/g" < debian/$(FULL_PACKAGE_TITLE).spec.in > $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)/$(FULL_PACKAGE_TITLE).spec + sed "s/##RPMVERSION##/$(RPM_VERSION)/g; s/##RPMRELEASE##/$(RPM_RELEASE_ID)/g; s/##EXCLUDEARCH1##/arm64/g; s/##EXCLUDEARCH2##/s390x/g" < debian/$(FULL_PACKAGE_TITLE).spec.in > $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)/$(FULL_PACKAGE_TITLE).spec + rm -f $@ && tar -czf RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) + rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) + +rpm-arm64-spec: rpm-build-area install debian/$(FULL_PACKAGE_TITLE).spec.in RELEASE_$(RPM_VERSION)$(RPM_RELEASE_POSTFIX_UNDERSCORE) + rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) + mkdir $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) + cp -R $(DESTDIR)/* $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) + sed "s/##RPMVERSION##/$(RPM_VERSION)/g; s/##RPMRELEASE##/$(RPM_RELEASE_ID)/g; s/##EXCLUDEARCH1##/amd64/g; s/##EXCLUDEARCH2##/s390x/g" < debian/$(FULL_PACKAGE_TITLE).spec.in > $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)/$(FULL_PACKAGE_TITLE).spec rm -f $@ && tar -czf RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) -rpm-arm64-spec: +rpm-s390x-spec: rpm-build-area install debian/$(FULL_PACKAGE_TITLE).spec.in RELEASE_$(RPM_VERSION)$(RPM_RELEASE_POSTFIX_UNDERSCORE) rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) mkdir $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) cp -R $(DESTDIR)/* $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) - sed "s/##RPMVERSION##/$(RPM_VERSION)/g; s/##RPMRELEASE##/$(RPM_RELEASE_ID)/g; s/##EXCLUDEARCH##/amd64/g" < debian/$(FULL_PACKAGE_TITLE).spec.in > $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)/$(FULL_PACKAGE_TITLE).spec + sed "s/##RPMVERSION##/$(RPM_VERSION)/g; s/##RPMRELEASE##/$(RPM_RELEASE_ID)/g; s/##EXCLUDEARCH1##/amd64/g; s/##EXCLUDEARCH2##/arm64/g" < debian/$(FULL_PACKAGE_TITLE).spec.in > $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)/$(FULL_PACKAGE_TITLE).spec rm -f $@ && tar -czf RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) diff --git a/debian/confluent-cli.spec.in b/debian/confluent-cli.spec.in index 3c19123613..10ab37b083 100644 --- a/debian/confluent-cli.spec.in +++ b/debian/confluent-cli.spec.in @@ -40,8 +40,10 @@ You can use the Confluent command line interface (CLI) to manage Confluent Platf %files %defattr(-,root,root) -%exclude %dir /usr/libexec/cli/linux_##EXCLUDEARCH## -%exclude /usr/libexec/cli/linux_##EXCLUDEARCH##/confluent +%exclude %dir /usr/libexec/cli/linux_##EXCLUDEARCH1## +%exclude /usr/libexec/cli/linux_##EXCLUDEARCH1##/confluent +%exclude %dir /usr/libexec/cli/linux_##EXCLUDEARCH2## +%exclude /usr/libexec/cli/linux_##EXCLUDEARCH2##/confluent /usr/bin/* /usr/libexec/cli/ %doc diff --git a/debian/patches/standard_build_layout.patch b/debian/patches/standard_build_layout.patch index 47879dc223..10dd52e80d 100644 --- a/debian/patches/standard_build_layout.patch +++ b/debian/patches/standard_build_layout.patch @@ -1,6 +1,6 @@ ---- cli/Makefile 2026-03-10 12:57:52.531367502 -0500 -+++ debian/Makefile 2025-09-22 13:01:33.829653470 -0500 -@@ -1,234 +1,163 @@ +--- cli/Makefile 2026-03-16 11:21:09.702762069 -0700 ++++ debian/Makefile 2026-04-03 14:30:10.340491188 -0700 +@@ -1,234 +1,175 @@ -SHELL := /bin/bash -GORELEASER_VERSION := v2.13.3 +SHELL=/bin/bash @@ -128,7 +128,7 @@ + disableupdates=""; if [[ $(word 1,$(split_version)) -ge 3 && $(word 2,$(split_version)) -ge 43 ]]; then disableupdates="_disableupdates"; fi; \ + baseurl="s3-us-west-2.amazonaws.com/confluent.cloud"; if [[ $(word 1,$(split_version)) -ge 4 && $(word 2,$(split_version)) -ge 1 ]]; then baseurl="packages.confluent.io"; fi; \ + version="_$${v}$(CLI_VERSION)"; if [[ $(word 1,$(split_version)) -ge 4 && $(word 2,$(split_version)) -ge 1 ]]; then version=""; fi; \ -+ for dir in darwin_amd64 darwin_arm64 linux_amd64 linux_arm64; do \ ++ for dir in darwin_amd64 darwin_arm64 linux_amd64 linux_arm64 linux_s390x; do \ + archive=confluent$${version}_$${dir}$${disableupdates}.tar.gz; \ + curl -fs https://$${baseurl}/confluent-cli/archives/$(CLI_VERSION)/$${archive} -o $${archive}; \ + mkdir -p $${dir} $${dir}-temp; \ @@ -209,21 +209,25 @@ + RPM_RELEASE_ID=$(REVISION) +endif + -+rpm: rpm-amd64-build rpm-arm64-build ++rpm: rpm-amd64-build rpm-arm64-build rpm-s390x-build ++ find RPM_BUILDING/{,S}RPMS/ -type f | xargs -n1 -iXXX mv XXX . ++ @echo ++ @echo "=================================================" ++ @echo "The RPMs have been created and can be found here:" ++ @ls -laF $(FULL_PACKAGE_TITLE)*rpm ++ @echo "=================================================" + +rpm-amd64-build: rpm-amd64-spec + echo "Building the amd64 RPM" -+ rpmbuild --define="_topdir `pwd`/RPM_BUILDING" --nodebuginfo -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz || rpmbuild --define="_topdir `pwd`/RPM_BUILDING" -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz ++ rpmbuild --target=x86_64 --define="_topdir `pwd`/RPM_BUILDING" --nodebuginfo -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz || rpmbuild --target=x86_64 --define="_topdir `pwd`/RPM_BUILDING" -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz + +rpm-arm64-build: rpm-arm64-spec + echo "Building the arm64 RPM" + rpmbuild --target=aarch64 --define="_topdir `pwd`/RPM_BUILDING" --nodebuginfo -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz || rpmbuild --target=aarch64 --define="_topdir `pwd`/RPM_BUILDING" -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz -+ find RPM_BUILDING/{,S}RPMS/ -type f | xargs -n1 -iXXX mv XXX . -+ echo -+ echo "=================================================" -+ echo "The RPMs have been created and can be found here:" -+ @ls -laF $(FULL_PACKAGE_TITLE)*rpm -+ echo "=================================================" ++ ++rpm-s390x-build: rpm-s390x-spec ++ echo "Building the s390x RPM" ++ rpmbuild --target=s390x --define="_topdir `pwd`/RPM_BUILDING" --nodebuginfo -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz || rpmbuild --target=s390x --define="_topdir `pwd`/RPM_BUILDING" -tb RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz + +# Unfortunately, because of version naming issues and the way rpmbuild expects +# the paths in the tar file to be named, we need to rearchive the package. So @@ -235,15 +239,23 @@ + rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) + mkdir $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) + cp -R $(DESTDIR)/* $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) -+ sed "s/##RPMVERSION##/$(RPM_VERSION)/g; s/##RPMRELEASE##/$(RPM_RELEASE_ID)/g; s/##EXCLUDEARCH##/arm64/g" < debian/$(FULL_PACKAGE_TITLE).spec.in > $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)/$(FULL_PACKAGE_TITLE).spec ++ sed "s/##RPMVERSION##/$(RPM_VERSION)/g; s/##RPMRELEASE##/$(RPM_RELEASE_ID)/g; s/##EXCLUDEARCH1##/arm64/g; s/##EXCLUDEARCH2##/s390x/g" < debian/$(FULL_PACKAGE_TITLE).spec.in > $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)/$(FULL_PACKAGE_TITLE).spec ++ rm -f $@ && tar -czf RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) ++ rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) ++ ++rpm-arm64-spec: rpm-build-area install debian/$(FULL_PACKAGE_TITLE).spec.in RELEASE_$(RPM_VERSION)$(RPM_RELEASE_POSTFIX_UNDERSCORE) ++ rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) ++ mkdir $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) ++ cp -R $(DESTDIR)/* $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) ++ sed "s/##RPMVERSION##/$(RPM_VERSION)/g; s/##RPMRELEASE##/$(RPM_RELEASE_ID)/g; s/##EXCLUDEARCH1##/amd64/g; s/##EXCLUDEARCH2##/s390x/g" < debian/$(FULL_PACKAGE_TITLE).spec.in > $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)/$(FULL_PACKAGE_TITLE).spec + rm -f $@ && tar -czf RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) + rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) + -+rpm-arm64-spec: ++rpm-s390x-spec: rpm-build-area install debian/$(FULL_PACKAGE_TITLE).spec.in RELEASE_$(RPM_VERSION)$(RPM_RELEASE_POSTFIX_UNDERSCORE) + rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) + mkdir $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) + cp -R $(DESTDIR)/* $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) -+ sed "s/##RPMVERSION##/$(RPM_VERSION)/g; s/##RPMRELEASE##/$(RPM_RELEASE_ID)/g; s/##EXCLUDEARCH##/amd64/g" < debian/$(FULL_PACKAGE_TITLE).spec.in > $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)/$(FULL_PACKAGE_TITLE).spec ++ sed "s/##RPMVERSION##/$(RPM_VERSION)/g; s/##RPMRELEASE##/$(RPM_RELEASE_ID)/g; s/##EXCLUDEARCH1##/amd64/g; s/##EXCLUDEARCH2##/arm64/g" < debian/$(FULL_PACKAGE_TITLE).spec.in > $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)/$(FULL_PACKAGE_TITLE).spec + rm -f $@ && tar -czf RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) + rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION) diff --git a/packaging/confluent.sh b/packaging/confluent.sh index ee6eafc092..4eb60fe7c4 100755 --- a/packaging/confluent.sh +++ b/packaging/confluent.sh @@ -11,6 +11,7 @@ is_supported_platform() { case "$platform" in linux/amd64) found=0 ;; linux/arm64) found=0 ;; + linux/s390x) found=0 ;; darwin/amd64) found=0 ;; darwin/arm64) found=0 ;; windows/amd64) found=0 ;;