Opened 18 months ago

Last modified 3 months ago

#67476 assigned defect

postgis3 @3.2.0_5+postgresql14+proj8+raster+topology: Dependency requires c++14 instead of 11 now.

Reported by: beporter (Brian Porter) Owned by: Veence (Vincent)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc: judaew (Vadym-Valdis Yudaiev), blair (Blair Zajac)
Port: postgis3 protobuf-c

Description (last modified by beporter (Brian Porter))

  • Cleaned and ran sudo port install postgis3 again: Failed again.
  • Checked the problem hotlist: Not listed.
  • Searched for existing tickets: #67339 is similar but looks to be a missing directory, not CXX_STANDARD related.
  • Problem is specific to compilation.
  • Problem is not related to port upgrade.

This seems to be the relevant bit from the log file:

:info:build In file included from flatgeobuf_c.cpp:26:
:info:build In file included from ./feature_generated.h:7:
:info:build In file included from include/flatbuffers/flatbuffers.h:20:
:info:build In file included from include/flatbuffers/base.h:241:
:info:build In file included from /opt/local/include/absl/strings/string_view.h:39:
:info:build In file included from /opt/local/include/absl/base/attributes.h:37:
:info:build In file included from /opt/local/include/absl/base/config.h:86:
:info:build /opt/local/include/absl/base/policy_checks.h:79:2: error: "C++ versions less than C++14 are not supported."
:info:build #error "C++ versions less than C++14 are not supported."

Assuming absl is actually abseil, then there's a recent release note indicating it now requires c++14.

This must be a second-level dependency though, because the Postgis3 Portfile doesn't contain any reference to c++11. Possibly protobuf-c, which is a dependency of postgis3 and has compiler.cxx_standard 2011 in its Portfile?

Change History (8)

comment:1 Changed 18 months ago by beporter (Brian Porter)

Description: modified (diff)

comment:2 Changed 18 months ago by beporter (Brian Porter)

I was able to work around this by:

  1. Opening the error log: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_postgis3/postgis3/main.log
  2. Grabbing the cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_postgis3/postgis3/work/postgis-3.2.0" command from the log,
  3. Editing /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_postgis3/postgis3/work/postgis-3.2.0/deps/flatgeobuf/Makefile:
    - CXX = /usr/bin/clang -std=c++11 -x c++
    + CXX = /usr/bin/clang -std=c++14 -x c++
    
  4. Running the build command from the log: sudo /usr/bin/make -j10 -w all ICONV_LDFLAGS='-L/opt/local/lib -liconv' PGSQL_DOCDIR=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_postgis3/postgis3/work/destroot/opt/local/share/doc/postgresql14 PGSQL_MANDIR=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_postgis3/postgis3/work/destroot/opt/local/share/man
  5. Running sudo make install
  6. Force-activating the port: sudo port -f activate postgis3

comment:3 Changed 18 months ago by jmroot (Joshua Root)

Cc: judaew added
Owner: set to Veence
Status: newassigned

comment:4 Changed 18 months ago by beporter (Brian Porter)

Created a quick pull request, if that helps: https://github.com/macports/macports-ports/pull/18979

comment:5 Changed 18 months ago by beporter (Brian Porter)

comment:6 Changed 13 months ago by blair (Blair Zajac)

Has the issue been addressed with the [3b926192b429b0cdba25ddaebbc20041a04830c4/macports-ports] fix? Can this bug be closed?

Last edited 3 months ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:7 Changed 13 months ago by blair (Blair Zajac)

Cc: blair added

comment:8 Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)

The above mentioned commit simply uses compiler.cxx_standard 2014 in the protobuf-c port. This tells MacPorts to pick a C++14-capable compiler when compiling protobuf-c. This ticket is about a build failure of the postgis3 port so no, a change to the protobuf-c port won't fix that.

Adding compiler.cxx_standard 2014 to the postgis3 port may not be sufficient. It may also be necessary to add configure.cxxflags-append -std=c++14.

Note: See TracTickets for help on using tickets.