1
0
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:
Michael Voříšek
2026-02-11 20:24:08 +01:00
committed by GitHub
parent 66d908f112
commit 5330e7f59b
9 changed files with 123 additions and 58 deletions

View File

@@ -0,0 +1 @@
!*.patch

View 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

View File

@@ -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

View 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
View 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

View File

@@ -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"

View File

@@ -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::"

View File

@@ -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) */

View File

@@ -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) */