Forráskód Böngészése

[Add][GPL][php]

2022.11.08 / Folus Wen

Actions:
1. php version upgrde from 8.1.10 to 8.1.12, only put in GPL folder.

Files:
1. As follow commit history

Image version: 8.1.12
Image checksum: XXXXXXXX

Hardware PWB P/N : XXXXXXX
Hardware Version : XXXXXXX
Folus Wen 2 éve
szülő
commit
dd8509b6b1
100 módosított fájl, 734 hozzáadás és 1645 törlés
  1. 6 6
      EVSE/GPL/Makefile
  2. 0 186
      EVSE/GPL/php-8.1.10/.github/workflows/nightly.yml
  3. 0 79
      EVSE/GPL/php-8.1.10/azure-pipelines.yml
  4. 0 64
      EVSE/GPL/php-8.1.10/azure/apt.yml
  5. 0 108
      EVSE/GPL/php-8.1.10/azure/community_job.yml
  6. 0 73
      EVSE/GPL/php-8.1.10/azure/configure.yml
  7. 0 11
      EVSE/GPL/php-8.1.10/azure/install.yml
  8. 0 25
      EVSE/GPL/php-8.1.10/azure/job.yml
  9. 0 37
      EVSE/GPL/php-8.1.10/azure/libmysqlclient_job.yml
  10. 0 53
      EVSE/GPL/php-8.1.10/azure/libmysqlclient_test.yml
  11. 0 81
      EVSE/GPL/php-8.1.10/azure/msan_job.yml
  12. 0 5
      EVSE/GPL/php-8.1.10/azure/mssql.yml
  13. 0 88
      EVSE/GPL/php-8.1.10/azure/opcache_variation_job.yml
  14. 0 185
      EVSE/GPL/php-8.1.10/azure/setup-slapd.sh
  15. 0 31
      EVSE/GPL/php-8.1.10/azure/setup.yml
  16. 0 72
      EVSE/GPL/php-8.1.10/ext/pdo_oci/tests/pdo_oci_stream_2b.phpt
  17. 0 517
      EVSE/GPL/php-8.1.10/sapi/fpm/tests/logtool.inc
  18. BIN
      EVSE/GPL/php-8.1.12.tar.gz
  19. 5 10
      EVSE/GPL/php-8.1.12/.appveyor.yml
  20. 0 0
      EVSE/GPL/php-8.1.12/.cirrus.yml
  21. 0 0
      EVSE/GPL/php-8.1.12/.editorconfig
  22. 0 0
      EVSE/GPL/php-8.1.12/.gdbinit
  23. 0 0
      EVSE/GPL/php-8.1.12/.gitattributes
  24. 7 2
      EVSE/GPL/php-8.1.12/.github/actions/apt-x64/action.yml
  25. 0 0
      EVSE/GPL/php-8.1.12/.github/actions/brew/action.yml
  26. 34 0
      EVSE/GPL/php-8.1.12/.github/actions/build-libmysqlclient/action.yml
  27. 0 0
      EVSE/GPL/php-8.1.12/.github/actions/configure-macos/action.yml
  28. 0 1
      EVSE/GPL/php-8.1.12/.github/actions/configure-x64/action.yml
  29. 2 0
      EVSE/GPL/php-8.1.12/.github/actions/install-linux/action.yml
  30. 1 1
      EVSE/GPL/php-8.1.12/.github/actions/setup-mssql/action.yml
  31. 13 0
      EVSE/GPL/php-8.1.12/.github/actions/setup-oracle/action.yml
  32. 1 1
      EVSE/GPL/php-8.1.12/.github/actions/setup-x64/action.yml
  33. 21 0
      EVSE/GPL/php-8.1.12/.github/actions/test-libmysqlclient/action.yml
  34. 6 0
      EVSE/GPL/php-8.1.12/.github/actions/test-linux/action.yml
  35. 0 0
      EVSE/GPL/php-8.1.12/.github/actions/test-macos/action.yml
  36. 0 0
      EVSE/GPL/php-8.1.12/.github/actions/verify-generated-files/action.yml
  37. 22 3
      EVSE/GPL/php-8.1.12/.github/nightly_matrix.php
  38. 1 1
      EVSE/GPL/php-8.1.12/.github/scripts/setup-slapd.sh
  39. 1 1
      EVSE/GPL/php-8.1.12/.github/scripts/windows/build.bat
  40. 0 0
      EVSE/GPL/php-8.1.12/.github/scripts/windows/build_task.bat
  41. 1 1
      EVSE/GPL/php-8.1.12/.github/scripts/windows/test.bat
  42. 2 0
      EVSE/GPL/php-8.1.12/.github/scripts/windows/test_task.bat
  43. 513 0
      EVSE/GPL/php-8.1.12/.github/workflows/nightly.yml
  44. 4 2
      EVSE/GPL/php-8.1.12/.github/workflows/push.yml
  45. 0 0
      EVSE/GPL/php-8.1.12/.gitignore
  46. 0 0
      EVSE/GPL/php-8.1.12/.travis.yml
  47. 0 0
      EVSE/GPL/php-8.1.12/CODING_STANDARDS.md
  48. 0 0
      EVSE/GPL/php-8.1.12/CONTRIBUTING.md
  49. 0 0
      EVSE/GPL/php-8.1.12/EXTENSIONS
  50. 0 0
      EVSE/GPL/php-8.1.12/LICENSE
  51. 85 0
      EVSE/GPL/php-8.1.12/NEWS
  52. 0 0
      EVSE/GPL/php-8.1.12/README.REDIST.BINS
  53. 0 0
      EVSE/GPL/php-8.1.12/README.md
  54. 0 0
      EVSE/GPL/php-8.1.12/TSRM/LICENSE
  55. 0 0
      EVSE/GPL/php-8.1.12/TSRM/TSRM.c
  56. 0 0
      EVSE/GPL/php-8.1.12/TSRM/TSRM.h
  57. 0 0
      EVSE/GPL/php-8.1.12/TSRM/config.w32
  58. 0 0
      EVSE/GPL/php-8.1.12/TSRM/threads.m4
  59. 0 0
      EVSE/GPL/php-8.1.12/TSRM/tsrm.m4
  60. 0 0
      EVSE/GPL/php-8.1.12/TSRM/tsrm_win32.c
  61. 0 0
      EVSE/GPL/php-8.1.12/TSRM/tsrm_win32.h
  62. 0 0
      EVSE/GPL/php-8.1.12/UPGRADING
  63. 0 0
      EVSE/GPL/php-8.1.12/UPGRADING.INTERNALS
  64. 0 0
      EVSE/GPL/php-8.1.12/Zend/LICENSE
  65. 0 0
      EVSE/GPL/php-8.1.12/Zend/Makefile.frag
  66. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/block_pass.c
  67. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/compact_literals.c
  68. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/compact_vars.c
  69. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/dce.c
  70. 3 1
      EVSE/GPL/php-8.1.12/Zend/Optimizer/dfa_pass.c
  71. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/escape_analysis.c
  72. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/nop_removal.c
  73. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/optimize_func_calls.c
  74. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/optimize_temp_vars_5.c
  75. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/pass1.c
  76. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/pass3.c
  77. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/sccp.c
  78. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/scdf.c
  79. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/scdf.h
  80. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/ssa_integrity.c
  81. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_call_graph.c
  82. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_call_graph.h
  83. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_cfg.c
  84. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_cfg.h
  85. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_dfg.c
  86. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_dfg.h
  87. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_dump.c
  88. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_dump.h
  89. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_func_info.c
  90. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_func_info.h
  91. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_func_infos.h
  92. 6 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_inference.c
  93. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_inference.h
  94. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_optimizer.c
  95. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_optimizer.h
  96. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_optimizer_internal.h
  97. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_ssa.c
  98. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_ssa.h
  99. 0 0
      EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_worklist.h
  100. 0 0
      EVSE/GPL/php-8.1.12/Zend/README.md

+ 6 - 6
EVSE/GPL/Makefile

@@ -133,12 +133,12 @@ libxml2:
 #	cp -f -r libxml2-2.7.6/release/* ../rootfs/
 
 php:
-	echo "php-8.1.10"
-	cd php-8.1.10/;./configure --host=arm-linux-gnueabihf --prefix=$(shell pwd)/php-8.1.10/release --disable-all --with-config-file-path=/etc --without-zlib --without-pear --enable-sockets --enable-fpm --with-curl CURL_CFLAGS=$(shell pwd)/curl-7.61.1/release/include CURL_LIBS=$(shell pwd)/curl-7.61.1/release/lib --with-openssl OPENSSL_CFLAGS=$(shell pwd)/openssl-1.1.1n/release/include OPENSSL_LIBS=$(shell pwd)/openssl-1.1.1n/release/lib --with-sqlite3 SQLITE_CFLAGS=$(shell pwd)/sqlite-amalgamation-3280000 SQLITE_LIBS=$(shell pwd)/sqlite-amalgamation-3280000;cd ../
-	make -C php-8.1.10 CC=$(CROSS_COMPILE)gcc clean
-	make -C php-8.1.10 CC=$(CROSS_COMPILE)gcc 
-	make -C php-8.1.10 CC=$(CROSS_COMPILE)gcc install
-#	cp -f -r php-8.1.10/release/* ../rootfs/
+	echo "php-8.1.12"
+	cd php-8.1.12/;./configure --host=arm-linux-gnueabihf --prefix=$(shell pwd)/php-8.1.12/release --disable-all --with-config-file-path=/etc --without-zlib --without-pear --enable-sockets --enable-fpm --with-openssl --with-curl --with-sqlite3 CURL_CFLAGS="-I$(shell pwd)/curl-7.61.1/release/include" CURL_LIBS="-L$(shell pwd)/curl-7.61.1/release/lib -lcurl" OPENSSL_CFLAGS="-I$(shell pwd)/openssl-1.1.1n/release/include" OPENSSL_LIBS="-L$(shell pwd)/openssl-1.1.1n/release/lib -lssl -lcrypto" SQLITE_CFLAGS="-I$(shell pwd)/sqlite-amalgamation-3280000" SQLITE_LIBS="-L$(shell pwd)/sqlite-amalgamation-3280000 -lsqlite3";cd ../
+	make -C php-8.1.12 CC=$(CROSS_COMPILE)gcc clean
+	make -C php-8.1.12 CC=$(CROSS_COMPILE)gcc 
+	make -C php-8.1.12 CC=$(CROSS_COMPILE)gcc install
+#	cp -f -r php-8.1.12/release/* ../rootfs/
 
 pcre:
 	echo "pcre-8.43"

+ 0 - 186
EVSE/GPL/php-8.1.10/.github/workflows/nightly.yml

