mirror of
https://github.com/shivammathur/setup-php.git
synced 2026-09-22 02:29:42 +07:00
Fix Couchbase support on Ubuntu 26.04
This commit is contained in:
@@ -195,14 +195,15 @@ pecl_install() {
|
||||
check_extension "${extension%-*}" && return 0 || return 1;
|
||||
else
|
||||
cpu_count="$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo '1')"
|
||||
prefix_opts="$(parse_args "$extension" CONFIGURE_PREFIX_OPTS) MAKEFLAGS='-j $cpu_count'"
|
||||
local prefix_opts=()
|
||||
IFS=' ' read -r -a prefix_opts <<<"$(parse_args "$extension" CONFIGURE_PREFIX_OPTS)"
|
||||
suffix_opts="$(parse_args "$extension" CONFIGURE_OPTS) $(parse_args "$extension" CONFIGURE_SUFFIX_OPTS)"
|
||||
IFS=' ' read -r -a libraries <<<"$(parse_args "$extension" LIBS) $(parse_args "$extension" "$(uname -s)"_LIBS)"
|
||||
(( ${#libraries[@]} )) && add_libs "${libraries[@]}" >/dev/null 2>&1
|
||||
if [ "$version" = "5.3" ]; then
|
||||
yes '' 2>/dev/null | sudo "$prefix_opts" pecl install -f "$extension" >/dev/null 2>&1
|
||||
yes '' 2>/dev/null | sudo env "${prefix_opts[@]}" MAKEFLAGS="-j $cpu_count" pecl install -f "$extension" >/dev/null 2>&1
|
||||
else
|
||||
yes '' 2>/dev/null | sudo "$prefix_opts" pecl install -f -D "$(parse_pecl_configure_options "$suffix_opts")" "$extension" >/dev/null 2>&1
|
||||
yes '' 2>/dev/null | sudo env "${prefix_opts[@]}" MAKEFLAGS="-j $cpu_count" pecl install -f -D "$(parse_pecl_configure_options "$suffix_opts")" "$extension" >/dev/null 2>&1
|
||||
fi
|
||||
local exit_code=$?
|
||||
sudo pecl info "$extension" 2>/dev/null | grep -iq 'zend extension' && prefix=zend_extension
|
||||
|
||||
@@ -62,19 +62,28 @@ add_couchbase() {
|
||||
add_couchbase_clibs "$ext" >/dev/null 2>&1
|
||||
else
|
||||
add_couchbase_cxxlibs >/dev/null 2>&1
|
||||
if [[ "$ext" =~ ^couchbase-4\.1\. ]]; then
|
||||
export COUCHBASE_CONFIGURE_PREFIX_OPTS="${COUCHBASE_CONFIGURE_PREFIX_OPTS:-} COUCHBASE_CMAKE_EXTRA=-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
|
||||
fi
|
||||
fi
|
||||
enable_extension "couchbase" "extension"
|
||||
if check_extension "couchbase"; then
|
||||
add_log "${tick:?}" "couchbase" "Enabled"
|
||||
else
|
||||
local install_method=pecl_install
|
||||
if [ "$ext" = "couchbase" ]; then
|
||||
ext="couchbase-$(get_pecl_version "couchbase" "stable")"
|
||||
n_proc="$(nproc)"
|
||||
export COUCHBASE_SUFFIX_OPTS="CMAKE_BUILD_TYPE=Release"
|
||||
export CMAKE_BUILD_PARALLEL_LEVEL="$n_proc"
|
||||
install_method=add_extension_from_source
|
||||
elif [[ "$ext" =~ ^couchbase-4\.1\. ]]; then
|
||||
install_method=add_extension_from_source
|
||||
fi
|
||||
if [ "$install_method" = add_extension_from_source ]; then
|
||||
add_extension_from_source couchbase https://pecl.php.net couchbase couchbase "${ext##*-}" extension pecl >/dev/null 2>&1
|
||||
else
|
||||
pecl_install "${ext}" >/dev/null 2>&1
|
||||
"$install_method" "${ext}" >/dev/null 2>&1
|
||||
fi
|
||||
add_extension_log "couchbase" "Installed and enabled"
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
patch_couchbase() {
|
||||
local operation_queue query_index_manager
|
||||
operation_queue=src/deps/couchbase-cxx-client/core/mcbp/operation_queue.cxx
|
||||
query_index_manager=src/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx
|
||||
if [ -e "$operation_queue" ] && ! grep -q '^#include <algorithm>' "$operation_queue"; then
|
||||
sed -i.bak '/^#include <memory>/i#include <algorithm>' "$operation_queue"
|
||||
fi
|
||||
if [ -e "$query_index_manager" ] && ! grep -q '^#include <algorithm>' "$query_index_manager"; then
|
||||
sed -i.bak '/^#include <utility>/i#include <algorithm>' "$query_index_manager"
|
||||
fi
|
||||
rm -f "$operation_queue.bak" "$query_index_manager.bak"
|
||||
}
|
||||
Reference in New Issue
Block a user