Commit Graph

65 Commits

Author SHA1 Message Date
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
Kalle Sommer Nielsen
0ffd0a0217 Improve the config.simple.bat for Windows a little;
This adds --with-config-profile=foobar, this generates a config.foobar.bat file in the root of php-src directory with the relevant configuration arguments.
2016-10-19 01:14:15 +02:00
Kalle Sommer Nielsen
815ee7d06c Added config.simple.bat to .gitignore 2016-10-18 23:29:28 +02:00
Christoph M. Becker
cd16b64f01 Merge branch 'PHP-5.6' into PHP-7.0 2016-09-11 13:26:30 +02:00
Christoph M. Becker
dc09f30933 A picture is worth a thousand message digests
The bundled GD test suites makes heavy use of md5() to verify the result
of drawing operations. This leads to fragile tests (even a slight change
in a PNG header would cause failure, and of course there is the
possibility of collisions), and even worse, eventual test failures are
rather unrevealing.

Therefore we replace all md5() verification with a simplistic
test_image_equals_file(), which is basically a simplified port of libgd's
gdTestImageCompareToFile(), adapted to the needs of PHPTs.

In the long run better tests helpers should be introduced (see also
<http://news.php.net/php.internals/94081>), but for now this solution
is preferable over the former.

(cherry picked from commit 24f9e96792)
2016-09-11 12:56:53 +02:00
Xinchen Hui
9374977d21 Merge branch 'PHP-5.6' into PHP-7.0
Conflicts:
	ext/opcache/Optimizer/pass1_5.c
2015-12-17 14:30:00 +08:00
Lior Kaplan
ef9ddd0d82 Remove sqlite extension leftover references (was removed in PHP 5.4) 2015-12-16 09:40:02 +02:00
Stanislav Malyshev
ed709d5aa0 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  update NEWS
  fix test
  update NEWS
  Fix bug #70019 - limit extracted files to given directory
  Do not do convert_to_* on unserialize, it messes up references
  Fix #69793 - limit what we accept when unserializing exception
  Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList)
  Fixed bug #70166 - Use After Free Vulnerability in unserialize() with SPLArrayObject
  ignore signatures for packages too
  Fix bug #70168 - Use After Free Vulnerability in unserialize() with SplObjectStorage
  Fixed bug #69892
  Fix bug #70014 - use RAND_bytes instead of deprecated RAND_pseudo_bytes
  Improved fix for Bug #69441
  Fix bug #70068 (Dangling pointer in the unserialization of ArrayObject items)
  Fix bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref)
  Fix bug #70081: check types for SOAP variables

Conflicts:
	ext/soap/php_http.c
	ext/spl/spl_observer.c
2015-08-04 15:29:13 -07:00
Stanislav Malyshev
69ed3969dd Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fix bug #70019 - limit extracted files to given directory
  Do not do convert_to_* on unserialize, it messes up references
  Fix #69793 - limit what we accept when unserializing exception
  Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList)
  Fixed bug #70166 - Use After Free Vulnerability in unserialize() with SPLArrayObject
  ignore signatures for packages too
  Fix bug #70168 - Use After Free Vulnerability in unserialize() with SplObjectStorage
  Fixed bug #69892
  Fix bug #70014 - use RAND_bytes instead of deprecated RAND_pseudo_bytes
  Improved fix for Bug #69441
  Fix bug #70068 (Dangling pointer in the unserialization of ArrayObject items)
  Fix bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref)
  Fix bug #70081: check types for SOAP variables

Conflicts:
	.gitignore
	ext/date/php_date.c
	ext/spl/spl_array.c
	ext/spl/spl_observer.c
2015-08-04 14:10:57 -07:00
Stanislav Malyshev
c7d3c027d5 ignore signatures for packages too 2015-08-01 22:01:32 -07:00
Stanislav Malyshev
97047e7665 Merge branch 'PHP-5.6'
* PHP-5.6:
  update NEWS
  fix test
  update NEWS
  Fix bug #70019 - limit extracted files to given directory
  Do not do convert_to_* on unserialize, it messes up references
  Fix #69793 - limit what we accept when unserializing exception
  Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList)
  Fixed bug #70166 - Use After Free Vulnerability in unserialize() with SPLArrayObject
  ignore signatures for packages too
  Fix bug #70168 - Use After Free Vulnerability in unserialize() with SplObjectStorage
  Fixed bug #69892
  Fix bug #70014 - use RAND_bytes instead of deprecated RAND_pseudo_bytes
  Improved fix for Bug #69441
  Fix bug #70068 (Dangling pointer in the unserialization of ArrayObject items)
  Fix bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref)
  Fix bug #70081: check types for SOAP variables

Conflicts:
	Zend/zend_exceptions.c
	ext/date/php_date.c
	ext/openssl/openssl.c
	ext/phar/phar_internal.h
	ext/soap/php_http.c
	ext/spl/spl_array.c
	ext/spl/spl_dllist.c
	ext/spl/spl_observer.c
	ext/standard/tests/serialize/bug69152.phpt
	sapi/cli/tests/005.phpt
2015-08-04 16:14:24 -07:00
Kalle Sommer Nielsen
db22946b25 Remove these old references to the DSP files we don't use anymore 2015-06-22 13:29:42 +02:00