@@ -1,186 +0,0 @@
-name: Nightly
-on:
-  schedule:
-   - cron: "0 1 * * *"
-  workflow_dispatch: ~
-jobs:
-  GENERATE_MATRIX:
-    name: Generate Matrix
-    if: github.repository_owner == 'php' || github.event_name == 'workflow_dispatch'
-    runs-on: ubuntu-latest
-    outputs:
-      branches: ${{ steps.set-matrix.outputs.branches }}
-      asan-matrix: ${{ steps.set-matrix.outputs.asan-matrix }}
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          # Set fetch-depth to 0 to clone the full repository
-          # including all branches. This is required to find
-          # the correct commit hashes.
-          fetch-depth: 0
-      - name: Grab the commit mapping
-        uses: actions/cache@v3
-        with:
-          path: branch-commit-cache.json
-          # The cache key needs to change every time for the
-          # cache to be updated after this job finishes.
-          key: nightly-${{ github.run_id }}-${{ github.run_attempt }}
-          restore-keys: |
-            nightly-
-      - name: Generate Matrix
-        id: set-matrix
-        run: php .github/nightly_matrix.php "${{ github.event_name }}" "${{ github.run_attempt }}"
-  LINUX_X64:
-    needs: GENERATE_MATRIX
-    if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}
-    strategy:
-      fail-fast: false
-      matrix:
-        branch: ${{ fromJson(needs.GENERATE_MATRIX.outputs.branches) }}
-        debug: [true, false]
-        zts: [true, false]
-        include: ${{ fromJson(needs.GENERATE_MATRIX.outputs.asan-matrix) }}
-    name: "${{ matrix.branch.name }}_LINUX_X64${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
-    runs-on: ubuntu-20.04
-    steps:
-      - name: git checkout
-        uses: actions/checkout@v2
-        with:
-          ref: ${{ matrix.branch.ref }}
-      - name: Create mssql container
-        uses: ./.github/actions/mssql
-      - name: apt
-        uses: ./.github/actions/apt-x64
-      - name: ./configure
-        uses: ./.github/actions/configure-x64
-        with:
-          configurationParameters: >-
-            ${{ matrix.configuration_parameters }}
-            --${{ matrix.debug && 'enable' || 'disable' }}-debug
-            --${{ matrix.zts && 'enable' || 'disable' }}-zts
-      - name: make
-        run: make -j$(/usr/bin/nproc) >/dev/null
-      - name: make install
-        uses: ./.github/actions/install-linux
-      - name: Setup
-        uses: ./.github/actions/setup-x64
-      - name: Test
-        uses: ./.github/actions/test-linux
-        with:
-          runTestsParameters: >-
-            ${{ matrix.run_tests_parameters }}
-      - name: Test Tracing JIT
-        uses: ./.github/actions/test-linux
-        with:
-          runTestsParameters: >-
-            ${{ matrix.run_tests_parameters }}
-            -d zend_extension=opcache.so
-            -d opcache.enable_cli=1
-            -d opcache.jit_buffer_size=16M
-      - name: Test OpCache
-        uses: ./.github/actions/test-linux
-        with:
-          runTestsParameters: >-
-            ${{ matrix.run_tests_parameters }}
-            -d zend_extension=opcache.so
-            -d opcache.enable_cli=1
-      - name: Test Function JIT
-        uses: ./.github/actions/test-linux
-        with:
-          runTestsParameters: >-
-            ${{ matrix.run_tests_parameters }}
-            -d zend_extension=opcache.so
-            -d opcache.enable_cli=1
-            -d opcache.jit_buffer_size=16M
-            -d opcache.jit=1205
-      - name: Verify generated files are up to date
-        uses: ./.github/actions/verify-generated-files
-  MACOS:
-    needs: GENERATE_MATRIX
-    if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}
-    strategy:
-      fail-fast: false
-      matrix:
-        branch: ${{ fromJson(needs.GENERATE_MATRIX.outputs.branches) }}
-        debug: [true, false]
-        zts: [true, false]
-    name: "${{ matrix.branch.name }}_MACOS_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
-    runs-on: macos-11
-    steps:
-      - name: git checkout
-        uses: actions/checkout@v2
-        with:
-          ref: ${{ matrix.branch.ref }}
-      - name: brew
-        uses: ./.github/actions/brew
-      - name: ./configure
-        uses: ./.github/actions/configure-macos
-        with:
-          configurationParameters: >-
-            --${{ matrix.debug && 'enable' || 'disable' }}-debug
-            --${{ matrix.zts && 'enable' || 'disable' }}-zts
-      - name: make
-        run: |-
-          export PATH="/usr/local/opt/bison/bin:$PATH"
-          make -j$(sysctl -n hw.logicalcpu) >/dev/null
-      - name: make install
-        run: sudo make install
-      - name: Test
-        uses: ./.github/actions/test-macos
-      - name: Test Tracing JIT
-        uses: ./.github/actions/test-macos
-        with:
-          runTestsParameters: >-
-            -d zend_extension=opcache.so
-            -d opcache.enable_cli=1
-            -d opcache.protect_memory=1
-            -d opcache.jit_buffer_size=16M
-      - name: Test OpCache
-        uses: ./.github/actions/test-macos
-        with:
-          runTestsParameters: >-
-            -d zend_extension=opcache.so
-            -d opcache.enable_cli=1
-            -d opcache.protect_memory=1
-      - name: Test Function JIT
-        uses: ./.github/actions/test-macos
-        with:
-          runTestsParameters: >-
-            -d zend_extension=opcache.so
-            -d opcache.enable_cli=1
-            -d opcache.protect_memory=1
-            -d opcache.jit_buffer_size=16M
-            -d opcache.jit=1205
-      - name: Verify generated files are up to date
-        uses: ./.github/actions/verify-generated-files
-  COVERAGE_DEBUG_NTS:
-    runs-on: ubuntu-20.04
-    steps:
-      - name: git checkout
-        uses: actions/checkout@v2
-      - name: Create mssql container
-        uses: ./.github/actions/mssql
-      - name: apt
-        uses: ./.github/actions/apt-x64
-      - name: Install gcovr
-        run: sudo -H pip install gcovr
-      - name: ./configure
-        uses: ./.github/actions/configure-x64
-        with:
-          configurationParameters: --enable-debug --disable-zts --enable-gcov
-      - name: make
-        run: make -j$(/usr/bin/nproc) >/dev/null
-      - name: make install
-        uses: ./.github/actions/install-linux
-      - name: Setup
-        uses: ./.github/actions/setup-x64
-      # We only test with OpCache, the difference in coverage is negligible
-      - name: Test OpCache
-        uses: ./.github/actions/test-linux
-        with:
-          runTestsParameters: >-
-            -d zend_extension=opcache.so
-            -d opcache.enable_cli=1
-      - name: Upload Test Coverage to Codecov.io
-        if: always()
-        run: bash <(curl -s https://codecov.io/bash)

+ 0 - 79
EVSE/GPL/php-8.1.10/azure-pipelines.yml

@@ -1,79 +0,0 @@
-trigger:
-  batch: true
-  branches:
-    include:
-      - PHP-7.4
-      - PHP-8.0
-      - PHP-8.1
-      - master
-  paths:
-    exclude:
-      - docs/*
-      - NEWS
-      - UPGRADING
-      - UPGRADING.INTERNALS
-      - README.md
-      - CONTRIBUTING.md
-      - CODING_STANDARDS.md
-
-schedules:
-  - cron: "0 1 * * *"
-    displayName: Nightly build
-    branches:
-      include:
-        - PHP-7.4
-        - PHP-8.0
-        - PHP-8.1
-        - master
-
-jobs:
-  - template: azure/i386/job.yml
-    parameters:
-      configurationName: I386_DEBUG_ZTS
-      configurationParameters: '--enable-debug --enable-zts'
-  - ${{ if eq(variables['Build.Reason'], 'Schedule') }}:
-    - template: azure/i386/job.yml
-      parameters:
-        configurationName: I386_DEBUG_NTS
-        configurationParameters: '--enable-debug --disable-zts'
-    - template: azure/i386/job.yml
-      parameters:
-        configurationName: I386_RELEASE_NTS
-        configurationParameters: '--disable-debug --disable-zts'
-    - template: azure/i386/job.yml
-      parameters:
-        configurationName: I386_RELEASE_ZTS
-        configurationParameters: '--disable-debug --enable-zts'
-    - template: azure/msan_job.yml
-      parameters:
-        configurationName: DEBUG_ZTS_MSAN
-        configurationParameters: '--enable-debug --enable-zts'
-        runTestsParameters: --msan
-        timeoutInMinutes: 90
-    - template: azure/community_job.yml
-      parameters:
-        configurationName: COMMUNITY
-        configurationParameters: >-
-            --enable-debug --enable-zts --enable-address-sanitizer --enable-undefined-sanitizer
-            CFLAGS='-fno-sanitize-recover'
-        timeoutInMinutes: 90
-    - template: azure/opcache_variation_job.yml
-      parameters:
-        configurationName: DEBUG_NTS_OPCACHE
-        configurationParameters: '--enable-debug --disable-zts'
-        timeoutInMinutes: 120
-    - template: azure/job.yml
-      parameters:
-        configurationName: DEBUG_NTS_REPEAT
-        configurationParameters: '--enable-debug --disable-zts'
-        runTestsParameters: '--repeat 2'
-    - template: azure/libmysqlclient_job.yml
-      parameters:
-        configurationName: LIBMYSQLCLIENT_DEBUG_NTS
-        configurationParameters: '--enable-debug --disable-zts'
-    - template: azure/job.yml
-      parameters:
-        configurationName: VARIATION_DEBUG_ZTS
-        configurationParameters: >-
-            --enable-debug --enable-zts
-            CFLAGS="-DZEND_RC_DEBUG=1 -DPROFITABILITY_CHECKS=0 -DZEND_VERIFY_FUNC_INFO=1"

+ 0 - 64
EVSE/GPL/php-8.1.10/azure/apt.yml

@@ -1,64 +0,0 @@
-parameters:
-  packages: ''
-
-steps:
-  - script: |
-      sudo apt-get update -y | true
-      sudo apt install bison \
-                       re2c \
-                       locales \
-                       ldap-utils \
-                       openssl \
-                       slapd \
-                       language-pack-de \
-                       re2c \
-                       libgmp-dev \
-                       libicu-dev \
-                       libtidy-dev \
-                       libenchant-dev \
-                       libaspell-dev \
-                       libpspell-dev \
-                       libsasl2-dev \
-                       libxpm-dev \
-                       libzip-dev \
-                       libsqlite3-dev \
-                       libwebp-dev \
-                       libonig-dev \
-                       libkrb5-dev \
-                       libgssapi-krb5-2 \
-                       libcurl4-openssl-dev \
-                       libxml2-dev \
-                       libxslt1-dev \
-                       libpq-dev \
-                       libreadline-dev \
-                       libldap2-dev \
-                       libsodium-dev \
-                       libargon2-0-dev \
-                       libmm-dev \
-                       libsnmp-dev \
-                       postgresql \
-                       postgresql-contrib \
-                       snmpd \
-                       snmp-mibs-downloader \
-                       freetds-dev \
-                       unixodbc-dev \
-                       llvm \
-                       libc-client-dev \
-                       libkrb5-dev \
-                       dovecot-core \
-                       dovecot-pop3d \
-                       dovecot-imapd \
-                       sendmail \
-                       firebird-dev \
-                       ${{ parameters.packages }}
-    displayName: 'APT'
-  - script: |
-      mkdir /opt/oracle
-      wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip
-      unzip instantclient-basiclite-linuxx64.zip
-      wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-sdk-linuxx64.zip
-      unzip instantclient-sdk-linuxx64.zip
-      mv instantclient_*_* /opt/oracle/instantclient
-      # Interferes with libldap2 headers.
-      rm /opt/oracle/instantclient/sdk/include/ldap.h
-    displayName: 'Install Oracle Instant Client'

+ 0 - 108
EVSE/GPL/php-8.1.10/azure/community_job.yml

@@ -1,108 +0,0 @@
-parameters:
-  configurationName: ''
-  configurationParameters: ''
-  timeoutInMinutes: 60
-
-# The purpose of the job is to test open-source community projects against an aggressive
-# debug build, that enables assertions, as well as the address and UB sanitizers. However,
-# we are only interested in finding assertion failures, segfaults and sanitizer violations,
-# and don't care about the actual test results, as there will commonly be failures for
-# pre-release versions of PHP.
-#
-# Because exit() in PHP results in an unclean shutdown, test runs are patching phpunit to
-# avoid the exit, which allows us to also check for memory leaks. Otherwise we use
-# USE_TRACKED_ALLOC=1 to avoid reporting of leaks that will be handled by ZMM.
-jobs:
-  - job: ${{ parameters.configurationName }}
-    timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
-    pool:
-      vmImage: 'ubuntu-20.04'
-    variables:
-      ubsan_options: 'print_stacktrace=1'
-    steps:
-    - template: apt.yml
-    - template: configure.yml
-      parameters:
-        configurationParameters: ${{ parameters.configurationParameters }}
-    - script: make -j$(/usr/bin/nproc) >/dev/null
-      displayName: 'Make Build'
-    - script: |
-        sudo make install
-        sudo mkdir     /etc/php.d
-        sudo chmod 777 /etc/php.d
-        echo mysqli.default_socket=/var/run/mysqld/mysqld.sock     > /etc/php.d/mysqli.ini
-        echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock  > /etc/php.d/pdo_mysql.ini
-        # Run with opcache to also catch optimizer bugs.
-        echo zend_extension=opcache.so > /etc/php.d/opcache.ini
-        echo opcache.enable_cli=1 >> /etc/php.d/opcache.ini
-        echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
-        echo opcache.jit_buffer_size=1G >> /etc/php.d/opcache.ini
-      displayName: 'Install Build'
-    - script: |
-        git clone https://github.com/laravel/framework.git --branch=master --depth=1
-        cd framework
-        git rev-parse HEAD
-        php8.0 /usr/bin/composer install --no-progress
-        # Hack to disable a test that hangs on azure
-        sed -i 's/PHP_OS/"Darwin"/' tests/Filesystem/FilesystemTest.php
-        export USE_ZEND_ALLOC=0
-        export ASAN_OPTIONS=exitcode=139
-        php vendor/bin/phpunit
-        if [ $? -gt 128 ]; then
-          exit 1
-        fi
-      displayName: 'Test Laravel'
-    - script: |
-        git clone https://github.com/symfony/symfony.git --depth=1
-        cd symfony
-        git rev-parse HEAD
-        php8.0 /usr/bin/composer install --no-progress
-        php8.0 ./phpunit install
-        export USE_ZEND_ALLOC=0
-        export USE_TRACKED_ALLOC=1
-        export ASAN_OPTIONS=exitcode=139
-        export SYMFONY_DEPRECATIONS_HELPER=max[total]=999
-        X=0
-        for component in $(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist -printf '%h\n'); do
-          php ./phpunit $component --exclude-group tty,benchmark,intl-data,transient;
-          if [ $? -gt 128 ]; then
-            X=1;
-          fi
-        done
-        exit $X
-      displayName: 'Test Symfony'
-      condition: or(succeeded(), failed())
-    - script: |
-        git clone https://github.com/amphp/amp.git --branch=master --depth=1
-        cd amp
-        git rev-parse HEAD
-        php /usr/bin/composer install --no-progress --ignore-platform-reqs
-        export USE_ZEND_ALLOC=0
-        sed -i 's/$exit = true/$exit = false/g' vendor/phpunit/phpunit/src/TextUI/Command.php
-        php vendor/bin/phpunit
-      displayName: 'Test Amphp'
-      condition: or(succeeded(), failed())
-    - script: |
-        git clone https://github.com/sebastianbergmann/phpunit.git --branch=master --depth=1
-        cd phpunit
-        git rev-parse HEAD
-        export USE_ZEND_ALLOC=0
-        export USE_TRACKED_ALLOC=1
-        export ASAN_OPTIONS=exitcode=139
-        php8.0 /usr/bin/composer install --no-progress
-        php ./phpunit
-        if [ $? -gt 128 ]; then
-          exit 1
-        fi
-      displayName: 'Test PHPUnit'
-      condition: or(succeeded(), failed())
-    - script: |
-        php8.0 /usr/bin/composer create-project symfony/symfony-demo symfony_demo --no-progress
-        cd symfony_demo
-        git rev-parse HEAD
-        export USE_ZEND_ALLOC=0
-        export USE_TRACKED_ALLOC=1
-        sed -i 's/PHP_SAPI/"cli-server"/g' var/cache/dev/App_KernelDevDebugContainer.preload.php
-        php -d opcache.preload=var/cache/dev/App_KernelDevDebugContainer.preload.php public/index.php
-      displayName: 'Symfony Preloading'
-      condition: or(succeeded(), failed())

+ 0 - 73
EVSE/GPL/php-8.1.10/azure/configure.yml

@@ -1,73 +0,0 @@
-parameters:
-  configurationParameters: ''
-
-steps:
-- script: |
-    ./buildconf --force
-    ./configure ${{ parameters.configurationParameters }} \
-        --enable-option-checking=fatal \
-        --prefix=/usr \
-        --enable-phpdbg \
-        --enable-fpm \
-        --with-pdo-mysql=mysqlnd \
-        --with-mysqli=mysqlnd \
-        --with-pgsql \
-        --with-pdo-pgsql \
-        --with-pdo-sqlite \
-        --enable-intl \
-        --without-pear \
-        --enable-gd \
-        --with-jpeg \
-        --with-webp \
-        --with-freetype \
-        --with-xpm \
-        --enable-exif \
-        --with-zip \
-        --with-zlib \
-        --with-zlib-dir=/usr \
-        --enable-soap \
-        --enable-xmlreader \
-        --with-xsl \
-        --with-tidy \
-        --enable-sysvsem \
-        --enable-sysvshm \
-        --enable-shmop \
-        --enable-pcntl \
-        --with-readline \
-        --enable-mbstring \
-        --with-curl \
-        --with-gettext \
-        --enable-sockets \
-        --with-bz2 \
-        --with-openssl \
-        --with-gmp \
-        --enable-bcmath \
-        --enable-calendar \
-        --enable-ftp \
-        --with-pspell=/usr \
-        --with-enchant=/usr \
-        --with-kerberos \
-        --enable-sysvmsg \
-        --with-ffi \
-        --enable-zend-test \
-        --enable-dl-test=shared \
-        --with-ldap \
-        --with-ldap-sasl \
-        --with-password-argon2 \
-        --with-mhash \
-        --with-sodium \
-        --enable-dba \
-        --with-snmp \
-        --with-unixODBC \
-        --with-imap \
-        --with-kerberos \
-        --with-imap-ssl \
-        --with-pdo-odbc=unixODBC,/usr \
-        --with-pdo-firebird \
-        --with-pdo-dblib \
-        --with-pdo-oci=shared,instantclient,/opt/oracle/instantclient \
-        --with-oci8=shared,instantclient,/opt/oracle/instantclient \
-        --enable-werror \
-        --with-config-file-path=/etc \
-        --with-config-file-scan-dir=/etc/php.d
-  displayName: 'Configure Build'

+ 0 - 11
EVSE/GPL/php-8.1.10/azure/install.yml

@@ -1,11 +0,0 @@
-steps:
-  - script: |
-      set -e
-      sudo make install
-      sudo mkdir     /etc/php.d
-      sudo chmod 777 /etc/php.d
-      echo mysqli.default_socket=/var/run/mysqld/mysqld.sock    > /etc/php.d/mysqli.ini
-      echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/pdo_mysql.ini
-      echo opcache.enable_cli=1 >> /etc/php.d/opcache.ini
-      echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
-    displayName: 'Install Build'

+ 0 - 25
EVSE/GPL/php-8.1.10/azure/job.yml

@@ -1,25 +0,0 @@
-parameters:
-  configurationName: ''
-  configurationParameters: ''
-  runTestsParameters: ''
-  timeoutInMinutes: 75
-
-jobs:
-  - job: ${{ parameters.configurationName }}
-    timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
-    pool:
-      vmImage: 'ubuntu-20.04'
-    steps:
-    - template: mssql.yml
-    - template: apt.yml
-    - template: configure.yml
-      parameters:
-        configurationParameters: ${{ parameters.configurationParameters }}
-    - script: make -j$(/usr/bin/nproc) >/dev/null
-      displayName: 'Make Build'
-    - template: install.yml
-    - template: setup.yml
-    - template: tests.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }}
-        runTestsParameters: ${{ parameters.runTestsParameters }}

+ 0 - 37
EVSE/GPL/php-8.1.10/azure/libmysqlclient_job.yml

@@ -1,37 +0,0 @@
-parameters:
-  configurationName: ''
-  configurationParameters: ''
-  runTestsParameters: ''
-  timeoutInMinutes: 60
-
-jobs:
-  - job: ${{ parameters.configurationName }}
-    timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
-    pool:
-      vmImage: 'ubuntu-20.04'
-    steps:
-    - script: |
-        sudo apt-get update -y | true
-        sudo apt install bison re2c
-      displayName: 'APT'
-    - script: |
-        set -o
-        sudo service mysql start
-        mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test"
-        # Ensure local_infile tests can run.
-        mysql -uroot -proot -e "SET GLOBAL local_infile = true"
-      displayName: 'Setup MySQL server'
-    # Does not support caching_sha2_auth :(
-    #- template: libmysqlclient_test.yml
-    #  parameters:
-    #    configurationName: ${{ parameters.configurationName }} - MySQL 5.6.49
-    #    libmysql: mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz
-    - template: libmysqlclient_test.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }} - MySQL 5.7.38
-        libmysql: mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
-    - template: libmysqlclient_test.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }} - MySQL 8.0.27
-        libmysql: mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
-        configurationParameters: ${{ parameters.configurationParameters }} --enable-werror

+ 0 - 53
EVSE/GPL/php-8.1.10/azure/libmysqlclient_test.yml

@@ -1,53 +0,0 @@
-parameters:
-  configurationName: ''
-  configurationParameters: ''
-  libmysql: ''
-
-steps:
-  - script: |
-      set -e
-      LIBMYSQL=${{ parameters.libmysql }}
-      MYSQL_BASE=${LIBMYSQL%%-linux-*}
-      MYSQL_VERSION=${MYSQL_BASE#*-}
-      MYSQL_DIR=$HOME/$MYSQL_BASE
-      mkdir -p $MYSQL_DIR
-      URL=https://cdn.mysql.com/Downloads/MySQL-${MYSQL_VERSION%.*}/$LIBMYSQL
-      wget -nv $URL
-      tar -xf $LIBMYSQL --strip-components=1 -C $MYSQL_DIR
-      PDO_MYSQL=${MYSQL_DIR}
-      MYSQLI=${MYSQL_DIR}/bin/mysql_config
-      ./buildconf --force
-      ./configure ${{ parameters.configurationParameters }} \
-          --enable-option-checking=fatal \
-          --disable-all \
-          --enable-pdo \
-          --with-pdo-mysql=${PDO_MYSQL} \
-          --with-mysqli=${MYSQLI}
-      make clean
-      make -j$(/usr/bin/nproc) >/dev/null
-    displayName: 'Build ${{ parameters.configurationName }}'
-    condition: or(succeeded(), failed())
-  - script: |
-      export MYSQL_TEST_USER=root
-      export MYSQL_TEST_PASSWD=root
-      export PDO_MYSQL_TEST_DSN="mysql:host=127.0.0.1;dbname=test"
-      export PDO_MYSQL_TEST_HOST=127.0.0.1
-      export PDO_MYSQL_TEST_USER=root
-      export PDO_MYSQL_TEST_PASS=root
-      export TEST_PHP_JUNIT=junit.xml
-      export REPORT_EXIT_STATUS=no
-      rm -rf junit.xml | true
-      sapi/cli/php run-tests.php -P -q \
-          -g FAIL,XFAIL,BORK,WARN,LEAK,XLEAK,SKIP \
-          --offline --show-diff --show-slow 1000 --set-timeout 120 \
-          ext/pdo_mysql
-    displayName: 'Test ${{ parameters.configurationName }}'
-    condition: or(succeeded(), failed())
-  - task: PublishTestResults@2
-    inputs:
-      testResultsFormat: 'JUnit'
-      testResultsFiles: junit.xml
-      testRunTitle: '${{ parameters.configurationName }}'
-      failTaskOnFailedTests: true
-    displayName: 'Export ${{ parameters.configurationName }} Results'
-    condition: or(succeeded(), failed())

+ 0 - 81
EVSE/GPL/php-8.1.10/azure/msan_job.yml

@@ -1,81 +0,0 @@
-parameters:
-  configurationName: ''
-  configurationParameters: ''
-  runTestsParameters: ''
-  timeoutInMinutes: 60
-
-jobs:
-  - job: ${{ parameters.configurationName }}
-    timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
-    pool:
-      vmImage: 'ubuntu-20.04'
-    steps:
-    - template: apt.yml
-    - script: |
-        export CC=clang
-        export CXX=clang++
-        export CFLAGS="-DZEND_TRACK_ARENA_ALLOC"
-        ./buildconf --force
-        # msan requires all used libraries to be instrumented,
-        # so we should avoiding linking against anything but libc here
-        ./configure ${{ parameters.configurationParameters }} \
-            --enable-option-checking=fatal \
-            --prefix=/usr \
-            --without-sqlite3 \
-            --without-pdo-sqlite \
-            --without-libxml \
-            --disable-dom \
-            --disable-simplexml \
-            --disable-xml \
-            --disable-xmlreader \
-            --disable-xmlwriter \
-            --without-pcre-jit \
-            --disable-opcache-jit \
-            --enable-phpdbg \
-            --enable-fpm \
-            --with-pdo-mysql=mysqlnd \
-            --with-mysqli=mysqlnd \
-            --disable-mysqlnd-compression-support \
-            --without-pear \
-            --enable-exif \
-            --enable-sysvsem \
-            --enable-sysvshm \
-            --enable-shmop \
-            --enable-pcntl \
-            --enable-mbstring \
-            --disable-mbregex \
-            --enable-sockets \
-            --enable-bcmath \
-            --enable-calendar \
-            --enable-ftp \
-            --enable-zend-test \
-            --enable-dl-test=shared \
-            --enable-werror \
-            --enable-memory-sanitizer \
-            --with-config-file-path=/etc \
-            --with-config-file-scan-dir=/etc/php.d
-      displayName: 'Configure Build'
-    - script: make -j$(/usr/bin/nproc) >/dev/null
-      displayName: 'Make Build'
-    - script: |
-        sudo make install
-        sudo mkdir     /etc/php.d
-        sudo chmod 777 /etc/php.d
-        echo mysqli.default_socket=/var/run/mysqld/mysqld.sock     > /etc/php.d/mysqli.ini
-        echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock  > /etc/php.d/pdo_mysql.ini
-      displayName: 'Install Build'
-    - script: |
-        sudo service mysql start
-        mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test"
-      displayName: 'Setup'
-    - template: test.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }}
-        runTestsParameters: ${{ parameters.runTestsParameters }}
-    - template: test.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }}
-        runTestsName: 'OpCache'
-        runTestsParameters: >-
-          ${{ parameters.runTestsParameters }}
-          -d zend_extension=opcache.so -d opcache.enable_cli=1

+ 0 - 5
EVSE/GPL/php-8.1.10/azure/mssql.yml

@@ -1,5 +0,0 @@
-# this template should be included close to the beginning, before setup.yml
-# the container needs time to come up or the sqlcmd operation in setup.yml will have a login timeout
-steps:
-  - script: docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" -p 1433:1433 --name sql1 -h sql1 -d mcr.microsoft.com/mssql/server:2019-CU8-ubuntu-16.04
-    displayName: 'Start MSSQL container'

+ 0 - 88
EVSE/GPL/php-8.1.10/azure/opcache_variation_job.yml

@@ -1,88 +0,0 @@
-parameters:
-  configurationName: ''
-  configurationParameters: ''
-  runTestsParameters: ''
-  timeoutInMinutes: 60
-
-jobs:
-  - job: ${{ parameters.configurationName }}
-    timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
-    pool:
-      vmImage: 'ubuntu-20.04'
-    steps:
-    - template: mssql.yml
-    - template: apt.yml
-    - template: configure.yml
-      parameters:
-        configurationParameters: ${{ parameters.configurationParameters }}
-    - script: make -j$(/usr/bin/nproc) >/dev/null
-      displayName: 'Make Build'
-    - template: install.yml
-    - template: setup.yml
-    - template: test.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }}
-        runTestsName: 'File Cache (prime shm)'
-        runTestsParameters: >-
-          ${{ parameters.runTestsParameters }}
-          -d zend_extension=opcache.so
-          --file-cache-prime
-    - template: test.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }}
-        runTestsName: 'File Cache (prime shm, use shm)'
-        runTestsParameters: >-
-          ${{ parameters.runTestsParameters }}
-          -d zend_extension=opcache.so
-          --file-cache-use
-    - template: test.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }}
-        runTestsName: 'File Cache (prime shm, use file)'
-        runTestsParameters: >-
-          ${{ parameters.runTestsParameters }}
-          -d zend_extension=opcache.so
-          --file-cache-use
-          -d opcache.file_cache_only=1
-    - template: test.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }}
-        runTestsName: 'File Cache (prime file)'
-        runTestsParameters: >-
-          ${{ parameters.runTestsParameters }}
-          -d zend_extension=opcache.so
-          --file-cache-prime
-          -d opcache.file_cache_only=1
-    - template: test.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }}
-        runTestsName: 'File Cache (prime file, use file)'
-        runTestsParameters: >-
-          ${{ parameters.runTestsParameters }}
-          -d zend_extension=opcache.so
-          --file-cache-use
-          -d opcache.file_cache_only=1
-    - template: test.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }}
-        runTestsName: 'File Cache (prime file, use shm)'
-        runTestsParameters: >-
-          ${{ parameters.runTestsParameters }}
-          -d zend_extension=opcache.so
-          --file-cache-use
-    - template: test.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }}
-        runTestsName: 'Without interned strings'
-        runTestsParameters: >-
-          ${{ parameters.runTestsParameters }}
-          -d zend_extension=opcache.so
-          -d opcache.interned_strings_buffer=0
-    - template: test.yml
-      parameters:
-        configurationName: ${{ parameters.configurationName }}
-        runTestsName: 'Preload'
-        runTestsParameters: >-
-          ${{ parameters.runTestsParameters }}
-          -d zend_extension=opcache.so
-          --preload

+ 0 - 185
EVSE/GPL/php-8.1.10/azure/setup-slapd.sh

@@ -1,185 +0,0 @@
-#!/bin/sh
-set -ev
-
-# Create TLS certificate
-sudo mkdir -p /etc/ldap/ssl
-
-alt_names() {
-  (
-      (
-        (hostname && hostname -a && hostname -A && hostname -f) |
-        xargs -n 1 |
-        sort -u |
-        sed -e 's/\(\S\+\)/DNS:\1/g'
-      ) && (
-        (hostname -i && hostname -I && echo "127.0.0.1 ::1") |
-        xargs -n 1 |
-        sort -u |
-        sed -e 's/\(\S\+\)/IP:\1/g'
-      )
-  ) | paste -d, -s
-}
-
-sudo openssl req -newkey rsa:4096 -x509 -nodes -days 3650 \
-  -out /etc/ldap/ssl/server.crt -keyout /etc/ldap/ssl/server.key \
-  -subj "/C=US/ST=Arizona/L=Localhost/O=localhost/CN=localhost" \
-  -addext "subjectAltName = `alt_names`"
-
-sudo chown -R openldap:openldap /etc/ldap/ssl
-
-# Display the TLS certificate (should be world readable)
-openssl x509 -noout -text -in /etc/ldap/ssl/server.crt
-
-# Point to the certificate generated
-if ! grep -q 'TLS_CACERT \/etc\/ldap\/ssl\/server.crt' /etc/ldap/ldap.conf; then
-  sudo sed -e 's|^\s*TLS_CACERT|# TLS_CACERT|' -i /etc/ldap/ldap.conf
-  echo 'TLS_CACERT /etc/ldap/ssl/server.crt' | sudo tee -a /etc/ldap/ldap.conf
-fi
-
-# Configure LDAP protocols to serve.
-sudo sed -e 's|^\s*SLAPD_SERVICES\s*=.*$|SLAPD_SERVICES="ldap:/// ldaps:/// ldapi:///"|' -i /etc/default/slapd
-
-# Configure LDAP database.
-DBDN=`sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(&(olcRootDN=*)(olcSuffix=*))' dn | grep -i '^dn:' | sed -e 's/^dn:\s*//'`;
-
-sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ppolicy.ldif
-
-sudo service slapd restart
-
-sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// << EOF
-dn: $DBDN
-changetype: modify
-replace: olcSuffix
-olcSuffix: dc=my-domain,dc=com
--
-replace: olcRootDN
-olcRootDN: cn=Manager,dc=my-domain,dc=com
--
-replace: olcRootPW
-olcRootPW: secret
-
-dn: cn=config
-changetype: modify
-add: olcTLSCACertificateFile
-olcTLSCACertificateFile: /etc/ldap/ssl/server.crt
--
-add: olcTLSCertificateFile
-olcTLSCertificateFile: /etc/ldap/ssl/server.crt
--
-add: olcTLSCertificateKeyFile
-olcTLSCertificateKeyFile: /etc/ldap/ssl/server.key
--
-add: olcTLSVerifyClient
-olcTLSVerifyClient: never
--
-add: olcAuthzRegexp
-olcAuthzRegexp: uid=usera,cn=digest-md5,cn=auth cn=usera,dc=my-domain,dc=com
--
-replace: olcLogLevel
-olcLogLevel: -1
-
-dn: cn=module{0},cn=config
-changetype: modify
-add: olcModuleLoad
-olcModuleLoad: sssvlv
--
-add: olcModuleLoad
-olcModuleLoad: ppolicy
--
-add: olcModuleLoad
-olcModuleLoad: dds
-EOF
-
-sudo service slapd restart
-
-sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// << EOF
-dn: olcOverlay=sssvlv,$DBDN
-objectClass: olcOverlayConfig
-objectClass: olcSssVlvConfig
-olcOverlay: sssvlv
-olcSssVlvMax: 10
-olcSssVlvMaxKeys: 5
-
-dn: olcOverlay=ppolicy,$DBDN
-objectClass: olcOverlayConfig
-objectClass: olcPPolicyConfig
-olcOverlay: ppolicy
-### This would clutter our DIT and make tests to fail, while ppolicy does not
-### seem to work as we expect (it does not seem to provide expected controls)
-## olcPPolicyDefault: cn=default,ou=pwpolicies,dc=my-domain,dc=com
-## olcPPolicyHashCleartext: FALSE
-## olcPPolicyUseLockout: TRUE
-
-dn: olcOverlay=dds,$DBDN
-objectClass: olcOverlayConfig
-objectClass: olcDdsConfig
-olcOverlay: dds
-EOF
-
-sudo service slapd restart
-
-sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// << EOF
-dn: $DBDN
-changetype: modify
-add: olcDbIndex
-olcDbIndex: entryExpireTimestamp eq
-EOF
-
-sudo service slapd restart
-
-ldapadd -H ldapi:/// -D cn=Manager,dc=my-domain,dc=com -w secret <<EOF
-dn: dc=my-domain,dc=com
-objectClass: top
-objectClass: organization
-objectClass: dcObject
-dc: my-domain
-o: php ldap tests
-
-### This would clutter our DIT and make tests to fail, while ppolicy does not
-### seem to work as we expect (it does not seem to provide expected controls)
-## dn: ou=pwpolicies,dc=my-domain,dc=com
-## objectClass: top
-## objectClass: organizationalUnit
-## ou: pwpolicies
-##
-## dn: cn=default,ou=pwpolicies,dc=my-domain,dc=com
-## objectClass: top
-## objectClass: person
-## objectClass: pwdPolicy
-## cn: default
-## sn: default
-## pwdAttribute: userPassword
-## pwdMaxAge: 2592000
-## pwdExpireWarning: 3600
-## #pwdInHistory: 0
-## pwdCheckQuality: 0
-## pwdMaxFailure: 5
-## pwdLockout: TRUE
-## #pwdLockoutDuration: 0
-## #pwdGraceAuthNLimit: 0
-## #pwdFailureCountInterval: 0
-## pwdMustChange: FALSE
-## pwdMinLength: 3
-## pwdAllowUserChange: TRUE
-## pwdSafeModify: FALSE
-EOF
-
-# Verify TLS connection
-tries=0
-while : ; do
-	ldapsearch -d 255 -H ldaps://localhost -D cn=Manager,dc=my-domain,dc=com -w secret -s base -b dc=my-domain,dc=com 'objectclass=*'
-	rt=$?
-	if [ $rt -eq 0 ]; then
-		echo "OK"
-		exit 0
-	else
-		tries=$((tries+1))
-		if [ $((tries)) -gt 3 ]; then
-			echo "exit failure $rt"
-			exit $rt
-		else
-			echo "trying again"
-			sleep 3
-		fi
-	fi
-done

+ 0 - 31
EVSE/GPL/php-8.1.10/azure/setup.yml

@@ -1,31 +0,0 @@
-steps:
-  - script: |
-      set -e
-      sudo service mysql start
-      sudo service postgresql start
-      sudo service slapd start
-      mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test"
-      # Ensure local_infile tests can run.
-      mysql -uroot -proot -e "SET GLOBAL local_infile = true"
-      sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
-      sudo -u postgres psql -c "CREATE DATABASE test;"
-      docker exec sql1 /opt/mssql-tools/bin/sqlcmd -S 127.0.0.1 -U SA -P "<YourStrong@Passw0rd>" -Q "create login pdo_test with password='password', check_policy=off; create user pdo_test for login pdo_test; grant alter, control to pdo_test;"
-      sudo locale-gen de_DE
-    displayName: 'Setup'
-  - script: ./azure/setup-slapd.sh
-    displayName: 'Configure slapd'
-  - script: |
-      set -e
-      sudo cp ext/snmp/tests/snmpd.conf /etc/snmp
-      sudo cp ext/snmp/tests/bigtest /etc/snmp
-      sudo service snmpd restart
-    displayName: 'Configure snmpd'
-  - script: |
-      set -e
-      sudo groupadd -g 5000 vmail
-      sudo useradd -m -d /var/vmail -s /bin/false -u 5000 -g vmail vmail
-      sudo cp ext/imap/tests/setup/dovecot.conf /etc/dovecot/dovecot.conf
-      sudo cp ext/imap/tests/setup/dovecotpass /etc/dovecot/dovecotpass
-      sudo service dovecot restart
-    displayName: 'Configure IMAP'
-

+ 0 - 72
EVSE/GPL/php-8.1.10/ext/pdo_oci/tests/pdo_oci_stream_2b.phpt

@@ -1,72 +0,0 @@
---TEST--
-PDO OCI: Fetches 1K records from a table that contains 1 number and 2 LOB columns (stress test)
---EXTENSIONS--
-pdo
-pdo_oci
---SKIPIF--
-<?php
-if (getenv('SKIP_SLOW_TESTS')) die('skip slow tests excluded by request');
-require(__DIR__.'/../../pdo/tests/pdo_test.inc');
-PDOTest::skip();
-?>
---FILE--
-<?php
-
-// !! Note: uses data inserted in pdo_oci_stream_2a.phpt !!
-
-require('ext/pdo/tests/pdo_test.inc');
-$db = PDOTest::test_factory('ext/pdo_oci/tests/common.phpt');
-
-$db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);  // Let's use streams
-
-// Since each column only has one lob descriptor, the last row is
-// shown twice because the lob descriptor for each column is reused in
-// the stream
-
-$i = 0;
-$j = 9;
-$a_val = ord('a');
-foreach($db->query("select data1 as d4_1, data2 as d4_2 from pdo_oci_stream_2 order by id") as $row) {
-    $a = $row['d4_1'];
-    $a1 = $row['d4_2'];
-
-    $str1 = stream_get_contents($a);
-    $str2 = stream_get_contents($a1);
-
-    $str1len = strlen($str1);
-    $str2len = strlen($str2);
-
-    $b = ord($str1[0]);
-    $b1 = ord($str2[0]);
-
-    if (($b != ($a_val + $i)) && ($str1len != (4086 + $i)) &&
-        ($b1 != ($a_val + $j)) && ($str2len != (4086 + $j))) {
-        printf("There is a bug!\n");
-        printf("Col1:\n");
-        printf("a_val = %d\n", $a_val);
-        printf("b     = %d\n", $b);
-        printf("i     = %d\n", $i);
-        printf("str1len = %d\n", $str1len);
-
-        printf("Col2:\n");
-        printf("a_val = %d\n", $a_val);
-        printf("b1    = %d\n", $b1);
-        printf("j     = %d\n", $j);
-        printf("str2len = %d\n", $str1len);
-
-    }
-    $i++;
-    if ($i>9)
-        $i = 0;
-    $j--;
-    if ($j<0)
-        $j = 9;
-}
-echo "Fetch operation done!\n";
-
-/* Cleanup */
-$db->exec("drop table pdo_oci_stream_2");
-
-?>
---EXPECT--
-Fetch operation done!

+ 0 - 517
EVSE/GPL/php-8.1.10/sapi/fpm/tests/logtool.inc

@@ -1,517 +0,0 @@
-<?php
-
-namespace FPM;
-
-class LogTool
-{
-    const P_TIME = '\[\d\d-\w\w\w-\d{4} \d\d:\d\d:\d\d\]';
-    const P_PREFIX = '\[pool unconfined\] child \d+ said into stderr: ';
-    const P_PREFIX_STDOUT = '\[pool unconfined\] child \d+ said into stdout: ';
-    const FINAL_SUFFIX = ', pipe is closed';
-
-    const DEBUG = 'DEBUG';
-    const NOTICE = 'NOTICE';
-    const WARNING = 'WARNING';
-    const ERROR = 'ERROR';
-    const ALERT = 'ALERT';
-
-    /**
-     * @var string
-     */
-    private $message;
-
-    /**
-     * @var string
-     */
-    private $level;
-
-    /**
-     * @var int
-     */
-    private $position;
-
-    /**
-     * @var int
-     */
-    private $suffixPosition;
-
-    /**
-     * @var int
-     */
-    private $limit;
-
-    /**
-     * @var string
-     */
-    private $pattern;
-
-    /**
-     * @var string
-     */
-    private $error;
-
-    /**
-     * @var bool
-     */
-    private $pipeClosed = false;
-
-    /**
-     * @param string $message
-     * @param int $limit
-     * @param int $repeat
-     */
-    public function setExpectedMessage(string $message, int $limit, int $repeat = 0)
-    {
-        $this->message = ($repeat > 0) ? str_repeat($message, $repeat) : $message;
-        $this->limit = $limit;
-        $this->position = 0;
-    }
-
-    /**
-     * @param string $level
-     * @return int
-     */
-    public function setExpectedLevel(string $level)
-    {
-        return $this->level = $level;
-    }
-
-    /**
-     * @return string
-     */
-    public function getExpectedLevel(): string
-    {
-        return $this->level ?: 'WARNING';
-    }
-
-    /**
-     * @param bool $pipeClosed
-     */
-    public function setPipeClosed(bool $pipeClosed)
-    {
-        $this->pipeClosed = $pipeClosed;
-    }
-
-    /**
-     * @param string $line
-     * @return bool
-     */
-    public function checkTruncatedMessage(string $line)
-    {
-        if ($this->message === null) {
-            throw new \LogicException('The message has not been set');
-        }
-        $lineLen = strlen($line);
-        if (!$this->checkLineLength($line)) {
-            return false;
-        }
-        $this->pattern = '/^PHP message: (.*?)(\.\.\.)?$/';
-        if (preg_match($this->pattern, $line, $matches) === 0) {
-            return $this->error("Unexpected truncated message: {$line}");
-        }
-
-        if ($lineLen === $this->limit - strlen('NOTICE: ') - 1) {
-            if (!isset($matches[2])) {
-                return $this->error("The truncated line is not ended with '...'");
-            }
-            if (!$this->checkMessage($matches[1])) {
-                return false;
-            }
-        } else {
-            if (isset($matches[2])) {
-                // this is expecting that the expected message does not end with '...'
-                // which should not be an issue for the test purpose.
-                return $this->error("The line is complete and should not end with '...'");
-            }
-            if (!$this->checkMessage($matches[1], -1)) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * @param array $lines
-     * @param bool $terminated
-     * @param bool $decorated
-     * @return bool
-     */
-    public function checkWrappedMessage(array $lines, bool $terminated = true, bool $decorated = true, bool $is_stderr = true)
-    {
-        if ($this->message === null) {
-            throw new \LogicException('The message has not been set');
-        }
-        if ($decorated) {
-            $this->pattern = sprintf(
-                '/^(%s %s: %s)"([^"]*)"(.*)?$/',
-                self::P_TIME,
-                $this->getExpectedLevel(),
-                $is_stderr ? self::P_PREFIX : self::P_PREFIX_STDOUT
-            );
-        } else {
-            $this->pattern = null;
-        }
-
-        $idx = 0;
-        foreach ($lines as $idx => $line) {
-            if (!$this->checkLine($line)) {
-                break;
-            }
-        }
-
-        if ($this->suffixPosition > 0) {
-            $suffixPattern = sprintf(
-                '/^%s %s: %s(.*)$/',
-                self::P_TIME, $this->getExpectedLevel(),
-                $is_stderr ? self::P_PREFIX : self::P_PREFIX_STDOUT
-            );
-            $line = $lines[++$idx];
-            if (preg_match($suffixPattern, $line, $matches) === 0) {
-                return $this->error("Unexpected line: $line");
-            }
-            if ($matches[1] !== substr(self::FINAL_SUFFIX, $this->suffixPosition)) {
-                return $this->error(
-                    "The suffix has not been finished from position $this->suffixPosition in line: $line"
-                );
-            }
-        }
-
-        if ($terminated) {
-            return $this->expectTerminatorLines($lines, $idx);
-        }
-
-        return true;
-    }
-
-    /**
-     * @param string $line
-     * @return bool
-     */
-    private function checkLine(string $line)
-    {
-        if ($this->pattern === null) {
-            // plain (not decorated) output
-            $out = rtrim($line);
-            $finalSuffix = null;
-        } elseif (($res = preg_match($this->pattern, $line, $matches)) > 0) {
-            $out = $matches[2];
-            $finalSuffix = $matches[3] ?? false;
-        } else {
-            return $this->error("Unexpected line: $line");
-        }
-
-        $rem = strlen($this->message) - $this->position;
-        $lineLen = strlen($line);
-        if (!$this->checkLineLength($line, $lineLen)) {
-            return false;
-        }
-        if (!$this->checkMessage($out, $this->position)) {
-            return false;
-        }
-        $outLen = strlen($out);
-        if ($rem > $outLen) { // continuous line
-            if ($lineLen !== $this->limit) {
-                if ($lineLen + ($rem - $outLen) < $this->limit) {
-                    return $this->error("Printed less than the message len");
-                }
-                return $this->error(
-                    "The continuous line length is $lineLen but it should equal to limit $this->limit"
-                );
-            }
-            $this->position += $outLen;
-            return true;
-        }
-        if ($rem !== $outLen)  {
-            return $this->error("Printed more than the message len");
-        }
-        if (!$this->pipeClosed || $finalSuffix === null) {
-            return false;
-        }
-        if ($finalSuffix === false) {
-            return $this->error("No final suffix");
-        }
-        if (empty($finalSuffix) || strpos(self::FINAL_SUFFIX, $finalSuffix) === false) {
-            return $this->error("The final suffix has to be equal to ', pipe is closed'");
-        }
-        if (self::FINAL_SUFFIX !== $finalSuffix) {
-            $this->suffixPosition = strlen($finalSuffix);
-        }
-        // complete final suffix printed
-        return false;
-    }
-
-    /**
-     * @param string $line
-     * @param int $lineLen
-     * @return bool
-     */
-    private function checkLineLength(string $line, $lineLen = null) {
-        $lineLen = $lineLen ?: strlen($line);
-        if ($lineLen > $this->limit) {
-            return $this->error(
-                "The line length is $lineLen which is higher than limit $this->limit"
-            );
-        }
-
-        return true;
-    }
-
-    /**
-     * @param string $matchedMessage
-     * @param int $expectedMessageStart
-     * @return bool
-     */
-    private function checkMessage(string $matchedMessage, int $expectedMessageStart = 0)
-    {
-        if ($expectedMessageStart < 0) {
-            $expectedMessage = $this->message;
-        } else {
-            $expectedMessage = substr($this->message, $expectedMessageStart, strlen($matchedMessage));
-        }
-        if ($expectedMessage !== $matchedMessage) {
-            return $this->error(
-                sprintf(
-                    "The actual string(%d) does not match expected string(%d):\n",
-                    strlen($matchedMessage),
-                    strlen($expectedMessage)
-                ) .
-                "- EXPECT: '$expectedMessage'\n" .
-                "- ACTUAL: '$matchedMessage'"
-            );
-        }
-
-        return true;
-    }
-
-    /**
-     * @param array $lines
-     * @return bool
-     */
-    public function expectReloadingLines(array $lines)
-    {
-        if (
-            !$this->expectNotice($lines[0], 'Reloading in progress ...') ||
-            !$this->expectNotice($lines[1], 'reloading: .*')
-        ) {
-            return false;
-        }
-
-        for ($i = 2; $i < count($lines) - 2; $i++) {
-            if (!$this->expectNotice($lines[$i], 'using inherited socket fd=\d+, "[^"]+"')) {
-                return false;
-            }
-        }
-
-        return $this->expectStartingLines(array_splice($lines, $i));
-    }
-
-    /**
-     * @param array $lines
-     * @return bool
-     */
-    public function expectStartingLines(array $lines)
-    {
-        if ($this->getError()) {
-            return false;
-        }
-
-        if (count($lines) < 2) {
-            return $this->error("No starting lines");
-        }
-
-        return (
-            $this->expectNotice($lines[0], 'fpm is running, pid \d+') &&
-            $this->expectNotice($lines[1], 'ready to handle connections')
-        );
-    }
-
-    /**
-     * @param array $lines
-     * @param int $idx
-     * @return bool
-     */
-    public function expectTerminatorLines(array $lines, int $idx = -1)
-    {
-        if ($this->getError()) {
-            return false;
-        }
-
-        if (count($lines) - $idx < 3) {
-            return $this->error("No terminating lines");
-        }
-
-        return (
-            $this->expectNotice($lines[++$idx], 'Terminating ...') &&
-            $this->expectNotice($lines[++$idx], 'exiting, bye-bye!')
-        );
-    }
-
-    /**
-     * @param string $type
-     * @param string $line
-     * @param string $expectedMessage
-     * @param string|null $pool
-     * @return bool
-     */
-    public function expectEntry(string $type, string $line, string $expectedMessage, $pool = null)
-    {
-        if ($this->getError()) {
-            return false;
-        }
-        if ($pool !== null) {
-            $expectedMessage = '\[pool ' . $pool . '\] ' . $expectedMessage;
-        }
-
-        $line = rtrim($line);
-        $pattern = sprintf('/^(%s )?%s: %s$/', self::P_TIME, $type, $expectedMessage);
-
-        if (preg_match($pattern, $line, $matches) === 0) {
-            return $this->error(
-                "The $type does not match expected message:\n" .
-                "- PATTERN: $pattern\n" .
-                "- MESSAGE: $line\n" .
-                "- EXPECT: '$expectedMessage'\n" .
-                "- ACTUAL: '" . substr($line, strpos($line, $type) + strlen($type) + 2) . "'"
-            );
-        }
-
-        return true;
-    }
-
-    /**
-     * @param string $line
-     * @param string $expectedMessage
-     * @param string|null $pool
-     * @return bool
-     */
-    public function expectDebug(string $line, string $expectedMessage, $pool = null)
-    {
-        return $this->expectEntry(self::DEBUG, $line, $expectedMessage, $pool);
-    }
-
-    /**
-     * @param string $line
-     * @param string $expectedMessage
-     * @param string|null $pool
-     * @return bool
-     */
-    public function expectNotice(string $line, string $expectedMessage, $pool = null)
-    {
-        return $this->expectEntry(self::NOTICE, $line, $expectedMessage, $pool);
-    }
-
-    /**
-     * @param string $line
-     * @param string $expectedMessage
-     * @param string|null $pool
-     * @return bool
-     */
-    public function expectWarning(string $line, string $expectedMessage, $pool = null)
-    {
-        return $this->expectEntry(self::WARNING, $line, $expectedMessage, $pool);
-    }
-
-    /**
-     * @param string $line
-     * @param string $expectedMessage
-     * @param string|null $pool
-     * @return bool
-     */
-    public function expectError(string $line, string $expectedMessage, $pool = null)
-    {
-        return $this->expectEntry(self::ERROR, $line, $expectedMessage, $pool);
-    }
-
-    /**
-     * @param string $line
-     * @param string $expectedMessage
-     * @param string|null $pool
-     * @return bool
-     */
-    public function expectAlert(string $line, string $expectedMessage, $pool = null)
-    {
-        return $this->expectEntry(self::ALERT, $line, $expectedMessage, $pool);
-    }
-
-    /**
-     * @param string $msg
-     * @return bool
-     */
-    private function error(string $msg)
-    {
-        $this->error = $msg;
-        echo "ERROR: $msg\n";
-        return false;
-    }
-
-    /**
-     * @return string
-     */
-    public function getError()
-    {
-        return $this->error;
-    }
-}
-
-if (isset($argv[1]) && $argv[1] === 'logtool-selftest') {
-    $cases = [
-        [
-            'limit' => 1050,
-            'lines' => [
-                '[08-Oct-2017 19:53:50] WARNING: [pool unconfined] child 23183 said into stderr: "' .
-                    str_repeat('a', 968) . '"',
-                '[08-Oct-2017 19:53:50] WARNING: [pool unconfined] child 23183 said into stderr: "' .
-                    str_repeat('a', 968) . '"',
-                '[08-Oct-2017 19:53:50] WARNING: [pool unconfined] child 23183 said into stderr: "' .
-                    str_repeat('a', 112) . '", pipe is closed',
-                '[08-Oct-2017 19:53:55] NOTICE: Terminating ...',
-                '[08-Oct-2017 19:53:55] NOTICE: exiting, bye-bye!',
-            ],
-            'message' => str_repeat('a', 2048),
-            'type' => 'stdio',
-        ],
-        [
-            'limit' => 1050,
-            'lines' => [
-                '[08-Oct-2017 19:53:50] WARNING: [pool unconfined] child 23183 said into stderr: "' .
-                    str_repeat('a', 968) . '"',
-                '[08-Oct-2017 19:53:50] WARNING: [pool unconfined] child 23183 said into stderr: "' .
-                    str_repeat('a', 968) . '"',
-                '[08-Oct-2017 19:53:50] WARNING: [pool unconfined] child 23183 said into stderr: "' .
-                    str_repeat('a', 964) . '", pi',
-                '[08-Oct-2017 19:53:50] WARNING: [pool unconfined] child 23183 said into stderr: pe is closed',
-                '[08-Oct-2017 19:53:55] NOTICE: Terminating ...',
-                '[08-Oct-2017 19:53:55] NOTICE: exiting, bye-bye!',
-            ],
-            'message' => str_repeat('a', 2900),
-            'type' => 'stdio',
-        ],
-        [
-            'limit' => 1024,
-            'line' => '[08-Oct-2017 19:53:50] WARNING: ' . str_repeat('a',989) . '...',
-            'message' => str_repeat('a', 2900),
-            'type' => 'message',
-        ],
-        [
-            'limit' => 1024,
-            'line' => '[08-Oct-2017 19:53:50] WARNING: ' . str_repeat('a',20),
-            'message' => str_repeat('a', 20),
-            'type' => 'message',
-        ],
-    ];
-    foreach ($cases as $case) {
-        printf("Test message with len %d and limit %d: ", strlen($case['message']), $case['limit']);
-        $logTool = new LogTool();
-        $logTool->setExpectedMessage($case['message'], $case['limit']);
-        if ($case['type'] === 'stdio') {
-            $logTool->checkWrappedMessage($case['lines']);
-        } else {
-            $logTool->checkTruncatedMessage($case['line']);
-        }
-        if (!$logTool->getError()) {
-            echo "OK\n";
-        }
-    }
-    echo "Done\n";
-}

BIN
EVSE/GPL/php-8.1.10.tar.gz → EVSE/GPL/php-8.1.12.tar.gz


+ 5 - 10
EVSE/GPL/php-8.1.10/.appveyor.yml → EVSE/GPL/php-8.1.12/.appveyor.yml

@@ -2,12 +2,7 @@ version: "{branch}.build.{build}"
 
 image: Visual Studio 2019
 
-branches:
-        except:
-                - PHP-5.6
-                - PHP-7.0
-
-clone_depth: 64
+clone_depth: 1
 
 skip_commits:
   files:
@@ -41,7 +36,7 @@ environment:
                 - THREAD_SAFE: 1
                   OPCACHE: 1
                   PARALLEL: -j2
-                  INTRINSICS: AVX
+                  INTRINSICS: AVX2
 
 services:
         # the setup scripts have to be touched, once some other db version is used
@@ -51,10 +46,10 @@ services:
 
 platform:
         - x64
-          #        - x86
+        #- x86
 
 build_script:
-        - appveyor\build.bat
+        - .github\scripts\windows\build.bat
 
 test_script:
-        - appveyor\test.bat
+        - .github\scripts\windows\test.bat

+ 0 - 0
EVSE/GPL/php-8.1.10/.cirrus.yml → EVSE/GPL/php-8.1.12/.cirrus.yml


+ 0 - 0
EVSE/GPL/php-8.1.10/.editorconfig → EVSE/GPL/php-8.1.12/.editorconfig


+ 0 - 0
EVSE/GPL/php-8.1.10/.gdbinit → EVSE/GPL/php-8.1.12/.gdbinit


+ 0 - 0
EVSE/GPL/php-8.1.10/.gitattributes → EVSE/GPL/php-8.1.12/.gitattributes


+ 7 - 2
EVSE/GPL/php-8.1.10/.github/actions/apt-x64/action.yml → EVSE/GPL/php-8.1.12/.github/actions/apt-x64/action.yml

@@ -5,6 +5,7 @@ runs:
     - shell: bash
       run: |
         set -x
+
         sudo apt-get update
         sudo apt-get install \
           bison \
@@ -17,7 +18,7 @@ runs:
           libgmp-dev \
           libicu-dev \
           libtidy-dev \
-          libenchant-dev \
+          libenchant-2-dev \
           libaspell-dev \
           libpspell-dev \
           libsasl2-dev \
@@ -58,11 +59,15 @@ runs:
           libjpeg-dev \
           libpng-dev \
           libfreetype6-dev
+
         mkdir /opt/oracle
         wget -nv https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip
         unzip instantclient-basiclite-linuxx64.zip && rm instantclient-basiclite-linuxx64.zip
         wget -nv https://download.oracle.com/otn_software/linux/instantclient/instantclient-sdk-linuxx64.zip
         unzip instantclient-sdk-linuxx64.zip && rm instantclient-sdk-linuxx64.zip
         mv instantclient_*_* /opt/oracle/instantclient
-        # Interferes with libldap2 headers.
+        # interferes with libldap2 headers
         rm /opt/oracle/instantclient/sdk/include/ldap.h
+        # fix debug build warning: zend_signal: handler was replaced for signal (2) after startup
+        echo DISABLE_INTERRUPT=on > /opt/oracle/instantclient/network/admin/sqlnet.ora
+        sudo sh -c 'echo /opt/oracle/instantclient >/etc/ld.so.conf.d/oracle-instantclient.conf && ldconfig'

+ 0 - 0
EVSE/GPL/php-8.1.10/.github/actions/brew/action.yml → EVSE/GPL/php-8.1.12/.github/actions/brew/action.yml


+ 34 - 0
EVSE/GPL/php-8.1.12/.github/actions/build-libmysqlclient/action.yml

@@ -0,0 +1,34 @@
+name: Build libmysqlclient
+inputs:
+  configurationParameters:
+    default: ''
+    required: false
+  libmysql:
+    required: true
+  withMysqli:
+    required: true
+runs:
+  using: composite
+  steps:
+    - shell: bash
+      run: |
+        set -x
+        LIBMYSQL=${{ inputs.libmysql }}
+        MYSQL_BASE=${LIBMYSQL%%-linux-*}
+        MYSQL_VERSION=${MYSQL_BASE#*-}
+        MYSQL_DIR=$HOME/$MYSQL_BASE
+        mkdir -p $MYSQL_DIR
+        URL=https://cdn.mysql.com/Downloads/MySQL-${MYSQL_VERSION%.*}/$LIBMYSQL
+        wget -nv $URL
+        tar -xf $LIBMYSQL --strip-components=1 -C $MYSQL_DIR
+        PDO_MYSQL=${MYSQL_DIR}
+        ${{ inputs.withMysqli == 'true' && 'MYSQLI=${MYSQL_DIR}/bin/mysql_config' || '' }}
+        ./buildconf --force
+        ./configure ${{ inputs.configurationParameters }} \
+          --enable-option-checking=fatal \
+          --disable-all \
+          --enable-pdo \
+          --with-pdo-mysql=${PDO_MYSQL} \
+          ${{ inputs.withMysqli == 'true' && '--with-mysqli=${MYSQLI}' || '' }}
+        make clean
+        make -j$(/usr/bin/nproc) >/dev/null

+ 0 - 0
EVSE/GPL/php-8.1.10/.github/actions/configure-macos/action.yml → EVSE/GPL/php-8.1.12/.github/actions/configure-macos/action.yml


+ 0 - 1
EVSE/GPL/php-8.1.10/.github/actions/configure-x64/action.yml → EVSE/GPL/php-8.1.12/.github/actions/configure-x64/action.yml

@@ -72,7 +72,6 @@ runs:
           --with-snmp \
           --with-unixODBC \
           --with-imap \
-          --with-kerberos \
           --with-imap-ssl \
           --with-pdo-odbc=unixODBC,/usr \
           --with-pdo-oci=shared,instantclient,/opt/oracle/instantclient \

+ 2 - 0
EVSE/GPL/php-8.1.10/.github/actions/install-linux/action.yml → EVSE/GPL/php-8.1.12/.github/actions/install-linux/action.yml

@@ -10,3 +10,5 @@ runs:
         sudo chmod 777 /etc/php.d
         echo mysqli.default_socket=/var/run/mysqld/mysqld.sock    > /etc/php.d/mysqli.ini
         echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/pdo_mysql.ini
+        echo extension=oci8.so    > /etc/php.d/oci8.ini
+        echo extension=pdo_oci.so > /etc/php.d/pdo_oci.ini

+ 1 - 1
EVSE/GPL/php-8.1.10/.github/actions/mssql/action.yml → EVSE/GPL/php-8.1.12/.github/actions/setup-mssql/action.yml

@@ -1,4 +1,4 @@
-name: Create mssql container
+name: Create MSSQL container
 runs:
   using: composite
   steps:

+ 13 - 0
EVSE/GPL/php-8.1.12/.github/actions/setup-oracle/action.yml

@@ -0,0 +1,13 @@
+name: Create Oracle container
+runs:
+  using: composite
+  steps:
+    - shell: bash
+      run: |
+        set -x
+        docker run \
+          -e "ORACLE_PASSWORD=pass" \
+          -p 1521:1521 \
+          --name oracle \
+          -h oracle \
+          -d gvenzl/oracle-xe:slim

+ 1 - 1
EVSE/GPL/php-8.1.10/.github/actions/setup-x64/action.yml → EVSE/GPL/php-8.1.12/.github/actions/setup-x64/action.yml

@@ -17,7 +17,7 @@ runs:
         docker exec sql1 /opt/mssql-tools/bin/sqlcmd -S 127.0.0.1 -U SA -P "<YourStrong@Passw0rd>" -Q "create login pdo_test with password='password', check_policy=off; create user pdo_test for login pdo_test; grant alter, control to pdo_test;"
         sudo locale-gen de_DE
 
-        ./.github/scripts/setup-slapd.sh
+        ./.github/scripts/setup-slapd.sh &>/dev/null
 
         sudo cp ext/snmp/tests/snmpd.conf /etc/snmp
         sudo cp ext/snmp/tests/bigtest /etc/snmp

+ 21 - 0
EVSE/GPL/php-8.1.12/.github/actions/test-libmysqlclient/action.yml

@@ -0,0 +1,21 @@
+name: Test libmysqlclient
+inputs:
+  withMysqli:
+    required: true
+runs:
+  using: composite
+  steps:
+    - shell: bash
+      run: |
+        set -x
+        ${{ inputs.withMysqli == 'true' && 'export MYSQL_TEST_USER=root' || '' }}
+        ${{ inputs.withMysqli == 'true' && 'export MYSQL_TEST_PASSWD=root' || '' }}
+        export PDO_MYSQL_TEST_DSN="mysql:host=127.0.0.1;dbname=test"
+        export PDO_MYSQL_TEST_HOST=127.0.0.1
+        export PDO_MYSQL_TEST_USER=root
+        export PDO_MYSQL_TEST_PASS=root
+        export REPORT_EXIT_STATUS=no
+        sapi/cli/php run-tests.php -P -q \
+          -g FAIL,XFAIL,BORK,WARN,LEAK,XLEAK,SKIP \
+          --offline --show-diff --show-slow 1000 --set-timeout 120 \
+          ext/pdo_mysql

+ 6 - 0
EVSE/GPL/php-8.1.10/.github/actions/test-linux/action.yml → EVSE/GPL/php-8.1.12/.github/actions/test-linux/action.yml

@@ -17,6 +17,12 @@ runs:
         export PDO_DBLIB_TEST_DSN="dblib:host=127.0.0.1;dbname=master;version=7.0"
         export PDO_DBLIB_TEST_USER="pdo_test"
         export PDO_DBLIB_TEST_PASS="password"
+        export PHP_OCI8_TEST_USER="system"
+        export PHP_OCI8_TEST_PASS="pass"
+        export PHP_OCI8_TEST_DB="localhost/XEPDB1"
+        export PDO_OCI_TEST_USER="system"
+        export PDO_OCI_TEST_PASS="pass"
+        export PDO_OCI_TEST_DSN="oci:dbname=localhost/XEPDB1;charset=AL32UTF8"
         export SKIP_IO_CAPTURE_TESTS=1
         sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \
           -j$(/usr/bin/nproc) \

+ 0 - 0
EVSE/GPL/php-8.1.10/.github/actions/test-macos/action.yml → EVSE/GPL/php-8.1.12/.github/actions/test-macos/action.yml


+ 0 - 0
EVSE/GPL/php-8.1.10/.github/actions/verify-generated-files/action.yml → EVSE/GPL/php-8.1.12/.github/actions/verify-generated-files/action.yml


+ 22 - 3
EVSE/GPL/php-8.1.10/.github/nightly_matrix.php → EVSE/GPL/php-8.1.12/.github/nightly_matrix.php

@@ -42,7 +42,7 @@ function get_branches() {
     return get_branch_matrix($changed_branches);
 }
 
-function get_asan_matrix(array $branches) {
+function get_matrix_include(array $branches) {
     $jobs = [];
     foreach ($branches as $branch) {
         $jobs[] = [
@@ -52,7 +52,26 @@ function get_asan_matrix(array $branches) {
             'zts' => true,
             'configuration_parameters' => "CFLAGS='-fsanitize=undefined,address -DZEND_TRACK_ARENA_ALLOC' LDFLAGS='-fsanitize=undefined,address'",
             'run_tests_parameters' => '--asan',
+            'timeout_minutes' => 480,
         ];
+        if ($branch['ref'] !== 'PHP-8.0') {
+            $jobs[] = [
+                'name' => '_REPEAT',
+                'branch' => $branch,
+                'debug' => true,
+                'zts' => false,
+                'run_tests_parameters' => '--repeat 2',
+                'timeout_minutes' => 360,
+            ];
+            $jobs[] = [
+                'name' => '_VARIATION',
+                'branch' => $branch,
+                'debug' => true,
+                'zts' => true,
+                'configuration_parameters' => "CFLAGS='-DZEND_RC_DEBUG=1 -DPROFITABILITY_CHECKS=0 -DZEND_VERIFY_FUNC_INFO=1'",
+                'timeout_minutes' => 360,
+            ];
+        }
     }
     return $jobs;
 }
@@ -65,7 +84,7 @@ if ($discard_cache) {
 }
 
 $branches = get_branches();
-$asan_matrix = get_asan_matrix($branches);
+$matrix_include = get_matrix_include($branches);
 
 echo '::set-output name=branches::' . json_encode($branches, JSON_UNESCAPED_SLASHES) . "\n";
-echo '::set-output name=asan-matrix::' . json_encode($asan_matrix, JSON_UNESCAPED_SLASHES) . "\n";
+echo '::set-output name=matrix-include::' . json_encode($matrix_include, JSON_UNESCAPED_SLASHES) . "\n";

+ 1 - 1
EVSE/GPL/php-8.1.10/.github/scripts/setup-slapd.sh → EVSE/GPL/php-8.1.12/.github/scripts/setup-slapd.sh

@@ -1,5 +1,5 @@
 #!/bin/sh
-set -ev
+set -ex
 
 # Create TLS certificate
 sudo mkdir -p /etc/ldap/ssl

+ 1 - 1
EVSE/GPL/php-8.1.10/appveyor/build.bat → EVSE/GPL/php-8.1.12/.github/scripts/windows/build.bat

@@ -38,7 +38,7 @@ if not exist "%SDK_RUNNER%" (
 	exit /b 3
 )
 
-cmd /c %SDK_RUNNER% -t %APPVEYOR_BUILD_FOLDER%\appveyor\build_task.bat
+cmd /c %SDK_RUNNER% -t %APPVEYOR_BUILD_FOLDER%\.github\scripts\windows\build_task.bat
 if %errorlevel% neq 0 exit /b 3
 
 exit /b 0

+ 0 - 0
EVSE/GPL/php-8.1.10/appveyor/build_task.bat → EVSE/GPL/php-8.1.12/.github/scripts/windows/build_task.bat


+ 1 - 1
EVSE/GPL/php-8.1.10/appveyor/test.bat → EVSE/GPL/php-8.1.12/.github/scripts/windows/test.bat

@@ -6,7 +6,7 @@ if not exist "%SDK_RUNNER%" (
 	exit /b 3
 )
 
-cmd /c %SDK_RUNNER% -t %APPVEYOR_BUILD_FOLDER%\appveyor\test_task.bat
+cmd /c %SDK_RUNNER% -t %APPVEYOR_BUILD_FOLDER%\.github\scripts\windows\test_task.bat
 if %errorlevel% neq 0 exit /b 3
 
 exit /b 0

+ 2 - 0
EVSE/GPL/php-8.1.10/appveyor/test_task.bat → EVSE/GPL/php-8.1.12/.github/scripts/windows/test_task.bat

@@ -64,6 +64,8 @@ rem set SSLEAY_CONF=
 
 rem prepare for OPcache
 if "%OPCACHE%" equ "1" set OPCACHE_OPTS=-d opcache.enable=1 -d opcache.enable_cli=1 -d opcache.protect_memory=1 -d opcache.jit_buffer_size=16M
+rem work-around for failing to dl(mysqli) with OPcache (https://github.com/php/php-src/issues/8508)
+if "%OPCACHE%" equ "1" set OPCACHE_OPTS=%OPCACHE_OPTS% -d extension=mysqli
 
 rem prepare for enchant
 mkdir C:\usr\local\lib\enchant-2

+ 513 - 0
EVSE/GPL/php-8.1.12/.github/workflows/nightly.yml

@@ -0,0 +1,513 @@
+name: Nightly
+on:
+  schedule:
+   - cron: "0 1 * * *"
+  workflow_dispatch: ~
+jobs:
+  GENERATE_MATRIX:
+    name: Generate Matrix
+    if: github.repository_owner == 'php' || github.event_name == 'workflow_dispatch'
+    runs-on: ubuntu-latest
+    outputs:
+      branches: ${{ steps.set-matrix.outputs.branches }}
+      matrix-include: ${{ steps.set-matrix.outputs.matrix-include }}
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          # Set fetch-depth to 0 to clone the full repository
+          # including all branches. This is required to find
+          # the correct commit hashes.
+          fetch-depth: 0
+      - name: Grab the commit mapping
+        uses: actions/cache@v3
+        with:
+          path: branch-commit-cache.json
+          # The cache key needs to change every time for the
+          # cache to be updated after this job finishes.
+          key: nightly-${{ github.run_id }}-${{ github.run_attempt }}
+          restore-keys: |
+            nightly-
+      - name: Generate Matrix
+        id: set-matrix
+        run: php .github/nightly_matrix.php "${{ github.event_name }}" "${{ github.run_attempt }}"
+  LINUX_X64:
+    needs: GENERATE_MATRIX
+    if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}
+    strategy:
+      fail-fast: false
+      matrix:
+        branch: ${{ fromJson(needs.GENERATE_MATRIX.outputs.branches) }}
+        configuration_parameters: ['']
+        debug: [true, false]
+        name: ['']
+        run_tests_parameters: ['']
+        timeout_minutes: [360]
+        zts: [true, false]
+        include: ${{ fromJson(needs.GENERATE_MATRIX.outputs.matrix-include) }}
+    name: "${{ matrix.branch.name }}_LINUX_X64${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
+    runs-on: ubuntu-20.04
+    timeout-minutes: ${{ matrix.timeout_minutes }}
+    steps:
+      - name: git checkout
+        uses: actions/checkout@v2
+        with:
+          ref: ${{ matrix.branch.ref }}
+      - name: Create MSSQL container
+        uses: ./.github/actions/setup-mssql
+      - name: Create Oracle container
+        uses: ./.github/actions/setup-oracle
+      - name: apt
+        uses: ./.github/actions/apt-x64
+      - name: ./configure
+        uses: ./.github/actions/configure-x64
+        with:
+          configurationParameters: >-
+            ${{ matrix.configuration_parameters }}
+            --${{ matrix.debug && 'enable' || 'disable' }}-debug
+            --${{ matrix.zts && 'enable' || 'disable' }}-zts
+      - name: make
+        run: make -j$(/usr/bin/nproc) >/dev/null
+      - name: make install
+        uses: ./.github/actions/install-linux
+      - name: Setup
+        uses: ./.github/actions/setup-x64
+      - name: Test
+        uses: ./.github/actions/test-linux
+        with:
+          runTestsParameters: >-
+            ${{ matrix.run_tests_parameters }}
+      - name: Test Tracing JIT
+        uses: ./.github/actions/test-linux
+        with:
+          runTestsParameters: >-
+            ${{ matrix.run_tests_parameters }}
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+            -d opcache.jit_buffer_size=16M
+      - name: Test OpCache
+        uses: ./.github/actions/test-linux
+        with:
+          runTestsParameters: >-
+            ${{ matrix.run_tests_parameters }}
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+      - name: Test Function JIT
+        uses: ./.github/actions/test-linux
+        with:
+          runTestsParameters: >-
+            ${{ matrix.run_tests_parameters }}
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+            -d opcache.jit_buffer_size=16M
+            -d opcache.jit=1205
+      - name: Verify generated files are up to date
+        uses: ./.github/actions/verify-generated-files
+  MACOS:
+    needs: GENERATE_MATRIX
+    if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}
+    strategy:
+      fail-fast: false
+      matrix:
+        branch: ${{ fromJson(needs.GENERATE_MATRIX.outputs.branches) }}
+        debug: [true, false]
+        zts: [true, false]
+    name: "${{ matrix.branch.name }}_MACOS_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
+    runs-on: macos-11
+    steps:
+      - name: git checkout
+        uses: actions/checkout@v2
+        with:
+          ref: ${{ matrix.branch.ref }}
+      - name: brew
+        uses: ./.github/actions/brew
+      - name: ./configure
+        uses: ./.github/actions/configure-macos
+        with:
+          configurationParameters: >-
+            --${{ matrix.debug && 'enable' || 'disable' }}-debug
+            --${{ matrix.zts && 'enable' || 'disable' }}-zts
+      - name: make
+        run: |-
+          export PATH="/usr/local/opt/bison/bin:$PATH"
+          make -j$(sysctl -n hw.logicalcpu) >/dev/null
+      - name: make install
+        run: sudo make install
+      - name: Test
+        uses: ./.github/actions/test-macos
+      - name: Test Tracing JIT
+        uses: ./.github/actions/test-macos
+        with:
+          runTestsParameters: >-
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+            -d opcache.protect_memory=1
+            -d opcache.jit_buffer_size=16M
+      - name: Test OpCache
+        uses: ./.github/actions/test-macos
+        with:
+          runTestsParameters: >-
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+            -d opcache.protect_memory=1
+      - name: Test Function JIT
+        uses: ./.github/actions/test-macos
+        with:
+          runTestsParameters: >-
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+            -d opcache.protect_memory=1
+            -d opcache.jit_buffer_size=16M
+            -d opcache.jit=1205
+      - name: Verify generated files are up to date
+        uses: ./.github/actions/verify-generated-files
+  COVERAGE_DEBUG_NTS:
+    if: github.repository_owner == 'php' || github.event_name == 'workflow_dispatch'
+    runs-on: ubuntu-20.04
+    steps:
+      - name: git checkout
+        uses: actions/checkout@v2
+      - name: Create MSSQL container
+        uses: ./.github/actions/setup-mssql
+      - name: Create Oracle container
+        uses: ./.github/actions/setup-oracle
+      - name: apt
+        uses: ./.github/actions/apt-x64
+      - name: Install gcovr
+        run: sudo -H pip install gcovr
+      - name: ./configure
+        uses: ./.github/actions/configure-x64
+        with:
+          configurationParameters: --enable-debug --disable-zts --enable-gcov
+      - name: make
+        run: make -j$(/usr/bin/nproc) >/dev/null
+      - name: make install
+        uses: ./.github/actions/install-linux
+      - name: Setup
+        uses: ./.github/actions/setup-x64
+      # We only test with OpCache, the difference in coverage is negligible
+      - name: Test OpCache
+        uses: ./.github/actions/test-linux
+        with:
+          runTestsParameters: >-
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+      - name: Upload Test Coverage to Codecov.io
+        if: always()
+        run: bash <(curl -s https://codecov.io/bash)
+  COMMUNITY:
+    needs: GENERATE_MATRIX
+    if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}
+    strategy:
+      fail-fast: false
+      matrix:
+        branch: ${{ fromJson(needs.GENERATE_MATRIX.outputs.branches) }}
+    name: "${{ matrix.branch.name }}_COMMUNITY"
+    runs-on: ubuntu-20.04
+    env:
+      UBSAN_OPTIONS: print_stacktrace=1
+      USE_ZEND_ALLOC: 0
+      USE_TRACKED_ALLOC: 1
+    steps:
+      - name: git checkout
+        uses: actions/checkout@v2
+        with:
+          ref: ${{ matrix.branch.ref }}
+      - name: apt
+        uses: ./.github/actions/apt-x64
+      - name: ./configure
+        uses: ./.github/actions/configure-x64
+        with:
+          configurationParameters: >-
+            --enable-debug
+            --enable-zts
+            CFLAGS='-fsanitize=undefined,address -fno-sanitize-recover -DZEND_TRACK_ARENA_ALLOC'
+            LDFLAGS='-fsanitize=undefined,address'
+      - name: make
+        run: make -j$(/usr/bin/nproc) >/dev/null
+      - name: make install
+        uses: ./.github/actions/install-linux
+      - name: Setup
+        run: |
+          sudo service mysql start
+          mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test"
+          mysql -uroot -proot -e "SET GLOBAL local_infile = true"
+      - name: Enable Opcache and JIT
+        run: |
+          echo zend_extension=opcache.so > /etc/php.d/opcache.ini
+          echo opcache.enable_cli=1 >> /etc/php.d/opcache.ini
+          echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
+          echo opcache.jit_buffer_size=1G >> /etc/php.d/opcache.ini
+      - name: Test Laravel
+        if: matrix.branch.ref != 'PHP-8.0'
+        run: |
+          git clone https://github.com/laravel/framework.git --branch=master --depth=1
+          cd framework
+          git rev-parse HEAD
+          php /usr/bin/composer install --no-progress --ignore-platform-reqs
+          # Hack to disable a test that hangs
+          php -r '$c = file_get_contents("tests/Filesystem/FilesystemTest.php"); $c = str_replace("*/\n    public function testSharedGet()", "* @group skip\n     */\n    public function testSharedGet()", $c); file_put_contents("tests/Filesystem/FilesystemTest.php", $c);'
+          export ASAN_OPTIONS=exitcode=139
+          php vendor/bin/phpunit --exclude-group skip || EXIT_CODE=$?
+          if [ $EXIT_CODE -gt 128 ]; then
+            exit 1
+          fi
+      - name: Test Symfony
+        if: matrix.branch.ref != 'PHP-8.0'
+        run: |
+          git clone https://github.com/symfony/symfony.git --depth=1
+          cd symfony
+          git rev-parse HEAD
+          php /usr/bin/composer install --no-progress --ignore-platform-reqs
+          php ./phpunit install
+          # Test causes a heap-buffer-overflow but I cannot reproduce it locally...
+          php -r '$c = file_get_contents("src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerCustomTest.php"); $c = str_replace("public function testSanitizeDeepNestedString()", "/** @group skip */\n    public function testSanitizeDeepNestedString()", $c); file_put_contents("src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerCustomTest.php", $c);'
+          # Buggy FFI test in Symfony, see https://github.com/symfony/symfony/issues/47668
+          php -r '$c = file_get_contents("src/Symfony/Component/VarDumper/Tests/Caster/FFICasterTest.php"); $c = str_replace("*/\n    public function testCastNonTrailingCharPointer()", "* @group skip\n     */\n    public function testCastNonTrailingCharPointer()", $c); file_put_contents("src/Symfony/Component/VarDumper/Tests/Caster/FFICasterTest.php", $c);'
+          export ASAN_OPTIONS=exitcode=139
+          export SYMFONY_DEPRECATIONS_HELPER=max[total]=999
+          X=0
+          for component in $(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist -printf '%h\n'); do
+            php ./phpunit $component --exclude-group tty,benchmark,intl-data,transient --exclude-group skip || EXIT_CODE=$?
+            if [ $EXIT_CODE -gt 128 ]; then
+              X=1;
+            fi
+          done
+          exit $X
+      - name: Test PHPUnit
+        if: always()
+        run: |
+          git clone https://github.com/sebastianbergmann/phpunit.git --branch=main --depth=1
+          cd phpunit
+          git rev-parse HEAD
+          export ASAN_OPTIONS=exitcode=139
+          php /usr/bin/composer install --no-progress --ignore-platform-reqs
+          php ./phpunit || EXIT_CODE=$?
+          if [ $EXIT_CODE -gt 128 ]; then
+            exit 1
+          fi
+      - name: 'Symfony Preloading'
+        if: matrix.branch.ref != 'PHP-8.0'
+        run: |
+          php /usr/bin/composer create-project symfony/symfony-demo symfony_demo --no-progress --ignore-platform-reqs
+          cd symfony_demo
+          git rev-parse HEAD
+          sed -i 's/PHP_SAPI/"cli-server"/g' var/cache/dev/App_KernelDevDebugContainer.preload.php
+          php -d opcache.preload=var/cache/dev/App_KernelDevDebugContainer.preload.php public/index.php
+  OPCACHE_VARIATION:
+    needs: GENERATE_MATRIX
+    if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}
+    strategy:
+      fail-fast: false
+      matrix:
+        branch: ${{ fromJson(needs.GENERATE_MATRIX.outputs.branches) }}
+    name: "${{ matrix.branch.name }}_OPCACHE_VARIATION"
+    runs-on: ubuntu-20.04
+    steps:
+      - name: git checkout
+        uses: actions/checkout@v2
+        with:
+          ref: ${{ matrix.branch.ref }}
+      - name: Create MSSQL container
+        uses: ./.github/actions/setup-mssql
+      - name: Create Oracle container
+        uses: ./.github/actions/setup-oracle
+      - name: apt
+        uses: ./.github/actions/apt-x64
+      - name: ./configure
+        uses: ./.github/actions/configure-x64
+        with:
+          configurationParameters: >-
+            --enable-debug --disable-zts
+      - name: make
+        run: make -j$(/usr/bin/nproc) >/dev/null
+      - name: make install
+        uses: ./.github/actions/install-linux
+      - name: Setup
+        uses: ./.github/actions/setup-x64
+      - name: Test File Cache (prime shm)
+        uses: ./.github/actions/test-linux
+        with:
+          runTestsParameters: >-
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+            --file-cache-prime
+      - name: Test File Cache (prime shm, use shm)
+        uses: ./.github/actions/test-linux
+        with:
+          runTestsParameters: >-
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+            --file-cache-use
+      - name: Test File Cache (prime shm, use file)
+        uses: ./.github/actions/test-linux
+        with:
+          runTestsParameters: >-
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+            --file-cache-use
+            -d opcache.file_cache_only=1
+      - name: Test File Cache Only (prime)
+        uses: ./.github/actions/test-linux
+        with:
+          runTestsParameters: >-
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+            --file-cache-prime
+            -d opcache.file_cache_only=1
+      - name: Test File Cache Only (use)
+        uses: ./.github/actions/test-linux
+        with:
+          runTestsParameters: >-
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+            --file-cache-use
+            -d opcache.file_cache_only=1
+      - name: Verify generated files are up to date
+        uses: ./.github/actions/verify-generated-files
+  MSAN:
+    needs: GENERATE_MATRIX
+    if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}
+    strategy:
+      fail-fast: false
+      matrix:
+        branch: ${{ fromJson(needs.GENERATE_MATRIX.outputs.branches) }}
+    name: "${{ matrix.branch.name }}_MSAN"
+    runs-on: ubuntu-22.04
+    steps:
+      - name: git checkout
+        uses: actions/checkout@v2
+        with:
+          ref: ${{ matrix.branch.ref }}
+      - name: apt
+        uses: ./.github/actions/apt-x64
+      - name: ./configure
+        run: |
+          export CC=clang
+          export CXX=clang++
+          export CFLAGS="-DZEND_TRACK_ARENA_ALLOC"
+          ./buildconf --force
+          # msan requires all used libraries to be instrumented,
+          # so we should avoiding linking against anything but libc here
+          ./configure \
+            --enable-debug \
+            --enable-zts \
+            --enable-option-checking=fatal \
+            --prefix=/usr \
+            --without-sqlite3 \
+            --without-pdo-sqlite \
+            --without-libxml \
+            --disable-dom \
+            --disable-simplexml \
+            --disable-xml \
+            --disable-xmlreader \
+            --disable-xmlwriter \
+            --without-pcre-jit \
+            --disable-opcache-jit \
+            --enable-phpdbg \
+            --enable-fpm \
+            --with-pdo-mysql=mysqlnd \
+            --with-mysqli=mysqlnd \
+            --disable-mysqlnd-compression-support \
+            --without-pear \
+            --enable-exif \
+            --enable-sysvsem \
+            --enable-sysvshm \
+            --enable-shmop \
+            --enable-pcntl \
+            --enable-mbstring \
+            --disable-mbregex \
+            --enable-sockets \
+            --enable-bcmath \
+            --enable-calendar \
+            --enable-ftp \
+            --enable-zend-test \
+            --enable-werror \
+            --enable-memory-sanitizer \
+            --with-config-file-path=/etc \
+            --with-config-file-scan-dir=/etc/php.d
+      - name: make
+        run: make -j$(/usr/bin/nproc) >/dev/null
+      - name: make install
+        run: |
+          sudo make install
+          sudo mkdir     /etc/php.d
+          sudo chmod 777 /etc/php.d
+          echo mysqli.default_socket=/var/run/mysqld/mysqld.sock    > /etc/php.d/mysqli.ini
+          echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/pdo_mysql.ini
+      - name: Setup
+        run: |
+          set -x
+          sudo service mysql start
+          mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test"
+          # Ensure local_infile tests can run.
+          mysql -uroot -proot -e "SET GLOBAL local_infile = true"
+          sudo locale-gen de_DE
+      - name: Test
+        uses: ./.github/actions/test-linux
+        with:
+          runTestsParameters: >-
+            --msan
+      - name: Test Opcache
+        uses: ./.github/actions/test-linux
+        with:
+          runTestsParameters: >-
+            --msan
+            -d zend_extension=opcache.so
+            -d opcache.enable_cli=1
+      - name: Verify generated files are up to date
+        uses: ./.github/actions/verify-generated-files
+  LIBMYSQLCLIENT:
+    needs: GENERATE_MATRIX
+    if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }}
+    strategy:
+      fail-fast: false
+      matrix:
+        branch: ${{ fromJson(needs.GENERATE_MATRIX.outputs.branches) }}
+        exclude:
+          - branch: { name: 'PHP-80', ref: 'PHP-8.0' }
+    name: "${{ matrix.branch.name }}_LIBMYSQLCLIENT"
+    runs-on: ubuntu-20.04
+    steps:
+      - name: git checkout
+        uses: actions/checkout@v2
+        with:
+          ref: ${{ matrix.branch.ref }}
+      - name: apt
+        run: |
+          sudo apt-get update -y | true
+          sudo apt install bison re2c
+      - name: Setup
+        run: |
+          sudo service mysql start
+          mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test"
+          # Ensure local_infile tests can run.
+          mysql -uroot -proot -e "SET GLOBAL local_infile = true"
+      # Does not support caching_sha2_auth :(
+      # - name: Build mysql-5.6
+      #  uses: ./.github/actions/build-libmysqlclient
+      #  with:
+      #    libmysql: mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz
+      # - name: Test mysql-5.6
+      #   uses: ./.github/actions/test-libmysqlclient
+      - name: Build mysql-5.7
+        uses: ./.github/actions/build-libmysqlclient
+        with:
+          libmysql: mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
+          withMysqli: ${{ matrix.branch.ref == 'PHP-8.1' }}
+      - name: Test mysql-5.7
+        uses: ./.github/actions/test-libmysqlclient
+        with:
+          withMysqli: ${{ matrix.branch.ref == 'PHP-8.1' }}
+      - name: Build mysql-8.0
+        uses: ./.github/actions/build-libmysqlclient
+        with:
+          # FIXME: There are new warnings
+          # configurationParameters: --enable-werror
+          libmysql: mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
+          withMysqli: ${{ matrix.branch.ref == 'PHP-8.1' }}
+      - name: Test mysql-8.0
+        uses: ./.github/actions/test-libmysqlclient
+        with:
+          withMysqli: ${{ matrix.branch.ref == 'PHP-8.1' }}
+      - name: Verify generated files are up to date
+        uses: ./.github/actions/verify-generated-files

+ 4 - 2
EVSE/GPL/php-8.1.10/.github/workflows/push.yml → EVSE/GPL/php-8.1.12/.github/workflows/push.yml

@@ -32,8 +32,10 @@ jobs:
     steps:
       - name: git checkout
         uses: actions/checkout@v2
-      - name: Create mssql container
-        uses: ./.github/actions/mssql
+      - name: Create MSSQL container
+        uses: ./.github/actions/setup-mssql
+      - name: Create Oracle container
+        uses: ./.github/actions/setup-oracle
       - name: apt
         uses: ./.github/actions/apt-x64
       - name: ./configure

+ 0 - 0
EVSE/GPL/php-8.1.10/.gitignore → EVSE/GPL/php-8.1.12/.gitignore


+ 0 - 0
EVSE/GPL/php-8.1.10/.travis.yml → EVSE/GPL/php-8.1.12/.travis.yml


+ 0 - 0
EVSE/GPL/php-8.1.10/CODING_STANDARDS.md → EVSE/GPL/php-8.1.12/CODING_STANDARDS.md


+ 0 - 0
EVSE/GPL/php-8.1.10/CONTRIBUTING.md → EVSE/GPL/php-8.1.12/CONTRIBUTING.md


+ 0 - 0
EVSE/GPL/php-8.1.10/EXTENSIONS → EVSE/GPL/php-8.1.12/EXTENSIONS


