Anatol Belski [Sun, 31 Mar 2019 12:18:12 +0000 (14:18 +0200)]
Rework the VS version evaluation
For the latest versions, refer also to the Visual Studio version, not to
the exact toolset version. The latest Visual Studio versions are moving
fast and the method existed previously is not sutable to keep up
anymore. Instead of refering to the exact toolset, it refers to the
Visual Studio version and implies the latest toolset available there.
That is still not ideal, another situation can arise where VS version is
not changed, but the toolset version is. It might be better to refer to
it a generic way in the future or even omit at all, and improve the
internal compatibility checks instead.
Anatol Belski [Sun, 31 Mar 2019 12:01:36 +0000 (14:01 +0200)]
Implement stricter extension compatibility check
This hardens the dynamic module loading by checking the linker compatibility
between the core and the dynamic module. This likely should be extended
for the CRT as well, as 2015, 2017 and 2019 versions of Visual Studio
all have same DLL name for the CRT.
Peter Kokot [Wed, 27 Mar 2019 19:51:45 +0000 (20:51 +0100)]
Move README files to a dedicated docs directory
The new dedicated docs directory has been introduced after a discussion
on GitHub[1].
Main issue it is addressing is the reduction of too many README files in
the project root directory. The new directory is dedicated for notes and
quick documentation files that either can't be put in the manual or wiki
pages or that relate to the php-src repository specifically and need to
live together with the source code.
Also the `docs` directory is by GitHub used for some repository
configuration files such as pull request templates, and contributing
documentation helper files that are integrated in the interface.
Peter Kokot [Mon, 25 Mar 2019 23:00:36 +0000 (00:00 +0100)]
Join README.GIT-RULES and CONTRIBUTING.md
This patch joins two very much related pieces of docs together in a
single file dedicated to all sorts of contributing info.
Some more changes:
- Branches info copied from the current master branch
- LXR and bonsai info removed
- Duplicated info reduced a bit
- Security branch updated to 7.1
- Refactor intro for Git commit rules
- Updated README.GIT-RULES file usage in win32/build/confutils.js
- Refactored configure.ac
Peter Kokot [Sun, 17 Mar 2019 15:22:02 +0000 (16:22 +0100)]
Refactor PHP_PROG_BISON and PHP_PROG_RE2C
This patch refactors these macros to also checks for the required given
versions of bison and re2c.
- PHP_PROG_RE2C and PHP_PROG_BISON take optional args - minmimum version
required, and bison also excluded versions.
- Instead of caching values this uses manual checking and messaging
outputs.
- It looks like the minimum version of RE2C 0.13.4 is working ok so far.
The genfiles script improvements:
- Add make override in genfiles
- Move checkings from makedist to genfiles
- Refactored output messages
- Various minor enhancements
The `W32_SM_SENDMAIL_FROM_MALFORMED` error message will only be shown
if the `$additional_headers` parameter is passed to `mail`, which is
not the case for this test. Instead we have to expect `BAD_MSG_RPATH`.
Peter Kokot [Wed, 27 Mar 2019 22:36:59 +0000 (23:36 +0100)]
Remove php7.spec.in file
RPM specification file was introduced via 7c2f1384d45876bbdef255c4a57301e6406f6964 for PHP to include official
RPM packages long time agon. With removal of the makerpm script via 3d51d4c90c77a30a7b88aae7184dcce4b6e26b07 and Linux repositories to
manage such updated and customized info in their repositories this file
is most likely not needed anymore.
Dmitry reports that this has a non-trivial impact on parsing
overhead, especially on 32-bit systems. As we don't have a strong
need for this change right now, I'm reverting it.
* PHP-7.3:
Validate subject encoding in mb_split and mb_ereg_match
Validate pattern against mbregex encoding
SQLite3: add DEFENSIVE config for SQLite >= 3.26.0 as a mitigation strategy against potential security flaws
* PHP-7.2:
Validate subject encoding in mb_split and mb_ereg_match
Validate pattern against mbregex encoding
SQLite3: add DEFENSIVE config for SQLite >= 3.26.0 as a mitigation strategy against potential security flaws
* PHP-7.1:
Validate subject encoding in mb_split and mb_ereg_match
Validate pattern against mbregex encoding
SQLite3: add DEFENSIVE config for SQLite >= 3.26.0 as a mitigation strategy against potential security flaws
Nikita Popov [Mon, 11 Feb 2019 11:10:40 +0000 (12:10 +0100)]
Validate pattern against mbregex encoding
Oniguruma does not consistently perform this validation itself (at least
on older versions), so make sure we check pattern encoding validity on the
PHP side.
Nikita Popov [Wed, 27 Mar 2019 17:09:09 +0000 (18:09 +0100)]
Treat abstract ctors the same, regardless of origin
Abstract ctor signatures should always be respected by all children,
independently of whether it comes from an interface or an abstract
class. Previously abstract ctor signatures (if they didn't come from
an interface) were only checked to one level of inheritance.
Nikita Popov [Mon, 25 Mar 2019 14:46:43 +0000 (15:46 +0100)]
Make PCRE cache per-request on CLI
There will only be one request on the CLI SAPI, so there is no
advantage to having a persistent PCRE cache. Using a non-persistent
cache allows us to use arbitrary strings as cache keys.
Peter Kokot [Sat, 23 Mar 2019 18:05:37 +0000 (19:05 +0100)]
[ci skip] Join contributing and patches docs
This joins two similar contextual information together in the main
CONTRIBUTING.md file.
Additionally:
- http links updated to https where possible
- sentences and sections refactored more so they make some sence. GitHub
pull requests are preferred way for contributing code.
- reorder paragraphs and contextual info
- s/mail list/mailing list
- PHP internals refactorings
- use canonical https://www.php.net
Niklas Keller [Sun, 24 Mar 2019 18:39:25 +0000 (19:39 +0100)]
Fix #77794: Incorrect Date header format in built-in server
- Fix the date format to be compliant with https://tools.ietf.org/html/rfc7231#section-7.1.1.2
- Fix date format length and use GMT time
- Previously, local time was used instead of GMT.
- Remove extra whitespace
- Simplify string appends in php_cli_server.c