59 Commits

Author SHA1 Message Date
806e1f383c CI: Build and run the libcheck-based tests.
Github: closes #590


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1930795 13f79535-47bb-0310-9956-ffa450edef68
2025-12-22 11:59:10 +00:00
8169261a09 CI: Update OpenSSL versions: test 3.0 (LTS) branch, latest 3.4/3.5,
reset/clear cache to refresh the feature/ech branch.

Github: closes #586


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1930709 13f79535-47bb-0310-9956-ffa450edef68
2025-12-18 12:47:05 +00:00
0c9cd095ce mod_ssl: Add support for Encrypted Client Hello (ECH) based off
proposed OpenSSL 4.0 API. Notes from PR #551:

This build only supports ECH "shared-mode" where mod_ssl does the ECH
decryption and also hosts both the ECH `public-name` and `backend` web
sites.

## Build

> [!NOTE]
> ECH is not yet a part of an OpenSSL release, our current goal is that ECH be
> part of an OpenSSL 4.0 release in spring 2026. 

There is client and server ECH code in the OpenSSL ECH feature branch at
[https://github.com/openssl/openssl/tree/feature/ech](https://github.com/openssl/openssl/tree/feature/ech).
At present, ECH-enabling apache2 therefore requires building from source, using
the OpenSSL ECH feature branch.

## Code changes

- All code changes are within `modules/ssl` and are protected via `#ifdef
  HAVE_OPENSSL_ECH`.  That's defined in `ssl_private.h` if the included
`ssl.h` defines `SSL_OP_ECH_GREASE`.

- There're a bunch of changes to add the new `SSLECHKeyDir` directive that
  are mosly obvious.

- We load the keys from `SSLECHKeyDir` using the `load_echkeys()` function in
  `ssl_engine_init.c`. That also ECH-enables the `SSL_CTX` when keys are
  loaded, which triggers ECH decryption as needed.

> [!NOTE]
> `load_echkeys()` will include the public component all loaded keys in the ECH
> `retry-configs` in the fallback scenario. If desired, we could add a naming
> convention or additional configuration setting to distinguish which to
> include in `retry-configs` or not. For now, we assume that'd better be done
> in a subsequent PR, if experience shows the feature is really useful/needed.
> (We can envisage some odd deployments where that might be the case, but not
> clear those'd really happen - it'd seem to need loads of key pairs or else
> some that are never published in the DNS that we don't want to expose to
> random clients - neither seems compelling.)

- We add a callback to `SSL_CTX_ech_set_callback` also in `ssl_engine_init.c`.

- We add calls to set the `SSL_ECH_STATUS` etc. variables to the environment
(for PHP etc) in `ssl_engine_kernel.c` and also do the logging of ECH outcomes
(to the error log).

Submitted by: sftcd <stephen.farrell cs.tcd.ie>, rpluem
Github: closes #551


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1928357 13f79535-47bb-0310-9956-ffa450edef68
2025-09-12 08:05:11 +00:00
1356c5e1c0 CI: Update to current OpenSSL releases.
Github: closes #546


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1927632 13f79535-47bb-0310-9956-ffa450edef68
2025-08-06 07:34:43 +00:00
b8de59ac7c CI: Bump versions tested to APR 1.7.6, OpenSSL 3.5.0.
Github: closes #530


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1925588 13f79535-47bb-0310-9956-ffa450edef68
2025-05-16 15:28:31 +00:00
e9231ff8cc CI: Update to test against OpenSSL 3.4 and 3.5.0-beta1
Github: closes #525


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1924911 13f79535-47bb-0310-9956-ffa450edef68
2025-04-07 14:25:59 +00:00
a4194a3988 CI: Retry arm64 workflow with the correct label this time.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1923302 13f79535-47bb-0310-9956-ffa450edef68
2025-01-21 09:26:02 +00:00
8138d8ae7c Disable the arm64 job, it appears there are not enough runners. [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1923300 13f79535-47bb-0310-9956-ffa450edef68
2025-01-21 08:33:57 +00:00
1cc6aeb6ce CI: Add 64-bit ARM job to Linux workflow. See:
https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/

Github: closes #511


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1923271 13f79535-47bb-0310-9956-ffa450edef68
2025-01-20 17:01:17 +00:00
71a7109925 CI: Switch down to GCC 12, the ubuntu-latest image is not consistently
an Ubuntu 24.04 environment yet, this version should be available in
both the -22.04 and -24.04 images.

Github: closes #497


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1922412 13f79535-47bb-0310-9956-ffa450edef68
2024-12-10 17:20:36 +00:00
584ed86f30 CI: Use the image version in the cache keys. This is likely a simpler
and more robust fix for the issues with Perl XS builds being cached.
Root cause was likely "ubuntu-latest" changing from 22.04 to 24.04.
Cache keys will now change when that happens again, preventing reuse
of cached builds across OS versions.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1921311 13f79535-47bb-0310-9956-ffa450edef68
2024-10-14 16:09:50 +00:00
82dc9a9e84 CI: Further fixes for ubuntu-latest image updates on GitHub Actions.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1921310 13f79535-47bb-0310-9956-ffa450edef68
2024-10-14 15:18:05 +00:00
988f449632 removed experimental mod_tls. source, documenation and test cases
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1920744 13f79535-47bb-0310-9956-ffa450edef68
2024-09-17 11:06:04 +00:00
c72b74ccef CI: Update to OpenSSL 3.1.7/3.3.2.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1920440 13f79535-47bb-0310-9956-ffa450edef68
2024-09-03 16:01:47 +00:00
30c15cd532 CI: Install libsasl2-dev to fix build errors with APR trunk/apr-util 1.7.x
https://lists.apache.org/thread/8hhs2otod7fo44964yd1csck3ddm1fq2

CI: Add job to test LDAP with the (apr 1.7.x, apr-util 1.7.x) combination.

Github: closes #474


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1920050 13f79535-47bb-0310-9956-ffa450edef68
2024-08-20 08:28:48 +00:00
3407110548 CI: Enable Windows job for 2.4.x branch.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919665 13f79535-47bb-0310-9956-ffa450edef68
2024-08-04 11:13:17 +00:00
e7b47ef616 Trigger ci
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919543 13f79535-47bb-0310-9956-ffa450edef68
2024-07-27 13:26:40 +00:00
4eee244d55 CI: Fix OpenSSL tarball download URLs after openssl.org site refresh
CI: Update to latest OpenSSL releases.
CI: Build OpenSSL with RPATH set so that the installed ./bin/openssl works
without LD_LIBRARY_PATH set.

Use LD_RUN_PATH during the httpd build to achieve the same with binaries
from the httpd build, but unset it after so that it doesn't affect running
e.g. php-fpm or perl later. Should fix warning from logs when php-fpm
is executed --

[26-Jul-2024 07:43:34] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'curl.so' (tried: /usr/lib/php/20210902/curl.so (/lib/x86_64-linux-gnu/libcurl.so.4: undefined symbol: ENGINE_init, version OPENSSL_3.0.0), /usr/lib/php/20210902/curl.so.so (/usr/lib/php/20210902/curl.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

CI: Test that php-fpm works if available before testing.
CI: For paranoia/future debugging, log the OpenSSL version from compile-time
and run-time as reported by mod_ssl.

Github: closes #466


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919524 13f79535-47bb-0310-9956-ffa450edef68
2024-07-26 09:14:40 +00:00
27ab02c382 * .github/workflows/windows.yml: Install openssl.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919417 13f79535-47bb-0310-9956-ffa450edef68
2024-07-20 17:31:20 +00:00
f1d2979ead * .github/workflows/windows.yml: Fix syntax error.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919416 13f79535-47bb-0310-9956-ffa450edef68
2024-07-20 16:49:15 +00:00
16db87d078 * .github/workflows/windows.yml: Fix syntax error.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919415 13f79535-47bb-0310-9956-ffa450edef68
2024-07-20 16:45:14 +00:00
0f8d9d8274 * .github/workflows/windows.yml: Try to use Ninja for Windows CI build.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919414 13f79535-47bb-0310-9956-ffa450edef68
2024-07-20 16:44:26 +00:00
152035066b * .github/workflows/windows.yml: Enable VCPKG artifacts caching.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919411 13f79535-47bb-0310-9956-ffa450edef68
2024-07-20 16:09:24 +00:00
6068da7f3e * .github/workflows/windows.yml: Add quotes for -DAPR_LIBRARIES argument.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919399 13f79535-47bb-0310-9956-ffa450edef68
2024-07-20 13:10:14 +00:00
a3ca4f87d4 * .github/workflows/windows.yml: Enable HTTPD private headers when installing
APR.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919398 13f79535-47bb-0310-9956-ffa450edef68
2024-07-20 13:09:23 +00:00
1d4b356d37 CI: Add Windows GitHub Action job. Not really tested.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919397 13f79535-47bb-0310-9956-ffa450edef68
2024-07-20 13:04:40 +00:00
71202d890a CI: Set the path to php-fpm so it's found by proxy_fcgi.t (after r1918149).
Github: closes #453


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1918150 13f79535-47bb-0310-9956-ffa450edef68
2024-06-04 16:52:01 +00:00
c8a9d21e0c * mod_tls: update version of rustls-ffi to v0.13.0.
[Daniel McCarney (@cpu}]



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1917270 13f79535-47bb-0310-9956-ffa450edef68
2024-04-22 13:55:22 +00:00
1f4bb1a433 CI: Update for OpenSSL 3.3.0, build with -Werror
Github: closes #436


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916997 13f79535-47bb-0310-9956-ffa450edef68
2024-04-15 09:47:55 +00:00
8aae9fa5fc CI: Add OpenSSL 3.3.0 alpha1 build.
Github: closes #424


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916559 13f79535-47bb-0310-9956-ffa450edef68
2024-03-26 15:03:23 +00:00
6f6e5734f9 CI: conditional didn't work in r1916396, always apply ASAN workaround.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916397 13f79535-47bb-0310-9956-ffa450edef68
2024-03-18 16:46:11 +00:00
d824ef3380 CI: Try working around recent ASAN failures.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916396 13f79535-47bb-0310-9956-ffa450edef68
2024-03-18 16:40:37 +00:00
9b17700660 mod_systemd: if SELinux is available and enabled, log the SELinux
context at startup, since this may vary when httpd is started via
systemd vs being started directly.

* modules/arch/unix/mod_systemd.c (systemd_post_config):
  Do nothing for the pre-config iteration.
  Log the SELinux context if available.

* modules/arch/unix/config5.m4: Detect libselinux.

Have at least one CI job build mod_systemd.

Github: closes #422


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916344 13f79535-47bb-0310-9956-ffa450edef68
2024-03-15 15:26:11 +00:00
74ed4a20dc CI: update actions to v4
Submitted by: Sagar <42873729+SagarCodeCtrl users.noreply.github.com>

Github: closes #414


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916133 13f79535-47bb-0310-9956-ffa450edef68
2024-03-05 13:40:30 +00:00
2361315143 CI: add OpenSSL 3.2, test OpenSSL 3.x using Apache::Test
trunk to pick up r1916067.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916068 13f79535-47bb-0310-9956-ffa450edef68
2024-03-01 10:15:13 +00:00
fed3652d82 CI: docs update only. [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916059 13f79535-47bb-0310-9956-ffa450edef68
2024-02-29 17:07:55 +00:00
f65a498b3b CI: Add OpenSSL 3.1 builds, including a no-engine build.
(attempt to use 3.2 failed, unsure why)
- add OpenSSL build binaries to $PATH 

Github: closes #415


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916058 13f79535-47bb-0310-9956-ffa450edef68
2024-02-29 15:33:38 +00:00
3b6f3ae781 CI: Re-enable caching for *fixed* versions of apr/apr-util which
should now work correctly (since the version is in the cache key).
For 1.x branches, CLEAR_CACHE must still be used. [skip ci]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916053 13f79535-47bb-0310-9956-ffa450edef68
2024-02-29 13:30:50 +00:00
39e25a4a18 CI: Enable caching for the rustls install used for mod_tls testing.
Github: closes #416


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916052 13f79535-47bb-0310-9956-ffa450edef68
2024-02-29 13:19:26 +00:00
7950b447ab CI: Hopefully fix caching and artifact uploads by creating $JOBID
as a unique key for each job in the matrix, using that as the 
cache key and in each artefact upload (otherwise multiple failures
uploading "error_log" overwrite each other).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1916051 13f79535-47bb-0310-9956-ffa450edef68
2024-02-29 12:11:39 +00:00
c76ebdba43 Minor CI changes:
- Add --enable-reduced-exports test.
- test running apachectl -V in the TEST_INSTALL case
- test running httpd -V in the SKIP_TESTING case
- rejig to exit if SKIP_TESTING, un-nest the if block around testing
  (no functional change from this part)

Github: closes #405


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1915513 13f79535-47bb-0310-9956-ffa450edef68
2024-02-01 15:34:22 +00:00
abaad489b5 CI: add workflow for WebDAV testing using LMDB as the default APR DBM backend.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1913266 13f79535-47bb-0310-9956-ffa450edef68
2023-10-24 15:43:27 +00:00
72aeac5f5a Work around caching issue for CI builds with both apr&apr-util
built from source.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1913016 13f79535-47bb-0310-9956-ffa450edef68
2023-10-16 12:05:35 +00:00
3ed9d65b05 *) mod_http2: added support for bootstrapping WebSockets via HTTP/2, as
described in RFC 8441. A new directive 'H2WebSockets on|off' has been
     added. The feature is by default not enabled.
     As also discussed in the manual, this feature should work for setups
     using "ProxyPass backend-url upgrade=websocket" without further changes.
     Special server modules for WebSockets will have to be adapted,
     most likely, as the handling if IO events is different with HTTP/2.
     HTTP/2 WebSockets are supported on platforms with native pipes. This
     excludes Windows.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1910507 13f79535-47bb-0310-9956-ffa450edef68
2023-06-20 12:01:09 +00:00
a088d14c0d tests, re-enable http/2 tests in github workflow, install latest rustls-ffi version
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1909563 13f79535-47bb-0310-9956-ffa450edef68
2023-05-02 10:04:21 +00:00
85b3bb415f ci: Upgrade to latest apr-1.7.4.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1909369 13f79535-47bb-0310-9956-ffa450edef68
2023-04-23 20:53:20 +00:00
523f599101 CI tests are failing (since r1909135), set a lower timeout since
the default is a rather extreme 6hrs. Worst cases seem to be
around 10 minutes currently. [skip ci]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1909242 13f79535-47bb-0310-9956-ffa450edef68
2023-04-19 13:58:53 +00:00
7a680577b1 * Use latest released versions of APR and APR-UTIL for building
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1908933 13f79535-47bb-0310-9956-ffa450edef68
2023-04-03 07:38:34 +00:00
7aba2b6f6d Try running CI for 2.* tags. [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1908835 13f79535-47bb-0310-9956-ffa450edef68
2023-03-31 07:21:37 +00:00
ba1e5db696 ci: Restore MOD_TLS test suite with the python3-multipart package.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1908578 13f79535-47bb-0310-9956-ffa450edef68
2023-03-20 15:23:04 +00:00