Opened 11 years ago

Last modified 7 weeks ago

#41839 new defect

gcr: build fails when using gtk3 +quartz due to X11 specific UI code

Reported by: khepler Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 2.2.1
Keywords: Cc: bitpup, mathsmac@…, e-t-h-a-n, MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), p-bro, cooljeanius (Eric Gallager)
Port: gcr

Description

Building gcr fails on my machine with the error:

gcr-prompt-dialog.c:34:22: error: gdk/gdkx.h: No such file or directory

This file is provided by gtk when built with X support, but not (as on my machine) with Quartz support.

Attachments (1)

main.log (15.5 KB) - added by khepler 11 years ago.

Download all attachments as: .zip

Change History (20)

Changed 11 years ago by khepler

Attachment: main.log added

comment:1 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: devans@… removed
Owner: changed from macports-tickets@… to devans@…

Sounds like you've already discovered the solution. If you want to install gcr, install gtk2 with the +x11 variant. If you want gcr to not require that, explain that to the developers of gcr.

comment:2 Changed 11 years ago by khepler

I thought it might be a good idea to explicitly require the +x11 variant.

comment:3 Changed 11 years ago by larryv (Lawrence Velázquez)

Summary: gcr @3.10.1 requires gdk/gdkx.hgcr @3.10.1 should require gtk +x11

comment:4 Changed 11 years ago by larryv (Lawrence Velázquez)

Summary: gcr @3.10.1 should require gtk +x11gcr @3.10.1_0 should require gtk2 +x11

comment:5 Changed 11 years ago by bitpup

Cc: wheeltong@… added

Cc Me!

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

Has duplicate #42787.

comment:7 Changed 10 years ago by hackdefendr (HackDefendr)

FYI - still occurring in MP 5.3.1

With version Gcr 3.12.2, the Gtk requirements have moved to Gtk3.

This port is ultimately being pulled in by gvfs, which is obviously pulled in by something requiring gvfs or has a variant for gvfs explicitly set. For me its being pulled in via gimp2-devel +gvfs, which ultimately pulls in some gnome stuff, libgcrypt, and eventually gcr. Gcr fails to compile due to 4 files from gcr requiring gdk/gdkx.h from Gtk3, which is only provided when Gtk3 is built with +x11.

I am merely keeping this compile issue relevant, and believe upstream is still responsible for fixing this.

J

comment:8 in reply to:  7 Changed 10 years ago by dbevans (David B. Evans)

Replying to gvibe06@…:

I am merely keeping this compile issue relevant, and believe upstream is still responsible for fixing this.

I agree. The current UI code uses X11 specific API and relies on gdk/gdkx.h in several places. This not only effects the ability to build using the gtk+ Quartz backend but potentially others such as Wayland. It should be possible to rework the UI code to avoid backend specific code or at least support more than just the X11 backend.

I've filed a bug report upstream https://bugzilla.gnome.org/show_bug.cgi?id=734366. A possibly related bug report is https://bugzilla.gnome.org/show_bug.cgi?id=688678 which requests the ability to build without gtk+ at all.

In the meantime, in r123181 have added a pre-configure check for the presence of gtk3 +x11 using require_active_variants. This doesn't fix the +quartz build problem but makes it more apparent what the issue is.

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

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

Summary: gcr @3.10.1_0 should require gtk2 +x11gcr: build fails when using gtk3 +quartz due to X11 specific UI code

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

The following MacPorts GNOME ports are blocked from building with gtk3 +quartz due to this issue:

  • empathy
  • eog
  • eog-plugins
  • epiphany
  • evolution-data-server
  • gnome-online-accounts
  • grilo-plugins
  • libgdata
  • seahorse
  • totem

comment:11 Changed 10 years ago by mathsmac@…

Cc: mathsmac@… added

Cc Me!

comment:12 Changed 8 years ago by e-t-h-a-n

Cc: ethansherriff@… added

Cc Me!

comment:13 Changed 7 years ago by kencu (Ken)

also pan2 requires gcr which therefore means only +x11 now

comment:14 Changed 7 years ago by kencu (Ken)

gcr has a new option --without-gtk as of this commit . That builds the guts of gcr without the user interface part that required +x11.

I have been able to successfully build gcr using the --without-gtk option when gtk3 @3.22.29_0+quartz (active) is installed.

I think this may solve this issue for practical purposes. Of course it would be nice to get the gcr user interface to build +quartz as well someday, but that is above my pay grade.

This allows pan2 to build when gtk3 +quartz is installed.

comment:15 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: MarcusCalhoun-Lopez added

comment:17 Changed 5 years ago by p-bro

Cc: p-bro added

comment:18 Changed 6 months ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added

comment:19 Changed 7 weeks ago by cooljeanius (Eric Gallager)

Related: #70274

Note: See TracTickets for help on using tickets.