Skip to content

8.1.32: Add sendmail and switch build to wasixcc#13

Open
zebreus wants to merge 10 commits into8.1.32-wasixfrom
zebreus-8.1.32-wasix
Open

8.1.32: Add sendmail and switch build to wasixcc#13
zebreus wants to merge 10 commits into8.1.32-wasixfrom
zebreus-8.1.32-wasix

Conversation

@zebreus
Copy link

@zebreus zebreus commented Feb 17, 2026

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

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

This pull request migrates PHP 8.1.32 to use the wasixcc toolchain and adds sendmail support through an external package dependency, matching the changes previously implemented in PR #11. The PR simplifies the build process by removing custom Rust-based sendmail implementation and adopting standard WASI tooling.

Changes:

  • Switched build toolchain from clang/LLVM to wasixcc for WASIX compilation
  • Replaced custom wasix_sendmail Rust implementation with external sendmail package dependency
  • Removed sendmail_username and sendmail_password INI configuration options
  • Updated Wasmer configuration to use --volume syntax instead of deprecated --mapdir
  • Consolidated GitHub Actions workflow from separate 32-bit and 64-bit jobs into a single matrix-based job
  • Removed SMTP-related secrets and environment variables from CI workflows

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
wasmer-64.toml Added bash and sendmail dependencies
wasmer-32.toml Added bash and sendmail dependencies
wasix-test-server.sh Updated to use --volume instead of --mapdir
wasix-execute.sh Removed obsolete script
wasix-execute-eh.sh Updated to use --volume and removed SMTP configuration
wasix-configure.sh Removed obsolete script
wasix-configure-eh.sh Switched to wasixcc toolchain, added PROG_SENDMAIL, simplified compiler flags
wasix-build.sh Removed obsolete script
main/main.c Removed sendmail_username and sendmail_password INI entries
ext/standard/mail.c Removed custom WASI sendmail implementation
ext/standard/config.m4 Removed WASIX_SENDMAIL_LIBS configuration
build/php.m4 Changed from libstdc++ to libc++ (c++)
.github/workflows/wasix-pr.yaml Consolidated jobs with matrix strategy, removed secrets, switched to wasixcc
.github/workflows/release.yaml Removed secrets passing
.github/workflows/release-dev.yaml Removed secrets passing

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

SENDMAIL_DEFAULT_USERNAME: ${{ secrets.SENDMAIL_DEFAULT_USERNAME }}
SENDMAIL_DEFAULT_PASSWORD: ${{ secrets.SENDMAIL_DEFAULT_PASSWORD }}
run: |
export SYSROOT=$(pwd)/sysroot/wasix-sysroot-eh/sysroot
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.

The SYSROOT environment variable is being exported but appears to be unused. The wasixcc toolchain (installed via the wasix-org/wasixcc action) manages its own sysroot internally, and the wasix-configure-eh.sh script no longer references this variable. Consider removing this line to avoid confusion.

Suggested change
export SYSROOT=$(pwd)/sysroot/wasix-sysroot-eh/sysroot

Copilot uses AI. Check for mistakes.
--with-pgsql=$PHP_WASIX_DEPS/pgsql-eh --with-pdo-pgsql=$PHP_WASIX_DEPS/pgsql-eh --enable-intl \
--with-pdo-sqlite --enable-ftp --enable-igbinary --with-imagick \
--with-pgsql="$PHP_WASIX_DEPS"/pgsql-eh --with-pdo-pgsql="$PHP_WASIX_DEPS"/pgsql-eh --enable-intl \
--with-pdo-sqlite --enable-ftp --enable-igbinary --with-imagick --with-iconv="$PHP_WASIX_DEPS"/iconv-eh \
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.

There's a double space after --with-imagick on this line. While this typically doesn't cause issues with shell argument parsing, it's inconsistent with the formatting of other configure options. Consider removing the extra space for consistency.

Suggested change
--with-pdo-sqlite --enable-ftp --enable-igbinary --with-imagick --with-iconv="$PHP_WASIX_DEPS"/iconv-eh \
--with-pdo-sqlite --enable-ftp --enable-igbinary --with-imagick --with-iconv="$PHP_WASIX_DEPS"/iconv-eh \

Copilot uses AI. Check for mistakes.

[dependencies]
"wasmer/bash" = "=1.0.25"
"sendmail/sendmail" = "0.1.5"
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.

The bash dependency uses an exact version match ("=1.0.25") while the sendmail dependency uses a caret version range ("0.1.5", implicitly "^0.1.5"). This inconsistency could lead to different update behaviors. Consider using consistent version constraints across dependencies - either both exact matches or both ranges - unless there's a specific reason for the difference.

Suggested change
"sendmail/sendmail" = "0.1.5"
"sendmail/sendmail" = "=0.1.5"

Copilot uses AI. Check for mistakes.

[dependencies]
"wasmer/bash" = "=1.0.25"
"sendmail/sendmail" = "0.1.5"
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.

The bash dependency uses an exact version match ("=1.0.25") while the sendmail dependency uses a caret version range ("0.1.5", implicitly "^0.1.5"). This inconsistency could lead to different update behaviors. Consider using consistent version constraints across dependencies - either both exact matches or both ranges - unless there's a specific reason for the difference.

Suggested change
"sendmail/sendmail" = "0.1.5"
"sendmail/sendmail" = "=0.1.5"

Copilot uses AI. Check for mistakes.
@zebreus zebreus force-pushed the zebreus-8.1.32-wasix branch from b692c64 to 793f508 Compare February 17, 2026 15:35
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