+ 0 - 0
EVSE/GPL/php-8.1.10/LICENSE → EVSE/GPL/php-8.1.12/LICENSE


+ 85 - 0
EVSE/GPL/php-8.1.10/NEWS → EVSE/GPL/php-8.1.12/NEWS

@@ -1,5 +1,86 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+27 Oct 2022, PHP 8.1.12
+
+- Core:
+  . Fixes segfault with Fiber on FreeBSD i386 architecture. (David Carlier)
+
+- Fileinfo:
+  . Fixed bug GH-8805 (finfo returns wrong mime type for woff/woff2 files).
+    (Anatol)
+
+- GD:
+  . Fixed bug #81739: OOB read due to insufficient input validation in
+    imageloadfont(). (CVE-2022-31630) (cmb)
+
+- Hash:
+  . Fixed bug #81738: buffer overflow in hash_update() on long parameter.
+    (CVE-2022-37454) (nicky at mouha dot be)
+
+- MBString:
+  - Fixed bug GH-9683 (Problem when ISO-2022-JP-MS is specified in
+    mb_ encode_mimeheader). (Alex Dowad)
+
+- Opcache:
+  . Added indirect call reduction for jit on x86 architectures. (wxue1)
+
+- Session:
+  . Fixed bug GH-9583 (session_create_id() fails with user defined save handler
+    that doesn't have a validateId() method). (Girgias)
+
+- Streams:
+  . Fixed bug GH-9590 (stream_select does not abort upon exception or empty
+    valid fd set). (Arnaud)
+
+29 Sep 2022, PHP 8.1.11
+
+- Core:
+  . Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function)
+    (Tim Starling)
+  . Fixed bug GH-9361 (Segmentation fault on script exit #9379). (cmb,
+    Christian Schneider)
+  . Fixed bug GH-9447 (Invalid class FQN emitted by AST dump for new and class
+    constants in constant expressions). (ilutov)
+  . Fixed bug #81727: Don't mangle HTTP variable names that clash with ones
+    that have a specific semantic meaning. (CVE-2022-31629). (Derick)
+
+- DOM:
+  . Fixed bug #79451 (DOMDocument->replaceChild on doctype causes double free).
+    (Nathan Freeman)
+
+- FPM:
+  . Fixed bug GH-8885 (FPM access.log with stderr begins to write logs to
+    error_log after daemon reload). (Dmitry Menshikov)
+  . Fixed bug #77780 ("Headers already sent..." when previous connection was
+    aborted). (Jakub Zelenka)
+
+- GMP
+  . Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed
+    to gmp_init()). (Girgias)
+
+- Intl
+  . Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter).
+    (Girgias)
+
+- PCRE:
+  . Fixed pcre.jit on Apple Silicon. (Niklas Keller)
+
+- PDO_PGSQL:
+  . Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed).
+    (Yurunsoft)
+
+- Phar:
+  . Fixed bug #81726: phar wrapper: DOS when using quine gzip file.
+    (CVE-2022-31628). (cmb)
+
+- Reflection:
+  . Fixed bug GH-8932 (ReflectionFunction provides no way to get the called
+    class of a Closure). (cmb, Nicolas Grekas)
+
+- Streams:
+  . Fixed bug GH-9316 ($http_response_header is wrong for long status line).
+    (cmb, timwolla)
+
 01 Sep 2022, PHP 8.1.10
 
 - Core:
