Page MenuHomeFreeBSD

lang/ecl: Add SAGE option

Authored by salvadore on Jun 1 2020, 5:36 PM.
Referenced Files
Unknown Object (File)
Mon, Mar 6, 4:21 AM
Unknown Object (File)
Feb 23 2023, 10:16 PM
Unknown Object (File)
Feb 23 2023, 10:16 PM
Unknown Object (File)
Feb 23 2023, 10:15 PM
Unknown Object (File)
Feb 23 2023, 10:15 PM
Unknown Object (File)
Feb 21 2023, 6:00 AM
Unknown Object (File)
Dec 24 2022, 6:16 AM
Unknown Object (File)
Dec 23 2022, 8:00 AM



Introduce a new option called SAGE and enabled by default in order to have ecl working with sage.


  • Move bohem-gc dependency from THREADS_LIB_DEPENDS_OFF to LIB_DEPENDS.
  • Build with libatomic_ops from ports rather than with the bundled library.
  • Replace explicit settings of CFLAGS and LDFLAGS by USES=localbase.
  • Add USES+= autoreconf.

This work is based on submitted by thierry@.

Diff Detail

rP FreeBSD ports repository
Lint Not Applicable
Tests Not Applicable

Event Timeline

@thierry: As you can see, I have not defined THREADS_BROKEN= fails to build: segmentation fault. Indeed I tested everything successfully without any segmentation fault.

I am happy to defer to @thierry for approving this, and if you have his Approved by: you also have mine (as mentor).

That said, while I don't speak Lisp very well ;) and have not gone into details as far as the patches under files/ are concerned, the general changes look fine.

For the commit message, perhaps don't separate

Add USES+= ... localbase



but note something like "Replace explicit settings of CFLAGS and LDFLAGS by USES=localbase"?

Thanks Gerald!

I agree with your suggestion about the commit message and I fixed accordingly the summary of the review.
How should I write Thierry's approval in the commit message (if I get it)? Is putting his name enough or should I put something in parenthesis such as "(original submitter)"?

Remark 1: the first time I built it on my workstation, without deinstalling my proposed version of ecl-sage, I got this error:
Error: /usr/local/bin/ecl is linked to /usr/local/lib// from lang/ecl-sage but it is not declared as a dependency
This means that it tries at first to link with the installed library, and this could possibly cause problem when upgrading.

Remark 2: when devel/libatomic_ops is installed, it is detected by configure and used:

checking atomic_ops.h usability... yes
checking atomic_ops.h presence... yes
checking for atomic_ops.h... yes
checking libatomic-ops version ... system

and when it uses the external libatomic_ops, it does not install anymore all the %%THREADS%%include/ecl/atomic_ops/* files
-> it should either be disabled or registered (best solution IMHO).

But besides these points, the version of maxima proposed in D24959 builds and works fine for me, and Sage is able to run the examples related to Maxima without problem.

N.B.: the maintainer is olgeni@, he must approve these changes, not me!

Thanks Thierry for your comments.

I addressed Remark 2 by enforcing the use of libatomic_ops from ports instead of the bundled version.

As for remark 1, I think the solution is to warn users by writing a message in UPDATING each time ecl is updated with a version that breaks compatibility, similarly to what is often done with qt5-webengine. If I am not wrong, ecl is not updated often so it should not be too annoying.

@gerald: In case you meant to say that I have your mentor approval once I have maintainer's approval from olgeni, I already know that I have to put "(maintainer)" beside olgeni's name. Just please confirm that you meant olgeni instead of thierry.

salvadore edited the summary of this revision. (Show Details)

Just please confirm that you meant olgeni instead of thierry.

I meant thierry, but that was because I missed olgeni being the maintainer. ;-)

Probably good to acknowledge thierry with a Tested by: or, in case you are taking substantial pieces, Submitted by:? You are in a better position to assess this.

This revision is now accepted and ready to land.Jun 3 2020, 7:38 AM

OK for me. Good job! \o/

This revision was automatically updated to reflect the committed changes.

@thierry: Do not forget to close revision which is now obsolete. See you soon on the maxima review ( !