| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
of it, and thus extension can use it as it is already in Makefile
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently mail related tests are split for *nix and Windows (if there
are even Windows versions). The basic difference is that the *nix
variants set the INI directive sendmail_path to just write the email to
disk, while the Windows tests use ext/imap. The latter tests are way
more verbose, and such duplicated tests are generally a pain point.
Furthermore, the Windows tests are much slower, and could not be run
without ext/imap being available.
We therefore introduce a small fakemail application, which basically
works like `tee <path> >/dev/null`, and which will be shipped with the
Windows tests packs. fakemail.exe would also need to be added to the
PHP binary SDK, so these tests could be run during developments.
To cater to the remaining differences, we also introduce support for
`{MAIL:<path>}` placeholders in the INI sections to run-tests.php. How
to use this can be seen in mail_basic.phpt, which is currently the only
modified test case, because these tests are yet supposed to fail on
Windows, due to the missing fakemail.exe in the PHP SDK.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Change a number of "resource used as offset" notices to warnings,
which were previously missed.
* Throw the "resource used as offset" warning for isset() as well.
* Make array_key_exists() behavior with regard to different key
types consistent with isset() and normal array accesses. All key
types now use the usual coercions and array/object keys throw
TypeError.
Closes GH-4887.
|
|
|
|
| |
The major version number is no longer included.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Add an Azure Publish Code Coverage Results task
* Add `make gcovr-html` to generate a gcovr test coverage report in HTML
* Add `make gcovr-xml` to generate a gcovr test coverage report in XML
* Remove `test` target dependency from `make lcov-html`;
Run the two targets together instead: `make test lcov-html`.
Re: https://github.com/php/php-src/pull/4739#issuecomment-534911441
See: https://externals.io/message/107113,
https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/test/publish-code-coverage-results?view=azure-devops,
and https://github.com/php/php-src/pull/4759.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Code coverage reports (`make lcov`), since commit eef8522 (7.4 branch),
generates incorrect coverage and emits warnings. Simplifying the
Makefile.gcov file has the side-effect of resolving the issue.
Processing sapi/cli/php_http_parser.gcda
php-src/lcov_data/sapi/cli/php_http_parser.gcda:stamp mismatch with notes file
geninfo: WARNING: gcov did not create any files for php-src/lcov_data/sapi/cli/php_http_parser.gcda!
...
Processing ext/mbstring/mb_gpc.gcda
php-src/lcov_data/ext/mbstring/mb_gpc.gcda:stamp mismatch with notes file
geninfo: WARNING: gcov did not create any files for php-src/lcov_data/ext/mbstring/mb_gpc.gcda!
Closes: https://bugs.php.net/bug.php?id=52718.
See also: https://bugs.php.net/bug.php?id=78288.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Signature stubs for internal functions are specified in xyz.stub.php,
from which we generate actual arginfo structures in xyz_arginfo.h.
This file then needs to be included in the implementation appropriately.
Arginfo from stubs can be regenerated using scripts/dev/gen_stub.php.
However, this should also automatically happen when the stub file is
modified.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Use regedit to register event source
|
| |
| |
| |
| |
| |
| |
| | |
ext/win32std is unmaintained for years, so it is highly unlikely that
it is available. We therefore use regedit instead to register the
event source. We also remove the bundled syslog.reg, since it is of no
use, unless generated for the respective installation.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Remove some *.dsp/*.dsw leftovers
|
| |
| |
| |
| |
| |
| | |
Usage of this was removed via 4b3e19802385c5874eefd3ba4565f2efbc55dc96
Closes GH-4408
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Enhance makedist script
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This enhances the makidst script:
- integrate both snapshot and makedist scripts together
- add help and options
- generated files are created in the php-src repository directly
- other minor enhancemenets such as CS fixes
- functionality moved from the Makefile to only shell script
- Add missed patching of the Zend Parsers to the main build step
- Add all *.tmp files to gitignore
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Remove TSRM configuration header
|
| |
| |
| |
| |
| |
| | |
TSRM configuration header file was once created by separate autoconf
build system for TSRM and is with the current code not directly needed
like this anymore.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Simplify checking of *nix build tools
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The buildmk.stamp file has been created by the *nix build checking step
to run the check step only once. Instead of poluting the project root
directory, the stamp file can be also omitted. Performance difference is
very minimal to not justify having the stamp check at all today anymore.
This patch integrates the buildcheck.sh to buildconf script directly.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Move acinclude.m4 to build/php.m4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The acinclude.m4 file is in a usual Autotools build processed with
Automake's aclocal tool. Since PHP currently doesn't use Automake and
aclocal this file can be moved into the build directory. PHP build
system currently generates a combined aclocal.m4 file that Autoconf
can processes automatically.
However, a newer practice is writing all local macros in separate
dedicated files prefixed with package name, in PHP's case PHP_MACRO_NAME
and putting them in a common `m4` directory. PHP uses currently `build`
directory for this purpose.
Name `php.m4` probably most resembles such file for PHP's case.
PHP manually created the aclocal.m4 file from acinclude.m4 and
build/libtool.m4. Which is also not a particularly good practice [1], so
this patch also removes the generated alocal.m4 usage and uses
m4_include() calls manually in the configure.ac and phpize.m4 files
manually.
- sort order is not important but can be alphabetical
- list of *.m4 files prerequisites for configure script generation
updated
- Moving m4_include() before AC_INIT also removes all comments starting
with hash character (`#`) in the included files.
[1] https://autotools.io/autoconf/macros.html
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Simplify generated_lists generation
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The `generated_lists` file is generated as a helper for build related
Makefile to include a list of *.m4 files prerequisites. When some of
these *.m4 files change, the configure script is regenerated when
buildconf is run. This can be simplified using dynamic environment
variable passed to the Makefile directly so it avoids another file from
being generated in the project root directory and shipping it with the
PHP release or creating a dedicated gitignore rule.
This is portable across all POSIX compatible makes So this patch
includes GNU Make, and everybody elses' make derivative support.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Remove not needed extension generated files gitignores
|
| |
| |
| |
| |
| |
| | |
These were refactored and moved to build directory via:
2957651c5c2a003e96318fc9217764b91266723a and
7e445ef3b1a197dccbc92f35cb66988b66671841
|
|/ |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
These files can be stored in the build directory instead of bloating the
project root directory.
|
|
|
|
|
|
|
| |
These scripts are part of Automake [1] and are in current *nix build
system not used anymore nor empty files need to be created.
[1] https://www.gnu.org/software/automake/manual/html_node/Auxiliary-Programs.html
|
|
|
|
| |
Oniguruma and libzip are unbundled from php-src.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch removes generated lexer files by re2c during the build
process so they are not tracked by Git yet can be still shipped when
PHP is released. The genfiles script additionally provides generation
of these lexer files when creating a release of the PHP source code.
The genfiles script refactorings:
- added file header
- echoing steps instead of comments
- cleaning only lines starting with `#line`
- eval removed in favor of direct executed commands
- the debug mode `set -x` removed
- script can be called from any path
- improved comments
|
|
|
|
|
|
|
|
|
|
|
| |
The parser files for ext/json are generated by bison from the *.y file.
Parser files in Zend and sapi/phpdbg already follow such approach of
these files being ignored from tracking in the Git repository and they
are shipped via the release packages later on. This way the end users
still don't need to have bison dependency installed to install PHP.
The genfiles script was refactored to generate the ext/json parser and
lexer files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes:
- Added introductory paragraph to explain the file for newcomers and
where to ignore local editor configurations as a common practice
when using Git.
- Patterns organized into several main context sections for a better
overview of the php-src directory structure and which files get
generated where.
- Added comments describing reasons for ignoring particular file(s).
- Patterns normalized according to Git ignore blob patterns. Absolute
paths are different than relative paths and similar fixes.
- Folders patterns have appended ending slash for readability to
distinguish them from files.
Removed ignore patterns:
- Removed `sapi/phpdbg/build` pattern since it doesn't seem to be
relevant anymore in the php-src repository.
- The `acconfig.h` pattern removed in favor of the more recent Autoconf
versions.
- Removed patterns for `.FBCIndex` `.FBCLockFolder` folders. These were
generated on old Mac OS systems [1] using the Sherlock [2] software
and can be today ignored using a global gitignore file if needed.
Newer macOS systems don't generate these anymore.
- Removed `php_version.h` pattern since the `main/php_version.h` file is
tracked by Git.
- Removed `*.mk` pattern since few *.mk files are tracked by Git and new
ones aren't generated during build process.
- Removed `**/tests/**/*.txt` pattern. This has been refactored via
595a395cb911a4ef54cbaf11cd0056d38316c87c and current tests also clean
the generated `*.txt` files as soon as they are executed. Since there
are several `*.txt` files in the repository tracked by Git already and
renaming them would be counter productive so the pattern is now removed.
In case there will be a need to adjust it, we can rename the generated
`*.txt` into something else instead (ideally into `*.tmp`) to not
conflict with already tracked `*.txt` files in tests.
- Removed `ext/*/scan_makefile_in.awk` and `scan_makefile_in.awk` patterns
since these are already included in the `/ext/*/build/` pattern.
- Removed the `/ext/*/libs.mk` pattern since these auxilary Makefiles
have been used in previous build system and made obsolete via the commit
9d9d39a0de3bec962c343051011f5a2ed7d7b242.
- Removed pattern for configuration header `ext/pdo_sqlite/sqlite3.h` since
it is not generated anymore in the current code.
- Removed `main/streams/build-defs.h` pattern since this file is not
generated.
- Removed `test.php3` pattern. These don't seem to be present in the current
PHP source code nor used since PHP 3.
- Removed `/ext/oci8/tests/*.vglog` pattern since the tests don't seem to
produce these files.
- Removed pattern for Visual Studio's `*.ncb` files. Since the Visual
Studio 2010 they are no longer used.
- Removed `ext/sqlite3/tests/phpsql*` pattern. It was part of the `ext/sqlite/tests`.
- Removed `shlibtool` pattern since the shlibtool file is not generated
anymore. It was once part of the libtool usage and customized naming
used in the previous build system in Makefiles. Such naming was later
removed and only libtool was used.
- Removed `meta_ccld` pattern since it is no longer relevant via
a5b55416f4bf48e475b30bb86b120c83efccca53
- Pattern `meta_cc` has been removed via e5176fe60a9ffbe211ee016acdcddb18118e4487.
- Pattern `dynlib.m4` removed since the file is no longer generated via
9d9d39a0de3bec962c343051011f5a2ed7d7b242
- Pattern `debug.log` removed since the Autoconf Macro PHP_DEBUG_MACRO
is not called anymore and this file not generated anymore.
- Pattern `results.txt` removed. It was once part of the logging results
of test files by Netware and previous Windows builds.
- Removed `_libs` pattern in favor of only `.libs`. These directories
were once generated by Automake and Libtool on systems that didn't
support the dot folder `.libs` (MS-DOS).
- Removed `*.opt` pattern since it was used by Visual Studio 6. Later
versions of Visual Studio don't use these anymore.
- Removed `*.plg` pattern. It was build log generated by Visual Studio 6.
- Removed `core` pattern since it was probably related to commit
fd7153b0f3047e6a96344dc3b4ca2632d5acc898 and is today not used.
- Removed ˙*.˙, ˙diff`, and ˙*.tgz` patterns since they don't seem to be
generated in the current code on the first glance. In case these will be
one day required to ignore again, they can be simply added back again.
- Removed Emacs specific interlock files pattern `.#*`. The number of
editors and IDEs specific files is very big. Emacs editors also produce
some other files such as `#*#` for autosave feature, which were previously
not ignored. To fully and properly support all additional patterns these
could be added to .gitignore files. A much more sustainable and better
practice is to use a global gitignore file on the local system or the
`.git/info/exclude` per repository basis for these in particular.
Added patterns:
- Added new pattern for `*.obj` standard object files in the Windows
section. These are generated by Visual Studio.
- Added `/ext/*/run-tests.php` patterns for extensions.
- Reversed patterns for particular tracked `/win32/build/Makefile`, `config.h`
files and `.patch` files.
- Added patterns for generated dtrace files `/ext/oci8/oci8_dtrace_gen.h`
Other changes:
- All `conftest*` patterns merged into a single one.
- Pattern `*.mem` made more specific where the memory check files get
generated by `run-tests.php -m`, i.e. `**/tests/**/*.mem`.
- Fixed `/Zend/zend_dtrace_gen.h.bak` `hbak` typo.
[1] http://www.westwind.com/reference/OS-X/invisibles.html
[2] https://en.wikipedia.org/wiki/Sherlock_(software)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `mkdep.awk` file was part of the previous *nix build system and was
used to create a .deps file with a list of dependencies that could be
processed by Automake further on.
Newer build system was done via 9d9d39a0de3bec962c343051011f5a2ed7d7b242
and outdated files removed via 22815419f8c5da902971d3aa12f2cbfcc3b41aff
so the current file in the PHP source code is not used anymore.
Additionally, the *.slo files were processed by this file. The *.slo
files also used to be generated by older libtool so today, these don't
get generated anymore.
|
|\
| |
| |
| |
| |
| |
| |
| | |
* PHP-7.3:
[ci skip] Update NEWS
[ci skip] Update NEWS
[ci skip] Update NEWS
Fix #77035: The phpize and ./configure create redundant .deps file
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
* PHP-7.2:
[ci skip] Update NEWS
[ci skip] Update NEWS
Fix #77035: The phpize and ./configure create redundant .deps file
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | | |
* PHP-7.1:
[ci skip] Update NEWS
Fix #77035: The phpize and ./configure create redundant .deps file
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The `.deps` file(s) was once used by Automake and created to write
dependencies to it. The file creation has been removed via the commit
779c11af21cf8a627b8f2f2edef9e9073c76ed94.
The phpize and ./configure script create a redundant .deps file in a
PECL extension directory which might cause confusions why is it used.
Today it is no longer relevant so this redundant artefact can be
removed in the phpize configure script.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines.
According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.
C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."
Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The `pear/scripts`, `pear/php-config`, `pear/phpize`, and
`pear/run-tests` used to be part of the PEAR installation. Now, the
pear installation PHAR file is directly downloaded from pear.php.net
instead.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The stamp-* files can be used as helpers for Makefiles to not redo
certain targets again. The stamp-h are mentioned in the Autoconf docs [1]
to help generate the config.h file.
Since the usage of stamp-h file was removed in 232afa4816c60a20d3db48c304ac59312d46ec46
this patch cleans few obsolete occurrences.
This patch also removes two occurrences of `main/stamp-h1` and
`main/streams/stamp-h1` rules in the .gitignore file since they are not
generated with the current build systems anymore. The `stamp-h$am_indx` files
were once generated using aclocal and automake.
[1] https://www.gnu.org/software/autoconf/manual/autoconf-2.69/autoconf.html
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The `config_vars.mk` file was a part of previous *nix build system and
has been removed via 9d9d39a0de3bec962c343051011f5a2ed7d7b242.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The `bsd_converted` file was once used as a temporary locking mechanism
on BSD systems builds and has been made obsolete via commit
9d9d39a0de3bec962c343051011f5a2ed7d7b242
so it can be also removed from the main .gitignore file.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The configuration-parser.c, configuration-parser.h,
configuration-parser.output and configuration-scanner.c were refactored
via 78194a47b7ad76aaea3bb8e91fa0f5707ae88d00 and can be removed in the
.gitignore.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The buildconf.stamp file was used to store particular build time
information in the past and then got removed via the
6c6c0a630c48190df5fa47567699760054748f9a
and the migration usage of the build/build.mk file only.
|
| | | | |
|
| | | | |
|