Skip to content

Commit b2182b4

Browse files
committed
use source extract hook for pdo_sqlsrv
1 parent 1d5aec0 commit b2182b4

File tree

2 files changed

+18
-26
lines changed

2 files changed

+18
-26
lines changed

src/SPC/builder/extension/pdo_sqlsrv.php

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/SPC/store/SourcePatcher.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public static function init(): void
2525
FileSystem::addSourceExtractHook('php-src', [__CLASS__, 'patchFfiCentos7FixO3strncmp']);
2626
FileSystem::addSourceExtractHook('sqlsrv', [__CLASS__, 'patchSQLSRVWin32']);
2727
FileSystem::addSourceExtractHook('pdo_sqlsrv', [__CLASS__, 'patchSQLSRVWin32']);
28+
FileSystem::addSourceExtractHook('pdo_sqlsrv', [__CLASS__, 'patchSQLSRVPhp85']);
2829
FileSystem::addSourceExtractHook('yaml', [__CLASS__, 'patchYamlWin32']);
2930
FileSystem::addSourceExtractHook('libyaml', [__CLASS__, 'patchLibYaml']);
3031
FileSystem::addSourceExtractHook('php-src', [__CLASS__, 'patchImapLicense']);
@@ -432,6 +433,23 @@ public static function patchSQLSRVWin32(string $source_name): bool
432433
return false;
433434
}
434435

436+
/**
437+
* Fix the compilation issue of pdo_sqlsrv with php 8.5
438+
*/
439+
public static function patchSQLSRVPhp85(): bool
440+
{
441+
$source_dir = SOURCE_PATH . '/php-src/ext/pdo_sqlsrv';
442+
if (!file_exists($source_dir . '/config.m4') && is_dir($source_dir . '/source/pdo_sqlsrv')) {
443+
FileSystem::moveFileOrDir($source_dir . '/LICENSE', $source_dir . '/source/pdo_sqlsrv/LICENSE');
444+
FileSystem::moveFileOrDir($source_dir . '/source/shared', $source_dir . '/source/pdo_sqlsrv/shared');
445+
FileSystem::moveFileOrDir($source_dir . '/source/pdo_sqlsrv', SOURCE_PATH . '/pdo_sqlsrv');
446+
FileSystem::removeDir($source_dir);
447+
FileSystem::moveFileOrDir(SOURCE_PATH . '/pdo_sqlsrv', $source_dir);
448+
return true;
449+
}
450+
return false;
451+
}
452+
435453
public static function patchYamlWin32(): bool
436454
{
437455
FileSystem::replaceFileStr(SOURCE_PATH . '/php-src/ext/yaml/config.w32', "lib.substr(lib.length - 6, 6) == '_a.lib'", "lib.substr(lib.length - 6, 6) == '_a.lib' || 'yes' == 'yes'");

0 commit comments

Comments
 (0)