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;
|
check_extension "${extension%-*}" && return 0 || return 1;
|
||||||
else
|
else
|
||||||
cpu_count="$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo '1')"
|
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)"
|
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)"
|
IFS=' ' read -r -a libraries <<<"$(parse_args "$extension" LIBS) $(parse_args "$extension" "$(uname -s)"_LIBS)"
|
||||||
(( ${#libraries[@]} )) && add_libs "${libraries[@]}" >/dev/null 2>&1
|
(( ${#libraries[@]} )) && add_libs "${libraries[@]}" >/dev/null 2>&1
|
||||||
if [ "$version" = "5.3" ]; then
|
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
|
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
|
fi
|
||||||
local exit_code=$?
|
local exit_code=$?
|
||||||
sudo pecl info "$extension" 2>/dev/null | grep -iq 'zend extension' && prefix=zend_extension
|
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
|
add_couchbase_clibs "$ext" >/dev/null 2>&1
|
||||||
else
|
else
|
||||||
add_couchbase_cxxlibs >/dev/null 2>&1
|
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
|
fi
|
||||||
enable_extension "couchbase" "extension"
|
enable_extension "couchbase" "extension"
|
||||||
if check_extension "couchbase"; then
|
if check_extension "couchbase"; then
|
||||||
add_log "${tick:?}" "couchbase" "Enabled"
|
add_log "${tick:?}" "couchbase" "Enabled"
|
||||||
else
|
else
|
||||||
|
local install_method=pecl_install
|
||||||
if [ "$ext" = "couchbase" ]; then
|
if [ "$ext" = "couchbase" ]; then
|
||||||
ext="couchbase-$(get_pecl_version "couchbase" "stable")"
|
ext="couchbase-$(get_pecl_version "couchbase" "stable")"
|
||||||
n_proc="$(nproc)"
|
n_proc="$(nproc)"
|
||||||
export COUCHBASE_SUFFIX_OPTS="CMAKE_BUILD_TYPE=Release"
|
export COUCHBASE_SUFFIX_OPTS="CMAKE_BUILD_TYPE=Release"
|
||||||
export CMAKE_BUILD_PARALLEL_LEVEL="$n_proc"
|
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
|
add_extension_from_source couchbase https://pecl.php.net couchbase couchbase "${ext##*-}" extension pecl >/dev/null 2>&1
|
||||||
else
|
else
|
||||||
pecl_install "${ext}" >/dev/null 2>&1
|
"$install_method" "${ext}" >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
add_extension_log "couchbase" "Installed and enabled"
|
add_extension_log "couchbase" "Installed and enabled"
|
||||||
fi
|
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