mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Verify bundled sources using CI - boost.context & uriparser (#20438)
This commit is contained in:
1
.github/scripts/download-bundled/.gitignore
vendored
Normal file
1
.github/scripts/download-bundled/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!*.patch
|
||||
41
.github/scripts/download-bundled/boost-context.sh
vendored
Executable file
41
.github/scripts/download-bundled/boost-context.sh
vendored
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
cd "$(dirname "$0")/../../.."
|
||||
|
||||
tmp_dir=/tmp/php-src-download-bundled/boost-context
|
||||
rm -rf "$tmp_dir"
|
||||
|
||||
revision=refs/tags/boost-1.86.0
|
||||
|
||||
git clone --depth 1 --revision="$revision" https://github.com/boostorg/context.git "$tmp_dir"
|
||||
|
||||
rm -rf Zend/asm
|
||||
cp -R "$tmp_dir"/src/asm Zend/asm
|
||||
|
||||
cd Zend/asm
|
||||
|
||||
# remove unneeded files
|
||||
rm jump_arm_aapcs_pe_armasm.asm
|
||||
rm jump_i386_ms_pe_clang_gas.S
|
||||
rm jump_i386_ms_pe_gas.asm
|
||||
rm jump_i386_x86_64_sysv_macho_gas.S
|
||||
rm jump_ppc32_ppc64_sysv_macho_gas.S
|
||||
rm jump_x86_64_ms_pe_clang_gas.S
|
||||
rm make_arm_aapcs_pe_armasm.asm
|
||||
rm make_i386_ms_pe_clang_gas.S
|
||||
rm make_i386_ms_pe_gas.asm
|
||||
rm make_i386_x86_64_sysv_macho_gas.S
|
||||
rm make_ppc32_ppc64_sysv_macho_gas.S
|
||||
rm make_x86_64_ms_pe_clang_gas.S
|
||||
rm ontop_*.S
|
||||
rm ontop_*.asm
|
||||
rm tail_ontop_ppc32_sysv.cpp
|
||||
|
||||
# move renamed files
|
||||
# GH-13896 introduced these 2 files named as .S but since https://github.com/boostorg/context/pull/265 they are named as .asm
|
||||
mv jump_x86_64_ms_pe_gas.asm jump_x86_64_ms_pe_gas.S
|
||||
mv make_x86_64_ms_pe_gas.asm make_x86_64_ms_pe_gas.S
|
||||
|
||||
# add extra files
|
||||
git restore LICENSE
|
||||
git restore save_xmm_x86_64_ms_masm.asm # added in GH-18352, not an upstream boost.context file
|
||||
7
.github/scripts/download-bundled/pcre2.sh
vendored
7
.github/scripts/download-bundled/pcre2.sh
vendored
@@ -2,12 +2,15 @@
|
||||
set -ex
|
||||
cd "$(dirname "$0")/../../.."
|
||||
|
||||
tmp_dir=/tmp/php-src-download-bundled/pcre2
|
||||
rm -rf "$tmp_dir"
|
||||
|
||||
revision=refs/tags/pcre2-10.44
|
||||
|
||||
git clone --depth 1 --recurse-submodules --revision="$revision" https://github.com/PCRE2Project/pcre2.git /tmp/php-src-bundled/pcre2
|
||||
git clone --depth 1 --recurse-submodules --revision="$revision" https://github.com/PCRE2Project/pcre2.git "$tmp_dir"
|
||||
|
||||
rm -rf ext/pcre/pcre2lib
|
||||
cp -R /tmp/php-src-bundled/pcre2/src ext/pcre/pcre2lib
|
||||
cp -R "$tmp_dir"/src ext/pcre/pcre2lib
|
||||
|
||||
cd ext/pcre/pcre2lib
|
||||
|
||||
|
||||
14
.github/scripts/download-bundled/uriparser.config.patch
vendored
Normal file
14
.github/scripts/download-bundled/uriparser.config.patch
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
diff --git a/ext/uri/uriparser/src/UriConfig.h b/ext/uri/uriparser/src/UriConfig.h
|
||||
index b9a85a8..ab78b96 100644
|
||||
--- a/ext/uri/uriparser/src/UriConfig.h
|
||||
+++ b/ext/uri/uriparser/src/UriConfig.h
|
||||
@@ -41,7 +41,9 @@
|
||||
|
||||
# define PACKAGE_VERSION "@PROJECT_VERSION@"
|
||||
|
||||
+/*
|
||||
#cmakedefine HAVE_WPRINTF
|
||||
#cmakedefine HAVE_REALLOCARRAY
|
||||
+*/
|
||||
|
||||
#endif /* !defined(URI_CONFIG_H) */
|
||||
24
.github/scripts/download-bundled/uriparser.sh
vendored
Executable file
24
.github/scripts/download-bundled/uriparser.sh
vendored
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
cd "$(dirname "$0")/../../.."
|
||||
|
||||
tmp_dir=/tmp/php-src-download-bundled/uriparser
|
||||
rm -rf "$tmp_dir"
|
||||
|
||||
revision=refs/tags/uriparser-1.0.0
|
||||
|
||||
git clone --depth 1 --revision="$revision" https://github.com/uriparser/uriparser.git "$tmp_dir"
|
||||
|
||||
rm -rf ext/uri/uriparser
|
||||
mkdir ext/uri/uriparser
|
||||
cp -R "$tmp_dir"/src ext/uri/uriparser
|
||||
cp -R "$tmp_dir"/include ext/uri/uriparser
|
||||
cp "$tmp_dir"/COPYING.BSD-3-Clause ext/uri/uriparser
|
||||
|
||||
cd ext/uri/uriparser
|
||||
|
||||
# move renamed files
|
||||
mv src/UriConfig.h.in src/UriConfig.h
|
||||
|
||||
# patch customized files
|
||||
git apply -v ../../../.github/scripts/download-bundled/uriparser.config.patch
|
||||
11
.github/scripts/test-directory-unchanged.sh
vendored
11
.github/scripts/test-directory-unchanged.sh
vendored
@@ -1,13 +1,16 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
cd "$(dirname "$0")/../../$1"
|
||||
# use the repo root directory as "--git-dir"
|
||||
cd "$(dirname "$0")/../.."
|
||||
|
||||
dir="$1"
|
||||
|
||||
# notify git about untracked (except ignored) files
|
||||
git add -N .
|
||||
git add -N "$dir"
|
||||
|
||||
# display overview of changed files
|
||||
git status .
|
||||
git status "$dir"
|
||||
|
||||
# display diff of working directory vs HEAD commit and set exit code
|
||||
git diff -a --exit-code HEAD .
|
||||
git diff -a --exit-code HEAD "$dir"
|
||||
|
||||
32
.github/workflows/verify-bundled-files.yml
vendored
32
.github/workflows/verify-bundled-files.yml
vendored
@@ -3,8 +3,10 @@ name: Verify Bundled Files
|
||||
on:
|
||||
push:
|
||||
paths: &paths
|
||||
- '.github/scripts/download-bundled/pcre2.sh'
|
||||
- '.github/scripts/download-bundled/**'
|
||||
- 'Zend/asm/**'
|
||||
- 'ext/pcre/pcre2lib/**'
|
||||
- 'ext/uri/uriparser/**'
|
||||
pull_request:
|
||||
paths: *paths
|
||||
schedule:
|
||||
@@ -24,15 +26,30 @@ jobs:
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Detect changed files
|
||||
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }}
|
||||
uses: dorny/paths-filter@v3
|
||||
id: changes
|
||||
with:
|
||||
base: master
|
||||
filters: |
|
||||
'boost-context':
|
||||
- '.github/scripts/download-bundled/boost-context.*'
|
||||
- 'Zend/asm/**'
|
||||
pcre2:
|
||||
- '.github/scripts/download-bundled/pcre2.sh'
|
||||
- '.github/scripts/download-bundled/pcre2.*'
|
||||
- 'ext/pcre/pcre2lib/**'
|
||||
uriparser:
|
||||
- '.github/scripts/download-bundled/uriparser.*'
|
||||
- 'ext/uri/uriparser/**'
|
||||
|
||||
- name: 'boost.context'
|
||||
if: ${{ !cancelled() && (steps.changes.outputs.boost-context == 'true' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') }}
|
||||
run: |
|
||||
echo "::group::Download"
|
||||
.github/scripts/download-bundled/boost-context.sh
|
||||
echo "::endgroup::"
|
||||
echo "::group::Verify files"
|
||||
.github/scripts/test-directory-unchanged.sh Zend/asm
|
||||
echo "::endgroup::"
|
||||
- name: PCRE2
|
||||
if: ${{ !cancelled() && (steps.changes.outputs.pcre2 == 'true' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') }}
|
||||
run: |
|
||||
@@ -42,3 +59,12 @@ jobs:
|
||||
echo "::group::Verify files"
|
||||
.github/scripts/test-directory-unchanged.sh ext/pcre/pcre2lib
|
||||
echo "::endgroup::"
|
||||
- name: uriparser
|
||||
if: ${{ !cancelled() && (steps.changes.outputs.uriparser == 'true' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') }}
|
||||
run: |
|
||||
echo "::group::Download"
|
||||
.github/scripts/download-bundled/uriparser.sh
|
||||
echo "::endgroup::"
|
||||
echo "::group::Verify files"
|
||||
.github/scripts/test-directory-unchanged.sh ext/uri/uriparser
|
||||
echo "::endgroup::"
|
||||
|
||||
@@ -42,8 +42,8 @@
|
||||
# define PACKAGE_VERSION "@PROJECT_VERSION@"
|
||||
|
||||
/*
|
||||
#define HAVE_WPRINTF
|
||||
#define HAVE_REALLOCARRAY
|
||||
#cmakedefine HAVE_WPRINTF
|
||||
#cmakedefine HAVE_REALLOCARRAY
|
||||
*/
|
||||
|
||||
#endif /* !defined(URI_CONFIG_H) */
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
/*
|
||||
* uriparser - RFC 3986 URI parsing library
|
||||
*
|
||||
* Copyright (C) 2018, Sebastian Pipping <sebastian@pipping.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the copyright holder nor the names of
|
||||
* its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#if !defined(URI_CONFIG_H)
|
||||
# define URI_CONFIG_H 1
|
||||
|
||||
# define PACKAGE_VERSION "@PROJECT_VERSION@"
|
||||
|
||||
#cmakedefine HAVE_WPRINTF
|
||||
#cmakedefine HAVE_REALLOCARRAY
|
||||
|
||||
#endif /* !defined(URI_CONFIG_H) */
|
||||
Reference in New Issue
Block a user