1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-09-11 08:50:45 +03:00

fix(ci): do not build debuginfo packages for RPMS, as it cost 40min of packaging time

This commit is contained in:
Leonid Fedorov
2025-09-03 18:12:42 +00:00
committed by Leonid Fedorov
parent 873eeb172c
commit 83c2933039
3 changed files with 73 additions and 6 deletions

View File

@@ -442,7 +442,15 @@ construct_cmake_flags() {
if [[ $SCCACHE = true ]]; then if [[ $SCCACHE = true ]]; then
warn "Use sccache" warn "Use sccache"
MDB_CMAKE_FLAGS+=(-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache) # Use full path to ensure sccache is found during RPM builds
MDB_CMAKE_FLAGS+=(-DCMAKE_C_COMPILER_LAUNCHER=/usr/local/bin/sccache -DCMAKE_CXX_COMPILER_LAUNCHER=/usr/local/bin/sccache)
message "Sccache binary check:"
ls -la /usr/local/bin/sccache || warn "sccache binary not found"
/usr/local/bin/sccache --version || warn "sccache version failed"
message "Starting sccache server:"
/usr/local/bin/sccache --start-server 2>&1 || warn "Failed to start sccache server"
fi fi
if [[ $RUN_BENCHMARKS = true ]]; then if [[ $RUN_BENCHMARKS = true ]]; then
@@ -531,7 +539,13 @@ build_package() {
cd $MDB_SOURCE_PATH cd $MDB_SOURCE_PATH
if [[ $PKG_FORMAT == "rpm" ]]; then if [[ $PKG_FORMAT == "rpm" ]]; then
command="cmake ${MDB_CMAKE_FLAGS[@]} && make -j\$(nproc) package" message "Configuring cmake for RPM package"
MDB_CMAKE_FLAGS+=(-DCPACK_PACKAGE_DIRECTORY=$MARIA_BUILD_PATH/..)
cmake "${MDB_CMAKE_FLAGS[@]}" -S"$MDB_SOURCE_PATH" -B"$MARIA_BUILD_PATH"
check_errorcode
message "Building RPM package"
command="cmake --build \"$MARIA_BUILD_PATH\" -j$(nproc) --target package"
else else
export DEBIAN_FRONTEND="noninteractive" export DEBIAN_FRONTEND="noninteractive"
export DEB_BUILD_OPTIONS="parallel=$(nproc)" export DEB_BUILD_OPTIONS="parallel=$(nproc)"
@@ -827,7 +841,8 @@ if [[ $BUILD_PACKAGES = true ]]; then
exit_code=$? exit_code=$?
if [[ $SCCACHE = true ]]; then if [[ $SCCACHE = true ]]; then
sccache --show-adv-stats message "Final sccache statistics:"
/usr/local/bin/sccache --show-adv-stats
fi fi
exit $exit_code exit $exit_code

View File

@@ -28,6 +28,27 @@ macro(columnstore_add_rpm_deps)
columnstore_append_for_cpack(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES ${ARGN}) columnstore_append_for_cpack(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES ${ARGN})
endmacro() endmacro()
if(RPM) # Columnstore-specific RPM packaging overrides 1) Use fast compression to speed up packaging
columnstore_add_rpm_deps("snappy" "jemalloc" "procps-ng" "gawk") set(CPACK_RPM_COMPRESSION_TYPE
endif() "zstd"
CACHE STRING "RPM payload compression" FORCE
)
# 2) Disable debuginfo/debugsource to avoid slow packaging and duplicate file warnings
set(CPACK_RPM_DEBUGINFO_PACKAGE
OFF
CACHE BOOL "Disable debuginfo package" FORCE
)
set(CPACK_RPM_PACKAGE_DEBUG
0
CACHE STRING "Disable RPM debug package" FORCE
)
unset(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX CACHE)
# Ensure our overrides are applied by CPack at packaging time CPACK_PROJECT_CONFIG_FILE is included by cpack after
# CPackConfig.cmake is loaded
set(CPACK_PROJECT_CONFIG_FILE
"${CMAKE_CURRENT_LIST_DIR}/cpack_overrides.cmake"
CACHE FILEPATH "Columnstore CPack overrides" FORCE
)
columnstore_add_rpm_deps("snappy" "jemalloc" "procps-ng" "gawk")

View File

@@ -0,0 +1,31 @@
# Columnstore-specific CPack overrides applied at package time
# This file is referenced via CPACK_PROJECT_CONFIG_FILE and is included by CPack
# after it reads the generated CPackConfig.cmake, letting these settings win.
# Faster payload compression
set(CPACK_RPM_COMPRESSION_TYPE "zstd")
# Control debuginfo generation (symbols) without debugsource (sources)
option(CS_RPM_DEBUGINFO "Build Columnstore -debuginfo RPM (symbols only)" OFF)
if(CS_RPM_DEBUGINFO)
# Generate debuginfo RPM (symbols)
set(CPACK_RPM_DEBUGINFO_PACKAGE ON)
set(CPACK_RPM_PACKAGE_DEBUG 1)
else()
# No debuginfo RPM
set(CPACK_RPM_DEBUGINFO_PACKAGE OFF)
set(CPACK_RPM_PACKAGE_DEBUG 0)
set(CPACK_STRIP_FILES OFF)
# Prevent rpmbuild from stripping binaries and running debug post scripts.
# CPACK_STRIP_FILES only affects CPack's own stripping; rpmbuild still
# executes brp-strip and find-debuginfo by default unless we override macros.
if(DEFINED CPACK_RPM_SPEC_MORE_DEFINE)
set(CPACK_RPM_SPEC_MORE_DEFINE "${CPACK_RPM_SPEC_MORE_DEFINE}\n%define __strip /bin/true\n%define __objdump /bin/true\n%define __os_install_post %nil\n%define __debug_install_post %nil")
else()
set(CPACK_RPM_SPEC_MORE_DEFINE "%define __strip /bin/true\n%define __objdump /bin/true\n%define __os_install_post %nil\n%define __debug_install_post %nil")
endif()
endif()
# Always disable debugsource by not mapping sources
unset(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX)