Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 24 additions & 12 deletions debian/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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; \
Expand Down Expand Up @@ -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
Comment on lines +119 to +137
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The rpm target depends on three arch builds that all (via the rpm-*-spec prerequisites) write to the same tarball path RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz. If make is invoked with parallelism (e.g., make -j rpm), those spec/build recipes can run concurrently and race/overwrite that shared tarball, leading to non-deterministic or corrupted RPM outputs. Consider making the rpm-related targets non-parallel (e.g., .NOTPARALLEL for rpm/rpm-*-build/rpm-*-spec) or generating per-arch source tarballs (distinct filenames) and pointing each rpmbuild invocation at its arch-specific tarball.

Copilot uses AI. Check for mistakes.

# 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
Expand All @@ -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)

Expand Down
6 changes: 4 additions & 2 deletions debian/confluent-cli.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
42 changes: 27 additions & 15 deletions debian/patches/standard_build_layout.patch
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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; \
Expand Down Expand Up @@ -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
Expand All @@ -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)

Expand Down
1 change: 1 addition & 0 deletions packaging/confluent.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 ;;
Expand Down