From e13a644a2a9a3fe6e424191bf8e4bd9150b95472 Mon Sep 17 00:00:00 2001 From: Balavva Mirji Date: Thu, 7 May 2026 16:25:38 +0530 Subject: [PATCH 1/3] Added build script for k-NN v3.5.0 --- o/opensearch-project-k-nn/build_info.json | 11 +- o/opensearch-project-k-nn/k-NN-3.5.0.0.patch | 53 +++++ .../k-NN-faiss-3.5.0.0.patch | 112 +++++++++++ .../k-NN-nmslib-3.5.0.0.patch | 13 ++ ...opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh | 184 ++++++++++++++++++ 5 files changed, 369 insertions(+), 4 deletions(-) create mode 100644 o/opensearch-project-k-nn/k-NN-3.5.0.0.patch create mode 100644 o/opensearch-project-k-nn/k-NN-faiss-3.5.0.0.patch create mode 100644 o/opensearch-project-k-nn/k-NN-nmslib-3.5.0.0.patch create mode 100644 o/opensearch-project-k-nn/opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh diff --git a/o/opensearch-project-k-nn/build_info.json b/o/opensearch-project-k-nn/build_info.json index 5a3368e28f..069ebb9cbd 100644 --- a/o/opensearch-project-k-nn/build_info.json +++ b/o/opensearch-project-k-nn/build_info.json @@ -1,15 +1,18 @@ { - "maintainer": "Prachi.Gaonkar@ibm.com", + "maintainer": "Balavva.Mirji@ibm.com", "package_name": "opensearch-project-k-nn", "github_url": "https://github.com/opensearch-project/k-NN", - "version": "3.3.0.0", - "required_versions":{"Releases": ["*"], "Tags": ["*"]}, + "version": "3.5.0.0", + "required_versions":{"Releases": ["*"], "Tags": ["3.5.0.0"]}, "default_branch": "main", "package_dir": "o/opensearch-project-k-nn", - "build_script": "opensearch-project-k-NN_3.3.0.0_ubi_9.6.sh", + "build_script": "opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh", "validate_build_script": true, "use_non_root_user": true, "docker_build": false, + "3.5.0.0": { + "build_script": "opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh" + }, "3.3.0.0": { "build_script": "opensearch-project-k-NN_3.3.0.0_ubi_9.6.sh" }, diff --git a/o/opensearch-project-k-nn/k-NN-3.5.0.0.patch b/o/opensearch-project-k-nn/k-NN-3.5.0.0.patch new file mode 100644 index 0000000000..e8cb677f58 --- /dev/null +++ b/o/opensearch-project-k-nn/k-NN-3.5.0.0.patch @@ -0,0 +1,53 @@ +diff --git a/jni/cmake/init-faiss.cmake b/jni/cmake/init-faiss.cmake +index 7e9622a9..42d3cc9a 100644 +--- a/jni/cmake/init-faiss.cmake ++++ b/jni/cmake/init-faiss.cmake +@@ -126,7 +126,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "a + elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux AND AVX512_SPR_ENABLED) + set(FAISS_OPT_LEVEL avx512_spr) + set(TARGET_LINK_FAISS_LIB faiss_avx512_spr) +- string(PREPEND LIB_EXT "_avx512_spr") ++ string(PREPEND LIB_EXT "") + elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux AND AVX512_ENABLED) + set(FAISS_OPT_LEVEL avx512) # Keep optimization level as avx512 to improve performance on Linux. This is not present on mac systems, and presently not supported on Windows OS. + set(TARGET_LINK_FAISS_LIB faiss_avx512) +diff --git a/jni/cmake/init-simd.cmake b/jni/cmake/init-simd.cmake +index a5167e74..12ecfa96 100644 +--- a/jni/cmake/init-simd.cmake ++++ b/jni/cmake/init-simd.cmake +@@ -2,6 +2,12 @@ + # Copyright OpenSearch Contributors + # SPDX-License-Identifier: Apache-2.0 + # ++# Force disable AVX512 on unsupported architectures (ppc64le) ++set(ENABLE_AVX512 OFF CACHE BOOL "" FORCE) ++set(ENABLE_AVX512_FP16 OFF CACHE BOOL "" FORCE) ++set(ENABLE_AVX2 OFF CACHE BOOL "" FORCE) ++set(ENABLE_AVX OFF CACHE BOOL "" FORCE) ++set(SIMD_OPT NONE CACHE STRING "" FORCE) + + include(CheckCXXSourceCompiles) + +@@ -117,7 +123,7 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND AVX512_ENABLED) + add_definitions(-DKNN_HAVE_AVX512) + message(STATUS "[SIMD] AVX512 + F16C supported by compiler.") + else() +- message(FATAL_ERROR "[SIMD] AVX512 + FP16 was explicitly enabled, but compiler does not support it.") ++ # message(FATAL_ERROR "[SIMD] AVX512 + FP16 was explicitly enabled, but compiler does not support it.") + endif() + + else() +diff --git a/jni/external/faiss b/jni/external/faiss +index 5616caad..a5b1a5bd 160000 +--- a/jni/external/faiss ++++ b/jni/external/faiss +@@ -1 +1 @@ +-Subproject commit 5616caad4cea4e8326cdef90aa177bd618af8531 ++Subproject commit a5b1a5bdfdbedd10fca6ee3cf1a8327762e71801-dirty +diff --git a/jni/external/nmslib b/jni/external/nmslib +index a2d6624e..7a998c73 160000 +--- a/jni/external/nmslib ++++ b/jni/external/nmslib +@@ -1 +1 @@ +-Subproject commit a2d6624e1315402662025debfdd614b505d9c3ef ++Subproject commit 7a998c73839a0a45e8c0ac7895d388200836f463-dirty diff --git a/o/opensearch-project-k-nn/k-NN-faiss-3.5.0.0.patch b/o/opensearch-project-k-nn/k-NN-faiss-3.5.0.0.patch new file mode 100644 index 0000000000..479b86bd9d --- /dev/null +++ b/o/opensearch-project-k-nn/k-NN-faiss-3.5.0.0.patch @@ -0,0 +1,112 @@ +diff --git a/faiss/CMakeLists.txt b/faiss/CMakeLists.txt +index 90041291a..142b0ce38 100644 +--- a/faiss/CMakeLists.txt ++++ b/faiss/CMakeLists.txt +@@ -241,9 +241,34 @@ if(NOT WIN32) + list(APPEND FAISS_HEADERS invlists/OnDiskInvertedLists.h) + endif() + ++# Detect the architecture and apply appropriate flags ++execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCHITECTURE) ++string(STRIP ${ARCHITECTURE} ARCHITECTURE) ++ ++# Check if the system is Power architecture (e.g., ppc64le) ++if(ARCHITECTURE STREQUAL "ppc64le" OR ARCHITECTURE STREQUAL "powerpc64le") ++ message(STATUS "Building for PowerPC architecture, disabling AVX flags") ++ ++ # Remove AVX flags if the architecture is PowerPC ++ string(REPLACE "-mavx2" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++ string(REPLACE "-mfma" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++ string(REPLACE "-mavx512f" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++ string(REPLACE "-mavx512cd" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++ string(REPLACE "-mavx512vl" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++ string(REPLACE "-mavx512dq" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++ string(REPLACE "-mavx512bw" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++ string(REPLACE "-mpopcnt" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++endif() ++ + # Export FAISS_HEADERS variable to parent scope. + set(FAISS_HEADERS ${FAISS_HEADERS} PARENT_SCOPE) + ++# Check for the architecture and adjust optimization level ++if(CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc64le") ++ # Disable AVX2/AVX512-specific optimizations on non-x86 architectures ++ set(FAISS_OPT_LEVEL "generic") ++endif() ++ + add_library(faiss ${FAISS_SRC}) + + add_library(faiss_avx2 ${FAISS_SRC}) +@@ -251,7 +276,13 @@ if(NOT FAISS_OPT_LEVEL STREQUAL "avx2" AND NOT FAISS_OPT_LEVEL STREQUAL "avx512" + set_target_properties(faiss_avx2 PROPERTIES EXCLUDE_FROM_ALL TRUE) + endif() + if(NOT WIN32) +- target_compile_options(faiss_avx2 PRIVATE $<$:-mavx2 -mfma -mf16c -mpopcnt>) ++ # target_compile_options(faiss_avx2 PRIVATE $<$:-mavx2 -mfma -mf16c -mpopcnt>) ++ # Only enable AVX2/AVX512 compile options if the architecture supports them ++ if(FAISS_OPT_LEVEL STREQUAL "avx2") ++ target_compile_options(faiss_avx2 PRIVATE $<$:-mavx2 -mfma -mf16c -mpopcnt>) ++ elseif(FAISS_OPT_LEVEL STREQUAL "avx512") ++ target_compile_options(faiss_avx2 PRIVATE $<$:-mavx2 -mfma -mf16c -mavx512f -mavx512cd -mavx512vl -mavx512dq -mavx512bw -mpopcnt>) ++ endif() + else() + # MSVC enables FMA with /arch:AVX2; no separate flags for F16C, POPCNT + # Ref. FMA (under /arch:AVX2): https://docs.microsoft.com/en-us/cpp/build/reference/arch-x64 +@@ -269,7 +300,11 @@ endif() + if(NOT WIN32) + # All modern CPUs support F, CD, VL, DQ, BW extensions. + # Ref: https://en.wikipedia.org/wiki/AVX512 +- target_compile_options(faiss_avx512 PRIVATE $<$:-mavx2 -mfma -mf16c -mavx512f -mavx512cd -mavx512vl -mavx512dq -mavx512bw -mpopcnt>) ++ # Ref: https://en.wikipedia.org/wiki/AVX512 ++ # Only enable AVX512 compile options if the architecture supports them ++ if(FAISS_OPT_LEVEL STREQUAL "avx512") ++ target_compile_options(faiss_avx512 PRIVATE $<$:-mavx512f -mavx512cd -mavx512vl -mavx512dq -mavx512bw -mfma -mf16c -mpopcnt>) ++ endif() + else() + target_compile_options(faiss_avx512 PRIVATE $<$:/arch:AVX512>) + # we need bigobj for the swig wrapper +@@ -283,7 +318,12 @@ endif() + if(NOT WIN32) + # Architecture mode to support AVX512 extensions available since Intel(R) Sapphire Rapids. + # Ref: https://networkbuilders.intel.com/solutionslibrary/intel-avx-512-fp16-instruction-set-for-intel-xeon-processor-based-products-technology-guide +- target_compile_options(faiss_avx512_spr PRIVATE $<$:-march=sapphirerapids -mtune=sapphirerapids>) ++ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "amd64") ++ # Architecture mode to support AVX512 extensions available since Intel(R) Sapphire Rapids. ++ target_compile_options(faiss_avx512_spr PRIVATE $<$:-march=sapphirerapids -mtune=sapphirerapids>) ++ else() ++ message(STATUS "Skipping -march=sapphirerapids flags: unsupported architecture (${CMAKE_SYSTEM_PROCESSOR})") ++ endif() + else() + target_compile_options(faiss_avx512_spr PRIVATE $<$:/arch:AVX512>) + # we need bigobj for the swig wrapper +@@ -294,6 +334,30 @@ add_library(faiss_sve ${FAISS_SRC}) + if(NOT FAISS_OPT_LEVEL STREQUAL "sve") + set_target_properties(faiss_sve PROPERTIES EXCLUDE_FROM_ALL TRUE) + endif() ++ ++if(NOT WIN32) ++ # Only enable SVE compile options if the architecture supports them ++ if(FAISS_OPT_LEVEL STREQUAL "sve") ++ target_compile_options(faiss_sve PRIVATE $<$:-msve>) ++ endif() ++else() ++ # Windows-specific compiler flags for SVE (if supported by MSVC) ++ target_compile_options(faiss_sve PRIVATE $<$:/arch:SVE>) ++ add_compile_options(/bigobj) ++endif() ++ ++if(NOT WIN32) ++ target_compile_options(faiss_avx2 PRIVATE $<$:-mavx2 -mfma -mf16c -mpopcnt>) ++else() ++ # MSVC enables FMA with /arch:AVX2; no separate flags for F16C, POPCNT ++ # Ref. FMA (under /arch:AVX2): https://docs.microsoft.com/en-us/cpp/build/reference/arch-x64 ++ # Ref. F16C (2nd paragraph): https://walbourn.github.io/directxmath-avx2/ ++ # Ref. POPCNT: https://docs.microsoft.com/en-us/cpp/intrinsics/popcnt16-popcnt-popcnt64 ++ target_compile_options(faiss_avx2 PRIVATE $<$:/arch:AVX2>) ++ # we need bigobj for the swig wrapper ++ add_compile_options(/bigobj) ++endif() ++ + if(NOT WIN32) + if("${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG} " MATCHES "(^| )-march=native") + # Do nothing, expect SVE to be enabled by -march=native diff --git a/o/opensearch-project-k-nn/k-NN-nmslib-3.5.0.0.patch b/o/opensearch-project-k-nn/k-NN-nmslib-3.5.0.0.patch new file mode 100644 index 0000000000..8c374a93bc --- /dev/null +++ b/o/opensearch-project-k-nn/k-NN-nmslib-3.5.0.0.patch @@ -0,0 +1,13 @@ +diff --git a/similarity_search/CMakeLists.txt b/similarity_search/CMakeLists.txt +index 03a3275..440355a 100644 +--- a/similarity_search/CMakeLists.txt ++++ b/similarity_search/CMakeLists.txt +@@ -36,7 +36,7 @@ endif() + #message(FATAL_ERROR "stopping... compiler version is: ${CMAKE_CXX_COMPILER_ID} ${CXX_COMPILER_VERSION}") + + if(NOT NMSLIB_SIMD_FLAGS) +- set(NMSLIB_SIMD_FLAGS "-march=native" CACHE STRING "SIMD compile flags for NMSLIB" FORCE) ++ set(NMSLIB_SIMD_FLAGS "-mcpu=native" CACHE STRING "SIMD compile flags for NMSLIB" FORCE) + endif() + + set(WARN_FLAGS "-Wall -Wunreachable-code -Wcast-align") diff --git a/o/opensearch-project-k-nn/opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh b/o/opensearch-project-k-nn/opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh new file mode 100644 index 0000000000..774e5a0655 --- /dev/null +++ b/o/opensearch-project-k-nn/opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh @@ -0,0 +1,184 @@ +#!/bin/bash -ex +# ---------------------------------------------------------------------------- +# +# Package : k-NN +# Version : 3.5.0.0 +# Source repo : https://github.com/opensearch-project/k-NN.git +# Tested on : UBI 9.6 +# Language : Java and C++ +# Ci-Check : True +# Script License : Apache License, Version 2 or later +# Maintainer : Balavva Mirji +# +# Disclaimer: This script has been tested in non 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. +# +# ---------------------------------------------------------------------------- + +# ---------------------------- +# Configuration +# ---------------------------- +PACKAGE_NAME=k-NN +SCRIPT_PACKAGE_VERSION="3.5.0.0" +PACKAGE_VERSION=${1:-${SCRIPT_PACKAGE_VERSION}} +PACKAGE_URL=https://github.com/opensearch-project/${PACKAGE_NAME}.git +OPENSEARCH_VERSION=${PACKAGE_VERSION::-2} +OPENSEARCH_PACKAGE=OpenSearch +OPENSEARCH_URL=https://github.com/opensearch-project/${OPENSEARCH_PACKAGE}.git +RUNTESTS=1 +BUILD_HOME=`pwd` +##getting error in below line +SCRIPT_PATH=$(dirname $(realpath $0)) + +# ------------------- +# Parse CLI Arguments +# ------------------- +for i in "$@"; do + case $i in + --skip-tests) + RUNTESTS=0 + echo "Skipping tests" + shift + ;; + -*|--*) + echo "Unknown option $i" + exit 3 + ;; + *) + PACKAGE_VERSION=$i + echo "Building ${PACKAGE_NAME} ${PACKAGE_VERSION}" + ;; + esac +done + +# ------------------------------ +# Dependency Installation +# ------------------------------ +sudo chown -R test_user:test_user /home/test_user +sudo yum install -y git wget python3-pip gcc gcc-c++ make cmake gcc-gfortran zlib zlib-devel openblas openblas-devel libomp java-25-openjdk-devel +export JAVA_HOME=$(ls -d /usr/lib/jvm/java-25-openjdk 2>/dev/null) +export JRE_HOME=${JAVA_HOME}/jre +export PATH=${JAVA_HOME}/bin:$PATH + +sudo ln -sf /usr/bin/python3 /usr/bin/python +pip install cmake==3.24.0 + +# ------------------------------------------------------------------- +# Configure dummy Git identity +# (Required to prevent 'committer identity unknown' errors during patching) +# --------------------------------------------------------------------------- +git config --global user.name "build-bot" +git config --global user.email "build-bot@example.com" + + +# ------------------------------------------------------- +# Set the installation directory (e.g., $BUILD_HOME/local) +# ------------------------------------------------------------ +INSTALL_DIR="$BUILD_HOME/local" + +# ------------------------------------------------------- +# Build and install LAPACK +# ------------------------------------------------------- +cd $BUILD_HOME +git clone https://github.com/Reference-LAPACK/lapack.git +cd lapack && git checkout v3.12.1 +mkdir build +cd build +cmake .. -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$BUILD_HOME/local +make +make install + +# ---------------------------- +# Clone and Prepare Repository +# ---------------------------- +cd $BUILD_HOME +git clone ${PACKAGE_URL} +cd ${PACKAGE_NAME} && git checkout ${PACKAGE_VERSION} +git apply ${SCRIPT_PATH}/$PACKAGE_NAME-$SCRIPT_PACKAGE_VERSION.patch +cd jni +cmake -DBLAS_INCLUDE_DIR=$BUILD_HOME/local/include \ + -DLAPACK_LIBRARIES=$BUILD_HOME/local/lib64/liblapack.so \ + -DBLAS_LIBRARIES=/usr/lib64/libopenblas.so . + +# ---------------------------------------------- +# Apply patches to NMSLIB and FAISS +# ---------------------------------------------- +cd external/nmslib +git apply ${SCRIPT_PATH}/$PACKAGE_NAME-nmslib-$SCRIPT_PACKAGE_VERSION.patch +cd ../faiss/faiss +git apply ${SCRIPT_PATH}/$PACKAGE_NAME-faiss-$SCRIPT_PACKAGE_VERSION.patch +cd $BUILD_HOME/$PACKAGE_NAME/jni +rm -rf build CMakeFiles CMakeCache.txt +make + +# ---------------------------------------------- +# Build opensearch tarball for integation tests +# ---------------------------------------------- +cd $BUILD_HOME +git clone ${OPENSEARCH_URL} +cd ${OPENSEARCH_PACKAGE} && git checkout ${OPENSEARCH_VERSION} +./gradlew -p distribution/archives/linux-ppc64le-tar assemble +./gradlew -Prelease=true publishToMavenLocal +./gradlew :build-tools:publishToMavenLocal + +# -------- +# Build +# -------- +cd $BUILD_HOME/$PACKAGE_NAME +ret=0 +./gradlew build assemble \ + -x test -x integTest \ + -Dbuild.lib.commit_patches=false \ + -PcustomDistributionUrl=$wdir/OpenSearch/distribution/archives/linux-ppc64le-tar/build/distributions/opensearch-min-$OPENSEARCH_VERSION-SNAPSHOT-linux-ppc64le.tar.gz \ + -Dbuild.snapshot=false \ + --console=plain || ret=$? +if [ $ret -ne 0 ]; then + set +ex + echo "------------------ ${PACKAGE_NAME}: Build Failed ------------------" + exit 1 +fi +export OPENSEARCH_KNN_ZIP=${BUILD_HOME}/${PACKAGE_NAME}/build/distributions/opensearch-knn-${PACKAGE_VERSION}-SNAPSHOT.zip + +# --------------------------- +# Skip Tests? +# --------------------------- +if [ "$RUNTESTS" -eq 0 ]; then + set +ex + echo "------------------ Complete: Build and install successful! Tests skipped. ------------------" + exit 0 +fi + + +# ---------- +# Unit Test +# ---------- +cd $BUILD_HOME/$PACKAGE_NAME +ret=0 +./gradlew test \ + --max-workers=1 \ + -Dbuild.snapshot=false \ + --console=plain || ret=$? +if [ $ret -ne 0 ]; then + ret=0 + set +ex + echo "------------------ ${PACKAGE_NAME}: Unit Test Failed ------------------" + exit 2 +fi + +# ----------------- +# Integration Test +# ------------------ +ret=0 +./gradlew integTest -PcustomDistributionUrl="$BUILD_HOME/OpenSearch/distribution/archives/linux-ppc64le-tar/build/distributions/opensearch-min-${OPENSEARCH_VERSION}-SNAPSHOT-linux-ppc64le.tar.gz" -Dbuild.snapshot=false --console=plain || ret=$? +if [ $ret -ne 0 ]; then + set +ex + echo "------------------ ${PACKAGE_NAME}: Integration Test Failed ------------------" + exit 2 +fi + +set +ex +echo "Complete: Build and Tests successful!" +echo "Plugin zip available at [${OPENSEARCH_KNN_ZIP}]" \ No newline at end of file From c5eb2bb8c2a97a62f0afa5da761710dd99cddb29 Mon Sep 17 00:00:00 2001 From: Balavva Mirji Date: Thu, 7 May 2026 16:55:05 +0530 Subject: [PATCH 2/3] Commented non root user in the script --- .../opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/o/opensearch-project-k-nn/opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh b/o/opensearch-project-k-nn/opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh index 774e5a0655..39ac0b5d94 100644 --- a/o/opensearch-project-k-nn/opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh +++ b/o/opensearch-project-k-nn/opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh @@ -57,7 +57,7 @@ done # ------------------------------ # Dependency Installation # ------------------------------ -sudo chown -R test_user:test_user /home/test_user +#sudo chown -R test_user:test_user /home/test_user sudo yum install -y git wget python3-pip gcc gcc-c++ make cmake gcc-gfortran zlib zlib-devel openblas openblas-devel libomp java-25-openjdk-devel export JAVA_HOME=$(ls -d /usr/lib/jvm/java-25-openjdk 2>/dev/null) export JRE_HOME=${JAVA_HOME}/jre From da70bb32fdb133faa8cc9c0c0506be02a86f9d4f Mon Sep 17 00:00:00 2001 From: Balavva Mirji Date: Thu, 7 May 2026 17:01:40 +0530 Subject: [PATCH 3/3] Given sudo permission for cmake install --- .../opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/o/opensearch-project-k-nn/opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh b/o/opensearch-project-k-nn/opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh index 39ac0b5d94..802bd64425 100644 --- a/o/opensearch-project-k-nn/opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh +++ b/o/opensearch-project-k-nn/opensearch-project-k-NN_3.5.0.0_ubi_9.6.sh @@ -64,7 +64,7 @@ export JRE_HOME=${JAVA_HOME}/jre export PATH=${JAVA_HOME}/bin:$PATH sudo ln -sf /usr/bin/python3 /usr/bin/python -pip install cmake==3.24.0 +sudo pip install cmake==3.24.0 # ------------------------------------------------------------------- # Configure dummy Git identity