Skip to content

Fix DEB packaging to support multi-arch builds#1576

Merged
tuhaihe merged 2 commits intoapache:mainfrom
tuhaihe:update-deb-name-format
Feb 13, 2026
Merged

Fix DEB packaging to support multi-arch builds#1576
tuhaihe merged 2 commits intoapache:mainfrom
tuhaihe:update-deb-name-format

Conversation

@tuhaihe
Copy link
Member

@tuhaihe tuhaihe commented Feb 13, 2026

Fix DEB build failures on arm64 by addressing three issues:

  • Change Architecture from 'amd64' to 'any' in control file to support building on any architecture
  • Fix DESTDIR path in rules to correctly install cloudberry-env.sh to the debian staging directory
  • Use DEB_HOST_MULTIARCH variable instead of hardcoded x86_64 path for libfakeroot in dh_shlibdeps

Also update package version format to include OS distribution name (e.g., ubuntu22.04) instead of git commit info for clearer package identification. The file name format will be like:

apache-cloudberry-db-incubating_2.1.0-1-ubuntu22.04_arm64.deb

Before:

apache-cloudberry-db-incubating_2.1.0-1-1.bdf90c55_arm64.deb

Fixes #ISSUE_Number

What does this PR do?

Type of Change

  • Bug fix (non-breaking change)
  • New feature (non-breaking change)
  • Breaking change (fix or feature with breaking changes)
  • Documentation update

Breaking Changes

Test Plan

  • Unit tests added/updated
  • Integration tests added/updated
  • Passed make installcheck
  • Passed make -C src/test installcheck-cbdb-parallel

Impact

Performance:

User-facing changes:

Dependencies:

Checklist

Additional Context

CI Skip Instructions


@tuhaihe
Copy link
Member Author

tuhaihe commented Feb 13, 2026

Will test again on the local virtual machine and Docker container.

Copy link
Contributor

@leborchuk leborchuk left a comment

Choose a reason for hiding this comment

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

LGTM, Ok with changing name, short is better. Also see produced debian files, they are the same as for old debian package:

xifos@xifos-dev-jammy:~$ dpkg-deb -c apache-cloudberry-db-incubating_99.0.0-1-ubuntu22.04_amd64.deb | grep bin/postgres
-rwxr-xr-x root/root  20917272 2026-02-13 02:25 ./usr/cloudberry-db/bin/postgres
xifos@xifos-dev-jammy:~$ dpkg-deb -I apache-cloudberry-db-incubating_99.0.0-1-ubuntu22.04_amd64.deb
 new Debian package, version 2.0.
 size 20856034 bytes: control archive=62785 bytes.
    1947 bytes,    32 lines      control
  263634 bytes,  2734 lines      md5sums
     143 bytes,    12 lines   *  postinst             #!/bin/bash
     218 bytes,     5 lines      shlibs
      72 bytes,     2 lines      triggers
 Package: apache-cloudberry-db-incubating
 Version: 99.0.0-1-ubuntu22.04
 Architecture: amd64
 Maintainer: Apache Cloudberry (Incubating) <dev@cloudberry.apache.org>
 Installed-Size: 79239
 Depends: curl, cgroup-tools, iputils-ping, iproute2, keyutils, krb5-multidev, less, libapr1, libbz2-1.0, libcurl4, libcurl3-gnutls, libevent-2.1-7, libreadline8, libxml2, libyaml-0-2, libldap-2.5-0, libzstd1, libcgroup1, libssl3, libpam0g, libprotobuf23, libpsl5, libuv1, liburing2, libxerces-c3.2, locales, lsof, lz4, net-tools, openssh-client, openssh-server, openssl, python3, rsync, wget, xz-utils, zlib1g
 Provides: apache-cloudberry-db
 Section: database
 Description: Apache Cloudberry (incubating) is an advanced, open-source, massively
   parallel processing (MPP) data warehouse developed from PostgreSQL and
   Greenplum. It is designed for high-performance analytics on
   large-scale data sets, offering powerful analytical capabilities and
   enhanced security features.
   Key Features:
     - Massively parallel processing for optimized performance
     - Advanced analytics for complex data processing
     - Integration with ETL and BI tools
     - Compatibility with multiple data sources and formats
     - Enhanced security features
   Apache Cloudberry supports both batch processing and real-time data
   warehousing, making it a versatile solution for modern data
   environments.
   Apache Cloudberry (incubating) is an effort undergoing incubation at
   the Apache Software Foundation (ASF), sponsored by the Apache
   Incubator PMC.
   Incubation is required of all newly accepted projects until a further
   review indicates that the infrastructure, communications, and decision
   making process have stabilized in a manner consistent with other
   successful ASF projects.
   While incubation status is not necessarily a reflection of the
   completeness or stability of the code, it does indicate that the
   project has yet to be fully endorsed by the ASF.

@tuhaihe
Copy link
Member Author

tuhaihe commented Feb 13, 2026

Will test again on the local virtual machine and Docker container.

Now it should work well. I can build the DEB package locally:

image image

@tuhaihe
Copy link
Member Author

tuhaihe commented Feb 13, 2026

LGTM, Ok with changing name, short is better.

Thanks for reviewing! Here, we follow the ASF rules for compliance and set a high standard ourselves.

Fix DEB build failures on arm64 by addressing three issues:
- Change Architecture from 'amd64' to 'any' in control file to
  support building on any architecture
- Fix DESTDIR path in rules to correctly install cloudberry-env.sh
  to the debian staging directory
- Use DEB_HOST_MULTIARCH variable instead of hardcoded x86_64 path
  for libfakeroot in dh_shlibdeps

Also update package version format to include OS distribution name
(e.g., ubuntu22.04) instead of git commit info for clearer package
identification. The file name format will be like:

  ```
  apache-cloudberry-db-incubating_2.1.0-1-ubuntu22.04_arm64.deb
  ```

Before:

  ```
  apache-cloudberry-db-incubating_2.1.0-1-1.bdf90c55_arm64.deb
  ```
@tuhaihe tuhaihe force-pushed the update-deb-name-format branch from 5aa7325 to af35cee Compare February 13, 2026 11:02
@tuhaihe tuhaihe merged commit a16ad2b into apache:main Feb 13, 2026
39 of 40 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants