From 911bc74bf44875f1b37617b9bda7557b3ab0a51d Mon Sep 17 00:00:00 2001 From: DubbleClick Date: Wed, 8 Oct 2025 08:16:54 +0200 Subject: [PATCH] add libedit --- config/ext.json | 2 +- config/source.json | 10 ++++++++++ src/SPC/builder/extension/readline.php | 7 +------ src/SPC/builder/linux/library/libedit.php | 15 +++++++++++++++ src/SPC/builder/macos/library/libedit.php | 15 +++++++++++++++ src/SPC/builder/unix/library/libedit.php | 20 ++++++++++++++++++++ 6 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 src/SPC/builder/linux/library/libedit.php create mode 100644 src/SPC/builder/macos/library/libedit.php create mode 100644 src/SPC/builder/unix/library/libedit.php diff --git a/config/ext.json b/config/ext.json index 188aea58..9b8e92e8 100644 --- a/config/ext.json +++ b/config/ext.json @@ -687,7 +687,7 @@ "type": "builtin", "arg-type": "with-path", "lib-depends": [ - "readline" + "libedit" ], "target": [ "static" diff --git a/config/source.json b/config/source.json index 4a0e0fdb..a6639862 100644 --- a/config/source.json +++ b/config/source.json @@ -946,6 +946,16 @@ "path": "LICENSE" } }, + "libedit": { + "type": "filelist", + "url": "https://thrysoee.dk/editline/", + "regex": "/href=\"(?editline-(?[^\"]+)\\.tar\\.gz)\"/", + "provide-pre-built": true, + "license": { + "type": "file", + "path": "COPYING" + } + }, "readline": { "type": "filelist", "url": "https://ftp.gnu.org/pub/gnu/readline/", diff --git a/src/SPC/builder/extension/readline.php b/src/SPC/builder/extension/readline.php index a8ee48aa..c0dd3e65 100644 --- a/src/SPC/builder/extension/readline.php +++ b/src/SPC/builder/extension/readline.php @@ -23,12 +23,7 @@ class readline extends Extension public function getUnixConfigureArg(bool $shared = false): string { - $enable = '--without-libedit --with-readline=' . BUILD_ROOT_PATH; - if ($this->builder->getPHPVersionID() < 84000) { - // the check uses `char rl_pending_input()` instead of `extern int rl_pending_input`, which makes LTO fail - $enable .= ' ac_cv_lib_readline_rl_pending_input=yes'; - } - return $enable; + return '--with-libedit=' . BUILD_ROOT_PATH . ' --without-readline'; } public function buildUnixShared(): void diff --git a/src/SPC/builder/linux/library/libedit.php b/src/SPC/builder/linux/library/libedit.php new file mode 100644 index 00000000..eaa159f9 --- /dev/null +++ b/src/SPC/builder/linux/library/libedit.php @@ -0,0 +1,15 @@ +configure( + '--with-curses' + ) + ->make(); + $this->patchPkgconfPrefix(['libedit.pc']); + } +}