Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#41935 closed defect (fixed)

Mismatch between gtk3 / gtk3mm?

Reported by: Veence (Vincent) Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 2.2.1
Keywords: Cc: neverpanic (Clemens Lang)
Port: gktmm3

Description

When trying to run inkscape-devel +gtk3, I get the following error:

dyld: lazy symbol binding failed: Symbol not found: _gtk_plug_get_type
  Referenced from: /opt/local/lib/libgtkmm-3.0.1.dylib
  Expected in: /opt/local/lib/libgtk-3.0.dylib

dyld: Symbol not found: _gtk_plug_get_type
  Referenced from: /opt/local/lib/libgtkmm-3.0.1.dylib
  Expected in: /opt/local/lib/libgtk-3.0.dylib

Which seems to suggest that the versions of gtk3 and gtkmm3 are no more synchronized. Any clue?

Change History (14)

comment:1 Changed 10 years ago by dbevans (David B. Evans)

I can't reproduce the problem here. I'm using +x11 for gtk3, gtkmm3 and inkscape-devel +gtk3

Tell me more about your builds. Have you built gtk3 with the +quartz variant? gtk_plug_get_type is not built for +quartz. Make sure that gtkmm3 is built with the same variants as gtk3. What about gtkmm3?

I would try rebuilding gtkmm3 using the same variants as gtk3 and see if that helps.

comment:2 Changed 10 years ago by Veence (Vincent)

I have built default versions of gtk3 and gtkmm3 (gtk3 defaults to +quartz, yes).

Air > port installed gtkmm3
The following ports are currently installed:
  gtkmm3 @3.10.1_1 (active)

Air > port installed gtk3
The following ports are currently installed:
  gtk3 @3.10.6_1+no_x11+quartz (active)

I see no way to build gtkmm3 with a +quartz variant:

Air > port info gtkmm3
gtkmm3 @3.10.1_1 (x11, devel)
Variants:             universal

comment:3 Changed 10 years ago by dbevans (David B. Evans)

Sorry I misspoke, gtkmm3 does not have a +quartz variant.

If your gtk3 is installed with +quartz (default is +x11, so I'm assuming you have +quartz set in variants.conf) then make sure that dependents cairomm, pangomm of gtkmm are built with +quartz and then rebuild gtkmm3.

comment:4 Changed 10 years ago by Veence (Vincent)

I'll check that right away. I apologize, my precedent message was a bit blunt.

comment:5 Changed 10 years ago by Veence (Vincent)

They are already correct :

Air > port installed cairomm
The following ports are currently installed:
  cairomm @1.10.0_3+quartz (active)

Air > port installed pangomm
The following ports are currently installed:
  pangomm @2.34.0_2+quartz (active)

By the way, you're right, I have specified +quartz and +no_x11 in my defaults.conf…

comment:6 Changed 10 years ago by dbevans (David B. Evans)

Ok, so go ahead and rebuild gtkmm3 from source.

sudo port -ns upgrade --force gtkmm3

If this works then it tends to support my operating theory that you have a gtkmm3 that was build with gtk3 +x11 (such as the one that is available from archive) rather than gtk3 +quartz (which you have on your system). If so, then I will fix the gtkmm3 port to prevent this (add +x11 +quartz variants, check variants of dependencies, etc).

comment:7 Changed 10 years ago by Veence (Vincent)

Bingo! You were spot-on. Thanks a lot! I guess you're right, gtkmm3 needs some variants to avoid this mingling. Thanks again! I let you close the ticket when you're done with the update, maybe.

comment:8 Changed 10 years ago by dbevans (David B. Evans)

Owner: changed from macports-tickets@… to devans@…
Status: newassigned

comment:9 Changed 10 years ago by dbevans (David B. Evans)

Cc: devans@… removed

comment:10 Changed 10 years ago by dbevans (David B. Evans)

Keywords: gtk3 gtkmm3 removed
Port: gtk3 removed

comment:11 Changed 10 years ago by dbevans (David B. Evans)

Resolution: fixed
Status: assignedclosed

Fix committed in r115185. This same change was already incorporated in gtkmm but somehow missed getting into gtkmm3. Thanks for your report.

Last edited 10 years ago by dbevans (David B. Evans) (previous) (diff)

comment:12 Changed 10 years ago by Veence (Vincent)

You're most welcome. By the way, with gtk3, I got a lot of error messages from Inkscape

*** BUG ***
In void pixman_region32_init_rect(region_type_t *, int, int, unsigned int, unsigned int): Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

Do you get them also?

comment:13 Changed 10 years ago by dbevans (David B. Evans)

No, I haven't seen this but most of the testing I've done of the +gtk3 variant has been done with +x11 and not +quartz. Note that the Inkscape developers consider this to be an experimental build, WIP. But that's why I added the +gtk3 variant -- so the developers could get more testing feedback. I suggest that you report whatever bugs (and possibly solutions) you find upstream as well as here so they (and we) are aware of the problem. You can report bugs here.

However, note that they have just today declared code 'Chill' today, the first step preparing for a new stable release to be numbered 0.91 which will not include GTK3 support. Focus is on cleanup, fixing of regressions, etc, in the GTK2 code.

Using +x11 the most notable problem I have seen is a lot of flashing when redrawing the display particularly during resizing and scrolling of windows that contain images larger than the window.

comment:14 Changed 10 years ago by Veence (Vincent)

Thanks for the info. In my opinion, the GTK3 interface looks smarter and somehow closer to what we are used on native Cocoa UI.

FYI, I also get the same behavior when scrolling windows. Lot of flickering. Go figure, thanks for the link to report bug.

Thanks again and happy 2014!

Note: See TracTickets for help on using tickets.