JRE-43 Font.getFamily() does not work in headless mode
Bundled Droid fonts to fallback in headless mode
diff --git a/make/CopyFiles.gmk b/make/CopyFiles.gmk
index 9c7e7bc..153667d 100644
--- a/make/CopyFiles.gmk
+++ b/make/CopyFiles.gmk
@@ -484,6 +484,40 @@
COPY_FILES += $(OBL_FONTS_DST) $(OBL_FONTS_DST_DIR)/fonts.dir
endif # linux
+else #OPENJDK
+ SHARED_FONTS_SRC_DIR := $(JDK_TOPDIR)/src/share/lib/fonts
+ SHARED_FONTS_DST_DIR := $(JDK_OUTPUTDIR)/lib/fonts
+
+ SHARED_FONTS_FILES := \
+ DroidSans-Bold.ttf \
+ DroidSerif-Regular.ttf \
+ DroidSans.ttf \
+ DroidSerif-Bold.ttf \
+ DroidSansMono.ttf \
+ DroidSerif-BoldItalic.ttf \
+ DroidSerif-Italic.ttf \
+
+
+ SHARED_FONTS_SRC := $(foreach F, $(SHARED_FONTS_FILES), $(SHARED_FONTS_SRC_DIR)/$(F))
+ SHARED_FONTS_DST := $(foreach F, $(SHARED_FONTS_FILES), $(SHARED_FONTS_DST_DIR)/$(F))
+
+ $(SHARED_FONTS_DST_DIR)/%.ttf: $(SHARED_FONTS_SRC_DIR)/%.ttf
+ $(call install-file)
+
+ $(SHARED_FONTS_DST_DIR)/fonts.dir: $(JDK_TOPDIR)/src/share/lib/fonts/fonts.dir
+ $(call install-file)
+
+ $(SHARED_FONTS_DST_DIR)/LICENSE.txt: $(JDK_TOPDIR)/src/share/lib/fonts/LICENSE.txt
+ $(call install-file)
+
+ COPY_FILES += $(SHARED_FONTS_DST)
+
+ ifneq ($(OPENJDK_TARGET_OS), windows)
+ COPY_FILES += $(SHARED_FONTS_DST_DIR)/fonts.dir
+ endif
+
+ COPY_FILES += $(SHARED_FONTS_DST_DIR)/LICENSE.txt
+
endif # OPENJDK
##########################################################################################
diff --git a/make/gendata/GendataFontConfig.gmk b/make/gendata/GendataFontConfig.gmk
index 35b502d..5ac2425 100644
--- a/make/gendata/GendataFontConfig.gmk
+++ b/make/gendata/GendataFontConfig.gmk
@@ -38,7 +38,8 @@
$(JDK_TOPDIR)/src/solaris/classes/sun/awt/fontconfigs
# This is placeholder for possible fonconfig files which may
# useful for some highly specialized Linux distributions
- GENDATA_FONT_CONFIG_SRC_FILES :=
+ GENDATA_FONT_CONFIG_SRC_FILES := fontconfig.properties
+ GENDATA_FONT_CONFIG_SRC_PREFIX := linux.
else
GENDATA_FONT_CONFIG_SRC_DIR := \
$(JDK_TOPDIR)/src/closed/solaris/classes/sun/awt/fontconfigs
diff --git a/src/share/classes/sun/font/FontUtilities.java b/src/share/classes/sun/font/FontUtilities.java
index 04a4f9f..b6fc413 100644
--- a/src/share/classes/sun/font/FontUtilities.java
+++ b/src/share/classes/sun/font/FontUtilities.java
@@ -64,6 +64,8 @@
static final String LUCIDA_FILE_NAME = "LucidaSansRegular.ttf";
+ static final String DROID_FILE_NAME = "DroidSans.ttf";
+
private static boolean debugFonts = false;
private static PlatformLogger logger = null;
private static boolean logging;
diff --git a/src/share/classes/sun/font/SunFontManager.java b/src/share/classes/sun/font/SunFontManager.java
index ec6b4d8..a8ffd54 100644
--- a/src/share/classes/sun/font/SunFontManager.java
+++ b/src/share/classes/sun/font/SunFontManager.java
@@ -188,11 +188,12 @@
boolean loadedAllFonts = false;
boolean loadedAllFontFiles = false;
HashMap<String,String> jreFontMap;
- HashSet<String> jreLucidaFontFiles;
+ HashSet<String> jreBundledFontFiles;
String[] jreOtherFontFiles;
boolean noOtherJREFontFiles = false; // initial assumption.
public static final String lucidaFontName = "Lucida Sans Regular";
+ public static final String droidFontName = "Droid Sans";
public static String jreLibDirName;
public static String jreFontDirName;
private static HashSet<String> missingFontFiles = null;
@@ -278,55 +279,72 @@
* no evidence they are useful in practice.
*/
jreFontMap = new HashMap<String,String>();
- jreLucidaFontFiles = new HashSet<String>();
+ jreBundledFontFiles = new HashSet<String>();
if (isOpenJDK()) {
- return;
+ jreFontMap.put("droid sans0", "DroidSans.ttf");
+ jreFontMap.put("droid sans1", "DroidSans-Bold.ttf");
+ /* Droid Sans full names (map Bold and DemiBold to same file) */
+ jreFontMap.put("droid sans regular0", "DroidSans.ttf");
+ jreFontMap.put("droid sans regular1", "DroidSans-Bold.ttf");
+ jreFontMap.put("droid sans bold1", "DroidSans-Bold.ttf");
+ jreFontMap.put("droid sans demibold1", "DroidSans-Bold.ttf");
+
+ /* Droid Sans Mono Family */
+ jreFontMap.put("droid sans mono0", "DroidSansMono.ttf");
+ jreFontMap.put("droid sans mono1", "DroidSansMono.ttf");
+ /* Mono full names (map Bold and DemiBold to same file) */
+ jreFontMap.put("droid sans mono regular0", "DroidSansMono.ttf");
+ jreFontMap.put("droid sans mono regular1", "DroidSansMono.ttf");
+ jreFontMap.put("droid sans mono bold1", "DroidSansMono.ttf");
+ jreFontMap.put("droid sans mono demibold1", "DroidSansMono.ttf");
}
+ else {
/* Lucida Sans Family */
- jreFontMap.put("lucida sans0", "LucidaSansRegular.ttf");
- jreFontMap.put("lucida sans1", "LucidaSansDemiBold.ttf");
+ jreFontMap.put("lucida sans0", "LucidaSansRegular.ttf");
+ jreFontMap.put("lucida sans1", "LucidaSansDemiBold.ttf");
/* Lucida Sans full names (map Bold and DemiBold to same file) */
- jreFontMap.put("lucida sans regular0", "LucidaSansRegular.ttf");
- jreFontMap.put("lucida sans regular1", "LucidaSansDemiBold.ttf");
- jreFontMap.put("lucida sans bold1", "LucidaSansDemiBold.ttf");
- jreFontMap.put("lucida sans demibold1", "LucidaSansDemiBold.ttf");
+ jreFontMap.put("lucida sans regular0", "LucidaSansRegular.ttf");
+ jreFontMap.put("lucida sans regular1", "LucidaSansDemiBold.ttf");
+ jreFontMap.put("lucida sans bold1", "LucidaSansDemiBold.ttf");
+ jreFontMap.put("lucida sans demibold1", "LucidaSansDemiBold.ttf");
/* Lucida Sans Typewriter Family */
- jreFontMap.put("lucida sans typewriter0",
- "LucidaTypewriterRegular.ttf");
- jreFontMap.put("lucida sans typewriter1", "LucidaTypewriterBold.ttf");
+ jreFontMap.put("lucida sans typewriter0",
+ "LucidaTypewriterRegular.ttf");
+ jreFontMap.put("lucida sans typewriter1", "LucidaTypewriterBold.ttf");
/* Typewriter full names (map Bold and DemiBold to same file) */
- jreFontMap.put("lucida sans typewriter regular0",
- "LucidaTypewriter.ttf");
- jreFontMap.put("lucida sans typewriter regular1",
- "LucidaTypewriterBold.ttf");
- jreFontMap.put("lucida sans typewriter bold1",
- "LucidaTypewriterBold.ttf");
- jreFontMap.put("lucida sans typewriter demibold1",
- "LucidaTypewriterBold.ttf");
+ jreFontMap.put("lucida sans typewriter regular0",
+ "LucidaTypewriter.ttf");
+ jreFontMap.put("lucida sans typewriter regular1",
+ "LucidaTypewriterBold.ttf");
+ jreFontMap.put("lucida sans typewriter bold1",
+ "LucidaTypewriterBold.ttf");
+ jreFontMap.put("lucida sans typewriter demibold1",
+ "LucidaTypewriterBold.ttf");
/* Lucida Bright Family */
- jreFontMap.put("lucida bright0", "LucidaBrightRegular.ttf");
- jreFontMap.put("lucida bright1", "LucidaBrightDemiBold.ttf");
- jreFontMap.put("lucida bright2", "LucidaBrightItalic.ttf");
- jreFontMap.put("lucida bright3", "LucidaBrightDemiItalic.ttf");
+ jreFontMap.put("lucida bright0", "LucidaBrightRegular.ttf");
+ jreFontMap.put("lucida bright1", "LucidaBrightDemiBold.ttf");
+ jreFontMap.put("lucida bright2", "LucidaBrightItalic.ttf");
+ jreFontMap.put("lucida bright3", "LucidaBrightDemiItalic.ttf");
/* Lucida Bright full names (map Bold and DemiBold to same file) */
- jreFontMap.put("lucida bright regular0", "LucidaBrightRegular.ttf");
- jreFontMap.put("lucida bright regular1", "LucidaBrightDemiBold.ttf");
- jreFontMap.put("lucida bright regular2", "LucidaBrightItalic.ttf");
- jreFontMap.put("lucida bright regular3", "LucidaBrightDemiItalic.ttf");
- jreFontMap.put("lucida bright bold1", "LucidaBrightDemiBold.ttf");
- jreFontMap.put("lucida bright bold3", "LucidaBrightDemiItalic.ttf");
- jreFontMap.put("lucida bright demibold1", "LucidaBrightDemiBold.ttf");
- jreFontMap.put("lucida bright demibold3","LucidaBrightDemiItalic.ttf");
- jreFontMap.put("lucida bright italic2", "LucidaBrightItalic.ttf");
- jreFontMap.put("lucida bright italic3", "LucidaBrightDemiItalic.ttf");
- jreFontMap.put("lucida bright bold italic3",
- "LucidaBrightDemiItalic.ttf");
- jreFontMap.put("lucida bright demibold italic3",
- "LucidaBrightDemiItalic.ttf");
+ jreFontMap.put("lucida bright regular0", "LucidaBrightRegular.ttf");
+ jreFontMap.put("lucida bright regular1", "LucidaBrightDemiBold.ttf");
+ jreFontMap.put("lucida bright regular2", "LucidaBrightItalic.ttf");
+ jreFontMap.put("lucida bright regular3", "LucidaBrightDemiItalic.ttf");
+ jreFontMap.put("lucida bright bold1", "LucidaBrightDemiBold.ttf");
+ jreFontMap.put("lucida bright bold3", "LucidaBrightDemiItalic.ttf");
+ jreFontMap.put("lucida bright demibold1", "LucidaBrightDemiBold.ttf");
+ jreFontMap.put("lucida bright demibold3", "LucidaBrightDemiItalic.ttf");
+ jreFontMap.put("lucida bright italic2", "LucidaBrightItalic.ttf");
+ jreFontMap.put("lucida bright italic3", "LucidaBrightDemiItalic.ttf");
+ jreFontMap.put("lucida bright bold italic3",
+ "LucidaBrightDemiItalic.ttf");
+ jreFontMap.put("lucida bright demibold italic3",
+ "LucidaBrightDemiItalic.ttf");
+ }
for (String ffile : jreFontMap.values()) {
- jreLucidaFontFiles.add(ffile);
+ jreBundledFontFiles.add(ffile);
}
}
@@ -353,8 +371,6 @@
jreLibDirName =
System.getProperty("java.home","") + File.separator + "lib";
jreFontDirName = jreLibDirName + File.separator + "fonts";
- File lucidaFile =
- new File(jreFontDirName + File.separator + FontUtilities.LUCIDA_FILE_NAME);
return null;
}
@@ -429,11 +445,6 @@
* that might be specified.
*/
fontConfig = createFontConfiguration();
- if (isOpenJDK()) {
- String[] fontInfo = getDefaultPlatformFont();
- defaultFontName = fontInfo[0];
- defaultFontFileName = fontInfo[1];
- }
String extraFontPath = fontConfig.getExtraFontPath();
@@ -981,7 +992,7 @@
if (noOtherJREFontFiles) {
return null;
}
- synchronized (jreLucidaFontFiles) {
+ synchronized (jreBundledFontFiles) {
if (jreOtherFontFiles == null) {
HashSet<String> otherFontFiles = new HashSet<String>();
for (String deferredFile : deferredFontFiles.keySet()) {
@@ -993,7 +1004,7 @@
*/
if (dir == null ||
!dir.equals(jreFontDirName) ||
- jreLucidaFontFiles.contains(fname)) {
+ jreBundledFontFiles.contains(fname)) {
continue;
}
otherFontFiles.add(deferredFile);
@@ -1031,7 +1042,7 @@
String fname = file.getName();
if (dir != null &&
dir.equals(jreFontDirName) &&
- jreLucidaFontFiles.contains(fname)) {
+ jreBundledFontFiles.contains(fname)) {
continue;
}
PhysicalFont physicalFont = initialiseDeferredFont(fileName);
@@ -3394,6 +3405,15 @@
defaultFontFileName = FontUtilities.LUCIDA_FILE_NAME;
}
}
+ else {
+ defaultFontName = droidFontName;
+ if (useAbsoluteFontFileNames()) {
+ defaultFontFileName =
+ jreFontDirName + File.separator + FontUtilities.DROID_FILE_NAME;
+ } else {
+ defaultFontFileName = FontUtilities.DROID_FILE_NAME;
+ }
+ }
}
/**
diff --git a/src/share/lib/fonts/DroidSans-Bold.ttf b/src/share/lib/fonts/DroidSans-Bold.ttf
new file mode 100644
index 0000000..d065b64
--- /dev/null
+++ b/src/share/lib/fonts/DroidSans-Bold.ttf
Binary files differ
diff --git a/src/share/lib/fonts/DroidSans.ttf b/src/share/lib/fonts/DroidSans.ttf
new file mode 100644
index 0000000..ad1efca
--- /dev/null
+++ b/src/share/lib/fonts/DroidSans.ttf
Binary files differ
diff --git a/src/share/lib/fonts/DroidSansMono.ttf b/src/share/lib/fonts/DroidSansMono.ttf
new file mode 100644
index 0000000..a007071
--- /dev/null
+++ b/src/share/lib/fonts/DroidSansMono.ttf
Binary files differ
diff --git a/src/share/lib/fonts/DroidSansMonoDotted.ttf b/src/share/lib/fonts/DroidSansMonoDotted.ttf
new file mode 100644
index 0000000..e56a5ca
--- /dev/null
+++ b/src/share/lib/fonts/DroidSansMonoDotted.ttf
Binary files differ
diff --git a/src/share/lib/fonts/DroidSansMonoSlashed.ttf b/src/share/lib/fonts/DroidSansMonoSlashed.ttf
new file mode 100644
index 0000000..8c44b47
--- /dev/null
+++ b/src/share/lib/fonts/DroidSansMonoSlashed.ttf
Binary files differ
diff --git a/src/share/lib/fonts/DroidSerif-Bold.ttf b/src/share/lib/fonts/DroidSerif-Bold.ttf
new file mode 100644
index 0000000..838d255
--- /dev/null
+++ b/src/share/lib/fonts/DroidSerif-Bold.ttf
Binary files differ
diff --git a/src/share/lib/fonts/DroidSerif-BoldItalic.ttf b/src/share/lib/fonts/DroidSerif-BoldItalic.ttf
new file mode 100644
index 0000000..0b1601f
--- /dev/null
+++ b/src/share/lib/fonts/DroidSerif-BoldItalic.ttf
Binary files differ
diff --git a/src/share/lib/fonts/DroidSerif-Italic.ttf b/src/share/lib/fonts/DroidSerif-Italic.ttf
new file mode 100644
index 0000000..2972809
--- /dev/null
+++ b/src/share/lib/fonts/DroidSerif-Italic.ttf
Binary files differ
diff --git a/src/share/lib/fonts/DroidSerif-Regular.ttf b/src/share/lib/fonts/DroidSerif-Regular.ttf
new file mode 100644
index 0000000..5b4fe81
--- /dev/null
+++ b/src/share/lib/fonts/DroidSerif-Regular.ttf
Binary files differ
diff --git a/src/share/lib/fonts/LICENSE.txt b/src/share/lib/fonts/LICENSE.txt
new file mode 100644
index 0000000..a4a4b17
--- /dev/null
+++ b/src/share/lib/fonts/LICENSE.txt
@@ -0,0 +1,13 @@
+Copyright 2000-2016 JetBrains s.r.o.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/src/share/lib/fonts/fonts.dir b/src/share/lib/fonts/fonts.dir
new file mode 100644
index 0000000..1344314
--- /dev/null
+++ b/src/share/lib/fonts/fonts.dir
@@ -0,0 +1,170 @@
+169
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-adobe-standard
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-ascii-0
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-iso10646-1
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-iso8859-1
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-iso8859-10
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-iso8859-13
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-iso8859-15
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-iso8859-16
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-iso8859-2
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-iso8859-3
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-iso8859-4
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-iso8859-5
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-iso8859-9
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-koi8-e
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-koi8-r
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-koi8-ru
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-koi8-u
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-koi8-uni
+DroidSans-Bold.ttf -misc-droid sans-bold-r-normal--0-0-0-0-p-0-microsoft-cp1252
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-adobe-standard
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-ascii-0
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-iso10646-1
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-iso8859-1
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-iso8859-10
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-iso8859-13
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-iso8859-15
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-iso8859-16
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-iso8859-2
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-iso8859-3
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-iso8859-4
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-iso8859-5
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-iso8859-9
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-koi8-e
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-koi8-r
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-koi8-ru
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-koi8-u
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-koi8-uni
+DroidSans.ttf -misc-droid sans-medium-r-normal--0-0-0-0-p-0-microsoft-cp1252
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-adobe-standard
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-ascii-0
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-iso10646-1
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-iso8859-1
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-iso8859-10
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-iso8859-13
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-iso8859-15
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-iso8859-16
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-iso8859-2
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-iso8859-3
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-iso8859-4
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-iso8859-5
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-iso8859-9
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-koi8-e
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-koi8-r
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-koi8-ru
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-koi8-u
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-koi8-uni
+DroidSansMono.ttf -misc-droid sans mono-medium-r-normal--0-0-0-0-m-0-microsoft-cp1252
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-adobe-standard
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-ascii-0
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-iso10646-1
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-iso8859-1
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-iso8859-10
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-iso8859-13
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-iso8859-15
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-iso8859-2
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-iso8859-3
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-iso8859-4
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-iso8859-5
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-iso8859-9
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-koi8-e
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-koi8-r
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-koi8-ru
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-koi8-u
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-koi8-uni
+DroidSansMonoDotted.ttf -misc-droid sans mono dotted-medium-r-normal--0-0-0-0-m-0-microsoft-cp1252
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-adobe-standard
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-ascii-0
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-iso10646-1
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-iso8859-1
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-iso8859-10
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-iso8859-13
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-iso8859-15
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-iso8859-2
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-iso8859-3
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-iso8859-4
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-iso8859-5
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-iso8859-9
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-koi8-e
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-koi8-r
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-koi8-ru
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-koi8-u
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-koi8-uni
+DroidSansMonoSlashed.ttf -misc-droid sans mono slashed-medium-r-normal--0-0-0-0-m-0-microsoft-cp1252
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-adobe-standard
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-ascii-0
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-iso10646-1
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-iso8859-1
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-iso8859-10
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-iso8859-13
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-iso8859-15
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-iso8859-16
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-iso8859-2
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-iso8859-3
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-iso8859-4
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-iso8859-5
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-iso8859-9
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-koi8-e
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-koi8-r
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-koi8-ru
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-koi8-u
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-koi8-uni
+DroidSerif-Bold.ttf -misc-droid serif-bold-r-normal--0-0-0-0-p-0-microsoft-cp1252
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-adobe-standard
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-ascii-0
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-iso10646-1
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-iso8859-1
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-iso8859-10
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-iso8859-13
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-iso8859-15
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-iso8859-16
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-iso8859-2
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-iso8859-3
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-iso8859-4
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-iso8859-5
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-iso8859-9
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-koi8-e
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-koi8-r
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-koi8-ru
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-koi8-u
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-koi8-uni
+DroidSerif-BoldItalic.ttf -misc-droid serif-bold-i-normal--0-0-0-0-p-0-microsoft-cp1252
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-adobe-standard
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-ascii-0
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-iso10646-1
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-iso8859-1
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-iso8859-10
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-iso8859-13
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-iso8859-15
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-iso8859-16
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-iso8859-2
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-iso8859-3
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-iso8859-4
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-iso8859-5
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-iso8859-9
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-koi8-e
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-koi8-r
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-koi8-ru
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-koi8-u
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-koi8-uni
+DroidSerif-Italic.ttf -misc-droid serif-medium-i-normal--0-0-0-0-p-0-microsoft-cp1252
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-adobe-standard
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-ascii-0
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-iso10646-1
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-iso8859-1
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-iso8859-10
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-iso8859-13
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-iso8859-15
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-iso8859-16
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-iso8859-2
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-iso8859-3
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-iso8859-4
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-iso8859-5
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-iso8859-9
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-koi8-e
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-koi8-r
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-koi8-ru
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-koi8-u
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-koi8-uni
+DroidSerif-Regular.ttf -misc-droid serif-medium-r-normal--0-0-0-0-p-0-microsoft-cp1252
diff --git a/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.properties b/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.properties
new file mode 100644
index 0000000..cb8a536
--- /dev/null
+++ b/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.properties
@@ -0,0 +1,42 @@
+# Version
+
+version=1
+
+# Component Font Mappings
+
+
+serif.plain.latin-1=-b&h-droidserif-medium-r-normal--*-%d-*-*-p-*-iso8859-1
+serif.bold.latin-1=-b&h-droidserif-demibold-r-normal--*-%d-*-*-p-*-iso8859-1
+serif.italic.latin-1=-b&h-droidserif-medium-i-normal--*-%d-*-*-p-*-iso8859-1
+serif.bolditalic.latin-1=-b&h-droidserif-demibold-i-normal--*-%d-*-*-p-*-iso8859-1
+
+sansserif.plain.latin-1=-b&h-droidsans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
+sansserif.bold.latin-1=-b&h-droidsans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
+sansserif.italic.latin-1=-b&h-droidsans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
+sansserif.bolditalic.latin-1=-b&h-droidsans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
+
+monospaced.plain.latin-1=-b&h-droidsansmono-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+monospaced.bold.latin-1=-b&h-droidsansmono-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+monospaced.italic.latin-1=-b&h-droidsansmono-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1
+monospaced.bolditalic.latin-1=-b&h-droidsansmono-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1
+
+dialog.plain.latin-1=-b&h-droidsans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
+dialog.bold.latin-1=-b&h-droidsans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
+dialog.italic.latin-1=-b&h-droidsans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
+dialog.bolditalic.latin-1=-b&h-droidsans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
+
+dialoginput.plain.latin-1=-b&h-droidsansmono-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+dialoginput.bold.latin-1=-b&h-droidsansmono-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+dialoginput.italic.latin-1=-b&h-droidsansmono-medium-i-normal-sans-*-%d-*-*-m-*-iso8859-1
+dialoginput.bolditalic.latin-1=-b&h-droidsansmono-bold-i-normal-sans-*-%d-*-*-m-*-iso8859-1
+
+# Search Sequences
+
+sequence.allfonts=latin-1
+
+# Exclusion Ranges
+
+# Font File Names
+
+
+