Opened 21 months ago
Closed 21 months ago
#66824 closed defect (fixed)
php70-mbstring @7.0.33: error: incomplete definition of type 'struct php_mb_re_pattern_buffer'
Reported by: | Lomantik | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.8.1 |
Keywords: | Cc: | ||
Port: | php |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
I'm trying to install the port on my MacBook Air (M1) and getting the error. Here is the log from my terminal:
# sudo port install php70-mbstring ---> Computing dependencies for php70-mbstring ---> Fetching archive for php70-mbstring ---> Attempting to fetch php70-mbstring-7.0.33_0.darwin_22.arm64.tbz2 from https://fra.de.packages.macports.org/php70-mbstring ---> Attempting to fetch php70-mbstring-7.0.33_0.darwin_22.arm64.tbz2 from https://packages.macports.org/php70-mbstring ---> Attempting to fetch php70-mbstring-7.0.33_0.darwin_22.arm64.tbz2 from https://nue.de.packages.macports.org/php70-mbstring ---> Building php70-mbstring Error: Failed to build php70-mbstring: command execution failed Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_php/php70-mbstring/main.log for details. Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug. Error: Processing of port php70-mbstring failed
I'm attaching the main.log file (compressed with gzip).
Attachments (1)
Change History (5)
Changed 21 months ago by Lomantik
Attachment: | main.log.gz added |
---|
comment:1 Changed 21 months ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|---|
Owner: | set to ryandesign |
Port: | php added; php70-mbstring removed |
Status: | new → assigned |
Summary: | php70-mbstring building error → php70-mbstring @7.0.33: error: incomplete definition of type 'struct php_mb_re_pattern_buffer' |
comment:2 Changed 21 months ago by ryandesign (Ryan Carsten Schmidt)
Status: | assigned → accepted |
---|
This is an incompatibility with oniguruma 6.8.1 and later.
To work around it, deactivate oniguruma6 first and (assuming you still want it for other reasons) reactivate it later:
sudo port -f deactivate oniguruma6 sudo port clean php70-mbstring sudo port install php70-mbstring sudo port activate oniguruma6
(Trace mode (sudo port -t install php70-mbstring
) would also work around the problem except that trace mode is currently broken on macOS Ventura and later; see #66358.)
This is the upstream bug report:
Here is FreeBSD's bug report about it:
https://bugs.freebsd.org/226717
This is the fix which went into PHP 7.1 and later:
https://github.com/php/php-src/commit/4072b2787074ee8e247a6639585b49e10c5a55fe
php74-mbstring and later depend on and require MacPorts oniguruma6 to be installed. php73-mbstring and earlier have a bundled copy of oniguruma but php54-oniguruma and later will use the MacPorts oniguruma6 port if it is installed, which I didn't realize before.
I need to either make php54-mbstring through php73-mbstring not use a MacPorts oniguruma if installed, or I need to backport that fix to php 7.0 and earlier and add the oniguruma6 dependency to php54-mbstring through php73-mbstring.
comment:3 Changed 21 months ago by Lomantik
Wow! It was very fast! Thanks for the fast answer! You helped me!
comment:4 Changed 21 months ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
I'll have to investigate. The error in the log is: