mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 23:13:19 +00:00
php74.extensions.iconv: fix error signalling
The configure script checks whether iconv supports errno. Unfortunately, on PHP < 8, the test program includes $PHP_ICONV_H_PATH, which defaults to FHS path so it fails to build:
conftest.c:13:10: fatal error: /usr/include/iconv.h: No such file or directory
13 | #include </usr/include/iconv.h>
| ^~~~~~~~~~~~~~~~~~~~~~
That causes the feature check to report a false negative, leading PHP to use a degraded code that returns PHP_ICONV_ERR_UNKNOWN when error occurs, breaking granular error handling in applications.
To prevent this, let’s just include <iconv.h>.
PHP 8 just uses include path so the detection works there: 7bd1d70341
This commit is contained in:
parent
c912d30f65
commit
024243bac4
@ -322,10 +322,16 @@ lib.makeScope pkgs.newScope (self: with self; {
|
||||
configureFlags = [ "--with-gmp=${gmp.dev}" ]; }
|
||||
{ name = "hash"; enable = lib.versionOlder php.version "7.4"; }
|
||||
{ name = "iconv";
|
||||
configureFlags = if stdenv.isDarwin then
|
||||
[ "--with-iconv=${libiconv}" ]
|
||||
else
|
||||
[ "--with-iconv" ];
|
||||
configureFlags = [
|
||||
"--with-iconv${lib.optionalString stdenv.isDarwin "=${libiconv}"}"
|
||||
];
|
||||
patches = lib.optionals (lib.versionOlder php.version "8.0") [
|
||||
# Header path defaults to FHS location, preventing the configure script from detecting errno support.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/fossar/nix-phps/raw/263861a8c9bdafd7abe44db6db4ef0179643680c/pkgs/iconv-header-path.patch";
|
||||
sha256 = "7GHnEUu+hcsQ4h3itDwk6p46ZKfib9JZ2XpWlXrdn6E=";
|
||||
})
|
||||
];
|
||||
doCheck = false; }
|
||||
{ name = "imap";
|
||||
buildInputs = [ uwimap openssl pam pcre' ];
|
||||
|
Loading…
Reference in New Issue
Block a user