IIRC, libfontconfig is also fairly standalone and portable, so when it's not there, it shouldn't be too hard to compile it.
A while ago I contemplated and started to implement fontconfig in pure Java, which is not rocket science either, but then lost interest or time or both. Cheers, Roman Am Dienstag, den 19.07.2011, 11:05 -0700 schrieb Phil Race: > PPS SFAIK all JDK7 supported configs have libfontconfig so > I've in fact contemplated for JDk 8 making libfontconfig a compile time > dependency. > Would that be a major problem ? > We really are that dependent on it now, and its such an integral part > of the > way Gnome and KDE desktops work we should be able to assume its > there just like libX11.so .. > > Anyway I filed > 7068471: NPE in sun.font.FontConfigManager.getFontConfigFont() when > libfontconfig.so is not installed > > -phil. > > On 7/19/2011 9:29 AM, Phil Race wrote: > > PS .. are you running a pure openjdk build or are you running a build > > which > > includes the proprietary Lucida fonts. > > Do you have a fontconfig.properties which is customised for AIX ? > > > > If you eliminate both of those, as would be the typical Linux OpenJDK > > case, > > I think it quite likely that without libfontconfig you'll see JDK fall > > flat on > > its face due to not being able to locate any fonts at all. > > > > -phil. > > > > On 7/18/2011 5:06 PM, Phil Race wrote: > >> On 7/18/11 4:13 PM, Steve Poole wrote: > >>> On 18/07/11 23:14, Phil Race wrote: > >>>> Ah you said it was AIX, not Linux. Still, it should have that > >>>> library installed > >>>> even if the de-ref is fixed. > >>>> > >>> Not on AIX - its completely optional - and as far we can tell (other > >>> than this particular problem) nothing else bad happens. > >> If that's optional I assume a lot more is optional that needs to be > >> installed > >> for a GUI app. But JDK on all unix flavours is very reliant on > >> fontconfig to find > >> font files. I suggest to make fontconfig a pre-requisite for Java on > >> AIX. Even server > >> apps use fonts more often than you'd expect. > >> > >> I didn't mean to just "cc" 2d, but to disconnect the discussion from > >> core-libs > >> since its not related to core-libs in way at all. > >> Yes, its 2d because its font, I'm actually surprised that is a > >> surprise ... > >> > >> -phil. > >> > >>> Having said that I would expect customers to install the package - > >>> this fix is simply a belt and braces change. > >>> I don't know why the attachment is missing - here it is inline: > >>> --- > >>> diff --git a/src/solaris/classes/sun/font/FontConfigManager.java > >>> b/src/solaris/classes/sun/font/FontConfigManager.java > >>> --- a/src/solaris/classes/sun/font/FontConfigManager.java > >>> +++ b/src/solaris/classes/sun/font/FontConfigManager.java > >>> @@ -348,6 +348,8 @@ > >>> > >>> initFontConfigFonts(false); > >>> > >>> + if(fontConfigFonts==null) return null; // init failed > >>> + > >>> FcCompFont fcInfo = null; > >>> for (int i=0; i<fontConfigFonts.length; i++) { > >>> if (name.equals(fontConfigFonts[i].fcFamily) && > >>> --- > >>> > >>> By the way - why is this 2d? because it's font? Anyway I've cc'd > >>> 2d-dev as you suggest. Thanks for the quick response. > >>> > >>> > >>>> -phil. > >>>> > >>>> On 7/18/2011 3:12 PM, Phil Race wrote: > >>>>> Steve, > >>>>> > >>>>> There's no attachment .. and this should be discussed on 2d-dev, > >>>>> not core-libs. > >>>>> > >>>>> I do see in the code where the null de-ref can happen. This is > >>>>> some new JDK 7 code. > >>>>> Although a system where the library is missing is basically DOA > >>>>> for client use. > >>>>> I'd suspect you are running 32 bit JDK on a 64 bit Linux which > >>>>> hasn't had > >>>>> the 32 bit libs installed. If so, likely you'll run into other > >>>>> problems too. > >>>>> > >>>>> -phil. > >>>>> > >>>>> > >>>>> On 7/18/2011 2:37 PM, Steve Poole wrote: > >>>>>> > >>>>>> Hi all, a problem was discovered on JDK7 when using the Nimbus > >>>>>> L&F on a system where libfontconfig.so was not installed (On AIX > >>>>>> actually but in theory on any unix system) > >>>>>> > >>>>>> Under the covers Nimbus uses the sun.font.FontConfigManager to > >>>>>> retrieve fonts. sun.font.FontConfigManager in turn is intended to > >>>>>> use (for a unix system) the libfontconfig.so system library if > >>>>>> present. > >>>>>> > >>>>>> The code is intended to cope with the library being missing but > >>>>>> it unfortunately doesn't. A array is referenced without checking > >>>>>> if it is null. On systems where the system library is present > >>>>>> this array is never null but in this specific case the array is > >>>>>> null and the reference fails as follows. > >>>>>> > >>>>>> — > >>>>>> Exception in thread "main" java.lang.NullPointerException > >>>>>> at > >>>>>> sun.font.FontConfigManager.getFontConfigFont(FontConfigManager.java:352) > >>>>>> > >>>>>> > >>>>>> at sun.awt.X11FontManager.getFontConfigFUIR(X11FontManager.java:817) > >>>>>> at sun.font.FontUtilities.getFontConfigFUIR(FontUtilities.java:472) > >>>>>> at > >>>>>> javax.swing.plaf.nimbus.NimbusDefaults.<init>(NimbusDefaults.java:138) > >>>>>> at > >>>>>> javax.swing.plaf.nimbus.NimbusLookAndFeel.<init>(NimbusLookAndFeel.java:100) > >>>>>> at Nimbus.main(Nimbus.java:6) > >>>>>> – > >>>>>> > >>>>>> The fix is trivial (see attached) and probably just tactical. > >>>>>> > >>>>>> > >>>>>> Cheers, > >>>>>> > >>>>>> Steve > >>>>>> > >>>>> > >>>> > >>> > >> > > > >