Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 293368 - [TRACKER] pangox deprecation
Summary: [TRACKER] pangox deprecation
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords: Tracker
Depends on: 440946
Blocks:
  Show dependency tree
 
Reported: 2009-11-16 10:29 UTC by Rémi Cardona (RETIRED)
Modified: 2017-01-19 18:47 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rémi Cardona (RETIRED) gentoo-dev 2009-11-16 10:29:13 UTC
I'll start with a little bit of history. The whole reason behind this bug is bug #293177 where I wanted to prove that server-side fonts (and especially xfs) are completely useless. So I started auditing modern toolkits to see if they use server-side fonts at all.

Which lead me directly to pango. I don't think many of us really know pango, so I'll share my findings.

Pango has a core library 'pango.pc' and a couple of rendering backends : 'pangox.pc', 'pangoxtf.pc', 'pangocairo.pc' and so on. Like cairo, the backends are explicitly and directly used by apps and toolkist. For example, gtk uses pangocairo and metacity uses pangoxft.

pangox is an old module that uses server-side fonts. It probably goes back to gtk1. All the clues I found lead me to believe that this module is dead and should no longer be used. [1] [2]

What does bother me today is our ebuild's X USE flag which only controls the deprecated X backend :

1) it's misleading to our users because with USE=X, pango will still dep on libXft and libXrender (both of which pull libX11)
2) I think a lot of ebuilds get the dep on pango completely wrong
3) while we don't support gtk/directfb, the current situation makes it impossible to use pango without libX11

So what I'd like to do is :
1) do a portage-wide search&replace for pango[X] and rename that to pango[deprecated], no other change.
2) ask other teams to check whether they really need pangox or if they just got it wrong (ie, start cleaning deps)
3) maybe at some point add an 'X' or an 'xft' USE flag back that would control pangoxft and therefore the dep on libX11.

Given the length and scope, I think I'll post this on my blog too, if you guys agree with the idea :)

Cheers

[1] http://git.gnome.org/cgit/pango/tree/pango/pangox.h#n33
[2] http://library.gnome.org/devel/pango/stable/pango-X-Fonts-and-Rendering.html
Comment 1 Nirbheek Chauhan (RETIRED) gentoo-dev 2009-11-16 14:31:08 UTC
<leio> sounds good when executed properly

I believe dang is aware of the issue as well

plus plus, pangox must die :)
Comment 2 Rémi Cardona (RETIRED) gentoo-dev 2009-11-17 11:27:13 UTC
https://bugzilla.mozilla.org/show_bug.cgi?id=528941

Nirbheek almost got xulrunner fixed in less than 24 hours ;)

/me continues going through portage.

Cheers
Comment 3 David J Cozatt 2010-04-05 20:00:17 UTC
ran across this being pulled in by 'gmp' USE flag being set on coreutils
Comment 4 David J Cozatt 2010-04-05 21:18:47 UTC
sorry for previous noise, actual result was adding gcj USE flag caused pango to pull in as a dependnecy when add to gcc USE flags
User chose to not to use USE flag ;)
Comment 5 Pacho Ramos gentoo-dev 2011-01-27 18:41:26 UTC
What is the status of this? I also see no bugs being "tracked" in this tracker bug :-/

Thanks for the info :-)
Comment 6 Rémi Cardona (RETIRED) gentoo-dev 2011-01-27 23:17:19 UTC
I haven't done more than what I reported back in comment #0. Obviously, things may have changed dramatically with all the gtk3 work so things may be more complex or way simpler. I just don't know.

All I know for sure is that pangox(.pc) is dead and _should_ be dropped ASAP.

Cheers
Comment 7 Pacho Ramos gentoo-dev 2011-06-19 10:34:47 UTC
(In reply to comment #0)
[...]
> So what I'd like to do is :
> 1) do a portage-wide search&replace for pango[X] and rename that to
> pango[deprecated], no other change.
> 2) ask other teams to check whether they really need pangox or if they just got
> it wrong (ie, start cleaning deps)

Then, maybe point "2" should be handled before "1" to not have to convert a lot of deps from "X" to "deprecated".

For now, the following are requiring "X" USE flag for pango, the problem is that probably a lot of other packages are also requiring it but, as "X" is enabled by default on most of setups, that dep is being hidden. Then, probably a tinderbox run could help us to find more packages needing pangox.pc


