Commit Graph

76 Commits

Author SHA1 Message Date
Gerard Roche
db54b0fa18 Azure: Publish code coverage results
* 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.
2019-10-11 17:44:36 +02:00
Gerard Roche
9cc1bf5628 Fix GCOV not working for PHP-7.4 and master branches
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.
2019-09-25 10:19:19 +02:00
Christoph M. Becker
f34db7fc2a 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.
2019-07-18 09:10:48 +02:00
Peter Kokot
07daf6cd62 Remove some *.dsp/*.dsw leftovers
Usage of this was removed via 4b3e198023

Closes GH-4408
2019-07-15 17:55:37 +02:00
Peter Kokot
29bff939c7 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
2019-05-18 02:05:59 +02:00
Peter Kokot
ce65d2354c 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.
2019-04-29 22:34:43 +02:00
Peter Kokot
c79eb107a0 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.
2019-04-29 01:30:27 +02:00
Peter Kokot
4e7064d173 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
2019-04-23 20:28:45 +02:00
Peter Kokot
b09fa9ed53 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.
2019-04-16 17:25:08 +02:00
Peter Kokot
6884253461 Remove not needed extension generated files gitignores
These were refactored and moved to build directory via:
2957651c5c and
7e445ef3b1
2019-04-15 20:03:48 +02:00
Peter Kokot
5e16f5b8d8 Remove php7.spec.in file
RPM specification file was introduced via
7c2f1384d4 for PHP to include official
RPM packages long time agon. With removal of the makerpm script via
3d51d4c90c and Linux repositories to
manage such updated and customized info in their repositories this file
is most likely not needed anymore.
2019-03-28 17:42:11 +01:00
Peter Kokot
2957651c5c Move Makefile.global and Makefile.gcov to build directory
These files can be stored in the build directory instead of bloating the
project root directory.
2019-03-04 12:30:42 +01:00
Peter Kokot
1c32d751c7 Remove mkinstalldirs, install-sh and missing
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
2019-03-04 12:10:50 +01:00
Peter Kokot
cb77d9c3cc [ci skip] Remove oniguruma and libzip leftovers
Oniguruma and libzip are unbundled from php-src.
2019-03-04 01:26:56 +01:00
Peter Kokot
f0251a8b16 Remove lexer files generated by RE2C
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
2018-11-11 02:55:46 +01:00
Peter Kokot
22c249347e Remove ext/json parser files generated by bison
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.
2018-10-24 20:13:04 +02:00
Peter Kokot
0b63544f25 Normalize .gitignore
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
  595a395cb9 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
  9d9d39a0de.
- 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
  a5b55416f4
- Pattern `meta_cc` has been removed via e5176fe60a.
- Pattern `dynlib.m4` removed since the file is no longer generated via
  9d9d39a0de
- 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
  fd7153b0f3 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)
2018-10-24 16:20:52 +02:00
Peter Kokot
addcf2402d Remove mkdep.awk
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 9d9d39a0de
and outdated files removed via 22815419f8
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.
2018-10-20 10:08:54 +02:00
Peter Kokot
1257664ca2 Merge branch 'PHP-7.3'
* 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
2018-10-19 00:12:48 +02:00
Peter Kokot
74131ca342 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
  Fix #77035: The phpize and ./configure create redundant .deps file
2018-10-19 00:10:22 +02:00
Peter Kokot
5531dde5e9 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  [ci skip] Update NEWS
  Fix #77035: The phpize and ./configure create redundant .deps file
2018-10-19 00:07:42 +02:00
Peter Kokot
447b41f6bb 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
779c11af21.

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.
2018-10-19 00:02:09 +02:00
Peter Kokot
00db0e7a04 Remove outdated PEAR artefacts
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.
2018-10-18 23:43:13 +02:00
Peter Kokot
370882bb59 Remove stamp-h
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 232afa4816
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
2018-10-18 08:35:43 +02:00
Peter Kokot
066b5b7881 Remove some obsolete config_vars.mk occurrences
The `config_vars.mk` file was a part of previous *nix build system and
has been removed via 9d9d39a0de.
2018-10-16 18:05:06 +02:00
Peter Kokot
4ac9ef4a00 Remove bsd_converted from .gitignore
The `bsd_converted` file was once used as a temporary locking mechanism
on BSD systems builds and has been made obsolete via commit
9d9d39a0de
so it can be also removed from the main .gitignore file.
2018-10-16 17:30:13 +02:00
Peter Kokot
265ee53b80 Remove configuration parser and scanners ignores
The configuration-parser.c, configuration-parser.h,
configuration-parser.output and configuration-scanner.c were refactored
via 78194a47b7 and can be removed in the
.gitignore.
2018-10-16 17:20:18 +02:00
Peter Kokot
0df202e7ae Remove obsolete buildconf.stamp from .gitignore
The buildconf.stamp file was used to store particular build time
information in the past and then got removed via the
6c6c0a630c
and the migration usage of the build/build.mk file only.
2018-10-16 13:33:07 +02:00
Peter Kokot
c54d382b2e [ci skip] Add magicdata.patch exception to .gitignore 2018-10-16 11:04:39 +02:00
Peter Kokot
1df1792b9c Remove outdated ext/spl/examples items from .gitignore 2018-10-16 10:38:19 +02:00
Peter Kokot
60a69daec6 Sync leading and final newlines in source code files
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
2018-10-14 12:54:08 +02:00
Kalle Sommer Nielsen
4fc5833b3e Fix the deplister rule to not ignore the .c file (Anatol) 2018-10-01 08:31:49 +02:00
Kalle Sommer Nielsen
a698dcd24a Update .gitignore to include the Windows deplister program (win32/build/deplister.c) 2018-10-01 07:54:52 +02:00
Peter Kokot
cfe46a5d79 Fix config.guess and config.sub files in .gitignore
Files `config.guess` and `config.sub` are committed in the php-src
repository so these don't need to be ignored for the root directory.
For the extensions these can be ignored in case of building extension
inside the php-src with phpize.
2018-09-18 05:21:19 +02:00
Christoph M. Becker
23aa355bf2 Merge branch 'PHP-7.3'
* PHP-7.3:
  Remove some old parts of the php
2018-08-25 11:58:50 +02:00
Peter Kokot
fcf4088d3f Remove some old parts of the php
Since ba138a3746 the generate-phpt library
has been unbundled from the php-src. This patch cleans two remaining
parts.
2018-08-25 11:58:17 +02:00
Peter Kokot
7b39e8a338 Remove Doxygen configuration
Documentation for the SPL was once rendered at
http://www.php.net/~helly/php/ext/spl/

With upgrades of the PHP manual, the SPL documentation moved there
instead and PHP files for the SPL docs in the PHP source code directory
were outdated and removed via 9003d8a4cf
2018-08-25 11:42:45 +02:00
Peter Kokot
0f57a7f259 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix bug 76595: Update phpdbg man page
2018-08-04 06:37:15 +02:00
Peter Kokot
9286681bac Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix bug 76595: Update phpdbg man page
2018-08-04 06:35:40 +02:00
Kevin Abel
91996e7ee5 Fix bug 76595: Update phpdbg man page
Send phpdbg.1 man page through configure replacements
Update phpdbg.1 man page to include all options
Fixes formatting to be more consistent with php.1
Fix paragraph whitespace and ignore phpdbg.1
2018-08-04 06:34:40 +02:00
Peter Kokot
255e29f3bc Remove unused libmbfl build system related files
PHP build system already builds necessary files also from libmbfl
directory using the mbstring config.m4 file.
2018-07-29 10:07:32 +02:00
Peter Kokot
24e1ae0e90 Remove some old occurrences of configure.in
configure.ac is the recommended file to use instead of the old
configure.in which will be removed in autotools future versions.
2018-06-04 17:59:00 +02:00
Anatol Belski
a5bc5aed71 Patch core for PCRE2 support
RFC https://wiki.php.net/rfc/pcre2-migration
2017-11-13 19:37:38 +01:00
Peter Kokot
34a7d7fa6a
Clean and sync .gitignore 2017-10-19 12:09:50 +01:00
Peter Kokot
39ea632f74 Join untracked files to root .gitignore 2017-10-05 12:36:47 +02:00
Anatol Belski
8466ef9096 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Remove some old sapi/apache_hooks and sapi/apache leftovers
2017-09-25 21:58:41 +02:00
Peter Kokot
3752d18ffe Remove some old sapi/apache_hooks and sapi/apache leftovers 2017-09-25 21:56:39 +02:00
Anatol Belski
1e2764614b add oniguruma.patch to ease future upgrades 2017-07-13 17:34:14 +02:00
Richard Fussenegger
595a395cb9 Clean up .gitignore
Simply test rules using ** globs, remove some outdated rules and
group some rules differently.
2017-06-07 23:40:27 +02:00
Brian Evans
2fe9208ee3
Use modern autotools name of configure.ac instead of configure.in
configure.ac was introduced in 2001 with automake-1.15 and autoconf-2.50
to replace the file named configure.in.
Autotools is preparing to remove configure.in in Automake 2.0.
All new software should be using configure.ac.
This also fixes Bug #69770 where extensions are creating configure.in

Signed-off-by: Brian Evans <grknight@gentoo.org>
2017-01-27 06:07:40 +00:00