@@ -39,6 +120,10 @@ PHP                                                                        NEWS
   . Fixed bug GH-9164 (Segfault in zend_accel_class_hash_copy).
     (Arnaud, Sergei Turchanov)
 
+- OpenSSL:
+  . Fixed bug GH-9339 (OpenSSL oid_file path check warning contains
+    uninitialized path). (Jakub Zelenka)
+
 - PDO_SQLite:
   . Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values). (cmb)
 

+ 0 - 0
EVSE/GPL/php-8.1.10/README.REDIST.BINS → EVSE/GPL/php-8.1.12/README.REDIST.BINS


+ 0 - 0
EVSE/GPL/php-8.1.10/README.md → EVSE/GPL/php-8.1.12/README.md


+ 0 - 0
EVSE/GPL/php-8.1.10/TSRM/LICENSE → EVSE/GPL/php-8.1.12/TSRM/LICENSE


+ 0 - 0
EVSE/GPL/php-8.1.10/TSRM/TSRM.c → EVSE/GPL/php-8.1.12/TSRM/TSRM.c


+ 0 - 0
EVSE/GPL/php-8.1.10/TSRM/TSRM.h → EVSE/GPL/php-8.1.12/TSRM/TSRM.h


+ 0 - 0
EVSE/GPL/php-8.1.10/TSRM/config.w32 → EVSE/GPL/php-8.1.12/TSRM/config.w32


