Klim Todrik 2dac87032d Feat: RHEL 10 support (#3518) 8 months ago
..
CommonDeb.cmake 4dac7d657d Update galera file paths, so they don't conflict with other galera packages (#1705) 2 years ago
CommonRpm.cmake 4dac7d657d Update galera file paths, so they don't conflict with other galera packages (#1705) 2 years ago
README.md 7288a12fc3 minor typo in internal docs 2 years ago
build_bionic.cmake afd37fcf1f move galera packaging stuff 2 years ago
build_bookworm.cmake afd37fcf1f move galera packaging stuff 2 years ago
build_bullseye.cmake afd37fcf1f move galera packaging stuff 2 years ago
build_buster.cmake afd37fcf1f move galera packaging stuff 2 years ago
build_focal.cmake afd37fcf1f move galera packaging stuff 2 years ago
build_jammy.cmake afd37fcf1f move galera packaging stuff 2 years ago
build_macos.cmake 015dca7e90 add macos galera packaging 2 years ago
build_rhel10.cmake 2dac87032d Feat: RHEL 10 support (#3518) 8 months ago
build_rhel7.cmake afd37fcf1f move galera packaging stuff 2 years ago
build_rhel8.cmake afd37fcf1f move galera packaging stuff 2 years ago
build_rhel9.cmake afd37fcf1f move galera packaging stuff 2 years ago
description.txt afd37fcf1f move galera packaging stuff 2 years ago
metainfo.cmake afd37fcf1f move galera packaging stuff 2 years ago
packaging.cmake e3fff2ea1e more specific packaging galera 2 years ago
tmp 77a716773a CI force Galera build (#2541) 1 year ago

README.md

Galera packaging stuff

Here are some helpful resources for packaging Galera for different distributions.

Galera lives in its own repository, and its build is standalone. However, for distributions, it is more comfortable to have ready packages rather than copying binary modules.

These steps are invoked specifically when the environment variable PACK_GALERA is set, and also when the build is configured with PACK=1 parameter, like this:

# export DISTR=rhel8
# export arch=x86_64
export PACK_GALERA=1
mkdir build && cd build
cmake -DPACK=1 /path/to/manticore/sources

If all the conditions are met, we merge the content of this folder into the galera-src/cmake folder, and then perform the building of packages with cmake --build . --target package. Finally, it produces a couple of packages - one with Galera, and the second with debug info.

These files are distributed here to have more granular control over the metadata content, especially when we are just adding support for a new distribution.

  • packaging.cmake is the main entry point. It is included from the Galera build.
  • metainfo.cmake provides metadata for all the packages.
  • description.txt is part of the metadata; some packages need it in a separate file, not inlined.
  • CommonDeb.cmake provides Debian-specific stuff.
  • CommonRpm.cmake provides RPM-specific stuff.
  • build_*.cmake provides individual distribution environments.

CI for Packaging and Publishing Galera Packages

The GitHub CI workflow file is located in .github/workflows/pack_publish_galera.yml. It's triggered when cmake/GetGALERA.cmake or galera_packaging/* is updated and one of the following conditions is met:

  • Pull request to the master branch and:
  • Push to one of the following branches: master, maintenance-release, manticore-*

Another supported label is release. When this is set, the Galera packages will be uploaded to https://repo.manticoresearch.com/ with the release target. This action will actually place them in the release candidate directories. Otherwise, the packages will be placed to dev directories. Note, releasing Galera packages requires a pull request to set the release label.