Opened 2 years ago

#64106 new defect

graphviz @2.49.3_0: language binding variants of graphviz missing build dependency on swig-go

Reported by: outis Owned by:
Priority: Low Milestone:
Component: ports Version: 2.7.1
Keywords: haspatch Cc:
Port: graphviz

Description

While graphviz @2.49.3_0 (note: this also affected other versions after @2.40.1_4) will compile with the default variants (+pangocairo+x11), it will fail during build after adding any of the language-binding variants. (Note: I've only directly confirmed this with some combinations: +pangocairo+x11+ocaml, +pangocairo+x11+ruby, +pangocairo+x11+tcl, +pangocairo+x11+guile+java+lua+perl. That it will fail with any language-binding variant is based on the error and the dependencies; more on this below.)

Examining the build log (attached for +pangocairo+x11+tcl) reveals an error about go.swg missing:

:info:build make[4]: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_graphviz/graphviz/work/graphviz-2.49.3/tclpkg/gv'
[...]
:info:build swig -c++ -go -intgosize 32 -o gv_go.cpp ./gv.i
:info:build :3: Error: Unable to find 'go.swg'
:info:build make[4]: *** [gv_go.cpp] Error 1

After that, the log is mostly waiting for unfinished jobs, errors & exits.

A bit of research online suggests "go.swg" should be a part of swig, though it wasn't present in either of my local installs of the swig or swig3 ports. I hadn't installed swig-go or swig3-go, so I did so and tried again. graphviz then built successfully for the language binding variants combined, with the exception of +ocaml (which had a different error). Specifically, building graphviz +guile+java+lua+pangocairo+perl+python27+poppler+rsvg+ruby+smyrna+tcl+x11 succeeded.

The fix would appear to be to add swig-go as a dependency to the variants that depend on any swig-* port (see attached patch). To check, I cleaned graphviz & rebuilt after updating the graphviz Portfile, and installing graphviz first installed swig-go then built successfully.

As for establishing which variants were affected, I checked the dependencies for all variants of graphviz, looking for any swig-* ports:

$ port deps graphviz +gdk_pixbuf+glitz+guile+java+lua+ming+ocaml+pangocairo+perl+poppler+python27+r+rsvg+ruby+smyrna+tcl+x11
Full Name: graphviz @2.49.3_0+gdk_pixbuf+glitz+guile+java+lua+ming+ocaml+pangocairo+perl+poppler+python27+r+rsvg+ruby+smyrna+tcl+x11
Build Dependencies:   pkgconfig, autoconf-archive, autoconf, automake, libtool,
                      swig-guile, swig-lua, swig-ocaml, swig-perl, swig-python,
                      swig-ruby, swig-tcl, swig-java, swig-r
Library Dependencies: libjpeg-turbo, libpng, webp, fontconfig, freetype, expat,
                      gd2, gts, libtool, zlib, gettext, guile, lua, ocaml,
                      perl5, python27, ruby, tcl, freeglut, gtk2, gtkglext,
                      libglade2, librsvg, gtk2, glitz, ming, pango, libLASi,
                      poppler, xorg-libXaw
Runtime Dependencies: urw-fonts

The swig-* dependencies all had corresponding language binding variants, which I took as evidence that all such variants are affected.

Attachments (2)

graphviz-swig-go.patch (3.6 KB) - added by outis 2 years ago.
fix: adds swig-go build dependencies
graphviz-main.log.bz2 (97.3 KB) - added by outis 2 years ago.
log for failing build of +pangocairo+x11+tcl variants

Download all attachments as: .zip

Change History (2)

Changed 2 years ago by outis

Attachment: graphviz-swig-go.patch added

fix: adds swig-go build dependencies

Changed 2 years ago by outis

Attachment: graphviz-main.log.bz2 added

log for failing build of +pangocairo+x11+tcl variants

Note: See TracTickets for help on using tickets.