7.4.33: Add sendmail and switch build to wasixcc#12
7.4.33: Add sendmail and switch build to wasixcc#12zebreus wants to merge 11 commits into7.4.33-wasixfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the PHP 7.4.33 WASIX packaging/build pipeline to rely on an external sendmail command (via Wasmer package deps) and to build using wasixcc, with CI consolidated into a 32/64 matrix.
Changes:
- Add
wasmer/bashandsendmail/sendmailas Wasmer package dependencies. - Remove the custom WASI SMTP implementation in
ext/standard/mail.cand related INI/config glue, switching to the normalsendmail_pathexecution path. - Switch the WASIX build + GitHub Actions workflow to
wasixccand consolidate CI into a matrix job.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
wasmer-32.toml |
Adds runtime deps (bash, sendmail) to the 32-bit Wasmer manifest. |
wasmer-64.toml |
Adds runtime deps (bash, sendmail) to the 64-bit Wasmer manifest. |
wasix-test-server.sh |
Updates Wasmer filesystem mapping flags from --mapdir to --volume. |
wasix-execute.sh |
Removes the non-EH execution helper script. |
wasix-execute-eh.sh |
Updates filesystem mapping flags and removes SMTP credential INI flags. |
wasix-configure.sh |
Removes the non-EH configure helper script. |
wasix-configure-eh.sh |
Switches toolchain variables to wasixcc and sets PROG_SENDMAIL. |
wasix-build.sh |
Removes the non-EH build helper script. |
main/main.c |
Removes sendmail_username / sendmail_password INI entries. |
ext/standard/mail.c |
Removes WASI-specific SMTP send implementation; uses standard sendmail execution path. |
ext/standard/config.m4 |
Removes WASIX-only linkage for libwasix_sendmail. |
build/php.m4 |
Changes the C++ runtime library added by PHP_REQUIRE_CXX (stdc++ → c++). |
.github/workflows/wasix-pr.yaml |
Uses wasixcc, adds matrix for 32/64, removes mail secrets usage. |
.github/workflows/release.yaml |
Removes passing sendmail secrets to the called workflow. |
.github/workflows/release-dev.yaml |
Removes passing sendmail secrets to the called workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| --volume ../php-wasix-deps/icu:/icu \ | ||
| --env SSL_CERT_DIR=/etc/ssl/certs \ | ||
| --env OPENSSL_CONF=/etc/ssl/openssl.cnf \ | ||
| --use amin/bash \ |
There was a problem hiding this comment.
This script still uses --use amin/bash, but the Wasmer manifests were updated to depend on wasmer/bash. To avoid runtime drift (and potential failures if amin/bash is not available), consider switching this --use to the same package name/version used in the manifests, or dropping --use if the runtime is expected to come from the package dependencies.
| --use amin/bash \ | |
| --use wasmer/bash \ |
| AC_PROG_CXX | ||
| AC_PROG_CXXCPP | ||
| PHP_ADD_LIBRARY(stdc++) | ||
| PHP_ADD_LIBRARY(c++) |
There was a problem hiding this comment.
Switching the C++ runtime library from stdc++ to c++ can break builds on platforms/toolchains that only ship libstdc++ (common on many Linux distros). Consider making this conditional (e.g., detect which library links successfully) or allowing the library choice to be overridden so non-WASIX builds don't regress.
| PHP_ADD_LIBRARY(c++) | |
| dnl Allow overriding the C++ runtime library via PHP_CXX_LIBRARY. | |
| if test -n "$PHP_CXX_LIBRARY"; then | |
| PHP_ADD_LIBRARY([$PHP_CXX_LIBRARY]) | |
| else | |
| dnl Prefer libc++ if available, otherwise fall back to libstdc++. | |
| AC_CHECK_LIB([c++],[main], | |
| [PHP_ADD_LIBRARY([c++])], | |
| [AC_CHECK_LIB([stdc++],[main], | |
| [PHP_ADD_LIBRARY([stdc++])], | |
| [])]) | |
| fi |
0427f90 to
7748833
Compare
a507d3c to
76649cd
Compare
76649cd to
67e6e6b
Compare
The same as #11 and #16 but for php 7.4.33