Skip to content

7.4.33: Add sendmail and switch build to wasixcc#12

Open
zebreus wants to merge 11 commits into7.4.33-wasixfrom
zebreus-7.4.33-wasix
Open

7.4.33: Add sendmail and switch build to wasixcc#12
zebreus wants to merge 11 commits into7.4.33-wasixfrom
zebreus-7.4.33-wasix

Conversation

@zebreus
Copy link

@zebreus zebreus commented Feb 17, 2026

The same as #11 and #16 but for php 7.4.33

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/bash and sendmail/sendmail as Wasmer package dependencies.
  • Remove the custom WASI SMTP implementation in ext/standard/mail.c and related INI/config glue, switching to the normal sendmail_path execution path.
  • Switch the WASIX build + GitHub Actions workflow to wasixcc and 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 \
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
--use amin/bash \
--use wasmer/bash \

Copilot uses AI. Check for mistakes.
AC_PROG_CXX
AC_PROG_CXXCPP
PHP_ADD_LIBRARY(stdc++)
PHP_ADD_LIBRARY(c++)
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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

Copilot uses AI. Check for mistakes.
@zebreus zebreus force-pushed the zebreus-7.4.33-wasix branch 2 times, most recently from a507d3c to 76649cd Compare February 17, 2026 17:17
@zebreus zebreus force-pushed the zebreus-7.4.33-wasix branch from 76649cd to 67e6e6b Compare February 19, 2026 10:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants