Opened 3 years ago

Closed 2 years ago

#63169 closed defect (fixed)

graphviz @2.40.1: error: no member named 'min' in namespace 'std::__1'

Reported by: johnrmoyer Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: Cc: mascguy (Christopher Nielsen)
Port: graphviz, graphviz-devel

Description

Does strchr produce an error because it is a security risk? Is it in the wrong namespace? Should graphviz be compiled as C instead of C++? I am unfamiliar with graphviz. Thanks in advance. (I am new to MacPorts, in case that was not obvious)

--->  Fetching archive for graphviz
--->  Attempting to fetch graphviz-2.40.1_4+pangocairo+x11.darwin_20.x86_64.tbz2 from https://packages.macports.org/graphviz
--->  Attempting to fetch graphviz-2.40.1_4+pangocairo+x11.darwin_20.x86_64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/graphviz
--->  Attempting to fetch graphviz-2.40.1_4+pangocairo+x11.darwin_20.x86_64.tbz2 from https://mse.uk.packages.macports.org/graphviz
--->  Fetching distfiles for graphviz
--->  Verifying checksums for graphviz
--->  Extracting graphviz
--->  Applying patches to graphviz
--->  Configuring graphviz
Warning: Configuration logfiles contain indications of -Wimplicit-function-declaration; check that features were not accidentally disabled:
  strchr: found in graphviz-2.40.1/config.log
--->  Building graphviz
Error: Failed to build graphviz: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_graphviz/graphviz/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port gimp failed

Attachments (1)

main.log (679.2 KB) - added by johnrmoyer 3 years ago.
/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_graphviz/graphviz/main.log

Download all attachments as: .zip

Change History (12)

comment:1 Changed 3 years ago by johnrmoyer

https://github.com/aferrero2707/gimp-appimage/issues/61

<blockquote>

The solution is install graphviz packages. However that dependency seems to be optional as previous post

INSTALL: adding infos about dot for "gegl:introspect" dependency. Especially now that this is not a blocking build dependency on GEGL, we want to have the information somewhere so that packagers (and other people building GIMP themselves) know this is at least an optional runtime dependency.

This trick worked for me on Ubuntu-MATE 20.04 Thanks a lot

</blockquote>

comment:2 Changed 3 years ago by johnrmoyer

https://github.com/GNOME/gimp/commit/2cae9b9acf9da98c4c9990819ffbd5aabe23017e

app: make "gegl:introspect" an optional operation dependency. Check at runtime for the operation availability and set the "Show Image Graph" action active depending on this check.

This goes with discussions to make this operation optional with a runtime check for the tool dot. See: https://gitlab.gnome.org/GNOME/gegl/-/merge_requests/84

comment:3 Changed 3 years ago by kencu (Ken)

the third line from the bottom in your initial ticket report gives you the path to the main.log of your failed build.

If you copy that somewhere and then attach it to this ticket someone will take a look and see what might have gone wrong.

Changed 3 years ago by johnrmoyer

Attachment: main.log added

/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_graphviz/graphviz/main.log

comment:4 Changed 3 years ago by johnrmoyer

https://gitlab.com/graphviz/graphviz/-/issues/1785 suggests a fix because of a namespace collision with a llvm C++ library.

Gimp suggests graphviz is an optional dependency

https://github.com/aferrero2707/gimp-appimage/issues/61

<blockquote>

The solution is install graphviz packages. However that dependency seems to be optional as previous post

INSTALL: adding infos about dot for "gegl:introspect" dependency. Especially now that this is not a blocking build dependency on GEGL, we want to have the information somewhere so that packagers (and other people building GIMP themselves) know this is at least an optional runtime dependency.

This trick worked for me on Ubuntu-MATE 20.04 Thanks a lot

</blockquote>

comment:5 in reply to:  description Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Keywords: gimp strchr graphviz removed
Port: graphviz added; gimp removed
Summary: gimp does not build with an error in graphvizgraphviz @2.40.1: error: no member named 'min' in namespace 'std::__1'

Replying to johnrmoyer:

Does strchr produce an error because it is a security risk?

In this case, the message about strchr does not indicate any problem. I will add code to the portfile to suppress the message.

The first error in the log is:

:info:build /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/__bit_reference:172:38: error: no member named 'min' in namespace 'std::__1'
:info:build         __storage_type __dn = _VSTD::min(__clz_f, __n);
:info:build                               ~~~~~~~^

Indeed this looks like https://gitlab.com/graphviz/graphviz/-/issues/1785 as you said. Since that was fixed months ago, I presume updating graphviz to the latest stable version will fix this problem. That's #62165.

comment:6 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: set to ryandesign
Port: graphviz-devel added
Status: newaccepted

comment:7 Changed 3 years ago by johnrmoyer

Keywords: gimp strchr graphviz added
Port: gimp added; graphviz graphviz-devel removed
Summary: graphviz @2.40.1: error: no member named 'min' in namespace 'std::__1'gimp does not build with an error in graphviz

Thanks for patiently helping someone who is new to MacPorts John

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

Keywords: gimp strchr graphviz removed
Port: graphviz graphviz-devel added; gimp removed
Summary: gimp does not build with an error in graphvizgraphviz @2.40.1: error: no member named 'min' in namespace 'std::__1'

comment:9 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

In fd6b272deea2cb553385f0fd323c8bcfee51e06b/macports-ports (master):

graphviz, graphviz-devel: Prevent strchr warning

Prevent innocuous message about implicit declaration of strchr. This is
an intentional feature of autoconf in which it is checking how the
compiler reports an implicit function declaration.

See: #63169

comment:10 Changed 3 years ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:11 Changed 2 years ago by jjstickel (Jonathan Stickel)

Resolution: fixed
Status: acceptedclosed

In 564fd38ea3598b80f10c97146e28809313c22d70/macports-ports (master):

graphviz: update to 2.48.0

Closes: #63169
Closes: #62165
Closes: #61800
Closes: #59026
Closes: #58457

Note: See TracTickets for help on using tickets.