Opened 10 years ago

Closed 10 years ago

#29092 closed enhancement (fixed)

clutter should not depend on gtk2

Reported by: james.athey@… Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 1.9.2
Keywords: haspatch Cc:
Port: clutter


Strictly speaking, clutter does not require gtk2. Instead, it actually requires pango, cairo, glib2, atk, and json-glib. On OSX, the quartz image backend is supported even for x11 targets, so there's no part of gtk2 needed.

Requiring gtk2 when using the no_x11 variant of clutter is especially obnoxious, since gtk2 ends up installing all of the unwanted X11 dependencies anyway.

A patch is attached for clutter's Portfile. It includes the true dependencies and uses the quartz image backend.

Attachments (1)

clutter-no-gtk2.patch (1.1 KB) - added by james.athey@… 10 years ago.
patch for clutter's Portfile

Download all attachments as: .zip

Change History (6)

Changed 10 years ago by james.athey@…

Attachment: clutter-no-gtk2.patch added

patch for clutter's Portfile

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

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

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

Status: newassigned

I see your point. Will do some testing of your suggested patch and respond. Thanks.

comment:3 Changed 10 years ago by jmroot (Joshua Root)

Use of quartz should technically be restricted to platform macosx.

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

Replying to jmr@…:

Use of quartz should technically be restricted to platform macosx.


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

Resolution: fixed
Status: assignedclosed

Thanks to all for their input. Changes committed in r77796.

My comments:

The gtk2 dependency is indeed no longer needed. It was a hold-over from from pre-2.22 versions where gdk-pixbuf was included. Now separate.

I have not used the quartz backend in the default (x11) configuration as suggested because (as jmr points out) the darwin platform category not only includes macosx platforms but also darwin platforms that do not have access to Quartz (e.g. pure darwin).

I have re-written the port allowing the +quartz variant only on macosx platforms to emphasize this.

Not to say that using the quartz backend on an X11 macosx platform might not work but I would suggest that you make a customized port for your personal use if you want to do this. The clutter developers classify macosx/quartz as experimental as it is.

Note that the obnoxious behavior of pulling in a bunch of X11 dependencies when building the +no_x11/+quartz variant was not purely a result of including the dependency on gtk2. It came from building the +no_x11 variant against a gtk2/pango built for x11 (without the +no_x11).

In general, building +quartz/+no_x11 variants only works when all the dependents of the target port are built with those variants as well (or at least the ones that express those variants). This remains an issue in the current port revision since at least pango has +no_x11 +quartz variants and should be built so to prevent X11 inclusions.

In any case, both before and after the current modifications, I was able to build clutter +no_x11 +quartz without any X11 ports being pulled in using a build environment where +quartz +no_x11 are asserted globally.

Note: See TracTickets for help on using tickets.