dear all, 

the eigen project [1] has released a new stable, major version (v5) a while 
ago. The v5 branch needs C++14, whereas v3 requires C++11 and an upcoming 
release will require C++17; additional from the release notes it appears there 
could be some backwards-incompatible changes between v3 and v5.

Upstream has decided to keep WORLD in its versioning WORLD.MAJOR.MINOR.PATCH 
the same for posterity, and thus the current “eigen3” port and subsequent 
releases will always conflict. I am a bit reluctant to just update to the 
latest release and assume that all other ports will just work… 

I started working on a PR [2] some time ago, but it’s not finalized yet and 
will need some changes. Before doing so I would appreciate any 
feedback/concerns/suggestions on my proposal below:

1. rename "eigen "port to “eigen2" and update its dependents (there are only a 
few dependents, and those don’t build on at least newer systems; I would be 
fine with removing them as well)

2. update “eigen3" to 3.4.1; obsolete the "eigen3-devel" port and set to 
"replaced_by eigen3"

3. add “eigen" port that tracks the latest upstream branch (currently version 
5.0.1)

To avoid conflicts I would suggest to install “eigen3” and “eigen” (and 
possible later “eigenX” ports) in ${prefix}/libexec and add a “eigen” PortGroup 
to aid in selecting the desired version. All of that similarly to the way we 
handle the “boostXYZ” ports. 

Best, 
Renee


[1] https://libeigen.gitlab.io/
[2] https://github.com/macports/macports-ports/pull/31240

Reply via email to