From ced1f9aa91ee36857fec9664c9ccd86ba2310821 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Tue, 18 Aug 2026 04:47:02 +0900 Subject: refactor(function-exists): drop checks for always-present capabilities function_exists() returns false in PHP when a function is blocked by disable_functions, when its extension is not compiled in, or when the PHP version predates it. None of those apply to a native binary. --- crates/shirabe/src/package/archiver/phar_archiver.rs | 6 +++--- crates/shirabe/src/package/locker.rs | 9 ++------- crates/shirabe/src/package/version/version_guesser.rs | 10 +++------- 3 files changed, 8 insertions(+), 17 deletions(-) (limited to 'crates/shirabe/src/package') diff --git a/crates/shirabe/src/package/archiver/phar_archiver.rs b/crates/shirabe/src/package/archiver/phar_archiver.rs index ea04a302..75e5a775 100644 --- a/crates/shirabe/src/package/archiver/phar_archiver.rs +++ b/crates/shirabe/src/package/archiver/phar_archiver.rs @@ -7,7 +7,7 @@ use indexmap::IndexMap; use shirabe_php_shim::Catch as _; use shirabe_php_shim::{ FilesystemIterator, Phar, PharData, RuntimeException, UnexpectedValueException, bzcompress, - file_exists, file_put_contents, function_exists, gzcompress, str_repeat, strrpos, unlink, + file_exists, file_put_contents, gzcompress, str_repeat, strrpos, unlink, }; fn formats() -> IndexMap<&'static str, i64> { @@ -108,11 +108,11 @@ impl ArchiverInterface for PharArchiver { )) .into()); } - if format == "tar.gz" && function_exists("gzcompress") { + if format == "tar.gz" { let data = gzcompress(&str_repeat("\0", 10240).into_bytes()).unwrap_or_default(); file_put_contents(&target, &data); - } else if format == "tar.bz2" && function_exists("bzcompress") { + } else if format == "tar.bz2" { let data = bzcompress(&str_repeat("\0", 10240).into_bytes()).unwrap_or_default(); file_put_contents(&target, &data); diff --git a/crates/shirabe/src/package/locker.rs b/crates/shirabe/src/package/locker.rs index ec8d86e7..17911c6e 100644 --- a/crates/shirabe/src/package/locker.rs +++ b/crates/shirabe/src/package/locker.rs @@ -27,9 +27,8 @@ use indexmap::IndexMap; use shirabe_php_shim::Catch as _; use shirabe_php_shim::{ DATE_RFC3339, LogicException, PhpMixed, RuntimeException, array_intersect, array_keys, - array_map, array_merge, file_get_contents, filemtime, function_exists, hash, in_array_loose, - is_int, ksort, php_regex, preg_is_match, preg_match, realpath, strcmp, strtolower, touch2, - trim, usort, + array_map, array_merge, file_get_contents, filemtime, hash, in_array_loose, is_int, ksort, + php_regex, preg_is_match, preg_match, realpath, strcmp, strtolower, touch2, trim, usort, }; use shirabe_seld_json_lint::ParsingException; @@ -773,10 +772,6 @@ impl Locker { &mut self, package: PackageInterfaceHandle, ) -> anyhow::Result> { - if !function_exists("proc_open") { - return Ok(None); - } - let path = self .installation_manager .borrow_mut() diff --git a/crates/shirabe/src/package/version/version_guesser.rs b/crates/shirabe/src/package/version/version_guesser.rs index 3c47d5b2..38c4f0a3 100644 --- a/crates/shirabe/src/package/version/version_guesser.rs +++ b/crates/shirabe/src/package/version/version_guesser.rs @@ -13,9 +13,9 @@ use crate::util::Svn as SvnUtil; use crate::util::sync_executor; use indexmap::IndexMap; use shirabe_php_shim::{ - PhpMixed, RuntimeException, array_keys, array_map, array_merge, empty, function_exists, - implode, is_string, json_encode, php_regex, preg_is_match, preg_match, preg_quote, - preg_replace, str_replace, strlen, strnatcasecmp, strpos, substr, trim, usort, + PhpMixed, RuntimeException, array_keys, array_map, array_merge, empty, implode, is_string, + json_encode, php_regex, preg_is_match, preg_match, preg_quote, preg_replace, str_replace, + strlen, strnatcasecmp, strpos, substr, trim, usort, }; /// Seam over the parts of [`VersionGuesser`] that consumers depend on, so they can be exercised @@ -104,10 +104,6 @@ impl VersionGuesser { return Ok(None); } - if !function_exists("proc_open") { - return Ok(None); - } - // bypass version guessing in bash completions as it takes time to create // new processes and the root version is usually not that important if Platform::is_input_completion_process() { -- cgit v1.3.1-4-g156e