[MacPorts] #67568: inkscape @1.2.2: Symbol not found: (__ZN3Gtk6Widget20get_accessible_vfuncEv)

MacPorts noreply at macports.org
Sun Jun 4 06:24:39 UTC 2023


#67568: inkscape @1.2.2: Symbol not found:
(__ZN3Gtk6Widget20get_accessible_vfuncEv)
-------------------------------+----------------------
  Reporter:  ryandesign        |      Owner:  mascguy
      Type:  defect            |     Status:  assigned
  Priority:  Normal            |  Milestone:
 Component:  ports             |    Version:  2.8.1
Resolution:                    |   Keywords:  monterey
      Port:  inkscape, gtkmm3  |
-------------------------------+----------------------
Changes (by ryandesign):

 * cc: dbevans (added)
 * port:  inkscape => inkscape, gtkmm3


Comment:

 Replying to [ticket:67568 ryandesign]:
 > {{{
 >   inkscape @1.2.2_3+x11 (active) requested_variants='' platform='darwin
 21' archs='x86_64' date='2023-06-03T04:01:29-0500'
 > }}}

 The installation date shown here is misleading in that I did not build
 from source on that date; I used the private binary produced by the
 buildbot on 2023-05-05.

 Downgrading gtkmm3 to 3.24.2_0 works. This suggests something significant
 happened between gtkmm3 3.24.2 and 3.24.7. Unfortunately the
 [changeset:712c0740383bf2f33c6196e5d4eb62d642196a55/macports-ports gtkmm3
 3.24.2->3.24.7 update] in MacPorts was an overhaul of the port with many
 changes, making it difficult to know what may have caused this.

 One significant change that happened then for MacPorts is that the port
 switched from autotools to meson. It also switched dependencies from
 atkmm, cairomm, glibmm, and pangomm to atkmm-1.6, cairomm-1.0, glibmm-2.4,
 and pangomm-1.4.

 Looking in the gtkmm3 code, `get_accessible_vfunc` is only defined and
 used if `GTKMM_ATKMM_ENABLED` is defined. This makes me think that maybe
 the new gtkmm3 is not using atkmm, and that the fact that gtkmm3 was using
 atkmm at the time inkscape was built somehow seeped into the build of
 inkscape. I think this confirms it:

 {{{
 % port -q installed gtkmm3 and active
   gtkmm3 @3.24.2_0+x11 (active)
 % otool -L /opt/local/lib/libgtkmm-3.0.dylib
 /opt/local/lib/libgtkmm-3.0.dylib:
         /opt/local/lib/libgtkmm-3.0.1.dylib (compatibility version 3.0.0,
 current version 3.0.0)
         /opt/local/lib/libgdkmm-3.0.1.dylib (compatibility version 3.0.0,
 current version 3.0.0)
         /opt/local/lib/libatkmm-1.6.1.dylib (compatibility version 3.0.0,
 current version 3.0.0)
         /opt/local/lib/libgiomm-2.4.1.dylib (compatibility version 5.0.0,
 current version 5.0.0)
         /opt/local/lib/libpangomm-1.4.1.dylib (compatibility version
 2.0.0, current version 2.30.0)
         /opt/local/lib/libglibmm-2.4.1.dylib (compatibility version 5.0.0,
 current version 5.0.0)
         /opt/local/lib/libcairomm-1.0.1.dylib (compatibility version
 6.0.0, current version 6.0.0)
         /opt/local/lib/libsigc-2.0.0.dylib (compatibility version 1.0.0,
 current version 1.0.0)
         /opt/local/lib/libgtk-3.0.dylib (compatibility version 2405.0.0,
 current version 2405.19.0)
         /opt/local/lib/libgdk-3.0.dylib (compatibility version 2405.0.0,
 current version 2405.19.0)
         /opt/local/lib/libpangocairo-1.0.0.dylib (compatibility version
 4801.0.0, current version 4801.10.0)
         /opt/local/lib/libpango-1.0.0.dylib (compatibility version
 4801.0.0, current version 4801.10.0)
         /opt/local/lib/libharfbuzz.0.dylib (compatibility version
 20901.0.0, current version 20901.0.0)
         /opt/local/lib/libatk-1.0.0.dylib (compatibility version
 23610.0.0, current version 23610.1.0)
         /opt/local/lib/libcairo-gobject.2.dylib (compatibility version
 11707.0.0, current version 11707.0.0)
         /opt/local/lib/libcairo.2.dylib (compatibility version 11707.0.0,
 current version 11707.0.0)
         /opt/local/lib/libgdk_pixbuf-2.0.0.dylib (compatibility version
 4201.0.0, current version 4201.2.0)
         /opt/local/lib/libgio-2.0.0.dylib (compatibility version 6201.0.0,
 current version 6201.6.0)
         /opt/local/lib/libgobject-2.0.0.dylib (compatibility version
 6201.0.0, current version 6201.6.0)
         /opt/local/lib/libglib-2.0.0.dylib (compatibility version
 6201.0.0, current version 6201.6.0)
         /opt/local/lib/libintl.8.dylib (compatibility version 10.0.0,
 current version 10.5.0)
         /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current
 version 1200.3.0)
         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
 version 1311.0.0)
 }}}

 {{{
 % port -q installed gtkmm3 and active
   gtkmm3 @3.24.7_0+x11 (active)
 % otool -L /opt/local/lib/libgtkmm-3.0.dylib
 /opt/local/lib/libgtkmm-3.0.dylib:
         /opt/local/lib/libgtkmm-3.0.1.dylib (compatibility version 3.0.0,
 current version 3.0.0)
         /opt/local/lib/libgdkmm-3.0.1.dylib (compatibility version 3.0.0,
 current version 3.0.0)
         /opt/local/lib/libgiomm-2.4.1.dylib (compatibility version 5.0.0,
 current version 5.0.0)
         /opt/local/lib/libglibmm-2.4.1.dylib (compatibility version 5.0.0,
 current version 5.0.0)
         /opt/local/lib/libgobject-2.0.0.dylib (compatibility version
 7601.0.0, current version 7601.2.0)
         /opt/local/lib/libglib-2.0.0.dylib (compatibility version
 7601.0.0, current version 7601.2.0)
         /opt/local/lib/libsigc-2.0.0.dylib (compatibility version 1.0.0,
 current version 1.0.0)
         /opt/local/lib/libgtk-3.0.dylib (compatibility version 2406.0.0,
 current version 2406.32.0)
         /opt/local/lib/libgdk-3.0.dylib (compatibility version 2406.0.0,
 current version 2406.32.0)
         /opt/local/lib/libcairomm-1.0.1.dylib (compatibility version
 6.0.0, current version 6.0.0)
         /opt/local/lib/libpangomm-1.4.1.dylib (compatibility version
 2.0.0, current version 2.30.0)
         /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current
 version 1300.23.0)
         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
 version 1311.100.3)
 }}}

 So I would guess the solution is to make gtkmm3 use atkmm again. The
 presence of the atkmm-1.6 dependency shows the port is intending to use
 atkmm but something appears to be going wrong.

 Looking at [https://build.macports.org/builders/ports-
 13_arm64-builder/builds/22272/steps/install-port/logs/stdio the most
 recent gtkmm3 build log from the buildbot], it says:

 {{{
 Dependency atkmm-1.6 found: YES 2.28.0 (cached)
 }}}
 {{{
          Build atkmm API: false
 }}}

 I tried leaving gtkmm3 at 3.24.7_0 and rebuilding inkscape 1.2.2_3 from
 source in trace mode but this failed.

 I tried rebuilding gtkmm3 3.24.7_0 in trace mode but this failed.

-- 
Ticket URL: <https://trac.macports.org/ticket/67568#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list