graph-tool 2.57 build fails on macOS Ventura
Bug reports:
Please follow the general troubleshooting steps first:
-
Are you running the latest graph-tool
version? -
Do you observe the problem with the current git version? -
Are you using Macports or Homebrew? If yes, please submit an issue there instead: https://github.com/Homebrew/brew/issues and https://trac.macports.org/newticket -
Did you compile graph-tool
manually? -
If you answered yes above, did you use the exact same compiler to build graph-tool
,boost-python
andPython
?
I'm the graph-tool
maintainer for MacPorts. graph-tool
builds fail on macOS Ventura boxes. I tested separately on a Mac Studio with an M2 Ultra, an MBA with an M1, and a Mac Mini x86_64, and see the same issue. The exact same build procedure works for graph-tool
version 2.46.
The build errors are:
:info:build In file included from ./src/graph/graph.hh:42:
:info:build ./src/graph/graph_properties.hh:466:19: error: no template named 'unary_function' in namespace 'std'; did you mean '__unary_function'?
:info:build : public std::unary_function<typename IndexMap::key_type, size_t>
:info:build ~~~~~^~~~~~~~~~~~~~
:info:build __unary_function
A full log file is attached with ./configure
and other outputs:
main_py310-graph-tool_x86_64.log.gz
Build environment:
macOS 13.4.1 22F770820d arm64 Xcode 14.3.1 14E300c Python 3.10
The MacPorts build routines are standard based on graph-tool
build-from-source instructions and have been more-or-less working on x86_64
boxes for years:
https://github.com/macports/macports-ports/blob/master/python/py-graph-tool/Portfile
Do not forget to supply the following information:
-
A minimal and self-contained example that shows the problem. -
Your operating system. -
The Python version you are using. -
If you compiled graph-tool manually: Your compiler version, as well as the version of Boost being used. -
If you are reporting a compilation error, please provide the entire ./configure
output, as well as the entire contents of theconfig.log
file and the entire compilation output.