Opened 2 weeks ago

Last modified 2 weeks ago

#71130 new defect

segfault building gd2 on Mac OS Sequoia

Reported by: RivetBenoit (Benoit Rivet) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: gd2

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Trying to install gd2 on Mac OS Sequoia on a mid 2012 Macbook Pro (using Open Core Legacy Patcher to install Mac OS Sequoia) fails due to segfault, as shown line 2150 on the attached log file.

:info:build clang: error: unable to execute command: Segmentation fault: 11
:info:build clang: error: clang frontend command failed due to signal (use -v to see invocation)
:info:build Apple clang version 16.0.0 (clang-1600.0.26.3)
:info:build Target: x86_64-apple-darwin24.0.0
:info:build Thread model: posix
:info:build InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Lines 2163 to 2165 claim there is a crash backtrace file, but I could not find any on the location indicated in main.log.

:info:build clang: note: diagnostic msg: Crash backtrace is located in
:info:build clang: note: diagnostic msg: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_gd2/gd2/work/.home/Library/Logs/DiagnosticReports/clang_<YYYY-MM-DD-HHMMSS>_<hostname>.crash
:info:build clang: note: diagnostic msg: (choose the .crash file that corresponds to your crash)

Files attached : main.log, gd_filter-a6bcd3.c and gd_filter-a6bcd3.sh (see lines 2161 and 2162 of main.log).

I tried sudo port clean gd2 and sudo port -f selfupdate as mentionned in #71015 before attempting a new install of gd2 but this did not solve the problem. Strangely enough, gd2 installed fine on a 2012 MacMini with Mac OS Sequoia.

Attachments (3)

main.log (185.1 KB) - added by RivetBenoit (Benoit Rivet) 2 weeks ago.
gd_filter-a6bcd3.c (1.9 MB) - added by RivetBenoit (Benoit Rivet) 2 weeks ago.
gd_filter-a6bcd3.sh (7.6 KB) - added by RivetBenoit (Benoit Rivet) 2 weeks ago.

Change History (10)

Changed 2 weeks ago by RivetBenoit (Benoit Rivet)

Attachment: main.log added

Changed 2 weeks ago by RivetBenoit (Benoit Rivet)

Attachment: gd_filter-a6bcd3.c added

Changed 2 weeks ago by RivetBenoit (Benoit Rivet)

Attachment: gd_filter-a6bcd3.sh added

comment:1 Changed 2 weeks ago by RivetBenoit (Benoit Rivet)

Description: modified (diff)

comment:2 Changed 2 weeks ago by RivetBenoit (Benoit Rivet)

It would be nice if Macports could provide a precompiled version of gd2. In https://trac.macports.org/ticket/71004 ryandesign claims that

In the case of gd2, precompiled packages are not available because the license does not allow us to distribute them.

However, https://libgd.github.io/manuals/2.3.0/files/license-txt.html reads

Credits and license terms

In order to resolve any possible confusion regarding the authorship of gd, the following copyright statement covers all of the authors who have required such a statement. If you are aware of any oversights in this copyright notice, please contact Pierre-A. Joye who will be pleased to correct them.

(...)

Permission has been granted to copy, distribute and modify gd in any context without fee, including a commercial application, provided that this notice is present in user-accessible supporting documentation.

(...)

I don't understand why this prevents Macports to distribute precompiled packages (but I may have missed something in the license terms).

Version 0, edited 2 weeks ago by RivetBenoit (Benoit Rivet) (next)

comment:3 in reply to:  2 Changed 2 weeks ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)

Replying to RivetBenoit:

I don't understand why this prevents Macports to distribute precompiled packages (but I may have missed something in the license terms).

We believe we are not allowed to provide binaries of gd2 because:

% macports-infrastructure/jobs/port_binary_distributable.tcl -v gd2
"gd2" is not distributable because its license "gd" conflicts with license "GPL-3+" of dependency "gdbm"

comment:4 Changed 2 weeks ago by jmroot (Joshua Root)

It would be nice to split perl's gdbm support into a separate port (as we do for python). Failing that, it might be possible to add license_noconflict to the ports in the gd2 dependencies that are depending on perl, as long as they don't use the gdbm module.

comment:5 in reply to:  description ; Changed 2 weeks ago by ryandesign (Ryan Carsten Schmidt)

Replying to RivetBenoit:

:info:build clang: error: unable to execute command: Segmentation fault: 11

If you have a reproducible way to crash clang, I think you need to report that information to Apple; I don't think we can help with that.

If the crash log isn't where they said it should be, check other locations like /Library/Logs/DiagnosticReports, /opt/local/var/macports/home/Library/Logs/DiagnosticReports, and /var/root/Library/Logs/DiagnosticReports.

comment:6 in reply to:  4 Changed 2 weeks ago by ryandesign (Ryan Carsten Schmidt)

Replying to jmroot:

Failing that, it might be possible to add license_noconflict to the ports in the gd2 dependencies that are depending on perl, as long as they don't use the gdbm module.

perl5.34 is the only port in gd2's recursive dependencies that depends on gdbm. Lots of ports in gd2's recursive dependencies depend on perl5.34, primarily git and all the perl modules it depends on but also help2man, ossp-uuid, and texinfo. I don't know whether any of these use perl's gdbm features.

comment:7 in reply to:  5 Changed 2 weeks ago by ryandesign (Ryan Carsten Schmidt)

Replying to ryandesign:

If the crash log isn't where they said it should be, check other locations like /Library/Logs/DiagnosticReports, /opt/local/var/macports/home/Library/Logs/DiagnosticReports, and /var/root/Library/Logs/DiagnosticReports.

If you can't find the clang crash log from the MacPorts build of gd2, you could try compiling gd2 manually outside of MacPorts. If that also crashes clang, the crash log should be in your home directory under ~/Library/Logs/DiagnosticReports.

Note: See TracTickets for help on using tickets.