packaging rework + build GithubAction - #173
Open
EvgeniyPatlan wants to merge 1 commit into
Open
Conversation
EvgeniyPatlan
force-pushed
the
packaging-optimization
branch
from
August 18, 2026 11:36
d9ad57b to
ffd6c2e
Compare
Build both package families offline from prefetched dependency sources:
Boost and the AWS SDK are shallow-cloned at the tags named in the RPM
spec, pruned of everything the build never compiles and packed alongside
the product tarball, then consumed as Source1/Source2 in the spec and as
additional orig tarballs in the deb source package.
Build the dependencies once per package instead of twice and link both
binlog_server configurations against them, restrict Boost to the modules
the sources include, and replace every in-tree sed on CMakePresets.json
with command line overrides.
Declare BuildRequires and Build-Depends, add ${shlibs:Depends} so the deb
declares the libraries it links against, run the unit tests in %check and
dh_auto_test, own /etc/percona-binlog-server, and add debian/copyright.
Restructure the builder script into sections with a main(), split
install_deps into per-family functions, deduplicate artifact lookup and
publishing, and run it under set -eu.
Add .github/workflows/packages.yml, mirroring the Jenkins pipeline
without signing or repository upload, publishing every package as a
downloadable artifact.
Fixes: the script was not executable and failed under its own /bin/sh
shebang, install_deps picked the wrong compiler on jammy and bullseye,
cmake3 does not exist on the EL9 and EL10 targets, --deb_release was
ignored for binary packages, build_deb used a default version instead of
the one in the .dsc and could build from a stale tree, and the AWS CRT
submodule check failed when the build tree sat inside a git repository.
EvgeniyPatlan
force-pushed
the
packaging-optimization
branch
from
August 18, 2026 11:38
ffd6c2e to
310521d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Build both package families offline from prefetched dependency sources: Boost and the AWS SDK are shallow-cloned at the tags named in the RPM spec, pruned of everything the build never compiles and packed alongside the product tarball, then consumed as Source1/Source2 in the spec and as additional orig tarballs in the deb source package.
Build the dependencies once per package instead of twice and link both binlog_server configurations against them, restrict Boost to the modules the sources include, and replace every in-tree sed on CMakePresets.json with command line overrides.
Declare BuildRequires and Build-Depends, add ${shlibs:Depends} so the deb declares the libraries it links against, run the unit tests in %check and dh_auto_test, own /etc/percona-binlog-server, and add debian/copyright.
Restructure the builder script into sections with a main(), split install_deps into per-family functions, deduplicate artifact lookup and publishing, and run it under set -eu.
Add .github/workflows/packages.yml, mirroring the Jenkins pipeline without signing or repository upload, publishing every package as a downloadable artifact.
Fixes: the script was not executable and failed under its own /bin/sh shebang, install_deps picked the wrong compiler on jammy and bullseye, cmake3 does not exist on the EL9 and EL10 targets, --deb_release was ignored for binary packages, build_deb used a default version instead of the one in the .dsc and could build from a stale tree, and the AWS CRT submodule check failed when the build tree sat inside a git repository.