Merge pull request #234 from mlocati/pdo-oci

Add support pdo_oci
pull/235/head
Michele Locati 2020-12-28 13:28:05 +01:00 committed by GitHub
commit 19db233cc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 14 deletions

View File

@ -48,6 +48,7 @@ pcov 7.0 7.1 7.2 7.3 7.4 8.0
pdo_dblib 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 pdo_dblib 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0
pdo_firebird 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 pdo_firebird 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0
pdo_mysql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 pdo_mysql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0
pdo_oci 7.0 7.1 7.2 7.3 7.4 8.0
pdo_odbc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 pdo_odbc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0
pdo_pgsql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 pdo_pgsql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0
pdo_sqlsrv 7.0 7.1 7.2 7.3 7.4 pdo_sqlsrv 7.0 7.1 7.2 7.3 7.4

View File

@ -575,14 +575,14 @@ buildRequiredPackageLists() {
buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1" buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libodbc1"
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unixodbc-dev"
;; ;;
oci8@alpine) oci8@alpine | pdo_oci@alpine)
buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl" buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio libc6-compat libnsl"
if test $DISTRO_MAJMIN_VERSION -le 307; then if test $DISTRO_MAJMIN_VERSION -le 307; then
# The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead # The unzip tool of Alpine 3.7 can't extract symlinks from ZIP archives: let's use bsdtar instead
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libarchive-tools"
fi fi
;; ;;
oci8@debian) oci8@debian | pdo_oci@debian)
buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio[0-9]*$" buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libaio[0-9]*$"
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile unzip"
;; ;;
@ -1042,6 +1042,9 @@ compareVersions() {
} }
# Install Oracle Instant Client & SDK # Install Oracle Instant Client & SDK
#
# Set:
# ORACLE_INSTANTCLIENT_LIBPATH
installOracleInstantClient() { installOracleInstantClient() {
if test $(php -r 'echo PHP_INT_SIZE;') -eq 4; then if test $(php -r 'echo PHP_INT_SIZE;') -eq 4; then
installOracleInstantClient_client=client installOracleInstantClient_client=client
@ -1054,19 +1057,19 @@ installOracleInstantClient() {
installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-basic-linux.x64-$installOracleInstantClient_version.0.0.0.zip installOracleInstantClient_ic=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-basic-linux.x64-$installOracleInstantClient_version.0.0.0.zip
installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip installOracleInstantClient_sdk=https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-$installOracleInstantClient_version.0.0.0.zip
fi fi
if ! test -e "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib"; then ORACLE_INSTANTCLIENT_LIBPATH=/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib
if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH"; then
printf 'Downloading Oracle Instant Client v%s... ' "$installOracleInstantClient_version" printf 'Downloading Oracle Instant Client v%s... ' "$installOracleInstantClient_version"
installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)" installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_ic)"
mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" mkdir -p "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client"
mv "$installOracleInstantClient_src" "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib" mv "$installOracleInstantClient_src" "$ORACLE_INSTANTCLIENT_LIBPATH"
echo 'done.' echo 'done.'
fi fi
if ! test -e "/usr/include/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client"; then if ! test -e "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"; then
printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version" printf 'Downloading Oracle Instant SDK v%s... ' "$installOracleInstantClient_version"
installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)" installOracleInstantClient_src="$(getPackageSource $installOracleInstantClient_sdk)"
mkdir -p "/usr/include/oracle/$installOracleInstantClient_version" ln -sf "$installOracleInstantClient_src/sdk" "$ORACLE_INSTANTCLIENT_LIBPATH/sdk"
ln -s "$installOracleInstantClient_src/sdk/include" "/usr/include/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client" UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS '$ORACLE_INSTANTCLIENT_LIBPATH/sdk'"
UNNEEDED_PACKAGE_LINKS="$UNNEEDED_PACKAGE_LINKS '/usr/include/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client'"
echo 'done.' echo 'done.'
fi fi
case "$DISTRO" in case "$DISTRO" in
@ -1076,20 +1079,20 @@ installOracleInstantClient() {
fi fi
installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path installOracleInstantClient_ldconf=/etc/ld-musl-${TARGET_TRIPLET%-alpine-linux-musl}.path
if test -e "$installOracleInstantClient_ldconf"; then if test -e "$installOracleInstantClient_ldconf"; then
if ! cat "$installOracleInstantClient_ldconf" | grep -q "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib"; then if ! cat "$installOracleInstantClient_ldconf" | grep -q "$ORACLE_INSTANTCLIENT_LIBPATH"; then
cat "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib" | awk -v suffix=":/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib" '{print NR==1 ? $0suffix : $0}' >"/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib" cat "$ORACLE_INSTANTCLIENT_LIBPATH" | awk -v suffix=":$ORACLE_INSTANTCLIENT_LIBPATH" '{print NR==1 ? $0suffix : $0}' >"$ORACLE_INSTANTCLIENT_LIBPATH"
fi fi
else else
if test $(php -r 'echo PHP_INT_SIZE;') -eq 4; then if test $(php -r 'echo PHP_INT_SIZE;') -eq 4; then
echo "/lib:/usr/local/lib:/usr/lib:/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib" >"$installOracleInstantClient_ldconf" echo "/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf"
else else
echo "/lib64:/lib:/usr/local/lib:/usr/lib:/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib" >"$installOracleInstantClient_ldconf" echo "/lib64:/lib:/usr/local/lib:/usr/lib:$ORACLE_INSTANTCLIENT_LIBPATH" >"$installOracleInstantClient_ldconf"
fi fi
fi fi
;; ;;
debian) debian)
if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then if ! test -e /etc/ld.so.conf.d/oracle-instantclient.conf; then
echo "/usr/lib/oracle/$installOracleInstantClient_version/$installOracleInstantClient_client/lib" >/etc/ld.so.conf.d/oracle-instantclient.conf echo "$ORACLE_INSTANTCLIENT_LIBPATH" >/etc/ld.so.conf.d/oracle-instantclient.conf
ldconfig ldconfig
fi fi
;; ;;
@ -1222,8 +1225,13 @@ EOF
./configure --with-unixODBC=shared,/usr ./configure --with-unixODBC=shared,/usr
cd - >/dev/null cd - >/dev/null
;; ;;
oci8) oci8 | pdo_oci)
installOracleInstantClient installOracleInstantClient
if test "$1" = oci8; then
docker-php-ext-configure "$1" "--with-oci8=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH"
elif test "$1" = pdo_oci; then
docker-php-ext-configure "$1" "--with-pdo-oci=instantclient,$ORACLE_INSTANTCLIENT_LIBPATH"
fi
;; ;;
pdo_odbc) pdo_odbc)
docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr