Skip to content

Commit b804fdb

Browse files
authored
[CLI-3822] Add S390x packaging support (#3301)
1 parent d7500ab commit b804fdb

4 files changed

Lines changed: 64 additions & 29 deletions

File tree

debian/Makefile

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ _empty :=
3131
_space := $(_empty) $(empty)
3232
split_version := $(subst .,$(_space),$(CLI_VERSION))
3333

34+
S390X_AVAILABLE := $(shell [ $(word 1,$(split_version)) -ge 4 ] && [ $(word 2,$(split_version)) -ge 59 ] && echo yes)
35+
3436
all: install
3537

3638
archive: install
@@ -68,7 +70,9 @@ install: apply-patches
6870
disableupdates=""; if [[ $(word 1,$(split_version)) -ge 3 && $(word 2,$(split_version)) -ge 43 ]]; then disableupdates="_disableupdates"; fi; \
6971
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; \
7072
version="_$${v}$(CLI_VERSION)"; if [[ $(word 1,$(split_version)) -ge 4 && $(word 2,$(split_version)) -ge 1 ]]; then version=""; fi; \
71-
for dir in darwin_amd64 darwin_arm64 linux_amd64 linux_arm64; do \
73+
dirs="darwin_amd64 darwin_arm64 linux_amd64 linux_arm64"; \
74+
if [[ -n "$(S390X_AVAILABLE)" ]]; then dirs="$${dirs} linux_s390x"; fi; \
75+
for dir in $${dirs}; do \
7276
archive=confluent$${version}_$${dir}$${disableupdates}.tar.gz; \
7377
curl -fs https://$${baseurl}/confluent-cli/archives/$(CLI_VERSION)/$${archive} -o $${archive}; \
7478
mkdir -p $${dir} $${dir}-temp; \
@@ -116,21 +120,25 @@ else
116120
RPM_RELEASE_ID=$(REVISION)
117121
endif
118122

119-
rpm: rpm-amd64-build rpm-arm64-build
123+
rpm: rpm-amd64-build rpm-arm64-build $(if $(S390X_AVAILABLE),rpm-s390x-build)
124+
find RPM_BUILDING/{,S}RPMS/ -type f | xargs -n1 -iXXX mv XXX .
125+
@echo
126+
@echo "================================================="
127+
@echo "The RPMs have been created and can be found here:"
128+
@ls -laF $(FULL_PACKAGE_TITLE)*rpm
129+
@echo "================================================="
120130

121131
rpm-amd64-build: rpm-amd64-spec
122132
echo "Building the amd64 RPM"
123-
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
133+
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
124134

125135
rpm-arm64-build: rpm-arm64-spec
126136
echo "Building the arm64 RPM"
127137
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
128-
find RPM_BUILDING/{,S}RPMS/ -type f | xargs -n1 -iXXX mv XXX .
129-
echo
130-
echo "================================================="
131-
echo "The RPMs have been created and can be found here:"
132-
@ls -laF $(FULL_PACKAGE_TITLE)*rpm
133-
echo "================================================="
138+
139+
rpm-s390x-build: rpm-s390x-spec
140+
echo "Building the s390x RPM"
141+
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
134142

135143
# Unfortunately, because of version naming issues and the way rpmbuild expects
136144
# the paths in the tar file to be named, we need to rearchive the package. So
@@ -142,15 +150,23 @@ rpm-amd64-spec: rpm-build-area install debian/$(FULL_PACKAGE_TITLE).spec.in RELE
142150
rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
143151
mkdir $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
144152
cp -R $(DESTDIR)/* $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
145-
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
153+
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
154+
rm -f $@ && tar -czf RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
155+
rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
156+
157+
rpm-arm64-spec: rpm-build-area install debian/$(FULL_PACKAGE_TITLE).spec.in RELEASE_$(RPM_VERSION)$(RPM_RELEASE_POSTFIX_UNDERSCORE)
158+
rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
159+
mkdir $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
160+
cp -R $(DESTDIR)/* $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
161+
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
146162
rm -f $@ && tar -czf RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
147163
rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
148164

149-
rpm-arm64-spec:
165+
rpm-s390x-spec: rpm-build-area install debian/$(FULL_PACKAGE_TITLE).spec.in RELEASE_$(RPM_VERSION)$(RPM_RELEASE_POSTFIX_UNDERSCORE)
150166
rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
151167
mkdir $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
152168
cp -R $(DESTDIR)/* $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
153-
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
169+
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
154170
rm -f $@ && tar -czf RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
155171
rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
156172

debian/confluent-cli.spec.in

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,10 @@ You can use the Confluent command line interface (CLI) to manage Confluent Platf
4040

4141
%files
4242
%defattr(-,root,root)
43-
%exclude %dir /usr/libexec/cli/linux_##EXCLUDEARCH##
44-
%exclude /usr/libexec/cli/linux_##EXCLUDEARCH##/confluent
43+
%exclude %dir /usr/libexec/cli/linux_##EXCLUDEARCH1##
44+
%exclude /usr/libexec/cli/linux_##EXCLUDEARCH1##/confluent
45+
%exclude %dir /usr/libexec/cli/linux_##EXCLUDEARCH2##
46+
%exclude /usr/libexec/cli/linux_##EXCLUDEARCH2##/confluent
4547
/usr/bin/*
4648
/usr/libexec/cli/
4749
%doc

debian/patches/standard_build_layout.patch

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
--- cli/Makefile 2026-05-01 12:57:33.586341260 -0500
2-
+++ debian/Makefile 2025-09-22 13:01:33.829653470 -0500
3-
@@ -1,242 +1,163 @@
1+
--- cli/Makefile 2026-05-04 11:53:58.813568102 -0700
2+
+++ debian/Makefile 2026-05-04 11:53:51.900990793 -0700
3+
@@ -1,242 +1,179 @@
44
-SHELL := /bin/bash
55
-GORELEASER_VERSION := v2.13.3
66
+SHELL=/bin/bash
@@ -91,6 +91,8 @@
9191
+_space := $(_empty) $(empty)
9292
+split_version := $(subst .,$(_space),$(CLI_VERSION))
9393
+
94+
+S390X_AVAILABLE := $(shell [ $(word 1,$(split_version)) -ge 4 ] && [ $(word 2,$(split_version)) -ge 59 ] && echo yes)
95+
+
9496
+all: install
9597
+
9698
+archive: install
@@ -128,7 +130,9 @@
128130
+ disableupdates=""; if [[ $(word 1,$(split_version)) -ge 3 && $(word 2,$(split_version)) -ge 43 ]]; then disableupdates="_disableupdates"; fi; \
129131
+ 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; \
130132
+ version="_$${v}$(CLI_VERSION)"; if [[ $(word 1,$(split_version)) -ge 4 && $(word 2,$(split_version)) -ge 1 ]]; then version=""; fi; \
131-
+ for dir in darwin_amd64 darwin_arm64 linux_amd64 linux_arm64; do \
133+
+ dirs="darwin_amd64 darwin_arm64 linux_amd64 linux_arm64"; \
134+
+ if [[ -n "$(S390X_AVAILABLE)" ]]; then dirs="$${dirs} linux_s390x"; fi; \
135+
+ for dir in $${dirs}; do \
132136
+ archive=confluent$${version}_$${dir}$${disableupdates}.tar.gz; \
133137
+ curl -fs https://$${baseurl}/confluent-cli/archives/$(CLI_VERSION)/$${archive} -o $${archive}; \
134138
+ mkdir -p $${dir} $${dir}-temp; \
@@ -209,21 +213,25 @@
209213
+ RPM_RELEASE_ID=$(REVISION)
210214
+endif
211215
+
212-
+rpm: rpm-amd64-build rpm-arm64-build
216+
+rpm: rpm-amd64-build rpm-arm64-build $(if $(S390X_AVAILABLE),rpm-s390x-build)
217+
+ find RPM_BUILDING/{,S}RPMS/ -type f | xargs -n1 -iXXX mv XXX .
218+
+ @echo
219+
+ @echo "================================================="
220+
+ @echo "The RPMs have been created and can be found here:"
221+
+ @ls -laF $(FULL_PACKAGE_TITLE)*rpm
222+
+ @echo "================================================="
213223
+
214224
+rpm-amd64-build: rpm-amd64-spec
215225
+ echo "Building the amd64 RPM"
216-
+ 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
226+
+ 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
217227
+
218228
+rpm-arm64-build: rpm-arm64-spec
219229
+ echo "Building the arm64 RPM"
220230
+ 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
221-
+ find RPM_BUILDING/{,S}RPMS/ -type f | xargs -n1 -iXXX mv XXX .
222-
+ echo
223-
+ echo "================================================="
224-
+ echo "The RPMs have been created and can be found here:"
225-
+ @ls -laF $(FULL_PACKAGE_TITLE)*rpm
226-
+ echo "================================================="
231+
+
232+
+rpm-s390x-build: rpm-s390x-spec
233+
+ echo "Building the s390x RPM"
234+
+ 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
227235
+
228236
+# Unfortunately, because of version naming issues and the way rpmbuild expects
229237
+# the paths in the tar file to be named, we need to rearchive the package. So
@@ -235,15 +243,23 @@
235243
+ rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
236244
+ mkdir $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
237245
+ cp -R $(DESTDIR)/* $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
238-
+ 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
246+
+ 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
247+
+ rm -f $@ && tar -czf RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
248+
+ rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
249+
+
250+
+rpm-arm64-spec: rpm-build-area install debian/$(FULL_PACKAGE_TITLE).spec.in RELEASE_$(RPM_VERSION)$(RPM_RELEASE_POSTFIX_UNDERSCORE)
251+
+ rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
252+
+ mkdir $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
253+
+ cp -R $(DESTDIR)/* $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
254+
+ 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
239255
+ rm -f $@ && tar -czf RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
240256
+ rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
241257
+
242-
+rpm-arm64-spec:
258+
+rpm-s390x-spec: rpm-build-area install debian/$(FULL_PACKAGE_TITLE).spec.in RELEASE_$(RPM_VERSION)$(RPM_RELEASE_POSTFIX_UNDERSCORE)
243259
+ rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
244260
+ mkdir $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
245261
+ cp -R $(DESTDIR)/* $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
246-
+ 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
262+
+ 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
247263
+ rm -f $@ && tar -czf RPM_BUILDING/SOURCES/$(FULL_PACKAGE_TITLE)-$(RPM_VERSION).tar.gz $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
248264
+ rm -rf $(FULL_PACKAGE_TITLE)-$(RPM_VERSION)
249265

packaging/confluent.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ is_supported_platform() {
1111
case "$platform" in
1212
linux/amd64) found=0 ;;
1313
linux/arm64) found=0 ;;
14+
linux/s390x) found=0 ;;
1415
darwin/amd64) found=0 ;;
1516
darwin/arm64) found=0 ;;
1617
windows/amd64) found=0 ;;

0 commit comments

Comments
 (0)