Having "select PACKAGE_zoneinfo-core" wasn't enough for builds without
php7-cli=y or php7-cgi=y. It didn't result in installing zoneinfo-core
when using "opkg install" (during runtime or when building images with
CONFIG_TARGET_PER_DEVICE_ROOTFS).
Missing zoneinfo results in PHP fatal errors, e.g.:
Fatal error: DateTime::createFromFormat(): Timezone database is corrupt - this should *never* happen!
For years users were told to manually install zoneinfo-core package.
This problem was hidden for some time (including 17.01 release) due to
disabled support for CONFIG_PHP7_SYSTEMTZDATA. It's now back as support
for --with-system-tzdata was enabled again.
The proper solution is to simply make php7 package depend on
zoneinfo-core when PHP7_SYSTEMTZDATA is used.
Fixes: 84e5012e88 ("php7: re-enable system timezone data usage")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This is in anticipation of the MariaDB upgrade from mariadb 10.1.x to
10.2.x. With the latter the PHP MySQL plugins fail to compile, e.g.:
In file included from /home/equeiroz/src/openwrt-asus/build_dir/target-mipsel_74kc_musl/php-7.2.6/ext/mysqli/php_mysqli_structs.h:63:0,
from /home/equeiroz/src/openwrt-asus/build_dir/target-mipsel_74kc_musl/php-7.2.6/ext/mysqli/mysqli.c:34:
/home/equeiroz/src/openwrt-asus/staging_dir/target-mipsel_74kc_musl/usr/include/mysql/my_global.h:3:2: warning: #warning This file should not be included by clients, include only <mysql.h> [-Wcpp]
#warning This file should not be included by clients, include only <mysql.h>
^~~~~~~
In file included from /home/equeiroz/src/openwrt-asus/build_dir/target-mipsel_74kc_musl/php-7.2.6/ext/mysqli/php_mysqli_structs.h:79:0,
from /home/equeiroz/src/openwrt-asus/build_dir/target-mipsel_74kc_musl/php-7.2.6/ext/mysqli/mysqli.c:34:
/home/equeiroz/src/openwrt-asus/staging_dir/target-mipsel_74kc_musl/usr/include/mysql/my_sys.h:3:2: warning: #warning This file should not be included by clients, include only <mysql.h> [-Wcpp]
#warning This file should not be included by clients, include only <mysql.h>
^~~~~~~
In file included from /home/equeiroz/src/openwrt-asus/build_dir/target-mipsel_74kc_musl/php-7.2.6/ext/mysqli/mysqli.c:34:0:
/home/equeiroz/src/openwrt-asus/build_dir/target-mipsel_74kc_musl/php-7.2.6/ext/mysqli/php_mysqli_structs.h:82:10: fatal error: my_list.h: No such file or directory
#include <my_list.h>
Upstream seems unlikely to fix this, see
https://bugs.php.net/bug.php?id=75612. In the bug report it is suggested
to not use libmysqlclient/libmariadbclient and instead utilize mysqlnd
(MySQL Native Driver) provided by PHP. This is the default anyway.
So add the mysqlnd module and remove the libmariadbclient depends.
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
PHP comes with a bundled version of libpcre which is then statically
linked. However, we already depend on the packaged library, so we
can reduce the footprint when linking to it dynamically.
This saves around 200-300 kB (this depends on other configuration).
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Upstream was a little premature on asking for a change and not
vetting it. Here is the currently proposed fix.
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
Depending on which version of libiconv you're using, php_iconv_string()
doesn't always null out *out as part of its initialization. This
patch makes that behavior invariant.
Submitted upstream as https://github.com/php/php-src/pull/3037 where
it's approved and waiting a merge.
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
Remove a patch which was included upstream.
While at, also add openssl configuration parameters when modules are selected
which depend on openssl (reported by Philip Prindeville).
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
The check to enable/disable this new feature of PHP 7.2 works
incorrectly when cross-compiling because it detects the host headers
only and there is no way to pass in a dedicated directory.
The wish to change this was reported upstream at:
https://bugs.php.net/bug.php?id=75722
For the meantime, use a self-cooked patch.
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Also drop mcrypt module as it's deprecated.
Dropped patches have been accepted upstream or something homologous.
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
When libpam is selected, then mod_imap pulls in a dep to libpam,
and there seems no way to disable it via configure arguments.
So add this dep here conditionally.
Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Detection of U8T_DECOMPOSE seems to be broken when cross-compiling,
so needs to be preseeded.
-snip-
checking for utf8_mime2text signature... new
checking for U8T_DECOMPOSE...
configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL
is missing. This should not happen. Check config.log for additional information.
-snap-
This requires also a patch for PHP to make the preseeding working.
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Add Freetype 2 support to php7-mod-gd. Introduce a configuration
parameter to disable Freetype 2 support if the increased package
size is a concern.
Signed-off-by: Val Kulkov <val.kulkov@gmail.com>
This part of the Makefile was commented out during update from
PHP 5.x to 7.x and not re-enabled in the meanswhile, so fix this finally.
Reported-by: Val Kulkov <val.kulkov@gmail.com>
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Two important configuration files, /etc/php7-fpm.conf and
/etc/php7-fpm.d/www.conf are silently overwritten on each php7-fpm
upgrade or lost on a sysupgrade.
This commit adds the conffiles section for php7-fpm and revises
the conffiles section for php7.
Signed-off-by: Val Kulkov <val.kulkov@gmail.com>
The FPM SAPI works fine without the CGI SAPI installed. It seems that
this is a copy & paste error introduced a long time ago, when FPM support
was added - and nobody noticed.
So drop the dependency now to allow smaller footprints on installations
which only use FPM.
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
This fixes several CVEs:
- in mbstring: CVE-2017-9224, CVE-2017-9226, CVE-2017-9227,
CVE-2017-9228, CVE-2017-9229
- in gd: CVE-2017-7890
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Add native support for SNMP manager functions, so scripts don't
have to call system("snmpget -v2c ...") etc. Cuts down on fork/exec
pairs and simplifies issues with parsing intermediate output.
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
Removed patch 1008-fix-musl-sys-headers.patch which was integrated
upstream.
(Compile tested only so far)
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
This fixes a stupid typo from last commit which lead to the following
compiler warning:
cc1: warning: command line option '-std=c++11' is valid for C++/ObjC++ but not for C
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
This fixes the following build error (shortened paths for readability):
-snip-
In file included from .../php-7.1.4/ext/intl/intl_convertcpp.h:26:0,
from .../php-7.1.4/ext/intl/intl_convertcpp.cpp:21:
.../staging_dir/target-arm_arm926ej-s_musl_eabi/usr/include/unicode/unistr.h:56:16: error: 'UChar' does not name a type
u_strlen(const UChar *s);
^
.../staging_dir/target-arm_arm926ej-s_musl_eabi/usr/include/unicode/unistr.h:80:19: error: 'char16_t' has not been declared
char16_t *dest, int32_t destCapacity,
^
.../staging_dir/target-arm_arm926ej-s_musl_eabi/usr/include/unicode/unistr.h:81:25: error: 'char16_t' does not name a type
const char16_t *src, int32_t srcLength,
^
In file included from .../php-7.1.4/ext/intl/intl_convertcpp.h:26:0,
from .../php-7.1.4/ext/intl/intl_convertcpp.cpp:21:
.../staging_dir/target-arm_arm926ej-s_musl_eabi/usr/include/unicode/unistr.h:462:16: error: 'char16_t' does not name a type
const char16_t *srcChars) const;
^
[...]
-snap-
This build error was introduced by update of icu to 59.1.
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
MUSL is complaining about <sys/poll.h> instead of <poll.h>.
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
[ Replaced the *-t1lib filtering stuff by simply removing the
left-over configure option ]
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Filter support brings several useful features which many PHP applications
rely on. To make it easier for users who don't want to build own packages
enable this by default. This slightly increases the binary SAPI packages,
but since PHP is a huge monster anyway, I doubt this hurts anybody.
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
The gettext extension is only useful when linked against libintl-full
package, however, the detection did not work sucessfully. This patch
by @Dimazhan fixes this.
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
This fixes the following build error, spotted by the LEDE buildbots:
{standard input}: Assembler messages:
{standard input}:557: Error: operand 3 should be an integer register -- `mul x0,x0,1048576'
{standard input}:558: Error: operand 3 should be an integer register -- `smulh x1,x0,1048576'
Makefile:1466: recipe for target 'ext/opcache/zend_accelerator_module.lo' failed
Signed-off-by: Michael Heimpold <mhei@heimpold.de>