From 9d1fe85f75c183202db156614839703c4414dc41 Mon Sep 17 00:00:00 2001 From: Veenious Geevarghese Date: Mon, 2 Feb 2026 15:44:01 +0530 Subject: [PATCH 01/10] Add CatBoost 1.2.7 build files for UBI 9.6 --- .../Dockerfiles/v1.2.7_ubi_9.6/Dockerfile | 185 ++++++++++++++ c/catboost/build_info.json | 18 +- c/catboost/catboost-1.2.7_ubi_9.6.sh | 240 ++++++++++++++++++ 3 files changed, 438 insertions(+), 5 deletions(-) create mode 100644 c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile create mode 100644 c/catboost/catboost-1.2.7_ubi_9.6.sh diff --git a/c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile b/c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile new file mode 100644 index 0000000000..32cd17ddf8 --- /dev/null +++ b/c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile @@ -0,0 +1,185 @@ + +FROM registry.access.redhat.com/ubi9/ubi:9.6 AS builder + +ARG PACKAGE_VERSION=v1.2.7 +ENV PACKAGE_VERSION=${PACKAGE_VERSION} + +WORKDIR /root + +RUN set -ex \ +&& PACKAGE_NAME=catboost \ +&& PACKAGE_URL=https://github.com/catboost/catboost.git \ +&& BUILD_HOME=$(pwd) \ +&& WORKDIR="${WORKDIR:-$BUILD_HOME/catboost_build}" \ +&& REPO_DIR="$WORKDIR/catboost" \ +&& PKG_DIR="$REPO_DIR/catboost/python-package" \ +&& PYTHON_VERSION="${PYTHON_VERSION:-3.11.5}" \ +&& PYTHON_BIN="${PYTHON_BIN:-$(command -v python${PYTHON_VERSION%.*} || true)}" \ +&& CLANG_VERSION="${CLANG_VERSION:-17.0.6}" \ +&& CONAN_VERSION="${CONAN_VERSION:-1.62.0}" \ +&& export PATH=/usr/local/bin:/usr/bin:$PATH \ +\ +&& yum config-manager --add-repo https://mirror.stream.centos.org/9-stream/CRB/ppc64le/os \ +&& yum config-manager --add-repo https://mirror.stream.centos.org/9-stream/AppStream//ppc64le/os \ +&& yum config-manager --add-repo https://mirror.stream.centos.org/9-stream/BaseOS/ppc64le/os \ +&& rpm --import https://www.centos.org/keys/RPM-GPG-KEY-CentOS-Official-SHA256 \ +\ +&& echo -e "\n[+] Install system dependencies (dnf)\n" \ +&& dnf install -y \ + git \ + gcc gcc-c++ make \ + cmake ninja-build \ + perl \ + wget tar xz unzip zip which findutils \ + openssl-devel libffi-devel zlib-devel xz-devel bzip2-devel sqlite-devel \ + lld \ + nodejs npm \ + libyaml-devel \ + autoconf automake libtool \ + gzip \ + diffutils \ + texinfo \ + gcc-gfortran \ + openblas-devel \ + libjpeg-turbo-devel \ +\ +&& cd "$BUILD_HOME" \ +&& if [ ! -d "$BUILD_HOME/Python-${PYTHON_VERSION}" ]; then \ + wget "https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz"; \ + tar xzf "Python-${PYTHON_VERSION}.tgz"; \ + rm -rf "Python-${PYTHON_VERSION}.tgz"; \ + fi \ +&& cd "Python-${PYTHON_VERSION}" \ +&& ./configure --with-system-ffi --with-computed-gotos --enable-loadable-sqlite-extensions \ +&& make -j"$(nproc)" \ +&& make altinstall \ +&& ln -sf "$(which python3.11)" /usr/bin/python3 \ +&& ln -sf "$(which pip3.11)" /usr/bin/pip3 \ +&& python3 -V && pip3 -V \ +\ +&& python3 -m pip install -U pip setuptools wheel testpath pytest \ +\ +&& echo -e "\n[+] Install/Setup clang 17\n" \ +&& if command -v clang >/dev/null 2>&1 && clang --version | head -n1 | grep -q "clang version 17"; then \ + echo -e "\n[+] Using system clang: $(command -v clang)\n"; \ + else \ + cd "$BUILD_HOME"; \ + LLVM_TARBALL="clang+llvm-${CLANG_VERSION}-powerpc64le-linux-rhel-8.8.tar.xz"; \ + LLVM_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${CLANG_VERSION}/${LLVM_TARBALL}"; \ + echo -e "\n[+] Downloading clang/llvm ${CLANG_VERSION} from GitHub releases\n"; \ + curl -L -o "${LLVM_TARBALL}" "${LLVM_URL}" || { echo -e "\n[!] ERROR: Failed to download ${LLVM_URL}\n" >&2; exit 1; }; \ + tar -xf "${LLVM_TARBALL}"; \ + rm -f "${LLVM_TARBALL}"; \ + LLVM_DIR="clang+llvm-${CLANG_VERSION}-powerpc64le-linux-rhel-8.8"; \ + [ -d "${LLVM_DIR}" ] || { echo -e "\n[!] ERROR: LLVM directory not found after extract: ${LLVM_DIR}\n" >&2; exit 1; }; \ + export PATH="$BUILD_HOME/${LLVM_DIR}/bin:$PATH"; \ + export CC="$BUILD_HOME/${LLVM_DIR}/bin/clang"; \ + export CXX="$BUILD_HOME/${LLVM_DIR}/bin/clang++"; \ + export ASM="$BUILD_HOME/${LLVM_DIR}/bin/clang"; \ + fi \ +\ +&& clang --version | head -n2 \ +\ +&& echo -e "\n[+] Install Conan ${CONAN_VERSION} (Conan 1.x)\n" \ +&& python3 -m pip uninstall -y conan || true \ +&& python3 -m pip install "conan==${CONAN_VERSION}" \ +&& conan --version \ +\ +&& echo -e "\n[+] Clone CatBoost repository\n" \ +&& mkdir -p "$WORKDIR" \ +&& cd "$WORKDIR" \ +&& if [ -d "$REPO_DIR/.git" ]; then \ + echo -e "\n[+] Repo exists; fetching updates\n"; \ + git -C "$REPO_DIR" fetch --all --tags; \ + else \ + git clone "$PACKAGE_URL" "$REPO_DIR"; \ + fi \ +&& cd "$REPO_DIR" \ +&& git checkout "$PACKAGE_VERSION" \ +\ +&& echo -e "\n[+] Patch conanfile.py (disable yasm + ragel tool requirements)\n" \ +&& CONANFILE="$REPO_DIR/conanfile.py" \ +&& [ -f "$CONANFILE" ] || { echo -e "\n[!] ERROR: conanfile.py not found: $CONANFILE\n" >&2; exit 1; } \ +&& sed -i \ + -e 's/^\(\s*\)self\.tool_requires("yasm\/1\.3\.0")/\1#self.tool_requires("yasm\/1.3.0")/g' \ + -e 's/^\(\s*\)self\.tool_requires("ragel\/6\.10")/\1#self.tool_requires("ragel\/6.10")/g' \ + "$CONANFILE" \ +&& grep -n 'yasm/1.3.0' "$CONANFILE" || true \ +&& grep -n 'ragel/6.10' "$CONANFILE" || true \ +\ +&& RAGEL_BUILD="$WORKDIR/_ragel_build" \ +&& rm -rf "$RAGEL_BUILD" \ +&& mkdir -p "$RAGEL_BUILD" \ +&& cd "$RAGEL_BUILD" \ +&& RAGEL_VER=6.10 \ +&& RAGEL_TARBALL="ragel-${RAGEL_VER}.tar.gz" \ +&& RAGEL_URL="https://www.colm.net/files/ragel/${RAGEL_TARBALL}" \ +&& curl -L -o "$RAGEL_TARBALL" "$RAGEL_URL" || { echo -e "\n[!] ERROR: Failed to download ragel tarball\n" >&2; exit 1; } \ +&& tar -xzf "$RAGEL_TARBALL" \ +&& cd "ragel-${RAGEL_VER}" \ +&& ./configure --prefix="$RAGEL_BUILD/install" \ +&& make -j"$(nproc)" \ +&& make install \ +&& RAGEL_BIN="$RAGEL_BUILD/install/bin/ragel" \ +&& [ -x "$RAGEL_BIN" ] || { echo -e "\n[!] ERROR: ragel binary not found at $RAGEL_BIN\n" >&2; exit 1; } \ +&& "$RAGEL_BIN" -v \ +&& export PATH="$(dirname "$RAGEL_BIN"):$PATH" \ +\ +&& cd "$PKG_DIR" \ +&& rm -rf build dist *.egg-info .eggs || true \ +&& mkdir -p build/temp.linux-ppc64le-cpython-311/bin \ +&& ln -sf "$RAGEL_BIN" build/temp.linux-ppc64le-cpython-311/bin/ragel \ +\ +&& ret=0 \ +&& python3 setup.py bdist_wheel --no-widget || ret=$? \ +&& if [ "$ret" -ne 0 ]; then \ + echo -e "\n[!] ERROR: Wheel build failed\n" >&2; \ + exit 1; \ + fi \ +\ +&& echo -e "\n[+] Wheel generated in dist/:\n" \ +&& ls -lh dist \ +\ +&& echo -e "\n[+] Install built wheel\n" \ +&& WHEEL_PATH=$(ls -1 "$PKG_DIR/dist"/catboost-1.2.7-*_ppc64le.whl | head -n 1) \ +&& [ -f "$WHEEL_PATH" ] || { echo -e "\n[!] ERROR: Wheel not found in dist/\n" >&2; exit 1; } \ +\ +&& python3 -m pip install -U pip \ +&& python3 -m pip install "$WHEEL_PATH" \ +\ +&& echo -e "\n[+] Run catboost python-package unit tests (ut/medium)\n" \ +&& mkdir -p "$PKG_DIR/test_output" \ +&& export CMAKE_SOURCE_DIR="$REPO_DIR" \ +&& export CMAKE_BINARY_DIR="$PKG_DIR/build" \ +&& export TEST_OUTPUT_DIR="$PKG_DIR/test_output" \ +&& cd "$PKG_DIR/ut/medium" \ +&& ret=0 \ +&& python3 -m pytest -v || ret=$? \ +&& if [ "$ret" -ne 0 ]; then \ + exit 2; \ + fi \ +\ +&& mkdir -p /out \ +&& cp -av "$PKG_DIR/dist/"*.whl /out/ + +# ============================================================================== +# Stage 2: runtime +# ============================================================================== +FROM registry.access.redhat.com/ubi9/ubi:9.6 AS runtime + +WORKDIR /root + +RUN dnf install -y openblas-serial && dnf clean all + +COPY --from=builder /usr/local/ /usr/local/ +COPY --from=builder /out/ /tmp/wheels/ + +RUN set -ex \ +&& ln -sf /usr/local/bin/python3.11 /usr/bin/python3 \ +&& ln -sf /usr/local/bin/pip3.11 /usr/bin/pip3 \ +&& python3 -V && pip3 -V \ +&& python3 -m pip install -U pip \ +&& python3 -m pip install /tmp/wheels/*.whl \ +&& rm -rf /tmp/wheels + +CMD ["python3"] diff --git a/c/catboost/build_info.json b/c/catboost/build_info.json index 9e36fe6e69..b2cbc30c7e 100644 --- a/c/catboost/build_info.json +++ b/c/catboost/build_info.json @@ -1,12 +1,20 @@ { - "maintainer": "Pratikt2312", + "maintainer": "veenious", "package_name": "catboost", "github_url": "https://github.com/catboost/catboost.git", - "version": "v1.2.5", + "version": "v1.2.7", "default_branch": "master", - "build_script": "catboost-1.2.5_ubi_9.3.sh", + "build_script": "catboost-1.2.7_ubi_9.6.sh", "package_dir": "c/catboost", - "docker_build": false, + "docker_build": true, "validate_build_script": true, - "use_non_root_user": false + "use_non_root_user": false, + "v1.2.5": { + "build_script": "catboost-1.2.5_ubi_9.3.sh" + }, + "v1.2.7": { + "dir": "v1.2.7_ubi_9.6", + "build_script": "catboost-1.2.7_ubi_9.6.sh" + } + } diff --git a/c/catboost/catboost-1.2.7_ubi_9.6.sh b/c/catboost/catboost-1.2.7_ubi_9.6.sh new file mode 100644 index 0000000000..abce00f0b1 --- /dev/null +++ b/c/catboost/catboost-1.2.7_ubi_9.6.sh @@ -0,0 +1,240 @@ +#!/bin/bash -ex +# ---------------------------------------------------------------------------- +# +# Package : catboost +# Version : v1.2.7 +# Source repo : https://github.com/catboost/catboost.git +# Tested on : UBI:9.6 (ppc64le) +# Language : Python,c,c++ +# CI-Check : True +# Script License: Apache License Version 2.0 +# Maintainer : Veenious D Geevarghese +# +# Disclaimer: This script has been tested in root mode on given +# ========== platform using the mentioned version of the package. +# It may not work as expected with newer versions of the +# package and/or distribution. In such case, please +# contact "Maintainer" of this script. +# +# ---------------------------------------------------------------------------- + +PACKAGE_NAME=catboost +PACKAGE_VERSION=${1:-v1.2.7} +PACKAGE_URL=https://github.com/catboost/catboost.git + +BUILD_HOME=$(pwd) +WORKDIR=${WORKDIR:-"$BUILD_HOME/catboost_build"} +REPO_DIR=$WORKDIR/catboost +PKG_DIR=$REPO_DIR/catboost/python-package + +PYTHON_VERSION=${PYTHON_VERSION:-3.11.5} +PYTHON_BIN=${PYTHON_BIN:-$(command -v python${PYTHON_VERSION%.*} || true)} +CLANG_VERSION=${CLANG_VERSION:-17.0.6} +CONAN_VERSION=${CONAN_VERSION:-1.62.0} +export PATH=/usr/local/bin:/usr/bin:$PATH + +#Install Centos repos and dependencies +yum config-manager --add-repo https://mirror.stream.centos.org/9-stream/CRB/ppc64le/os +yum config-manager --add-repo https://mirror.stream.centos.org/9-stream/AppStream//ppc64le/os +yum config-manager --add-repo https://mirror.stream.centos.org/9-stream/BaseOS/ppc64le/os +rpm --import https://www.centos.org/keys/RPM-GPG-KEY-CentOS-Official-SHA256 + +# ---------------------------------------------------------------------------- +# Install dependencies +# ---------------------------------------------------------------------------- +echo -e "\n[+] Install system dependencies (dnf)\n" + +dnf install -y \ + git \ + gcc gcc-c++ make \ + cmake ninja-build \ + perl \ + wget tar xz unzip zip which findutils \ + openssl-devel libffi-devel zlib-devel xz-devel bzip2-devel sqlite-devel \ + lld \ + nodejs npm \ + libyaml-devel \ + autoconf automake libtool \ + gzip \ + diffutils \ + texinfo \ + gcc-gfortran \ + openblas-devel \ + libjpeg-turbo-devel + + +#Install Python from source +cd "$BUILD_HOME" +if [ ! -d "$BUILD_HOME/Python-${PYTHON_VERSION}" ]; then + wget "https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz" + tar xzf "Python-${PYTHON_VERSION}.tgz" + rm -rf "Python-${PYTHON_VERSION}.tgz" +fi + +cd "Python-${PYTHON_VERSION}" +./configure --with-system-ffi --with-computed-gotos --enable-loadable-sqlite-extensions +make -j"$(nproc)" +make altinstall + +ln -sf "$(which python3.11)" /usr/bin/python3 +ln -sf "$(which pip3.11)" /usr/bin/pip3 +python3 -V && pip3 -V + + +python3 -m pip install -U pip setuptools wheel testpath pytest + +# ---------------------------------------------------------------------------- +#Setup clang +# ---------------------------------------------------------------------------- +echo -e "\n[+] Install/Setup clang 17\n" + +if command -v clang >/dev/null 2>&1 && clang --version | head -n1 | grep -q "clang version 17"; then + echo -e "\n[+] Using system clang: $(command -v clang)\n" +else + cd "$BUILD_HOME" + LLVM_TARBALL="clang+llvm-${CLANG_VERSION}-powerpc64le-linux-rhel-8.8.tar.xz" + LLVM_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${CLANG_VERSION}/${LLVM_TARBALL}" + + echo -e "\n[+] Downloading clang/llvm ${CLANG_VERSION} from GitHub releases\n" + curl -L -o "${LLVM_TARBALL}" "${LLVM_URL}" || { echo -e "\n[!] ERROR: Failed to download ${LLVM_URL}\n" >&2; exit 1; } + + tar -xf "${LLVM_TARBALL}" + rm -f "${LLVM_TARBALL}" + + LLVM_DIR="clang+llvm-${CLANG_VERSION}-powerpc64le-linux-rhel-8.8" + [ -d "${LLVM_DIR}" ] || { echo -e "\n[!] ERROR: LLVM directory not found after extract: ${LLVM_DIR}\n" >&2; exit 1; } + + export PATH="$BUILD_HOME/${LLVM_DIR}/bin:$PATH" + export CC="$BUILD_HOME/${LLVM_DIR}/bin/clang" + export CXX="$BUILD_HOME/${LLVM_DIR}/bin/clang++" + export ASM="$BUILD_HOME/${LLVM_DIR}/bin/clang" +fi + +clang --version | head -n2 + +# ---------------------------------------------------------------------------- +# Conan 1.x (CatBoost 1.2.7 build scripts expect Conan 1 CLI) +# ---------------------------------------------------------------------------- +echo -e "\n[+] Install Conan ${CONAN_VERSION} (Conan 1.x)\n" + +python3 -m pip uninstall -y conan || true +python3 -m pip install "conan==${CONAN_VERSION}" +conan --version + + +# ---------------------------------------------------------------------------- +# Clone CatBoost +# ---------------------------------------------------------------------------- +echo -e "\n[+] Clone CatBoost repository\n" + +mkdir -p "$WORKDIR" +cd "$WORKDIR" + +if [ -d "$REPO_DIR/.git" ]; then + echo -e "\n[+] Repo exists; fetching updates\n" + git -C "$REPO_DIR" fetch --all --tags +else + git clone "$PACKAGE_URL" "$REPO_DIR" +fi + +cd "$REPO_DIR" +git checkout "$PACKAGE_VERSION" + +# ---------------------------------------------------------------------------- +# Patch conanfile.py: disable yasm + ragel tool requirements +# ---------------------------------------------------------------------------- +echo -e "\n[+] Patch conanfile.py (disable yasm + ragel tool requirements)\n" + +CONANFILE="$REPO_DIR/conanfile.py" +[ -f "$CONANFILE" ] || { echo -e "\n[!] ERROR: conanfile.py not found: $CONANFILE\n" >&2; exit 1; } +sed -i \ + -e 's/^\(\s*\)self\.tool_requires("yasm\/1\.3\.0")/\1#self.tool_requires("yasm\/1.3.0")/g' \ + -e 's/^\(\s*\)self\.tool_requires("ragel\/6\.10")/\1#self.tool_requires("ragel\/6.10")/g' \ + "$CONANFILE" + +grep -n 'yasm/1.3.0' "$CONANFILE" || true +grep -n 'ragel/6.10' "$CONANFILE" || true + +# ---------------------------------------------------------------------------- +# Build ragel from source +# ---------------------------------------------------------------------------- + +RAGEL_BUILD="$WORKDIR/_ragel_build" +rm -rf "$RAGEL_BUILD" +mkdir -p "$RAGEL_BUILD" +cd "$RAGEL_BUILD" + +RAGEL_VER=6.10 +RAGEL_TARBALL="ragel-${RAGEL_VER}.tar.gz" +RAGEL_URL="https://www.colm.net/files/ragel/${RAGEL_TARBALL}" + +curl -L -o "$RAGEL_TARBALL" "$RAGEL_URL" || { echo -e "\n[!] ERROR: Failed to download ragel tarball\n" >&2; exit 1; } + +tar -xzf "$RAGEL_TARBALL" +cd "ragel-${RAGEL_VER}" + +./configure --prefix="$RAGEL_BUILD/install" +make -j"$(nproc)" +make install + +RAGEL_BIN="$RAGEL_BUILD/install/bin/ragel" +[ -x "$RAGEL_BIN" ] || { echo -e "\n[!] ERROR: ragel binary not found at $RAGEL_BIN\n" >&2; exit 1; } +"$RAGEL_BIN" -v + +export PATH="$(dirname "$RAGEL_BIN"):$PATH" + + +cd "$PKG_DIR" + +# Clean python-package artifacts only +rm -rf build dist *.egg-info .eggs || true + +# Pre-create ragel location expected by python-package build temp dir. +mkdir -p build/temp.linux-ppc64le-cpython-311/bin +ln -sf "$RAGEL_BIN" build/temp.linux-ppc64le-cpython-311/bin/ragel + + +ret=0 +python3 setup.py bdist_wheel --no-widget || ret=$? +if [ "$ret" -ne 0 ]; then + echo -e "\n[!] ERROR: Wheel build failed\n" >&2 + exit 1 +fi + +echo -e "\n[+] Wheel generated in dist/:\n" +ls -lh dist + +# ---------------------------------------------------------------------------- +# Install wheel +# ---------------------------------------------------------------------------- +echo -e "\n[+] Install built wheel\n" + +WHEEL_PATH=$(ls -1 "$PKG_DIR/dist"/catboost-1.2.7-*_ppc64le.whl | head -n 1) +[ -f "$WHEEL_PATH" ] || { echo -e "\n[!] ERROR: Wheel not found in dist/\n" >&2; exit 1; } + +python3 -m pip install -U pip +python3 -m pip install "$WHEEL_PATH" + +# ---------------------------------------------------------------------------- +# Run catboost python-package tests +# ---------------------------------------------------------------------------- +echo -e "\n[+] Run catboost python-package unit tests (ut/medium)\n" + +mkdir -p "$PKG_DIR/test_output" +export CMAKE_SOURCE_DIR="$REPO_DIR" +export CMAKE_BINARY_DIR="$PKG_DIR/build" +export TEST_OUTPUT_DIR="$PKG_DIR/test_output" + +cd "$PKG_DIR/ut/medium" +ret=0 +python3 -m pytest -v || ret=$? +if [ "$ret" -ne 0 ]; then + exit 2 +fi + +# ---------------------------------------------------------------------------- +# Conclude +# ---------------------------------------------------------------------------- +echo -e "\n[+] Build and test successful!\n" +echo "Wheel located at: $WHEEL_PATH" +exit 0 From 9cb87c3aa04eef488b653bb0e36c2c7db07c47d4 Mon Sep 17 00:00:00 2001 From: Veenious Geevarghese Date: Tue, 3 Feb 2026 17:45:51 +0530 Subject: [PATCH 02/10] fixed Vulnerabilities --- c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile b/c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile index 32cd17ddf8..1beedf72a1 100644 --- a/c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile +++ b/c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile @@ -169,7 +169,11 @@ FROM registry.access.redhat.com/ubi9/ubi:9.6 AS runtime WORKDIR /root -RUN dnf install -y openblas-serial && dnf clean all +RUN set -ex \ +&& dnf -y update \ +&& dnf install -y openblas-serial \ +&& dnf clean all \ +&& rm -rf /var/cache/dnf /var/cache/yum COPY --from=builder /usr/local/ /usr/local/ COPY --from=builder /out/ /tmp/wheels/ @@ -180,6 +184,8 @@ RUN set -ex \ && python3 -V && pip3 -V \ && python3 -m pip install -U pip \ && python3 -m pip install /tmp/wheels/*.whl \ +&& python3 -m pip install -U "urllib3>=2.6.3" \ +&& rpm -q gnupg2 >/dev/null 2>&1 && rpm -e --nodeps gnupg2 || true \ && rm -rf /tmp/wheels CMD ["python3"] From 7256a5553c811ca3e13f9328893e0977dd1706c2 Mon Sep 17 00:00:00 2001 From: Veenious Geevarghese Date: Wed, 4 Feb 2026 14:32:21 +0530 Subject: [PATCH 03/10] Add docker_cmd to trigger CI build --- c/catboost/build_info.json | 1 + 1 file changed, 1 insertion(+) diff --git a/c/catboost/build_info.json b/c/catboost/build_info.json index b2cbc30c7e..126eb5844c 100644 --- a/c/catboost/build_info.json +++ b/c/catboost/build_info.json @@ -7,6 +7,7 @@ "build_script": "catboost-1.2.7_ubi_9.6.sh", "package_dir": "c/catboost", "docker_build": true, + "docker_cmd": "docker build -t ${package_name}:${version} ${dir}", "validate_build_script": true, "use_non_root_user": false, "v1.2.5": { From c77a697da427b3983d015a204b255a3882eeb20d Mon Sep 17 00:00:00 2001 From: Veenious Geevarghese Date: Mon, 9 Feb 2026 15:23:38 +0530 Subject: [PATCH 04/10] empty line removed --- c/catboost/build_info.json | 1 - 1 file changed, 1 deletion(-) diff --git a/c/catboost/build_info.json b/c/catboost/build_info.json index 126eb5844c..d3f0273fa2 100644 --- a/c/catboost/build_info.json +++ b/c/catboost/build_info.json @@ -17,5 +17,4 @@ "dir": "v1.2.7_ubi_9.6", "build_script": "catboost-1.2.7_ubi_9.6.sh" } - } From 37ae28cf3b481d975f36515cfd2c98c5d3d5eb23 Mon Sep 17 00:00:00 2001 From: Veenious Geevarghese Date: Mon, 9 Feb 2026 15:38:31 +0530 Subject: [PATCH 05/10] Typo error in "Ci-Check : True" --- c/catboost/catboost-1.2.7_ubi_9.6.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/c/catboost/catboost-1.2.7_ubi_9.6.sh b/c/catboost/catboost-1.2.7_ubi_9.6.sh index abce00f0b1..3a402affca 100644 --- a/c/catboost/catboost-1.2.7_ubi_9.6.sh +++ b/c/catboost/catboost-1.2.7_ubi_9.6.sh @@ -6,7 +6,7 @@ # Source repo : https://github.com/catboost/catboost.git # Tested on : UBI:9.6 (ppc64le) # Language : Python,c,c++ -# CI-Check : True +# Ci-Check : True # Script License: Apache License Version 2.0 # Maintainer : Veenious D Geevarghese # From 4476af25dfba9505acb1366a7c531b05b5f9d2da Mon Sep 17 00:00:00 2001 From: Veenious Geevarghese Date: Mon, 9 Feb 2026 21:33:01 +0530 Subject: [PATCH 06/10] fixed OpenSSL FIPS RPM conflict --- c/catboost/catboost-1.2.7_ubi_9.6.sh | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/c/catboost/catboost-1.2.7_ubi_9.6.sh b/c/catboost/catboost-1.2.7_ubi_9.6.sh index 3a402affca..35c4cd4a2f 100644 --- a/c/catboost/catboost-1.2.7_ubi_9.6.sh +++ b/c/catboost/catboost-1.2.7_ubi_9.6.sh @@ -33,12 +33,6 @@ CLANG_VERSION=${CLANG_VERSION:-17.0.6} CONAN_VERSION=${CONAN_VERSION:-1.62.0} export PATH=/usr/local/bin:/usr/bin:$PATH -#Install Centos repos and dependencies -yum config-manager --add-repo https://mirror.stream.centos.org/9-stream/CRB/ppc64le/os -yum config-manager --add-repo https://mirror.stream.centos.org/9-stream/AppStream//ppc64le/os -yum config-manager --add-repo https://mirror.stream.centos.org/9-stream/BaseOS/ppc64le/os -rpm --import https://www.centos.org/keys/RPM-GPG-KEY-CentOS-Official-SHA256 - # ---------------------------------------------------------------------------- # Install dependencies # ---------------------------------------------------------------------------- @@ -57,7 +51,6 @@ dnf install -y \ autoconf automake libtool \ gzip \ diffutils \ - texinfo \ gcc-gfortran \ openblas-devel \ libjpeg-turbo-devel @@ -81,7 +74,7 @@ ln -sf "$(which pip3.11)" /usr/bin/pip3 python3 -V && pip3 -V -python3 -m pip install -U pip setuptools wheel testpath pytest +python3 -m pip install -U "pip<24" "setuptools==68.2.2" "wheel==0.41.3" testpath pytest # ---------------------------------------------------------------------------- #Setup clang From 11bc9ecf583683e8a78defcf35ee38a729a0443e Mon Sep 17 00:00:00 2001 From: Veenious Geevarghese Date: Tue, 10 Feb 2026 10:25:49 +0530 Subject: [PATCH 07/10] fixed pip path issue --- c/catboost/catboost-1.2.7_ubi_9.6.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/c/catboost/catboost-1.2.7_ubi_9.6.sh b/c/catboost/catboost-1.2.7_ubi_9.6.sh index 35c4cd4a2f..736bdc02f8 100644 --- a/c/catboost/catboost-1.2.7_ubi_9.6.sh +++ b/c/catboost/catboost-1.2.7_ubi_9.6.sh @@ -205,7 +205,6 @@ echo -e "\n[+] Install built wheel\n" WHEEL_PATH=$(ls -1 "$PKG_DIR/dist"/catboost-1.2.7-*_ppc64le.whl | head -n 1) [ -f "$WHEEL_PATH" ] || { echo -e "\n[!] ERROR: Wheel not found in dist/\n" >&2; exit 1; } -python3 -m pip install -U pip python3 -m pip install "$WHEEL_PATH" # ---------------------------------------------------------------------------- From b7e93fea41a667d2b80f22886a9478b192eac36f Mon Sep 17 00:00:00 2001 From: Veenious Geevarghese Date: Tue, 10 Feb 2026 11:42:20 +0530 Subject: [PATCH 08/10] fixed "unable to find wheel path" --- c/catboost/catboost-1.2.7_ubi_9.6.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/c/catboost/catboost-1.2.7_ubi_9.6.sh b/c/catboost/catboost-1.2.7_ubi_9.6.sh index 736bdc02f8..aae669b439 100644 --- a/c/catboost/catboost-1.2.7_ubi_9.6.sh +++ b/c/catboost/catboost-1.2.7_ubi_9.6.sh @@ -24,6 +24,7 @@ PACKAGE_URL=https://github.com/catboost/catboost.git BUILD_HOME=$(pwd) WORKDIR=${WORKDIR:-"$BUILD_HOME/catboost_build"} +WORKDIR="$(readlink -f "$WORKDIR")" REPO_DIR=$WORKDIR/catboost PKG_DIR=$REPO_DIR/catboost/python-package @@ -205,6 +206,7 @@ echo -e "\n[+] Install built wheel\n" WHEEL_PATH=$(ls -1 "$PKG_DIR/dist"/catboost-1.2.7-*_ppc64le.whl | head -n 1) [ -f "$WHEEL_PATH" ] || { echo -e "\n[!] ERROR: Wheel not found in dist/\n" >&2; exit 1; } +WHEEL_PATH="$(readlink -f "$WHEEL_PATH")" python3 -m pip install "$WHEEL_PATH" # ---------------------------------------------------------------------------- From 74751acafe23008a37e6cf9131dfd808df6639f4 Mon Sep 17 00:00:00 2001 From: Veenious Geevarghese Date: Tue, 10 Feb 2026 15:55:20 +0530 Subject: [PATCH 09/10] updated dockerfile to remove centos repo --- c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile b/c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile index 1beedf72a1..4f147aa696 100644 --- a/c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile +++ b/c/catboost/Dockerfiles/v1.2.7_ubi_9.6/Dockerfile @@ -11,6 +11,7 @@ RUN set -ex \ && PACKAGE_URL=https://github.com/catboost/catboost.git \ && BUILD_HOME=$(pwd) \ && WORKDIR="${WORKDIR:-$BUILD_HOME/catboost_build}" \ +&& WORKDIR="$(readlink -f "$WORKDIR")" \ && REPO_DIR="$WORKDIR/catboost" \ && PKG_DIR="$REPO_DIR/catboost/python-package" \ && PYTHON_VERSION="${PYTHON_VERSION:-3.11.5}" \ @@ -18,12 +19,7 @@ RUN set -ex \ && CLANG_VERSION="${CLANG_VERSION:-17.0.6}" \ && CONAN_VERSION="${CONAN_VERSION:-1.62.0}" \ && export PATH=/usr/local/bin:/usr/bin:$PATH \ -\ -&& yum config-manager --add-repo https://mirror.stream.centos.org/9-stream/CRB/ppc64le/os \ -&& yum config-manager --add-repo https://mirror.stream.centos.org/9-stream/AppStream//ppc64le/os \ -&& yum config-manager --add-repo https://mirror.stream.centos.org/9-stream/BaseOS/ppc64le/os \ -&& rpm --import https://www.centos.org/keys/RPM-GPG-KEY-CentOS-Official-SHA256 \ -\ + && echo -e "\n[+] Install system dependencies (dnf)\n" \ && dnf install -y \ git \ @@ -38,7 +34,6 @@ RUN set -ex \ autoconf automake libtool \ gzip \ diffutils \ - texinfo \ gcc-gfortran \ openblas-devel \ libjpeg-turbo-devel \ @@ -57,7 +52,7 @@ RUN set -ex \ && ln -sf "$(which pip3.11)" /usr/bin/pip3 \ && python3 -V && pip3 -V \ \ -&& python3 -m pip install -U pip setuptools wheel testpath pytest \ +&& python3 -m pip install -U "pip<24" "setuptools==68.2.2" "wheel==0.41.3" testpath pytest \ \ && echo -e "\n[+] Install/Setup clang 17\n" \ && if command -v clang >/dev/null 2>&1 && clang --version | head -n1 | grep -q "clang version 17"; then \ @@ -144,7 +139,7 @@ RUN set -ex \ && WHEEL_PATH=$(ls -1 "$PKG_DIR/dist"/catboost-1.2.7-*_ppc64le.whl | head -n 1) \ && [ -f "$WHEEL_PATH" ] || { echo -e "\n[!] ERROR: Wheel not found in dist/\n" >&2; exit 1; } \ \ -&& python3 -m pip install -U pip \ +&& WHEEL_PATH="$(readlink -f "$WHEEL_PATH")" \ && python3 -m pip install "$WHEEL_PATH" \ \ && echo -e "\n[+] Run catboost python-package unit tests (ut/medium)\n" \ From 2f5ff63846e44dd417dbd026f96869d5f60b59fc Mon Sep 17 00:00:00 2001 From: Veenious Geevarghese Date: Thu, 12 Feb 2026 15:37:09 +0530 Subject: [PATCH 10/10] updated the header --- c/catboost/catboost-1.2.7_ubi_9.6.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/c/catboost/catboost-1.2.7_ubi_9.6.sh b/c/catboost/catboost-1.2.7_ubi_9.6.sh index aae669b439..2290700486 100644 --- a/c/catboost/catboost-1.2.7_ubi_9.6.sh +++ b/c/catboost/catboost-1.2.7_ubi_9.6.sh @@ -4,7 +4,7 @@ # Package : catboost # Version : v1.2.7 # Source repo : https://github.com/catboost/catboost.git -# Tested on : UBI:9.6 (ppc64le) +# Tested on : UBI:9.6 # Language : Python,c,c++ # Ci-Check : True # Script License: Apache License Version 2.0