+ 0 - 0
EVSE/GPL/php-8.1.10/TSRM/threads.m4 → EVSE/GPL/php-8.1.12/TSRM/threads.m4


+ 0 - 0
EVSE/GPL/php-8.1.10/TSRM/tsrm.m4 → EVSE/GPL/php-8.1.12/TSRM/tsrm.m4


+ 0 - 0
EVSE/GPL/php-8.1.10/TSRM/tsrm_win32.c → EVSE/GPL/php-8.1.12/TSRM/tsrm_win32.c


+ 0 - 0
EVSE/GPL/php-8.1.10/TSRM/tsrm_win32.h → EVSE/GPL/php-8.1.12/TSRM/tsrm_win32.h


+ 0 - 0
EVSE/GPL/php-8.1.10/UPGRADING → EVSE/GPL/php-8.1.12/UPGRADING


+ 0 - 0
EVSE/GPL/php-8.1.10/UPGRADING.INTERNALS → EVSE/GPL/php-8.1.12/UPGRADING.INTERNALS


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/LICENSE → EVSE/GPL/php-8.1.12/Zend/LICENSE


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Makefile.frag → EVSE/GPL/php-8.1.12/Zend/Makefile.frag


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/block_pass.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/block_pass.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/compact_literals.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/compact_literals.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/compact_vars.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/compact_vars.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/dce.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/dce.c


