New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #14305 (closed defect: fixed)

Opened 5 years ago

Last modified 3 years ago

Making gtk2 +quartz depend on pango +no_x11

Reported by: shreevatsa.public@… Owned by: nox@…
Priority: Normal Milestone:
Component: ports Version: 1.6.0
Keywords: gtk2 pango cairo x11 quartz Cc: shreevatsa.public@…
Port:

Description

Currently, installing "port install gtk2 +quartz" does not build pango with +no_x11, which results in applications building fine, but then having no visible text in any of their dialogs. Since quartz and x11 conflict everywhere (including libs like cairo that pango depends on), it is safe and a good idea to make gtk2's +quartz build pango with +no_x11. Attached is a patch of the gtk2 Portfile that does that.

Attachments

Portfile (4.1 KB) - added by shreevatsa.public@… 5 years ago.
Portfile with correct filename
Portfile.2 (4.1 KB) - added by shreevatsa.public@… 5 years ago.
Apart from fixing the no_x11, also upgraded to newest version available
gtk2.diff (1.0 KB) - added by shreevatsa.public@… 5 years ago.
again.diff (1.2 KB) - added by shreevatsa.public@… 5 years ago.
Without the version changes

Change History

Changed 5 years ago by shreevatsa.public@…

Portfile with correct filename

Changed 5 years ago by shreevatsa.public@…

Apart from fixing the no_x11, also upgraded to newest version available

comment:1 Changed 5 years ago by raimue@…

  • Owner changed from macports-tickets@… to nox@…

comment:2 Changed 5 years ago by nox@…

  • Status changed from new to assigned

Could you attach a diff? thanks.

Changed 5 years ago by shreevatsa.public@…

comment:3 Changed 5 years ago by shreevatsa.public@…

Oh right, I should have attached a diff in the first place. Done. Is the format right?

comment:4 follow-up: ↓ 5 Changed 5 years ago by nox@…

Could you paste the error log which makes you think it should depend on pango +no_x11? The only thing this variant does is disable the build of pangox.dylib. It should not make gtk-quartz fails to build.

comment:5 in reply to: ↑ 4 Changed 5 years ago by shreevatsa.public@…

Oh, that is the problem, as I mentioned in the opening commentary -- building gtk2 with only +quartz makes it build fine. A gtk2 application can also be successfully built on top of this. Only when the application is started is there a problem -- all text is blank! There are no error messages anwyhere (while building), but there is an error when a program is run (I don't remember the error, but it does not make your program crash, just results in it having no text).

Changed 5 years ago by shreevatsa.public@…

Without the version changes

comment:6 Changed 5 years ago by shreevatsa.public@…

Um, news? Could you look into this? GTK+ 2.12.9 has been released also, so this might be a good time to update the Portfile ;-)

Thanks,

comment:7 Changed 5 years ago by reiffert@…

Can we have gtk2 as quartz *and* x11 version in parallel? What would it take to have?

comment:8 Changed 5 years ago by shreevatsa.public@…

I don't think so. The current gtk2 Portfile already has "variant quartz conflicts x11" and "variant x11 conflicts quartz". The only thing missing is making quartz = no_x11, so that the right Pango will be installed. I don't know why building Pango without +no_x11 makes it not work with gtk2 +quartz, but anyway it is useless having an X11-enabled Pango with quartz gtk2, so there is no harm in what I am suggesting.

comment:9 Changed 5 years ago by shreevatsa.public@…

Hello,

I emailed the developer of the quartz GTK2, and he says:

> * pango must be built with --without-x ?

As far as I know, yes.

So I reiterate that it is reasonable to make pango build with +no_x11, since that is probably as far as anyone knows :P

Also, in answer to the other question:

> Finally, is it possible to have gtk2 as both quartz and x11 version in
> parallel? What would it take?

You will have to use a different prefix, as this is a compile time
switch and not runtime. I.e. you would have to use, say, /opt/foo/ and
/opt/bar/, with a completely separate installation for each backend,
also any software you build against GTK+ will have to be configured and
compiled against one or the other.

(So basically no, not in the sense you mean.)

So could this patch (again.diff) or something equivalent be merged?

comment:10 Changed 5 years ago by reiffert@…

shreevatsa: I know that quartz and x11 conflict each other, thats why I was asking what it would take to have them in parallel. Yeah it would allow you to have both, applications that use gtk-x11 and those that use gtk-quartz. That would be really cool. Instead I have /opt/x11/local and /opt/quartz/local ... and I dont love it.

comment:11 Changed 5 years ago by shreevatsa.public@…

I know... it would be great. But Richard says it isn't possible. What it would take to have them in parallel is what you have -- /opt/x11/local and /opt/quartz/local. Of course, it might be possible to have them both "inside" the same macports tree, say /opt/local/gtk-x11 and /opt/local/gtk-quartz, and /opt/local/lib/gtk-2.0 symlinked to one of them, and every application that uses gtk could be explicitly asked to use one gtk or the other.

In the meantime -- commit this thing, so that I don't have to lose my custom Portfile if I upgrade :P

comment:12 Changed 5 years ago by nox@…

  • Status changed from assigned to closed
  • Resolution set to fixed

Thanks for contributing, I'm sorry for the long delay. r36184.

comment:13 Changed 5 years ago by shreevatsa.public@…

  • Cc shreevatsa.public@… added

Cc Me!

comment:14 Changed 4 years ago by anonymous

  • Milestone Port Bugs deleted

Milestone Port Bugs deleted

comment:15 Changed 3 years ago by braden@…

Either I'm misunderstanding how this is supposed to work, or something has regressed here:

$ sudo port install gtk2 +quartz--->  Computing dependencies for gtk2
--->  Fetching cairo
--->  Verifying checksum(s) for cairo
--->  Extracting cairo
--->  Configuring cairo
--->  Building cairo
--->  Staging cairo into destroot
--->  Installing cairo @1.8.8_0+macosx+quartz
--->  Activating cairo @1.8.8_0+macosx+quartz
--->  Cleaning cairo
--->  Fetching pango
--->  Verifying checksum(s) for pango
--->  Extracting pango
--->  Applying patches to pango
--->  Configuring pango
--->  Building pango
--->  Staging pango into destroot
--->  Installing pango @1.24.5_0+macosx+quartz
--->  Activating pango @1.24.5_0+macosx+quartz
--->  Cleaning pango
--->  Fetching gtk2
Error: Please uninstall or deactivate the pango port and reinstall it by running `port install pango +no_x11`.
Error: Target org.macports.fetch returned: pango must be installed with the no_x11 variant enabled.
Error: Status 1 encountered during processing.
Note: See TracTickets for help on using tickets.