mod_rewrite: Better question mark tracking to avoid UnsafeAllow3F. P… #1076
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Linux | |
on: | |
push: | |
branches: [ "*" ] | |
paths-ignore: | |
- 'docs/**' | |
- STATUS | |
- CHANGES | |
- changes-entries/* | |
tags: | |
- 2.* | |
pull_request: | |
branches: [ "trunk", "2.4.x" ] | |
paths-ignore: | |
- 'docs/**' | |
- STATUS | |
- CHANGES | |
- changes-entries/* | |
env: | |
MARGS: "-j2" | |
CFLAGS: "-g" | |
# This will need updating as the ubuntu-latest image changes: | |
PHP_FPM: "/usr/sbin/php-fpm8.1" | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# ------------------------------------------------------------------------- | |
- name: Empty APLOGNO() test | |
env: | | |
SKIP_TESTING=1 | |
TEST_LOGNO=1 | |
# ------------------------------------------------------------------------- | |
- name: Default | |
# ------------------------------------------------------------------------- | |
- name: All-static modules | |
config: --enable-mods-static=reallyall | |
# ------------------------------------------------------------------------- | |
- name: Prefork MPM, all-modules (except cgid) | |
config: --enable-mods-shared=reallyall --with-mpm=prefork --disable-cgid | |
# ------------------------------------------------------------------------- | |
- name: Worker MPM, all-modules | |
config: --enable-mods-shared=reallyall --with-mpm=worker | |
# ------------------------------------------------------------------------- | |
- name: Shared MPMs, all-modules | |
config: --enable-mods-shared=reallyall --enable-mpms-shared=all | |
# ------------------------------------------------------------------------- | |
- name: Event MPM, all-modules, mod_cgid fdpassing | |
config: --enable-mods-shared=reallyall --with-mpm=event --disable-cgi --enable-cgid-fdpassing | |
# ------------------------------------------------------------------------- | |
- name: Event MPM, all-modules, mod_cgid w/o fdpassing | |
config: --enable-mods-shared=reallyall --with-mpm=event --disable-cgi | |
# ------------------------------------------------------------------------- | |
- name: Default, all-modules + install | |
config: --enable-mods-shared=reallyall | |
env: | | |
TEST_INSTALL=1 | |
APACHE_TEST_EXTRA_ARGS=-v | |
# ------------------------------------------------------------------------- | |
- name: Default, all-modules, random test order | |
config: --enable-mods-shared=reallyall | |
env: | | |
TEST_ARGS=-order=random | |
# ------------------------------------------------------------------------- | |
- name: GCC 10 maintainer-mode w/-Werror, install + VPATH | |
config: --enable-mods-shared=reallyall --enable-maintainer-mode | |
notest-cflags: -Werror -O2 | |
env: | | |
CC=gcc-10 | |
TEST_VPATH=1 | |
TEST_INSTALL=1 | |
SKIP_TESTING=1 | |
# ------------------------------------------------------------------------- | |
- name: All-modules, APR 1.7.4, APR-util 1.6.3 | |
config: --enable-mods-shared=reallyall | |
env: | | |
APR_VERSION=1.7.4 | |
APU_VERSION=1.6.3 | |
APU_CONFIG="--with-crypto --with-ldap" | |
# ------------------------------------------------------------------------- | |
- name: APR 1.8.x, APR-util 1.7.x | |
config: --enable-mods-shared=reallyall | |
env: | | |
APR_VERSION=1.8.x | |
APU_VERSION=1.7.x | |
APU_CONFIG="--with-crypto --with-ldap" | |
CLEAR_CACHE=1 | |
# ------------------------------------------------------------------------- | |
- name: Pool-debug | |
config: --enable-mods-shared=reallyall | |
env: | | |
APR_VERSION=1.7.x | |
APR_CONFIG="--enable-pool-debug" | |
APU_VERSION=1.7.x | |
APU_CONFIG="--with-crypto --with-ldap" | |
TEST_MALLOC=1 | |
CLEAR_CACHE=1 | |
# ------------------------------------------------------------------------- | |
- name: Shared MPMs (event), pool-debug, SSL/TLS variants | |
config: --enable-mods-shared=reallyall --enable-mpms-shared=all --with-mpm=event | |
env: | | |
APR_VERSION=1.7.x | |
APR_CONFIG="--enable-pool-debug" | |
APU_VERSION=1.7.x | |
APU_CONFIG="--with-crypto --with-ldap" | |
TEST_MALLOC=1 | |
TEST_SSL=1 | |
CLEAR_CACHE=1 | |
# ------------------------------------------------------------------------- | |
- name: Shared MPMs (worker), pool-debug, SSL/TLS variants | |
config: --enable-mods-shared=reallyall --enable-mpms-shared=all --with-mpm=worker | |
env: | | |
APR_VERSION=1.7.x | |
APR_CONFIG="--enable-pool-debug" | |
APU_VERSION=1.7.x | |
APU_CONFIG="--with-crypto --with-ldap" | |
TEST_MALLOC=1 | |
TEST_SSL=1 | |
CLEAR_CACHE=1 | |
# ------------------------------------------------------------------------- | |
- name: Shared MPMs (prefork), pool-debug, SSL/TLS variants | |
config: --enable-mods-shared=reallyall --enable-mpms-shared=all --with-mpm=prefork | |
env: | | |
APR_VERSION=1.7.x | |
APR_CONFIG="--enable-pool-debug" | |
APU_VERSION=1.7.x | |
APU_CONFIG="--with-crypto --with-ldap" | |
TEST_MALLOC=1 | |
TEST_SSL=1 | |
CLEAR_CACHE=1 | |
# ------------------------------------------------------------------------- | |
- name: litmus WebDAV tests | |
config: --enable-dav --enable-dav-fs | |
env: | | |
LITMUS=1 | |
TESTS="t/modules/dav.t" | |
pkgs: litmus | |
# ------------------------------------------------------------------------- | |
- name: APR 1.7.4, APR-util 1.6.3, LDAP | |
config: --enable-mods-shared=reallyall | |
pkgs: ldap-utils | |
env: | | |
APR_VERSION=1.7.4 | |
APU_VERSION=1.6.3 | |
APU_CONFIG="--with-crypto --with-ldap" | |
TEST_MALLOC=1 | |
TEST_LDAP=1 | |
TEST_ARGS="-defines LDAP" | |
TESTS="t/modules/" | |
# ------------------------------------------------------------------------- | |
- name: APR trunk thread debugging | |
config: --enable-mods-shared=reallyall --with-mpm=event | |
env: | | |
APR_VERSION=trunk | |
APR_CONFIG="--with-crypto --enable-thread-debug" | |
# ------------------------------------------------------------------------- | |
- name: ASan | |
notest-cflags: -ggdb -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer | |
config: --enable-mods-shared=reallyall | |
env: | | |
APR_VERSION=1.7.x | |
APU_VERSION=1.7.x | |
APU_CONFIG="--with-crypto --with-ldap" | |
TEST_ASAN=1 | |
CLEAR_CACHE=1 | |
# ------------------------------------------------------------------------- | |
- name: ASan, pool-debug | |
notest-cflags: -ggdb -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer | |
config: --enable-mods-shared=reallyall | |
env: | | |
APR_VERSION=1.7.x | |
APR_CONFIG="--enable-pool-debug" | |
APU_VERSION=1.7.x | |
APU_CONFIG="--with-crypto --with-ldap" | |
TEST_ASAN=1 | |
CLEAR_CACHE=1 | |
# ------------------------------------------------------------------------- | |
- name: HTTP/2 test suite | |
config: --enable-mods-shared=reallyall --with-mpm=event --enable-mpms-shared=all | |
pkgs: curl python3-pytest nghttp2-client python3-cryptography python3-requests python3-multipart python3-filelock python3-websockets | |
env: | | |
APR_VERSION=1.7.4 | |
APU_VERSION=1.6.3 | |
APU_CONFIG="--with-crypto" | |
NO_TEST_FRAMEWORK=1 | |
TEST_INSTALL=1 | |
TEST_H2=1 | |
TEST_CORE=1 | |
TEST_PROXY=1 | |
# ------------------------------------------------------------------------- | |
### TODO: if: *condition_not_24x | |
### TODO: pebble install is broken. | |
# - name: ACME test suite | |
# config: --enable-mods-shared=reallyall --with-mpm=event --enable-mpms-shared=event | |
# pkgs: >- | |
# python3-pytest nghttp2-client python3-cryptography python3-requests python3-filelock | |
# golang-1.17 curl | |
# env: | | |
# APR_VERSION=1.7.4 | |
# APU_VERSION=1.6.3 | |
# APU_CONFIG="--with-crypto" | |
# GOROOT=/usr/lib/go-1.17 | |
# NO_TEST_FRAMEWORK=1 | |
# TEST_INSTALL=1 | |
# TEST_MD=1 | |
# ------------------------------------------------------------------------- | |
### TODO: if: *condition_not_24x | |
- name: MOD_TLS test suite | |
config: --enable-mods-shared=reallyall --with-mpm=event --enable-mpms-shared=event | |
pkgs: curl python3-pytest nghttp2-client python3-cryptography python3-requests python3-multipart python3-filelock python3-websockets cargo cbindgen | |
env: | | |
APR_VERSION=1.7.4 | |
APU_VERSION=1.6.3 | |
APU_CONFIG="--with-crypto" | |
RUSTLS_VERSION="v0.13.0" | |
NO_TEST_FRAMEWORK=1 | |
TEST_INSTALL=1 | |
TEST_MOD_TLS=1 | |
# ------------------------------------------------------------------------- | |
### TODO if: *condition_not_24x | |
### TODO: Fails because :i386 packages are not being found. | |
# - name: i386 Shared MPMs, most modules, maintainer-mode w/-Werror | |
# config: --enable-mods-shared=reallyall --disable-xml2enc --disable-proxy-html --enable-mpms-shared=all --enable-maintainer-mode | |
# pkgs: >- | |
# cpanminus libc6-dev-i386 gcc-multilib libexpat1-dev:i386 libssl-dev:i386 | |
# lib32z1-dev libbrotli-dev:i386 libpcre2-dev:i386 libldap2-dev:i386 libtool-bin | |
# perl-doc libapr1-dev libbrotli-dev:i386 | |
# env: | | |
# PKG_CONFIG_PATH="/usr/lib/i386-linux-gnu/pkgconfig" | |
# NOTEST_CFLAGS="-Werror" | |
# CC="gcc -m32" | |
# APR_VERSION=1.7.3 | |
# APU_VERSION=1.6.3 | |
# APU_CONFIG="--with-crypto --with-ldap" | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
env: | |
NOTEST_CFLAGS: ${{ matrix.notest-cflags }} | |
CONFIG: ${{ matrix.config }} | |
name: ${{ matrix.name }} | |
steps: | |
- name: Set environment variables | |
run: | | |
echo "${{ matrix.env }}" >> $GITHUB_ENV | |
echo JOBID=`echo "${{ matrix.notest-cflags }} ${{ matrix.env }} ${{ matrix.config }}'"| md5sum - | sed 's/ .*//'` >> $GITHUB_ENV | |
# https://github.com/actions/runner-images/issues/9491#issuecomment-1989718917 | |
- name: Workaround ASAN issue in Ubuntu 22.04 | |
run: sudo sysctl vm.mmap_rnd_bits=28 | |
- name: apt refresh | |
run: sudo apt-get -o Acquire::Retries=5 update | |
- name: Install prerequisites | |
run: sudo apt-get install -o Acquire::Retries=5 | |
cpanminus libtool-bin libapr1-dev libaprutil1-dev | |
liblua5.3-dev libbrotli-dev libcurl4-openssl-dev | |
libnghttp2-dev libjansson-dev libpcre2-dev gdb | |
perl-doc ${{ matrix.pkgs }} | |
- uses: actions/checkout@v4 | |
- name: Cache installed libraries | |
uses: actions/cache@v4 | |
with: | |
path: ~/root | |
key: cache-libs-${{ env.JOBID }} | |
- name: Cache CPAN modules | |
uses: actions/cache@v4 | |
with: | |
path: ~/perl5 | |
key: cache-cpan-${{ env.JOBID }} | |
- name: Configure environment | |
run: ./test/travis_before_linux.sh | |
timeout-minutes: 15 | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: config.log-${{ env.JOBID }} | |
path: | | |
/home/runner/build/**/config.log | |
- name: Build and test | |
run: ./test/travis_run_linux.sh | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: error_log-${{ env.JOBID }} | |
path: test/perl-framework/t/logs/error_log | |