+ 3 - 1
EVSE/GPL/php-8.1.10/Zend/Optimizer/dfa_pass.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/dfa_pass.c

@@ -367,7 +367,9 @@ static bool opline_supports_assign_contraction(
 		return opline->op1_type != IS_CV || opline->op1.var != cv_var;
 	}
 
-	if (opline->opcode == ZEND_ASSIGN_OP
+	if ((opline->opcode == ZEND_ASSIGN_OP
+	  || opline->opcode == ZEND_ASSIGN_OBJ
+	  || opline->opcode == ZEND_ASSIGN_DIM)
 	 && opline->op1_type == IS_CV
 	 && opline->op1.var == cv_var
 	 && zend_may_throw(opline, &ssa->ops[ssa->vars[src_var].definition], op_array, ssa)) {

+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/escape_analysis.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/escape_analysis.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/nop_removal.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/nop_removal.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/optimize_func_calls.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/optimize_func_calls.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/optimize_temp_vars_5.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/optimize_temp_vars_5.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/pass1.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/pass1.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/pass3.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/pass3.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/sccp.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/sccp.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/scdf.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/scdf.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/scdf.h → EVSE/GPL/php-8.1.12/Zend/Optimizer/scdf.h


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/ssa_integrity.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/ssa_integrity.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_call_graph.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_call_graph.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_call_graph.h → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_call_graph.h


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_cfg.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_cfg.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_cfg.h → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_cfg.h


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_dfg.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_dfg.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_dfg.h → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_dfg.h


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_dump.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_dump.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_dump.h → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_dump.h


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_func_info.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_func_info.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_func_info.h → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_func_info.h


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_func_infos.h → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_func_infos.h


+ 6 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_inference.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_inference.c

@@ -1951,6 +1951,9 @@ static uint32_t assign_dim_array_result_type(
 				tmp |= MAY_BE_ARRAY_KEY_STRING;
 				if (dim_op_type != IS_CONST) {
 					// FIXME: numeric string
+					if (arr_type & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE)) {
+						tmp |= MAY_BE_ARRAY_PACKED;
+					}
 					tmp |= MAY_BE_HASH_ONLY(arr_type) ? MAY_BE_ARRAY_NUMERIC_HASH : MAY_BE_ARRAY_KEY_LONG;
 				}
 			}
@@ -3375,6 +3378,9 @@ static zend_always_inline int _zend_update_type_info(
 				opline->op1_type,
 				opline->result_type == IS_VAR,
 				opline->op2_type == IS_UNUSED);
+			if (opline->opcode == ZEND_FETCH_DIM_FUNC_ARG && (t1 & (MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_RESOURCE))) {
+				tmp |= MAY_BE_NULL;
+			}
 			if (opline->opcode == ZEND_FETCH_DIM_IS && (t1 & MAY_BE_STRING)) {
 				tmp |= MAY_BE_NULL;
 			}

+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_inference.h → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_inference.h


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_optimizer.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_optimizer.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_optimizer.h → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_optimizer.h


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_optimizer_internal.h → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_optimizer_internal.h


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_ssa.c → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_ssa.c


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_ssa.h → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_ssa.h


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/Optimizer/zend_worklist.h → EVSE/GPL/php-8.1.12/Zend/Optimizer/zend_worklist.h


+ 0 - 0
EVSE/GPL/php-8.1.10/Zend/README.md → EVSE/GPL/php-8.1.12/Zend/README.md


Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott