Opened 13 years ago

Closed 13 years ago

Last modified 11 years ago

#14305 closed defect (fixed)

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 (4)

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

Download all attachments as: .zip

Change History (19)

Changed 13 years ago by shreevatsa.public@…

Attachment: Portfile added

Portfile with correct filename

Changed 13 years ago by shreevatsa.public@…

Attachment: Portfile.2 added

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

comment:1 Changed 13 years ago by raimue (Rainer Müller)

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

comment:2 Changed 13 years ago by nox@…

Status: newassigned

Could you attach a diff? thanks.

Changed 13 years ago by shreevatsa.public@…

Attachment: gtk2.diff added

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

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

comment:4 Changed 13 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 13 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 13 years ago by shreevatsa.public@…

Attachment: again.diff added

Without the version changes

comment:6 Changed 13 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 13 years ago by reiffert@…

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

comment:8 Changed 13 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 13 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 13 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 13 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 13 years ago by nox@…

Resolution: fixed
Status: assignedclosed

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

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

Cc: shreevatsa.public@… added

Cc Me!

comment:14 Changed 11 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

comment:15 Changed 11 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.