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 and Python?

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 the config.log file and the entire compilation output.
Edited by Steve