$ grep -r x11-libs/pango */*/*.ebuild|grep X
app-cdr/nero/nero-3.5.3.1.ebuild:	x11-libs/pango[X]
app-cdr/nero/nero-4.0.0.0-r1.ebuild:	x11-libs/pango[X]
dev-lang/R/R-2.10.1.ebuild:		|| ( >=x11-libs/pango-1.20[X] <x11-libs/pango-1.20 ) )
dev-lang/R/R-2.12.1.ebuild:		|| ( >=x11-libs/pango-1.20[X] <x11-libs/pango-1.20 ) )
dev-lang/R/R-2.12.2.ebuild:		|| ( >=x11-libs/pango-1.20[X] <x11-libs/pango-1.20 ) )
gpe-base/libgpewidget/libgpewidget-0.117-r1.ebuild:		x11-libs/pango[X]
mail-client/thunderbird/thunderbird-3.1.10.ebuild:	x11-libs/pango[X]
mail-client/thunderbird/thunderbird-3.1.9-r1.ebuild:	x11-libs/pango[X]
media-gfx/fontforge/fontforge-20100501.ebuild:	pango? ( >=x11-libs/pango-1.20.3[X] )
media-gfx/fontforge/fontforge-20110222.ebuild:	pango? ( >=x11-libs/pango-1.20.3[X] )
media-video/nvidia-settings/nvidia-settings-260.19.29.ebuild:	x11-libs/pango[X]
media-video/nvidia-settings/nvidia-settings-260.19.29.ebuild:	x11-libs/pango[X]
media-video/nvidia-settings/nvidia-settings-260.19.36.ebuild:	x11-libs/pango[X]
media-video/nvidia-settings/nvidia-settings-260.19.36.ebuild:	x11-libs/pango[X]
media-video/nvidia-settings/nvidia-settings-260.19.44.ebuild:	x11-libs/pango[X]
media-video/nvidia-settings/nvidia-settings-260.19.44.ebuild:	x11-libs/pango[X]
media-video/nvidia-settings/nvidia-settings-270.41.03.ebuild:	x11-libs/pango[X]
media-video/nvidia-settings/nvidia-settings-270.41.03.ebuild:	x11-libs/pango[X]
media-video/nvidia-settings/nvidia-settings-270.41.06.ebuild:	x11-libs/pango[X]
media-video/nvidia-settings/nvidia-settings-270.41.06.ebuild:	x11-libs/pango[X]
net-libs/xulrunner/xulrunner-1.9.2.12.ebuild:	x11-libs/pango[X]
net-libs/xulrunner/xulrunner-1.9.2.16.ebuild:	x11-libs/pango[X]
net-libs/xulrunner/xulrunner-1.9.2.17.ebuild:	x11-libs/pango[X]
net-libs/xulrunner/xulrunner-2.0.1-r1.ebuild:	x11-libs/pango[X]
sci-biology/trf/trf-4.0.ebuild:# gtk? ( x11-libs/gtk+ ) x11-libs/pango[X]
sci-biology/trf/trf-4.04.ebuild:# gtk? ( x11-libs/gtk+ ) x11-libs/pango[X]
www-client/firefox/firefox-3.6.12.ebuild:	x11-libs/pango[X]
www-client/firefox/firefox-3.6.16-r1.ebuild:	x11-libs/pango[X]
www-client/firefox/firefox-3.6.17.ebuild:	x11-libs/pango[X]
www-client/firefox/firefox-4.0.1-r1.ebuild:	x11-libs/pango[X]
www-client/icecat/icecat-3.6.16-r1.ebuild:	x11-libs/pango[X]
www-client/icecat/icecat-3.6.16.ebuild:	x11-libs/pango[X]
www-client/icecat/icecat-4.0.1-r1.ebuild:	x11-libs/pango[X]
www-client/seamonkey/seamonkey-2.0.14-r1.ebuild:	>=x11-libs/pango-1.14.0[X]
www-client/seamonkey/seamonkey-2.0.14.ebuild:	>=x11-libs/pango-1.14.0[X]
x11-libs/gtkglext/gtkglext-1.2.0.ebuild:	>=x11-libs/pango-1[X]
x11-misc/expocity/expocity-2.6.2.1.ebuild:RDEPEND=">=x11-libs/pango-1.2[X]
x11-misc/xnots/xnots-0.2.1.ebuild:	x11-libs/pango[X]"
x11-wm/metacity/metacity-2.30.3.ebuild:	>=x11-libs/pango-1.2[X]
x11-wm/metacity/metacity-2.34.0.ebuild:	>=x11-libs/pango-1.2[X]
x11-wm/openbox/openbox-3.4.11.2.ebuild:	>=x11-libs/pango-1.8[X]
x11-wm/openbox/openbox-3.5.0_pre20110313.ebuild:	>=x11-libs/pango-1.8[X]
x11-wm/openbox/openbox-9999.ebuild:	>=x11-libs/pango-1.8[X]

Will CC maintainers to let them confirm deps on their packages are really ok and pangox is needed for letting them work (when checking the dep, please add a comment with the result). After that, we could ask Flameeyes to check in his tinderbox with pango[-X] looking for more packages requiring it. Finally, we can move "X" to "deprecated"
Comment 8 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2011-06-19 11:27:40 UTC
destkop-wm, lxde:
        x11-wm/openbox ( hwoarang@gentoo.org )
desktop-misc:
        x11-misc/xnots  ( nelchael@gentoo.org )
        x11-misc/expocity
fonts:
        media-gfx/fontforge
gpe:
        gpe-base/libgpewidget
gnome:
        x11-wm/metacity
        x11-libs/gtkglext
maintainer-needed:
        media-video/nvidia-settings
media-optical:
        app-cdr/nero
mozilla:
        net-libs/xulrunner
        www-client/firefox
        mail-client/thunderbird
        www-client/icecat
        www-client/seamonkey ( polynomial-c@gentoo.org )
sci-mathematics:
        dev-lang/R
Comment 9 Peter Volkov (RETIRED) gentoo-dev 2011-06-20 05:05:04 UTC
Thank you guys. Dropped [X] from fontforge, since it uses pangoxft. fonts done.

+++ fontforge-20100501.ebuild	20 Jun 2011 05:01:58 -0000
@@ -40,7 +40,7 @@
-	pango? ( >=x11-libs/pango-1.20.3[X] )
+	pango? ( >=x11-libs/pango-1.20.3 )
Comment 10 Rémi Cardona (RETIRED) gentoo-dev 2011-06-20 06:43:48 UTC
(In reply to comment #7)
> net-libs/xulrunner/xulrunner-1.9.2.12.ebuild:    x11-libs/pango[X]
> net-libs/xulrunner/xulrunner-1.9.2.16.ebuild:    x11-libs/pango[X]
> net-libs/xulrunner/xulrunner-1.9.2.17.ebuild:    x11-libs/pango[X]
> net-libs/xulrunner/xulrunner-2.0.1-r1.ebuild:    x11-libs/pango[X]

Why are those still in there, I though upstream had accepted Nirbheek's patch (see comment #2)???

Thanks
Comment 11 Nirbheek Chauhan (RETIRED) gentoo-dev 2011-06-20 12:13:16 UTC
(In reply to comment #10)
> (In reply to comment #7)
> > net-libs/xulrunner/xulrunner-1.9.2.12.ebuild:    x11-libs/pango[X]
> > net-libs/xulrunner/xulrunner-1.9.2.16.ebuild:    x11-libs/pango[X]
> > net-libs/xulrunner/xulrunner-1.9.2.17.ebuild:    x11-libs/pango[X]
> > net-libs/xulrunner/xulrunner-2.0.1-r1.ebuild:    x11-libs/pango[X]
> 
> Why are those still in there, I though upstream had accepted Nirbheek's patch
> (see comment #2)???
> 

That's cruft, it should be removed. The proper pango dependency is in the mozconfig-3 eclass.
Comment 12 Nirbheek Chauhan (RETIRED) gentoo-dev 2011-06-21 14:05:07 UTC
(In reply to comment #8)
> mozilla:
>         net-libs/xulrunner
>         www-client/firefox
>         mail-client/thunderbird
>         www-client/icecat

Fixed.

>         www-client/seamonkey ( polynomial-c@gentoo.org )

Current stable uses xulrunner-1.9.1 internally, so this still does #include pangox.h. seamonkey-2.1 fixes this.
Comment 13 Markos Chandras (RETIRED) gentoo-dev 2011-06-22 07:59:29 UTC
(In reply to comment #8)
> destkop-wm, lxde:
>         x11-wm/openbox ( hwoarang@gentoo.org )

Fixed
Comment 14 Rafał Mużyło 2011-06-23 02:45:09 UTC
(In reply to comment #13)
> (In reply to comment #8)
> > destkop-wm, lxde:
> >         x11-wm/openbox ( hwoarang@gentoo.org )
> 
> Fixed

Don't you mean broken ?
openbox uses pangoxft, not pangox, so pango[X] is a valid dep - see bug 372619.
Comment 15 Markos Chandras (RETIRED) gentoo-dev 2011-06-23 10:58:20 UTC
(In reply to comment #14)
> (In reply to comment #13)
> > (In reply to comment #8)
> > > destkop-wm, lxde:
> > >         x11-wm/openbox ( hwoarang@gentoo.org )
> > 
> > Fixed
> 
> Don't you mean broken ?
> openbox uses pangoxft, not pangox, so pango[X] is a valid dep - see bug 372619.

Yeah I misunderstood this bug. I thought X use flag was just for pangox. Fixed now
Comment 16 Jory A. Pratt gentoo-dev 2011-12-15 22:08:03 UTC
mozilla packages have all been fixed, readd if needed.
Comment 17 Pacho Ramos gentoo-dev 2013-02-10 07:50:50 UTC
We now have pangox-compat for new pango... I think we could close this then (old packages would simply need to require that compat package if they don't work with new pango)