Skip to content

Commit 07ea1e2

Browse files
authored
update libwebp and libxml2 (#982)
2 parents f0b5e4f + a54021b commit 07ea1e2

File tree

14 files changed

+123
-75
lines changed

14 files changed

+123
-75
lines changed

config/source.json

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -771,17 +771,20 @@
771771
]
772772
},
773773
"libwebp": {
774-
"type": "url",
775-
"url": "https://github.com/webmproject/libwebp/archive/refs/tags/v1.3.2.tar.gz",
774+
"type": "ghtagtar",
775+
"repo": "webmproject/libwebp",
776+
"match": "v1\\.\\d+\\.\\d+$",
776777
"provide-pre-built": true,
777778
"license": {
778779
"type": "file",
779780
"path": "COPYING"
780781
}
781782
},
782783
"libxml2": {
783-
"type": "url",
784-
"url": "https://github.com/GNOME/libxml2/archive/refs/tags/v2.12.5.tar.gz",
784+
"type": "ghtagtar",
785+
"repo": "GNOME/libxml2",
786+
"match": "v2\\.\\d+\\.\\d+$",
787+
"provide-pre-built": false,
785788
"license": {
786789
"type": "file",
787790
"path": "Copyright"
@@ -1169,9 +1172,8 @@
11691172
}
11701173
},
11711174
"xdebug": {
1172-
"type": "url",
1173-
"url": "https://pecl.php.net/get/xdebug",
1174-
"filename": "xdebug.tgz",
1175+
"type": "pie",
1176+
"repo": "xdebug/xdebug",
11751177
"license": {
11761178
"type": "file",
11771179
"path": "LICENSE"

src/SPC/builder/extension/imagick.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
namespace SPC\builder\extension;
66

77
use SPC\builder\Extension;
8+
use SPC\toolchain\ToolchainManager;
9+
use SPC\toolchain\ZigToolchain;
810
use SPC\util\CustomExt;
911

1012
#[CustomExt('imagick')]
@@ -19,7 +21,9 @@ public function getUnixConfigureArg(bool $shared = false): string
1921
protected function splitLibsIntoStaticAndShared(string $allLibs): array
2022
{
2123
[$static, $shared] = parent::splitLibsIntoStaticAndShared($allLibs);
22-
if (str_contains(getenv('PATH'), 'rh/devtoolset') || str_contains(getenv('PATH'), 'rh/gcc-toolset')) {
24+
if (ToolchainManager::getToolchainClass() !== ZigToolchain::class &&
25+
(str_contains(getenv('PATH'), 'rh/devtoolset') || str_contains(getenv('PATH'), 'rh/gcc-toolset'))
26+
) {
2327
$static .= ' -l:libstdc++.a';
2428
$shared = str_replace('-lstdc++', '', $shared);
2529
}

src/SPC/builder/extension/mongodb.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,9 @@ public function getUnixConfigureArg(bool $shared = false): string
2424
$arg .= $this->builder->getLib('zlib') ? ' --with-mongodb-zlib=yes ' : ' --with-mongodb-zlib=bundled ';
2525
return clean_spaces($arg);
2626
}
27+
28+
public function getExtraEnv(): array
29+
{
30+
return ['CFLAGS' => '-std=c17'];
31+
}
2732
}

src/SPC/builder/extension/pgsql.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public function getWindowsConfigureArg(bool $shared = false): string
4545
protected function getExtraEnv(): array
4646
{
4747
return [
48-
'CFLAGS' => '-Wno-int-conversion',
48+
'CFLAGS' => '-std=c17 -Wno-int-conversion',
4949
];
5050
}
5151
}

src/SPC/builder/linux/library/liburing.php

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
use SPC\builder\linux\SystemUtil;
88
use SPC\store\FileSystem;
9+
use SPC\toolchain\GccNativeToolchain;
10+
use SPC\toolchain\ToolchainManager;
911
use SPC\util\executor\UnixAutoconfExecutor;
1012
use SPC\util\SPCTarget;
1113

@@ -15,26 +17,19 @@ class liburing extends LinuxLibraryBase
1517

1618
public function patchBeforeBuild(): bool
1719
{
18-
if (!SystemUtil::isMuslDist()) {
19-
return false;
20+
if (SystemUtil::isMuslDist()) {
21+
FileSystem::replaceFileStr($this->source_dir . '/configure', 'realpath -s', 'realpath');
22+
return true;
2023
}
21-
FileSystem::replaceFileStr($this->source_dir . '/configure', 'realpath -s', 'realpath');
22-
return true;
24+
return false;
2325
}
2426

2527
protected function build(): void
2628
{
27-
$use_libc = SPCTarget::getLibc() !== 'glibc' || version_compare(SPCTarget::getLibcVersion(), '2.30', '>=');
29+
$use_libc = ToolchainManager::getToolchainClass() !== GccNativeToolchain::class || version_compare(SPCTarget::getLibcVersion(), '2.30', '>=');
2830
$make = UnixAutoconfExecutor::create($this);
2931

30-
if (!$use_libc) {
31-
$make->appendEnv([
32-
'CC' => 'gcc', // libc-less version fails to compile with clang or zig
33-
'CXX' => 'g++',
34-
'AR' => 'ar',
35-
'LD' => 'ld',
36-
]);
37-
} else {
32+
if ($use_libc) {
3833
$make->appendEnv([
3934
'CFLAGS' => '-D_GNU_SOURCE',
4035
]);
@@ -51,7 +46,7 @@ protected function build(): void
5146
$use_libc ? '--use-libc' : '',
5247
)
5348
->configure()
54-
->make('library', 'install ENABLE_SHARED=0', with_clean: false);
49+
->make('library ENABLE_SHARED=0', 'install ENABLE_SHARED=0', with_clean: false);
5550

5651
$this->patchPkgconfPrefix();
5752
}

src/SPC/builder/linux/library/openssl.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public function build(): void
6262
"{$zlib_extra}" .
6363
'enable-pie ' .
6464
'no-legacy ' .
65+
'no-tests ' .
6566
"linux-{$arch}"
6667
)
6768
->exec('make clean')

src/SPC/builder/unix/library/gmp.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@ trait gmp
1010
{
1111
protected function build(): void
1212
{
13-
UnixAutoconfExecutor::create($this)->configure()->make();
13+
UnixAutoconfExecutor::create($this)
14+
->appendEnv([
15+
'CFLAGS' => '-std=c17',
16+
])
17+
->configure()
18+
->make();
1419
$this->patchPkgconfPrefix(['gmp.pc']);
1520
}
1621
}

src/SPC/builder/unix/library/libjxl.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,17 @@ protected function build(): void
2929
);
3030

3131
if (ToolchainManager::getToolchainClass() === ZigToolchain::class) {
32-
$cmake->addConfigureArgs(
33-
'-DCXX_MAVX512F_SUPPORTED:BOOL=FALSE',
34-
'-DCXX_MAVX512DQ_SUPPORTED:BOOL=FALSE',
35-
'-DCXX_MAVX512CD_SUPPORTED:BOOL=FALSE',
36-
'-DCXX_MAVX512BW_SUPPORTED:BOOL=FALSE',
37-
'-DCXX_MAVX512VL_SUPPORTED:BOOL=FALSE'
38-
);
32+
$cflags = getenv('SPC_DEFAULT_C_FLAGS') ?: getenv('CFLAGS') ?: '';
33+
$has_avx512 = str_contains($cflags, '-mavx512') || str_contains($cflags, '-march=x86-64-v4');
34+
if (!$has_avx512) {
35+
$cmake->addConfigureArgs(
36+
'-DCXX_MAVX512F_SUPPORTED:BOOL=FALSE',
37+
'-DCXX_MAVX512DQ_SUPPORTED:BOOL=FALSE',
38+
'-DCXX_MAVX512CD_SUPPORTED:BOOL=FALSE',
39+
'-DCXX_MAVX512BW_SUPPORTED:BOOL=FALSE',
40+
'-DCXX_MAVX512VL_SUPPORTED:BOOL=FALSE'
41+
);
42+
}
3943
}
4044

4145
$cmake->build();

src/SPC/builder/unix/library/libwebp.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,26 @@
55
namespace SPC\builder\unix\library;
66

77
use SPC\util\executor\UnixCMakeExecutor;
8+
use SPC\util\SPCTarget;
89

910
trait libwebp
1011
{
1112
protected function build(): void
1213
{
1314
UnixCMakeExecutor::create($this)
14-
->addConfigureArgs('-DWEBP_BUILD_EXTRAS=ON')
15+
->addConfigureArgs(
16+
'-DWEBP_BUILD_EXTRAS=OFF',
17+
'-DWEBP_BUILD_ANIM_UTILS=OFF',
18+
'-DWEBP_BUILD_CWEBP=OFF',
19+
'-DWEBP_BUILD_DWEBP=OFF',
20+
'-DWEBP_BUILD_GIF2WEBP=OFF',
21+
'-DWEBP_BUILD_IMG2WEBP=OFF',
22+
'-DWEBP_BUILD_VWEBP=OFF',
23+
'-DWEBP_BUILD_WEBPINFO=OFF',
24+
'-DWEBP_BUILD_WEBPMUX=OFF',
25+
'-DWEBP_BUILD_FUZZTEST=OFF',
26+
SPCTarget::getLibcVersion() === '2.31' && GNU_ARCH === 'x86_64' ? '-DWEBP_ENABLE_SIMD=OFF' : '' // fix an edge bug for debian 11 with gcc 10
27+
)
1528
->build();
1629
// patch pkgconfig
1730
$this->patchPkgconfPrefix(patch_option: PKGCONF_PATCH_PREFIX | PKGCONF_PATCH_LIBDIR);

src/SPC/builder/unix/library/ncurses.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ protected function build(): void
1616

1717
UnixAutoconfExecutor::create($this)
1818
->appendEnv([
19+
'CFLAGS' => '-std=c17',
1920
'LDFLAGS' => SPCTarget::isStatic() ? '-static' : '',
2021
])
2122
->configure(

0 commit comments

Comments
 (0)