From da57183e0c2682143e34949749b5f201c8f4135f Mon Sep 17 00:00:00 2001 From: Ayaz Salikhov Date: Wed, 19 Aug 2026 15:05:04 +0000 Subject: [PATCH] build: Compress the RPM payload with zstd (#8047) --- .cspell.config.yaml | 1 + package/README.md | 7 +------ package/rpm/xrpld.spec | 6 ++++-- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.cspell.config.yaml b/.cspell.config.yaml index 6220cfd60e..e8c5f3c30f 100644 --- a/.cspell.config.yaml +++ b/.cspell.config.yaml @@ -384,4 +384,5 @@ words: - xrplf - xxhash - xxhasher + - zstdio - CGNAT diff --git a/package/README.md b/package/README.md index 516dcf9d9b..9c40861530 100644 --- a/package/README.md +++ b/package/README.md @@ -238,14 +238,9 @@ what catches a binary still linked against the Nix store's ELF loader (see 3. Runs `rpmbuild -bb`, passing the normalized package metadata version as the `pkg_version` RPM macro and `PKG_RELEASE` as the `pkg_release` RPM macro. The spec uses manual `install` commands to place files, disables `dwz`, and - writes uncompressed RPM payloads while generating debuginfo packages. + generates debuginfo packages. 4. Output: `rpmbuild/RPMS/x86_64/xrpld-*.rpm` -The uncompressed RPM payload setting is intentionally unconditional for -generated RPMs. It trades larger RPM artifacts for much shorter package -build/validation time, which keeps RPM package validation in the same rough time -class as Debian package validation. - RPM upgrades intentionally do not restart a running `xrpld` service. The spec uses `%systemd_postun`, matching Debian's `dh_installsystemd --no-stop-on-upgrade` behavior; operators pick up the new binary on the next diff --git a/package/rpm/xrpld.spec b/package/rpm/xrpld.spec index 0e3ee2a968..23974c8900 100644 --- a/package/rpm/xrpld.spec +++ b/package/rpm/xrpld.spec @@ -19,8 +19,10 @@ BuildRequires: systemd-rpm-macros %undefine _debugsource_packages %debug_package -# Intentionally trade larger RPM artifacts for faster package validation. -%global _binary_payload w.ufdio +# Level 3 rather than the el9 default of 19: it shrinks the multi-gigabyte +# debuginfo package roughly fourfold in about a second, where 19 would spend +# minutes on it. +%global _binary_payload w3.zstdio %global _find_debuginfo_dwz_opts %{nil} %build_mtime_policy clamp_to_source_date_epoch