openjdk-8 (8u40~b04-2) unstable; urgency=medium
authorMatthias Klose <doko@ubuntu.com>
Tue, 9 Sep 2014 15:08:32 +0000 (16:08 +0100)
committerMatthias Klose <doko@ubuntu.com>
Tue, 9 Sep 2014 15:08:32 +0000 (16:08 +0100)
  * Remove AArch64 patch applied upstream.
  * Update the kfresbsd jdk patch, still not forwarded upstream.

[dgit import package openjdk-8 8u40~b04-2]

129 files changed:
debian/JAVA_HOME [new file with mode: 0644]
debian/JB-archive.applications.in [new file with mode: 0644]
debian/JB-archive.keys.in [new file with mode: 0644]
debian/JB-archive.mime.in [new file with mode: 0644]
debian/JB-demo.menu.in [new file with mode: 0644]
debian/JB-demo.overrides.in [new file with mode: 0644]
debian/JB-doc.doc-base.in [new file with mode: 0644]
debian/JB-fonts.defoma-hints.in [new file with mode: 0644]
debian/JB-java.desktop.in [new file with mode: 0644]
debian/JB-jconsole.desktop.in [new file with mode: 0644]
debian/JB-jdk.menu.in [new file with mode: 0644]
debian/JB-jdk.postinst.in [new file with mode: 0644]
debian/JB-jdk.preinst.in [new file with mode: 0644]
debian/JB-jdk.prerm.in [new file with mode: 0644]
debian/JB-jre-headless.overrides.in [new file with mode: 0644]
debian/JB-jre-headless.postinst.in [new file with mode: 0644]
debian/JB-jre-headless.postrm.in [new file with mode: 0644]
debian/JB-jre-headless.preinst.in [new file with mode: 0644]
debian/JB-jre-headless.prerm.in [new file with mode: 0644]
debian/JB-jre-zero.overrides.in [new file with mode: 0644]
debian/JB-jre.menu.in [new file with mode: 0644]
debian/JB-jre.overrides.in [new file with mode: 0644]
debian/JB-jre.postinst.in [new file with mode: 0644]
debian/JB-jre.preinst.in [new file with mode: 0644]
debian/JB-jre.prerm.in [new file with mode: 0644]
debian/JB-policytool.desktop.in [new file with mode: 0644]
debian/README.Debian [new file with mode: 0644]
debian/README.alternatives.in [new file with mode: 0644]
debian/README.source [new file with mode: 0644]
debian/accessibility-atk.properties [new file with mode: 0644]
debian/accessibility.properties [new file with mode: 0644]
debian/buildwatch.sh [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/control.cacao-jre [new file with mode: 0644]
debian/control.in [new file with mode: 0644]
debian/control.jamvm-jre [new file with mode: 0644]
debian/control.zero-jre [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/copyright.cacao [new file with mode: 0644]
debian/excludelist.jdk.jtx [new file with mode: 0644]
debian/excludelist.langtools.jtx [new file with mode: 0644]
debian/font.properties.ja [new file with mode: 0644]
debian/font.properties.ja.wgy_zenhai [new file with mode: 0644]
debian/generate-debian-orig.sh [new file with mode: 0644]
debian/generate-dfsg-zip.sh [new file with mode: 0644]
debian/jvm.cfg-default [new file with mode: 0644]
debian/mauve_tests [new file with mode: 0644]
debian/nss.cfg [new file with mode: 0644]
debian/openjdk-8-jre-jamvm.overrides [new file with mode: 0644]
debian/patches/8050942.diff [new file with mode: 0644]
debian/patches/aarch64.diff [new file with mode: 0644]
debian/patches/accessible-toolkit.patch [new file with mode: 0644]
debian/patches/adlc-parser.patch [new file with mode: 0644]
debian/patches/alpha-float-const.diff [new file with mode: 0644]
debian/patches/applet-hole.patch [new file with mode: 0644]
debian/patches/atk-wrapper-security.patch [new file with mode: 0644]
debian/patches/autoconf-updates.diff [new file with mode: 0644]
debian/patches/bootstrap-with-gcj.diff [new file with mode: 0644]
debian/patches/cacao-armv4.diff [new file with mode: 0644]
debian/patches/compare-pointer-with-literal.patch [new file with mode: 0644]
debian/patches/default-jvm-cfg-aarch64.diff [new file with mode: 0644]
debian/patches/default-jvm-cfg-default.diff [new file with mode: 0644]
debian/patches/disable-doclint-by-default.diff [new file with mode: 0644]
debian/patches/dnd-files.patch [new file with mode: 0644]
debian/patches/dont-strip-images.diff [new file with mode: 0644]
debian/patches/enumipv6-fix.patch [new file with mode: 0644]
debian/patches/fix-jtreg-location.diff [new file with mode: 0644]
debian/patches/fontconfig-arphic-uming.diff [new file with mode: 0644]
debian/patches/fontconfig-japanese.diff [new file with mode: 0644]
debian/patches/fontconfig-korean-nanum.diff [new file with mode: 0644]
debian/patches/fontconfig-wqy-microhei.patch [new file with mode: 0644]
debian/patches/hotspot-disable-werror.diff [new file with mode: 0644]
debian/patches/hotspot-libpath-aarch64.diff [new file with mode: 0644]
debian/patches/hotspot-libpath-default.diff [new file with mode: 0644]
debian/patches/hotspot-mips-align.diff [new file with mode: 0644]
debian/patches/hotspot-no-march-i586.diff [new file with mode: 0644]
debian/patches/hotspot-powerpcspe.diff [new file with mode: 0644]
debian/patches/hotspot-set-compiler.diff [new file with mode: 0644]
debian/patches/hotspot-sparc-arch.diff [new file with mode: 0644]
debian/patches/hotspot-sparc-fix.diff [new file with mode: 0644]
debian/patches/hotspot-warn-no-errformat.diff [new file with mode: 0644]
debian/patches/icc_loading_with_symlink.diff [new file with mode: 0644]
debian/patches/icedtea-4953367.patch [new file with mode: 0644]
debian/patches/icedtea-override-redirect-compiz.patch [new file with mode: 0644]
debian/patches/icedtea-sound.diff [new file with mode: 0644]
debian/patches/include-all-srcs.diff [new file with mode: 0644]
debian/patches/java-access-bridge-security.patch [new file with mode: 0644]
debian/patches/jdk-freetypeScaler-crash.diff [new file with mode: 0644]
debian/patches/jdk-pulseaudio.diff [new file with mode: 0644]
debian/patches/jexec.diff.in [new file with mode: 0644]
debian/patches/kfreebsd-support-hotspot.diff [new file with mode: 0644]
debian/patches/kfreebsd-support-jamvm.diff [new file with mode: 0644]
debian/patches/kfreebsd-support-jdk.diff [new file with mode: 0644]
debian/patches/ld-symbolic-functions-aarch64.diff [new file with mode: 0644]
debian/patches/ld-symbolic-functions-default.diff [new file with mode: 0644]
debian/patches/libpcsclite-dlopen.diff [new file with mode: 0644]
debian/patches/link-with-as-needed.diff [new file with mode: 0644]
debian/patches/make4-compatibility.diff [new file with mode: 0644]
debian/patches/multiple-pkcs11-library-init.patch [new file with mode: 0644]
debian/patches/no-pch-build.diff [new file with mode: 0644]
debian/patches/nonreparenting-wm.diff [new file with mode: 0644]
debian/patches/pass-extra-flags.diff [new file with mode: 0644]
debian/patches/ppc64el.diff [new file with mode: 0644]
debian/patches/set-exec-name.diff [new file with mode: 0644]
debian/patches/shebang.diff [new file with mode: 0644]
debian/patches/sparc-stubgenerator.diff [new file with mode: 0644]
debian/patches/stack-direction.diff [new file with mode: 0644]
debian/patches/system-lcms.diff [new file with mode: 0644]
debian/patches/system-libjpeg.diff [new file with mode: 0644]
debian/patches/system-libpng.diff [new file with mode: 0644]
debian/patches/system-pcsclite.diff [new file with mode: 0644]
debian/patches/workaround_expand_exec_shield_cs_limit.diff [new file with mode: 0644]
debian/patches/zero-architectures.diff [new file with mode: 0644]
debian/patches/zero-fpu-control-is-noop.diff [new file with mode: 0644]
debian/patches/zero-missing-headers.diff [new file with mode: 0644]
debian/patches/zero-opt.diff [new file with mode: 0644]
debian/patches/zero-sparc.diff [new file with mode: 0644]
debian/patches/zero-x32.diff [new file with mode: 0644]
debian/rules [new file with mode: 0755]
debian/sharedmimeinfo [new file with mode: 0644]
debian/source/format [new file with mode: 0644]
debian/source/lintian-overrides [new file with mode: 0644]
debian/sun_java.xpm [new file with mode: 0644]
debian/sun_java_app.xpm [new file with mode: 0644]
debian/swing.properties [new file with mode: 0644]
debian/update-hgrev.sh [new file with mode: 0644]
debian/update-shasum.sh [new file with mode: 0644]

diff --git a/debian/JAVA_HOME b/debian/JAVA_HOME
new file mode 100644 (file)
index 0000000..876e989
--- /dev/null
@@ -0,0 +1,13 @@
+                             JAVA_HOME
+
+1. Legacy use of JAVA_HOME
+
+   As of the latest versions of java-common there really should
+   be no need for JAVA_HOME as Java(TM) should be completely
+   integrated with your Debian GNU/Linux system.
+
+
+2. Selecting OpenJDK 7 as the default Java(TM) implementation
+
+   Please see README.alternatives for instructions on how
+   to make OpenJDK 7 executables and man pages the default on your system.
diff --git a/debian/JB-archive.applications.in b/debian/JB-archive.applications.in
new file mode 100644 (file)
index 0000000..7f20fd5
--- /dev/null
@@ -0,0 +1,6 @@
+java-archive
+        command=/usr/bin/java -jar
+        name=java-archive
+        can_open_multiple_files=false
+        requires_terminal=false
+        mime_types=application/java-archive,application/x-java-archive,application/x-jar
diff --git a/debian/JB-archive.keys.in b/debian/JB-archive.keys.in
new file mode 100644 (file)
index 0000000..743e3c8
--- /dev/null
@@ -0,0 +1,18 @@
+application/java-archive
+        description=Java Archive
+        icon_filename=@basename@
+        default_action_type=application
+        default_application_id=java-archive
+        short_list_application_user_additions=java-archive
+application/x-java-archive
+        description=Java Archive
+        icon_filename=@basename@
+        default_action_type=application
+        default_application_id=java-archive
+        short_list_application_user_additions=java-archive
+application/x-jar
+        description=Java Archive
+        icon_filename=@basename@
+        default_action_type=application
+        default_application_id=java-archive
+        short_list_application_user_additions=java-archive
diff --git a/debian/JB-archive.mime.in b/debian/JB-archive.mime.in
new file mode 100644 (file)
index 0000000..e354ead
--- /dev/null
@@ -0,0 +1,6 @@
+application/java-archive
+        ext: jar
+application/x-java-archive
+        ext: jar
+application/x-jar
+        ext: jar
diff --git a/debian/JB-demo.menu.in b/debian/JB-demo.menu.in
new file mode 100644 (file)
index 0000000..58aec29
--- /dev/null
@@ -0,0 +1,55 @@
+?package(@basename@-demo):\
+       needs="x11"\
+       section="Applications/Programming"\
+       title="@vendor@ Java @RELEASE@ FileChooser Demo"\
+       command="/bin/sh -c 'cd /@basedir@/demo/jfc/FileChooserDemo; /@basedir@/bin/java -jar FileChooserDemo.jar'"\
+       icon="/usr/share/pixmaps/@basename@-app.xpm"\
+       hints="Java2"
+
+?package(@basename@-demo):\
+       needs="x11"\
+       section="Applications/Programming"\
+       title="@vendor@ Java @RELEASE@ Font2DTest Demo"\
+       command="/bin/sh -c 'cd /@basedir@/demo/jfc/Font2DTest; /@basedir@/bin/java -jar Font2DTest.jar'"\
+       icon="/usr/share/pixmaps/@basename@-app.xpm"\
+       hints="Java2"
+
+?package(@basename@-demo):\
+       needs="x11"\
+       section="Applications/Programming"\
+       title="@vendor@ Java @RELEASE@ Java 2D Demo"\
+       command="/bin/sh -c 'cd /@basedir@/demo/jfc/Java2D; /@basedir@/bin/java -jar Java2Demo.jar'"\
+       icon="/usr/share/pixmaps/@basename@-app.xpm"\
+       hints="Java2"
+
+?package(@basename@-demo):\
+       needs="x11"\
+       section="Applications/Programming"\
+       title="@vendor@ Java @RELEASE@ SampleTree Demo"\
+       command="/bin/sh -c 'cd /@basedir@/demo/jfc/SampleTree; /@basedir@/bin/java -jar SampleTree.jar'"\
+       icon="/usr/share/pixmaps/@basename@-app.xpm"\
+       hints="Java2"
+
+?package(@basename@-demo):\
+       needs="x11"\
+       section="Applications/Programming"\
+       title="@vendor@ Java @RELEASE@ Stylepad Demo"\
+       command="/bin/sh -c 'cd /@basedir@/demo/jfc/Stylepad; /@basedir@/bin/java -jar Stylepad.jar'"\
+       icon="/usr/share/pixmaps/@basename@-app.xpm"\
+       hints="Java2"
+
+?package(@basename@-demo):\
+       needs="x11"\
+       section="Applications/Programming"\
+       title="@vendor@ Java @RELEASE@ SwingSet2 Demo"\
+       command="/bin/sh -c 'cd /@basedir@/demo/jfc/SwingSet2; /@basedir@/bin/java -jar SwingSet2.jar'"\
+       icon="/usr/share/pixmaps/@basename@-app.xpm"\
+       hints="Java2"
+
+?package(@basename@-demo):\
+       needs="x11"\
+       section="Applications/Programming"\
+       title="@vendor@ Java @RELEASE@ TableExample Demo"\
+       command="/bin/sh -c 'cd /@basedir@/demo/jfc/TableExample; /@basedir@/bin/java -jar TableExample.jar'"\
+       icon="/usr/share/pixmaps/@basename@-app.xpm"\
+       hints="Java2"
diff --git a/debian/JB-demo.overrides.in b/debian/JB-demo.overrides.in
new file mode 100644 (file)
index 0000000..62666f3
--- /dev/null
@@ -0,0 +1,8 @@
+# jpda/examples.jar only contains source code
+@basename@-demo: codeless-jar usr/share/doc/openjdk-7-jre-headless/demo/jpda/examples.jar
+
+# OpenJDK is correct despite any Debian policy
+@basename@-demo: unknown-java-class-version
+
+# example jar file with sources and documentation
+@basename@-demo: codeless-jar
diff --git a/debian/JB-doc.doc-base.in b/debian/JB-doc.doc-base.in
new file mode 100644 (file)
index 0000000..619d9ae
--- /dev/null
@@ -0,0 +1,11 @@
+Document: @JDK@-doc
+Title: @vendor@ Java(TM) @RELEASE@ JDK, Standard Edition Documentation
+Author: @vendor@
+Abstract: The Java @RELEASE@ Platform Documentation contains API specifications,
+ feature descriptions, developer guides, reference pages for JDK tools
+ and utilities, demos, and links to related information.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/@basename@-jre-headless/api/index.html
+Files: /usr/share/doc/@basename@-jre-headless/api/*/*.html
diff --git a/debian/JB-fonts.defoma-hints.in b/debian/JB-fonts.defoma-hints.in
new file mode 100644 (file)
index 0000000..80212e2
--- /dev/null
@@ -0,0 +1,187 @@
+category truetype
+
+# Sans
+
+begin /usr/share/fonts/truetype/ttf-lucida/LucidaSansRegular.ttf
+  Family = LucidaSans
+  FontName = LucidaSans
+  Encoding = Unicode
+  Location = English
+  Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
+  UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
+  GeneralFamily = SansSerif
+  Weight = Book
+  Width = Variable
+  Shape = NoSerif Upright
+  Foundry = Lucida
+  Priority = 15
+end
+
+begin /usr/share/fonts/truetype/ttf-lucida/LucidaSansDemiBold.ttf
+  Family = LucidaSans
+  FontName = LucidaSans-Demibold
+  Encoding = Unicode
+  Location = English
+  Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
+  UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
+  GeneralFamily = SansSerif
+  Weight = Bold
+  Width = Variable
+  Shape = NoSerif Upright
+  Foundry = Lucida
+  Priority = 15
+end
+
+begin /usr/share/fonts/truetype/ttf-lucida/LucidaSansOblique.ttf
+  Family = LucidaSans
+  FontName = LucidaSans-Oblique
+  Encoding = Unicode
+  Location = English
+  Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
+  UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
+  GeneralFamily = SansSerif
+  Weight = Thin
+  Width = Variable
+  Shape = NoSerif Oblique
+  Foundry = Lucida
+  Priority = 15
+end
+
+begin /usr/share/fonts/truetype/ttf-lucida/LucidaSansDemiOblique.ttf
+  Family = LucidaSans
+  FontName = LucidaSans-Demibold-Oblique
+  Encoding = Unicode
+  Location = English
+  Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
+  UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
+  GeneralFamily = SansSerif
+  Weight = Bold
+  Width = Variable
+  Shape = NoSerif Oblique
+  Foundry = Lucida
+  Priority = 15
+end
+
+# Serif
+
+begin /usr/share/fonts/truetype/ttf-lucida/LucidaBrightRegular.ttf
+  Family = LucidaBright
+  FontName = LucidaBright-Regular
+  Encoding = Unicode
+  Location = English
+  Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
+  UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
+  GeneralFamily = Roman
+  Weight = Book
+  Width = Variable
+  Shape = NoSerif Upright
+  Foundry = Lucida
+  Priority = 15
+end
+
+begin /usr/share/fonts/truetype/ttf-lucida/LucidaBrightItalic.ttf
+  Family = LucidaBright
+  FontName = LucidaBright-Italic
+  Encoding = Unicode
+  Location = English
+  Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
+  UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
+  GeneralFamily = Roman
+  Weight = Book
+  Width = Variable
+  Shape = NoSerif Oblique
+  Foundry = Lucida
+  Priority = 15
+end
+
+begin /usr/share/fonts/truetype/ttf-lucida/LucidaBrightDemiBold.ttf
+  Family = Lucida-Bright
+  FontName = Lucida-Bright-Demi
+  Encoding = Unicode
+  Location = English
+  Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
+  UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
+  GeneralFamily = Roman
+  Weight = Bold
+  Width = Variable
+  Shape = NoSerif Upright
+  Foundry = Lucida
+  Priority = 15
+end
+
+begin /usr/share/fonts/truetype/ttf-lucida/LucidaBrightDemiItalic.ttf
+  Family = Lucida-Bright
+  FontName = Lucida-Bright-DemiItalic
+  Encoding = Unicode
+  Location = English
+  Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
+  UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
+  GeneralFamily = Roman
+  Weight = Demi
+  Width = Variable
+  Shape = NoSerif Oblique
+  Foundry = Lucida
+  Priority = 15
+end
+
+# Mono
+
+begin /usr/share/fonts/truetype/ttf-lucida/LucidaTypewriterRegular.ttf
+  Family = LucidaSans-Typewriter
+  FontName = LucidaSans-Typewriter
+  Encoding = Unicode
+  Location = English
+  Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
+  UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
+  GeneralFamily = Typewriter
+  Weight = Book
+  Width = Fixed
+  Shape = NoSerif Upright
+  Foundry = Lucida
+  Priority = 15
+end
+
+begin /usr/share/fonts/truetype/ttf-lucida/LucidaTypewriterOblique.ttf
+  Family = LucidaSans-Typewriter
+  FontName = LucidaSans-Typewriter-Oblique
+  Encoding = Unicode
+  Location = English
+  Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
+  UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
+  GeneralFamily = Typewriter
+  Weight = Book
+  Width = Fixed
+  Shape = NoSerif Oblique
+  Foundry = Lucida
+  Priority = 15
+end
+
+begin /usr/share/fonts/truetype/ttf-lucida/LucidaTypewriterBold.ttf
+  Family = LucidaSans-Typewriter
+  FontName = LucidaSans-Typewriter-Bold
+  Encoding = Unicode
+  Location = English
+  Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
+  UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
+  GeneralFamily = Typewriter
+  Weight = Bold
+  Width = Fixed
+  Shape = NoSerif Upright
+  Foundry = Lucida
+  Priority = 15
+end
+
+begin /usr/share/fonts/truetype/ttf-lucida/LucidaTypewriterBoldOblique.ttf
+  Family = LucidaSans-Typewriter
+  FontName = LucidaSans-Typewriter-Bold-Oblique
+  Encoding = Unicode
+  Location = English
+  Charset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15 ISO10646-1
+  UniCharset = ISO8859-1 ISO8859-2 ISO8859-7 ISO8859-9 ISO8859-15
+  GeneralFamily = Typewriter
+  Weight = Bold
+  Width = Fixed
+  Shape = NoSerif Oblique
+  Foundry = Lucida
+  Priority = 15
+end
diff --git a/debian/JB-java.desktop.in b/debian/JB-java.desktop.in
new file mode 100644 (file)
index 0000000..eec5e5c
--- /dev/null
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=@vendor@ Java @RELEASE@ Runtime
+Name[fi]=@vendor@ Java @RELEASE@ - ajonaikainen ympäristö
+Comment=@vendor@ Java @RELEASE@ Runtime
+Comment[fi]=@vendor@ Java @RELEASE@ - ajonaikainen ympäristö
+Keywords=java;runtime
+Exec=@java_launcher@ -jar
+Terminal=false
+Type=Application
+Icon=@basename@
+MimeType=application/x-java-archive;application/java-archive;application/x-jar;
+NoDisplay=true
diff --git a/debian/JB-jconsole.desktop.in b/debian/JB-jconsole.desktop.in
new file mode 100644 (file)
index 0000000..8a87820
--- /dev/null
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=@vendor@ Java @RELEASE@ Console
+Name[fi]=@vendor@ Java @RELEASE@ - konsoli
+Comment=@vendor@ Java @RELEASE@ Monitoring & Management Console
+Comment[fi]=@vendor@ Java @RELEASE@ - valvonta- ja hallintakonsoli
+Keywords=java;console;monitoring
+Exec=/usr/bin/jconsole
+Terminal=false
+Type=Application
+Icon=@basename@
+Categories=Application;System;
diff --git a/debian/JB-jdk.menu.in b/debian/JB-jdk.menu.in
new file mode 100644 (file)
index 0000000..14f11ec
--- /dev/null
@@ -0,0 +1,7 @@
+?package(@basename@-jdk):\
+       needs="x11"\
+       section="Applications/System/Administration"\
+       title="@vendor@ Java @RELEASE@ Console"\
+       command="/usr/bin/jconsole"\
+       icon="/usr/share/pixmaps/@basename@.xpm"\
+       hints="Java2"
diff --git a/debian/JB-jdk.postinst.in b/debian/JB-jdk.postinst.in
new file mode 100644 (file)
index 0000000..bdffbe3
--- /dev/null
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+set -e
+
+multiarch=@multiarch@
+priority=@priority@
+basedir=/@basedir@
+mandir=$basedir/man
+jdiralias=@jdiralias@
+srcext=1.gz
+dstext=1.gz
+jdk_tools='@jdk_tools@'
+
+case "$1" in
+configure)
+    # obsolete tool
+    if update-alternatives --list apt 2>/dev/null; then
+       update-alternatives --remove-all apt || true
+    fi
+
+    if [ -z "$2" ]; then
+       update_alternatives=y
+    fi
+    if [ -n "$multiarch" ] && [ -n "$2" ]; then
+       for i in $jdk_tools; do
+           if [ -z "$(update-alternatives --list $i 2>/dev/null | grep ^$basedir/)" ]; then
+               update_alternatives=y
+               break
+           fi
+       done
+    fi
+    if [ "$update_alternatives" != y ] && [ $priority -gt 1060 ]; then
+       for i in $jre_tools; do
+           oldp=$(update-alternatives --query java | awk -v b=$basedir '/^Alternative:/ && $2~b {p=1} /^Priority:/ && p {print $2; exit}')
+           if [ -n "$oldp" ] && [ "$oldp" -le 1060 ]; then
+               update_alternatives=y
+               break
+           fi
+       done
+    fi
+
+    if [ "$update_alternatives" = y ]; then
+    if [ -n "$multiarch" ] && [ "$DPKG_MAINTSCRIPT_ARCH" != $(dpkg --print-architecture) ]; then
+       priority=$(expr $priority - 1)
+    fi
+    for i in $jdk_tools; do
+       unset slave1 slave2 || true
+        if [ -e $mandir/man1/$i.$srcext ]; then
+           slave1="--slave \
+               /usr/share/man/man1/$i.$dstext \
+                $i.$dstext \
+                $mandir/man1/$i.$srcext"
+       fi
+        if false && [ -e $mandir/ja/man1/$i.$srcext ]; then
+           slave2="--slave \
+               /usr/share/man/ja/man1/$i.$dstext \
+                ${i}_ja.$dstext \
+                $mandir/ja/man1/$i.$srcext"
+       fi
+        update-alternatives \
+            --install \
+            /usr/bin/$i \
+            $i \
+            $basedir/bin/$i \
+            $priority \
+           $slave1 $slave2
+    done
+    fi # update alternatives
+
+    ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/JB-jdk.preinst.in b/debian/JB-jdk.preinst.in
new file mode 100644 (file)
index 0000000..b69b8f2
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+set -e
+
+multiarch=@multiarch@
+old_basedir=/usr/lib/jvm/java-7-openjdk
+jdk_tools='appletviewer apt extcheck idlj jar jarsigner javac javadoc javah javap jconsole jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic schemagen serialver wsgen wsimport xjc'
+
+case "$1" in
+    upgrade)
+       if [ -n "$multiarch" ] && [ -n "$2" ]; then
+           for i in $jdk_tools; do
+               if [ -n "$(update-alternatives --list $i 2>/dev/null | grep ^$old_basedir/)" ]; then
+                   update-alternatives --remove $i $old_basedir/bin/$i || true
+               fi
+           done
+       fi
+       ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/JB-jdk.prerm.in b/debian/JB-jdk.prerm.in
new file mode 100644 (file)
index 0000000..f512195
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh -e
+
+set -e
+
+jdk_tools='@jdk_tools@'
+basedir=/@basedir@
+
+
+if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
+    for i in $jdk_tools; do
+       update-alternatives --remove $i $basedir/bin/$i
+    done
+fi
+
+#DEBHELPER#
diff --git a/debian/JB-jre-headless.overrides.in b/debian/JB-jre-headless.overrides.in
new file mode 100644 (file)
index 0000000..52adac8
--- /dev/null
@@ -0,0 +1,8 @@
+# empty directory by intent
+@basename@-jre-headless binary: package-contains-empty-directory usr/share/binfmts/
+
+# Strip libjvm.so with --strip-debug instead of --strip-unneeded. LP: #574997.
+@basename@-jre-headless binary: unstripped-binary-or-object
+
+# Ignore the mouse cursors
+@basename@-jre-headless binary: image-file-in-usr-lib
diff --git a/debian/JB-jre-headless.postinst.in b/debian/JB-jre-headless.postinst.in
new file mode 100644 (file)
index 0000000..1f86eeb
--- /dev/null
@@ -0,0 +1,148 @@
+#!/bin/sh
+
+set -e
+
+multiarch=@multiarch@
+priority=@priority@
+basedir=/@basedir@
+mandir=$basedir/jre/man
+srcext=1.gz
+dstext=1.gz
+jre_tools='@jre_hl_tools@'
+
+case "$1" in
+configure)
+    # fail early.  java currently uses tricks to find its own shared
+    # libraries depending on the path of the binary. Will be changed
+    # in OpenJDK7
+    if ! mountpoint -q /proc; then
+       echo >&2 "the java command requires a mounted proc fs (/proc)."
+       exit 1
+    fi
+
+    [ -d /etc/.java ] || mkdir -m 755 /etc/.java
+    [ -d /etc/.java/.systemPrefs ] || mkdir -m 755 /etc/.java/.systemPrefs
+    if [ ! -f /etc/.java/.systemPrefs/.system.lock ]; then
+       touch /etc/.java/.systemPrefs/.system.lock
+       chmod 644 /etc/.java/.systemPrefs/.system.lock
+    fi
+    if [ ! -f /etc/.java/.systemPrefs/.systemRootModFile ]; then
+       touch /etc/.java/.systemPrefs/.systemRootModFile
+       chmod 644 /etc/.java/.systemPrefs/.systemRootModFile
+    fi
+
+    if [ -z "$2" ]; then
+       update_alternatives=y
+    fi
+    if [ -n "$multiarch" ] && [ -n "$2" ]; then
+       for i in $jre_tools; do
+           if [ -z "$(update-alternatives --list $i 2>/dev/null | grep ^$basedir/)" ]; then
+               update_alternatives=y
+               break
+           fi
+       done
+    fi
+    if [ "$update_alternatives" != y ] && [ $priority -gt 1060 ]; then
+       for i in $jre_tools; do
+           oldp=$(update-alternatives --query java | awk -v b=$basedir '/^Alternative:/ && $2~b {p=1} /^Priority:/ && p {print $2; exit}')
+           if [ -n "$oldp" ] && [ "$oldp" -le 1060 ]; then
+               update_alternatives=y
+               break
+           fi
+       done
+    fi
+
+    if [ "$update_alternatives" = y ]; then
+    if [ -n "$multiarch" ] && [ "$DPKG_MAINTSCRIPT_ARCH" != $(dpkg --print-architecture) ]; then
+       priority=$(expr $priority - 1)
+    fi
+    for i in $jre_tools; do
+       unset slave1 slave2 || true
+        if [ -e $mandir/man1/$i.$srcext ]; then
+           slave1="--slave \
+               /usr/share/man/man1/$i.$dstext \
+                $i.$dstext \
+                $mandir/man1/$i.$srcext"
+       fi
+       # disabled
+        if false && [ -e $mandir/ja/man1/$i.$srcext ]; then
+           slave2="--slave \
+               /usr/share/man/ja/man1/$i.$dstext \
+                ${i}_ja.$dstext \
+                $mandir/ja/man1/$i.$srcext"
+       fi
+        update-alternatives \
+            --install \
+            /usr/bin/$i \
+            $i \
+            $basedir/jre/bin/$i \
+            $priority \
+           $slave1 $slave2
+    done
+    update-alternatives \
+       --install /usr/bin/jexec jexec $basedir/jre/lib/jexec $priority \
+       --slave \
+           /usr/share/binfmts/jar \
+           jexec-binfmt \
+           $basedir/jre/lib/jar.binfmt
+    fi # update alternatives
+
+    if [ -n "$multiarch" ] && [ -n "$2" ]; then
+       if true; then
+           :
+       elif dpkg --compare-versions "$2" lt 7~b147-2.0~pre3-3ubuntu2~; then
+           for d in cmm; do
+               if [ -d $basedir/jre/lib/$d ] && [ ! -h $basedir/jre/lib/$d ]; then
+                   rm -rf $basedir/jre/lib/$d
+                   ln -s ../../../java-6-openjdk-common/jre/lib/$d $basedir/jre/lib/$d
+               fi
+           done
+       fi
+    fi
+
+    # register binfmt; ignore errors, the alternative may already be
+    # registered by another JRE.
+    if which update-binfmts >/dev/null && [ -r /usr/share/binfmts/jar ]; then
+        update-binfmts --package @basename@ --import jar || true
+    fi
+
+    # activate class data sharing
+    case @archdir@ in i386|sparc)
+       rm -f $basedir/jre/lib/@archdir@/client/classes.jsa
+       log=$(tempfile)
+       if ! $basedir/bin/java -client -Xshare:dump -XX:PermSize=128m > $log; then
+           cat >&2 $log
+           rm -f $log
+           # this may fail on some machines/configurations, just ignore it.
+           echo >&2 "ignoring dump failure"
+           #exit 1
+       fi
+       rm -f $log
+    esac
+    case @archdir@ in amd64|i386|sparc)
+       rm -f $basedir/jre/lib/@archdir@/server/classes.jsa
+       log=$(tempfile)
+       if ! $basedir/bin/java -server -Xshare:dump > $log; then
+           cat >&2 $log
+           rm -f $log
+           # this may fail on some machines/configurations, just ignore it.
+           echo >&2 "ignoring dump failure"
+           #exit 1
+       fi
+       rm -f $log
+    esac
+
+    if [ -n "$multiarch" ]; then
+       if [ ! -h /@basedir@/jre/lib/zi ] && [ -d /@basedir@/jre/lib/zi ]; then
+           rm -rf /@basedir@/jre/lib/zi
+           ln -s ../../../../../share/javazi /@basedir@/jre/lib/zi
+       fi
+    fi
+
+    ;;
+
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/JB-jre-headless.postrm.in b/debian/JB-jre-headless.postrm.in
new file mode 100644 (file)
index 0000000..5c8811f
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+set -e
+
+multiarch=@multiarch@
+jdirname=@jdirname@
+etcdir=/@etcdir@
+
+case "$1" in
+purge)
+    if [ -z "$jdirname" ] || [ -z "$etcdir" ]; then
+       echo >&2 "$(basename $0): Internal error"
+       exit 1
+    fi
+    # removals of config files in /etc is handled by dpkg
+
+    # XXX should remove /etc/.java ???
+    ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/JB-jre-headless.preinst.in b/debian/JB-jre-headless.preinst.in
new file mode 100644 (file)
index 0000000..4afe9d5
--- /dev/null
@@ -0,0 +1,35 @@
+#! /bin/sh
+
+set -e
+
+if [ -h /usr/share/doc/@basename@-jre-headless ]; then
+       rm -f /usr/share/doc/@basename@-jre-headless
+fi
+
+multiarch=@multiarch@
+basedir=/@basedir@
+old_basedir=/usr/lib/jvm/java-7-openjdk
+jre_tools='java keytool pack200 rmid rmiregistry unpack200 orbd servertool tnameserv'
+
+case "$1" in
+    upgrade)
+       if [ -n "$multiarch" ] && [ -n "$2" ]; then
+           for i in $jre_tools; do
+               if [ -n "$(update-alternatives --list $i 2>/dev/null | grep ^$old_basedir/)" ]; then
+                   update-alternatives --remove $i $old_basedir/jre/bin/$i || true
+               fi
+           done
+           if [ -n "$(update-alternatives --list jexec 2>/dev/null | grep ^$old_basedir/)" ]; then
+               update-alternatives --remove jexec $old_basedir/jre/lib/jexec || true
+           fi
+
+           if dpkg --compare-versions "$2" lt 7u45-2.4.3-0~; then
+               if [ -h $basedir/jre/lib/cmm ]; then
+                   rm -f $basedir/jre/lib/cmm
+               fi
+           fi
+       fi
+       ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/JB-jre-headless.prerm.in b/debian/JB-jre-headless.prerm.in
new file mode 100644 (file)
index 0000000..d8e24ce
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+set -e
+
+basedir=/@basedir@
+jre_tools='@jre_hl_tools@'
+
+rm -f $basedir/jre/lib/@archdir@/client/classes.jsa
+rm -f $basedir/jre/lib/@archdir@/server/classes.jsa
+
+if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
+    for i in $jre_tools; do
+       update-alternatives --remove $i $basedir/jre/bin/$i
+    done
+
+    if which update-binfmts >/dev/null; then
+       # try to remove and ignore the error
+       if [ -e /var/lib/binfmts/@basename@ ]; then
+           update-binfmts --package @basename@ \
+               --remove jar /usr/bin/jexec || true
+       fi
+    fi
+
+    update-alternatives --remove jexec $basedir/jre/lib/jexec
+fi
+
+#DEBHELPER#
diff --git a/debian/JB-jre-zero.overrides.in b/debian/JB-jre-zero.overrides.in
new file mode 100644 (file)
index 0000000..1616f86
--- /dev/null
@@ -0,0 +1,2 @@
+# Strip libjvm.so with --strip-debug instead of --strip-unneeded. LP: #574997.
+@basename@-jre-zero binary: unstripped-binary-or-object
diff --git a/debian/JB-jre.menu.in b/debian/JB-jre.menu.in
new file mode 100644 (file)
index 0000000..024b63f
--- /dev/null
@@ -0,0 +1,7 @@
+?package(@basename@-jre):\
+       needs="x11"\
+       section="Applications/System/Administration"\
+       title="@vendor@ Java @RELEASE@ Policy Tool"\
+       command="/usr/bin/policytool"\
+       icon="/usr/share/pixmaps/@basename@.xpm"\
+       hints="Java2"
diff --git a/debian/JB-jre.overrides.in b/debian/JB-jre.overrides.in
new file mode 100644 (file)
index 0000000..c7cb389
--- /dev/null
@@ -0,0 +1,2 @@
+# these are in the -jre-headless package, -jre depends on it
+@basename@-jre binary: desktop-command-not-in-package
diff --git a/debian/JB-jre.postinst.in b/debian/JB-jre.postinst.in
new file mode 100644 (file)
index 0000000..e1a27b7
--- /dev/null
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+set -e
+
+multiarch=@multiarch@
+priority=@priority@
+basedir=/@basedir@
+mandir=$basedir/jre/man
+srcext=1.gz
+dstext=1.gz
+jre_tools='@jre_tools@'
+
+case "$1" in
+configure)
+    if [ -d /usr/share/doc/@basename@-jre ] && [ ! -h /usr/share/doc/@basename@-jre ]; then
+       rm -rf /usr/share/doc/@basename@-jre
+       ln -sf @basename@-jre-headless /usr/share/doc/@basename@-jre;
+    fi
+
+    if [ -z "$2" ]; then
+       update_alternatives=y
+    fi
+    if [ -n "$multiarch" ] && [ -n "$2" ]; then
+       for i in $jre_tools; do
+           if [ -z "$(update-alternatives --list $i 2>/dev/null | grep ^$basedir/)" ]; then
+               update_alternatives=y
+               break
+           fi
+       done
+    fi
+    if [ "$update_alternatives" != y ] && [ $priority -gt 1060 ]; then
+       for i in $jre_tools; do
+           oldp=$(update-alternatives --query java | awk -v b=$basedir '/^Alternative:/ && $2~b {p=1} /^Priority:/ && p {print $2; exit}')
+           if [ -n "$oldp" ] && [ "$oldp" -le 1060 ]; then
+               update_alternatives=y
+               break
+           fi
+       done
+    fi
+
+    if [ "$update_alternatives" = y ]; then
+    if [ -n "$multiarch" ] && [ "$DPKG_MAINTSCRIPT_ARCH" != $(dpkg --print-architecture) ]; then
+       priority=$(expr $priority - 1)
+    fi
+    for i in $jre_tools; do
+       unset slave1 slave2 || true
+        if [ -e $mandir/man1/$i.$srcext ]; then
+           slave1="--slave \
+               /usr/share/man/man1/$i.$dstext \
+                $i.$dstext \
+                $mandir/man1/$i.$srcext"
+       fi
+       # disabled
+        if false && [ -e $mandir/ja/man1/$i.$srcext ]; then
+           slave2="--slave \
+               /usr/share/man/ja/man1/$i.$dstext \
+                ${i}_ja.$dstext \
+                $mandir/ja/man1/$i.$srcext"
+       fi
+        update-alternatives \
+            --install \
+            /usr/bin/$i \
+            $i \
+            $basedir/jre/bin/$i \
+            $priority \
+           $slave1 $slave2
+    done
+    fi # update alternatives
+
+    ;;
+
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/JB-jre.preinst.in b/debian/JB-jre.preinst.in
new file mode 100644 (file)
index 0000000..3c64bf7
--- /dev/null
@@ -0,0 +1,27 @@
+#! /bin/sh
+
+set -e
+
+if [ -h /usr/share/doc/@basename@-jre-headless ]; then
+       rm -f /usr/share/doc/@basename@-jre-headless
+fi
+
+multiarch=@multiarch@
+old_basedir=/usr/lib/jvm/java-7-openjdk
+jre_tools='policytool'
+
+case "$1" in
+    upgrade)
+       if [ -n "$multiarch" ] && [ -n "$2" ]; then
+           for i in $jre_tools; do
+               if [ -n "$(update-alternatives --list $i 2>/dev/null | grep ^$old_basedir/)" ]; then
+                   update-alternatives --remove $i $old_basedir/jre/bin/$i || true
+               fi
+           done
+       fi
+       ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/JB-jre.prerm.in b/debian/JB-jre.prerm.in
new file mode 100644 (file)
index 0000000..f32dbe6
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+basedir=/@basedir@
+jre_tools='@jre_tools@'
+
+if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
+    for i in $jre_tools; do
+       update-alternatives --remove $i $basedir/jre/bin/$i
+    done
+fi
+
+#DEBHELPER#
diff --git a/debian/JB-policytool.desktop.in b/debian/JB-policytool.desktop.in
new file mode 100644 (file)
index 0000000..7610c35
--- /dev/null
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=@vendor@ Java @RELEASE@ Policy Tool
+Name[fi]=@vendor@ Java @RELEASE@ - käytäntötyökalu
+Comment=@vendor@ Java @RELEASE@ Policy Tool
+Comment[fi]=@vendor@ Java @RELEASE@ - käytäntötyökalu
+Keywords=java;security;policytool
+Exec=/usr/bin/policytool
+Terminal=false
+Type=Application
+Icon=@basename@
+Categories=Settings;
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644 (file)
index 0000000..579fef0
--- /dev/null
@@ -0,0 +1,78 @@
+openjdk-7 for Debian/Ubuntu
+---------------------------
+
+The OpenJDK build is configured --with-additional-vms to build with
+different virtual machines.  The original implementation of the hotspot
+VM is only available on the amd64, i386, lpia and sparc architectures.
+Other VM's are CACAO, providing a just in time compiler on several
+architectures (although the VM implementation is incomplete), and Zero,
+providing a byte code interpreter for every architecture.  On some
+architectures Zero is built with JIT support using shark (still considered
+experimental).
+
+To use a different VM other than the default, use
+
+       java -cacao|-zero|-shark
+
+or for the java tools, use
+
+       <tool name> -J-cacao|-J-zero|-J-shark.
+
+The zero build on the ix86 architectures is built with shark (just in time
+compiler); to use the zero build without shark support, use the `-Xint'
+option to operate in interpreted-only mode.
+
+On some architectures (currently armel and powerpc, when built against
+llvm-2.6) which use ther zero vm as the default, the openjdk-7-jre-zero
+package contains the shark vm.
+
+To change the default permanently, edit /etc/java-7-openjdk/jvm.cfg.
+
+The CACAO VM can be found in the icedtea-7-jre-cacao package, the Zero/Shark
+VM can be found in the openjdk-7-jre-zero package (on the architectures
+where the Hotspot VM is available).
+
+Please look for further documentation in the directory
+/usr/share/doc/openjdk-7-jre/ .
+
+The package openjdk-7-jre-headless ships a cgi script
+/usr/lib/jvm/java-7-openjdk/bin/java-rmi.cgi that you must integrate
+into your webserver setup manually if you need it. It is not activated
+automatically.
+
+
+Note for non-reparenting window manager users
+---------------------------------------------
+
+If you are using a non-reparenting window manager, such as ratpoison, awesome
+or dwm, some Java graphical applications using the AWT toolkit will only
+display empty grey windows, as described in but #508650.
+
+There are two solutions to work around this issue:
+1. mask your window manager as one of the non-reparenting ones supported by AWT,
+   using the wmname <http://tools.suckless.org/wmname> tool from the dwm-tools
+   package:
+   $ wmname LG3D
+2. set the environment variable _JAVA_AWT_WM_NONREPARENTING:
+   $ export _JAVA_AWT_WM_NONREPARENTING=true
+
+You can automate these tasks by writing them to your ~/.xsessionrc:
+$ cat >> ~/.xsessionrc <<EOF
+export _JAVA_AWT_WM_NONREPARENTING=true
+EOF
+
+
+IcedTea NPPlugin
+----------------
+
+IcedTea provides a java plugin for at least mozilla based browsers.  It is
+not yet 100% with the closed source plugin, but much improved to the former
+GCJPlugin.  If you experience problems with the plugin, start your browser
+from the command line with the environment variable ICEDTEAPLUGIN_DEBUG set,
+and attach this output to a bug report.  You usually should not expect a
+quick fix, if the applet code is closed source, or only accessible after
+creating accounts for external web services using these applets.
+
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 03 May 2009 13:58:10 +0200
+ -- Torsten Werner <twerner@debian.org>  Wed, 02 Apr 2008 11:46:53 +0200
diff --git a/debian/README.alternatives.in b/debian/README.alternatives.in
new file mode 100644 (file)
index 0000000..19d46fb
--- /dev/null
@@ -0,0 +1,35 @@
+Updating alternatives for JRE/JDK installations
+-----------------------------------------------
+
+Packages providing a runtime or a development environment for the Java
+language all use symlinks in the /etc/alternatives directory to enable
+the system administrator to choose which programs to use for java,
+javac, javah, etc.
+
+The update-java-alternatives script can be used to set all the JRE/JDK
+alternatives:
+
+First, you have to decide which Java implementation to default to.
+
+  update-java-alternatives --list
+
+tells about the available runtime and/or development environments. The
+first column shows the names to be used in for the following examples.
+
+- Set all runtime tools to point to the <jname> alternatives:
+
+  update-java-alternatives --jre --set <jname>
+
+- Set all runtime tools (headless only) to point to the <jname>
+  alternatives:
+
+  update-java-alternatives --jre-headless --set <jname>
+
+- Set all runtime and development tools to point to the <jname>
+  alternatives:
+
+  update-java-alternatives --set <jname>
+
+- Set all runtime and development tools to auto mode:
+
+  update-java-alternatives --auto
diff --git a/debian/README.source b/debian/README.source
new file mode 100644 (file)
index 0000000..dd999a2
--- /dev/null
@@ -0,0 +1,78 @@
+Content of source package
+=========================
+"openjdk-8" is a composite source package:
+- Multiple tarballs from each Oracle mercurial repositories :
+  corba / hotspot / jaxp / jaxws / jdk-dfsg / langtools / openjdk
+- Tarball from CacaoVM <http://www.cacaovm.org/>.
+- Tarball from JamVM <http://jamvm.sourceforge.net>.
+- Debian packaging scripts and patches.
+
+Building a new OpenJDK-8 Debian package
+===================================================
+Pre-requisites:
+- Mercurial
+- Bazaar
+ sudo aptitude install mercurial bzr
+
+0) Clone OpenJDK debian packaging:
+ bzr branch lp:~openjdk/openjdk/openjdk7 openjdk7/
+   or update existing repository clone:
+ (cd openjdk7/; bzr pull --remember lp:~openjdk/openjdk/openjdk7)
+
+1) Clone IcedTea-7 HG:
+ hg clone http://icedtea.classpath.org/hg/icedtea7 icedtea-2.1.1/
+   or update existing repository clone:
+ (cd icedtea7/; hg pull -u)
+
+2) Download OpenJDK upstream tarballs and move them to $BUILD/
+ export BUILD=7u3
+ mkdir -p $BUILD/
+ (
+   cd icedtea-2.1.1/
+   sh autogen.sh && ./configure --enable-jamvm --enable-cacao
+   make download
+ )
+ mv icedtea-2.1.1/*.tar.gz $BUILD/
+ (
+   cd icedtea-2.1.1/
+   make distclean
+ )
+
+3) Remove files with unclear license from jdk.tar.gz:
+ sh openjdk7/generate-dfsg-zip.sh $BUILD/jdk.tar.gz
+ sh openjdk7/generate-dfsg-zip.sh $BUILD/langtools.tar.gz
+
+4) Check tarballs' name and version (for original directory name)
+   in openjdk7/generate-debian-orig.sh and package version in
+   openjdk7/changelog
+
+5) Generate "orig" directory and "orig+debian" directory
+ sh openjdk7/generate-debian-orig.sh
+
+Support for DEB_BUILD_OPTIONS
+=============================
+As described in Debian Policy §4.9.1, current package's debian/rules support
+the standardized environment variable DEB_BUILD_OPTIONS. This variable can
+contain several flags to change how a package is compiled and built.
+
+  * nocheck: don't run mauve and jtreg test suites.
+  * nodocs: pass --disable-docs to IcedTea configure script, which
+            disable Javadoc generation.
+  * nostrip: debugging symbols should not be stripped from the
+             binary during installation
+  * parallel=X: package should be built using up to X parallel processes
+  * nobootstrap: don't use gcj to bootstrap OpenJDK but use existing OpenJDK
+                 installed on current machine.
+  * noaltcacao: don't build alternative CACao VM.
+  * noaltzero: don't build alternative Zero VM.
+  * noaltshark: don't build alternative Shark VM.
+  * noaltjamvm: don't build alternative Jamvm VM.
+
+Sample usage:
+DEB_BUILD_OPTIONS="parallel=5 nocheck" debuild -i"(\.hg|\.bzr)"
+
+ Build with 5 parallel processes and don't run mauve/jtreg test suites.
+
+This also work with cowbuilder/pbuilder:
+DEB_BUILD_OPTIONS="parallel=5 nocheck" pdebuild -i"(\.hg|\.bzr)" --logfile ../build.log --pbuilder cowbuilder
diff --git a/debian/accessibility-atk.properties b/debian/accessibility-atk.properties
new file mode 100644 (file)
index 0000000..c1bdc48
--- /dev/null
@@ -0,0 +1,10 @@
+#
+# The following line specifies the assistive technology classes 
+# that should be loaded into the Java VM when the AWT is initailized.
+# Specify multiple classes by separating them with commas.
+# Note: the line below cannot end the file (there must be at
+# a minimum a blank line following it).
+#
+# Doesn't work, see LP: #935296
+#assistive_technologies=org.GNOME.Accessibility.AtkWrapper
+
diff --git a/debian/accessibility.properties b/debian/accessibility.properties
new file mode 100644 (file)
index 0000000..e009589
--- /dev/null
@@ -0,0 +1,9 @@
+#
+# The following line specifies the assistive technology classes 
+# that should be loaded into the Java VM when the AWT is initialized.
+# Specify multiple classes by separating them with commas.
+# Note: the line below cannot end the file (there must be at
+# a minimum a blank line following it).
+#
+assistive_technologies=org.GNOME.Accessibility.JavaBridge
+
diff --git a/debian/buildwatch.sh b/debian/buildwatch.sh
new file mode 100644 (file)
index 0000000..0a30d26
--- /dev/null
@@ -0,0 +1,40 @@
+#! /bin/sh
+
+builddir=$1
+
+echo $$ > buildwatch.pid
+
+maxwait=$(expr 180 \* 60)
+wait=$maxwait
+ival=$(expr 30 \* 60)
+#ival=3
+
+while [ $wait -gt 0 ]; do
+    sleep $ival
+    wait=$(expr $wait - $ival)
+    state=
+    if ps x | grep -v grep | egrep -qs '/cc1|jar|java|gij'; then
+       state="compiler/java/jar running ..."
+       wait=$maxwait
+    fi
+
+    new_quiet=$(ls -l $builddir/openjdk*/build/*/tmp/rt-orig.jar $builddir/openjdk*/build/*/lib/tools.jar $builddir/openjdk*/build/*/lib/ct.sym 2>&1 | md5sum)
+    if [ "$old_quiet" != "$new_quiet" ]; then
+       state="assembling jar file ..."
+       wait=$maxwait
+    fi
+    old_quiet=$new_quiet
+
+    new_noisy=$(ls -l $builddir/mauve-*/mauve_output* jtreg_output-* 2>&1 | md5sum)
+    if [ "$old_noisy" != "$new_noisy" ]; then
+       wait=$maxwait
+    elif [ -n "$state" ]; then
+       echo $state
+    fi
+    old_noisy=$new_noisy
+
+    if [ ! -f buildwatch.pid ]; then
+       echo "buildwatch exit"
+       exit 0
+    fi
+done
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..3293e94
--- /dev/null
@@ -0,0 +1,3793 @@
+openjdk-8 (8u40~b04-2) unstable; urgency=medium
+
+  * Remove AArch64 patch applied upstream.
+  * Update the kfresbsd jdk patch, still not forwarded upstream.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 09 Sep 2014 17:08:32 +0200
+
+openjdk-8 (8u40~b04-1) experimental; urgency=medium
+
+  * Update to 8u40-b04.
+  * Backport 8050942, implement template interpreter for ppc64le.
+  * Build-depend on systemtap-sdt-dev.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 03 Sep 2014 21:11:27 +0200
+
+openjdk-8 (8u20-b26-1) experimental; urgency=medium
+
+  * 8u20 build 26 is the final 8u20 release.
+  * Update the AArch64 hotspot.
+  * Fix applying the kfreebsd patch for JamVM.
+  * x32 build fixes.
+  * Allow openjdk-8-jdk as an alternative build dependency.
+  * Adjust timeouts for jtreg runs.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 20 Aug 2014 10:34:55 +0200
+
+openjdk-8 (8u20~b26-1) experimental; urgency=medium
+
+  * Update to 8u20-b26.
+  * Update to JamVM 2.0.0.
+  * Update to IcedTea-Sound 1.0.1.
+  * Update toplevel configury to recognize zero archs alpha, mips*,
+    m68k, sh4.
+  * Update kfreebsd-support patches (Steven Chamberlain).
+  * Fix an uninitialized memory issue in adlc (Fridrich Strba).
+  * Move libjavagtk into the -jre package.
+  * Use the system libpcsclite library.
+  * Fix typo, ignoring boot cycle builds (Emmanuel Bourg).
+  * Derive the update version and the build number from the package
+    version (Emmanuel Bourg).
+  * Call quilt with --quiltrc -. Closes: #755710.
+  * openjdk-8-jdk: Fix src.zip symlink. Closes: #755869.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 31 Jul 2014 19:51:35 +0200
+
+openjdk-8 (8u20~b20-2) experimental; urgency=medium
+
+  * Work around OpenJDK's build system which is not robust enough
+    to accept commas in *FLAGS.
+  * Pass extra flags for non-hotspot builds.
+  * Fix the zero build on i386.
+  * Don't add extra symlinks for the jni_{md,jawt}.h header files.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 11 Jul 2014 20:30:54 +0200
+
+openjdk-8 (8u20~b20-1) experimental; urgency=medium
+
+  * Initial OpenJDK 8 packaging, based on 8u20-b20.
+  * Fix hotspot build system for GNU make 4.0 (Emmanuel Bourg).
+  * Drop rhino (build) dependencies (Emmanuel Bourg).
+  * Add java8 provides (Emmanuel Bourg).
+  * Add IcedTea patches to build with external jpeg, png and lcms
+    libraries (Emmanuel Bourg).
+  * Add keywords to the desktop files (Emmanuel Bourg).
+  * Remove the suggested dependency on sun-java6-fonts ((Emmanuel Bourg).
+  * Build hotspot on ppc64 and ppc64el.
+  * Add the IcedTea Sound tarball.
+  * Don't strip files when building the images.
+  * Update patches to pass the extra flags to the libsig and libsaproc builds.
+  * Use dh_strip's knowledge about build ids when available.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 09 Jul 2014 20:11:18 +0200
+
+openjdk-7 (7u55-2.4.7-2) unstable; urgency=medium
+
+  * Fix the quoting of configure flags for the zero build.
+  * Update the java-access-bridge-security patch (Raphael Geissert).
+  * Don't hard code the compiler names in the AArch64 hotspot build.
+  * Build using GCC 4.9 where available.
+  * Add MIPS64(el) support (Yunqiang Su). Closes: #746207.
+  * Suggest fonts-indic instead of ttf-indic-fonts. Closes: #747694.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 16 May 2014 19:12:42 +0200
+
+openjdk-7 (7u55-2.4.7-1) unstable; urgency=high
+
+  * IcedTea7 2.4.7 release.
+  * Security fixes
+    - S8023046: Enhance splashscreen support.
+    - S8025005: Enhance CORBA initializations.
+    - S8025010, CVE-2014-2412: Enhance AWT contexts.
+    - S8025030, CVE-2014-2414: Enhance stream handling.
+    - S8025152, CVE-2014-0458: Enhance activation set up.
+    - S8026067: Enhance signed jar verification.
+    - S8026163, CVE-2014-2427: Enhance media provisioning.
+    - S8026188, CVE-2014-2423: Enhance envelope factory.
+    - S8026200: Enhance RowSet Factory.
+    - S8026716, CVE-2014-2402: (aio) Enhance asynchronous channel handling.
+    - S8026736, CVE-2014-2398: Enhance Javadoc pages.
+    - S8026797, CVE-2014-0451: Enhance data transfers.
+    - S8026801, CVE-2014-0452: Enhance endpoint addressing.
+    - S8027766, CVE-2014-0453: Enhance RSA processing.
+    - S8027775: Enhance ICU code.
+    - S8027841, CVE-2014-0429: Enhance pixel manipulations.
+    - S8028385: Enhance RowSet Factory.
+    - S8029282, CVE-2014-2403: Enhance CharInfo set up.
+    - S8029286: Enhance subject delegation.
+    - S8029699: Update Poller demo.
+    - S8029730: Improve audio device additions.
+    - S8029735: Enhance service mgmt natives.
+    - S8029740, CVE-2014-0446: Enhance handling of loggers.
+    - S8029745, CVE-2014-0454: Enhance algorithm checking.
+    - S8029750: Enhance LCMS color processing (LCMS 2 only).
+    - S8029760, CVE-2013-6629: Enhance AWT image libraries (in-tree libjpeg).
+    - S8029844, CVE-2014-0455: Enhance argument validation.
+    - S8029854, CVE-2014-2421: Enhance JPEG decodings.
+    - S8029858, CVE-2014-0456: Enhance array copies.
+    - S8030731, CVE-2014-0460: Improve name service robustness.
+    - S8031330: Refactor ObjectFactory.
+    - S8031335, CVE-2014-0459: Better color profiling.
+    - S8031352, CVE-2013-6954: Enhance PNG handling (in-tree libpng).
+    - S8031394, CVE-2014-0457: (sl) Fix exception handling in ServiceLoader.
+    - S8031395: Enhance LDAP processing.
+    - S8032686, CVE-2014-2413: Issues with method invoke.
+    - S8033618, CVE-2014-1876: Correct logging output.
+    - S8034926, CVE-2014-2397: Attribute classes properly.
+    - S8036794, CVE-2014-0461: Manage JavaScript instances.
+  * AArch64 fixes.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 16 Apr 2014 15:37:40 +0200
+
+openjdk-7 (7u51-2.4.6-1) unstable; urgency=medium
+
+  * IcedTea7 2.4.6 release.
+  * Explicitly use AC_MAINTAINER_MODE and automake-1.11 to create the
+    debian .orig tarball. Addresses: #740289.
+  * Apply patch from upstream to fix bold fonts in Swing applications using
+    GTK L&F (Ryan Tandy). LP: #937200.
+  * Explicitly build-depend on libkrb5-dev.
+  * On AArch64 don't use the hotsport backport for the zero build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 01 Apr 2014 09:25:19 +0200
+
+openjdk-7 (7u51-2.4.6~pre1-1) unstable; urgency=medium
+
+  * IcedTea7 2.4.6 prerelease.
+  * Fix icedtea-web build failure on kfreebsd-* (unable to find
+    sun.security.util.SecurityConstants). Steven Chamberlain. Closes: #739032.
+  * Update the AArch64 Hotspot.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 27 Mar 2014 17:24:45 +0100
+
+openjdk-7 (7u51-2.4.5-2) unstable; urgency=medium
+
+  * Update the KFreeBSD patch (Steven Chamberlain). Closes: #736291.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 04 Feb 2014 13:28:10 +0100
+
+openjdk-7 (7u51-2.4.5-1) unstable; urgency=medium
+
+  * IcedTea7 2.4.5 release.
+  * Build Hotspot client and server vms for AArch64.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 31 Jan 2014 06:13:20 -0500
+
+openjdk-7 (7u51-2.4.4-1) unstable; urgency=medium
+
+  * IcedTea7 2.4.4 release.
+  * Security fixes
+    - S6727821: Enhance JAAS Configuration.
+    - S7068126, CVE-2014-0373: Enhance SNMP statuses.
+    - S8010935: Better XML handling.
+    - S8011786, CVE-2014-0368: Better applet networking.
+    - S8021257, S8025022, CVE-2013-5896 : com.sun.corba.se.** should be
+      on restricted package list.
+    - S8021271, S8021266, CVE-2014-0408: Better buffering in ObjC code.
+    - S8022904: Enhance JDBC Parsers.
+    - S8022927: Input validation for byte/endian conversions.
+    - S8022935: Enhance Apache resolver classes.
+    - S8022945: Enhance JNDI implementation classes.
+    - S8023057: Enhance start up image display.
+    - S8023069, CVE-2014-0411: Enhance TLS connections.
+    - S8023245, CVE-2014-0423: Enhance Beans decoding.
+    - S8023301: Enhance generic classes.
+    - S8023338: Update jarsigner to encourage timestamping.
+    - S8023672: Enhance jar file validation.
+    - S8024302: Clarify jar verifications.
+    - S8024306, CVE-2014-0416: Enhance Subject consistency.
+    - S8024530: Enhance font process resilience.
+    - S8024867: Enhance logging start up.
+    - S8025014: Enhance Security Policy.
+    - S8025018, CVE-2014-0376: Enhance JAX-P set up.
+    - S8025026, CVE-2013-5878: Enhance canonicalization.
+    - S8025034, CVE-2013-5907: Improve layout lookups.
+    - S8025448: Enhance listening events.
+    - S8025758, CVE-2014-0422: Enhance Naming management.
+    - S8025767, CVE-2014-0428: Enhance IIOP Streams.
+    - S8026172: Enhance UI Management.
+    - S8026176: Enhance document printing.
+    - S8026193, CVE-2013-5884: Enhance CORBA stub factories.
+    - S8026204: Enhance auth login contexts.
+    - S8026417, CVE-2013-5910: Enhance XML canonicalization.
+    - S8026502: java/lang/invoke/MethodHandleConstants.java fails on all
+      platforms.
+    - S8027201, CVE-2014-0376: Enhance JAX-P set up.
+    - S8029507, CVE-2013-5893: Enhance JVM method processing.
+    - S8029533: REGRESSION: closed/java/lang/invoke/8008140/Test8008140.java
+      fails agains.
+  * Remove alpha from stage1_gcj_archs.
+  * Use the langtools and jdk tarballs as provided by IcedTea.
+  * Hotspot is dead on sparc. Build the zero interpreter as the default.
+  * Blindly update the KF***BSD patches.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 15 Jan 2014 10:34:34 +0100
+
+openjdk-7 (7u45-2.4.3-5) unstable; urgency=medium
+
+  * Run the jtreg tests on powerpcspe, tested by Roland Stigge.
+  * Fix zero builds on 64k page kernel configs.
+  * Fix more IcedTea bits to build on x32.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 11 Jan 2014 13:55:34 +0100
+
+openjdk-7 (7u45-2.4.3-4) unstable; urgency=low
+
+  * Re-enable running the testsuite on powerpc.
+  * Run the testsuite on AArch64.
+  * Fix IcedTea bits to build on x32.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 22 Dec 2013 21:20:10 +0100
+
+openjdk-7 (7u45-2.4.3-3) unstable; urgency=low
+
+  * Don't build on s390 anymore.
+  * Update hotspot-mips-align patch (Aurelien Jarno). Closes: #732528).
+  * Build for ppc64el.
+  * Try to build zero on x32.
+  * Configure with --enable-zero on sparc and sparc64.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 20 Dec 2013 14:42:38 +0100
+
+openjdk-7 (7u45-2.4.3-2.3) unstable; urgency=medium
+
+  * Disable bootstrap build on alpha. Closes: #719671.
+  * Disable running the jdk jtreg tests on the hotspot architectures.
+    Hanging on the buildds.
+  * Re-enable the jexec patch, program logic confused by running jexec
+    outside the assumed java home. Closes: #731961.
+  * Don't apply the s390 patches on s390x. s390 is successfully dead.
+  * Fix zero builds on little endian architectures, taken from the trunk.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 12 Dec 2013 18:24:44 +0100
+
+openjdk-7 (7u45-2.4.3-1) unstable; urgency=medium
+
+  * IcedTea7 2.4.3 release.
+  * Security fixes:
+    - S8006900, CVE-2013-3829: Add new date/time capability.
+    - S8008589: Better MBean permission validation.
+    - S8011071, CVE-2013-5780: Better crypto provider handling.
+    - S8011081, CVE-2013-5772: Improve jhat.
+    - S8011157, CVE-2013-5814: Improve CORBA portablility.
+    - S8012071, CVE-2013-5790: Better Building of Beans.
+    - S8012147: Improve tool support.
+    - S8012277: CVE-2013-5849: Improve AWT DataFlavor.
+    - S8012425, CVE-2013-5802: Transform TransformerFactory.
+    - S8013503, CVE-2013-5851: Improve stream factories.
+    - S8013506: Better Pack200 data handling.
+    - S8013510, CVE-2013-5809: Augment image writing code.
+    - S8013514: Improve stability of cmap class.
+    - S8013739, CVE-2013-5817: Better LDAP resource management.
+    - S8013744, CVE-2013-5783: Better tabling for AWT.
+    - S8014085: Better serialization support in JMX classes.
+    - S8014093, CVE-2013-5782: Improve parsing of images.
+    - S8014098: Better profile validation.
+    - S8014102, CVE-2013-5778: Improve image conversion.
+    - S8014341, CVE-2013-5803: Better service from Kerberos servers.
+    - S8014349, CVE-2013-5840: (cl) Class.getDeclaredClass problematic
+      in some class loader configurations.
+    - S8014530, CVE-2013-5825: Better digital signature processing.
+    - S8014534: Better profiling support.
+    - S8014987, CVE-2013-5842: Augment serialization handling.
+    - S8015614: Update build settings.
+    - S8015731: Subject java.security.auth.subject to improvements.
+    - S8015743, CVE-2013-5774: Address internet addresses.
+    - S8016256: Make finalization final.
+    - S8016653, CVE-2013-5804: javadoc should ignore ignoreable characters
+      in names.
+    - S8016675, CVE-2013-5797: Make Javadoc pages more robust.
+    - S8017196, CVE-2013-5850: Ensure Proxies are handled appropriately.
+    - S8017287, CVE-2013-5829: Better resource disposal.
+    - S8017291, CVE-2013-5830: Cast Proxies Aside.
+    - S8017298, CVE-2013-4002: Better XML support.
+    - S8017300, CVE-2013-5784: Improve Interface Implementation.
+    - S8017505, CVE-2013-5820: Better Client Service.
+    - S8019292: Better Attribute Value Exceptions.
+    - S8019617: Better view of objects.
+    - S8020293: JVM crash.
+    - S8021275, CVE-2013-5805: Better screening for ScreenMenu.
+    - S8021282, CVE-2013-5806: Better recycling of object instances.
+    - S8021286: Improve MacOS resourcing.
+    - S8021290, CVE-2013-5823: Better signature validation.
+    - S8022931, CVE-2013-5800: Enhance Kerberos exceptions.
+    - S8022940: Enhance CORBA translations.
+    - S8023683: Enhance class file parsing.
+  * Fix build failure on mips* (Aurelien Jarno). Closes: #729448).
+  * Run autoreconf. Closes: #724083.
+  * Merge the -jre-lib package into -jre-headless. Simplifies the packaging
+    and the savings were not as big as wanted, because the rt.jar is still
+    architecture dependant. Closes: #641049, #722510.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 08 Dec 2013 23:22:06 +0100
+
+openjdk-7 (7u25-2.3.12-4ubuntu3) saucy; urgency=low
+
+  * Apply missing patch to fix arm64/AArch64 detection.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 11 Oct 2013 17:51:33 +0200
+
+openjdk-7 (7u25-2.3.12-4ubuntu2) saucy; urgency=low
+
+  * openjdk-jre-headless: Loosen the dependency on -jre-lib.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 09 Oct 2013 16:29:15 +0200
+
+openjdk-7 (7u25-2.3.12-4ubuntu1) saucy; urgency=low
+
+  * Regenerate the control file.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 16 Aug 2013 12:09:47 +0200
+
+openjdk-7 (7u25-2.3.12-4) unstable; urgency=low
+
+  * Add the hotspot patches for AArch64, which apparently were not
+    included in the IcedTea release by intent.
+  * Don't interpret arm64 as an ARM architecture, but as AArch64. So
+    much for Debian calling this port arm64 ...
+  * Use host macros instead of build macros for corba and hotspot config.
+  * Re-add multiarch library directories to the default library path.
+    Closes: #712567.
+  * Enable the two-stage build on alpha. Closes: #719671.
+  * Build for powerpcspe (Roland Stigge). Closes: #712686.
+  * Recommend fonts-dejavu-extra instead of ttf-dejavu-extra for current
+    releases. Closes: #718839.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 15 Aug 2013 21:26:51 +0200
+
+openjdk-7 (7u25-2.3.12-3) unstable; urgency=low
+
+  * Fix kFreeBSD builds (Thanks to Christoph Egger for his help).
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Mon, 12 Aug 2013 00:39:41 +0200
+
+openjdk-7 (7u25-2.3.12-2) unstable; urgency=low
+
+  [ Matthias Klose ]
+  * Regenerate the hotspot-s390 patch.
+
+  [ Damien Raude-Morvan ]
+  * Update kfreebsd patches.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 03 Aug 2013 20:22:41 +0200
+
+openjdk-7 (7u25-2.3.12-1) unstable; urgency=low
+
+  * IcedTea7 2.3.12 release.
+  * Don't build with pulseaudio on arm64.
+  * Disable bootstraped build on s390 and sparc.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 02 Aug 2013 15:55:01 +0200
+
+openjdk-7 (7u25-2.3.10-2ubuntu1) saucy; urgency=low
+
+  * Regenerate the control file.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 15 Jul 2013 23:59:45 +0200
+
+openjdk-7 (7u25-2.3.10-2) unstable; urgency=low
+
+  [ Matthias Klose ]
+  * Fix gcj-jdk build dependency on ia64 and s390.
+  * Build zero on arm64.
+
+  [ Gianfranco Costamagna ]
+  * Fix build failure on kfreebsd (Closes: #714528)
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 30 Jun 2013 17:12:28 +0200
+
+openjdk-7 (7u25-2.3.10-1) unstable; urgency=high
+
+  * IcedTea7 2.3.10 release.
+  * Security fixes
+    * S6741606, CVE-2013-2407: Integrate Apache Santuario.
+    * S7158805, CVE-2013-2445: Better rewriting of nested subroutine calls.
+    * S7170730, CVE-2013-2451: Improve Windows network stack support.
+    * S8000638, CVE-2013-2450: Improve deserialization.
+    * S8000642, CVE-2013-2446: Better handling of objects for transportation.
+    * S8001032: Restrict object access.
+    * S8001033, CVE-2013-2452: Refactor network address handling in virtual
+      machine identifiers.
+    * S8001034, CVE-2013-1500: Memory management improvements.
+    * S8001038, CVE-2013-2444: Resourcefully handle resources.
+    * S8001043: Clarify definition restrictions.
+    * S8001308: Update display of applet windows.
+    * S8001309: Better handling of annotation interfaces.
+    * S8001318, CVE-2013-2447: Socket.getLocalAddress not consistent with
+      InetAddress.getLocalHost.
+    * S8001330, CVE-2013-2443: Improve on checking order (non-Zero builds only).
+    * S8003703, CVE-2013-2412: Update RMI connection dialog box.
+    * S8004288, CVE-2013-2449: (fs) Files.probeContentType problems.
+    * S8004584: Augment applet contextualization.
+    * S8005007: Better glyph processing.
+    * S8006328, CVE-2013-2448: Improve robustness of sound classes.
+    * S8006611: Improve scripting.
+    * S8007467: Improve robustness of JMX internal APIs.
+    * S8007471: Improve MBean notifications.
+    * S8007812, CVE-2013-2455: (reflect) Class.getEnclosingMethod problematic for some classes.
+    * S8007925: Improve cmsStageAllocLabV2ToV4curves.
+    * S8007926: Improve cmsPipelineDup.
+    * S8007927: Improve cmsAllocProfileSequenceDescription.
+    * S8007929: Improve CurvesAlloc.
+    * S8008120, CVE-2013-2457: Improve JMX class checking.
+    * S8008124, CVE-2013-2453: Better compliance testing.
+    * S8008128: Better API coherence for JMX.
+    * S8008132, CVE-2013-2456: Better serialization support.
+    * S8008585: Better JMX data handling.
+    * S8008593: Better URLClassLoader resource management.
+    * S8008603: Improve provision of JMX providers.
+    * S8008607: Better input checking in JMX.
+    * S8008611: Better handling of annotations in JMX.
+    * S8008615: Improve robustness of JMX internal APIs.
+    * S8008623: Better handling of MBeanServers.
+    * S8008744, CVE-2013-2407: Rework part of fix for JDK-6741606.
+    * S8008982: Adjust JMX for underlying interface changes.
+    * S8009004: Better implementation of RMI connections.
+    * S8009008: Better manage management-api.
+    * S8009013: Better handling of T2K glyphs.
+    * S8009034: Improve resulting notifications in JMX.
+    * S8009038: Improve JMX notification support.
+    * S8009057, CVE-2013-2448: Improve MIDI event handling.
+    * S8009067: Improve storing keys in KeyStore.
+    * S8009071, CVE-2013-2459: Improve shape handling.
+    * S8009235: Improve handling of TSA data.
+    * S8009424, CVE-2013-2458: Adapt Nashorn to JSR-292 implementation change.
+    * S8009554, CVE-2013-2454: Improve SerialJavaObject.getFields.
+    * S8009654: Improve stability of cmsnamed.
+    * S8010209, CVE-2013-2460: Better provision of factories.
+    * S8011243, CVE-2013-2470: Improve ImagingLib.
+    * S8011248, CVE-2013-2471: Better Component Rasters.
+    * S8011253, CVE-2013-2472: Better Short Component Rasters.
+    * S8011257, CVE-2013-2473: Better Byte Component Rasters.
+    * S8012375, CVE-2013-1571: Improve Javadoc framing.
+    * S8012421: Better positioning of PairPositioning.
+    * S8012438, CVE-2013-2463: Better image validation.
+    * S8012597, CVE-2013-2465: Better image channel verification.
+    * S8012601, CVE-2013-2469: Better validation of image layouts.
+    * S8014281, CVE-2013-2461: Better checking of XML signature.
+    * S8015997: Additional improvement in Javadoc framing.
+  * Breaks icedtea-netx (<< 1.4-2).
+
+ -- Matthias Klose <doko@debian.org>  Fri, 28 Jun 2013 16:55:32 +0200
+
+openjdk-7 (7u21-2.3.9-5) unstable; urgency=low
+
+  * Update kFreeBSD support (Guido Guenther). Closes: #708818.
+  * Stop building the transitional cacao package for sid.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 18 May 2013 20:13:33 +0200
+
+openjdk-7 (7u21-2.3.9-4) unstable; urgency=high
+
+  * Build the transitional cacao package for sid as well. Apparently
+    some buildds are not updated to list wheezy as the code name for
+    the current distribution.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 02 May 2013 03:27:44 +0200
+
+openjdk-7 (7u21-2.3.9-3) unstable; urgency=high
+
+  * Disable the cacao build again, causing build failures on i386 and s390.
+  * Build a transitional cacao jre package instead.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 30 Apr 2013 00:27:05 +0200
+
+openjdk-7 (7u21-2.3.9-2) unstable; urgency=high
+
+  * On ia64, use gcj-4.7 for the bootstrap build.
+  * Drop the cacao jre from recommends to suggests.
+  * Re-enable cacao, was enabled in the 2.1.x series.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 27 Apr 2013 01:17:16 +0200
+
+openjdk-7 (7u21-2.3.9-1) unstable; urgency=high
+
+  * IcedTea7 2.3.9 release.
+  * Security fixes:
+    - S6657673, CVE-2013-1518: Issues with JAXP.
+    - S7200507: Refactor Introspector internals.
+    - S8000724, CVE-2013-2417: Improve networking serialization.
+    - S8001031, CVE-2013-2419: Better font processing.
+    - S8001040, CVE-2013-1537: Rework RMI model.
+    - S8001322: Refactor deserialization.
+    - S8001329, CVE-2013-1557: Augment RMI logging.
+    - S8003335: Better handling of Finalizer thread.
+    - S8003445: Adjust JAX-WS to focus on API.
+    - S8003543, CVE-2013-2415: Improve processing of MTOM attachments.
+    - S8004261: Improve input validation.
+    - S8004336, CVE-2013-2431: Better handling of method handle intrinsic frames.
+    - S8004986, CVE-2013-2383: Better handling of glyph table.
+    - S8004987, CVE-2013-2384: Improve font layout.
+    - S8004994, CVE-2013-1569: Improve checking of glyph table.
+    - S8005432: Update access to JAX-WS.
+    - S8005943: (process) Improved Runtime.exec.
+    - S8006309: More reliable control panel operation.
+    - S8006435, CVE-2013-2424: Improvements in JMX.
+    - S8006790: Improve checking for windows.
+    - S8006795: Improve font warning messages.
+    - S8007406: Improve accessibility of AccessBridge.
+    - S8007617, CVE-2013-2420: Better validation of images.
+    - S8007667, CVE-2013-2430: Better image reading.
+    - S8007918, CVE-2013-2429: Better image writing.
+    - S8008140: Better method handle resolution.
+    - S8009049, CVE-2013-2436: Better method handle binding.
+    - S8009063, CVE-2013-2426: Improve reliability of ConcurrentHashMap.
+    - S8009305, CVE-2013-0401: Improve AWT data transfer.
+    - S8009677, CVE-2013-2423: Better setting of setters.
+    - S8009699, CVE-2013-2421: Methodhandle lookup.
+    - S8009814, CVE-2013-1488: Better driver management.
+    - S8009857, CVE-2013-2422: Problem with plugin.
+  * Backports:
+    - S7130662: GTK file dialog crashes with a NPE.
+  * Bug fixes
+    - PR1363: Fedora 19 / rawhide FTBFS SIGILL.
+    - PR1401: Fix Zero build on 2.3.8.
+    - Fix offset problem in ICU LETableReference.
+    - Change -Werror fix to preserve OpenJDK default.
+    - PR1303: Correct #ifdef to #if.
+    - PR1404: Failure to bootstrap with ecj 4.2.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 22 Apr 2013 03:27:08 +0200
+
+openjdk-7 (7u17-2.3.8-2) experimental; urgency=low
+
+  * Remove Torsten Werner as uploader.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 01 Apr 2013 00:39:58 +0200
+
+openjdk-7 (7u17-2.3.8-1ubuntu1) raring; urgency=low
+
+  * Regenerate the control file.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 31 Mar 2013 20:10:05 +0200
+
+openjdk-7 (7u17-2.3.8-1) experimental; urgency=low
+
+  * IcedTea7 2.3.8 release.
+  * Security fixes:
+    - S8007014, CVE-2013-0809: Improve image handling.
+    - S8007675, CVE-2013-1493: Improve color conversion.
+  * Backports:
+    - S8002344: Krb5LoginModule config class does not return proper KDC list
+      from DNS.
+    - S8004344: Fix a crash in ToolkitErrorHandler() in XlibWrapper.c.
+    - S8006179: JSR292 MethodHandles lookup with interface using findVirtual().
+    - S8006882: Proxy generated classes in sun.proxy package breaks JMockit.
+  * Bug fixes:
+    - PR1303: Correct #ifdef to #if.
+    - PR1340: Simplify the rhino class rewriter to avoid use of concurrency.
+    - Revert 7017193 and add the missing free call, until a better fix is ready.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 31 Mar 2013 14:31:11 +0200
+
+openjdk-7 (7u15-2.3.7-1ubuntu2) raring; urgency=low
+
+  * Security fixes:
+    - S8007014, CVE-2013-0809: Improve image handling
+    - S8007675, CVE-2013-1493: Improve color conversion
+    - debian/rules: updated to add 8007014.patch and 8007675.patch
+
+ -- Jamie Strandboge <jamie@ubuntu.com>  Wed, 06 Mar 2013 14:12:03 -0600
+
+openjdk-7 (7u15-2.3.7-1ubuntu1) raring; urgency=low
+
+  * Regenerate the control file.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 20 Feb 2013 23:59:54 +0100
+
+openjdk-7 (7u15-2.3.7-1) experimental; urgency=low
+
+  * IcedTea7 2.3.7 release.
+  * Security fixes:
+    - S8004937, CVE-2013-1484: Improve proxy construction.
+    - S8006439, CVE-2013-1485: Improve MethodHandles coverage.
+    - S8006446, CVE-2013-1486: Restrict MBeanServer access.
+    - S8006777, CVE-2013-0169: Improve TLS handling of invalid messages.
+    - S8007688: Blacklist known bad certificate.
+  * Backports:
+    - S8007393: Possible race condition after JDK-6664509.
+    - S8007611: logging behavior in applet changed.
+  * For zero builds, use the same hotspot version as in 2.1.6.
+  * Reenable bootstrap builds, except for alpha.
+  * Explicitly disable building on mips/mipsel.  Not supported by the
+    Debian OpenJDK maintainers, the Debian mips porters, or the Debian
+    Java team.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 20 Feb 2013 23:33:58 +0100
+
+openjdk-7 (7u13-2.3.6-1) experimental; urgency=low
+
+  * IcedTea7 2.3.6 release.
+    - Disable bootstrap builds, currently broken in IcedTea.
+  * Security fixes:
+    - S6563318, CVE-2013-0424: RMI data sanitization.
+    - S6664509, CVE-2013-0425: Add logging context.
+    - S6664528, CVE-2013-0426: Find log level matching its name or value given
+      at construction time.
+    - S6776941: CVE-2013-0427: Improve thread pool shutdown.
+    - S7141694, CVE-2013-0429: Improving CORBA internals.
+    - S7173145: Improve in-memory representation of splashscreens.
+    - S7186945: Unpack200 improvement.
+    - S7186946: Refine unpacker resource usage.
+    - S7186948: Improve Swing data validation.
+    - S7186952, CVE-2013-0432: Improve clipboard access.
+    - S7186954: Improve connection performance.
+    - S7186957: Improve Pack200 data validation.
+    - S7192392, CVE-2013-0443: Better validation of client keys.
+    - S7192393, CVE-2013-0440: Better Checking of order of TLS Messages.
+    - S7192977, CVE-2013-0442: Issue in toolkit thread.
+    - S7197546, CVE-2013-0428: (proxy) Reflect about creating reflective proxies.
+    - S7200491: Tighten up JTable layout code.
+    - S7200500: Launcher better input validation.
+    - S7201064: Better dialogue checking.
+    - S7201066, CVE-2013-0441: Change modifiers on unused fields.
+    - S7201068, CVE-2013-0435: Better handling of UI elements.
+    - S7201070: Serialization to conform to protocol.
+    - S7201071, CVE-2013-0433: InetSocketAddress serialization issue.
+    - S8000210: Improve JarFile code quality.
+    - S8000537, CVE-2013-0450: Contextualize RequiredModelMBean class.
+    - S8000540, CVE-2013-1475: Improve IIOP type reuse management.
+    - S8000631, CVE-2013-1476: Restrict access to class constructor.
+    - S8001235, CVE-2013-0434: Improve JAXP HTTP handling.
+    - S8001242: Improve RMI HTTP conformance.
+    - S8001307: Modify ACC_SUPER behavior.
+    - S8001972, CVE-2013-1478: Improve image processing.
+    - S8002325, CVE-2013-1480: Improve management of images.
+  * Fix font suggestion for indic fonts in wheezy.
+  * Fix fontconfig definitions for japanese and korean fonts, fixing
+    compilation of the fontconfig file.
+  * Add Built-Using: rhino attribute for the -lib package.
+  * Don't use concurrent features to rewrite the rhino jar file.
+  * Enable class data sharing for the hotspot server VM.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 12 Feb 2013 20:59:48 +0100
+
+openjdk-7 (7u9-2.3.4-1) experimental; urgency=low
+
+  * IcedTea7 2.3.4 release.
+  * Security fixes
+    - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries.
+    - S8006017, CVE-2013-0422: Improve lookup resolutions.
+    - S8006125: Update MethodHandles library interactions.
+  * Bug fixes
+    - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit
+      shifts.
+    - G422525: Fix building with PaX enabled kernels.
+
+  [ Matthias Klose ]
+  * Loosen OpenGL dependency. Closes: #695028.
+  * Fix error parsing drop files parameter from pcmanfm (Alberto Fernández
+    Martínez). Closes: #695992.
+
+  [ Thorsten Glaser ]
+  * debian/rules: Use gcj-4.6-jdk for m68k builds.
+  * d/patches/text-relocations.patch: build with -fPIC on all archs.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 15 Jan 2013 23:38:48 +0100
+
+openjdk-7 (7u9-2.3.3-1) experimental; urgency=low
+
+  * Upload to experimental.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 17 Oct 2012 15:16:51 +0200
+
+openjdk-7 (7u9-2.3.3-0ubuntu1) quantal-security; urgency=low
+
+  * IcedTea7 2.3.3 release.
+  * Security fixes
+    - S6631398, CVE-2012-3216: FilePermission improved path checking.
+    - S7093490: adjust package access in rmiregistry.
+    - S7143535, CVE-2012-5068: ScriptEngine corrected permissions.
+    - S7158796, CVE-2012-5070: Tighten properties checking in EnvHelp.
+    - S7158807: Revise stack management with volatile call sites.
+    - S7163198, CVE-2012-5076: Tightened package accessibility.
+    - S7167656, CVE-2012-5077: Multiple Seeders are being created.
+    - S7169884, CVE-2012-5073: LogManager checks do not work correctly for
+      sub-types.
+    - S7169887, CVE-2012-5074: Tightened package accessibility.
+    - S7169888, CVE-2012-5075: Narrowing resource definitions in JMX RMI
+      connector.
+    - S7172522, CVE-2012-5072: Improve DomainCombiner checking.
+    - S7186286, CVE-2012-5081: TLS implementation to better adhere to RFC.
+    - S7189103, CVE-2012-5069: Executors needs to maintain state.
+    - S7189490: More improvements to DomainCombiner checking.
+    - S7189567, CVE-2012-5085: java net obselete protocol.
+    - S7192975, CVE-2012-5071: Issue with JMX reflection.
+    - S7195194, CVE-2012-5084: Better data validation for Swing.
+    - S7195549, CVE-2012-5087: Better bean object persistence.
+    - S7195917, CVE-2012-5086: XMLDecoder parsing at close-time should be
+      improved.
+    - S7195919, CVE-2012-5979: (sl) ServiceLoader can throw CCE without
+      needing to create instance.
+    - S7196190, CVE-2012-5088: Improve method of handling MethodHandles.
+    - S7198296, CVE-2012-5089: Refactor classloader usage.
+    - S7158800: Improve storage of symbol tables.
+    - S7158801: Improve VM CompileOnly option.
+    - S7158804: Improve config file parsing.
+    - S7198606, CVE-2012-4416: Improve VM optimization.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 17 Oct 2012 13:27:47 +0200
+
+openjdk-7 (7u7-2.3.2a-1ubuntu1) quantal; urgency=low
+
+  * Build a transitional icedtea-7-jre-cacao package to ease upgrades.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 19 Sep 2012 17:42:39 +0200
+
+openjdk-7 (7u7-2.3.2a-1) experimental; urgency=low
+
+  * Upload to experimental.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 15 Sep 2012 22:20:06 +0200
+
+openjdk-7 (7u7-2.3.2a-0ubuntu1) quantal; urgency=low
+
+  * Repackage the source to drop the cacao tarball (and packaging files).
+  * Depend again on system provided tzdata-java and restore the zi
+    symlink on upgrade. LP: #1050404.
+  * libgnome2-0, libgnomevfs2-0, libgconf2-4 are not prepared for multiarch.
+    Don't depend on these so that openjdk-7 can be installed as a multiarch
+    package.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 15 Sep 2012 17:01:12 +0200
+
+openjdk-7 (7u7-2.3.2-1ubuntu2) quantal; urgency=low
+
+  * Make the avian VM a known runtime.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 05 Sep 2012 11:58:35 +0200
+
+openjdk-7 (7u7-2.3.2-1ubuntu1) quantal; urgency=low
+
+  * Fix 32bit hotspot build, don't set maximal heap space lower than
+    minimal heap space for the docs build.
+  * d/p/sane-library-paths.patch, d/p/ant-diagnostics.diff,
+    d/p/fix-race-cond-print.diff, d/p/gcc-hotspot-opt-O[02].diff,
+    d/p/gcc-mtune-generic.diff, d/p/openjdk-6986968.diff: Remove, not used.
+  * Remove unused shark/llvm-3.0 patches.
+  * d/p/zero-only-use-floating-point-if-floating-poi.patch: Remove, applied
+    upstream.
+  * Don't explicitly build with -march=i586 on i386 architectures.
+  * Re-apply zero-missing-headers.diff.
+  * Disable cacao builds, needs update for 7u7.
+  * For Ubuntu quantal, set priorities for alternatives higher than for
+    OpenJDK 6.
+  * Call update-alternatives when the existing priority for the alternative
+    is lower than the current one.
+  * Configure with --disable-downloading.
+  * Pass -avoid-version to libtool to create a JamVM libjvm.so without SONAME
+    version numbers to match the Hotspot Server/Client libjvm.so. LP: #850433.
+  * Revert the following change: Move libgnome2-0, libgnomevfs2-0, libgconf2-4
+    from Depends of JRE package to Recommends (#661465).
+    The proper fix is to create a -jdk-headless package, or not depending on
+    these gnome packages at all (e.g. using XDG libraries).
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 04 Sep 2012 12:08:31 +0200
+
+openjdk-7 (7u7-2.3.2-1) experimental; urgency=low
+
+  * New upstream IcedTea7 2.3.2 release.
+  * Security fixes:
+    - CVE-2012-4681: Reintroduce PackageAccessible checks removed in 6788531.
+    - S7079902, CVE-2012-1711: Refine CORBA data models.
+    - S7143606, CVE-2012-1717: File.createTempFile should be improved
+      for temporary files created by the platform.
+    - S7143614, CVE-2012-1716: SynthLookAndFeel stability improvement.
+    - S7143617, CVE-2012-1713: Improve fontmanager layout lookup operations.
+    - S7143851, CVE-2012-1719: Improve IIOP stub and tie generation in RMIC.
+    - S7143872, CVE-2012-1718: Improve certificate extension processing.
+    - S7152811, CVE-2012-1723: Issues in client compiler.
+    - S7157609, CVE-2012-1724: Issues with loop.
+    - S7160757, CVE-2012-1725: Problem with hotspot/runtime_classfile.
+    - S7165628, CVE-2012-1726: Issues with java.lang.invoke.MethodHandles.Lookup.
+  * Bump version to 7u7 (OpenJDK), 2.3.2 (IcedTea). Closes: #685276.
+  * d/p/icedtea7-forest-jdk_7104625-XEvent_wrap_logging_calls_with_if.patch,
+    d/p/hotspot-sparc.diff: Remove, integrated upstream.
+  * d/p/{deb-multiarch,fix_extra_flags,hotspot-no-werror}.diff:
+    Add variants for hotspot and zero builds.
+  * d/p/default-jvm-cfg.diff, d/p/icedtea-4953367.patch,
+    d/p/icedtea-patch.diff, d/p/icedtea-pretend-memory.diff,
+    d/p/libpcsclite-dlopen.diff, d/p/nonreparenting-wm.diff:
+    Update for 2.3.2.
+  * Remove build support for Ubuntu releases earlier than hardy.
+  * d/update-shasum.sh: Only update the shasums of the -dfsg tarballs.
+  * Don't apply shark patches (not built anyway).
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 01 Sep 2012 11:46:50 +0200
+
+openjdk-7 (7u3-2.1.7-1) unstable; urgency=high
+
+  * IcedTea7 2.1.7 release:
+  * Security fixes:
+    - S8007014, CVE-2013-0809: Improve image handling.
+    - S8007675, CVE-2013-1493: Improve color conversion.
+  * Backports:
+    - S8002344: Krb5LoginModule config class does not return proper KDC list
+      from DNS.
+    - S8004344: Fix a crash in ToolkitErrorHandler() in XlibWrapper.c.
+    - S8006179: JSR292 MethodHandles lookup with interface using findVirtual().
+    - S8006882: Proxy generated classes in sun.proxy package breaks JMockit.
+  * Bug fixes:
+    - PR1303: Correct #ifdef to #if
+    - Stop libraries being stripped in the OpenJDK build.
+    - PR1340: Simplify the rhino class rewriter to avoid use of concurrency.
+    - Revert 7017193 and add the missing free call, until a better fix is ready.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 30 Mar 2013 11:31:12 +0100
+
+openjdk-7 (7u3-2.1.6-1) unstable; urgency=high
+
+  * IcedTea7 2.1.5 release:
+  * Security fixes:
+    - S6563318, CVE-2013-0424: RMI data sanitization.
+    - S6664509, CVE-2013-0425: Add logging context.
+    - S6664528, CVE-2013-0426: Find log level matching its name or value
+      given at construction time.
+    - S6776941: CVE-2013-0427: Improve thread pool shutdown.
+    - S7141694, CVE-2013-0429: Improving CORBA internals.
+    - S7173145: Improve in-memory representation of splashscreens.
+    - S7186945: Unpack200 improvement.
+    - S7186946: Refine unpacker resource usage.
+    - S7186948: Improve Swing data validation.
+    - S7186952, CVE-2013-0432: Improve clipboard access.
+    - S7186954: Improve connection performance.
+    - S7186957: Improve Pack200 data validation.
+    - S7192392, CVE-2013-0443: Better validation of client keys.
+    - S7192393, CVE-2013-0440: Better Checking of order of TLS Messages.
+    - S7192977, CVE-2013-0442: Issue in toolkit thread.
+    - S7197546, CVE-2013-0428: (proxy) Reflect about creating reflective
+      proxies.
+    - S7200491: Tighten up JTable layout code.
+    - S7200493, CVE-2013-0444: Improve cache handling.
+    - S7200499: Better data validation for options.
+    - S7200500: Launcher better input validation.
+    - S7201064: Better dialogue checking.
+    - S7201066, CVE-2013-0441: Change modifiers on unused fields.
+    - S7201068, CVE-2013-0435: Better handling of UI elements.
+    - S7201070: Serialization to conform to protocol.
+    - S7201071, CVE-2013-0433: InetSocketAddress serialization issue.
+    - S8000210: Improve JarFile code quality.
+    - S8000537, CVE-2013-0450: Contextualize RequiredModelMBean class.
+    - S8000539, CVE-2013-0431: Introspect JMX data handling.
+    - S8000540, CVE-2013-1475: Improve IIOP type reuse management.
+    - S8000631, CVE-2013-1476: Restrict access to class constructor.
+    - S8001235, CVE-2013-0434: Improve JAXP HTTP handling.
+    - S8001242: Improve RMI HTTP conformance.
+    - S8001307: Modify ACC_SUPER behavior.
+    - S8001972, CVE-2013-1478: Improve image processing.
+    - S8002325, CVE-2013-1480: Improve management of images.
+  * Backports:
+    - S7054590: (JSR-292) MethodHandleProxies.asInterfaceInstance()
+      accepts private/protected nested interfaces.
+    - S7175616: Port fix for TimeZone from JDK 8 to JDK 7.
+    - S8002068: Build broken: corba code changes unable to use new
+      JDK 7 classes.
+    - S8004341: Two JCK tests fails with 7u11 b06.
+    - S8005615: Java Logger fails to load tomcat logger implementation (JULI).
+  * IcedTea7 2.1.6 release:
+    * Security fixes:
+    - S8004937, CVE-2013-1484: Improve proxy construction.
+    - S8006439, CVE-2013-1485: Improve MethodHandles coverage.
+    - S8006446, CVE-2013-1486: Restrict MBeanServer access.
+    - S8006777, CVE-2013-0169: Improve TLS handling of invalid messages.
+    - S8007688: Blacklist known bad certificate.
+  * Backports:
+    - S7123519: problems with certification path.
+    - S8007393: Possible race condition after JDK-6664509.
+    - S8007611: logging behavior in applet changed.
+  * Fix font suggestion for indic fonts in wheezy.
+  * Fix fontconfig definitions for japanese and korean fonts, fixing
+    compilation of the fontconfig file.
+  * Add Built-Using: rhino attribute for the -lib package.
+  * Don't use concurrent features to rewrite the rhino jar file.
+  * Enable class data sharing for the hotspot server VM.
+  * Enable bootstrap builds for alpha.
+  * Explicitly disable building on mips/mipsel.  Not supported by the
+    Debian OpenJDK maintainers, the Debian mips porters, or the Debian
+    Java team.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 21 Feb 2013 03:38:13 +0100
+
+openjdk-7 (7u3-2.1.4-1) unstable; urgency=low
+
+  * IcedTea7 2.1.4 release.
+  * Security fixes
+    - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries
+    - S8006017, CVE-2013-0422: Improve lookup resolutions
+    - S8006125: Update MethodHandles library interactions
+  * Loosen OpenGL dependency. Closes: #695028.
+  * Fix error parsing drop files parameter from pcmanfm (Alberto Fernández
+    Martínez). Closes: #695992.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 16 Jan 2013 11:46:20 +0100
+
+openjdk-7 (7u3-2.1.3-1) unstable; urgency=low
+
+  * IcedTea7 2.1.3 release.
+  * Security fixes
+    - S6631398, CVE-2012-3216: FilePermission improved path checking.
+    - S7093490: adjust package access in rmiregistry.
+    - S7143535, CVE-2012-5068: ScriptEngine corrected permissions.
+    - S7158796, CVE-2012-5070: Tighten properties checking in EnvHelp.
+    - S7158807: Revise stack management with volatile call sites.
+    - S7163198, CVE-2012-5076: Tightened package accessibility.
+    - S7167656, CVE-2012-5077: Multiple Seeders are being created.
+    - S7169884, CVE-2012-5073: LogManager checks do not work correctly for
+      sub-types.
+    - S7169887, CVE-2012-5074: Tightened package accessibility.
+    - S7169888, CVE-2012-5075: Narrowing resource definitions in JMX RMI
+      connector.
+    - S7172522, CVE-2012-5072: Improve DomainCombiner checking.
+    - S7186286, CVE-2012-5081: TLS implementation to better adhere to RFC.
+    - S7189103, CVE-2012-5069: Executors needs to maintain state.
+    - S7189490: More improvements to DomainCombiner checking.
+    - S7189567, CVE-2012-5085: java net obselete protocol.
+    - S7192975, CVE-2012-5071: Issue with JMX reflection.
+    - S7195194, CVE-2012-5084: Better data validation for Swing.
+    - S7195549, CVE-2012-5087: Better bean object persistence.
+    - S7195917, CVE-2012-5086: XMLDecoder parsing at close-time should be
+      improved.
+    - S7195919, CVE-2012-5979: (sl) ServiceLoader can throw CCE without
+      needing to create instance.
+    - S7196190, CVE-2012-5088: Improve method of handling MethodHandles.
+    - S7198296, CVE-2012-5089: Refactor classloader usage.
+    - S7158801: Improve VM CompileOnly option.
+    - S7158804: Improve config file parsing.
+    - S7198606, CVE-2012-4416: Improve VM optimization.
+  * Backports
+    - S7175845: "jar uf" changes file permissions unexpectedly.
+    - S7177216: native2ascii changes file permissions of input file.
+    - S7106773: 512 bits RSA key cannot work with SHA384 and SHA512.
+    - S7158800: Improve storage of symbol tables.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 17 Oct 2012 16:03:47 +0200
+
+openjdk-7 (7u3-2.1.2-2ubuntu1) precise-security; urgency=low
+
+  * Make the avian VM a known runtime.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 08 Sep 2012 16:01:31 +0200
+
+openjdk-7 (7u3-2.1.2-2) unstable; urgency=high
+
+  * Pass -avoid-version to libtool to create a JamVM libjvm.so without SONAME
+    version numbers to match the Hotspot Server/Client libjvm.so. LP: #850433.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 04 Sep 2012 17:55:43 +0200
+
+openjdk-7 (7u3-2.1.2-1) unstable; urgency=high
+
+  * IcedTea7 2.1.2 release.
+  * Security fixes
+    - CVE-2012-4681, S7162473: Reintroduce PackageAccessible checks removed
+      in 6788531.
+    - S7162476, CVE-2012-1682: XMLDecoder security issue via ClassFinder.
+    - S7194567, CVE-2012-3136: Improve long term persistence of java.beans
+      objects.
+    - S7163201, CVE-2012-0547: Simplify toolkit internals references.
+  * d/p/hotspot-sparc.diff: Remove, integrated upstream.
+  * Stop running the mauve tests.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 03 Sep 2012 23:17:11 +0200
+
+openjdk-7 (7~u3-2.1.1-3) unstable; urgency=low
+
+  * d/rules: Ensure we don't remove -02 (default) when -03 is disabled
+    (fix jamvm FTBFS on armhf without -02).
+  * d/patches/gcc-jdk-opt-O0.diff, d/patches/gcc-jdk-opt-O2.diff,
+    d/patches/gcc-no-hardening.diff, d/patches/gcc-opt-O2.diff: removed.
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Wed, 25 Jul 2012 21:18:15 +0200
+
+openjdk-7 (7~u3-2.1.1-2) unstable; urgency=low
+
+  * d/rules: On Debian Wheezy/Sid bump Build-Depends on libnss3-dev
+    (>= 2:3.13.4) and Depends on libnss3 (>= 2:3.13.4) (ie. with epoch).
+    (Closes: #679465).
+  * d/control: Suggests icedtea-7-plugin instead of icedtea6-plugin
+    (Closes: #680284).
+  * d/patches/7130140-MouseEvent-systemout.diff: Remove "MEvent. CASE!" from
+    console output. (Closes: #679036).
+  * Disable -O3 compile: cause wrong Math.* computations.
+    (Closes: #679292 and Closes: #678228). LP: #1044857.
+  * debian/patches/FreetypeFontScaler_getFontMetricsNative.diff:
+    Fix "OpenJDK returns the text height greater than font size".
+    (Closes: #657854)
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Sat, 30 Jun 2012 18:17:51 +0200
+
+openjdk-7 (7~u3-2.1.1-1) unstable; urgency=medium
+
+  * New upstream release with security fixes (Closes: #677486):
+    - S7079902, CVE-2012-1711: Refine CORBA data models
+    - S7110720: Issue with vm config file loadingIssue with
+      vm config file loading
+    - S7143606, CVE-2012-1717: File.createTempFile should be improved
+      for temporary files created by the platform.
+    - S7143614, CVE-2012-1716: SynthLookAndFeel stability improvement
+    - S7143617, CVE-2012-1713: Improve fontmanager layout lookup operations
+    - S7143851, CVE-2012-1719: Improve IIOP stub and tie generation in RMIC
+    - S7143872, CVE-2012-1718: Improve certificate extension processing
+    - S7145239: Finetune package definition restriction
+    - S7152811, CVE-2012-1723: Issues in client compiler
+    - S7157609, CVE-2012-1724: Issues with loop
+    - S7160677: missing else in fix for 7152811
+    - S7160757, CVE-2012-1725: Problem with hotspot/runtime_classfile
+    - S7165628, CVE-2012-1726: Issues with
+      java.lang.invoke.MethodHandles.Lookup
+  * Patches merged upstream:
+    - debian/patches/arm-thumb-fix.diff
+    - debian/patches/gcc-4.7.diff
+
+  [ James Page ]
+  * Cherry picked patch from openjdk-6 to fix handling of 
+    ICC profiles (LP: #888123, #888129) (Closes: #676351).
+
+  [ Damien Raude-Morvan ]
+  * Move libgnome2-0, libgnomevfs2-0, libgconf2-4 from Depends of JRE package
+    to Recommends (Closes: #661465).
+  * New jni_md_h_JNIEXPORT_visibility.patch to allow JNIEXPORT definition
+    to work with -fvisibility=hidden. (Closes: #670896).
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Mon, 11 Jun 2012 21:01:10 +0200
+
+openjdk-7 (7~u3-2.1.1~pre1-2) unstable; urgency=low
+
+  * Don't mark the -demo package as Multi-Arch same. Closes: #670038.
+  * Build using gcc-4.4 on mips, mipsel.
+  * Build again with older gcj version on s390 (4.6).
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 03 May 2012 10:44:20 +0200
+
+openjdk-7 (7~u3-2.1.1~pre1-1ubuntu3) precise-proposed; urgency=low
+
+  * Default to the ARM assembler interpreter instead to JamVM on
+    ARM. LP: #993380.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 02 May 2012 17:58:20 +0200
+
+openjdk-7 (7~u3-2.1.1~pre1-1ubuntu2) precise; urgency=low
+
+  * Use the /usr/bin path for the policytool desktop file. LP: #980205.
+    Closes: #670037.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 12 Apr 2012 23:29:06 +0200
+
+openjdk-7 (7~u3-2.1.1~pre1-1ubuntu1) precise; urgency=low
+
+  * Regenerate the control file.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 11 Apr 2012 07:21:41 +0200
+
+openjdk-7 (7~u3-2.1.1~pre1-1) unstable; urgency=low
+
+  * Update from the IcedTea7-2.1 release branch (20110410).
+  * Install desktop files again, using the common /usr/bin/java
+    interpreter name.
+  * Build-depend on libpng-dev for newer releases. Closes: #662452.
+  * Let dlopen handle finding the libpcsclite library. LP: #898689.
+  * Build-depend on fonts-ipafont-mincho, fixing a build failure in the
+    fontconfig compiler (find out why it breaks ...).
+  * Build using gcc-4.7/gcj-4.7 for sid/wheezy, fix build failure.
+  * Remove `-icedtea' suffix from the release identification.
+  * Fix arm thumb build, update taken from IcedTea6.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 10 Apr 2012 14:11:09 +0200
+
+openjdk-7 (7~u3-2.1-4) unstable; urgency=low
+
+  [ Matthias Klose ]
+  * Don't install the binary fontconfig file. LP: #964303.
+
+  [ Damien Raude-Morvan ]
+  * Remove libxp-dev check in configure.ac, it's not needed anymore
+    (Closes: #657260) and so drop build dependency on libxp-dev.
+  * Fix FTBFS with glib 2.32 by adding explicit dependency gthread-2.0.pc
+    (Closes: #665666).
+  * Use libpng-dev instead of libpng12-dev for wheezy/sid (Closes: #662453).
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Mon, 09 Apr 2012 00:21:20 +0200
+
+openjdk-7 (7~u3-2.1-3) unstable; urgency=low
+
+  * d/rules,Makefile.am: Improve handling of dpkg-buildflags: don't overwrite
+    CFLAGS of hotspot but use EXTRA_* flags into icedtea and openjdk Makefile.
+    (Closes: #661695).
+  * d/rules: Build everything with -03 opt level (jamvm, cacao and jdk)
+  * d/patches/kfreebsd-support-*.diff: Refresh kfreebsd patches and
+    fix FTBFS on k-i386 (ie. at least on a sid VM).
+  * Backport S7104625 as d/patches/icedtea7-forest-jdk_7104625*.patch
+    to check for logging to prevent wasted CPU (Closes: #651423).
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Tue, 06 Mar 2012 01:09:09 +0100
+
+openjdk-7 (7~u3-2.1-2) unstable; urgency=low
+
+  [ Matthias Klose ]
+  * Use NanumMyeongjo as the preferred korean font. LP: #792471.
+  * Fix crash in java.net.NetworkInterface.getNetworkInterfaces() when 
+    ifr_ifindex exceeds 255. LP: #925218. S7078386.
+  * Use IPAfont as the preferred japanesse font. Closes: #646054.
+  * Build using gcj on alpha and armel. Closes: #655750.
+
+  [ Damien Raude-Morvan ]
+  * d/patches/sparc-stubgenerator.diff: Fix FTBFS on sparc on
+    stubGenerator_sparc.cpp by using explicit class typedef
+    (Closes: #660871).
+  * d/patches/fix_extra_flags.diff: Improve support for hardened build,
+    also send flags to jdk build and send -Wl,-z,relro during hotspot link.
+  * Bump Standards-Version to 3.9.3: no changes needed.
+  * d/control: Don't use nonexistent dlopenjl:Recommends substvar,
+    replaced by dlopenhl:Recommends.
+  * d/*.{prerm,postrm}: Use set -e inside script instead of sh -e shebang.
+  * Cleanup lintian-overrides.
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Wed, 29 Feb 2012 00:52:49 +0100
+
+openjdk-7 (7~u3-2.1-1ubuntu2) precise; urgency=low
+
+  * Make sure that the nss.cfg doesn't mention any library path.
+    LP: #939361, #939419.
+  * Disable the accessibility wrapper, doesn't work yet. LP: #935296.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 24 Feb 2012 15:10:12 +0100
+
+openjdk-7 (7~u3-2.1-1ubuntu1) precise; urgency=low
+
+  [ Damien Raude-Morvan ]
+  * d/patches/jexec.diff: Dropped, uneeded and not compatible with multi-arch.
+  * d/rules: Use dpkg-buildflags to enable hardened build.
+    (Closes: #660021).
+
+  [ Matthias Klose ]
+  * Merge r522 from openjdk6:
+    - Make upgrades from non-multiarch to multiarch builds more silent.
+    - Fix order of grant decls in java.policy.
+    - Make doc files multi-arch installable.
+    - JB-archive.applications.in: Use /usr/bin/java by default. Maybe
+      should be moved to the default-jdk package.
+  * Explicitly look for the gthread-2.0 pkgconfig module.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 22 Feb 2012 14:07:16 +0100
+
+openjdk-7 (7~u3-2.1-1) unstable; urgency=low
+
+  * Update icedtea7 2.1 (OpenJDK7 ~u3 release):
+    - Check for logging to prevent wasted CPU (Closes: #651423).
+  * Fix following security issues:
+    - S7082299, CVE-2011-3571: Fix in AtomicReferenceArray
+    - S7088367, CVE-2011-3563: Fix issues in java sound
+    - S7110683, CVE-2012-0502: Issues with some KeyboardFocusManager method
+    - S7110687, CVE-2012-0503: Issues with TimeZone class
+    - S7110700, CVE-2012-0505: Enhance exception throwing mechanism in
+      ObjectStreamClass
+    - S7110704, CVE-2012-0506: Issues with some method in corba
+    - S7112642, CVE-2012-0497: Incorrect checking for graphics rendering object
+    - S7118283, CVE-2012-0501: Better input parameter checking in zip file
+      processing
+    - S7126960, CVE-2011-5035: Add property to limit number of request headers
+      to the HTTP Server
+
+  [ Matthias Klose ]
+  * openjdk-7-jre-lib: Mark as Multi-Arch: foreign.
+
+  [ Damien Raude-Morvan ]
+  * Merge r501-521 from openjdk6:
+    - Fix plugin name in jinfo file.
+    - Fix build flags for cppInterpreter_arm.o.
+    - Use java-atk-wrapper instead of java-access-bridge for accessibility.
+    - Make the java.policy file multi-arch installable.
+    - Don't install desktop and menu files for multiarch builds.
+      Needs a better solution.
+    - Don't install an alternative for the deprecated apt tool.
+    - Make the upgrade from a non-multiarch installation location more
+      robust; don't depend on version numbers, but check the path of the
+      alternatives.
+    - Disable test for armel and powerpc (broken on buildd)
+  * d/rules: Make symbolic links to src.zip on /usr/lib/jvm/java-7-openjdk-amd64
+    like openjdk-6-jdk (Closes: #649618).
+  * d/rules: Pass -n to gzip when compressing manpages to be Multi-Arch: same safe.
+  * d/rules: Add build-arch/build-indep target.
+  * d/rules: Re-enable Cacao VM!
+  * d/{rules,control}: Only rhino 1.7R3 is supported by openjdk7, update B-D.
+  * d/patches/hotspot-s390.diff: Update for latest Hotspot.
+  * d/patches/icedtea-patch.diff: Move nssLibraryDirectory handling to d/rules.
+  * d/rules: Remove --with-*-drop-zip options, as code drops are embedded.
+  * d/patches/hsx23-zero.patch, patches/shark-compiler-fixes.patch:
+    Fix FTBFS for Zero under Hotspot >= v22.
+  * d/patches/kfreebsd-*: Refreshed.
+  * d/control: Make openjdk-7-source:all package binNMU-able by using
+    Depends ">=" on openjdk-7-jre (ie. src.zip won't change).
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Wed, 15 Feb 2012 20:55:52 +0100
+
+openjdk-7 (7~b147-2.0-1) unstable; urgency=low
+
+  * New upstream IcedTea7 release.
+    - S7000600, CVE-2011-3547: InputStream skip() information leak.
+    - S7019773, CVE-2011-3548: mutable static AWTKeyStroke.ctor.
+    - S7023640, CVE-2011-3551: Java2D TransformHelper integer overflow.
+    - S7032417, CVE-2011-3552: excessive default UDP socket limit under
+      SecurityManager.
+    - S7046794, CVE-2011-3553: JAX-WS stack-traces information leak.
+    - S7046823, CVE-2011-3544: missing SecurityManager checks in scripting
+      engine.
+    - S7055902, CVE-2011-3521: IIOP deserialization code execution.
+    - S7057857, CVE-2011-3554: insufficient pack200 JAR files uncompress error
+      checks.
+    - S7064341, CVE-2011-3389: HTTPS: block-wise chosen-plaintext attack
+      against SSL/TLS (BEAST).
+    - S7070134, CVE-2011-3558: HotSpot crashes with sigsegv from PorterStemmer.
+    - S7077466, CVE-2011-3556: RMI DGC server remote code execution.
+    - S7083012, CVE-2011-3557: RMI registry privileged code execution.
+    - S7096936, CVE-2011-3560: missing checkSetFactory calls in
+      HttpsURLConnection.
+
+  [ Matthias Klose ]
+  * Merge debian packaging r501 from openjdk-6:
+    - Tighten inter-package dependencies for Debian builds. Closes: #641240.
+  * Build-depend on wdiff.
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Sat, 01 Oct 2011 10:53:15 +0200
+
+openjdk-7 (7~b147-2.0~pre6-2) unstable; urgency=low
+
+  * d/rules: Fix java.policy to include jre/lib/ext/* files (instead of
+    non-existant ext/*). It'll restore privilegied access from sunpkcs11.jar
+    to sun.* code.
+  * d/patches/s390_hotspot_fix.diff: Update to fix FTBFS on s390.
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Sat, 01 Oct 2011 10:53:15 +0200
+
+openjdk-7 (7~b147-2.0~pre6-1) unstable; urgency=low
+
+  * Update to IcedTea7 (20110928).
+
+  [ Matthias Klose ]
+  * Merge debian packaging r496 from openjdk-6:
+    - Fix dangling java-1.7.0-openjdk symlink for non-multiarch builds.
+
+  [ Damien Raude-Morvan ]
+  * d/rules: --disable-compile-against-syscalls for kFreeBSD (since there is
+    no epoll support).
+  * Update patches:
+    - d/patches/sun-awt-buildsystem.diff: Drop, merged upstream.
+    - d/patches/icedtea-override-redirect-compiz.patch: Refresh.
+    - d/patches/s390_hotspot_fix.diff: Extracted (instead of direct patch).
+  * Add Build-Depends on libattr1-dev.
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Wed, 28 Sep 2011 17:19:33 +0200
+
+openjdk-7 (7~b147-2.0~pre5-1) unstable; urgency=low
+
+  * Update to IcedTea7 (20110914).
+    - d/patches/jdk-no-mapfile.diff: Drop, merged in icedtea7-forest
+    (for real this time).
+    - d/patches/sun-awt-buildsystem.diff: Fix icedtea7-forest awt build.
+  * d/patches/kfreebsd-support-jdk.diff: Refresh.
+  * d/patches/icedtea-patch.diff: Remove usage of nssLibraryDirectory because
+    while it works for nss3, it fails for softokn3 (since the latter is
+    in nss/ subdirectory). Without this parameter, openjdk-7 will rely on
+    default ld.so behavior. (Closes: #637337, #638008)
+    In openjdk-6, nssLibraryDirectory was not used to load softokn3 (Secmod).
+  * d/control: openjdk-7-jre Provides java7-runtime, openjdk-7-jre-headless
+    Provides java7-runtime-headless and openjdk-7-jdk Provides java7-jdk.
+    (Closes: #641668).
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Mon, 19 Sep 2011 16:33:15 +0200
+
+openjdk-7 (7~b147-2.0~pre4-1) unstable; urgency=low
+
+  * Update to IcedTea7 (20110906):
+    - JamVM: support for armhf and other various fixes.
+  * Upload to unstable.
+  * Regenerate control file for debian unstable.
+  * Makefile.am: Force JAVA_HOME for ant call to --with-jdk-home value (without
+    this, it defaults to existing JAVA_HOME env or /usr/bin/java link)
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Mon, 05 Sep 2011 23:50:43 +0200
+
+openjdk-7 (7~b147-2.0~pre3-3ubuntu2) oneiric; urgency=low
+
+  * Merge debian packaging r491 from openjdk-6:
+    - Move the -lib files into a different location so that the java-7-openjdk
+      name can be used as a symlink.
+    - Symlink the jre/cmm directory, instead of the files inside. Closes: #639883.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 01 Sep 2011 21:08:45 +0200
+
+openjdk-7 (7~b147-2.0~pre3-3ubuntu1) oneiric; urgency=low
+
+  * Regenerate the control file.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 28 Aug 2011 23:42:18 +0200
+
+openjdk-7 (7~b147-2.0~pre3-3) experimental; urgency=low
+
+  * Merge debian packaging r485:489 from openjdk-6:
+    - Build using GCC-4.4 on sparc and sparc64.
+    - Enable testsuite runs in s390x.
+  * Merge debian packaging r490 from openjdk-6:
+    - Set plugin name for the jinfo file. Closes: #638548,
+    - Disable the mauve testsuite on i386.
+    - Make the installation multiarch aware.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 28 Aug 2011 20:42:54 +0200
+
+openjdk-7 (7~b147-2.0~pre3-2) experimental; urgency=low
+
+  * d/patches/jdk-no-mapfile.diff: Re-add was not merged into
+    current (e46d527097f1) revision but latter.
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Mon, 22 Aug 2011 00:11:33 +0200
+
+openjdk-7 (7~b147-2.0~pre3-1) experimental; urgency=low
+
+  * Update to IcedTea7 (20110821):
+    - JamVM updates.
+    - S7070134,S7044738,S7068051,S7073913: Fix random segfaults
+      and related invalid results from loop unroll optimization.
+    - d/patches/jdk-no-mapfile.diff: Drop, merged in icedtea7-forest.
+
+  [ Matthias Klose ]
+  * Build using GCC-4.4 on mips/mipsel. Closes: #628620.
+  * Merge debian packaging r482:485 from openjdk-6:
+    - Call dbus-launch --exit-with-session in testsuite. Closes: #612394.
+    - Build for s390x using Zero.
+
+  [ Damien Raude-Morvan ]
+  * d/patches/kfreebsd-support-hotspot.diff: Add workaround
+    to handle #637378.
+  * d/generate-dfsg-zip.sh: Update to also handle langtools.tar.gz.
+    Closes: #623693.
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Sun, 21 Aug 2011 20:08:50 +0200
+
+openjdk-7 (7~b147-2.0~pre2-3) experimental; urgency=low
+
+  * d/patches/kfreebsd-support-hotspot.diff: Fix access to CPU registry under
+    kfreebsd-amd64.
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Sun, 07 Aug 2011 12:22:47 +0200
+
+openjdk-7 (7~b147-2.0~pre2-2) experimental; urgency=low
+
+  * d/patches/kfreebsd-support-jamvm.diff: Add support for kfreebsd-amd64.
+  * d/patches/kfreebsd-support-hotspot.diff: Small fixes for Hotspot on
+    kfreebsd-i386.
+  * Split d/patches/hotspot-s390.diff and zero-missing-headers.diff.
+  * Re-add missing changes from last upload:
+    - patches/use-idx_t.patch: Edit upstream patch to avoid FTBFS on s390.
+    - Makefile.{am,im}: Force bootclasspath (useful when building from
+      openjdk-6).
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Sat, 06 Aug 2011 23:50:58 +0200
+
+openjdk-7 (7~b147-2.0~pre2-1) experimental; urgency=low
+
+  * Update to icedtea7-forest snapshot (20110804):
+    - d/patches/pr753.diff: drop, merged in icedtea7-forest.
+    - d/patches/pr757.diff: drop, merged in icedtea7-forest.
+    - d/patches/zero-jsr292-fixes.diff: drop, merged in icedtea7-forest.
+    - d/patches/no-compiler-path.diff: drop, now handled correctly icedtea7's
+      configure and openjdk's Makefile (by CC and CXX environment variables).
+    - Updated JamVM to the 2011-08-01 revision.
+
+  [ Damien Raude-Morvan ]
+  * d/patches/zero-fpu-control-is-noop.diff: Remove ShouldNotCallThis from
+    os_linux_zero.cpp (fix crash under i386).
+  * d/rules: Enable support for GNU/kFreeBSD arch:
+    - d/patches/kfreebsd-support-*: Update with latest fixes.
+    - d/patches/kfreebsd-sync-issues.diff: hack to force some wait
+      until we fix sync issues.
+    - d/rules: Enable shark for GNU/kFreeBSD.
+  * d/rules: Use DEB_HOST_ARCH_CPU for jvmarch/archdir. Thanks to
+    Jérémie Koenig <jk@jk.fr.eu.org> for patch.
+  * d/patches/jexec.diff: Update for openjdk-7.
+  * d/JB-jdk.overrides.in: Fix override for new Lintian 2.5.0 path handling.
+  * d/icedtea-7-jre-jamvm.overrides: As for others libjvm.so, we use
+    --strip-debug instead of --strip-unneeded.
+  * d/source.lintian-overrides: Drop, not used anymore in openjdk-7.
+
+  [ Matthias Klose ]
+  * Merge debian packaging r472:482 from openjdk-6:
+    - openjdk-6-jre-headless: Depend on icedtea-6-jre-jamvm, if it's
+      the default VM.
+    - Use gcj-4.4 as the stage1 java VM on mips and mipsel.
+    - Make JamVM the default VM on Ubuntu oneiric/ARM.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 04 Aug 2011 11:38:01 +0200
+
+openjdk-7 (7~b147-2.0~pre1-1) experimental; urgency=low
+
+  * New b147 code drop (OpenJDK7 RC1).
+
+  [ Matthias Klose ]
+  * Fix build on sparc64.
+  * Recognize 32bit user space on sparc.
+  * Build shark using llvm-2.9.
+
+  [ Damien Raude-Morvan ]
+  * d/patches/zero-jsr292-fixes.diff: Fixes on Zero/Shark for JSR 292 support
+    from Chris Phillips <ChrisPhi@lgonqn.org>.
+  * d/generate-dfsg-zip.sh: Update for OpenJDK7 as a first step to get #623693
+    fixed.
+  * d/patches/kfreebsd-*: WiP patches for GNU/kFreeBSD support
+    (not yet enabled by default).
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 17 Jul 2011 16:08:51 +0200
+
+openjdk-7 (7~b143-2.0~pre1-2) experimental; urgency=low
+
+  * Upload to experimental.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 12 Jul 2011 14:30:01 +0200
+
+openjdk-7 (7~b143-2.0~pre1-1ubuntu1) oneiric; urgency=low
+
+  * Fix zero builds on non-ix86 architectures.
+  * Fix build on sparc.
+  * Build using jpeg8.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 12 Jul 2011 14:25:24 +0200
+
+openjdk-7 (7~b143-2.0~pre1-1) experimental; urgency=low
+
+  [ Damien Raude-Morvan ]
+  * New b143 code drop.
+  * Drop d/patches/7031385.diff: Merged upstream.
+  * Drop d/patches/jamvm-oj7.patch: Merged upstream.
+  * Manpages are now ja_JP.UTF-8 instead of ja_JP.eucJP
+
+  [ Matthias Klose ]
+  * Apply fix for IcedTea issue #753, #757.
+  * Update s390 hotspot build fixes.
+  * Re-enable zero on i386.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 10 Jul 2011 14:28:17 +0200
+
+openjdk-7 (7~b136-2.0~pre1-2) experimental; urgency=low
+
+  * Disable zero on i386.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 29 May 2011 12:37:03 +0200
+
+openjdk-7 (7~b136-2.0~pre1-1ubuntu1) oneiric; urgency=low
+
+  * Upload to oneiric.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 29 May 2011 07:59:01 +0200
+
+openjdk-7 (7~b136-2.0~pre1-1) experimental; urgency=low
+
+  [ Matthias Klose ]
+  * Fix non-bootstrap builds.
+  * Merge debian packaging r469:472 from openjdk-6.
+  * Run jtreg tests using JamVM too.
+  * Don't run the jtreg tests with the NSS security provider enabled.
+  * Update JamVM to 20110528.
+  * Re-enable the zero build, keep the shark builds disabled.
+
+  [ Damien Raude-Morvan ]
+  * Only apply jamvm-oj7.patch when jamvm build in enabled.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 28 May 2011 17:17:23 +0200
+
+openjdk-7 (7~b136-1.14+debian1-1) experimental; urgency=low
+
+  * New upstream release: Icedtea 1.14.
+    - debian/patches/jamvm-oj7.patch: support new instruction
+      (JVM_FindClassFromBootLoader) in JamVM.
+    - Makefile.am: Fix some missing depends between
+      patch and extract targets.
+  * debian/patches/nonreparenting-wm.diff: Update.
+  * Replace B-D on libxalan2-java by xsltproc for bootstrapping JMVTI.
+  * Don't use GCJ_SUFFIX=4.6 for sid/wheezy/oneiric as GCJ version
+    is not homogeneous between arch.
+  * Enable JamVM support:
+    - d/control: Add B-D on libtool.
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Thu, 26 May 2011 23:03:56 +0200
+
+openjdk-7 (7~b136-1.14~pre0-4) experimental; urgency=low
+
+  * Re-add build dependency on fastjar.
+  * Fix dependency on liblcms2-2.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 08 May 2011 10:21:21 +0200
+
+openjdk-7 (7~b136-1.14~pre0-3) experimental; urgency=low
+
+  * Fix liblcms dependency for -jre-headless package.
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Sat, 07 May 2011 17:20:15 +0200
+
+openjdk-7 (7~b136-1.14~pre0-2ubuntu2) oneiric; urgency=low
+
+  * Re-add build dependency on fastjar.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 08 May 2011 02:51:47 +0200
+
+openjdk-7 (7~b136-1.14~pre0-2) experimental; urgency=low
+
+  * Fix build failure on i386 with GCC 4.6.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 06 May 2011 17:10:00 +0200
+
+openjdk-7 (7~b136-1.14~pre0-1) experimental; urgency=low
+
+  [ Damien Raude-Morvan ]
+  * New b136 code drop:
+    - d/rules: Use jaxp-1_4_5-dev1.zip as jaxp-drop-zip.
+    - d/patches/icedtea-pretend-memory.diff: Refreshed.
+
+  [ Matthias Klose ]
+  * Fix -jre-lib dependency on -jre. Closes: #624846.
+  * Add lcms configury.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 05 May 2011 21:08:55 +0200
+
+openjdk-7 (7~b130-1.14~pre0-2) experimental; urgency=low
+
+  * Remove obsolete conflicts. Closes: #624090.
+  * Add copyright for the rewriter class. Addresses part of #623693.
+  * Lower priorities for the alternatives below these of OpenJDK 6,
+    as long as OpenJDK 7 is not yet released.
+  * Don't build HotSpot with -Werror on architectures other than amd64
+    and i386.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 27 Apr 2011 23:03:45 +0200
+
+openjdk-7 (7~b130-1.14~pre0-1) experimental; urgency=low
+
+  * New b130 code drop.
+  * Merge debian packaging r464:469 from openjdk-6.
+  * Do not bump the epoch, package was never uploaded to any official
+    repository.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 20 Apr 2011 21:46:32 +0200
+
+openjdk-7 (1:7~b129-1.14~pre0-1) experimental; urgency=low
+
+  * New b129 code drop.
+  * Bump epoch to 1 and use ~ to indicate that's not openjdk-7 final relaase.
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Mon, 14 Feb 2011 00:34:45 +0100
+
+openjdk-7 (7b128-1.14~pre0-1) UNRELEASED; urgency=low
+
+  * New b128 code drop.
+  * Exclude "release" file for dh_install.
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Mon, 07 Feb 2011 23:45:13 +0100
+
+openjdk-7 (7b126-1.14~pre0-1) UNRELEASED; urgency=low
+
+  * Merge debian packaging r446:464 from openjdk-6
+    but keep the following changes :
+    - Replace DISABLE_PRECOMPILED_HEADER=1 by USE_PRECOMPILED_HEADER=0
+    - Use "ant, ant-optionnal" for all distrel
+    - Drop "with_hotspot" variable (only one hotspot supported by IcedTea7)
+    - Drop --enable-xrender (not supported by IcedTea7)
+  * New b125 code drop:
+    - d/rules: Use new archives by --with-*-src-zip
+  * Refresh patches:
+    - d/patches/shebang.diff: Year updated
+    - d/patches/ld-symbolic-functions.diff and
+      d/patches/no-compiler-path.diff: Changed corba generic Makefiles.
+    - d/patches/default-jvm-cfg.diff and d/patches/set-exec-name.diff:
+      Upstream merged "solaris" and "linux" java.c and java_md.c
+  * Drop patches:
+    - d/patches/too-many-args-ftbfs.diff (merged upstream)
+    - d/patches/sparc.diff (merges upstream)
+    - d/patches/hotspot-include-fixes.diff (includeDB dropped upstream)
+
+ -- Damien Raude-Morvan <drazzib@debian.org>  Mon, 24 Jan 2011 00:18:38 +0100
+
+openjdk-7 (7b106~pre1-0lucid2) lucid; urgency=low
+
+  * Build for lucid.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 09 Sep 2010 15:32:13 +0200
+
+openjdk-7 (7b106~pre1-0ubuntu2) maverick; urgency=low
+
+  * Build openjdk-7 snapshot (7b106)
+  * Symlink timezone data.
+  * Disable shark builds, currently broken in 7b106.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 07 Sep 2010 04:56:48 +0200
+
+openjdk-7 (7b89-1.13-0ubuntu1) maverick; urgency=low
+
+  * Update to the IcedTea 1.13 release.
+  * openjdk-7-jre: Recommend ttf-dejavu-extra. LP: #569396.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 30 Jul 2010 01:19:45 +0200
+
+openjdk-7 (7b89~pre1-0lucid3) lucid; urgency=low
+
+  * Include docs in the -doc package. LP: #600834.
+  * Update from the IcedTea6 trunk.
+    - Plugin and netx fixes.
+    - Don't link the plugin against the libxul libraries. Closes: #576361.
+    - More plugin cpu usage fixes. Closes: #584335, #587049.
+    - Plugin: fixes AppletContext.getApplets().
+  * Fix Vcs-Bzr location. Closes: #530883.
+  * Search for unversioned llvm-config tool.
+  * Don't set XFILESEARCHPATH and NLSPATH on startup. LP: #586641.
+  * Fix chinese font metrics and prefer using 'WenQuanYi Micro Hei' font.
+    LP: #472845.
+  * Strip libjvm.so with --strip-debug instead of --strip-unneeded.
+    LP: #574997.
+  * Fix inter-package dependencies.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 15 Jul 2010 18:12:17 +0200
+
+openjdk-7 (7b89~pre1-0lucid1) lucid; urgency=low
+
+  [ Damien Raude-Morvan ]
+  * Merge debian packaging r403:430 from openjdk-6.
+  * Add myself to Uploaders.
+  * Build openjdk-7 snapshot (7b89)
+  * Use ant+ant-optional (IcedTea7 support ant 1.8).
+  * Merge debian packaging r431:436 from openjdk-6.
+
+  [ Matthias Klose ]
+  * Merge debian packaging r430:445 from openjdk-6.
+  * Update debian patches to 7b89.
+  * Reenable the two stage build.
+  * Reenable building cacao.
+  * Reenable building zero.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 13 Jul 2010 10:32:11 +0200
+
+openjdk-7 (7b77-0ubuntu1~ppa1) lucid; urgency=low
+
+  * Build openjdk-7 snapshot (7b77).
+  * Merge debian packaging r391:403 from openjdk-6.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 21 Dec 2009 16:58:34 +0100
+
+openjdk-7 (7b72-0ubuntu1~ppa1) karmic; urgency=low
+
+  * Build openjdk-7 snapshot (7b72).
+  * Merge debian packaging r371:391 from openjdk-6.
+  * Disable the zero build for now.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 03 Oct 2009 16:35:27 +0200
+
+openjdk-7 (7b66-0ubuntu1~ppa1) karmic; urgency=low
+
+  * Build openjdk-7 snapshot (7b66).
+  * Merge debian packaging r362:371 from openjdk-6.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 06 Aug 2009 12:40:00 +0200
+
+openjdk-7 (7b59-0ubuntu1) karmic; urgency=low
+
+  * Reenable the build of zero.
+  * Reapply fontconfig patch.
+  * Apply icedtea-cacao-no-mmap-first-page patch.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 29 May 2009 10:19:26 +0200
+
+openjdk-7 (7b59-0ubuntu1~ppa1) karmic; urgency=low
+
+  * Build openjdk-7 snapshot (7b59).
+  * Merge debian packaging r205:362 from openjdk-6.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 27 May 2009 12:09:16 +0200
+
+openjdk-7 (7b40-0ubuntu2) jaunty; urgency=low
+
+  * Add build dependency on libxrender-dev.
+  * Don't use fastjar on ia64, working around a build failure.
+  * Add configury for shark builds.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 04 Dec 2008 16:26:15 +0100
+
+openjdk-7 (7b40-0ubuntu1) jaunty; urgency=low
+
+  * Build openjdk-7 snapshot (7b40).
+  * Update packaging for openjdk-7.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 02 Dec 2008 14:27:03 +0100
+
+openjdk-6 (6b22-1.10.1-0ubuntu1) natty; urgency=low
+
+  * IcedTea6 1.10.1 release.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 05 Apr 2011 12:20:36 +0200
+
+openjdk-6 (6b22-1.10.1~pre1-1) experimental; urgency=low
+
+  *  Upload to experimental.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 26 Mar 2011 10:43:49 +0100
+
+openjdk-6 (6b22-1.10.1~pre1-0ubuntu1) natty; urgency=low
+
+  * Update from the IcedTea6-1.10 release branch (20110325).
+  * Add multiarch directories to the default library path. LP: #737603.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 25 Mar 2011 16:33:57 +0100
+
+openjdk-6 (6b22-1.10-3) experimental; urgency=low
+
+  * Fix JamVM build on mips/mipsel (Robert Lougher).
+  * Re-enable the JamVM build on mips/mipsel.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 06 Mar 2011 15:01:54 +0100
+
+openjdk-6 (6b22-1.10-2) experimental; urgency=low
+
+  * Mention that IcedTea is copyrigh GPLv2 + "CLASSPATH" EXCEPTION.
+    Closes: #611269.
+  * Don't run the jdk checks for the alternate builds (hotspot and
+    langtools checks are still run).
+  * Disable the JamVM build on mips/mipsel.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 05 Mar 2011 16:13:40 +0100
+
+openjdk-6 (6b22-1.10-1) experimental; urgency=low
+
+  * Upload to experimental.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 04 Mar 2011 16:12:50 +0100
+
+openjdk-6 (6b22-1.10-0ubuntu2) natty; urgency=low
+
+  * Disable the jdk tests with the Shark, JamVM and Cacao VMs.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 04 Mar 2011 15:32:50 +0100
+
+openjdk-6 (6b22-1.10-0ubuntu1) natty; urgency=low
+
+  * IcedTea6 1.10 release.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 03 Mar 2011 09:32:19 +0100
+
+openjdk-6 (6b21~pre3-0ubuntu1) natty; urgency=low
+
+  * Update from the IcedTea6 trunk (20110224).
+  * icedtea-6-jre-jamvm: Build JamVM as an alternative VM,
+    start with `java -jamvm'.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 24 Feb 2011 02:45:56 +0100
+
+openjdk-6 (6b21~pre2-0ubuntu1) natty; urgency=low
+
+  * Update from the IcedTea6 trunk (20110217).
+  * Update hotspot hs20 (not yet enabled).
+  * Add ppc64 packaging bits.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 18 Feb 2011 15:55:41 +0100
+
+openjdk-6 (6b21~pre1-1) experimental; urgency=low
+
+  * Upload to experimental.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 22 Jan 2011 15:34:21 +0100
+
+openjdk-6 (6b21~pre1-0ubuntu1) natty; urgency=low
+
+  * Update to 6b21.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 22 Jan 2011 14:28:28 +0100
+
+openjdk-6 (6b20-1.10~pre3-0ubuntu4) natty; urgency=low
+
+  * Fix shark build on powerpc.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 24 Dec 2010 11:06:32 +0100
+
+openjdk-6 (6b20-1.10~pre3-0ubuntu3) natty; urgency=low
+
+  * Update from the IcedTea6 trunk (20101223).
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 23 Dec 2010 14:27:17 +0100
+
+openjdk-6 (6b20-1.10~pre3-0ubuntu1) natty; urgency=low
+
+  * Update from the IcedTea6 trunk (20101126).
+  * Update hotspot hs19.
+  * Fix build failures on ia64, s390 and sparc64.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 26 Nov 2010 16:38:16 +0100
+
+openjdk-6 (6b20-1.10~pre2-0ubuntu7~ppa1) natty; urgency=low
+
+  * Reenable shark on amd64, but build using llvm-2.7.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 21 Oct 2010 23:59:30 +0200
+
+openjdk-6 (6b20-1.10~pre2-0ubuntu5) natty; urgency=low
+
+  * Don't try to set up an alternative for javaws
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 21 Oct 2010 17:38:48 +0200
+
+openjdk-6 (6b20-1.10~pre2-0ubuntu3) natty; urgency=low
+
+  * Stop building zero/shark on amd64. Fails the self tests.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 21 Oct 2010 13:49:56 +0200
+
+openjdk-6 (6b20-1.10~pre2-0ubuntu2) natty; urgency=low
+
+  * Don't include OpenJDK's javaws either.
+  * openjdk-6-jre: Recommend icedtea-netx.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 21 Oct 2010 08:34:07 +0200
+
+openjdk-6 (6b20-1.10~pre2-0ubuntu1) natty; urgency=low
+
+  * Update from the IcedTea6 trunk (20101020).
+  * Remove the plugin and javaws from the packaging, removed upstream.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 20 Oct 2010 17:45:09 +0200
+
+openjdk-6 (6b20-1.10~pre1-0ubuntu2) natty; urgency=low
+
+  * Build with hotspot 19.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 14 Oct 2010 11:28:38 +0200
+
+openjdk-6 (6b20-1.10~pre1-0ubuntu1) natty; urgency=low
+
+  * Snapshot, taken from the IcedTea6 trunk (20101013).
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 13 Oct 2010 08:36:44 +0200
+
+openjdk-6 (6b20-1.9.2-1) experimental; urgency=low
+
+  * Upload to experimental.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 24 Nov 2010 05:29:43 +0100
+
+openjdk-6 (6b20-1.9.2-0ubuntu1) maverick-security; urgency=low
+
+  * IcedTea6 1.9.2 release.
+    - CVE-2010-3860: Fix IcedTea System property information leak via
+      public static.
+  * Build using Hotspot hs19.
+  * Start metacity using dbus-launch, when running the testsuite. LP: #632594.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 21 Nov 2010 18:30:39 +0100
+
+openjdk-6 (6b20-1.9.1-1ubuntu3) maverick-security; urgency=low
+
+  * Move all japanese man pages belonging to the jre into the -jre package.
+    Closes: #600765.
+  * Add -jdk replaces for -jre and -jre-headless. Closes: #600809.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 20 Oct 2010 12:51:34 +0200
+
+openjdk-6 (6b20-1.9.1-1ubuntu1) maverick-security; urgency=low
+
+  * Fix upgrade to symlinked timezone data. Closes: #600359.
+  * Move all japanese man pages belonging to the jre into the -jre package.
+    Closes: #600765.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 18 Oct 2010 16:07:48 +0200
+
+openjdk-6 (6b20-1.9.1-1) experimental; urgency=low
+
+  * Upload to experimental.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 12 Oct 2010 15:07:35 +0200
+
+openjdk-6 (6b20-1.9.1-0ubuntu1) maverick-security; urgency=low
+
+  * IcedTea6 1.9.1 release.
+    - Security updates:
+      - S6914943, CVE-2009-3555: TLS: MITM attacks via session renegotiation.
+      - S6559775, CVE-2010-3568: OpenJDK Deserialization Race condition.
+      - S6891766, CVE-2010-3554: OpenJDK corba reflection vulnerabilities.
+      - S6925710, CVE-2010-3562: OpenJDK IndexColorModel double-free.
+      - S6938813, CVE-2010-3557: OpenJDK Swing mutable static.
+      - S6957564, CVE-2010-3548: OpenJDK DNS server IP address information
+        leak.
+      - S6958060, CVE-2010-3564: OpenJDK kerberos vulnerability.
+      - S6963023, CVE-2010-3565: OpenJDK JPEG writeImage remote code execution.
+      - S6963489, CVE-2010-3566: OpenJDK ICC Profile remote code execution.
+      - S6966692, CVE-2010-3569: OpenJDK Serialization inconsistencies.
+      - S6622002, CVE-2010-3553: UIDefault.ProxyLazyValue has unsafe
+        reflection usage.
+      - S6623943: javax.swing.TimerQueue's thread occasionally fails to start.
+      - S6925672, CVE-2010-3561: Privileged ServerSocket.accept allows
+        receiving connections from any host.
+      - S6952017, CVE-2010-3549: HttpURLConnection chunked encoding issue
+        (Http request splitting).
+      - S6952603, CVE-2010-3551: NetworkInterface reveals local network
+        address to untrusted code.
+      - S6961084, CVE-2010-3541: limit setting of some request headers in
+        HttpURLConnection.
+      - S6963285, CVE-2010-3567: Crash in ICU Opentype layout engine due to
+        mismatch in character counts.
+      - S6980004, CVE-2010-3573: limit HTTP request cookie headers in
+        HttpURLConnection.
+      - S6981426, CVE-2010-3574: limit use of TRACE method in
+        HttpURLConnection.
+    - Plugin fixes.
+    - Backports from newer IcedTea releases.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 12 Oct 2010 12:13:40 +0200
+
+openjdk-6 (6b20-1.9-1) experimental; urgency=low
+
+  * Upload to experimental.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 07 Sep 2010 21:19:21 +0200
+
+openjdk-6 (6b20-1.9-0ubuntu1) maverick; urgency=low
+
+  * IcedTea6 1.9 release.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 07 Sep 2010 18:13:20 +0200
+
+openjdk-6 (6b20~pre2-0ubuntu2) maverick; urgency=low
+
+  * Update from the IcedTea6 trunk.
+  * Really let the build fail on armel.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 30 Jul 2010 16:55:38 +0200
+
+openjdk-6 (6b20~pre2-0ubuntu1) maverick; urgency=high
+
+  * Update from the IcedTea6 trunk.
+    - (CVE-2010-2783): IcedTea 'Extended JNLP Services' arbitrary file access.
+    - (CVE-2010-2548): IcedTea incomplete property access check for unsigned
+      applications
+  * openjdk-6-jre: Recommend ttf-dejavu-extra. LP: #569396.
+  * Explicitely fail the build on armel. The ARM assembler interpreter is
+    disabled and would a 3-5x performance regression compared to the current
+    6b18 armel binaries in the archive.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 29 Jul 2010 00:10:53 +0200
+
+openjdk-6 (6b20~pre1-2) experimental; urgency=low
+
+  * Upload to experimental.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 15 Jul 2010 13:55:02 +0200
+
+openjdk-6 (6b20~pre1-1ubuntu1) maverick; urgency=low
+
+  * Include docs in the -doc package. LP: #600834.
+  * Update from the IcedTea6 trunk.
+    - Plugin and netx fixes.
+    - Don't link the plugin against the libxul libraries. Closes: #576361.
+    - More plugin cpu usage fixes. Closes: #584335, #587049.
+    - Plugin: fixes AppletContext.getApplets().
+  * Fix Vcs-Bzr location. Closes: #530883.
+  * Search for unversioned llvm-config tool.
+  * Don't set XFILESEARCHPATH and NLSPATH on startup. LP: #586641.
+  * Fix chinese font metrics and prefer using 'WenQuanYi Micro Hei' font.
+    LP: #472845.
+  * Strip libjvm.so with --strip-debug instead of --strip-unneeded.
+    LP: #574997.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 15 Jul 2010 12:40:10 +0200
+
+openjdk-6 (6b20~pre1-1) experimental; urgency=low
+
+  * Upload to experimental.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 28 Jun 2010 00:50:58 +0200
+
+openjdk-6 (6b20~pre1-0ubuntu2) maverick; urgency=low
+
+  * Shark & CACAO build fixes.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 25 Jun 2010 02:27:10 +0200
+
+openjdk-6 (6b20~pre1-0ubuntu1) maverick; urgency=low
+
+  * Update to 6b20 code drop.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 14 Apr 2010 02:53:37 +0200
+
+openjdk-6 (6b18-1.8-4) unstable; urgency=low
+
+  * Update from the 1.8 branch.
+    - Plugin and netx fixes.
+    - Don't link the plugin against the libxul libraries. Closes: #576361.
+    - More plugin cpu usage fixes. Closes: #584335, #587049.
+    - Plugin: fixes AppletContext.getApplets().
+    - Fix race conditions in plugin initialization code that were causing
+      hangs when loading multiple applets in parallel.
+  * Fix Vcs-Bzr location. Closes: #530883.
+  * Search for unversioned llvm-config tool.
+  * Don't set XFILESEARCHPATH and NLSPATH on startup. LP: #586641.
+  * Fix chinese font metrics and prefer using 'WenQuanYi Micro Hei' font. 
+    LP: #472845.
+  * Strip libjvm.so with --strip-debug instead of --strip-unneeded.
+    LP: #574997.
+  * Don't turn on the ARM assembler interpreter when building the shark
+    VM.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 15 Jul 2010 00:40:13 +0200
+
+openjdk-6 (6b18-1.8-3) unstable; urgency=low
+
+  * Update from the 1.8 branch.
+    - Plugin fixes. LP: #597714.
+  * Add powerpcspe build fixes (Sebastian Andrzej Siewior). Closes: #586359.
+  * Work around build failure on buildds configured with low ARG_MAX
+    (Giovanni Mascellani). Closes: #575254.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 27 Jun 2010 10:16:27 +0200
+
+openjdk-6 (6b18-1.8-2ubuntu3) maverick; urgency=low
+
+  * Update from the 1.8 branch.
+    - Plugin fixes. LP: #597714.
+  * Add powerpcspe build fixes (Sebastian Andrzej Siewior). Closes: #586359.
+  * Work around build failure on buildds configured with low ARG_MAX
+    (Giovanni Mascellani). Closes: #575254.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 27 Jun 2010 10:16:27 +0200
+
+openjdk-6 (6b18-1.8-2ubuntu2) maverick; urgency=low
+
+  * Search for unversioned llvm-config tool.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 02 May 2010 12:03:01 +0200
+
+openjdk-6 (6b18-1.8-2ubuntu1) maverick; urgency=low
+
+  * Upload to maverick.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 02 May 2010 11:23:16 +0200
+
+openjdk-6 (6b18-1.8-2) unstable; urgency=low
+
+  * Update from the 1.8 branch.
+    - Fix build on Hitachi SH. Closes: #575346.
+    - Shark and Zero fixes.
+  * Build shark using llvm-2.7.
+  * Don't use shark to run the test harness when testing the shark build.
+  * README.Debian: Add paragraph about debugging the IcedTea NPPlugin.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 01 May 2010 12:35:19 +0200
+
+openjdk-6 (6b18-1.8-1) unstable; urgency=low
+
+  * Upload to unstable.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 14 Apr 2010 02:53:37 +0200
+
+openjdk-6 (6b18-1.8-0ubuntu1) lucid; urgency=low
+
+  * Update IcedTea6 to the icedtea6-1.8 release.
+  * Fix builds on Ubuntu/dapper and Debian/lenny.
+  * On hppa, configure --without-rhino --disable-plugin.
+  * Fix Hitachi SH configury. Closes: #575346.
+  * Start a window manager when running the tests. Prefer metacity,
+    as more tests pass with it.
+  * Let XToolkit.isTraySupported() return true, if Compiz is running.
+    Works around sun#6438179. LP: #300948.
+  * Make <java_home>/jre/lib/security/nss.cfg a config file.
+  * Fail in the configuration of the packages, if /proc is not mounted.
+    java currently uses tricks to find its own shared libraries depending
+    on the path of the binary. Will be changed in OpenJDK7. Closes: #576453.
+  * Fix PR icedtea/469, testsuite failures with the NSS based security
+    provider. LP: #556549.
+  * Do not pass LD_LIBRARY_PATH from the plugin to the java process.
+    While libnss3.so gets loaded from /usr/lib, the dependent libraries
+    are loaded from MOZILLA_FIVE_HOME (See #561216 for the wrong firefox
+    config). LP: #561124.
+    Closes as well: LP: #551328, #554909, #560829, #549010, #553452. 
+  * Always build shark with hs14.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 14 Apr 2010 01:53:33 +0200
+
+openjdk-6 (6b18~pre4-1ubuntu1) lucid; urgency=low
+
+  * Build-depend on xulrunner-1.9.2-dev instead of xulrunner-dev,
+    unexpectedly demoted to universe.
+  * icedtea6-plugin: Hardcode dependency on xulrunner-1.9.2. No way
+    to do better? See #552780.
+  * Fix builds on Ubuntu hardy.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 31 Mar 2010 22:21:49 +0200
+
+openjdk-6 (6b18~pre4-1) unstable; urgency=high
+
+  * Upload to unstable.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 31 Mar 2010 16:35:18 +0200
+
+openjdk-6 (6b18~pre4-0ubuntu2) lucid; urgency=low
+
+  * Fix typo in NPPlugin code. LP: #552287.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 31 Mar 2010 10:41:11 +0200
+
+openjdk-6 (6b18~pre4-0ubuntu1) lucid; urgency=low
+
+  [ Matthias Klose ]
+  * Update IcedTea6 form the 1.8 branch.
+  * SECURITY UPDATE: multiple upstream vulnerabilities. Upstream fixes:
+    - (CVE-2010-0837): JAR "unpack200" must verify input parameters (6902299).
+    - (CVE-2010-0845): No ClassCastException for HashAttributeSet constructors
+      if run with -Xcomp (6894807).
+    - (CVE-2010-0838): CMM readMabCurveData Buffer Overflow Vulnerability
+      (6899653).
+    - (CVE-2010-0082): Loader-constraint table allows arrays instead of
+      only the base-classes (6626217).
+    - (CVE-2010-0095): Subclasses of InetAddress may incorrectly interpret
+      network addresses (6893954) [ZDI-CAN-603].
+    - (CVE-2010-0085): File TOCTOU deserialization vulnerability (6736390).
+    - (CVE-2010-0091): Unsigned applet can retrieve the dragged information
+      before drop action occurs (6887703).
+    - (CVE-2010-0088): Inflater/Deflater clone issues (6745393).
+    - (CVE-2010-0084): Policy/PolicyFile leak dynamic ProtectionDomains
+      (6633872).
+    - (CVE-2010-0092): AtomicReferenceArray causes SIGSEGV -> SEGV_MAPERR
+      error (6888149).
+    - (CVE-2010-0094): Deserialization of RMIConnectionImpl objects should
+      enforce stricter checks (6893947) [ZDI-CAN-588].
+    - (CVE-2010-0093): System.arraycopy unable to reference elements
+      beyond Integer.MAX_VALUE bytes (6892265).
+    - (CVE-2010-0840): Applet Trusted Methods Chaining Privilege Escalation
+      Vulnerability (6904691).
+    - (CVE-2010-0848): AWT Library Invalid Index Vulnerability (6914823).
+    - (CVE-2010-0847): ImagingLib arbitrary code execution vulnerability
+      (6914866).
+    - (CVE-2009-3555): TLS: MITM attacks via session renegotiation.
+    - 6639665: ThreadGroup finalizer allows creation of false root
+      ThreadGroups.
+    - 6898622: ObjectIdentifer.equals is not capable of detecting incorrectly.
+      encoded CommonName OIDs.
+    - 6910590: Application can modify command array in ProcessBuilder.
+    - 6909597: JPEGImageReader stepX Integer Overflow Vulnerability.
+    - 6932480: Crash in CompilerThread/Parser. Unloaded array klass?
+    - 6898739: TLS renegotiation issue.
+
+  [ Torsten Werner ]
+  * Switch off IPV6_V6ONLY for IN6_IS_ADDR_UNSPECIFIED addresses, too.
+    (Closes: #575163)
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 31 Mar 2010 02:34:04 +0200
+
+openjdk-6 (6b18~pre3-1) unstable; urgency=low
+
+  [ Matthias Klose ]
+  * Update IcedTea build infrastructure (20100321).
+  * Update support for SH4 (Nobuhiro Iwamatsu).
+  * Handle renaming of the plugin name.
+
+  [ Torsten Werner ]
+  * Improve patch for IPv4 mapped IPv6 addresses even more.
+    (Closes: #573742)
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 21 Mar 2010 22:52:12 +0100
+
+openjdk-6 (6b18~pre2-1ubuntu2) lucid; urgency=low
+
+  * Fix build failure on ARM.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 12 Mar 2010 15:19:13 +0100
+
+openjdk-6 (6b18~pre2-1ubuntu1) lucid; urgency=low
+
+  * Upload to lucid.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 10 Mar 2010 23:34:57 +0100
+
+openjdk-6 (6b18~pre2-1) unstable; urgency=low
+
+  * Update IcedTea build infrastructure (20100310).
+  * Disable building the plugin the plugin on alpha (borked xulrunner
+    packaging using binary indep packages).
+  * Use a two stage build on alpha.
+  * Add note about the reparenting WM workaround. Closes: #573026.
+  * Prefer Sazanami instead of Kochi for Japanese fonts (Hideki Yamane).
+    Closes: #572511.
+  * openjdk-6-doc: Don't compress package-list files. Closes: #567899.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 10 Mar 2010 11:19:19 +0100
+
+openjdk-6 (6b18~pre1-4) unstable; urgency=low
+
+  * Improve patch for IPv4 mapped IPv6 addresses.
+
+ -- Torsten Werner <twerner@debian.org>  Sun, 07 Mar 2010 01:14:36 +0100
+
+openjdk-6 (6b18~pre1-3) unstable; urgency=low
+
+  * Add a patch for improved handling of IPv4 mapped IPv6 addresses.
+    (Closes: #560056, #561930, #563699, #563946)
+
+ -- Torsten Werner <twerner@debian.org>  Tue, 02 Mar 2010 23:46:57 +0100
+
+openjdk-6 (6b18~pre1-2) unstable; urgency=low
+
+  * Change Build-Depends: ant1.7-optional because of a bus error in gij.
+
+ -- Torsten Werner <twerner@debian.org>  Mon, 01 Mar 2010 07:17:16 +0100
+
+openjdk-6 (6b18~pre1-1ubuntu1) lucid; urgency=low
+
+  * Ignore error code running ant -diagnostics.
+  * Build-depend on ant-optional.
+  * Disable the cacao build on armel, fails to build with the non
+    bootstrap build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 20 Feb 2010 15:36:06 +0100
+
+openjdk-6 (6b18~pre1-1) unstable; urgency=low
+
+  * Upload to unstable.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 19 Feb 2010 21:52:32 +0100
+
+openjdk-6 (6b18~pre1-0ubuntu1) lucid; urgency=low
+
+  * New Openjdk6 b18 source code drop.
+  * Use mangled copy of rhino. Closes: #512970. LP: #255149.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 19 Feb 2010 18:17:23 +0100
+
+openjdk-6 (6b17-1.7-1ubuntu1) lucid; urgency=low
+
+  * ARM Thumb2 updates.
+  * Test build using Hotspt hs14 on ix86.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 31 Jan 2010 21:56:59 +0100
+
+openjdk-6 (6b18~pre1-1) unstable; urgency=low
+
+  * Upload to unstable.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 19 Feb 2010 21:52:32 +0100
+
+openjdk-6 (6b18~pre1-0ubuntu1) lucid; urgency=low
+
+  * New Openjdk6 b18 source code drop.
+  * Use mangled copy of rhino. Closes: #512970. LP: #255149.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 19 Feb 2010 18:17:23 +0100
+
+openjdk-6 (6b17-1.7-1ubuntu1) lucid; urgency=low
+
+  * ARM Thumb2 updates.
+  * Test build using Hotspt hs14 on ix86.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 31 Jan 2010 21:56:59 +0100
+
+openjdk-6 (6b17-1.7-1) unstable; urgency=low
+
+  * Upload to unstable.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 27 Jan 2010 23:44:47 +0100
+
+openjdk-6 (6b17-1.7-0ubuntu1) lucid; urgency=low
+
+  * IcedTea6 1.7 release.
+  * Don't try to load libjpeg7; still building with libjpeg62. Closes: #563999.
+  * Run the testsuite on sh4.
+  * Ubuntu only: Implement an execute bit checker for the Non-Exec Policy
+    - debian/JB-java.desktop.in: update mime handler to use new launcher.
+  * armel: Apply the thumb2 patches from the trunk, plus proposed patches
+    for the trunk.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 27 Jan 2010 22:48:24 +0100
+
+openjdk-6 (6b17-0ubuntu1) lucid; urgency=low
+
+  * Build from the IcedTea6-1.7 branch.
+  * Don't build the plugin on sparc64.
+  * Enable the NPPlugin.
+  * Add support for SH4 (Nobuhiro Iwamatsu).
+  * Fix crash in the ARM assembler interpreter (Edward Nevill).
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 06 Jan 2010 15:52:50 +0100
+
+openjdk-6 (6b17~pre3-1ubuntu2) lucid; urgency=low
+
+  * Update IcedTea build infrastructure (20091224).
+  * Explicitely build-depend on x11-xkb-utils (xkbcomp is needed by
+    xvfb-run).
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 24 Dec 2009 12:43:00 +0100
+
+openjdk-6 (6b17~pre3-1ubuntu1) lucid; urgency=low
+
+  * Upload to lucid.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 18 Dec 2009 10:40:05 +0100
+
+openjdk-6 (6b17~pre3-1) unstable; urgency=low
+
+  * Update IcedTea build infrastructure (20091218).
+  * Install docs into the openjdk-6-jre-headless directory instead of
+    openjdk-6-jre.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 18 Dec 2009 10:00:08 +0100
+
+openjdk-6 (6b17~pre2-1ubuntu1) lucid; urgency=low
+
+  * Update IcedTea build infrastructure (20091215).
+  * Fix cacao build on armel with current optimization defaults.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 15 Dec 2009 16:41:12 +0100
+
+openjdk-6 (6b17~pre2-1) unstable; urgency=low
+
+  * Upload to unstable.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 09 Nov 2009 21:50:52 +0100
+
+openjdk-6 (6b17~pre2-0ubuntu3) lucid; urgency=low
+
+  * Security updates:
+    - (CVE-2009-3728) ICC_Profile file existence detection information leak
+      (6631533).
+    - (CVE-2009-3885) BMP parsing DoS with UNC ICC links (6632445).
+    - (CVE-2009-3881) resurrected classloaders can still have children
+      (6636650).
+    - (CVE-2009-3882) Numerous static security flaws in Swing (findbugs)
+      (6657026).
+    - (CVE-2009-3883) Mutable statics in Windows PL&F (findbugs) (6657138).
+    - (CVE-2009-3880) UI logging information leakage (6664512).
+    - (CVE-2009-3879) GraphicsConfiguration information leak (6822057).
+    - (CVE-2009-3884) zoneinfo file existence information leak (6824265).
+    - (CVE-2009-2409) deprecate MD2 in SSL cert validation (Kaminsky) (6861062).
+    - (CVE-2009-3873) JPEG Image Writer quantization problem (6862968).
+    - (CVE-2009-3875) MessageDigest.isEqual introduces timing attack
+      vulnerabilities (6863503).
+    - (CVE-2009-3876, CVE-2009-3877) OpenJDK ASN.1/DER input stream parser
+      denial of service (6864911).
+    - (CVE-2009-3869) JRE AWT setDifflCM stack overflow (6872357).
+    - (CVE-2009-3874) ImageI/O JPEG heap overflow (6874643.
+    - (CVE-2009-3871) JRE AWT setBytePixels heap overflow (6872358).
+  * Update IcedTea build infrastructure (20091109).
+  * Use hs16 on armel.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 09 Nov 2009 17:48:43 +0100
+
+openjdk-6 (6b17~pre2-0ubuntu2) lucid; urgency=low
+
+  * Don't use hs16 on armel and sparc.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 02 Nov 2009 15:33:00 +0100
+
+openjdk-6 (6b17~pre2-0ubuntu1) lucid; urgency=low
+
+  * New code drop (b17).
+  * Bump hotspot to hs16.
+  * Update IcedTea build infrastructure (20091031).
+  * Set priority of default -jre and -jdk packages to optional.
+  * Fix binary-all to binary-any dependencies. Closes: #550680.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 31 Oct 2009 19:30:54 +0100
+
+openjdk-6 (6b16-1.6.1-2) unstable; urgency=medium
+
+  * Build-depend on xulrunner-dev (>= 1.9.1.3-3).
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 11 Oct 2009 21:34:48 +0200
+
+openjdk-6 (6b16-1.6.1-1ubuntu3) karmic; urgency=low
+
+  [Matthias Klose]
+  * On armel and powerpc, build an additional VM using shark in the
+    openjdk-6-jre-zero package (java -shark <args>). Requires llvm-2.6.
+  * Hide the desktop menu entry for WebStart. LP: #222180.
+  * Don't provide java-virtual-machine anymore.
+
+  [Edward Nevill]
+  * Avoid stack overflows in the arm interpreter.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 08 Oct 2009 12:41:46 +0200
+
+openjdk-6 (6b16-1.6.1-1ubuntu2) karmic; urgency=low
+
+  * Support PKCS11 cryptography via NSS, now allowing import of all
+    certificates from ca-certificates.
+  * Remove Michael Koch from uploaders, request by himself.
+  * Add the doc dir symlink for openjdk-6-jre-zero when the package
+    is built with shark support.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 28 Sep 2009 21:55:08 +0200
+
+openjdk-6 (6b16-1.6.1-1ubuntu1) karmic; urgency=low
+
+  * Fix dependency on the java bridge packages.
+  * debian/rules: Conditionalize stuff so that the recent release
+    is never mentioned.
+  * Remove obsolete patches in debian/patches.
+  * Rebuild on armel to fix up libffi for the soft float abi.
+  * For jaunty builds, fix IcedTeaPlugin failure to start with xulrunner 1.9.1
+    (LP: #359407).
+    - debian/patches/icedtea-plugin-use-runtime-nsIProcess-IID.diff: Add.
+    - debian/rules: Apply it for jaunty builds.
+  * Use pulseaudio as default serviceprovider for
+    javax.sound.midi.MidiSystem and javax.sound.sampled.AudioSystem.
+    LP: #407299.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 26 Sep 2009 16:01:48 +0200
+
+openjdk-6 (6b16-1.6.1-1) unstable; urgency=low
+
+  * Upload to Debian unstable.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 15 Sep 2009 02:17:03 +0200
+
+openjdk-6 (6b16-1.6.1-0ubuntu1) karmic; urgency=low
+
+  * Update IcedTea6 to the 1.6.1 release.
+  * Work around GCC PR target/41327, build the JDK on s390 with -O2.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 10 Sep 2009 01:55:08 +0200
+
+openjdk-6 (6b16-1.6-1) unstable; urgency=low
+
+  * Update IcedTea6 to the 1.6 release.
+  * Fix GCC build dependencies.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 09 Sep 2009 22:18:38 +0200
+
+openjdk-6 (6b16-1.6~pre2-1) unstable; urgency=low
+
+  * Upload to unstable.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 28 Aug 2009 19:04:31 +0200
+
+openjdk-6 (6b16-1.6~pre2-0ubuntu1) karmic; urgency=low
+
+  * Update IcedTea from the 1.6 release branch:
+    - Fix buffer overflow in debugger's socket handler (Kees Cook).
+      https://bugs.openjdk.java.net/show_bug.cgi?id=100103. LP: #409736.
+    - plugin fixes.
+  * Move the pulseaudio recommendation to a suggestion, don't build-depend
+    on pulseaudio. Closes: #539394. LP: #361408.
+  * Build for armv6 (on armel).
+
+  [ Kees Cook ]
+  * debian/rules: Re-enable fortification and stack protector
+    (LP: #330713).
+  * Adding stack markings to the x86 assembly for not using executable
+    stack. LP: #419018.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 28 Aug 2009 18:51:34 +0200
+
+openjdk-6 (6b16-1.6~pre1-0ubuntu1) karmic; urgency=low
+
+  * Test build (icedtea6-1.6 release branch).
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 21 Aug 2009 19:44:42 +0200
+
+openjdk-6 (6b16~pre5-0ubuntu2) karmic; urgency=low
+
+  * Add explicit build dependency on libgtk2.0-dev.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 06 Aug 2009 11:39:14 +0200
+
+openjdk-6 (6b16~pre5-0ubuntu1) karmic; urgency=low
+
+  * Bump hotspot to hs14b16.
+  * Update IcedTea build infrastructure (20090805).
+  * patches/java-access-bridge-security.patch: Update.
+  * Build-depend on xulrunner-dev instead of xulrunner-1.9-dev on karmic.
+  * Don't recommend the jck fonts anymore, just suggest them; the appropriate
+    fonts are installed as dependencies of the language packs.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 06 Aug 2009 10:27:09 +0200
+
+openjdk-6 (6b16~pre4-0ubuntu7) karmic; urgency=low
+
+  * Build using GCC-4.4 on sparc as well, require 4.4.1.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 23 Jul 2009 18:23:14 +0200
+
+openjdk-6 (6b16~pre4-0ubuntu6) karmic; urgency=low
+
+  * Fix build failure building the zero VM.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 16 Jul 2009 09:49:36 -0400
+
+openjdk-6 (6b16~pre4-0ubuntu5) karmic; urgency=low
+
+  [Matthias Klose]
+  * Update IcedTea build infrastructure (20090715).
+  * Tighten build dependency on llvm-dev.
+
+  [Edward Nevill]
+  * Add armv4 compatibility.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 15 Jul 2009 15:40:44 -0400
+
+openjdk-6 (6b16~pre4-0ubuntu4) karmic; urgency=low
+
+  [Edward Nevill]
+  * Added Bytecode Interpreter Generator.
+  * Added ARM templates for above.
+  * Removed old optimised ARM assebler.
+  * Added -g0 because of problems with ld linking -g.
+  * Changed alignment to 64 now that as bug is fixed.
+
+  [Matthias Klose]
+  * Update IcedTea build infrastructure (20090710).
+  * Let the -jre package depend on the access-bridge package, not the
+    -jre-headless package. LP: #395074.
+  * Suggested by Ed Nevill:
+    - Pass -timeout:3 when running the jtreg testsuite on zero architectures.
+    - Pass -Xmx256M -vmoption:-Xmx256M on armel for the jtreg testsuite run.
+  * Tighten build dependency on llvm-dev.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 03 Jul 2009 18:32:50 +0200
+
+openjdk-6 (6b16~pre4-0ubuntu3) karmic; urgency=low
+
+  * Update zero-port-opt patch on armel.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 24 Jun 2009 10:48:48 +0200
+
+openjdk-6 (6b16~pre4-0ubuntu2) karmic; urgency=low
+
+  * Update IcedTea build infrastructure (20090623).
+  * Reapply the zero-port-opt patch on armel.
+  * Do not use the IPA Mona font family by default. Closes: #521233.
+  * Build cacao with -fno-strict-aliasing.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 23 Jun 2009 16:23:38 +0200
+
+openjdk-6 (6b16-4) unstable; urgency=medium
+
+  * Build the zero binary package when building with shark.
+  * Build-depend on cpio. Closes: #532963.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 16 Jun 2009 07:52:19 +0200
+
+openjdk-6 (6b16-3) unstable; urgency=low
+
+  * Update IcedTea build infrastructure (20090612).
+  * Install the libaccess-bridge-java* symlinks again.
+  * Build zero on ix86 architectures with JIT support (shark). To use the zero
+    build without shark, use the `-Xint' option to operate in interpreted-only
+    mode.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 12 Jun 2009 17:31:34 +0200
+
+openjdk-6 (6b16-2) unstable; urgency=low
+
+  * Don't install libaccess-bridge-java* symlinks until
+    libaccess-bridge-java-jni is available on all architectures.
+  * Add missing build dependency on cacao-source.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 18 May 2009 14:02:59 +0200
+
+openjdk-6 (6b16-1) unstable; urgency=low
+
+  * Upload to unstable, based in 6b16 and IcedTea 1.5.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 17 May 2009 23:02:46 +0200
+
+openjdk-6 (6b16~pre3-0ubuntu1) karmic; urgency=low
+
+  * Update to hotspot hs14b15.
+  * Provide symlink for libjava-access-bridge-jni.so. LP: #375347.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 15 May 2009 00:41:24 +0200
+
+openjdk-6 (6b16~pre2-0ubuntu3) karmic; urgency=low
+
+  * Update IcedTea build infrastructure (20090513).
+  * Fix build failure when xvfb-run doesn't work, trying to access a
+    non-existing directory.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 13 May 2009 23:01:23 +0200
+
+openjdk-6 (6b16~pre2-0ubuntu2) karmic; urgency=low
+
+  * Add libffi-dev as architecture independent build dependency.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 11 May 2009 08:41:42 +0200
+
+openjdk-6 (6b16~pre2-0ubuntu1) karmic; urgency=low
+
+  * Update to re-tagged code drop (b16).
+  * Update IcedTea build infrastructure (20090510).
+  * Remove patches integrated in IcedTea.
+  * Remove GCJ Web Plugin support.
+  * Remove build infrastructure to build additional VM's, integrated
+    in IcedTea.
+  * Stop building the openjdk-6-source-files package.
+  * README.Debian: Document using the different VM's.
+  * Use GCC-4.3 on sparc, ICE with GCC-4.4.
+  * Fix problem with the ARM assembler interpreter, when executing a 'new'
+    bytecode with a double on the top of the stack (Edward Nevill).
+  * Run the testsuite for the zero build on ix86 architectures.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 10 May 2009 23:37:42 +0200
+
+openjdk-6 (6b16~pre1-0ubuntu1) karmic; urgency=low
+
+  * New code drop (b16).
+  * Update IcedTea build infrastructure (20090429).
+  * Merge changes from 6b14-1.4.1.
+  * Fix section names (using the java section).
+  * Remove all UTF-8 sequence definitions from the font configuration.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 29 Apr 2009 11:33:07 +0200
+
+openjdk-6 (6b14-1.4.1-0ubuntu9) jaunty; urgency=low
+
+  * Reenable the testsuite (revert the change in last upload).
+  * Apply fix for the ARM bytecode interpreter (Edward Nevill).
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 18 Apr 2009 11:24:27 +0200
+
+openjdk-6 (6b14-1.4.1-0ubuntu7) jaunty; urgency=low
+
+  * Don't use some indian fonts with diverging font metrics for the
+    latin-1.UTF-8 encoding. LP: #289784.
+  * Disable running the testsuite for this build (no code changes compared
+    to the previous upload).
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 14 Apr 2009 11:46:25 +0200
+
+openjdk-6 (6b14-1.4.1-0ubuntu6) jaunty; urgency=low
+
+  * Fix native2ascii jdk test case, which let the jdk testsuite fail.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 10 Apr 2009 11:58:44 +0200
+
+openjdk-6 (6b14-1.4.1-0ubuntu5) jaunty; urgency=low
+
+  [Matthias Klose]
+  * Update to the final CACAO 0.99.4 release.
+  * Security Vulnerability Fixes for OpenJDK:
+    - 6522586: Enforce limits on Font creation.
+    - 6536193: flaw in UTF8XmlOutput.
+    - 6610888: Potential use of cleared of incorrect acc in JMX Monitor.
+    - 6610896: JMX Monitor handles thread groups incorrectly.
+    - 6630639: lightweight HttpServer leaks file descriptors on no-data
+      connections.
+    - 6632886: Font.createFont can be persuaded to leak temporary files.
+    - 6636360: compiler/6595044/Main.java test fails with 64bit java on
+      solaris-sparcv9 with SIGSEGV.
+    - 6652463: MediaSize constructors allow to redefine the mapping of
+      standard MediaSizeName values.
+    - 6652929: Font.createFont(int,File) trusts File.getPath.
+    - 6656633: getNotificationInfo methods static mutable (findbugs).
+    - 6658158: Mutable statics in SAAJ (findbugs).
+    - 6658163: txw2.DatatypeWriter.BUILDIN is a mutable static (findbugs).
+    - 6691246: Thread context class loader can be set using JMX remote
+      ClientNotifForwarded.
+    - 6717680: LdapCtx does not close the connection if initialization fails.
+    - 6721651: Security problem with out-of-the-box management.
+    - 6737315: LDAP serialized data vulnerability.
+    - 6792554: Java JAR Pack200 header checks are insufficent.
+    - 6804996: JWS PNG Decoding Integer Overflow [V-flrhat2ln8].
+    - 6804997: JWS GIF Decoding Heap Corruption [V-r687oxuocp].
+    - 6804998: JRE GIF Decoding Heap Corruption [V-y6g5jlm8e1].
+  * Add security patch for the lcms library.
+  * Add accessibility patches java-access-bridge-security.patch and
+    accessible-toolkit.patch.
+  * Merge fixes for testsuite failures from the IcedTea6 branch.
+  * Merge the proxy support for the plugin  from the IcedTea6 branch.
+  * Merge http://icedtea.classpath.org/hg/release/icedtea6-1.4.1/rev/546ef0cdee06
+    (TJ). LP: #344705.
+  * Add a Xb-Npp-Description for the IcedTea plugin. LP: #272010.
+
+  [Edward Nevill]
+  * Put VFP back in - selects VFP / novfp autmatically
+  * More assembler optimisations
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 09 Apr 2009 14:14:12 +0200
+
+openjdk-6 (6b14-1.4.1-0ubuntu4) jaunty; urgency=low
+
+  * Disable the additional zero JVM on sparc.
+  * patches/hotspot/default/icedtea-includedb.patch: Add missing include in
+    openjdk/hotspot/src/share/vm/includeDB_core.
+  * Fix build failure of the zero VM on lpia with a fixed GCC.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 13 Mar 2009 16:39:27 +0100
+
+openjdk-6 (6b14-1.4.1-0ubuntu3) jaunty; urgency=low
+
+  * Build the Zero/Shark VM as an additional JVM (call as `java -zero').
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 07 Mar 2009 20:54:28 +0100
+
+openjdk-6 (6b14-1.4.1-0ubuntu2) jaunty; urgency=low
+
+  * Fix zero-port-opt patching (build failure on armel).
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 05 Mar 2009 18:19:18 +0100
+
+openjdk-6 (6b14-1.4.1-0ubuntu1) jaunty; urgency=low
+
+  * Update IcedTea to the 1.4.1 release.
+  * Build the Cacao VM as an additional JVM (call as `java -cacao').
+  * Build in separate build directory.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 05 Mar 2009 15:16:02 +0100
+
+openjdk-6 (6b14-1.5~pre1-5) unstable; urgency=low
+
+  * Fix build failure on armel.
+  * Require the final cacao-0.99.4 release.
+  * Add /usr/lib/jni to the library path. Closes: #517338.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 17 Mar 2009 09:37:20 +0100
+
+openjdk-6 (6b14-1.5~pre1-4) unstable; urgency=low
+
+  * Disable the additional zero JVM on sparc.
+  * Fix casts in hotspot on s390. Closes: #518823.
+  * Add special flags for javac on s390 to work around a VM problem with bad
+    code generation during inlining.
+  * Run the testsuites for the default VM on all architectures.
+  * Update IcedTea (20090314).
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 14 Mar 2009 18:29:49 +0100
+
+openjdk-6 (6b14-1.5~pre1-3) unstable; urgency=low
+
+  * Don't configure the additional zero JVM with --enable-shark, currently
+    fails to build.
+  * Don't build the JDK when building the additional zero JVM.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 07 Mar 2009 21:11:16 +0100
+
+openjdk-6 (6b14-1.5~pre1-2) experimental; urgency=low
+
+  * Build the Zero/Shark VM as an additional JVM (call as `java -zero').
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 06 Mar 2009 11:16:07 +0100
+
+openjdk-6 (6b14-1.5~pre1-0ubuntu1) jaunty; urgency=low
+
+  * Update hotspot to 14.0-b10.
+  * Update IcedTea (20090305).
+  * Build the Cacao VM as an additional JVM (call as `java -cacao').
+  * Build in separate build directory.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 05 Mar 2009 15:16:02 +0100
+
+openjdk-6 (6b14-0ubuntu17) jaunty; urgency=low
+
+  [ Edward Nevill ]
+  * Remove VFP from asm loop
+  * Disble the mauve testsuite for armel.
+
+  [Matthias Klose]
+  * Update IcedTea (20090302).
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 02 Mar 2009 16:18:01 +0100
+
+openjdk-6 (6b14-0ubuntu16) jaunty; urgency=low
+
+  * Regenerate auto files.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 18 Feb 2009 15:20:10 +0100
+
+openjdk-6 (6b14-0ubuntu15) jaunty; urgency=low
+
+  [ Edward Nevill ]
+  * Added ARM assembler interpreter loop
+  * mauve and jtreg removed again for alpha release
+
+  [Matthias Klose]
+  * Update IcedTea (20090218).
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 18 Feb 2009 13:35:02 +0100
+
+openjdk-6 (6b14-0ubuntu14) jaunty; urgency=low
+
+  * Configure with --disable-nio2 on armel as well.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 13 Feb 2009 10:13:55 +0100
+
+openjdk-6 (6b14-0ubuntu13) jaunty; urgency=low
+
+  * Really configure with --disable-nio2.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 12 Feb 2009 17:26:43 +0100
+
+openjdk-6 (6b14-0ubuntu12) jaunty; urgency=low
+
+  * Configure with --disable-nio2.
+  * Run mauve and jtreg testsuites on armel.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 11 Feb 2009 13:00:15 +0100
+
+openjdk-6 (6b14-0ubuntu11) jaunty; urgency=low
+
+  [Edward Nevill]
+  * Performance improvements for the zero build (currently applied
+    on armel only).
+
+  [Matthias Klose]
+  * Update IcedTea (20090210).
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 10 Feb 2009 15:29:22 +0100
+
+openjdk-6 (6b14-0ubuntu10) jaunty; urgency=low
+
+  * Explicitely remove PulseAudioMuteControl.java.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 26 Jan 2009 22:09:21 +0100
+
+openjdk-6 (6b14-0ubuntu9.1) jaunty; urgency=low
+
+  * Test build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 25 Jan 2009 17:03:51 +0100
+
+openjdk-6 (6b14-0ubuntu9) jaunty; urgency=low
+
+  * Update IcedTea build infrastructure (20090125).
+  * Run the jtreg testsuite for cacao builds, save all test logs.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 25 Jan 2009 15:40:52 +0100
+
+openjdk-6 (6b14-0ubuntu8) jaunty; urgency=low
+
+  * Fix merge error, don't apply patches twice.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 19 Jan 2009 01:15:19 +0100
+
+openjdk-6 (6b14-0ubuntu7) jaunty; urgency=low
+
+  * debian/rules: Call dh_desktop. LP: #309999.
+  * Add dependency on libjpeg62 for the -headless package. LP: #318383.
+  * Test some jtreg tests which fail in samevm mode in a separate VM.
+  * Build all with -fno-stack-protector -U_FORTIFY_SOURCE.
+  * Include jtr files of failed tests in the -jdk package.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 19 Jan 2009 00:23:22 +0100
+
+openjdk-6 (6b14-0ubuntu6) jaunty; urgency=low
+
+  * The -source package now contains all source files. Closes: #504568.
+  * The 6b14 build fixes the following security related issues (sun bug number,
+    CVE, description):
+    - 6588160, CVE-2008-5348: jaas krb5 client leaks OS-level UDP sockets.
+    - 6497740, CVE-2009-5349: Limit the size of RSA public keys.
+    - 6484091, CVE-2008-5350: FileSystemView leaks directory info.
+    - 4486841, CVE-2008-5351: UTF-8 decoder needed adhere to Unicode 3.0.1
+      fixes.
+    - 6755943, CVE-2008-5352: JAR decompression should enforce stricter header
+      checks.
+    - 6734167, CVE-2008-5353: Calendar.readObject allows elevation of
+      privileges.
+    - 6733959, CVE-2008-5354: Insufficient checks for "Main-Class" manifest
+      entry in JAR files
+    - 6751322, CVE-2008-5356: Sun Java JRE TrueType Font Parsing Heap Overflow.
+    - 6733336, CVE-2008-5357: Crash on malformed font.
+    - 6766136, CVE-2008-5358: corrupted gif image may cause crash in java
+      splashscreen library.
+    - 6726779, CVE-2008-5359: ConvolveOp on USHORT raster can cause the JVM
+      crash.
+    - 6721753, CVE-2008-5360: File.createTempFile produces guessable file names.
+    - 6592792: Add com.sun.xml.internal to the "package.access" property in
+         $JAVA_HOME/lib/security/java.security.
+  * Regenerate the control file.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 13 Jan 2009 15:04:36 +0100
+
+openjdk-6 (6b14-0ubuntu2~ppa1) intrepid; urgency=low
+
+  * Upload to the OpenJDK PPA for intrepid.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 13 Jan 2009 13:28:38 +0100
+
+openjdk-6 (6b14-0ubuntu5) jaunty; urgency=low
+
+  * Update IcedTea build infrastructure (20090113).
+  * Rebuild with updated nss/nspr packages.
+  * Update debug patches.
+  * debian/patches/nonreparenting-wm.diff: If the _JAVA_AWT_WM_NONREPARENTING
+    environment variable is set, disable all workarounds causing blank windows
+    in non-reparentizing window managers (Bernhard R. Link). Closes: #508650.
+  * Fix location of plugin for Debian. Closes: #505726.
+  * Let the -jdk package provide java-compiler. Closes: #507641.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 13 Jan 2009 10:18:44 +0100
+
+openjdk-6 (6b14-0ubuntu4) jaunty; urgency=low
+
+  * Use a default jvm.cfg not only for java, but for all jdk tools.
+    LP: #288616.
+  * Update IcedTea build infrastructure (20081223).
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 23 Dec 2008 09:24:23 +0100
+
+openjdk-6 (6b14-0ubuntu3) jaunty; urgency=low
+
+  * Update IcedTea build infrastructure (20081217).
+  * Add support for PARISC.
+  * Use a default jvm.cfg if the jvm.cfg doesn't yet exist after unpacking
+    the runtime package. LP: #288616.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 17 Dec 2008 09:58:26 +0100
+
+openjdk-6 (6b14~pre1-0ubuntu2) jaunty; urgency=low
+
+  * Install hotspot tarball in -source-files package.
+  * Fix build failure on sparc.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 05 Dec 2008 09:43:51 +0100
+
+openjdk-6 (6b14~pre1-0ubuntu1) jaunty; urgency=low
+
+  * New code drop (b14).
+  * Update IcedTea build infrastructure (20081204).
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 04 Dec 2008 11:40:56 +0100
+
+openjdk-6 (6b13~pre2-0ubuntu2) jaunty; urgency=low
+
+  * Update IcedTea build infrastructure (20081203).
+    - Fix build failures on zero based architectures.
+  * Add build dependency on libxrender-dev.
+  * Don't use fastjar on ia64, working around a build failure.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 03 Dec 2008 18:43:23 +0100
+
+openjdk-6 (6b13~pre2-0ubuntu1) jaunty; urgency=low
+
+  * Update IcedTea build infrastructure (20081202).
+    - Add Dec 3 OpenJDK security patches
+  * Build with --with-hotspot-build, update patches for this config.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 03 Dec 2008 01:05:54 +0100
+
+openjdk-6 (6b13~pre1-0ubuntu4) jaunty; urgency=low
+
+  * Update IcedTea build infrastructure (20081122).
+    - Fixes for the IcedTeaPlugin. LP: #300254.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 22 Nov 2008 10:42:10 +0100
+
+openjdk-6 (6b13~pre1-0ubuntu3) jaunty; urgency=low
+
+  * Fix versioned conflict on icedtea-gcjwebplugin. LP: #284299.
+  * Update IcedTea build infrastructure (20081121).
+    - Fixes for the IcedTeaPlugin.
+  * Configure with pulseaudio in jaunty.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 21 Nov 2008 07:46:10 +0100
+
+openjdk-6 (6b13~pre1-0ubuntu2) jaunty; urgency=low
+
+  * Update IcedTea build infrastructure (20081117).
+  * Use openjdk-6 as stage1 compiler on armel for a faster build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 17 Nov 2008 18:43:17 +0100
+
+openjdk-6 (6b13~pre1-0ubuntu1) jaunty; urgency=low
+
+  * New code drop (b13).
+    - In the langtools area, besides a few miscellaneous bug fixes (6760834,
+      6725036, 6657499), all the langtools regression tests now pass out of
+      the box (6728697, 6707027) and if using the most recent version of
+      jtreg, the langtools regression tests can be run in the much faster
+      "same vm" mode of jtreg, enabled with the -s option (6749967, 6748541,
+      6748546, 6748601, 6759775, 6759795, 6759796, 6759996, 6760805, 6760930).
+    - Gervill update, including applying a patch from IcedTea (6758986,
+      6748247, 6748251).
+    - Publishing a few dozen additional existing regression tests as open
+      source (6601457, 6759433, 6740185).
+    - JMX and monitoring fixes (6651382, 6616825, 6756202, 6754672).
+    - Man page updates (6757036, 6392810, 6504867, 6326773).
+    - Assorted other fixes (6746055, 6621697, 6756569, 6356642, 6761678).
+  * Update IcedTea build infrastructure (20081111).
+    - Fix freeze in midi app, LP: #275672.
+    - Fixes in the IcedTeaPlugin: LP: #282570, LP: #282570, LP: #285729,
+      LP: #291377, LP: #37330, LP: #239533. 
+    - Fix vertical text metrics with freetype scaler. LP: #289784.
+  * Build-depend on ecj-gcj instead of ecj on architectures using
+    gij/gcj as the bootstrap system.
+  * Fixed in 6b12: Stack overflow running Kea. LP: #244731.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 11 Nov 2008 12:39:16 +0100
+
+openjdk-6 (6b12-1~exp1) experimental; urgency=low
+
+  * Update IcedTea build infrastructure (20081025).
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 25 Oct 2008 23:35:14 +0200
+
+openjdk-6 (6b12-0ubuntu6) intrepid; urgency=low
+
+  * Make the dependency on ca-certificates-java unversioned.
+  * Merge from IcedTea: 
+    - plugin/icedtea/netscape/javascript/JSObject.java: Make
+      long constructor public.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 24 Oct 2008 23:06:32 +0200
+
+openjdk-6 (6b12-0ubuntu5) intrepid; urgency=low
+
+  * Update IcedTea build infrastructure (20081024).
+    - Add --pkgversion=<package version> configure option.
+    - IcedTeaPlugin fixes.
+    - Fix xjc regressions.
+  * openjdk-jre-headless: Depend on ca-certificates-java.
+  * Configure with --pkgversion=<package version> to encode the package
+    version in the -version output and in vm dumps.
+  * cacao: Handle VM options Xverify:all and Xverify:none.
+  
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 24 Oct 2008 13:39:29 +0200
+
+openjdk-6 (6b12-0) experimental; urgency=low
+
+  * Upload to experimental.
+  * Pretend the availability of at least 384MB RAM; better swap on the
+    buildds than failing the build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 19 Oct 2008 11:15:28 +0200
+
+openjdk-6 (6b12-0ubuntu4) intrepid; urgency=low
+
+  * Update IcedTea build infrastructure (20081019).
+    - plugin fix (Make applet size factors doubles instead of ints).
+  * Don't fail the build when the jtreg summary is missing.
+  * openjdk-6-source-files: Fix priority and section of the binary package.
+  * Fix section of the plugin package.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 19 Oct 2008 09:29:03 +0200
+
+openjdk-6 (6b12-0ubuntu3) intrepid; urgency=low
+
+  * Update IcedTea build infrastructure (20081018).
+    - Fix LiveConnect issues in the web plugin. LP: #282762.
+    - Fail the build, if patches don't apply.
+  * Show xvfb and xauth failures in the build log, when running the testsuites.
+  * Kill processes which still hang after running the testsuite. Closes: #493339.
+  * Run the testsuite in parallel, reducing build time.
+  * openjdk-headless: Depend instead of recommending tzdata-java.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 18 Oct 2008 17:15:14 +0200
+
+openjdk-6 (6b12-0ubuntu2) intrepid; urgency=low
+
+  * icedtea6-plugin: Versioned conflict with icedtea-gcjwebplugin. LP: #184299.
+  * Don't configure --with-alt-jar=/usr/bin/fastjar on hotspot archs
+    and cacao builds. Working around a problem generating rt.jar. Manually
+    add the netscape/javascript files in zero builds.
+  * Update IcedTea build infrastructure (20081017).
+    - configury updates.
+    - IcedTeaPlugin update.
+  * openjdk-6-jdk: Suggest visualvm.
+  * Remove cacao patches found in cacao 0.99.4~20081012.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 17 Oct 2008 13:25:45 +0200
+
+openjdk-6 (6b12-0ubuntu1) intrepid; urgency=low
+
+  * Update IcedTea to the 1.3.0 release.
+  * Apply upstream patch to fix upstream issue 6758986.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 15 Oct 2008 19:49:05 +0000
+
+openjdk-6 (6b12~pre2-1) experimental; urgency=low
+
+  * Upload to experimental.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 12 Oct 2008 11:16:03 +0000
+
+openjdk-6 (6b12~pre2-0ubuntu3) intrepid; urgency=low
+
+  * Update IcedTea build infrastructure (20081015).
+  * Add netscape/javascript class files to rt.jar. LP: #282762.
+  * Be more verbose in the icedtea6-plugin package description.
+  * Fix some lintian warnings.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 15 Oct 2008 12:45:59 +0200
+
+openjdk-6 (6b12~pre2-0ubuntu2) intrepid; urgency=low
+
+  * Update IcedTea build infrastructure (20081012).
+  * When building as cacao, build a cacao-oj6-plugin package.
+  * When building as cacao, run the testsuite on amd64, i386, sparc.
+  * Add finnish translations to the desktop files (Timo Jyrinki).
+    Closes: #494354.
+  * Fix font paths (Rob Gom). Closes: #495988.
+  * Reenable running the testsuite.
+  * Fix pulse-java build failure on amd64.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 12 Oct 2008 13:05:49 +0200
+
+openjdk-6 (6b12~pre2-0ubuntu1) intrepid; urgency=low
+
+  * Update IcedTea build infrastructure (20081011).
+  * debian/copyright: Add copyright notice for pulseaudio sound files.
+  * Add support to build with pulseaudio support.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 11 Oct 2008 15:44:50 +0200
+
+openjdk-6 (6b12~pre1-0ubuntu5) intrepid; urgency=low
+
+  * Move the plugin from the -jre package into the -plugin package.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 10 Oct 2008 06:55:34 +0000
+
+openjdk-6 (6b12~pre1-0ubuntu4) intrepid; urgency=low
+
+  * Update IcedTea build infrastructure (20081009).
+  * Configure with --enable-liveconnect, build an icedtea6-plugin package.
+    Thanks to Deepak Bhole.
+    LP: #207064, #195783, #199680, #202762, #220241, #242263, #242496,
+    #242496, #250292, #269885, #274356, #274360, #259313.
+  * Build an icedtea6-plugin package.
+  * Merge changes from 6b11-9 packaging.
+  * Build a openjdk-6-source-files packages (used as a build dependency
+    of cacao-oj6).
+  * Build depend on cacao-source for cacao-oj6 builds.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 09 Oct 2008 15:04:27 +0200
+
+openjdk-6 (6b12~pre1-0ubuntu3) intrepid; urgency=low
+
+  * Update IcedTea build infrastructure (20080915).
+  * Reapply: openjdk-6-jre-headless: Make libnss-mdns a suggestion
+    instead of a recommendation. LP: #261847.
+  * Build-depend against fixed fastjar. LP: #267177.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 15 Sep 2008 20:16:51 +0200
+
+openjdk-6 (6b12~pre1-0ubuntu2) intrepid; urgency=low
+
+  * Update the icedtea-hotspot patch to b12, fixing build failures
+    on zero archs (ia64, powerpc).
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 13 Sep 2008 11:48:44 +0200
+
+openjdk-6 (6b12~pre1-0ubuntu1) intrepid; urgency=low
+
+  * New code drop (b12).
+  * Update IcedTea build infrastructure (20080912).
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 13 Sep 2008 00:41:42 +0200
+
+openjdk-6 (6b11-6) unstable; urgency=low
+
+  * Set minimum heap size independent of available memory for cacao builds.
+  * Link the wrapper tools with -rdynamic for cacao builds.
+  * Update cacao based builds:
+    - Update cacao to 0.99.3, remove patches applied upstream.
+    - Fix build failures on mipsel-linux.
+  * Allow setting of the bootstrap compiler per architecture.
+  * Configure --with-alt-jar set to fastjar to speed up builds.
+  * Update IcedTea build infrastructure (20080815), remove local patches
+    integrated in IcedTea.
+    - Make use of unsigned/signed types explicit.
+    - Fix PR icedtea/184, adding support for returning floats and doubles
+      for zero builds.
+    - Fix Fix PR icedtea/181, class type checks.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 15 Aug 2008 16:59:48 +0000
+
+openjdk-6 (6b11-5) unstable; urgency=low
+
+  * debian/rules (stamps/mauve-build): Configure with --host and --build.
+  * openjdk-6-jdk: Recommend libxt-dev (jawt_md.h header includes).
+  * Fix build issues on s390 (size_t is unsigned long).
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 03 Aug 2008 20:05:44 +0200
+
+openjdk-6 (6b11-4) unstable; urgency=low
+
+  * Update IcedTea build infrastructure (20080801).
+    - Fix typo, causing build failure on mipsel.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 01 Aug 2008 01:25:51 +0200
+
+openjdk-6 (6b11-3) unstable; urgency=low
+
+  * Include the name of the VM used in the package description.
+  * Update IcedTea build infrastructure (20080731).
+  * Build for alpha, arm, mips and mipsel.
+  * Switch from libcupsys2(-dev) to libcups2(-dev) for newer releases.
+    (Closes: #492384)
+  * Add symlinks for header files found in JAVA_HOME/include/linux in
+    JAVA_HOME/include.
+  * openjdk-6-jre: Don' recommend lesstif2 anymore.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 31 Jul 2008 17:16:59 +0200
+
+openjdk-6 (6b11-2ubuntu1) intrepid; urgency=low
+
+  * xvfb seems to be broken when running with intrepid and an intrepid kernel.
+    Nevertheless, run xvfb-run -s "-extension GLX" on the buildds (hardy kernels).
+  * Stop the buildwatch process after the testsuite finishes.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 25 Jul 2008 12:33:44 +0200
+
+openjdk-6 (6b11-2) unstable; urgency=low
+
+  * Update IcedTea build infrastructure (20080724).
+  * debian/buildwatch.sh: Track long building files with no visible output.
+  * Fix build failure when not running the mauve testsuite.
+  * Disable running the testsuite for cacao builds (leaving processes around).
+  * Don't set a soversion for the cacao libjvm.
+  * Configure with --host and --build.
+  * Call xvfb-run with -s "-extension GLX".
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 24 Jul 2008 22:25:30 +0200
+
+openjdk-6 (6b11-1ubuntu2) intrepid; urgency=low
+
+  * Update IcedTea build infrastructure (20080724).
+  * debian/buildwatch.sh: Track long building files with no visible output.
+  * Fix build failure when not running the mauve testsuite.
+  * Disable running the testsuite for cacao builds (leaving processes around).
+  * Don't set a soversion for the cacao libjvm.
+  * Configure with --host and --build.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 24 Jul 2008 17:58:53 +0200
+
+openjdk-6 (6b11-1ubuntu1) intrepid; urgency=low
+
+  * Regenerate the control file.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 23 Jul 2008 00:42:16 +0200
+
+openjdk-6 (6b11-1) unstable; urgency=low
+
+  * New code drop (b11).
+  * Update IcedTea build infrastructure (20080721).
+  * debian/generate-dfsg.sh: Update for b11.
+  * debian/patches/const_strings.patch, debian/patches/issue-6659207.diff:
+    Remove, applied upstream.
+  * debian/generate-debian-orig.sh: Fix /proc check.
+  * debian/control.in: Loosen dependency of -jre-lib on -jre.
+  * Support `nodocs' in DEB_BUILD_OPTIONS.
+  * Remove build-dependency on lesstif2-dev.
+  * Bootstrap using gcj on all archs; the 6b10dfsg-2 packages are broken.
+  * Run the jtreg harness in a virtual X environment.
+  * Install javazic.jar in the jre-lib package.
+  * Don't run the testsuite on arm; the build already takes days; only
+    run the testsuite on hotspot archs and powerpc.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 23 Jul 2008 00:28:12 +0200
+
+openjdk-6 (6b10dfsg-2) unstable; urgency=low
+
+  * Update IcedTea build infrastructure (20080714).
+  * On arm configure cacao builds with --enable-softfloat.
+  * Don't run the mauve testsuite for cacao builds (hangs the test runner
+    process).
+  * Don't configure cacao builds with --enable/-disable-zero.
+  * Don't remove alternatives on upgrade.
+  * debian/copyright: Add license for NanoXML.
+  * Do recommends ttf-indic-fonts instead of ttf-indic-fonts-core for
+    lenny and sid. Closes: #490619.
+  * Ignore errors when registering the jar binfmt. The alternative may
+    already be registered by another JVM. Closes: #490594.
+  * openjdk-6-jre-headless: Depend on ttf-dejavu-core instead of ttf-dejavu.
+  * On amd64, i386 and sparc, bootstrap using openjdk.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 14 Jul 2008 19:41:19 +0200
+
+openjdk-6 (6b10dfsg-1ubuntu2) intrepid; urgency=low
+
+  * Update IcedTea build infrastructure (20080702).
+    - Do not configure --with-shark by default.
+    - Update license headers from jdk7.
+  * Start debian/buildwatch.sh for armel and sparc builds as well.
+  * Allow configuration with --with-cacao.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 30 Jun 2008 13:30:06 +0200
+
+openjdk-6 (6b10dfsg-1ubuntu1) intrepid; urgency=low
+
+  * The rebuilt upstream tarball now has GPL-compatible free software licenses
+    and documented copyrights and licenses. LP: #238569.
+  * Fixed name of the xulrunner-1.9-javaplugin.so in the .jinfo file.
+    LP: #226911.
+  * Ignore errors during activation of class data sharing. Closes: #490617,
+    #490672.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 30 Jun 2008 13:30:06 +0200
+
+openjdk-6 (6b10dfsg-1) unstable; urgency=low
+
+  * Rebuild the upstream tar ball:
+    - Remove the jscheme jar files.
+    - Apply the patch from Iris Clark (Sun) for the copyright headers
+      (http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=141#c4).
+    - Remove jdk/src/share/classes/java/lang/instrument/package.html.
+    - Upload to main.
+  * Update IcedTea build infrastructure (20080628).
+  * Build an openjdk-6-dbg package.
+  * patches/gcc-mtune-generic.diff: Fix typo.
+  * openjdk-6-jre: Depend on ttf-dejavu.
+  * debian/copyright: Add two more copyright holders, not directly
+    mentioned in the third party readme.
+    Replace Apache 2.0 license with pointer to common-licenses.
+  * Fix more lintian warnings.
+  * debian/sun_java_app.xpm: Downsize icon to 32x32 pixels.
+  * Build-depend/depend on rhino.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 29 Jun 2008 17:42:51 +0200
+
+openjdk-6 (6b10-1) unstable; urgency=low
+
+  * New code drop (b10).
+    - Still some non-compliant license headers found in
+      openjdk/corba/src/share/classes/com/sun/tools/corba/se/idl.
+    - Upload to non-free.
+  * Update IcedTea build infrastructure (20080603).
+  * In fontconfig.properties, fix Korean font names and add paths to the Luxi
+    fonts for Motif. Add fonts for Indic languages.
+  * Install compilefontconfig.jar in openjdk-6-jre-lib package.
+  * Run the testsuites of hotspot, langtools and jdk.
+  * Include the jscheme-5.0 sources in the tarball, mention the jscheme
+    licenses in debian/copyright.
+  * Use the certificates provided by the ca-certificates-java package.
+  * More fontconfig updates (Arne Goetje).
+  * Fix some lintian warnings.
+  * Correct build-dependency for openjdk based bootstraps.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 04 Jun 2008 01:46:52 +0200
+
+openjdk-6 (6b09-1~pre1) unstable; urgency=low
+
+  [ Matthias Klose ]
+  * New code drop (b09).
+  * Update IcedTea build infrastructure (20080528).
+    - Add missing color profiles. LP: #225174.
+    - Moved system properties defined in hotspot to TrustManagerFactoryImpl.
+      LP: #224455.
+  * 6636469_v4.diff: Remove, committed in IcedTea.
+  * debian/control: Update Vcs-* attributes.
+  * debian/JB-jre-headless.p*.in: Fix update-binfmts calls.
+  * Compress the man pages, fixing the slave symlinks of the alternatives.
+  * javaws.desktop: Add `%u' to the Exec key, remove -viewer option.
+  * openjdk-6-jre-headless: Recommends libnss-mdns.
+  * openjdk-6-jre-headless: Warn about unmounted /proc file system.
+  * debian/JB-jre.mime.in: Remove the -viewer option from command (Tan Rui
+    Boon).
+  * Add a `docs' symlink pointing to /usr/share/doc/openjdk-6.  LP: #218405.
+  * Set maintainer to the team list.
+  * Add copyright notices for patches and generated files.
+  * Add helper scripts to modify upstream tarball and generate the debian
+    tarball.
+  * Fix names for browser alternatives in jinfo file, set browser_plugin_dirs
+    unconditionally.
+  * Recommend the ttf-wqy-zenhei font instead of ttf-arphic-uming, if the
+    latter is available in Truetype Collection (TTC) format only, add the
+    fontconfig changes as a patch.
+  * Make the cjk font packages configurable in the control file.
+  * Use GCC-4.3 on all platforms where available.
+  * Install a config file swing.properties, allowing a user to change
+    the default look and feel. LP: #229112.
+  * When trying to determine the executable name reading /proc/self/exe,
+    discard known prefixes used for unionfs mounts. LP: #224110.
+  * Explicitely configure with --disable-zero on hotspot architectures.
+  * Add fix for issue 6659207, access violation in CompilerThread0.
+    Addresses #478560. Needs checking: LP: #229207.
+  * Disable building the docs on ia64, powerpc and sparc, we don't build
+    architecture independent packages on these architectures.
+  * Explicitely configure --with-parallel-jobs, needed by the updated IcedTea.
+  * Backport the linux-sparc patches, enable building on sparc. LP: #154080.
+  * Don't use an absolute path calling the compiler.
+  * Replace the OpenJDK version in desktop and menu files.
+  * Install menu files.
+  * Install openjdk-6-java.desktop in -jre, instead of -jre-headless.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 14 May 2008 08:49:54 +0200
+
+openjdk-6 (6b08-1) unstable; urgency=low
+
+  [ Torsten Werner ]
+  * first upload to Debian (Closes: #452750)
+  * Regenerate debian/control.
+  * Switch to bzip2 package compression in Debian but leave lzma compression
+    in Ubuntu.
+  * Temporarily downgrade Depends: tzdata-java to Recommends until the package
+    becomes available in Debian.
+  * Add myself to Uploaders.
+  * Do not install extras license file in openjdk-6-jre-lib.
+  * Add patch shebang.diff to fix a lintian warning.
+  * Install openjdk-6-java.desktop into the correct binary package.
+  * Improve some package descriptions.
+  * Remove some empty directories from binary packages.
+  * Install README.Debian in every binary package and give it some useful
+    content.
+  * Install java-rmi.cgi in package openjdk-6-jre-headless and mention it in
+    README.Debian.
+  * Install /usr/bin/jexec via update-alternatives.
+  * Downgrade Depends: java-common (>= 0.28).
+  * Add patch jexec.diff to make the jexec binary executable without
+    specifying an absolute path.
+  * Add Build-Depends: xauth and xfonts-base for mauve.
+  * Update and install the lintian override files.
+  * Replace all occurences of binary:Version and source:Version by
+    Source-Version to be compatible with Ubuntu release 6.06.
+  * Remove Conflicts: gcjwebplugin.
+
+  [ Michael Koch ]
+  * Fixed Vcs-Bzr and Vcs-Browser fields.
+  * Removed Encoding entry from all debian/*.desktop.in files.
+
+  [ Matthias Klose ]
+  * Make Java Full Screen Exclusive Mode work again with Xorg Server 1.3
+    and above (Dan Munckton). LP: #154613 (Java bug 6636469).
+  * Configure with --enable-zero on all archs except amd64, i386, lpia.
+  * Update IcedTea build infrastructure.
+  * Handle binary files in updates of the build infrastructure.
+  * Enable bootstrap/normal builds per architecture.
+  * javaws-wrapper.sh: Use readlink --canonicalize. LP: #211515.
+  * binfmt-support: Handle /usr/share/binfmts/jar as a slave symlink of
+    the jexec alternative, install the binfmt file in the jre libdir.
+    Use the jexec alternative in the binfmt file.
+  * JB-jre-headless.postinst.in: Remove sun-java6 specific chunks.
+  * Differentiate between the openjdk version required as dependency and
+    as build dependency.
+
+ -- Torsten Werner <twerner@debian.org>  Wed, 09 Apr 2008 10:12:55 +0200
+
+openjdk-6 (6b08-0ubuntu1) hardy; urgency=low
+
+  * New code drop (b08).
+  * Update IcedTea build infrastructure.
+  * Move binfmt-support references from -jre to -jre-headless package.
+  * Don't fail on purge, if /var/lib/binfmts/openjdk-6 is missing. LP: #206721.
+  * Only use the basename for icons in desktop files. LP: #207413.
+  * Install javaws(1). LP: #191297.
+  * Install a wrapper script for javaws, which calls `javaws -viewer' if no
+    arguments are given (or else starting javaws from the desktop menu
+    would not do anything).
+  * debian/JB-web-start.applications.in: Remove the -viewer option from command.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 28 Mar 2008 16:10:32 +0000
+
+openjdk-6 (6b07-0ubuntu1) hardy; urgency=low
+
+  * New code drop (b07).
+  * Update IcedTea build infrastructure.
+  * debian/copyright: Update to OpenJDK Trademark Notice v1.1.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 22 Mar 2008 22:41:42 +0100
+
+openjdk-6 (6b06-0ubuntu12) hardy; urgency=low
+
+  * Update icon locations in menu files.
+  * openjdk-6-jre-headless: Provide java-virtual-machine. LP: #189953.
+  * openjdk-6-jre-headless: Add a conflict to gcjwebplugin; for openjdk
+    use the icetea-gcjwebplugin, for gij the java-gcj-compat-plugin.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 22 Mar 2008 20:12:41 +0100
+
+openjdk-6 (6b06-0ubuntu11) hardy; urgency=low
+
+  * Update IcedTea to 20080319.
+  * Move rt.jar into the openjdk-6-jre-headless package; sun/awt/X11
+    class files differ between amd64 and i386.
+  * Install all desktop files in /usr/share/applications.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 19 Mar 2008 23:53:36 +0100
+
+openjdk-6 (6b06-0ubuntu10) hardy; urgency=low
+
+  * Remove print-lsb-release.patch, forwarded to IcedTea.
+  * Fix IcedTea configure to detect libffi without pkg-config.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 12 Mar 2008 20:28:55 +0100
+
+openjdk-6 (6b06-0ubuntu9) hardy; urgency=low
+
+  * Build-depend on libffi4-dev on architectures other than amd64, i386, lpia.
+  * Install icons in /usr/share/pixmaps, not /usr/share/icons.
+  * debian/rules: Call dh_icons.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 12 Mar 2008 11:34:44 +0100
+
+openjdk-6 (6b06-0ubuntu8) hardy; urgency=low
+
+  * Tighten dependency on java-common.
+  * debian/copyright: Include trademark notice.
+  * debian/control: Mention IcedTea in the package descriptions.
+  * Update IcedTea to 20080311.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 11 Mar 2008 21:39:27 +0100
+
+openjdk-6 (6b06-0ubuntu7) hardy; urgency=low
+
+  * Build-depend on unzip.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 07 Mar 2008 16:47:43 +0100
+
+openjdk-6 (6b06-0ubuntu6) hardy; urgency=low
+
+  * Build-depend on zip.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 07 Mar 2008 16:16:52 +0100
+
+openjdk-6 (6b06-0ubuntu5) hardy; urgency=low
+
+  * debian/mauve_tests: javax.swing.text.html.HTML.ElementTagAttributeTest,
+    removed, tries to access the network.
+  * debian/README.alternatives.in: Update for --jre-headless.
+  * debian/rules: Fix paths for OpenJDK based bootstrap.
+  * Compress packages using lzma.
+  * Drop build dependency on zip, unzip.
+  * Fix build infrastructure to bootstrap with OpenJDK instead of ecj.
+  * Do not build the gcjwebplugin from the OpenJDK source.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 07 Mar 2008 13:53:15 +0100
+
+openjdk-6 (6b06-0ubuntu4) hardy; urgency=low
+
+  * Don't register a java-rmi.cgi alternative in /usr/bin.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 06 Mar 2008 17:59:35 +0100
+
+openjdk-6 (6b06-0ubuntu3) hardy; urgency=low
+
+  * Split out a openjdk-6-jre-headless package, depend on java-common,
+    supporting update-java-alternatives --jre-headless.
+  * Make openjdk-6-jre-headless and openjdk-6-jre architecture any.
+  * New package openjdk-6-jre-lib (arch all).
+  * Remove openjdk-6-bin package.
+  * debian/patches/openjdk-ubuntu-branding.patch: New patch.
+  * Install images/cursors/cursors.properties as a config file.
+  * Do not compress demos and examples in the -demo package.
+  * openjdk-6-jre: Add dependency on libxinerama1.
+  * Update IcedTea to 20080305.
+  * Don't generate cacerts ourself, but depend on ca-certificates,
+    fix location of javax.net.ssl.trustStore property.
+  * Build-depend on mauve and xvfb; run some mauve tests (the list of
+    tests taken from the Fedora package).
+  * Keep a backup of the `generated' directory; some files are regenerated
+    differently, increasing the size of the diff.
+  
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 06 Mar 2008 10:05:39 +0100
+
+openjdk-6 (6b06-0ubuntu2) hardy; urgency=low
+
+  * Re-add gawk and pkg-config as build dependencies.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 04 Mar 2008 12:20:21 +0100
+
+openjdk-6 (6b06-0ubuntu1) hardy; urgency=low
+
+  * New code drop (b06).
+  * Remove java-access-bridge tarball, use an externally built package.
+  * Update IcedTea to 20080304.
+  * Don't use any compiler flags from the environment.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 04 Mar 2008 09:16:59 +0100
+
+openjdk-6 (6b05-0ubuntu1) hardy; urgency=low
+
+  * First public OpenJDK upstream code drop (b05).
+  * Depend on tzdata-java.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 29 Feb 2008 19:05:42 +0100
+
+icedtea-java7 (7~b24-1.5+20080118-2) UNRELEASED; urgency=low
+
+  * Fix removal of alternatives. 
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 26 Jan 2008 18:41:40 +0100
+
+icedtea-java7 (7~b24-1.5+20080118-1) hardy; urgency=low
+
+  * Fix installation of the plugin for firefox-3.0.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 19 Jan 2008 15:10:18 +0100
+
+icedtea-java7 (7~b24-1.5+20080118-1~ppa1) hardy; urgency=low
+
+  * Update IcedTea to 20080118.
+  * Fix another build failure when gcc version != gcj version.
+  * Use the versioned compiler to build the corba parts.
+  * Register plugin for firefox-3.0.
+  * Build using GCC-4.3.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 18 Jan 2008 21:15:08 +0100
+
+icedtea-java7 (7~b24-1.5-2) UNRELEASED; urgency=low
+
+  * First upload to Debian. Closes: #452750.
+  * debian/control.in:
+    - Moved package from universe/devel section to devel.
+    - Put icedtea-java7-doc into doc section.
+    - Added Homepage field and removed Homepage pseudo field from
+      descriptions.
+    - Updated Standards-Version to 3.7.3.
+  * debian/rules:
+    - Check if Makefile exists before called clean in clean target.
+  * debian/copyright: Converted to UTF-8.
+
+ -- Michael Koch <konqueror@gmx.de>  Sat, 05 Jan 2008 13:34:46 -0100
+
+icedtea-java7 (7~b24-1.5-1) hardy; urgency=low
+
+  * Update to IcedTea-1.5.
+  * debian/patches/ssp-interpreter.diff: Use bash to call the ssp script,
+    backslash handling differs betweend dash and bash.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 04 Jan 2008 09:58:27 +0100
+
+icedtea-java7 (7~b24-1.5~20071214-1) hardy; urgency=low
+
+  * New upstream snapshot (b24).
+  * Update java-access-bridge to 1.21.1.
+  * On powerpc keep the build alive using buildwatch script.
+  * Do not install menu entries for javaws, ControlPanel. LP: #155553, #156673.
+  * README.alternatives: Fix example. LP: #157063.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 14 Dec 2007 11:09:22 +0100
+
+icedtea-java7 (7~b23-1.5~20071124-4) hardy; urgency=low
+
+  * Allow libungif4-dev as alternative build dependency.
+  * On powerpc keep the build alive using buildwatch script.
+  * Always build the plugin using libxul-dev.
+
+ -- Matthias Klose <doko@ubuntu.com>  Mon, 10 Dec 2007 15:20:16 +0100
+
+icedtea-java7 (7~b23-1.5~20071124-3) hardy; urgency=low
+
+  * Lower optimization to -O2 for building the jdk on amd64.
+  * Reenable parallel build.
+  * Link using -Bsymbolic-functions.
+  * debian/patches/arguments.patch, debian/patches/const_strings.patch:
+    New patches (Arnaud Vandyck).
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu, 29 Nov 2007 18:50:41 +0100
+
+icedtea-java7 (7~b23-1.5~20071124-2) hardy; urgency=low
+
+  * Bootstrap using ecj/gcj.
+  * Build using g++-4.1 on i386, lpia, powerpc.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 28 Nov 2007 14:46:48 +0000
+
+icedtea-java7 (7~b23-1.5~20071124-1) hardy; urgency=low
+
+  * New upstream snapshot (b23).
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 27 Nov 2007 15:48:08 +0100
+
+icedtea-java7 (7~b22-1.5~20071018-0ubuntu3) hardy; urgency=low
+
+  * Revert the previous change, require 7~b22 versions again. 
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 20 Oct 2007 14:33:26 +0000
+
+icedtea-java7 (7~b22-1.5~20071018-0ubuntu2) hardy; urgency=low
+
+  * Loosen dependencies to 7~b21, until package is built on all archs.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sat, 20 Oct 2007 07:48:36 +0000
+
+icedtea-java7 (7~b22-1.5~20071018-0ubuntu1) hardy; urgency=low
+
+  * New upstream snapshot (b22).
+  * Don't use parallel builds to make the build log better comparable.
+
+ -- Matthias Klose <doko@ubuntu.com>  Fri, 19 Oct 2007 19:49:51 +0200
+
+icedtea-java7 (7~b21-1.4+20071007-0ubuntu5) gutsy; urgency=low
+
+  * Update icedtea to vcs 20071012 (1.4 release), checked that the plugin
+    works on amd64.
+  * debian/copyright: Update "License Headers" section.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun, 14 Oct 2007 19:55:12 +0200
+
+icedtea-java7 (7~b21-1.4+20071007-0ubuntu4) gutsy; urgency=low
+
+  * Bootstrapping trigger upload for final step of bootstrapping i386, amd64,
+    lpia.
+
+ -- LaMont Jones <lamont@ubuntu.com>  Wed, 10 Oct 2007 22:04:25 -0600
+
+icedtea-java7 (7~b21-1.4+20071007-0ubuntu3) gutsy; urgency=low
+
+  * Add build dependency on bzip2.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 10 Oct 2007 09:00:40 +0000
+
+icedtea-java7 (7~b21-1.4+20071007-0ubuntu2) gutsy; urgency=low
+
+  * Add build dependency on ant.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 10 Oct 2007 06:33:14 +0000
+
+icedtea-java7 (7~b21-1.4+20071007-0ubuntu1) gutsy; urgency=low
+
+  * Update icedtea to vcs 20071007.
+  * Update java-access-bridge to 1.20.0.
+  * Add build-dependency on libxinerama-dev.
+  * Add Xb-Npp-xxx tags for the -plugin package.
+  * Name the plugin "GCJ Web Browser Plugin (using IcedTea)", GCJ now
+    "Great Cool Java" (according to Michael Koch).
+  * Compress binary-indep packages using bzip2.
+
+ -- Matthias Klose <doko@ubuntu.com>  Sun,  7 Oct 2007 23:43:28 +0200
+
+icedtea-java7 (7~b21-1.4+20071002-0ubuntu2) gutsy; urgency=low
+
+  * Rebuild using icedtea 7~b21.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 02 Oct 2007 19:45:21 +0200
+
+icedtea-java7 (7~b21-1.4+20071002-0ubuntu1) gutsy; urgency=low
+
+  * New upstream snapshot (b21).
+  * Correctly unregister the executable binary format in the -bin package.
+  * Assemble the debian/copyright file.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue,  2 Oct 2007 09:59:37 +0200
+
+icedtea-java7 (7~b19-1.3+20070905-0ubuntu1) gutsy; urgency=low
+
+  * New upstream snapshot (b19).
+  * Build using g++-4.2 on amd64, using g++-4.1 on i386 and lpia.
+  * Build without -Werror, upstream source is not yet warning clean.
+  * Support DEB_BUILD_OPTIONS=parallel=<n>.
+  * Add build dependency on wget.
+  * Add font suggestions.
+  * Changed font configuration to fix CJK font support (Arne Goetje).
+  * Fix location of the plugin, when registering the plugin alternatives.
+
+ -- Matthias Klose <doko@ubuntu.com>  Thu,  6 Sep 2007 00:46:40 +0200
+
+icedtea-java7 (7~b18-1.2+20070822-0ubuntu2) gutsy; urgency=low
+
+  * Create browser plugin directories.
+  * Build-depend on liblcms1-dev.
+  * Recommend packages with dlopened libraries: liblcms1, lesstif2, libcupsys2,
+    libgtk2.0-0, libgnome2-0, libgnomevfs2-0, libgconf2-4, libxrandr2,
+    libgl1-mesa-glx.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 21 Aug 2007 17:21:00 +0200
+
+icedtea-java7 (7~b18-1.2+20070822-0ubuntu1) gutsy; urgency=low
+
+  * New upstream version.
+  * Include java-access-bridge.
+  * Build -doc, -plugin packages.
+  * Register alternatives, priority 1060.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 21 Aug 2007 17:21:00 +0200
+
+icedtea-java7 (7~b17-1.2+20070808-1) gutsy; urgency=low
+
+  * Initial release, discard the initial packaging based on cdbs.
+  * Base the packaging on the sun-javaX packages.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 08 Aug 2007 15:55:39 +0200
+
+icedtea (7~b16-20070724-1) UNRELEASED; urgency=low
+
+  * Update upstream tarball to 7~b16, update icedtea to 20070724.
+  * debian/control: Build-depend on libfreetype6-dev.
+  * debian/rules: Configure --with-jar=/usr/bin/fastjar.
+  * Build using gcj-4.2.
+
+ -- Matthias Klose <doko@ubuntu.com>  Tue, 24 Jul 2007 11:24:55 +0200
+
+icedtea (7~b14-20070704-1) unstable; urgency=low
+
+  * Initial version.
+
+ -- Michael Koch <konqueror@gmx.de>  Wed, 04 Jul 2007 08:25:31 -0100
+
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..322be5e
--- /dev/null
@@ -0,0 +1,172 @@
+Source: openjdk-8
+Section: java
+Priority: optional
+Maintainer: OpenJDK Team <openjdk@lists.launchpad.net>
+Uploaders: Matthias Klose <doko@ubuntu.com>, Damien Raude-Morvan <drazzib@debian.org>
+Build-Depends: debhelper (>= 5), quilt, m4, lsb-release, zip, unzip,
+  sharutils, gawk, cpio, pkg-config, procps, time, wdiff, fastjar (>= 2:0.96-0ubuntu2),
+  autoconf, automake, autotools-dev, ant, ant-optional,  libtool,
+  g++-4.9,
+  openjdk-7-jdk | openjdk-8-jdk,
+  libxtst-dev, libxi-dev, libxt-dev, libxaw7-dev, libxrender-dev, libcups2-dev, libasound2-dev, liblcms2-dev, libfreetype6-dev (>= 2.2.1), libgtk2.0-dev, libxinerama-dev, libkrb5-dev, xsltproc, libpcsclite-dev,
+  libffi-dev, 
+  zlib1g-dev, libattr1-dev, libpng-dev, libjpeg8-dev, libgif-dev, libpulse-dev (>= 0.9.12), libnss3-dev (>= 2:3.13.5), systemtap-sdt-dev,
+  mauve, jtreg, xvfb, xauth, xfonts-base, libgl1-mesa-dri [!x32], twm | metacity, twm | dbus-x11, x11-xkb-utils,
+Standards-Version: 3.9.5
+Homepage: http://openjdk.java.net/
+Vcs-Bzr: http://bazaar.launchpad.net/~openjdk/openjdk/openjdk8
+Vcs-Browser: https://code.launchpad.net/~openjdk/openjdk/openjdk8
+
+Package: openjdk-8-jdk
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 lpia mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
+Multi-Arch: same
+Pre-Depends: ${dpkg:Depends}
+Depends: openjdk-8-jre (= ${binary:Version}),
+  ${shlibs:Depends}, ${misc:Depends}
+Recommends: libxt-dev
+Suggests: openjdk-8-demo, openjdk-8-source, visualvm
+Provides: java-sdk, java2-sdk, java5-sdk, java6-sdk,
+  java7-jdk, java8-jdk, java-compiler
+Description: OpenJDK Development Kit (JDK)
+ OpenJDK is a development environment for building applications,
+ applets, and components using the Java programming language.
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: openjdk-8-jre-headless
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 lpia mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
+Multi-Arch: same
+Pre-Depends: ${dpkg:Depends}, ${multiarch:Depends}
+Depends: ${jredefault:Depends}, ${cacert:Depends},
+  ${tzdata:Depends}, ${jcommon:Depends}, ${dlopenhl:Depends},
+  ${shlibs:Depends}, ${misc:Depends}
+Recommends: ${dlopenhl:Recommends}, ${jamvm:Recommends}
+Suggests: ${cacao:Recommends}, ${jamvm:Suggests},
+  libnss-mdns,
+  fonts-dejavu-extra,
+  fonts-ipafont-gothic, fonts-ipafont-mincho, ttf-wqy-microhei | ttf-wqy-zenhei, fonts-indic,
+Provides: java-runtime-headless, java2-runtime-headless,
+  java5-runtime-headless, java6-runtime-headless,
+  java7-runtime-headless, java8-runtime-headless,
+  ${defaultvm:Provides}, ${jvm:Provides}
+Description: OpenJDK Java runtime, using ${vm:Name} (headless)
+ Minimal Java runtime - needed for executing non GUI Java programs.
+ Using ${vm:Name}.
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: openjdk-8-jre
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 lpia mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
+Multi-Arch: same
+Pre-Depends: ${dpkg:Depends}
+Depends: openjdk-8-jre-headless (= ${binary:Version}),
+  ${xandsound:Depends},
+  ${dlopenjre:Depends}, ${dep:bridge},
+  ${shlibs:Depends}, ${misc:Depends}
+Recommends: ${dlopenjre:Recommends}, fonts-dejavu-extra
+Suggests: icedtea-8-plugin, ${pkg:pulseaudio}
+Replaces: openjdk-8-jre-headless (<< 8u20~b20-3)
+Provides: java-runtime, java2-runtime,
+  java5-runtime, java6-runtime,
+  java7-runtime, java8-runtime
+Description: OpenJDK Java runtime, using ${vm:Name}
+ Full Java runtime environment - needed for executing Java GUI and Webstart
+ programs. Using ${vm:Name}.
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: openjdk-8-demo
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 lpia mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
+Priority: extra
+Pre-Depends: ${dpkg:Depends}
+Depends: openjdk-8-jre (= ${binary:Version}),
+  ${shlibs:Depends}, ${misc:Depends}
+Description: Java runtime based on OpenJDK (demos and examples)
+ OpenJDK Java runtime
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: openjdk-8-source
+Architecture: all
+Priority: extra
+Pre-Depends: ${dpkg:Depends}
+Depends: openjdk-8-jre (>= ${source:Version}),
+  openjdk-8-jdk (>= ${binary:Version}),
+  ${misc:Depends}
+Replaces: openjdk-8-jdk (<< 8u20~b26-1~)
+Description: OpenJDK Development Kit (JDK) source files
+ OpenJDK is a development environment for building applications,
+ applets, and components using the Java programming language.
+ .
+ This package contains the Java programming language source files
+ (src.zip) for all classes that make up the Java core API.
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: openjdk-8-doc
+Section: doc
+Pre-Depends: ${dpkg:Depends}
+Architecture: all
+Priority: extra
+Depends: ${misc:Depends}
+Suggests: openjdk-8-jdk
+Description: OpenJDK Development Kit (JDK) documentation
+ OpenJDK is a development environment for building applications,
+ applets, and components using the Java programming language.
+ .
+ This package contains the API documentation.
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: openjdk-8-dbg
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 lpia mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
+Multi-Arch: same
+Priority: extra
+Section: debug
+Pre-Depends: ${dpkg:Depends}
+Depends: openjdk-8-jre-headless (= ${binary:Version}),
+   ${misc:Depends}
+Recommends: openjdk-8-jre (= ${binary:Version})
+Suggests: openjdk-8-jdk (= ${binary:Version})
+Description: Java runtime based on OpenJDK (debugging symbols)
+ OpenJDK is a development environment for building applications,
+ applets, and components using the Java programming language.
+ .
+ This package contains the debugging symbols.
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: openjdk-8-jre-jamvm
+Architecture: amd64 armel armhf i386 lpia mips mipsel powerpc kfreebsd-i386 kfreebsd-amd64
+Multi-Arch: same
+Priority: extra
+Pre-Depends: ${dpkg:Depends}
+Depends: openjdk-8-jre-headless (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Description: Alternative JVM for OpenJDK, using JamVM
+ The package provides an alternative runtime using the JamVM.  This is a
+ somewhat faster alternative than the Zero port on architectures like armel,
+ mips, mipsel, powerpc.
+ .
+ The VM is started with the option `-jamvm'. See the README.Debian for details.
+
+Package: openjdk-8-jre-zero
+Architecture: amd64 i386 arm64 lpia ppc64 ppc64el kfreebsd-amd64 kfreebsd-i386 
+Multi-Arch: same
+Priority: extra
+Pre-Depends: ${dpkg:Depends}
+Depends: openjdk-8-jre-headless (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Provides: ${zerovm:Provides}
+Description: Alternative JVM for OpenJDK, using Zero/Shark
+ The package provides an alternative runtime using the Zero VM and the 
+ Shark Just In Time Compiler (JIT).  Built on architectures in addition
+ to the Hotspot VM as a debugging aid for those architectures which don't
+ have a Hotspot VM.
+ .
+ The VM is started with the option `-zero'. See the README.Debian for details.
diff --git a/debian/control.cacao-jre b/debian/control.cacao-jre
new file mode 100644 (file)
index 0000000..09fc2a0
--- /dev/null
@@ -0,0 +1,15 @@
+
+Package: openjdk-8-jre-cacao
+Architecture: @cacao_archs@
+Multi-Arch: same
+Priority: extra
+Pre-Depends: ${dpkg:Depends}
+Depends: @basename@-jre-headless (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Provides: icedtea6-jre-cacao
+Description: Alternative JVM for OpenJDK, using Cacao
+ The package provides an alternative runtime using the Cacao VM and the 
+ Cacao Just In Time Compiler (JIT).  This is a somewhat faster alternative
+ than the Zero port on architectures like alpha, armel, m68k, mips, mipsel,
+ powerpc and s390.
+ .
+ The VM is started with the option `-cacao'. See the README.Debian for details.
diff --git a/debian/control.in b/debian/control.in
new file mode 100644 (file)
index 0000000..691b9e2
--- /dev/null
@@ -0,0 +1,144 @@
+Source: @basename@
+Section: java
+Priority: optional
+Maintainer: OpenJDK Team <openjdk@lists.launchpad.net>
+Uploaders: Matthias Klose <doko@ubuntu.com>, Damien Raude-Morvan <drazzib@debian.org>
+Build-Depends: debhelper (>= 5), quilt, m4, lsb-release, zip, unzip,
+  sharutils, gawk, cpio, pkg-config, procps, time, wdiff, @bd_fastjar@
+  @bd_autotools@ @bd_ant@ @bd_cacao@ @bd_jamvm@
+  @bd_gcc@
+  @bd_bootstrap@
+  @bd_openjdk@
+  @bd_zero@ @bd_shark@
+  @bd_syslibs@ @bd_pulsejava@ @bd_nss@ @bd_systemtap@
+  @bd_mauve@ jtreg, @bd_xvfb@
+Standards-Version: 3.9.5
+Homepage: http://openjdk.java.net/
+Vcs-Bzr: http://bazaar.launchpad.net/~openjdk/openjdk/openjdk8
+Vcs-Browser: https://code.launchpad.net/~openjdk/openjdk/openjdk8
+
+Package: @basename@-jdk
+Architecture: @any_archs@
+Multi-Arch: same
+Pre-Depends: ${dpkg:Depends}
+Depends: @basename@-jre (= ${binary:Version}),
+  ${shlibs:Depends}, ${misc:Depends}
+Recommends: libxt-dev
+Suggests: @basename@-demo, @basename@-source, visualvm
+Provides: java-sdk, java2-sdk, java5-sdk, java6-sdk,
+  java7-jdk, java8-jdk, java-compiler
+Description: OpenJDK Development Kit (JDK)
+ OpenJDK is a development environment for building applications,
+ applets, and components using the Java programming language.
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: @basename@-jre-headless
+Architecture: @any_archs@
+Multi-Arch: same
+Pre-Depends: ${dpkg:Depends}, ${multiarch:Depends}
+Depends: ${jredefault:Depends}, ${cacert:Depends},
+  ${tzdata:Depends}, ${jcommon:Depends}, ${dlopenhl:Depends},
+  ${shlibs:Depends}, ${misc:Depends}
+Recommends: ${dlopenhl:Recommends}, ${jamvm:Recommends}
+Suggests: ${cacao:Recommends}, ${jamvm:Suggests},
+  libnss-mdns,
+  @core_fonts@,
+  @cjk_fonts@
+Provides: java-runtime-headless, java2-runtime-headless,
+  java5-runtime-headless, java6-runtime-headless,
+  java7-runtime-headless, java8-runtime-headless,
+  ${defaultvm:Provides}, ${jvm:Provides}
+Description: OpenJDK Java runtime, using ${vm:Name} (headless)
+ Minimal Java runtime - needed for executing non GUI Java programs.
+ Using ${vm:Name}.
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: @basename@-jre
+Architecture: @any_archs@
+Multi-Arch: same
+Pre-Depends: ${dpkg:Depends}
+Depends: @basename@-jre-headless (= ${binary:Version}),
+  ${xandsound:Depends},
+  ${dlopenjre:Depends}, ${dep:bridge},
+  ${shlibs:Depends}, ${misc:Depends}
+Recommends: ${dlopenjre:Recommends}, @core_fonts@
+Suggests: icedtea-8-plugin, ${pkg:pulseaudio}
+Replaces: @basename@-jre-headless (<< 8u20~b20-3)
+Provides: java-runtime, java2-runtime,
+  java5-runtime, java6-runtime,
+  java7-runtime, java8-runtime
+Description: OpenJDK Java runtime, using ${vm:Name}
+ Full Java runtime environment - needed for executing Java GUI and Webstart
+ programs. Using ${vm:Name}.
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: @basename@-demo
+Architecture: @any_archs@
+Priority: extra
+Pre-Depends: ${dpkg:Depends}
+Depends: @basename@-jre (= ${binary:Version}),
+  ${shlibs:Depends}, ${misc:Depends}
+Description: Java runtime based on OpenJDK (demos and examples)
+ OpenJDK Java runtime
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: @basename@-source
+Architecture: all
+Priority: extra
+Pre-Depends: ${dpkg:Depends}
+Depends: @basename@-jre (>= ${source:Version}),
+  @basename@-jdk (>= ${binary:Version}),
+  ${misc:Depends}
+Replaces: openjdk-8-jdk (<< 8u20~b26-1~)
+Description: OpenJDK Development Kit (JDK) source files
+ OpenJDK is a development environment for building applications,
+ applets, and components using the Java programming language.
+ .
+ This package contains the Java programming language source files
+ (src.zip) for all classes that make up the Java core API.
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: @basename@-doc
+Section: doc
+Pre-Depends: ${dpkg:Depends}
+Architecture: all
+Priority: extra
+Depends: ${misc:Depends}
+Suggests: @basename@-jdk
+Description: OpenJDK Development Kit (JDK) documentation
+ OpenJDK is a development environment for building applications,
+ applets, and components using the Java programming language.
+ .
+ This package contains the API documentation.
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
+
+Package: @basename@-dbg
+Architecture: @any_archs@
+Multi-Arch: same
+Priority: extra
+Section: debug
+Pre-Depends: ${dpkg:Depends}
+Depends: @basename@-jre-headless (= ${binary:Version}),
+   ${misc:Depends}
+Recommends: @basename@-jre (= ${binary:Version})
+Suggests: @basename@-jdk (= ${binary:Version})
+Description: Java runtime based on OpenJDK (debugging symbols)
+ OpenJDK is a development environment for building applications,
+ applets, and components using the Java programming language.
+ .
+ This package contains the debugging symbols.
+ .
+ The packages are built using the IcedTea build support and patches
+ from the IcedTea project.
diff --git a/debian/control.jamvm-jre b/debian/control.jamvm-jre
new file mode 100644 (file)
index 0000000..9a52815
--- /dev/null
@@ -0,0 +1,13 @@
+
+Package: openjdk-8-jre-jamvm
+Architecture: @jamvm_archs@
+Multi-Arch: same
+Priority: extra
+Pre-Depends: ${dpkg:Depends}
+Depends: @basename@-jre-headless (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Description: Alternative JVM for OpenJDK, using JamVM
+ The package provides an alternative runtime using the JamVM.  This is a
+ somewhat faster alternative than the Zero port on architectures like armel,
+ mips, mipsel, powerpc.
+ .
+ The VM is started with the option `-jamvm'. See the README.Debian for details.
diff --git a/debian/control.zero-jre b/debian/control.zero-jre
new file mode 100644 (file)
index 0000000..f53e372
--- /dev/null
@@ -0,0 +1,15 @@
+
+Package: @basename@-jre-zero
+Architecture: @altzero_archs@
+Multi-Arch: same
+Priority: extra
+Pre-Depends: ${dpkg:Depends}
+Depends: @basename@-jre-headless (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Provides: ${zerovm:Provides}
+Description: Alternative JVM for OpenJDK, using Zero/Shark
+ The package provides an alternative runtime using the Zero VM and the 
+ Shark Just In Time Compiler (JIT).  Built on architectures in addition
+ to the Hotspot VM as a debugging aid for those architectures which don't
+ have a Hotspot VM.
+ .
+ The VM is started with the option `-zero'. See the README.Debian for details.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..19579bb
--- /dev/null
@@ -0,0 +1,3636 @@
+This package was debianized by Matthias Klose <doko@ubuntu.com> on
+Wed, 08 Aug 2007 15:55:39 +0200.
+
+It was downloaded from
+       http://download.java.net/openjdk/jdk7/
+       http://ftp.gnome.org/pub/GNOME/sources/java-access-bridge/
+
+------------------------------------------------------------------------------
+Upstream Authors:
+
+OpenJDK:
+    Sun Microsystems, Inc.
+    Oracle and/or its affiliates.
+
+IcedTea Sound (see AUTHORS for a current list):
+    Andrew John Hughes <gnu_andrew@member.fsf.org, gnu.andrew@redhat.com>
+    Ioana Ivan <iivan@redhat.com>
+    Matthias Klose <doko@ubuntu.com>
+    Denis Lila <dlila@redhat.com>
+    Omair Majid <omajid@redhat.com>
+    Xerxes Rånby <xerxes@zafena.se>
+    Marc Schoenefeld <mschoene@redhat.com>
+    Joshua Sumali <jsumali@redhat.com>
+    Jon VanAlten <jon.vanalten@redhat.com>
+
+Java Access Bridge:
+    Bill Haneman <bill.haneman@sun.com>
+    Louise Miller
+    Gergõ Érdi <cactus@cactus.rulez.org>
+    Laszlo (Laca) Peter <laszlo.peter@sun.com>
+    Jeff Cai<jeff.cai@sun.com>
+    George Kraft IV <gk4@us.ibm.com>
+    Padraig O'Briain <padraig.obriain@sun.com>
+    Darren Kenny <darren.kenny@sun.com>
+
+Packaging:
+    Matthias Klose
+
+------------------------------------------------------------------------------
+Copyright: 
+
+OpenJDK:
+    Copyright © 1996-2007 Sun Microsystems, Inc.
+    Copyright © 1996-2014 Oracle and/or its affiliates.
+    For third party copyrights see below (copies from the third party readme).
+    Portions Copyright © 1993-2014 IBM Corp.
+    Portions Copyright © 1997 Eastman Kodak Company.
+    Portions Copyright © 1999-2005 The Apache Software Foundation.
+
+IcedTea Sound:
+    Portions Copyright © 2008-2014 Red Hat, Inc.
+
+Java Access Bridge:
+    Portions Copyright © 2002-2007 Bill Haneman <bill.haneman@sun.com>
+    Portions Copyright © 2002-2007 Louise Miller
+    Portions Copyright © 2002-2007 Gergõ Érdi <cactus@cactus.rulez.org>
+    Portions Copyright © 2002-2007 Laszlo (Laca) Peter <laszlo.peter@sun.com>
+    Portions Copyright © 2002-2007 Jeff Cai<jeff.cai@sun.com>
+    Portions Copyright © 2002-2007 George Kraft IV <gk4@us.ibm.com>
+    Portions Copyright © 2002-2007 Padraig O'Briain <padraig.obriain@sun.com>
+    Portions Copyright © 2002-2007 Darren Kenny <darren.kenny@sun.com>
+
+Packaging:
+    Copyright © 2007-2014 Canonical Ltd.
+
+------------------------------------------------------------------------------
+License:
+
+NOTE: the combined work which includes the upstream components below
+carries forward the OpenJDK Assembly Exception (text included below).
+
+Packaging:
+  Permission is hereby granted, free of charge, to any person obtaining
+  a copy of this software and associated documentation files (the
+  "Software"), to deal in the Software without restriction, including
+  without limitation the rights to use, copy, modify, merge, publish,
+  distribute, sublicense, and/or sell copies of the Software, and to
+  permit persons to whom the Software is furnished to do so, subject to
+  the following conditions:
+
+  The above copyright notice and this permission notice shall be
+  included in all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+IcedTea Sound:
+  IcedTea is licensed under the GPL v2. See `/usr/share/common-licenses/GPL-2'.
+  The exception is: "CLASSPATH" EXCEPTION TO THE GPL.
+
+  The sound files (pulseaudio/testsounds/*.wav) were taken from the KDE Project 
+  (www.kde.org). A copy of them can be obtained from 
+  http://websvn.kde.org/branches/KDE/4.0/kdeartwork/sounds/ . They are licensed 
+  by the copyright holders as GPLv2.
+
+OpenJDK:
+  OpenJDK is licensed under the GPL v2 with exceptions,
+  see `/usr/share/common-licenses/GPL-2'.
+  The exceptions are:
+   - "CLASSPATH" EXCEPTION TO THE GPL
+   - OPENJDK ASSEMBLY EXCEPTION
+  Various third party code in OpenJDK is licensed under different licenses.
+  See below (THIRD_PARTY_README).
+
+Java Access Bridge:
+  Java Access Bridge is licensed under the LGPL v2.
+  See `/usr/share/common-licenses/LGPL-2'.
+
+A Note About License Headers
+----------------------------
+
+Some sources downloaded from openjdk.java.net do not display the GPL
+license header.  Instances are:
+
+ - The files in openjdk/j2se/src/share/classes/javax/xml/stream/ seem to 
+   comprise the BEA-StAX source code
+
+   http://ftpna2.bea.com/pub/downloads/jsr173.jar
+
+   with some Sun-specific modifications.  We're assuming that Sun is
+   bundling BEA-StAX under the terms of the Apache License 2.0 and
+   that the modifications are owned by Sun.
+
+ - We are assuming that these files are owned by Sun:
+   openjdk/j2se/src/share/classes/**/resources/*.properties
+
+The downloaded sources include a script that inserts proprietary
+license headers into the source files it generates.  The script
+itself is GPL'd so we patched them to emit the GPL header. The
+file is:
+  openjdk/j2se/make/java/nio/genExceptions.sh
+
+------------------------------------------------------------------------------
+"CLASSPATH" EXCEPTION TO THE GPL
+
+Certain source files distributed by Sun Microsystems, Inc.  are subject to
+the following clarification and special exception to the GPL, but only where
+Sun has expressly included in the particular source file's header the words
+"Sun designates this particular file as subject to the "Classpath" exception
+as provided by Sun in the LICENSE file that accompanied this code."
+
+    Linking this library statically or dynamically with other modules is making
+    a combined work based on this library.  Thus, the terms and conditions of
+    the GNU General Public License cover the whole combination.
+
+    As a special exception, the copyright holders of this library give you
+    permission to link this library with independent modules to produce an
+    executable, regardless of the license terms of these independent modules,
+    and to copy and distribute the resulting executable under terms of your
+    choice, provided that you also meet, for each linked independent module,
+    the terms and conditions of the license of that module.  An independent
+    module is a module which is not derived from or based on this library.  If
+    you modify this library, you may extend this exception to your version of
+    the library, but you are not obligated to do so.  If you do not wish to do
+    so, delete this exception statement from your version.
+
+------------------------------------------------------------------------------
+OPENJDK ASSEMBLY EXCEPTION
+
+The OpenJDK source code made available by Sun at openjdk.java.net and
+openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the
+GNU General Public License <http://www.gnu.org/copyleft/gpl.html> version 2
+only ("GPL2"), with the following clarification and special exception.
+
+    Linking this OpenJDK Code statically or dynamically with other code
+    is making a combined work based on this library.  Thus, the terms
+    and conditions of GPL2 cover the whole combination.
+
+    As a special exception, Sun gives you permission to link this
+    OpenJDK Code with certain code licensed by Sun as indicated at
+    http://openjdk.java.net/legal/exception-modules-2007-05-08.html
+    ("Designated Exception Modules") to produce an executable,
+    regardless of the license terms of the Designated Exception Modules,
+    and to copy and distribute the resulting executable under GPL2,
+    provided that the Designated Exception Modules continue to be
+    governed by the licenses under which they were offered by Sun.
+
+As such, it allows licensees and sublicensees of Sun's GPL2 OpenJDK Code to
+build an executable that includes those portions of necessary code that Sun
+could not provide under GPL2 (or that Sun has provided under GPL2 with the
+Classpath exception).  If you modify or add to the OpenJDK code, that new
+GPL2 code may still be combined with Designated Exception Modules if the
+new code is made subject to this exception by its copyright holder.
+
+------------------------------------------------------------------------------
+OpenJDK Trademark Notice
+Version 1.1, 2008/3/10
+
+OpenJDK (the "Name") is a trademark of Sun Microsystems, Inc. (the "Owner").
+Owner permits any person obtaining a copy of this software (the "Software")
+which is based on original software retrieved from one of the following
+websites: http://download.java.net/openjdk, http://hg.openjdk.java.net/jdk6,
+or http://openjdk.java.net (each a "Website", with the original software made
+available by the Owner on a Website being known as the "Website Software") to
+use the Name in package names and version strings of the Software subject to
+the following conditions:
+
+  - The Software is a substantially complete implementation of the OpenJDK
+    development kit or runtime environment code made available by Owner on a
+    Website, and the vast majority of the Software code is identical to the
+    upstream Website Software;
+
+  - No permission is hereby granted to use the Name in any other manner,
+    unless such use constitutes "fair use."
+
+  - The Owner makes no warranties of any kind respecting the Name and all
+    representations and warranties, including any implied warranty of
+    merchantability, fitness for a particular purpose or non-infringement
+    are hereby disclaimed; and
+
+  - This notice and the following legend are included in all copies of the
+    Software or portions of it:
+
+        OpenJDK is a trademark or registered trademark of Sun Microsystems,
+        Inc. in the United States and other countries.
+
+The Name may also be used in connection with descriptions of the Software that
+constitute "fair use," such as "derived from the OpenJDK code base" or "based
+on the OpenJDK source code."
+
+Owner intends to revise this Notice as necessary in order to meet the needs of
+the OpenJDK Community.  Please send questions or comments about this Notice to
+Sun Microsystems at openjdk-tm@sun.com.  Revisions to this Notice will be
+announced on the public mailing list announce@openjdk.java.net, to which you
+may subscribe by visiting http://mail.openjdk.java.net.  The latest version of
+this Notice may be found at http://openjdk.java.net/legal.
+
+------------------------------------------------------------------------------
+
+The contents of the jdk/src/share/native/sun/security/ec/impl/ directory are
+licensed under the LGPL-2.1.  See `/usr/share/common-licenses/LGPL-2-1'.
+
+------------------------------------------------------------------------------
+The following licenses for third party code are taken from
+openjdk/THIRD_PARTY_README
+------------------------------------------------------------------------------
+
+DO NOT TRANSLATE OR LOCALIZE.
+-----------------------------
+
+%% This notice is provided with respect to ASM Bytecode Manipulation 
+Framework v5.0, which may be included with JRE 8, and JDK 8, and 
+OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Copyright (c) 2000-2011 France Télécom
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holders nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+--- end of LICENSE ---
+
+--------------------------------------------------------------------------------
+
+%% This notice is provided with respect to BSDiff v4.3, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Copyright 2003-2005 Colin Percival
+All rights reserved
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted providing that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to CodeViewer 1.0, which may be
+included with JDK 8.
+
+--- begin of LICENSE ---
+
+Copyright 1999 by CoolServlets.com.
+
+Any errors or suggested improvements to this class can be reported as
+instructed on CoolServlets.com. We hope you enjoy this program... your
+comments will encourage further development!  This software is distributed
+under the terms of the BSD License.  Redistribution and use in source and
+binary forms, with or without modification, are permitted provided that the
+following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+Neither name of CoolServlets.com nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY COOLSERVLETS.COM AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Cryptix AES 3.2.0, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Cryptix General License
+
+Copyright (c) 1995-2005 The Cryptix Foundation Limited.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+  1. Redistributions of source code must retain the copyright notice,
+     this list of conditions and the following disclaimer.
+
+  2. Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in
+     the documentation and/or other materials provided with the
+     distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE CRYPTIX FOUNDATION LIMITED AND
+CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE CRYPTIX FOUNDATION LIMITED OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to CUP Parser Generator for 
+Java 0.10k, which may be included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both the
+copyright notice and this permission notice and warranty disclaimer appear in
+supporting documentation, and that the names of the authors or their
+employers not be used in advertising or publicity pertaining to distribution of
+the software without specific, written prior permission.
+
+The authors and their employers disclaim all warranties with regard to
+this software, including all implied warranties of merchantability and fitness.
+In no event shall the authors or their employers be liable for any special,
+indirect or consequential damages or any damages whatsoever resulting from
+loss of use, data or profits, whether in an action of contract, negligence or
+other tortious action, arising out of or in connection with the use or
+performance of this software.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Document Object Model (DOM) Level 2
+& 3, which may be included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+W3C SOFTWARE NOTICE AND LICENSE
+
+http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+
+This work (and included software, documentation such as READMEs, or other
+related items) is being provided by the copyright holders under the following
+license. By obtaining, using and/or copying this work, you (the licensee)
+agree that you have read, understood, and will comply with the following terms
+and conditions.
+
+Permission to copy, modify, and distribute this software and its
+documentation, with or without modification, for any purpose and without fee
+or royalty is hereby granted, provided that you include the following on ALL
+copies of the software and documentation or portions thereof, including
+modifications:
+
+   1.The full text of this NOTICE in a location viewable to users of the
+   redistributed or derivative work.
+
+   2.Any pre-existing intellectual property disclaimers, notices, or terms and
+   conditions. If none exist, the W3C Software Short Notice should be included
+   (hypertext is preferred, text is permitted) within the body of any
+   redistributed or derivative code.
+
+   3.Notice of any changes or modifications to the files, including the date
+   changes were made. (We recommend you provide URIs to the location from
+   which the code is derived.)
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
+MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
+PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY
+THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL
+OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
+DOCUMENTATION.  The name and trademarks of copyright holders may NOT be used
+in advertising or publicity pertaining to the software without specific,
+written prior permission. Title to copyright in this software and any
+associated documentation will at all times remain with copyright holders.
+
+____________________________________
+
+This formulation of W3C's notice and license became active on December 31
+2002. This version removes the copyright ownership notice such that this
+license can be used with materials other than those owned by the W3C, reflects
+that ERCIM is now a host of the W3C, includes references to this specific
+dated version of the license, and removes the ambiguous grant of "use".
+Otherwise, this version is the same as the previous version and is written so
+as to preserve the Free Software Foundation's assessment of GPL compatibility
+and OSI's certification under the Open Source Definition. Please see our
+Copyright FAQ for common questions about using materials from our site,
+including specific terms and conditions for packages like libwww, Amaya, and
+Jigsaw. Other questions about this notice can be directed to
+site-policy@w3.org.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Dynalink v0.5, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Copyright (c) 2009-2013, Attila Szegedi
+
+All rights reserved.Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the following conditions are
+met:* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.  * Redistributions in
+binary form must reproduce the above copyright notice,   this list of
+conditions and the following disclaimer in the documentation  and/or other
+materials provided with the distribution.  * Neither the name of Attila
+Szegedi nor the names of its contributors may be used to endorse or promote
+products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Elliptic Curve Cryptography, which 
+may be included with JRE 8, JDK 8, and OpenJDK 8.
+
+You are receiving a copy of the Elliptic Curve Cryptography library in source
+form with the JDK 8 and OpenJDK 8 source distributions, and as object code in
+the JRE 8 & JDK 8 runtimes.
+
+In the case of the JRE 8 & JDK 8 runtimes, the terms of the Oracle license do
+NOT apply to the Elliptic Curve Cryptography library; it is licensed under the
+following license, separately from Oracle's JDK & JRE.  If you do not wish to
+install the Elliptic Curve Cryptography library, you may delete the library
+named libsunec.so (on Solaris and Linux systems) or sunec.dll (on Windows
+systems) from the JRE bin directory reserved for native libraries.
+
+
+--- begin of LICENSE ---
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+\f
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+\f
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+\f
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+\f
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+\f
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+\f
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+\f
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+\f
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to  ECMAScript Language
+Specification ECMA-262 Edition 5.1 which may be included with 
+JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Copyright notice
+Copyright © 2011 Ecma International
+Ecma International
+Rue du Rhone 114
+CH-1204 Geneva
+Tel: +41 22 849 6000
+Fax: +41 22 849 6001
+Web: http://www.ecma-international.org
+
+This document and possible translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it or assist
+in its implementation may be prepared, copied, published, and distributed, in
+whole or in part, without restriction of any kind, provided that the above
+copyright notice and this section are included on all such copies and derivative
+works. However, this document itself may not be modified in any way, including
+by removing the copyright notice or references to Ecma International, except as
+needed for the purpose of developing any document or deliverable produced by
+Ecma International (in which case the rules applied to copyrights must be
+followed) or as required to translate it into languages other than English. The
+limited permissions granted above are perpetual and will not be revoked by Ecma
+International or its successors or assigns. This document and the information
+contained herein is provided on an "AS IS" basis and ECMA INTERNATIONAL
+DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
+WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP
+RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE." Software License
+
+All Software contained in this document ("Software)" is protected by copyright
+and is being made available under the "BSD License", included below. This
+Software may be subject to third party rights (rights from parties other than
+Ecma International), including patent rights, and no licenses under such third
+party rights are granted under this license even if the third party concerned is
+a member of Ecma International. SEE THE ECMA CODE OF CONDUCT IN PATENT MATTERS
+AVAILABLE AT http://www.ecma-international.org/memento/codeofconduct.htm FOR
+INFORMATION REGARDING THE LICENSING OF PATENT CLAIMS THAT ARE REQUIRED TO
+IMPLEMENT ECMA INTERNATIONAL STANDARDS*. Redistribution and use in source and
+binary forms, with or without modification, are permitted provided that the
+following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+3. Neither the name of the authors nor Ecma International may be used to endorse
+or promote products derived from this software without specific prior written
+permission.
+
+THIS SOFTWARE IS PROVIDED BY THE ECMA INTERNATIONAL "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL ECMA INTERNATIONAL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+--- end of LICENSE ---
+
+%% This notice is provided with respect to Dynalink library which is included
+with the Nashorn technology.
+
+--- begin of LICENSE ---
+Copyright (c) 2009-2013, Attila Szegedi
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+* Neither the name of the copyright holder nor the names of
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--- end of LICENSE ---
+
+%% This notice is provided with respect to Joni library which is included
+with the Nashorn technology.
+
+--- begin of LICENSE ---
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to FontConfig 2.5, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8 source distributions on
+Linux and Solaris.
+
+--- begin of LICENSE ---
+
+Copyright © 2001,2003 Keith Packard
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that the
+above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and that
+the name of Keith Packard not be used in advertising or publicity pertaining
+to distribution of the software without specific, written prior permission.
+Keith Packard makes no representations about the suitability of this software
+for any purpose.  It is provided "as is" without express or implied warranty.
+
+KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL KEITH
+PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to IAIK PKCS#11 Wrapper, 
+which may be included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+IAIK PKCS#11 Wrapper License
+
+Copyright (c) 2002 Graz University of Technology. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+3. The end-user documentation included with the redistribution, if any, must
+   include the following acknowledgment:
+
+   "This product includes software developed by IAIK of Graz University of
+    Technology."
+
+   Alternately, this acknowledgment may appear in the software itself, if and
+   wherever such third-party acknowledgments normally appear.
+
+4. The names "Graz University of Technology" and "IAIK of Graz University of
+   Technology" must not be used to endorse or promote products derived from this
+   software without prior written permission.
+
+5. Products derived from this software may not be called "IAIK PKCS Wrapper",
+   nor may "IAIK" appear in their name, without prior written permission of
+   Graz University of Technology.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+LICENSOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to ICU4C 4.0.1 and ICU4J 4.4, which 
+may be included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Copyright (c) 1995-2010 International Business Machines Corporation and others 
+
+All rights reserved. 
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, and/or sell copies of the
+Software, and to permit persons to whom the Software is furnished to do so,
+provided that the above copyright notice(s) and this permission notice appear
+in all copies of the Software and that both the above copyright notice(s) and
+this permission notice appear in supporting documentation.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
+NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE
+LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization of the copyright holder.
+All trademarks and registered trademarks mentioned herein are the property of
+their respective owners.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to IJG JPEG 6b, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+This software is copyright (C) 1991-1998, Thomas G. Lane.
+All Rights Reserved except as specified below.
+
+Permission is hereby granted to use, copy, modify, and distribute this
+software (or portions thereof) for any purpose, without fee, subject to these
+conditions:
+(1) If any part of the source code for this software is distributed, then this
+README file must be included, with this copyright and no-warranty notice
+unaltered; and any additions, deletions, or changes to the original files
+must be clearly indicated in accompanying documentation.
+(2) If only executable code is distributed, then the accompanying
+documentation must state that "this software is based in part on the work of
+the Independent JPEG Group".
+(3) Permission for use of this software is granted only if the user accepts
+full responsibility for any undesirable consequences; the authors accept
+NO LIABILITY for damages of any kind.
+
+These conditions apply to any software derived from or based on the IJG code,
+not just to the unmodified library.  If you use our work, you ought to
+acknowledge us.
+
+Permission is NOT granted for the use of any IJG author's name or company name
+in advertising or publicity relating to this software or products derived from
+it.  This software may be referred to only as "the Independent JPEG Group's
+software".
+
+We specifically permit and encourage the use of this software as the basis of
+commercial products, provided that all warranty or liability claims are
+assumed by the product vendor.
+
+--- end of LICENSE ---
+
+--------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Joni v1.1.9, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to JOpt-Simple v3.0,  which may be 
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+ Copyright (c) 2004-2009 Paul R. Holser, Jr.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+--- end of LICENSE ---
+
+--------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Kerberos functionality, which 
+which may be included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+ (C) Copyright IBM Corp. 1999 All Rights Reserved.
+ Copyright 1997 The Open Group Research Institute. All rights reserved.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Kerberos functionality from 
+FundsXpress, INC., which may be included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+ Copyright (C) 1998 by the FundsXpress, INC.
+
+ All rights reserved.
+
+ Export of this software from the United States of America may require
+ a specific license from the United States Government.  It is the
+ responsibility of any person or organization contemplating export to
+ obtain such a license before exporting.
+
+ WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
+ distribute this software and its documentation for any purpose and
+ without fee is hereby granted, provided that the above copyright
+ notice appear in all copies and that both that copyright notice and
+ this permission notice appear in supporting documentation, and that
+ the name of FundsXpress. not be used in advertising or publicity pertaining
+ to distribution of the software without specific, written prior
+ permission.  FundsXpress makes no representations about the suitability of
+ this software for any purpose.  It is provided "as is" without express
+ or implied warranty.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Kronos OpenGL headers, which may be 
+included with JDK 8 and OpenJDK 8 source distributions.
+
+--- begin of LICENSE ---
+
+ Copyright (c) 2007 The Khronos Group Inc.
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and/or associated documentation files (the "Materials"), to
+ deal in the Materials without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ sell copies of the Materials, and to permit persons to whom the Materials are
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Materials.
+
+ THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE
+ MATERIALS.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% Portions Copyright Eastman Kodak Company 1992
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to libpng 1.5.4, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+This copy of the libpng notices is provided for your convenience.  In case of
+any discrepancy between this copy and the notices in the file png.h that is
+included in the libpng distribution, the latter shall prevail.
+
+COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
+
+If you modify libpng you may insert additional notices immediately following
+this sentence.
+
+This code is released under the libpng license.
+
+libpng versions 1.2.6, August 15, 2004, through 1.5.4, July 7, 2011, are
+Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
+distributed according to the same disclaimer and license as libpng-1.2.5
+with the following individual added to the list of Contributing Authors
+
+   Cosmin Truta
+
+libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are
+Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
+distributed according to the same disclaimer and license as libpng-1.0.6
+with the following individuals added to the list of Contributing Authors
+
+   Simon-Pierre Cadieux
+   Eric S. Raymond
+   Gilles Vollant
+
+and with the following additions to the disclaimer:
+
+   There is no warranty against interference with your enjoyment of the
+   library or against infringement.  There is no warranty that our
+   efforts or the library will fulfill any of your particular purposes
+   or needs.  This library is provided with all faults, and the entire
+   risk of satisfactory quality, performance, accuracy, and effort is with
+   the user.
+
+libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
+Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are
+distributed according to the same disclaimer and license as libpng-0.96,
+with the following individuals added to the list of Contributing Authors:
+
+   Tom Lane
+   Glenn Randers-Pehrson
+   Willem van Schaik
+
+libpng versions 0.89, June 1996, through 0.96, May 1997, are
+Copyright (c) 1996, 1997 Andreas Dilger
+Distributed according to the same disclaimer and license as libpng-0.88,
+with the following individuals added to the list of Contributing Authors:
+
+   John Bowler
+   Kevin Bracey
+   Sam Bushell
+   Magnus Holmgren
+   Greg Roelofs
+   Tom Tanner
+
+libpng versions 0.5, May 1995, through 0.88, January 1996, are
+Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
+
+For the purposes of this copyright and license, "Contributing Authors"
+is defined as the following set of individuals:
+
+   Andreas Dilger
+   Dave Martindale
+   Guy Eric Schalnat
+   Paul Schmidt
+   Tim Wegner
+
+The PNG Reference Library is supplied "AS IS".  The Contributing Authors
+and Group 42, Inc. disclaim all warranties, expressed or implied,
+including, without limitation, the warranties of merchantability and of
+fitness for any purpose.  The Contributing Authors and Group 42, Inc.
+assume no liability for direct, indirect, incidental, special, exemplary,
+or consequential damages, which may result from the use of the PNG
+Reference Library, even if advised of the possibility of such damage.
+
+Permission is hereby granted to use, copy, modify, and distribute this
+source code, or portions hereof, for any purpose, without fee, subject
+to the following restrictions:
+
+1. The origin of this source code must not be misrepresented.
+
+2. Altered versions must be plainly marked as such and must not
+   be misrepresented as being the original source.
+
+3. This Copyright notice may not be removed or altered from any
+   source or altered source distribution.
+
+The Contributing Authors and Group 42, Inc. specifically permit, without
+fee, and encourage the use of this source code as a component to
+supporting the PNG file format in commercial products.  If you use this
+source code in a product, acknowledgment is not required but would be
+appreciated.
+
+
+A "png_get_copyright" function is available, for convenient use in "about"
+boxes and the like:
+
+   printf("%s",png_get_copyright(NULL));
+
+Also, the PNG logo (in PNG format, of course) is supplied in the
+files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
+
+Libpng is OSI Certified Open Source Software.  OSI Certified Open Source is a
+certification mark of the Open Source Initiative.
+
+Glenn Randers-Pehrson
+glennrp at users.sourceforge.net
+July 7, 2011
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to libungif 4.1.3, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+The GIFLIB distribution is Copyright (c) 1997  Eric S. Raymond
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Little CMS 2.5, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Little CMS
+Copyright (c) 1998-2011 Marti Maria Saguer
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% Lucida is a registered trademark or trademark of Bigelow & Holmes in the
+U.S. and other countries.
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Mesa 3D Graphics Library v4.1,
+which may be included with JRE 8, JDK 8, and OpenJDK 8 source distributions.
+
+--- begin of LICENSE ---
+
+ Mesa 3-D graphics library
+ Version:  4.1
+
+ Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Mozilla Network Security
+Services (NSS), which is supplied with the JDK test suite in the OpenJDK
+source code repository. It is licensed under Mozilla Public License (MPL),
+version 2.0.
+
+The NSS libraries are supplied in executable form, built from unmodified
+NSS source code labeled with the "NSS_3.13.1_RTM" release tag.
+
+The NSS source code is available in the OpenJDK source code repository at:
+    jdk/test/sun/security/pkcs11/nss/src
+
+The NSS libraries are available in the OpenJDK source code repository at:
+    jdk/test/sun/security/pkcs11/nss/lib
+
+--- begin of LICENSE ---
+
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+    means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+    means
+
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+
+1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in 
+    a separate file or files, that is not Covered Software.
+
+1.8. "License"
+    means this document.
+
+1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+
+1.10. "Modifications"
+    means any of the following:
+
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+
+1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+
+1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+
+1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+    or
+
+(b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+*                                                                      *
+*  6. Disclaimer of Warranty                                           *
+*  -------------------------                                           *
+*                                                                      *
+*  Covered Software is provided under this License on an "as is"       *
+*  basis, without warranty of any kind, either expressed, implied, or  *
+*  statutory, including, without limitation, warranties that the       *
+*  Covered Software is free of defects, merchantable, fit for a        *
+*  particular purpose or non-infringing. The entire risk as to the     *
+*  quality and performance of the Covered Software is with You.        *
+*  Should any Covered Software prove defective in any respect, You     *
+*  (not any Contributor) assume the cost of any necessary servicing,   *
+*  repair, or correction. This disclaimer of warranty constitutes an   *
+*  essential part of this License. No use of any Covered Software is   *
+*  authorized under this License except under this disclaimer.         *
+*                                                                      *
+************************************************************************
+
+************************************************************************
+*                                                                      *
+*  7. Limitation of Liability                                          *
+*  --------------------------                                          *
+*                                                                      *
+*  Under no circumstances and under no legal theory, whether tort      *
+*  (including negligence), contract, or otherwise, shall any           *
+*  Contributor, or anyone who distributes Covered Software as          *
+*  permitted above, be liable to You for any direct, indirect,         *
+*  special, incidental, or consequential damages of any character      *
+*  including, without limitation, damages for lost profits, loss of    *
+*  goodwill, work stoppage, computer failure or malfunction, or any    *
+*  and all other commercial damages or losses, even if such party      *
+*  shall have been informed of the possibility of such damages. This   *
+*  limitation of liability shall not apply to liability for death or   *
+*  personal injury resulting from such party's negligence to the       *
+*  extent applicable law prohibits such limitation. Some               *
+*  jurisdictions do not allow the exclusion or limitation of           *
+*  incidental or consequential damages, so this exclusion and          *
+*  limitation may not apply to You.                                    *
+*                                                                      *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+  This Source Code Form is subject to the terms of the Mozilla Public
+  License, v. 2.0. If a copy of the MPL was not distributed with this
+  file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+  This Source Code Form is "Incompatible With Secondary Licenses", as
+  defined by the Mozilla Public License, v. 2.0.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to PC/SC Lite for Suse Linux v.1.1.1,
+which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris.
+
+--- begin of LICENSE ---
+
+Copyright (c) 1999-2004 David Corcoran <corcoran@linuxnet.com>
+Copyright (c) 1999-2004 Ludovic Rousseau <ludovic.rousseau (at) free.fr>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement:
+     This product includes software developed by: 
+      David Corcoran <corcoran@linuxnet.com>
+      http://www.linuxnet.com (MUSCLE)
+4. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+Changes to this license can be made only by the copyright author with 
+explicit written consent.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to PorterStemmer v4, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+See: http://tartarus.org/~martin/PorterStemmer
+
+The software is completely free for any purpose, unless notes at the head of
+the program text indicates otherwise (which is rare). In any case, the notes
+about licensing are never more restrictive than the BSD License.
+
+In every case where the software is not written by me (Martin Porter), this
+licensing arrangement has been endorsed by the contributor, and it is
+therefore unnecessary to ask the contributor again to confirm it.
+
+I have not asked any contributors (or their employers, if they have them) for
+proofs that they have the right to distribute their software in this way.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Relax NG Object/Parser v.20050510,
+which may be included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Copyright (c) Kohsuke Kawaguchi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions: The above copyright
+notice and this permission notice shall be included in all copies or
+substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to RelaxNGCC v1.12, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Copyright (c) 2000-2003 Daisuke Okajima and Kohsuke Kawaguchi.  
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+3. The end-user documentation included with the redistribution, if any, must
+   include the following acknowledgment:
+
+    "This product includes software developed by Daisuke Okajima
+    and Kohsuke Kawaguchi (http://relaxngcc.sf.net/)."
+
+Alternately, this acknowledgment may appear in the software itself, if and
+wherever such third-party acknowledgments normally appear.
+
+4. The names of the copyright holders must not be used to endorse or promote
+   products derived from this software without prior written permission. For
+   written permission, please contact the copyright holders.
+
+5. Products derived from this software may not be called "RELAXNGCC", nor may
+  "RELAXNGCC" appear in their name, without prior written permission of the
+  copyright holders.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL THE APACHE
+SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to SAX 2.0.1, which may be included 
+with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+ SAX is free!
+
+ In fact, it's not possible to own a license to SAX, since it's been placed in
+ the public domain.
+
+ No Warranty
+
+ Because SAX is released to the public domain, there is no warranty for the
+ design or for the software implementation, to the extent permitted by
+ applicable law. Except when otherwise stated in writing the copyright holders
+ and/or other parties provide SAX "as is" without warranty of any kind, either
+ expressed or implied, including, but not limited to, the implied warranties
+ of merchantability and fitness for a particular purpose. The entire risk as
+ to the quality and performance of SAX is with you. Should SAX prove
+ defective, you assume the cost of all necessary servicing, repair or
+ correction.
+
+ In no event unless required by applicable law or agreed to in writing will
+ any copyright holder, or any other party who may modify and/or redistribute
+ SAX, be liable to you for damages, including any general, special, incidental
+ or consequential damages arising out of the use or inability to use SAX
+ (including but not limited to loss of data or data being rendered inaccurate
+ or losses sustained by you or third parties or a failure of the SAX to
+ operate with any other programs), even if such holder or other party has been
+ advised of the possibility of such damages.
+
+ Copyright Disclaimers 
+
+ This page includes statements to that effect by David Megginson, who would
+ have been able to claim copyright for the original work.  SAX 1.0
+
+ Version 1.0 of the Simple API for XML (SAX), created collectively by the
+ membership of the XML-DEV mailing list, is hereby released into the public
+ domain.
+
+ No one owns SAX: you may use it freely in both commercial and non-commercial
+ applications, bundle it with your software distribution, include it on a
+ CD-ROM, list the source code in a book, mirror the documentation at your own
+ web site, or use it in any other way you see fit.
+
+ David Megginson, sax@megginson.com
+ 1998-05-11
+
+ SAX 2.0 
+
+ I hereby abandon any property rights to SAX 2.0 (the Simple API for XML), and
+ release all of the SAX 2.0 source code, compiled code, and documentation
+ contained in this distribution into the Public Domain. SAX comes with NO
+ WARRANTY or guarantee of fitness for any purpose.
+
+ David Megginson, david@megginson.com
+ 2000-05-05
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to SoftFloat version 2b, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8 on Linux/ARM.
+
+--- begin of LICENSE ---
+
+Use of any of this software is governed by the terms of the license below:
+
+SoftFloat was written by me, John R. Hauser. This work was made possible in 
+part by the International Computer Science Institute, located at Suite 600, 
+1947 Center Street, Berkeley, California 94704. Funding was partially 
+provided by the National Science Foundation under grant MIP-9311980. The 
+original version of this code was written as part of a project to build 
+a fixed-point vector processor in collaboration with the University of 
+California at Berkeley, overseen by Profs. Nelson Morgan and John Wawrzynek. 
+
+THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort 
+has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT 
+TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO 
+PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL 
+LOSSES, COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO 
+FURTHERMORE EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER 
+SCIENCE INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, 
+COSTS, OR OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE 
+SOFTWARE. 
+
+Derivative works are acceptable, even for commercial purposes, provided 
+that the minimal documentation requirements stated in the source code are 
+satisfied. 
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Sparkle 1.5,
+which may be included with JRE 8 on Mac OS X.
+
+--- begin of LICENSE ---
+
+Copyright (c) 2012 Sparkle.org and Andy Matuschak
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% Portions licensed from Taligent, Inc.
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Thai Dictionary, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Copyright (C) 1982 The Royal Institute, Thai Royal Government.
+
+Copyright (C) 1998 National Electronics and Computer Technology Center,
+National Science and Technology Development Agency,
+Ministry of Science Technology and Environment,
+Thai Royal Government.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Unicode 6.2.0 & CLDR 21.0.1
+which may be included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Unicode Terms of Use
+
+For the general privacy policy governing access to this site, see the Unicode
+Privacy Policy. For trademark usage, see the Unicode® Consortium Name and
+Trademark Usage Policy.
+
+A. Unicode Copyright.
+   1. Copyright © 1991-2013 Unicode, Inc. All rights reserved.
+
+   2. Certain documents and files on this website contain a legend indicating
+      that "Modification is permitted." Any person is hereby authorized,
+      without fee, to modify such documents and files to create derivative
+      works conforming to the Unicode® Standard, subject to Terms and
+      Conditions herein.
+
+    3. Any person is hereby authorized, without fee, to view, use, reproduce,
+       and distribute all documents and files solely for informational
+       purposes in the creation of products supporting the Unicode Standard,
+       subject to the Terms and Conditions herein.
+
+    4. Further specifications of rights and restrictions pertaining to the use
+       of the particular set of data files known as the "Unicode Character
+       Database" can be found in Exhibit 1.
+
+    5. Each version of the Unicode Standard has further specifications of
+       rights and restrictions of use. For the book editions (Unicode 5.0 and
+       earlier), these are found on the back of the title page. The online
+       code charts carry specific restrictions. All other files, including
+       online documentation of the core specification for Unicode 6.0 and
+       later, are covered under these general Terms of Use.
+
+    6. No license is granted to "mirror" the Unicode website where a fee is
+       charged for access to the "mirror" site.
+
+    7. Modification is not permitted with respect to this document. All copies
+       of this document must be verbatim.
+
+B. Restricted Rights Legend. Any technical data or software which is licensed
+   to the United States of America, its agencies and/or instrumentalities
+   under this Agreement is commercial technical data or commercial computer
+   software developed exclusively at private expense as defined in FAR 2.101,
+   or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use,
+   duplication, or disclosure by the Government is subject to restrictions as
+   set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov
+   1995) and this Agreement. For Software, in accordance with FAR 12-212 or
+   DFARS 227-7202, as applicable, use, duplication or disclosure by the
+   Government is subject to the restrictions set forth in this Agreement.
+
+C. Warranties and Disclaimers.
+   1. This publication and/or website may include technical or typographical
+      errors or other inaccuracies . Changes are periodically added to the
+      information herein; these changes will be incorporated in new editions
+      of the publication and/or website. Unicode may make improvements and/or
+      changes in the product(s) and/or program(s) described in this
+      publication and/or website at any time.
+
+    2. If this file has been purchased on magnetic or optical media from
+       Unicode, Inc. the sole and exclusive remedy for any claim will be
+       exchange of the defective media within ninety (90) days of original
+       purchase.
+
+    3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR SOFTWARE IS
+       PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED,
+       OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF
+       MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
+       UNICODE AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR
+       OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH
+       ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE.
+
+D. Waiver of Damages. In no event shall Unicode or its licensors be liable for
+   any special, incidental, indirect or consequential damages of any kind, or
+   any damages whatsoever, whether or not Unicode was advised of the
+   possibility of the damage, including, without limitation, those resulting
+   from the following: loss of use, data or profits, in connection with the
+   use, modification or distribution of this information or its derivatives.
+
+E.Trademarks & Logos.
+   1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode,
+      Inc.  “The Unicode Consortium” and “Unicode, Inc.” are trade names of
+      Unicode, Inc.  Use of the information and materials found on this
+      website indicates your acknowledgement of Unicode, Inc.’s exclusive
+      worldwide rights in the Unicode Word Mark, the Unicode Logo, and the
+      Unicode trade names.
+
+   2. The Unicode Consortium Name and Trademark Usage Policy (“Trademark
+      Policy”) are incorporated herein by reference and you agree to abide by
+      the provisions of the Trademark Policy, which may be changed from time
+      to time in the sole discretion of Unicode, Inc.
+
+   3. All third party trademarks referenced herein are the property of their
+      respective owners.
+
+Miscellaneous.
+   1. Jurisdiction and Venue. This server is operated from a location in the
+      State of California, United States of America. Unicode makes no
+      representation that the materials are appropriate for use in other
+      locations. If you access this server from other locations, you are
+      responsible for compliance with local laws. This Agreement, all use of
+      this site and any claims and damages resulting from use of this site are
+      governed solely by the laws of the State of California without regard to
+      any principles which would apply the laws of a different jurisdiction.
+      The user agrees that any disputes regarding this site shall be resolved
+      solely in the courts located in Santa Clara County, California. The user
+      agrees said courts have personal jurisdiction and agree to waive any
+      right to transfer the dispute to any other forum.
+
+   2. Modification by Unicode.  Unicode shall have the right to modify this
+      Agreement at any time by posting it to this site. The user may not
+      assign any part of this Agreement without Unicode’s prior written
+      consent.
+
+   3. Taxes. The user agrees to pay any taxes arising from access to this
+      website or use of the information herein, except for those based on
+      Unicode’s net income.
+
+   4. Severability.  If any provision of this Agreement is declared invalid or
+      unenforceable, the remaining provisions of this Agreement shall remain
+      in effect.
+
+   5. Entire Agreement. This Agreement constitutes the entire agreement
+      between the parties.
+
+EXHIBIT 1
+UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+
+Unicode Data Files include all data files under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
+http://www.unicode.org/cldr/data/. Unicode Data Files do not include PDF
+online code charts under the directory http://www.unicode.org/Public/.
+Software includes any source code published in the Unicode Standard or under
+the directories http://www.unicode.org/Public/,
+http://www.unicode.org/reports/, and http://www.unicode.org/cldr/data/.
+
+NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING,
+INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA
+FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO
+BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT
+AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR
+SOFTWARE.
+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright © 1991-2012 Unicode, Inc. All rights reserved. Distributed under the
+Terms of Use in http://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the Unicode data files and any associated documentation (the "Data Files")
+or Unicode software and any associated documentation (the "Software") to deal
+in the Data Files or Software without restriction, including without
+limitation the rights to use, copy, modify, merge, publish, distribute, and/or
+sell copies of the Data Files or Software, and to permit persons to whom the
+Data Files or Software are furnished to do so, provided that (a) the above
+copyright notice(s) and this permission notice appear with all copies of the
+Data Files or Software, (b) both the above copyright notice(s) and this
+permission notice appear in associated documentation, and (c) there is clear
+notice in each modified Data File or in the Software as well as in the
+documentation associated with the Data File(s) or Software that the data or
+software has been modified.
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
+PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE
+DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in these Data Files or Software without prior written authorization of the
+copyright holder.
+
+Unicode and the Unicode logo are trademarks of Unicode, Inc. in the United
+States and other countries. All third party trademarks referenced herein are
+the property of their respective owners.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to UPX v3.01, which may be included 
+with JRE 8 on Windows.
+
+--- begin of LICENSE ---
+
+Use of any of this software is governed by the terms of the license below:
+
+
+                 ooooo     ooo ooooooooo.   ooooooo  ooooo
+                 `888'     `8' `888   `Y88.  `8888    d8'
+                  888       8   888   .d88'    Y888..8P
+                  888       8   888ooo88P'      `8888'
+                  888       8   888            .8PY888.
+                  `88.    .8'   888           d8'  `888b
+                    `YbodP'    o888o        o888o  o88888o
+
+
+                    The Ultimate Packer for eXecutables
+          Copyright (c) 1996-2000 Markus Oberhumer & Laszlo Molnar
+               http://wildsau.idv.uni-linz.ac.at/mfx/upx.html
+                          http://www.nexus.hu/upx
+                            http://upx.tsx.org
+
+
+PLEASE CAREFULLY READ THIS LICENSE AGREEMENT, ESPECIALLY IF YOU PLAN
+TO MODIFY THE UPX SOURCE CODE OR USE A MODIFIED UPX VERSION.
+
+
+ABSTRACT
+========
+
+   UPX and UCL are copyrighted software distributed under the terms
+   of the GNU General Public License (hereinafter the "GPL").
+
+   The stub which is imbedded in each UPX compressed program is part
+   of UPX and UCL, and contains code that is under our copyright. The
+   terms of the GNU General Public License still apply as compressing
+   a program is a special form of linking with our stub.
+
+   As a special exception we grant the free usage of UPX for all
+   executables, including commercial programs.
+   See below for details and restrictions.
+
+
+COPYRIGHT
+=========
+
+   UPX and UCL are copyrighted software. All rights remain with the authors.
+
+   UPX is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer
+   UPX is Copyright (C) 1996-2000 Laszlo Molnar
+
+   UCL is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer
+
+
+GNU GENERAL PUBLIC LICENSE
+==========================
+
+   UPX and the UCL library are free software; you can redistribute them
+   and/or modify them under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of
+   the License, or (at your option) any later version.
+
+   UPX and UCL are distributed in the hope that they will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.
+
+
+SPECIAL EXCEPTION FOR COMPRESSED EXECUTABLES
+============================================
+
+   The stub which is imbedded in each UPX compressed program is part
+   of UPX and UCL, and contains code that is under our copyright. The
+   terms of the GNU General Public License still apply as compressing
+   a program is a special form of linking with our stub.
+
+   Hereby Markus F.X.J. Oberhumer and Laszlo Molnar grant you special
+   permission to freely use and distribute all UPX compressed programs
+   (including commercial ones), subject to the following restrictions:
+
+   1. You must compress your program with a completely unmodified UPX
+      version; either with our precompiled version, or (at your option)
+      with a self compiled version of the unmodified UPX sources as
+      distributed by us.
+   2. This also implies that the UPX stub must be completely unmodfied, i.e.
+      the stub imbedded in your compressed program must be byte-identical
+      to the stub that is produced by the official unmodified UPX version.
+   3. The decompressor and any other code from the stub must exclusively get
+      used by the unmodified UPX stub for decompressing your program at
+      program startup. No portion of the stub may get read, copied,
+      called or otherwise get used or accessed by your program.
+
+
+ANNOTATIONS
+===========
+
+  - You can use a modified UPX version or modified UPX stub only for
+    programs that are compatible with the GNU General Public License.
+
+  - We grant you special permission to freely use and distribute all UPX
+    compressed programs. But any modification of the UPX stub (such as,
+    but not limited to, removing our copyright string or making your
+    program non-decompressible) will immediately revoke your right to
+    use and distribute a UPX compressed program.
+
+  - UPX is not a software protection tool; by requiring that you use
+    the unmodified UPX version for your proprietary programs we
+    make sure that any user can decompress your program. This protects
+    both you and your users as nobody can hide malicious code -
+    any program that cannot be decompressed is highly suspicious
+    by definition.
+
+  - You can integrate all or part of UPX and UCL into projects that
+    are compatible with the GNU GPL, but obviously you cannot grant
+    any special exceptions beyond the GPL for our code in your project.
+
+  - We want to actively support manufacturers of virus scanners and
+    similar security software. Please contact us if you would like to
+    incorporate parts of UPX or UCL into such a product.
+
+
+
+Markus F.X.J. Oberhumer                   Laszlo Molnar
+markus.oberhumer@jk.uni-linz.ac.at        ml1050@cdata.tvnet.hu
+
+Linz, Austria, 25 Feb 2000
+
+Additional License(s)
+
+The UPX license file is at http://upx.sourceforge.net/upx-license.html.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to Xfree86-VidMode Extension 1.0,
+which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris.
+
+--- begin of LICENSE ---
+
+Version 1.1 of XFree86 ProjectLicence.
+
+Copyright (C) 1994-2004 The XFree86 Project, Inc.    All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicence, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so,subject to the following conditions:
+
+   1. Redistributions of source code must retain the above copyright
+   notice,this list of conditions, and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution, and in the same place
+   and form as other copyright, license and disclaimer information.
+
+   3. The end-user documentation included with the redistribution, if any,must
+   include the following acknowledgment: "This product includes
+   software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and
+   its contributors", in the same place and form as other third-party
+   acknowledgments. Alternately, this acknowledgment may appear in the software
+   itself, in the same form and location as other such third-party
+   acknowledgments.
+
+    4. Except as contained in this notice, the name of The XFree86 Project,Inc
+    shall not be used in advertising or otherwise to promote the sale, use
+    or other dealings in this Software without prior written authorization from
+    The XFree86 Project, Inc.
+
+    THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+    WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+    EVENT SHALL THE XFREE86 PROJECT, INC OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+    DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+    (INCLUDING, BUT NOT LIMITED TO,PROCUREMENT OF SUBSTITUTE GOODS OR
+    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+    DAMAGE.  
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to X Window System 6.8.2, which may be 
+included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris.
+
+--- begin of LICENSE ---
+
+          Licenses
+The X.Org Foundation March 2004
+
+1. Introduction
+
+The X.org Foundation X Window System distribution is a compilation of code and
+documentation from many sources. This document is intended primarily as a
+guide to the licenses used in the distribution: you must check each file
+and/or package for precise redistribution terms. None-the-less, this summary
+may be useful to many users. No software incorporating the XFree86 1.1 license
+has been incorporated.
+
+This document is based on the compilation from XFree86.
+
+2. XFree86 License
+
+XFree86 code without an explicit copyright is covered by the following
+copyright/license:
+
+Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
+
+3. Other Licenses
+
+Portions of code are covered by the following licenses/copyrights. See
+individual files for the copyright dates.
+
+3.1. X/MIT Copyrights
+
+3.1.1. X Consortium
+
+Copyright (C) <date> X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X
+CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings in
+this Software without prior written authorization from the X Consortium.
+
+X Window System is a trademark of X Consortium, Inc.
+
+3.1.2. The Open Group
+
+Copyright <date> The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that the
+above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings in
+this Software without prior written authorization from The Open Group.  3.2.
+Berkeley-based copyrights:
+
+o
+3.2.1. General
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   3. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.  3.2.2. UCB/LBL
+
+Copyright (c) 1993 The Regents of the University of California. All rights
+reserved.
+
+This software was developed by the Computer Systems Engineering group at
+Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to
+Berkeley.
+
+All advertising materials mentioning features or use of this software must
+display the following acknowledgement: This product includes software
+developed by the University of California, Lawrence Berkeley Laboratory.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement: This product includes software
+   developed by the University of California, Berkeley and its contributors.
+
+   4. Neither the name of the University nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  3.2.3. The
+NetBSD Foundation, Inc.
+
+Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved.
+
+This code is derived from software contributed to The NetBSD Foundation by Ben
+Collver <collver1@attbi.com>
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement: This product includes software
+   developed by the NetBSD Foundation, Inc. and its contributors.
+
+   4. Neither the name of The NetBSD Foundation nor the names of its
+   contributors may be used to endorse or promote products derived from this
+   software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS ``AS
+IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  3.2.4. Theodore
+Ts'o.
+
+Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All rights
+reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+   and the entire permission notice in its entirety, including the disclaimer
+   of warranties.
+
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   3. he name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.  3.2.5. Theo de Raadt and Damien Miller
+
+Copyright (c) 1995,1999 Theo de Raadt. All rights reserved. Copyright (c)
+2001-2002 Damien Miller. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.  3.2.6. Todd C. Miller
+
+Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+
+Permission to use, copy, modify, and distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  3.2.7. Thomas
+Winischhofer
+
+Copyright (C) 2001-2004 Thomas Winischhofer
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+   3. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.  3.3. NVIDIA Corp
+
+Copyright (c) 1996 NVIDIA, Corp. All rights reserved.
+
+NOTICE TO USER: The source code is copyrighted under U.S. and international
+laws. NVIDIA, Corp. of Sunnyvale, California owns the copyright and as design
+patents pending on the design and interface of the NV chips. Users and
+possessors of this source code are hereby granted a nonexclusive, royalty-free
+copyright and design patent license to use this code in individual and
+commercial software.
+
+Any use of this source code must include, in the user documentation and
+internal comments to the code, notices to the end user as follows:
+
+Copyright (c) 1996 NVIDIA, Corp. NVIDIA design patents pending in the U.S. and
+foreign countries.
+
+NVIDIA, CORP. MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE
+CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
+WARRANTY OF ANY KIND. NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA, CORP. BE LIABLE
+FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.  3.4. GLX Public
+License
+
+GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License")
+
+Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby
+grants permission to Recipient (defined below), under Recipient's copyrights
+in the Original Software (defined below), to use, copy, modify, merge,
+publish, distribute, sublicense and/or sell copies of Subject Software
+(defined below), and to permit persons to whom the Subject Software is
+furnished in accordance with this License to do the same, subject to all of
+the following terms and conditions, which Recipient accepts by engaging in any
+such use, copying, modifying, merging, publishing, distributing, sublicensing
+or selling:
+
+1. Definitions.
+
+    (a) "Original Software" means source code of computer software code which
+    is described in Exhibit A as Original Software.
+
+    (b) "Modifications" means any addition to or deletion from the substance
+    or structure of either the Original Software or any previous
+    Modifications. When Subject Software is released as a series of files, a
+    Modification means (i) any addition to or deletion from the contents of a
+    file containing Original Software or previous Modifications and (ii) any
+    new file that contains any part of the Original Code or previous
+    Modifications.
+
+    (c) "Subject Software" means the Original Software or Modifications or the
+    combination of the Original Software and Modifications, or portions of any
+    of the foregoing.
+
+    (d) "Recipient" means an individual or a legal entity exercising rights
+    under, and complying with all of the terms of, this License. For legal
+    entities, "Recipient" includes any entity which controls, is controlled
+    by, or is under common control with Recipient. For purposes of this
+    definition, "control" of an entity means (a) the power, direct or
+    indirect, to direct or manage such entity, or (b) ownership of fifty
+    percent (50%) or more of the outstanding shares or beneficial ownership of
+    such entity.
+
+2. Redistribution of Source Code Subject to These Terms. Redistributions of
+Subject Software in source code form must retain the notice set forth in
+Exhibit A, below, in every file. A copy of this License must be included in
+any documentation for such Subject Software where the recipients' rights
+relating to Subject Software are described. Recipient may distribute the
+source code version of Subject Software under a license of Recipient's choice,
+which may contain terms different from this License, provided that (i)
+Recipient is in compliance with the terms of this License, and (ii) the
+license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13 of
+this License, which terms may not be modified or superseded by any other terms
+of such license. If Recipient distributes the source code version under a
+different license Recipient must make it absolutely clear that any terms which
+differ from this License are offered by Recipient alone, not by SGI. Recipient
+hereby agrees to indemnify SGI for any liability incurred by SGI as a result
+of any such terms Recipient offers.
+
+3. Redistribution in Executable Form. The notice set forth in Exhibit A must
+be conspicuously included in any notice in an executable version of Subject
+Software, related documentation or collateral in which Recipient describes the
+user's rights relating to the Subject Software. Recipient may distribute the
+executable version of Subject Software under a license of Recipient's choice,
+which may contain terms different from this License, provided that (i)
+Recipient is in compliance with the terms of this License, and (ii) the
+license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of
+this License, which terms may not be modified or superseded by any other terms
+of such license. If Recipient distributes the executable version under a
+different license Recipient must make it absolutely clear that any terms which
+differ from this License are offered by Recipient alone, not by SGI. Recipient
+hereby agrees to indemnify SGI for any liability incurred by SGI as a result
+of any such terms Recipient offers.
+
+4. Termination. This License and the rights granted hereunder will terminate
+automatically if Recipient fails to comply with terms herein and fails to cure
+such breach within 30 days of the breach. Any sublicense to the Subject
+Software which is properly granted shall survive any termination of this
+License absent termination by the terms of such sublicense. Provisions which,
+by their nature, must remain in effect beyond the termination of this License
+shall survive.
+
+5. No Trademark Rights. This License does not grant any rights to use any
+trade name, trademark or service mark whatsoever. No trade name, trademark or
+service mark of SGI may be used to endorse or promote products derived from
+the Subject Software without prior written permission of SGI.
+
+6. No Other Rights. This License does not grant any rights with respect to the
+OpenGL API or to any software or hardware implementation thereof or to any
+other software whatsoever, nor shall any other rights or licenses not
+expressly granted hereunder arise by implication, estoppel or otherwise with
+respect to the Subject Software. Title to and ownership of the Original
+Software at all times remains with SGI. All rights in the Original Software
+not expressly granted under this License are reserved.
+
+7. Compliance with Laws; Non-Infringement. Recipient shall comply with all
+applicable laws and regulations in connection with use and distribution of the
+Subject Software, including but not limited to, all export and import control
+laws and regulations of the U.S. government and other countries. Recipient may
+not distribute Subject Software that (i) in any way infringes (directly or
+contributorily) the rights (including patent, copyright, trade secret,
+trademark or other intellectual property rights of any kind) of any other
+person or entity or (ii) breaches any representation or warranty, express,
+implied or statutory, which under any applicable law it might be deemed to
+have been distributed.
+
+8. Claims of Infringement. If Recipient at any time has knowledge of any one
+or more third party claims that reproduction, modification, use, distribution,
+import or sale of Subject Software (including particular functionality or code
+incorporated in Subject Software) infringes the third party's intellectual
+property rights, Recipient must place in a well-identified web page bearing
+the title "LEGAL" a description of each such claim and a description of the
+party making each such claim in sufficient detail that a user of the Subject
+Software will know whom to contact regarding the claim. Also, upon gaining
+such knowledge of any such claim, Recipient must conspicuously include the URL
+for such web page in the Exhibit A notice required under Sections 2 and 3,
+above, and in the text of any related documentation, license agreement or
+collateral in which Recipient describes end user's rights relating to the
+Subject Software. If Recipient obtains such knowledge after it makes Subject
+Software available to any other person or entity, Recipient shall take other
+steps (such as notifying appropriate mailing lists or newsgroups) reasonably
+calculated to inform those who received the Subject Software that new
+knowledge has been obtained.
+
+9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS,
+MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO
+RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
+PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY
+SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
+HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
+WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY),
+CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK
+STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
+THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY
+TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO
+THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT
+ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT.
+
+11. Indemnity. Recipient shall be solely responsible for damages arising,
+directly or indirectly, out of its utilization of rights under this License.
+Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc. from
+and against any loss, liability, damages, costs or expenses (including the
+payment of reasonable attorneys fees) arising out of Recipient's use,
+modification, reproduction and distribution of the Subject Software or out of
+any representation or warranty made by Recipient.
+
+12. U.S. Government End Users. The Subject Software is a "commercial item"
+consisting of "commercial computer software" as such terms are defined in
+title 48 of the Code of Federal Regulations and all U.S. Government End Users
+acquire only the rights set forth in this License and are subject to the terms
+of this License.
+
+13. Miscellaneous. This License represents the complete agreement concerning
+subject matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed so as to achieve as nearly as
+possible the same economic effect as the original provision and the remainder
+of this License will remain in effect. This License shall be governed by and
+construed in accordance with the laws of the United States and the State of
+California as applied to agreements entered into and to be performed entirely
+within California between California residents. Any litigation relating to
+this License shall be subject to the exclusive jurisdiction of the Federal
+Courts of the Northern District of California (or, absent subject matter
+jurisdiction in such courts, the courts of the State of California), with
+venue lying exclusively in Santa Clara County, California, with the losing
+party responsible for costs, including without limitation, court costs and
+reasonable attorneys fees and expenses. The application of the United Nations
+Convention on Contracts for the International Sale of Goods is expressly
+excluded. Any law or regulation which provides that the language of a contract
+shall be construed against the drafter shall not apply to this License.
+
+Exhibit A
+
+The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and 13
+of the GLX Public License Version 1.0 (the "License"). You may not use this
+file except in compliance with those sections of the License. You may obtain a
+copy of the License at Silicon Graphics, Inc., attn: Legal Services, 2011 N.
+Shoreline Blvd., Mountain View, CA 94043 or at
+http://www.sgi.com/software/opensource/glx/license.html.
+
+Software distributed under the License is distributed on an "AS IS" basis. ALL
+WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON-
+INFRINGEMENT. See the License for the specific language governing rights and
+limitations under the License.
+
+The Original Software is GLX version 1.2 source code, released February, 1999.
+The developer of the Original Software is Silicon Graphics, Inc. Those
+portions of the Subject Software created by Silicon Graphics, Inc. are
+Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.  3.5. CID
+Font Code Public License
+
+CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License")
+
+Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI")
+hereby grants permission to Recipient (defined below), under SGI's copyrights
+in the Original Software (defined below), to use, copy, modify, merge,
+publish, distribute, sublicense and/or sell copies of Subject Software
+(defined below) in both source code and executable form, and to permit persons
+to whom the Subject Software is furnished in accordance with this License to
+do the same, subject to all of the following terms and conditions, which
+Recipient accepts by engaging in any such use, copying, modifying, merging,
+publication, distributing, sublicensing or selling:
+
+1. Definitions.
+
+    a. "Original Software" means source code of computer software code that is
+    described in Exhibit A as Original Software.
+
+    b. "Modifications" means any addition to or deletion from the substance or
+    structure of either the Original Software or any previous Modifications.
+    When Subject Software is released as a series of files, a Modification
+    means (i) any addition to or deletion from the contents of a file
+    containing Original Software or previous Modifications and (ii) any new
+    file that contains any part of the Original Code or previous
+    Modifications.
+
+    c. "Subject Software" means the Original Software or Modifications or the
+    combination of the Original Software and Modifications, or portions of any
+    of the foregoing.
+
+    d. "Recipient" means an individual or a legal entity exercising rights
+    under the terms of this License. For legal entities, "Recipient" includes
+    any entity that controls, is controlled by, or is under common control
+    with Recipient. For purposes of this definition, "control" of an entity
+    means (i) the power, direct or indirect, to direct or manage such entity,
+    or (ii) ownership of fifty percent (50%) or more of the outstanding shares
+    or beneficial ownership of such entity.
+
+    e. "Required Notice" means the notice set forth in Exhibit A to this
+    License.
+
+    f. "Accompanying Technology" means any software or other technology that
+    is not a Modification and that is distributed or made publicly available
+    by Recipient with the Subject Software. Separate software files that do
+    not contain any Original Software or any previous Modification shall not
+    be deemed a Modification, even if such software files are aggregated as
+    part of a product, or in any medium of storage, with any file that does
+    contain Original Software or any previous Modification.
+
+2. License Terms. All distribution of the Subject Software must be made
+subject to the terms of this License. A copy of this License and the Required
+Notice must be included in any documentation for Subject Software where
+Recipient's rights relating to Subject Software and/or any Accompanying
+Technology are described. Distributions of Subject Software in source code
+form must also include the Required Notice in every file distributed. In
+addition, a ReadMe file entitled "Important Legal Notice" must be distributed
+with each distribution of one or more files that incorporate Subject Software.
+That file must be included with distributions made in both source code and
+executable form. A copy of the License and the Required Notice must be
+included in that file. Recipient may distribute Accompanying Technology under
+a license of Recipient's choice, which may contain terms different from this
+License, provided that (i) Recipient is in compliance with the terms of this
+License, (ii) such other license terms do not modify or supersede the terms of
+this License as applicable to the Subject Software, (iii) Recipient hereby
+indemnifies SGI for any liability incurred by SGI as a result of the
+distribution of Accompanying Technology or the use of other license terms.
+
+3. Termination. This License and the rights granted hereunder will terminate
+automatically if Recipient fails to comply with terms herein and fails to cure
+such breach within 30 days of the breach. Any sublicense to the Subject
+Software that is properly granted shall survive any termination of this
+License absent termination by the terms of such sublicense. Provisions which,
+by their nature, must remain in effect beyond the termination of this License
+shall survive.
+
+4. Trademark Rights. This License does not grant any rights to use any trade
+name, trademark or service mark whatsoever. No trade name, trademark or
+service mark of SGI may be used to endorse or promote products derived from or
+incorporating any Subject Software without prior written permission of SGI.
+
+5. No Other Rights. No rights or licenses not expressly granted hereunder
+shall arise by implication, estoppel or otherwise. Title to and ownership of
+the Original Software at all times remains with SGI. All rights in the
+Original Software not expressly granted under this License are reserved.
+
+6. Compliance with Laws; Non-Infringement. Recipient shall comply with all
+applicable laws and regulations in connection with use and distribution of the
+Subject Software, including but not limited to, all export and import control
+laws and regulations of the U.S. government and other countries. Recipient may
+not distribute Subject Software that (i) in any way infringes (directly or
+contributorily) the rights (including patent, copyright, trade secret,
+trademark or other intellectual property rights of any kind) of any other
+person or entity, or (ii) breaches any representation or warranty, express,
+implied or statutory, which under any applicable law it might be deemed to
+have been distributed.
+
+7. Claims of Infringement. If Recipient at any time has knowledge of any one
+or more third party claims that reproduction, modification, use, distribution,
+import or sale of Subject Software (including particular functionality or code
+incorporated in Subject Software) infringes the third party's intellectual
+property rights, Recipient must place in a well-identified web page bearing
+the title "LEGAL" a description of each such claim and a description of the
+party making each such claim in sufficient detail that a user of the Subject
+Software will know whom to contact regarding the claim. Also, upon gaining
+such knowledge of any such claim, Recipient must conspicuously include the URL
+for such web page in the Required Notice, and in the text of any related
+documentation, license agreement or collateral in which Recipient describes
+end user's rights relating to the Subject Software. If Recipient obtains such
+knowledge after it makes Subject Software available to any other person or
+entity, Recipient shall take other steps (such as notifying appropriate
+mailing lists or newsgroups) reasonably calculated to provide such knowledge
+to those who received the Subject Software.
+
+8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS,
+MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO
+RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
+PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY
+SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
+HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
+WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY),
+CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT
+ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND
+LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED.
+
+10. Indemnity. Recipient shall be solely responsible for damages arising,
+directly or indirectly, out of its utilization of rights under this License.
+Recipient will defend, indemnify and hold SGI and its successors and assigns
+harmless from and against any loss, liability, damages, costs or expenses
+(including the payment of reasonable attorneys fees) arising out of
+(Recipient's use, modification, reproduction and distribution of the Subject
+Software or out of any representation or warranty made by Recipient.
+
+11. U.S. Government End Users. The Subject Software is a "commercial item"
+consisting of "commercial computer software" as such terms are defined in
+title 48 of the Code of Federal Regulations and all U.S. Government End Users
+acquire only the rights set forth in this License and are subject to the terms
+of this License.
+
+12. Miscellaneous. This License represents the complete agreement concerning
+subject matter hereof. If any provision of this License is held to be
+unenforceable by any judicial or administrative authority having proper
+jurisdiction with respect thereto, such provision shall be reformed so as to
+achieve as nearly as possible the same economic effect as the original
+provision and the remainder of this License will remain in effect. This
+License shall be governed by and construed in accordance with the laws of the
+United States and the State of California as applied to agreements entered
+into and to be performed entirely within California between California
+residents. Any litigation relating to this License shall be subject to the
+exclusive jurisdiction of the Federal Courts of the Northern District of
+California (or, absent subject matter jurisdiction in such courts, the courts
+of the State of California), with venue lying exclusively in Santa Clara
+County, California, with the losing party responsible for costs, including
+without limitation, court costs and reasonable attorneys fees and expenses.
+The application of the United Nations Convention on Contracts for the
+International Sale of Goods is expressly excluded. Any law or regulation that
+provides that the language of a contract shall be construed against the
+drafter shall not apply to this License.
+
+Exhibit A
+
+Copyright (c) 1994-1999 Silicon Graphics, Inc.
+
+The contents of this file are subject to the CID Font Code Public License
+Version 1.0 (the "License"). You may not use this file except in compliance
+with the License. You may obtain a copy of the License at Silicon Graphics,
+Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043
+or at http://www.sgi.com/software/opensource/cid/license.html
+
+Software distributed under the License is distributed on an "AS IS" basis. ALL
+WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF
+NON-INFRINGEMENT. See the License for the specific language governing rights
+and limitations under the License.
+
+The Original Software (as defined in the License) is CID font code that was
+developed by Silicon Graphics, Inc. Those portions of the Subject Software (as
+defined in the License) that were created by Silicon Graphics, Inc. are
+Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved.
+
+[NOTE: When using this text in connection with Subject Software delivered
+solely in object code form, Recipient may replace the words "this file" with
+"this software" in both the first and second sentences.] 3.6. Bitstream Vera
+Fonts Copyright
+
+The fonts have a generous copyright, allowing derivative works (as long as
+"Bitstream" or "Vera" are not in the names), and full redistribution (so long
+as they are not *sold* by themselves). They can be be bundled, redistributed
+and sold with any software.
+
+The fonts are distributed under the following copyright:
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a
+trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated documentation
+files (the "Font Software"), to reproduce and distribute the Font Software,
+including without limitation the rights to use, copy, merge, publish,
+distribute, and/or sell copies of the Font Software, and to permit persons to
+whom the Font Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright and trademark notices and this permission notice shall be
+included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular the
+designs of glyphs or characters in the Fonts may be modified and additional
+glyphs or characters may be added to the Fonts, only if the fonts are renamed
+to names not containing either the words "Bitstream" or the word "Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream Vera"
+names.
+
+The Font Software may be sold as part of a larger software package but no copy
+of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL,
+SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO
+USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome Foundation,
+and Bitstream Inc., shall not be used in advertising or otherwise to promote
+the sale, use or other dealings in this Font Software without prior written
+authorization from the Gnome Foundation or Bitstream Inc., respectively. For
+further information, contact: fonts at gnome dot org.  3.7. Bigelow & Holmes
+Inc and URW++ GmbH Luxi font license
+
+Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction
+code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a
+registered trademark of Bigelow & Holmes Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of these Fonts and associated documentation files (the "Font Software"), to
+deal in the Font Software, including without limitation the rights to use,
+copy, merge, publish, distribute, sublicense, and/or sell copies of the Font
+Software, and to permit persons to whom the Font Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice shall be
+included in all copies of one or more of the Font Software.
+
+The Font Software may not be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may not be modified nor may
+additional glyphs or characters be added to the Fonts. This License becomes
+null and void when the Fonts or Font Software have been modified.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++
+GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY
+GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT
+SOFTWARE.
+
+Except as contained in this notice, the names of Bigelow & Holmes Inc. and
+URW++ GmbH. shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in this Font Software without prior written
+authorization from Bigelow & Holmes Inc. and URW++ GmbH.
+
+For further information, contact:
+
+info@urwpp.de or design@bigelowandholmes.com
+
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to zlib v1.2.5, which may be included 
+with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+  version 1.2.5, July 18th, 2005
+
+  Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
+
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+
+  Jean-loup Gailly        Mark Adler
+  jloup@gzip.org          madler@alumni.caltech.edu
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to the following which may be 
+included with JRE 8, JDK 8, and OpenJDK 8, except where noted:
+
+  Apache Commons Math 2.2
+  Apache Derby 10.10.1.2        [included with JDK 8]
+  Apache Jakarta BCEL 5.2 
+  Apache Jakarta Regexp 1.4 
+  Apache Santuario XML Security for Java 1.5.4
+  Apache Xalan-Java 2.7.1 
+  Apache Xerces Java 2.10.0 
+  Apache XML Resolver 1.1 
+  Dynalink 0.5
+
+These components are licensed under the Apache License, Version 2.0.
+See /usr/share/common-licenses/Apache-2.0
+
+-------------------------------------------------------------------------------
+
+
+===============================================================================
+
+JAMVM:
+
+  Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010
+  Robert Lougher <rob@jamvm.org.uk>.
+
+  This program is free software; you can redistribute it and/or
+  modify it under the terms of the GNU General Public License
+  as published by the Free Software Foundation; either version 2,
+  or (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+On Debian systems a full copy of the GNU General Public License, GPL, can be
+found in the file /usr/share/common-licenses/GPL-2.
diff --git a/debian/copyright.cacao b/debian/copyright.cacao
new file mode 100644 (file)
index 0000000..14f310c
--- /dev/null
@@ -0,0 +1,356 @@
+
+===============================================================================
+CACAO
+===============================================================================
+
+This package was debianized by Stephan Michels <stephan@apache.org> on
+Sat, 12 Nov 2005 22:07:41 +0100.
+
+It was downloaded from http://www.cacaojvm.org/
+
+Copyright Holder: CACAO Project <cacao@cacaojvm.org>
+  Copyright (C) 1996-2008 Verein zur Foerderung der freien virtuellen Maschine CACAO
+  Portions Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel,
+   C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
+   E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
+   J. Wenninger, Institut f. Computersprachen - TU Wien
+
+License:
+
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+
+
+On Debian systems a full copy of the GNU General Public License, GPL, can be
+found in the file /usr/share/common-licenses/GPL-2.
+
+
+CACAO uses code from other free software projects.  Only code licensed
+under a GPL compatible license can be merged in.  You can find the
+licenses of third party sources in their respective sources.
+
+
+* src/mm/boehm-gc
+
+Merged in the Boehm-Weiser garbage collector from
+http://www.hpl.hp.com/personal/Hans_Boehm/gc/. 
+
+Copyright (c) 1988, 1989 Hans-J. Boehm, Alan J. Demers
+Copyright (c) 1991-1996 by Xerox Corporation.  All rights reserved.
+Copyright (c) 1996-1999 by Silicon Graphics.  All rights reserved.
+Copyright (c) 1999-2003 by Hewlett-Packard Company. All rights reserved.
+Portions Copyright (c) 1999-2001 by Red Hat, Inc. All rights reserved.
+
+The file linux_threads.c is also
+Copyright (c) 1998 by Fergus Henderson.  All rights reserved.
+
+The files Makefile.am, and configure.in are
+Copyright (c) 2001 by Red Hat Inc. All rights reserved.
+
+Several files supporting GNU-style builds are copyrighted by the Free
+Software Foundation, and carry a different license from that given
+below.
+
+THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
+OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+
+Permission is hereby granted to use or copy this program
+for any purpose,  provided the above notices are retained on all copies.
+Permission to modify the code and to distribute modified code is granted,
+provided the above notices are retained, and a notice that the code was
+modified is included with the above copyright notice.
+
+A few of the files needed to use the GNU-style build procedure come with
+slightly different licenses, though they are all similar in spirit.  A few
+are GPL'ed, but with an exception that should cover all uses in the
+collector.  (If you are concerned about such things, I recommend you look
+at the notice in config.guess or ltmain.sh.)
+
+The files copyrighted by Hewlett-Packard Company have the notice:
+
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+
+* src/fdlibm
+
+fdlimb contains general algorithms useful for runtimes and compilers to
+support strict double and float mathematical operations.
+
+fdlibm files carry the following notices:
+
+  Copyright (c) 1991 by AT&T.
+
+  Permission to use, copy, modify, and distribute this software for any
+  purpose without fee is hereby granted, provided that this entire notice
+  is included in all copies of any software which is or includes a copy
+  or modification of this software and in all copies of the supporting
+  documentation for such software.
+
+  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
+  WARRANTY.  IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY
+  REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
+  OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
+
+  Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+
+  Developed at SunPro, a Sun Microsystems, Inc. business.
+  Permission to use, copy, modify, and distribute this
+  software is freely granted, provided that this notice
+  is preserved.
+
+The upstream for fdlibm is libgcj (http://gcc.gnu.org/java/), they sync
+again with the 'real' upstream (http://www.netlib.org/fdlibm/readme).
+
+
+* src/threads/green/{locks.[ch],threadio.[ch],threads.[ch]}
+
+This files are taken from Kaffe.org VM available at
+http://www.kaffe.org/.  Kaffe's license.terms file is located in the
+top directory of the source code.  The current license of Kaffe is the
+same as of CACAO, GPL Version 2.
+
+
+* src/vm/jit/{i386,x86_64}/{dis-asm.h,i386-dis.c}
+
+Print i386 instructions for GDB, the GNU debugger.
+Copyright 1988, 1989, 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+
+This file is part of GDB.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.  */
+
+
+* src/vm/jit/{i386,x86_64}/dis-asm.h
+
+Interface between the opcode library and its callers.
+
+Copyright 2001, 2002 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor,
+Boston, MA  02110-1301 USA
+
+Written by Cygnus Support, 1993.
+
+The opcode library (libopcodes.a) provides instruction decoders for
+a large variety of instruction sets, callable with an identical
+interface, for making instruction-processing programs more independent
+of the instruction set being processed.
+
+
+* src/vm/jit/powerpc/{ppc.h,ppc-dis.c,ppc-opc.c}
+
+Copyright 1994, 1995, 2000, 2001, 2002 Free Software Foundation, Inc.
+Written by Ian Lance Taylor, Cygnus Support
+
+This file is part of GDB, GAS, and the GNU binutils.
+
+GDB, GAS, and the GNU binutils are free software; you can redistribute
+them and/or modify them under the terms of the GNU General Public
+License as published by the Free Software Foundation; either version
+2, or (at your option) any later version.
+
+GDB, GAS, and the GNU binutils are distributed in the hope that they
+will be useful, but WITHOUT ANY WARRANTY; without even the implied
+warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this file; see the file COPYING.  If not, write to the Free
+Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+Boston, MA  02110-1301 USA.
+
+
+* src/lib/classes/*
+
+GNU Classpath is licensed under the terms of the GNU General Public 
+License  with the following clarification and special exception:
+
+   "Linking this library statically or dynamically with other modules 
+  is making a combined work based on this library. Thus, the terms and 
+  conditions of the GNU General Public License cover the whole 
+  combination.
+
+    As a special exception, the copyright holders of this library give 
+  you permission to link this library with independent modules to 
+  produce an executable, regardless of the license terms of these 
+  independent modules, and to copy and distribute the resulting 
+  executable under terms of your choice, provided that you also meet, 
+  for each linked independent module, the terms and conditions of the 
+  license of that module. An independent module is a module which is 
+  not derived from or based on this library. If you modify this library, 
+  you may extend this exception to your version of the library, but you 
+  are not obligated to do so. If you do not wish to do so, delete this 
+  exception statement from your version."
+
+See license.terms for the text of the GNU General Public License.
+
+More information on GNU Classpath is available from 
+http://www.gnu.org/software/classpath/classpath.html.
+
+
+* m4/{iconv.m4,lib-ld.m4,lib-link.m4,lib-prefix.m4}
+
+Copyright (C) 1996-2003 Free Software Foundation, Inc.
+This file is free software, distributed under the terms of the GNU
+General Public License.  As a special exception to the GNU General
+Public License, this file may be distributed as part of a program
+that contains a configuration script generated by Autoconf, under
+the same distribution terms as the rest of that program.
+
+
+* src/toolbox/avl.[ch]
+
+libavl - library for manipulation of binary trees.
+Copyright (C) 1998-2002 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+The author may be contacted at <blp@gnu.org> on the Internet, or
+write to Ben Pfaff, Stanford University, Computer Science Dept., 353
+Serra Mall, Stanford CA 94305, USA.
+
+
+* src/vm/unzip.[ch]
+
+Copyright (C) 1998 Gilles Vollant
+
+This unzip package allow extract file from .ZIP file, compatible with PKZip 2.04g
+  WinZip, InfoZip tools and compatible.
+Encryption and multi volume ZipFile (span) are not supported.
+Old compressions used by old PKZip 1.x are not supported
+
+THIS IS AN ALPHA VERSION. AT THIS STAGE OF DEVELOPPEMENT, SOMES API OR STRUCTURE
+CAN CHANGE IN FUTURE VERSION !!
+I WAIT FEEDBACK at mail info@winimage.com
+Visit also http://www.winimage.com/zLibDll/unzip.htm for evolution
+
+Condition of use and distribution are the same than zlib :
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+
+src/mm/boehm-gc/libatomic_ops-1.2/src/atomic_ops/sysdeps/armcc
+
+ * Copyright (c) 2007 by NEC LE-IT:               All rights reserved.
+ * A transcription of ARMv6 atomic operations for the ARM Realview Toolchain.
+ * This code works with armcc from RVDS 3.1
+ * This is based on work in gcc/arm.h by
+ *   Copyright (c) 1991-1994 by Xerox Corporation.  All rights reserved.
+ *   Copyright (c) 1996-1999 by Silicon Graphics.  All rights reserved.
+ *   Copyright (c) 1999-2003 by Hewlett-Packard Company. All rights reserved.
+ *
+ *
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
+ * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program
+ * for any purpose,  provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is granted,
+ * provided the above notices are retained, and a notice that the code was
+ * modified is included with the above copyright notice.
+
+src/mm/boehm-gc/include/private
+
+  Copyright (c) 2004-2005 Andrei Polushin
+
+  Permission is hereby granted, free of charge,  to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to deal
+  in the Software without restriction,  including without limitation the rights
+  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+  The above copyright notice and this permission notice shall be included in
+  all copies or substantial portions of the Software.
+
+contrib/vmlog:
+
+/* Copyright (C) 2006 Edwin Steiner <edwin.steiner@gmx.net> */
+/*               2007 Peter Molnar <peter.molnar@wm.sk>     */
+
+/* This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+Some of the build files are
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
diff --git a/debian/excludelist.jdk.jtx b/debian/excludelist.jdk.jtx
new file mode 100644 (file)
index 0000000..b447e78
--- /dev/null
@@ -0,0 +1,205 @@
+# Fail to compile
+javax/imageio/metadata/DOML3Node.java
+javax/swing/border/Test4856008.java
+
+# Failed due to java.lang.UnsatisfiedLinkError: sun.java2d.opengl.OGLContext.getOGLIdString()Ljava/lang/String
+java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java
+sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java
+sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java
+sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java
+sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java
+sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java
+sun/java2d/OpenGL/GradientPaints.java
+sun/java2d/pipe/MutableColorTest/MutableColorTest.java
+sun/java2d/SunGraphics2D/DrawImageBilinear.java
+sun/java2d/SunGraphics2D/PolyVertTest.java
+sun/java2d/SunGraphics2D/SimplePrimQuality.java
+
+# Failed due to connection refused
+#sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java
+
+# Failed due to network unreachable
+#java/net/ipv6tests/TcpTest.java
+
+# Failed due to java.security.ProviderException: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_DEVICE_ERROR
+sun/security/pkcs11/KeyAgreement/TestDH.java
+
+# Failed with exit code 1
+sun/nio/cs/Test4200310.sh
+sun/tools/jrunscript/jrunscriptTest.sh
+
+# Unexpected exit from test [exit code: 0]
+java/awt/Graphics/DrawImageBG/SystemBgColorTest.java
+javax/swing/JInternalFrame/6725409/bug6725409.java
+
+# Test error
+java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html
+
+# Access denied (java.awt.AWTPermission createRobot)
+java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.html
+
+# java.lang.RuntimeException: Test failed.
+java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.html
+java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.html
+
+# java.lang.RuntimeException: The test was not completed
+java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.html
+
+# java.lang.AssertionError: Some tests failed
+tools/launcher/VersionCheck.java
+
+# `main' threw exception: java.lang.ClassNotFoundException: javax/crypto/SunJCE_c
+java/lang/reflect/Generics/Probe.java
+
+# `main' threw exception: java.lang.Exception: Factory.createProvider: Should error with non-void probes
+com/sun/tracing/BasicFunctionality.java
+
+# `main' threw exception: java.lang.Exception: Test failed: jdwp doesn't like -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n,timeout=0,mutf8=y,quiet=y,stdalloc=y,strict=n
+com/sun/jdi/OptionTest.java
+
+# `main' threw exception: java.lang.RuntimeException: Date/Number formatting/parsing error.
+java/text/Format/DateFormat/Bug4823811.java
+
+# java.lang.RuntimeException: Outline was not detected
+java/awt/font/Rotate/TranslatedOutlineTest.java
+
+# java.lang.RuntimeException: Ratio of blue to red is too great: 0.13329928498467825
+java/awt/Graphics2D/DrawString/RotTransText.java
+
+# java.lang.RuntimeException: Step 1: Error: can't bring a focus on Frame by clicking on it
+java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java
+
+# java.lang.RuntimeException: Test failed - exec got IO exception
+sun/tools/jhat/HatHeapDump1Test.java
+
+# java.lang.RuntimeException: Native2ascii  could not be written. broken.
+# native2ascii can write to source dir.  Test should ensure location is unwritable.
+sun/tools/native2ascii/NativeErrors.java
+
+# java.lang.RuntimeException: Test failed at 0-0 rgb=0xffb7c7d5
+sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java
+
+# java.lang.RuntimeException: TestFAILED: some of the testcases are failed
+java/awt/xembed/server/RunTestXEmbed.java
+
+# java.lang.RuntimeException: initCause of Exception not thrown
+java/awt/print/PrinterJob/ExceptionTest.java
+
+# `main' threw exception: java.lang.RuntimeException: java.lang.RuntimeException: Invalid result of the ColorConvertOp for ColorSpace:CS_LINEAR_RGB Data type:TYPE_BYTE. Golden image:BufferedImage@7b2be1bd: type = 5 ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@7df17e77 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 256 height = 256 #numDataElements 3 dataOff[0] = 2
+sun/java2d/cmm/ColorConvertOp/ColConvCCMTest.java
+
+# `main' threw exception: java.lang.RuntimeException: java.lang.RuntimeException: Invalid result of the ColorConvertOp for ColorSpace:CS_LINEAR_RGB Image type:TYPE_INT_ARGB. Golden image:LRGB.png
+sun/java2d/cmm/ColorConvertOp/ColConvDCMTest.java
+sun/java2d/cmm/ColorConvertOp/MTColConvTest.java
+
+# java.lang.StackOverflowError
+java/beans/XMLEncoder/javax_swing_tree_TreePath.java
+
+# sun.awt.SunToolkit$OperationTimedOut
+java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.html
+java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java
+java/awt/Component/F10TopToplevel/F10TopToplevel.html
+java/awt/Component/isLightweightCrash/StubPeerCrash.java
+java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java
+java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java
+java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java
+java/awt/dnd/Button2DragTest/Button2DragTest.html
+java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.html
+java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java
+java/awt/event/KeyEvent/CorrectTime/CorrectTime.java
+java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java
+java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.html
+java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.html
+java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java
+java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java
+java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.html
+java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.html
+java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java
+java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java
+java/awt/EventQueue/6638195/bug6638195.java
+java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.html
+java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java
+java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java
+java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java
+java/awt/Focus/ChoiceFocus/ChoiceFocus.java
+java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java
+java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java
+java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java
+java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.html
+java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java
+java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java
+java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java
+java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java
+java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.html
+java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java
+java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java
+java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java
+java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java
+java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java
+java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java
+java/awt/Focus/ToFrontFocusTest/ToFrontFocus.html
+java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java
+java/awt/Focus/TypeAhead/TestFocusFreeze.java
+java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.html
+java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java
+java/awt/Frame/DynamicLayout/DynamicLayout.java
+java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java
+java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java
+java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java
+java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java
+java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java
+java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java
+java/awt/Insets/CombinedTestApp1.java
+java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.html
+java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.html
+java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html
+java/awt/List/ActionAfterRemove/ActionAfterRemove.java
+java/awt/List/SetBackgroundTest/SetBackgroundTest.java
+java/awt/List/SingleModeDeselect/SingleModeDeselect.java
+java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java
+java/awt/Mixing/LWPopupMenu.java
+java/awt/Mixing/MixingOnDialog.java
+java/awt/Mixing/OpaqueTest.java
+java/awt/Mixing/OverlappingButtons.java
+java/awt/Mixing/Validating.java
+java/awt/Mixing/ValidBounds.java
+java/awt/Modal/LWModalTest/LWModalTest.java
+java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java
+java/awt/Modal/NpeOnClose/NpeOnCloseTest.java
+java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.html
+java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.html
+java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java
+java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java
+java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.html
+java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.html
+java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java
+java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java
+java/awt/Window/GrabSequence/GrabSequence.java
+javax/swing/border/Test4856008.java
+javax/swing/JColorChooser/Test6541987.java
+javax/swing/JComboBox/6607130/bug6607130.java
+javax/swing/JInternalFrame/6647340/bug6647340.java
+javax/swing/JPopupMenu/6691503/bug6691503.java
+
+# Errors
+# Invalid key: cte_test
+closed/com/sun/org/apache/xml/internal/utils/Test.java
+# Can't find source file: DisplayModeChanger.java
+java/awt/FullScreen/UninitializedDisplayModeChangeTest/UninitializedDisplayModeChangeTest.java
+# java interrupted! (timed out?)
+java/awt/PrintJob/EdgeTest/EdgeTest.java
+java/awt/PrintJob/MultipleEnd/MultipleEnd.java
+sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java
+# java.lang.IllegalAccessException: Class com.sun.javatest.regtest.MainWrapper$MainThread can not access a member of class NotBound with modifiers "public static"
+java/nio/channels/DatagramChannel/NotBound.java
+
+# Something fishy going on here...
+java/awt/FontClass/CreateFont/fileaccess/FontFile.java
+java/awt/FontClass/CreateFont/DeleteFont.sh
+java/awt/FontClass/CreateFont/bigfont.html
+
+# This test cannot be compiled because it's base class
+# LocaleTestFmwk is deleted during the "liberation" phase
+# of build process (this class has questionable licence).
+java/util/Locale/LocaleEnhanceTest.java
+
diff --git a/debian/excludelist.langtools.jtx b/debian/excludelist.langtools.jtx
new file mode 100644 (file)
index 0000000..57fb5b4
--- /dev/null
@@ -0,0 +1,29 @@
+# Compilation passed unexpectedly
+tools/javac/annotations/6359949/T6359949a.java
+tools/javac/annotations/neg/OverrideNo.java
+tools/javac/OverrideChecks/Private.java
+
+# java.lang.AssertionError: T6392782$CountNodes: expected: 384 found: 372
+tools/javac/api/T6392782.java
+
+# Output does not match reference file: T6384542.out, line 7
+tools/javac/enum/6384542/T6384542.java
+
+# An exception has occurred in the compiler (1.7.0_0-internal)
+#java.lang.AssertionError: T?
+#      at com.sun.tools.javac.code.Types.containedBy(Types.java:719)
+#      at com.sun.tools.javac.code.Types$8.visitWildcardType(Types.java:819)
+#      at com.sun.tools.javac.code.Types$8.visitWildcardType(Types.java:771)
+tools/javac/generics/wildcards/6651719/T6651719b.java
+
+# exit code 1
+tools/javac/Paths/Diagnostics.sh
+
+# `main' threw exception: java.lang.Exception: 1 errors found
+tools/javac/VersionOpt.java
+
+# `main' threw exception: java.lang.Error: 40/211 test cases passed
+tools/javap/ListTest.java
+
+# `main' threw exception: java.lang.Error: 64/256 test cases passed
+tools/javap/OptionTest.java
diff --git a/debian/font.properties.ja b/debian/font.properties.ja
new file mode 100644 (file)
index 0000000..9191671
--- /dev/null
@@ -0,0 +1,197 @@
+# @(#)font.properties.ja.linux 1.7 02/03/07
+#
+# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+#
+
+# Component Font Mappings
+#
+serif.0=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
+serif.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
+serif.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+serif.bold.0=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1
+serif.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+serif.bolditalic.0=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1
+serif.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+sansserif.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
+sansserif.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+sansserif.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
+sansserif.italic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+sansserif.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
+sansserif.bold.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+sansserif.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
+sansserif.bolditalic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+monospaced.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+monospaced.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+monospaced.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+monospaced.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+monospaced.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+monospaced.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+monospaced.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+monospaced.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialog.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
+dialog.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialog.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
+dialog.italic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialog.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
+dialog.bold.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialog.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
+dialog.bolditalic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialoginput.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+dialoginput.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialoginput.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+dialoginput.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialoginput.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+dialoginput.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialoginput.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+dialoginput.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+# Missing Glyph Character
+#
+default.char=274f
+
+# Component Font Character Encodings
+#
+fontcharset.serif.0=sun.io.CharToByteISO8859_1
+fontcharset.serif.1=sun.awt.motif.CharToByteX11JIS0208
+
+fontcharset.sansserif.0=sun.io.CharToByteISO8859_1
+fontcharset.sansserif.1=sun.awt.motif.CharToByteX11JIS0208
+
+fontcharset.monospaced.0=sun.io.CharToByteISO8859_1
+fontcharset.monospaced.1=sun.awt.motif.CharToByteX11JIS0208
+
+fontcharset.dialog.0=sun.io.CharToByteISO8859_1
+fontcharset.dialog.1=sun.awt.motif.CharToByteX11JIS0208
+
+fontcharset.dialoginput.0=sun.io.CharToByteISO8859_1
+fontcharset.dialoginput.1=sun.awt.motif.CharToByteX11JIS0208
+
+# Exclusion Ranges
+#
+
+# XFontSet Information
+#
+fontset.serif.plain=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.serif.italic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.serif.bold=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.serif.bolditalic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.sansserif.plain=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.sansserif.italic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.sansserif.bold=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.sansserif.bolditalic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.monospaced.plain=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.monospaced.italic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.monospaced.bold=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.monospaced.bolditalic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialog.italic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialog.bold=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialog.bolditalic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialog.plain=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialoginput.italic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialoginput.bold=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialoginput.bolditalic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialoginput.plain=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.default=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
diff --git a/debian/font.properties.ja.wgy_zenhai b/debian/font.properties.ja.wgy_zenhai
new file mode 100644 (file)
index 0000000..119822d
--- /dev/null
@@ -0,0 +1,244 @@
+# @(#)font.properties.ja.linux 1.7 02/03/07
+#
+# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+#
+
+# Component Font Mappings
+#
+serif.0=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
+serif.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+serif.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
+serif.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+serif.italic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+serif.bold.0=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1
+serif.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+serif.bold.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+serif.bolditalic.0=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1
+serif.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+serif.bolditalic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+sansserif.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
+sansserif.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+sansserif.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+sansserif.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
+sansserif.italic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+sansserif.italic.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+sansserif.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
+sansserif.bold.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+sansserif.bold.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+sansserif.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
+sansserif.bolditalic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+sansserif.bolditalic.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+monospaced.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+monospaced.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+monospaced.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+monospaced.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+monospaced.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+monospaced.italic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+monospaced.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+monospaced.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+monospaced.bold.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+monospaced.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+monospaced.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+monospaced.bolditalic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialog.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
+dialog.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+dialog.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialog.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
+dialog.italic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+dialog.italic.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialog.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
+dialog.bold.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+dialog.bold.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialog.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
+dialog.bolditalic.1=-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+dialog.bolditalic.2=-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialoginput.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+dialoginput.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+dialoginput.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialoginput.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+dialoginput.italic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+dialoginput.italic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialoginput.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+dialoginput.bold.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+dialoginput.bold.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+dialoginput.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
+dialoginput.bolditalic.1=-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+dialoginput.bolditalic.2=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+# Missing Glyph Character
+#
+default.char=274f
+
+# Component Font Character Encodings
+#
+fontcharset.serif.0=sun.io.CharToByteISO8859_1
+fontcharset.serif.1=sun.awt.motif.CharToByteX11JIS0208
+fontcharset.serif.2=sun.awt.motif.CharToByteX11JIS0208
+
+fontcharset.sansserif.0=sun.io.CharToByteISO8859_1
+fontcharset.sansserif.1=sun.awt.motif.CharToByteX11JIS0208
+fontcharset.sansserif.2=sun.awt.motif.CharToByteX11JIS0208
+
+fontcharset.monospaced.0=sun.io.CharToByteISO8859_1
+fontcharset.monospaced.1=sun.awt.motif.CharToByteX11JIS0208
+fontcharset.monospaced.2=sun.awt.motif.CharToByteX11JIS0208
+
+fontcharset.dialog.0=sun.io.CharToByteISO8859_1
+fontcharset.dialog.1=sun.awt.motif.CharToByteX11JIS0208
+fontcharset.dialog.2=sun.awt.motif.CharToByteX11JIS0208
+
+fontcharset.dialoginput.0=sun.io.CharToByteISO8859_1
+fontcharset.dialoginput.1=sun.awt.motif.CharToByteX11JIS0208
+fontcharset.dialoginput.2=sun.awt.motif.CharToByteX11JIS0208
+
+# Exclusion Ranges
+#
+
+# XFontSet Information
+#
+fontset.serif.plain=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.serif.italic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.serif.bold=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.serif.bolditalic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.sansserif.plain=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.sansserif.italic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.sansserif.bold=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.sansserif.bolditalic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.monospaced.plain=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.monospaced.italic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.monospaced.bold=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.monospaced.bolditalic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialog.italic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialog.bold=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialog.bolditalic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialog.plain=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialoginput.italic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialoginput.bold=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialoginput.bolditalic=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.dialoginput.plain=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
+fontset.default=\
+-sony-fixed-medium-r-normal--*-%d-*-*-c-*-jisx0201.1976-0,\
+-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
+-kochi-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0,\
+-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
+
diff --git a/debian/generate-debian-orig.sh b/debian/generate-debian-orig.sh
new file mode 100644 (file)
index 0000000..8bb429a
--- /dev/null
@@ -0,0 +1,72 @@
+#!/bin/sh
+
+tarballs="corba.tar.gz hotspot.tar.gz jaxp.tar.gz jaxws.tar.gz jdk.tar.gz langtools.tar.gz openjdk.tar.gz"
+# AArch64 hotspot
+aarch64_hsname=f50993b6c38d
+tarballs="$tarballs $aarch64_hsname.tar.gz"
+jamvmtb=jamvm-ac22c9948434e528ece451642b4ebde40953ee7e.tar.gz
+cacaotb=cacao-e215e36be9fc.tar.gz
+tarballdir=7u55
+version=7u55-2.4.7
+base=openjdk-7
+pkgdir=$base-$version
+origtar=${base}_${version}.orig.tar.gz
+
+icedtea_checkout=icedtea7-2.4.7
+debian_checkout=openjdk7
+
+if [ -d $pkgdir ]; then
+    echo directory $pkgdir already exists
+    exit 1
+fi
+
+if [ -d $pkgdir.orig ]; then
+    echo directory $pkgdir.orig already exists
+    exit 1
+fi
+
+if [ -f $origtar ]; then
+    echo "Using existing $origtar"
+    tar xf $origtar
+    if [ -d $pkgdir.orig ]; then
+       mv $pkgdir.orig $pkgdir
+    fi
+    tar -c -f - -C $icedtea_checkout . | tar -x -f - -C $pkgdir
+    rm -rf $pkgdir/.hg
+else
+    echo "Creating new $pkgdir.orig/"
+    rm -rf $pkgdir.orig
+    mkdir -p $pkgdir.orig
+    case "$base" in
+      openjdk*)
+        for i in $tarballs; do
+            cp -p $tarballdir/$i $pkgdir.orig/
+        done
+       if [ -n "$cacaotb" ]; then
+          cp -p $tarballdir/$cacaotb $pkgdir.orig/
+       fi
+        cp -p $tarballdir/$jamvmtb $pkgdir.orig/
+      ;;
+    esac
+    tar -c -f - -C $icedtea_checkout . | tar -x -f - -C $pkgdir.orig
+    (
+      cd $pkgdir.orig
+      sh autogen.sh
+      rm -rf autom4te.cache
+    )
+    cp -a $pkgdir.orig $pkgdir
+    rm -rf $pkgdir.orig/.hg
+fi
+
+echo "Build debian diff in $pkgdir/"
+cp -a $debian_checkout $pkgdir/debian
+(
+  cd $pkgdir
+  #bash debian/update-shasum.sh
+  #bash debian/update-hgrev.sh
+  ls
+  patch -p1 < debian/patches/icedtea-patch.diff
+  sh autogen.sh
+  rm -rf autom4te.cache
+  echo "aarch64 http://openjdk.linaro.org/hotspot $aarch64_hsname $(sha256sum $aarch64_hsname.tar.gz) $aarch64_hsname.tar.gz" >> hotspot.map
+)
diff --git a/debian/generate-dfsg-zip.sh b/debian/generate-dfsg-zip.sh
new file mode 100644 (file)
index 0000000..200be94
--- /dev/null
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+if [ ! -f "$1" ]; then
+  echo "does not exist: $1"
+  exit 1
+fi
+
+jdkdir=$(tar tf $1 | head -1 | sed 's,/.*,,')
+echo $jdkdir
+
+dist=$(lsb_release -is)
+
+echo "not needed anymore. 2.4.4 has both jdk and langtools cleaned up"
+exit 1
+
+# Untar openjdk source zip.
+rm -rf openjdk
+case "$1" in
+  *.zip) unzip -q -x $1 ;;
+  *.tar*) tar xf $1;;
+esac
+
+case "$1" in
+  *jdk*)
+    echo "Cleanup jdk tarball..."
+    # Remove J2DBench sources, some of which have questionable license
+    # headers.
+    rm -rf \
+        $jdkdir/src/share/demo/java2d/J2DBench
+
+    # binary files
+    rm -f \
+        $jdkdir/test/sun/net/idn/*.spp
+
+    rm -rf \
+        $jdkdir/test/sun/security/pkcs11/nss/lib/*
+
+    rm -f \
+        $jdkdir/test/java/util/Locale/data/deflocale.sh \
+        $jdkdir/test/java/util/Locale/data/deflocale.rhel5 \
+        $jdkdir/test/java/util/Locale/data/deflocale.rhel5.fmtasdefault \
+        $jdkdir/test/java/util/Locale/data/deflocale.sol10.fmtasdefault \
+        $jdkdir/test/java/util/Locale/data/deflocale.win7 \
+        $jdkdir/test/java/util/Locale/data/deflocale.win7.fmtasdefault
+;;
+
+  *langtools*)
+    echo "Cleanup langtools tarball..."
+    rm -rf $jdkdir/test/tools/javac/T5090006/broken.jar
+;;
+
+esac
+
+# Create new zip with new name.
+
+NEW_ZIP=$(echo $1 | sed -e 's/\.tar.gz/-dfsg.tar.gz/;s/\.zip/-dfsg.tar.gz/')
+GZIP=-9v tar -cz -f $NEW_ZIP $jdkdir
+
+# Remove old unzipped openjdk dir.
+rm -rf $jdkdir
diff --git a/debian/jvm.cfg-default b/debian/jvm.cfg-default
new file mode 100644 (file)
index 0000000..d886ba8
--- /dev/null
@@ -0,0 +1,5 @@
+# jvm.cfg-default - default jvm configuration which is used if no jvm.cfg
+# is found. After unpacking the file jvm.cfg doesn't exist yet (config file),
+# in this case use this file instead, so that the VM can be used before
+# configuration of the runtime package.
+-server KNOWN
diff --git a/debian/mauve_tests b/debian/mauve_tests
new file mode 100644 (file)
index 0000000..edba589
--- /dev/null
@@ -0,0 +1,2570 @@
+javax.xml.xpath.XPath
+javax.xml.parsers.DocumentBuilder.PR27864
+javax.xml.parsers.DocumentBuilder.parseSimpleXML
+javax.crypto.spec.TestOfPBEKeySpec
+javax.crypto.spec.TestOfSecretKeySpec
+javax.accessibility.AccessibleContext.getAccessibleRelationSet
+javax.imageio.plugins.jpeg.TestJPEGImageReadParam
+javax.imageio.plugins.jpeg.TestJPEGHuffmanTable
+javax.imageio.plugins.jpeg.TestJPEGQTable
+javax.imageio.stream.IIOByteBuffer.setOffset
+javax.imageio.stream.IIOByteBuffer.setLength
+javax.imageio.stream.IIOByteBuffer.setData
+javax.imageio.spi.ServiceRegistry.getServiceProviderByClass
+javax.imageio.spi.ServiceRegistry.deregisterAll
+javax.imageio.spi.ServiceRegistry.getCategories
+javax.imageio.spi.ServiceRegistry.lookupProviders
+javax.imageio.spi.ServiceRegistry.registerServiceProvider
+javax.imageio.spi.IIOServiceProvider.getVersion
+javax.imageio.spi.IIOServiceProvider.getVendorName
+javax.imageio.spi.ImageOutputStreamSpi.ImageOutputStreamSpi
+javax.imageio.spi.ImageOutputStreamSpi.needsCacheFile
+javax.imageio.spi.ImageOutputStreamSpi.canUseCacheFile
+javax.imageio.spi.ImageReaderWriterSpi.getNativeImageMetadataFormatName
+javax.imageio.spi.ImageReaderWriterSpi.getFileSuffixes
+javax.imageio.spi.ImageReaderWriterSpi.getExtraImageMetadataFormatNames
+javax.imageio.spi.ImageReaderWriterSpi.getPluginClassName
+javax.imageio.spi.ImageReaderWriterSpi.getNativeStreamMetadataFormatName
+javax.imageio.spi.ImageReaderWriterSpi.getExtraStreamMetadataFormatNames
+javax.imageio.spi.ImageReaderWriterSpi.getMIMETypes
+javax.imageio.spi.ImageReaderWriterSpi.isStandardImageMetadataFormatSupported
+javax.imageio.spi.ImageReaderWriterSpi.getFormatNames
+javax.imageio.spi.ImageReaderWriterSpi.isStandardStreamMetadataFormatSupported
+javax.imageio.spi.ImageInputStreamSpi.ImageInputStreamSpi
+javax.imageio.spi.ImageInputStreamSpi.needsCacheFile
+javax.imageio.spi.ImageInputStreamSpi.canUseCacheFile
+javax.imageio.spi.ImageTranscoderSpi.ImageTranscoderSpi
+javax.imageio.spi.IIORegistry.getDefaultInstance
+javax.naming.CompoundName.simple
+javax.naming.directory.BasicAttribute.Enumerate
+javax.naming.CompositeName.composite
+javax.management.ObjectName.apply
+javax.management.ObjectName.Parsing
+javax.management.ObjectName.ParsingJDK6
+javax.management.ObjectName.applyJDK6
+javax.management.openmbean.ArrayType.IsValue
+javax.management.openmbean.ArrayType.Constructor2
+javax.management.openmbean.ArrayType.Equals
+javax.management.openmbean.ArrayType.IsPrimitiveArray
+javax.management.openmbean.ArrayType.GetArrayType
+javax.management.openmbean.ArrayType.HashCode
+javax.management.openmbean.ArrayType.GetPrimitiveArrayType
+javax.management.openmbean.ArrayType.Constructor1
+javax.management.openmbean.CompositeDataInvocationHandler.Test
+javax.management.MBeanServerPermission.Constructor
+javax.security.auth.login.TestOfPR25202
+javax.print.SimpleDoc.constructor
+javax.print.SimpleDoc.getStreamForBytes
+javax.print.SimpleDoc.getAttributes
+javax.print.SimpleDoc.getReaderForText
+javax.print.DocFlavor.parseMimeType
+javax.print.attribute.TextSyntax.constructors
+javax.print.attribute.ResolutionSyntax.simple
+javax.print.attribute.EnumSyntax.serialize
+javax.print.attribute.EnumSyntax.equals
+javax.print.attribute.AttributeSetUtilities.simple
+javax.print.attribute.Size2DSyntax.simple
+javax.print.attribute.SetOfIntegerSyntax.Simple
+javax.print.attribute.HashAttributeSet.populatedSet
+javax.print.attribute.HashAttributeSet.nullTests
+javax.print.attribute.HashAttributeSet.emptySet
+javax.print.attribute.standard.MediaSize.userClass
+javax.swing.JWindow.isRootPaneCheckingEnabled
+javax.swing.JSplitPane.setComponent
+javax.swing.JSplitPane.setResizeWeight
+javax.swing.JSplitPane.getDividerLocation
+javax.swing.JSplitPane.getInputMap
+javax.swing.JSplitPane.getActionMap
+javax.swing.JSplitPane.paramString
+javax.swing.JSplitPane.Constructor
+javax.swing.JOptionPane.getInputMap
+javax.swing.JTabbedPane.getInputMap
+javax.swing.JTabbedPane.Mnemonic
+javax.swing.JTabbedPane.remove
+javax.swing.JToggleButton.constructor
+javax.swing.JToggleButton.actionEvent
+javax.swing.JToggleButton.isFocusable
+javax.swing.JToggleButton.uidelegate
+javax.swing.JToggleButton.getActionCommand
+javax.swing.JToggleButton.model
+javax.swing.JToggleButton.click
+javax.swing.text.View.getResizeWeight
+javax.swing.text.View.getMaximumSpan
+javax.swing.text.View.getMinimumSpan
+javax.swing.text.View.getAlignment
+javax.swing.text.GapContent.getString
+javax.swing.text.GapContent.GapContentTest
+javax.swing.text.GapContent.length
+javax.swing.text.GapContent.constructors
+javax.swing.text.GapContent.insertString
+javax.swing.text.GapContent.getChars
+javax.swing.text.GapContent.PositionTest
+javax.swing.text.GapContent.remove
+javax.swing.text.ElementIterator.ElementIteratorTest
+javax.swing.text.AbstractDocument.BranchElement.getStartOffset
+javax.swing.text.AbstractDocument.BranchElement.getElementIndexNullPointer
+javax.swing.text.AbstractDocument.BranchElement.BranchElementTest
+javax.swing.text.AbstractDocument.BranchElement.getElementIndex
+javax.swing.text.AbstractDocument.LeafElement.getStartOffset
+javax.swing.text.AbstractDocument.getDocumentProperties
+javax.swing.text.AbstractDocument.ElementChange2
+javax.swing.text.AbstractDocument.AbstractDocumentTest
+javax.swing.text.AbstractDocument.ElementChange
+javax.swing.text.AbstractDocument.filterTest
+javax.swing.text.MaskFormatter.MaskFormatterTest
+javax.swing.text.DefaultFormatter.getValueClass
+javax.swing.text.PlainDocument.getRootElements
+javax.swing.text.PlainDocument.getDocumentProperties
+javax.swing.text.PlainDocument.removeJoinesLines
+javax.swing.text.PlainDocument.multipleLeafs
+javax.swing.text.PlainDocument.getText
+javax.swing.text.PlainDocument.getLength
+javax.swing.text.PlainDocument.createPosition
+javax.swing.text.PlainDocument.insertUpdate
+javax.swing.text.PlainDocument.insertString
+javax.swing.text.PlainDocument.PlainDocumentTest
+javax.swing.text.AttributeSet.isEqual
+javax.swing.text.Segment.clone
+javax.swing.text.Segment.first
+javax.swing.text.Segment.setIndex
+javax.swing.text.Segment.last
+javax.swing.text.Segment.getIndex
+javax.swing.text.Segment.current
+javax.swing.text.Segment.next
+javax.swing.text.Segment.isPartialReturn
+javax.swing.text.Segment.getEndIndex
+javax.swing.text.Segment.setPartialReturn
+javax.swing.text.Segment.getBeginIndex
+javax.swing.text.Segment.constructors
+javax.swing.text.Segment.toString
+javax.swing.text.Segment.previous
+javax.swing.text.TextAction.augmentList
+javax.swing.text.TabSet.getTab
+javax.swing.text.TabSet.constructor
+javax.swing.text.TabSet.getTabCount
+javax.swing.text.TabSet.getTabIndex
+javax.swing.text.TabSet.getTabIndexAfter
+javax.swing.text.TabSet.equals
+javax.swing.text.TabSet.toString
+javax.swing.text.html.HTML.HTML_Test
+javax.swing.text.html.HTMLDocument.FindById
+javax.swing.text.html.parser.Entity.Entity_Test
+javax.swing.text.html.parser.TagElement.TagElement_Test
+javax.swing.text.html.parser.AttributeList.AttributeList_test
+javax.swing.text.html.parser.Element.Element_Test
+javax.swing.text.html.parser.ParserDelegator.Entities
+javax.swing.text.html.parser.ParserDelegator.Text4
+javax.swing.text.html.parser.ParserDelegator.randomTables
+javax.swing.text.html.parser.ParserDelegator.SimpleParsing
+javax.swing.text.html.parser.ParserDelegator.Text3
+javax.swing.text.html.parser.ParserDelegator.Text
+javax.swing.text.html.parser.ParserDelegator.eolnNorification
+javax.swing.text.html.parser.ParserDelegator.tokenLocations
+javax.swing.text.html.parser.DTD.DTD_test
+javax.swing.text.BoxView.spans
+javax.swing.text.StyleConstants.setTabSet
+javax.swing.text.StyleConstants.setUnderline
+javax.swing.text.StyleConstants.getLeftIndent
+javax.swing.text.StyleConstants.getIcon
+javax.swing.text.StyleConstants.setFontFamily
+javax.swing.text.StyleConstants.isBold
+javax.swing.text.StyleConstants.setLineSpacing
+javax.swing.text.StyleConstants.isSubscript
+javax.swing.text.StyleConstants.setItalic
+javax.swing.text.StyleConstants.getFontSize
+javax.swing.text.StyleConstants.setComponent
+javax.swing.text.StyleConstants.setBidiLevel
+javax.swing.text.StyleConstants.getForeground
+javax.swing.text.StyleConstants.setSuperscript
+javax.swing.text.StyleConstants.getSpaceAbove
+javax.swing.text.StyleConstants.getLineSpacing
+javax.swing.text.StyleConstants.setSpaceBelow
+javax.swing.text.StyleConstants.setBackground
+javax.swing.text.StyleConstants.getRightIndent
+javax.swing.text.StyleConstants.getFirstLineIndent
+javax.swing.text.StyleConstants.isItalic
+javax.swing.text.StyleConstants.getTabSet
+javax.swing.text.StyleConstants.setIcon
+javax.swing.text.StyleConstants.isUnderline
+javax.swing.text.StyleConstants.setBold
+javax.swing.text.StyleConstants.setAlignment
+javax.swing.text.StyleConstants.setSubscript
+javax.swing.text.StyleConstants.setRightIndent
+javax.swing.text.StyleConstants.isSuperscript
+javax.swing.text.StyleConstants.getSpaceBelow
+javax.swing.text.StyleConstants.setFontSize
+javax.swing.text.StyleConstants.getFontFamily
+javax.swing.text.StyleConstants.constants
+javax.swing.text.StyleConstants.setStrikeThrough
+javax.swing.text.StyleConstants.setForeground
+javax.swing.text.StyleConstants.getAlignment
+javax.swing.text.StyleConstants.setLeftIndent
+javax.swing.text.StyleConstants.getBackground
+javax.swing.text.StyleConstants.getComponent
+javax.swing.text.StyleConstants.getBidiLevel
+javax.swing.text.StyleConstants.setFirstLineIndent
+javax.swing.text.StyleConstants.setSpaceAbove
+javax.swing.text.StyleConstants.isStrikeThrough
+javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure3
+javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure1
+javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument6
+javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure7
+javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure2
+javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument1
+javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure4
+javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure6
+javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument3
+javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure5
+javax.swing.text.DefaultStyledDocument.ElementBuffer.insert
+javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure8
+javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument2
+javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument5
+javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument4
+javax.swing.text.DefaultStyledDocument.Insert
+javax.swing.text.DefaultStyledDocument.insertString
+javax.swing.text.DefaultStyledDocument.Create
+javax.swing.text.SimpleAttributeSet.removeAttributesOnlyIfMatch
+javax.swing.text.SimpleAttributeSet.clone
+javax.swing.text.SimpleAttributeSet.EMPTY
+javax.swing.text.SimpleAttributeSet.containsAttributes
+javax.swing.text.SimpleAttributeSet.containsChecksParent
+javax.swing.text.SimpleAttributeSet.containsAttribute
+javax.swing.text.SimpleAttributeSet.getResolveParent
+javax.swing.text.SimpleAttributeSet.removeAttribute
+javax.swing.text.SimpleAttributeSet.copyAttributes
+javax.swing.text.SimpleAttributeSet.equals
+javax.swing.text.SimpleAttributeSet.removeAttributes
+javax.swing.text.SimpleAttributeSet.getAttribute
+javax.swing.text.SimpleAttributeSet.isEqual
+javax.swing.text.SimpleAttributeSet.getAttributeCount
+javax.swing.text.SimpleAttributeSet.constructors
+javax.swing.text.SimpleAttributeSet.isDefined
+javax.swing.text.SimpleAttributeSet.addAttribute
+javax.swing.text.SimpleAttributeSet.getAttributeNames
+javax.swing.text.SimpleAttributeSet.setResolveParent
+javax.swing.text.SimpleAttributeSet.isEmpty
+javax.swing.text.SimpleAttributeSet.addAttributes
+javax.swing.text.SimpleAttributeSet.nullValue
+javax.swing.text.ZoneView.getMaximumZoneSize
+javax.swing.text.ZoneView.createZone
+javax.swing.text.ZoneView.constructor
+javax.swing.text.ZoneView.zoneWasLoaded
+javax.swing.text.ZoneView.isZoneLoaded
+javax.swing.text.ZoneView.loadChildren
+javax.swing.text.ZoneView.setMaxZonesLoaded
+javax.swing.text.ZoneView.unloadZone
+javax.swing.text.ZoneView.setMaximumZoneSize
+javax.swing.text.FlowView.FlowStrategy.adjustRow
+javax.swing.text.FlowView.getFlowAxis
+javax.swing.text.InternationalFormatter.InternationalFormatterTest
+javax.swing.text.Utilities.getNextWord
+javax.swing.text.Utilities.getBreakLocation
+javax.swing.text.Utilities.getPreviousWord
+javax.swing.text.Utilities.getWordStart
+javax.swing.text.Utilities.getTabbedTextOffset
+javax.swing.text.TabStop.constructors
+javax.swing.text.TabStop.toString
+javax.swing.text.StringContent.insertUndo
+javax.swing.text.StringContent.BadLocationExceptionTest
+javax.swing.text.StringContent.stickyPosition
+javax.swing.text.StringContent.length
+javax.swing.text.StringContent.removeUndo
+javax.swing.text.StringContent.constructors
+javax.swing.text.StringContent.insertString
+javax.swing.text.StringContent.StringContentTest
+javax.swing.text.StyledEditorKit.createInputAttributesTest
+javax.swing.text.StyleContext.NamedStyleInit
+javax.swing.text.StyleContext.NamedStyleSetResolveParent
+javax.swing.text.StyleContext.addStyle
+javax.swing.text.StyleContext.addAttribute
+javax.swing.JScrollBar.getAccessibleContext
+javax.swing.JScrollBar.getInputMap
+javax.swing.JScrollBar.constructors
+javax.swing.JScrollBar.getActionMap
+javax.swing.JScrollBar.paramString
+javax.swing.plaf.basic.BasicButtonUI.getTextShiftOffset
+javax.swing.plaf.basic.BasicButtonUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicButtonUI.defaultTextIconGap
+javax.swing.plaf.basic.BasicButtonUI.setTextShiftOffset
+javax.swing.plaf.basic.BasicButtonUI.defaultTextShiftOffset
+javax.swing.plaf.basic.BasicButtonUI.clearTextShiftOffset
+javax.swing.plaf.basic.BasicRadioButtonMenuItemUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicToggleButtonUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicSeparatorUI.getPreferredSize
+javax.swing.plaf.basic.BasicSeparatorUI.getMinimumSize
+javax.swing.plaf.basic.BasicSeparatorUI.getMaximumSize
+javax.swing.plaf.basic.BasicLookAndFeel.initSystemColorDefaults
+javax.swing.plaf.basic.BasicCheckBoxMenuItemUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicHTML.isHTMLString
+javax.swing.plaf.basic.BasicScrollBarUI.layoutContainer
+javax.swing.plaf.basic.BasicScrollBarUI.getPreferredSize
+javax.swing.plaf.basic.BasicScrollBarUI.constructor
+javax.swing.plaf.basic.BasicScrollBarUI.getMinimumSize
+javax.swing.plaf.basic.BasicScrollBarUI.createDecreaseButton
+javax.swing.plaf.basic.BasicScrollBarUI.getMaximumSize
+javax.swing.plaf.basic.BasicScrollBarUI.getMaximumThumbSize
+javax.swing.plaf.basic.BasicScrollBarUI.installDefaults
+javax.swing.plaf.basic.BasicScrollBarUI.createIncreaseButton
+javax.swing.plaf.basic.BasicScrollBarUI.installComponents
+javax.swing.plaf.basic.BasicScrollBarUI.getMinimumThumbSize
+javax.swing.plaf.basic.BasicInternalFrameTitlePane.MaximizeAction.constructor
+javax.swing.plaf.basic.BasicInternalFrameTitlePane.IconifyAction.constructor
+javax.swing.plaf.basic.BasicInternalFrameTitlePane.CloseAction.constructor
+javax.swing.plaf.basic.BasicInternalFrameTitlePane.RestoreAction.constructor
+javax.swing.plaf.basic.BasicInternalFrameTitlePane.MoveAction.constructor
+javax.swing.plaf.basic.BasicInternalFrameTitlePane.SizeAction.constructor
+javax.swing.plaf.basic.BasicPasswordFieldUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicSplitPaneUI.BasicHorizontalLayoutManager.layoutContainer
+javax.swing.plaf.basic.BasicSplitPaneUI.getDividerLocation
+javax.swing.plaf.basic.BasicArrowButton.getPreferredSize
+javax.swing.plaf.basic.BasicArrowButton.isFocusTraversable
+javax.swing.plaf.basic.BasicArrowButton.getMinimumSize
+javax.swing.plaf.basic.BasicArrowButton.isFocusable
+javax.swing.plaf.basic.BasicArrowButton.getMaximumSize
+javax.swing.plaf.basic.BasicSliderUI.xPositionForValue
+javax.swing.plaf.basic.BasicSliderUI.getPreferredSize
+javax.swing.plaf.basic.BasicSliderUI.getMinimumSize
+javax.swing.plaf.basic.BasicSliderUI.valueForYPosition
+javax.swing.plaf.basic.BasicSliderUI.getMaximumSize
+javax.swing.plaf.basic.BasicSliderUI.getThumbSize
+javax.swing.plaf.basic.BasicSliderUI.valueForXPosition
+javax.swing.plaf.basic.BasicSliderUI.constructors
+javax.swing.plaf.basic.BasicSliderUI.yPositionForValue
+javax.swing.plaf.basic.BasicTextFieldUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicTextPaneUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicMenuItemUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicFormattedTextFieldUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicTextAreaUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicComboBoxUI.getDefaultSize
+javax.swing.plaf.basic.BasicComboBoxUI.createEditor
+javax.swing.plaf.basic.BasicComboBoxUI.getMaximumSize
+javax.swing.plaf.basic.BasicListUI.updateLayoutStateNeeded
+javax.swing.plaf.basic.BasicMenuUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicIconFactory.getCheckBoxMenuItemIcon
+javax.swing.plaf.basic.BasicIconFactory.getMenuArrowIcon
+javax.swing.plaf.basic.BasicIconFactory.getCheckBoxIcon
+javax.swing.plaf.basic.BasicFileChooserUI.getFileName
+javax.swing.plaf.basic.BasicFileChooserUI.getApproveButtonText
+javax.swing.plaf.basic.BasicFileChooserUI.constructor
+javax.swing.plaf.basic.BasicFileChooserUI.getApproveButtonMnemonic
+javax.swing.plaf.basic.BasicFileChooserUI.uninstallStrings
+javax.swing.plaf.basic.BasicFileChooserUI.getApproveButton
+javax.swing.plaf.basic.BasicFileChooserUI.getGoHomeAction
+javax.swing.plaf.basic.BasicFileChooserUI.getUpdateAction
+javax.swing.plaf.basic.BasicFileChooserUI.getDirectoryName
+javax.swing.plaf.basic.BasicFileChooserUI.getApproveSelectionAction
+javax.swing.plaf.basic.BasicFileChooserUI.installStrings
+javax.swing.plaf.basic.BasicFileChooserUI.getChangeToParentDirectoryAction
+javax.swing.plaf.basic.BasicFileChooserUI.getCancelSelectionAction
+javax.swing.plaf.basic.BasicFileChooserUI.getFileView
+javax.swing.plaf.basic.BasicFileChooserUI.installIcons
+javax.swing.plaf.basic.BasicFileChooserUI.getNewFolderAction
+javax.swing.plaf.basic.BasicFileChooserUI.getApproveButtonToolTipText
+javax.swing.plaf.basic.BasicFileChooserUI.getDialogTitle
+javax.swing.plaf.basic.BasicCheckBoxUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicComboBoxEditor.removeActionListener
+javax.swing.plaf.basic.BasicComboBoxEditor.addActionListener
+javax.swing.plaf.basic.BasicComboBoxEditor.constructor
+javax.swing.plaf.basic.BasicEditorPaneUI.getPropertyPrefix
+javax.swing.plaf.basic.BasicRootPaneUI.installDefaults
+javax.swing.plaf.basic.BasicRadioButtonUI.getPropertyPrefix
+javax.swing.plaf.ColorUIResource.serialization
+javax.swing.plaf.ColorUIResource.equals
+javax.swing.plaf.ColorUIResource.constructors
+javax.swing.plaf.metal.MetalTheme.MetalThemeTest
+javax.swing.plaf.metal.MetalLookAndFeel.getMenuTextFont
+javax.swing.plaf.metal.MetalLookAndFeel.getDescription
+javax.swing.plaf.metal.MetalLookAndFeel.isNativeLookAndFeel
+javax.swing.plaf.metal.MetalLookAndFeel.getSeparatorBackground
+javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControl
+javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleInactiveForeground
+javax.swing.plaf.metal.MetalLookAndFeel.getMenuBackground
+javax.swing.plaf.metal.MetalLookAndFeel.getMenuForeground
+javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlShadow
+javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleForeground
+javax.swing.plaf.metal.MetalLookAndFeel.getControlTextFont
+javax.swing.plaf.metal.MetalLookAndFeel.getControlHighlight
+javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlHighlight
+javax.swing.plaf.metal.MetalLookAndFeel.getControlTextColor
+javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlDarkShadow
+javax.swing.plaf.metal.MetalLookAndFeel.getSeparatorForeground
+javax.swing.plaf.metal.MetalLookAndFeel.getSubTextFont
+javax.swing.plaf.metal.MetalLookAndFeel.setCurrentTheme
+javax.swing.plaf.metal.MetalLookAndFeel.getControlShadow
+javax.swing.plaf.metal.MetalLookAndFeel.isSupportedLookAndFeel
+javax.swing.plaf.metal.MetalLookAndFeel.getMenuSelectedBackground
+javax.swing.plaf.metal.MetalLookAndFeel.getInactiveControlTextColor
+javax.swing.plaf.metal.MetalLookAndFeel.getWhite
+javax.swing.plaf.metal.MetalLookAndFeel.getUserTextFont
+javax.swing.plaf.metal.MetalLookAndFeel.getAcceleratorForeground
+javax.swing.plaf.metal.MetalLookAndFeel.getControlDisabled
+javax.swing.plaf.metal.MetalLookAndFeel.getID
+javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleBackground
+javax.swing.plaf.metal.MetalLookAndFeel.getName
+javax.swing.plaf.metal.MetalLookAndFeel.getSystemTextColor
+javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleFont
+javax.swing.plaf.metal.MetalLookAndFeel.getInactiveSystemTextColor
+javax.swing.plaf.metal.MetalLookAndFeel.getUserTextColor
+javax.swing.plaf.metal.MetalLookAndFeel.getWindowBackground
+javax.swing.plaf.metal.MetalLookAndFeel.getBlack
+javax.swing.plaf.metal.MetalLookAndFeel.getAcceleratorSelectedForeground
+javax.swing.plaf.metal.MetalLookAndFeel.getDesktopColor
+javax.swing.plaf.metal.MetalLookAndFeel.getSystemTextFont
+javax.swing.plaf.metal.MetalLookAndFeel.getControlDarkShadow
+javax.swing.plaf.metal.MetalLookAndFeel.getControlInfo
+javax.swing.plaf.metal.MetalLookAndFeel.getMenuDisabledForeground
+javax.swing.plaf.metal.MetalLookAndFeel.getFocusColor
+javax.swing.plaf.metal.MetalLookAndFeel.getMenuSelectedForeground
+javax.swing.plaf.metal.MetalLookAndFeel.getHighlightedTextColor
+javax.swing.plaf.metal.MetalLookAndFeel.getControl
+javax.swing.plaf.metal.MetalLookAndFeel.getWindowTitleInactiveBackground
+javax.swing.plaf.metal.MetalLookAndFeel.getTextHighlightColor
+javax.swing.plaf.metal.MetalLookAndFeel.getPrimaryControlInfo
+javax.swing.plaf.metal.MetalComboBoxIcon.getIconWidth
+javax.swing.plaf.metal.MetalComboBoxIcon.getIconHeight
+javax.swing.plaf.metal.MetalComboBoxUI.getPreferredSize
+javax.swing.plaf.metal.MetalComboBoxUI.createArrowButton
+javax.swing.plaf.metal.MetalFileChooserUI.getFileName
+javax.swing.plaf.metal.MetalFileChooserUI.createFilterComboBoxModel
+javax.swing.plaf.metal.MetalFileChooserUI.getButtonPanel
+javax.swing.plaf.metal.MetalFileChooserUI.getPreferredSize
+javax.swing.plaf.metal.MetalFileChooserUI.getMinimumSize
+javax.swing.plaf.metal.MetalFileChooserUI.getMaximumSize
+javax.swing.plaf.metal.MetalFileChooserUI.getApproveButton
+javax.swing.plaf.metal.MetalFileChooserUI.setFileName
+javax.swing.plaf.metal.MetalFileChooserUI.getBottomPanel
+javax.swing.plaf.metal.MetalCheckBoxUI.getPropertyPrefix
+javax.swing.plaf.metal.MetalIconFactory.TreeFolderIcon.getAdditionalHeight
+javax.swing.plaf.metal.MetalIconFactory.TreeFolderIcon.getShift
+javax.swing.plaf.metal.MetalIconFactory.PaletteCloseIcon.getIconWidth
+javax.swing.plaf.metal.MetalIconFactory.PaletteCloseIcon.getIconHeight
+javax.swing.plaf.metal.MetalIconFactory.TreeLeafIcon.getAdditionalHeight
+javax.swing.plaf.metal.MetalIconFactory.TreeLeafIcon.getShift
+javax.swing.plaf.metal.MetalIconFactory.getInternalFrameCloseIcon
+javax.swing.plaf.metal.MetalIconFactory.getInternalFrameMaximizeIcon
+javax.swing.plaf.metal.MetalIconFactory.getMenuItemCheckIcon
+javax.swing.plaf.metal.MetalIconFactory.getRadioButtonMenuItemIcon
+javax.swing.plaf.metal.MetalIconFactory.getCheckBoxMenuItemIcon
+javax.swing.plaf.metal.MetalIconFactory.getTreeHardDriveIcon
+javax.swing.plaf.metal.MetalIconFactory.getTreeLeafIcon
+javax.swing.plaf.metal.MetalIconFactory.getMenuArrowIcon
+javax.swing.plaf.metal.MetalIconFactory.getFileChooserNewFolderIcon
+javax.swing.plaf.metal.MetalIconFactory.getTreeControlIcon
+javax.swing.plaf.metal.MetalIconFactory.getFileChooserDetailViewIcon
+javax.swing.plaf.metal.MetalIconFactory.getTreeFloppyDriveIcon
+javax.swing.plaf.metal.MetalIconFactory.getMenuItemArrowIcon
+javax.swing.plaf.metal.MetalIconFactory.getFileChooserListViewIcon
+javax.swing.plaf.metal.MetalIconFactory.getTreeComputerIcon
+javax.swing.plaf.metal.MetalIconFactory.getFileChooserHomeFolderIcon
+javax.swing.plaf.metal.MetalIconFactory.getInternalFrameAltMaximizeIcon
+javax.swing.plaf.metal.MetalIconFactory.getRadioButtonIcon
+javax.swing.plaf.metal.MetalIconFactory.getFileChooserUpFolderIcon
+javax.swing.plaf.metal.MetalIconFactory.getInternalFrameDefaultMenuIcon
+javax.swing.plaf.metal.MetalIconFactory.getInternalFrameMinimizeIcon
+javax.swing.plaf.metal.MetalIconFactory.getCheckBoxIcon
+javax.swing.plaf.metal.MetalIconFactory.getTreeFolderIcon
+javax.swing.plaf.metal.MetalRadioButtonUI.getSelectColor
+javax.swing.plaf.metal.MetalRadioButtonUI.getFocusColor
+javax.swing.plaf.metal.MetalRadioButtonUI.getDisabledTextColor
+javax.swing.plaf.metal.MetalComboBoxButton.setIconOnly
+javax.swing.plaf.metal.MetalComboBoxButton.isFocusTraversable
+javax.swing.plaf.metal.MetalComboBoxButton.setEnabled
+javax.swing.plaf.metal.MetalComboBoxButton.isIconOnly
+javax.swing.plaf.metal.MetalComboBoxButton.getComboBox
+javax.swing.plaf.metal.MetalComboBoxButton.getComboIcon
+javax.swing.plaf.metal.MetalComboBoxButton.setComboBox
+javax.swing.plaf.metal.MetalComboBoxButton.constructors
+javax.swing.plaf.metal.MetalComboBoxButton.setComboIcon
+javax.swing.plaf.metal.DefaultMetalTheme.getMenuTextFont
+javax.swing.plaf.metal.DefaultMetalTheme.DefaultMetalThemeTest
+javax.swing.plaf.metal.DefaultMetalTheme.getControlTextFont
+javax.swing.plaf.metal.DefaultMetalTheme.getSubTextFont
+javax.swing.plaf.metal.DefaultMetalTheme.getUserTextFont
+javax.swing.plaf.metal.DefaultMetalTheme.getName
+javax.swing.plaf.metal.DefaultMetalTheme.getWindowTitleFont
+javax.swing.plaf.metal.DefaultMetalTheme.getSystemTextFont
+javax.swing.plaf.metal.MetalComboBoxEditor.constructor
+javax.swing.plaf.metal.MetalComboBoxEditor.editorBorderInsets
+javax.swing.plaf.metal.MetalToolTipUI.constructor
+javax.swing.plaf.metal.MetalToolTipUI.createUI
+javax.swing.plaf.metal.OceanTheme.OceanThemeTest
+javax.swing.plaf.metal.OceanTheme.addCustomEntriesToTable
+javax.swing.plaf.metal.MetalToggleButtonUI.getSelectColor
+javax.swing.plaf.metal.MetalToggleButtonUI.getFocusColor
+javax.swing.plaf.metal.MetalToggleButtonUI.getDisabledTextColor
+javax.swing.plaf.metal.MetalBorders.ToolBarBorder.getBorderInsets
+javax.swing.plaf.metal.MetalBorders.MenuItemBorder.borderInsets
+javax.swing.plaf.metal.MetalBorders.MenuBarBorder.getBorderInsets
+javax.swing.plaf.metal.MetalBorders.MenuBarBorder.borderInsets
+javax.swing.plaf.metal.MetalBorders.getToggleButtonBorder
+javax.swing.plaf.metal.MetalBorders.getDesktopIconBorder
+javax.swing.plaf.metal.MetalBorders.getButtonBorder
+javax.swing.plaf.metal.MetalBorders.getTextFieldBorder
+javax.swing.plaf.metal.MetalBorders.getTextBorder
+javax.swing.plaf.metal.MetalScrollButton.getButtonWidth
+javax.swing.plaf.metal.MetalScrollButton.getPreferredSize
+javax.swing.plaf.metal.MetalScrollButton.constructor
+javax.swing.plaf.metal.MetalScrollButton.getMinimumSize
+javax.swing.plaf.metal.MetalScrollButton.isFocusable
+javax.swing.plaf.metal.MetalScrollButton.getMaximumSize
+javax.swing.plaf.metal.MetalScrollBarUI.layoutContainer
+javax.swing.plaf.metal.MetalScrollBarUI.getPreferredSize
+javax.swing.plaf.metal.MetalScrollBarUI.constructor
+javax.swing.plaf.metal.MetalScrollBarUI.installDefaults
+javax.swing.plaf.metal.MetalScrollBarUI.getMinimumThumbSize
+javax.swing.plaf.metal.MetalButtonUI.getSelectColor
+javax.swing.plaf.metal.MetalButtonUI.getFocusColor
+javax.swing.plaf.metal.MetalButtonUI.getDisabledTextColor
+javax.swing.plaf.IconUIResource.constructor
+javax.swing.JFrame.isRootPaneCheckingEnabled
+javax.swing.JFrame.glassPaneLayout
+javax.swing.JFrame.constructors
+javax.swing.border.TitledBorder.getTitleFont
+javax.swing.border.TitledBorder.getTitle
+javax.swing.border.TitledBorder.setTitleJustification
+javax.swing.border.TitledBorder.getBorder
+javax.swing.border.TitledBorder.getBorderInsets
+javax.swing.border.TitledBorder.setTitleColor
+javax.swing.border.TitledBorder.setTitle
+javax.swing.border.TitledBorder.setTitlePosition
+javax.swing.border.TitledBorder.getTitleJustification
+javax.swing.border.TitledBorder.setBorder
+javax.swing.border.TitledBorder.getTitleColor
+javax.swing.border.TitledBorder.isBorderOpaque
+javax.swing.border.TitledBorder.constructors
+javax.swing.border.TitledBorder.setTitleFont
+javax.swing.border.TitledBorder.getTitlePosition
+javax.swing.border.CompoundBorder.isBorderOpaque
+javax.swing.JTable.AccessibleJTable.AccessibleJTableHeaderCell.getAccessibleRole
+javax.swing.JTable.AccessibleJTable.AccessibleJTableCell.getAccessibleRole
+javax.swing.JTable.AccessibleJTable.getAccessibleColumnHeader
+javax.swing.JTable.setRowSelectionAllowed
+javax.swing.JTable.getColumn
+javax.swing.JTable.getRowHeight
+javax.swing.JTable.convertColumnIndexToModel
+javax.swing.JTable.createDefaultDataModel
+javax.swing.JTable.getCellEditor
+javax.swing.JTable.setColumnSelectionAllowed
+javax.swing.JTable.setAutoCreateColumnsFromModel
+javax.swing.JTable.setRowHeight
+javax.swing.JTable.createDefaultSelectionModel
+javax.swing.JTable.getAccessibleContext
+javax.swing.JTable.convertColumnIndexToView
+javax.swing.JTable.isCellEditable
+javax.swing.JTable.getInputMap
+javax.swing.JTable.getCellRect
+javax.swing.JTable.isRowSelected
+javax.swing.JTable.getModel
+javax.swing.JTable.initializeLocalVars
+javax.swing.JTable.createDefaultColumnsFromModel
+javax.swing.JTable.getAutoCreateColumnsFromModel
+javax.swing.JTable.isColumnSelected
+javax.swing.JTable.addColumn
+javax.swing.table.AbstractTableModel.getColumnName
+javax.swing.table.AbstractTableModel.fireTableDataChanged
+javax.swing.table.AbstractTableModel.fireTableStructureChanged
+javax.swing.table.AbstractTableModel.fireTableRowsUpdated
+javax.swing.table.AbstractTableModel.fireTableRowsDeleted
+javax.swing.table.AbstractTableModel.getColumnClass
+javax.swing.table.AbstractTableModel.isCellEditable
+javax.swing.table.AbstractTableModel.fireTableChanged
+javax.swing.table.AbstractTableModel.findColumn
+javax.swing.table.AbstractTableModel.fireTableRowsInserted
+javax.swing.table.AbstractTableModel.fireTableCellUpdated
+javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent
+javax.swing.table.DefaultTableColumnModel.getListeners
+javax.swing.table.DefaultTableColumnModel.getColumn
+javax.swing.table.DefaultTableColumnModel.getColumnModelListeners
+javax.swing.table.DefaultTableColumnModel.getSelectedColumnCount
+javax.swing.table.DefaultTableColumnModel.getSelectionModel
+javax.swing.table.DefaultTableColumnModel.getTotalColumnWidth
+javax.swing.table.DefaultTableColumnModel.constructor
+javax.swing.table.DefaultTableColumnModel.getColumns
+javax.swing.table.DefaultTableColumnModel.setColumnSelectionAllowed
+javax.swing.table.DefaultTableColumnModel.getColumnSelectionAllowed
+javax.swing.table.DefaultTableColumnModel.getColumnCount
+javax.swing.table.DefaultTableColumnModel.setSelectionModel
+javax.swing.table.DefaultTableColumnModel.setColumnMargin
+javax.swing.table.DefaultTableColumnModel.getColumnIndexAtX
+javax.swing.table.DefaultTableColumnModel.addColumnModelListener
+javax.swing.table.DefaultTableColumnModel.removeColumn
+javax.swing.table.DefaultTableColumnModel.moveColumn
+javax.swing.table.DefaultTableColumnModel.addColumn
+javax.swing.table.DefaultTableColumnModel.getColumnIndex
+javax.swing.table.DefaultTableColumnModel.getColumnMargin
+javax.swing.table.DefaultTableModel.removeRow
+javax.swing.table.DefaultTableModel.getRowCount
+javax.swing.table.DefaultTableModel.setColumnCount
+javax.swing.table.DefaultTableModel.insertRow
+javax.swing.table.DefaultTableModel.getColumnCount
+javax.swing.table.DefaultTableModel.convertToVector
+javax.swing.table.DefaultTableModel.setColumnIdentifiers
+javax.swing.table.DefaultTableModel.isCellEditable
+javax.swing.table.DefaultTableModel.setDataVector
+javax.swing.table.DefaultTableModel.setValueAt
+javax.swing.table.DefaultTableModel.moveRow
+javax.swing.table.DefaultTableModel.newDataAvailable
+javax.swing.table.DefaultTableModel.addRow
+javax.swing.table.DefaultTableModel.constructors
+javax.swing.table.DefaultTableModel.getDataVector
+javax.swing.table.DefaultTableModel.rowsRemoved
+javax.swing.table.DefaultTableModel.addColumn
+javax.swing.table.DefaultTableModel.setRowCount
+javax.swing.table.DefaultTableModel.getValueAt
+javax.swing.table.TableColumn.setCellEditor
+javax.swing.table.TableColumn.getHeaderRenderer
+javax.swing.table.TableColumn.getIdentifier
+javax.swing.table.TableColumn.setPreferredWidth
+javax.swing.table.TableColumn.setHeaderValue
+javax.swing.table.TableColumn.getCellRenderer
+javax.swing.table.TableColumn.sizeWidthToFit
+javax.swing.table.TableColumn.setResizable
+javax.swing.table.TableColumn.properties
+javax.swing.table.TableColumn.removePropertyChangeListener
+javax.swing.table.TableColumn.setIdentifier
+javax.swing.table.TableColumn.addPropertyChangeListener
+javax.swing.table.TableColumn.setMinWidth
+javax.swing.table.TableColumn.setModelIndex
+javax.swing.table.TableColumn.setCellRenderer
+javax.swing.table.TableColumn.getModelIndex
+javax.swing.table.TableColumn.setMaxWidth
+javax.swing.table.TableColumn.setWidth
+javax.swing.table.TableColumn.constants
+javax.swing.table.TableColumn.setHeaderRenderer
+javax.swing.table.TableColumn.getHeaderValue
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getLocale
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.isFocusTraversable
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.setAccessibleName
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleName
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleDescription
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleIndexInParent
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleContext
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.isVisible
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleChild
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleRole
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleComponent
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleChildrenCount
+javax.swing.table.JTableHeader.AccessibleJTableHeader.AccessibleJTableHeaderEntry.getAccessibleValue
+javax.swing.table.JTableHeader.AccessibleJTableHeader.getAccessibleChild
+javax.swing.table.JTableHeader.AccessibleJTableHeader.getAccessibleRole
+javax.swing.table.JTableHeader.AccessibleJTableHeader.getAccessibleChildrenCount
+javax.swing.table.JTableHeader.getAccessibleContext
+javax.swing.event.InternalFrameEvent.constructor
+javax.swing.event.InternalFrameEvent.getInternalFrame
+javax.swing.event.InternalFrameEvent.paramString
+javax.swing.event.ListDataEvent.getIndex0
+javax.swing.event.ListDataEvent.constructor
+javax.swing.event.ListDataEvent.getType
+javax.swing.event.ListDataEvent.getSource
+javax.swing.event.ListDataEvent.getIndex1
+javax.swing.event.ListDataEvent.toString
+javax.swing.event.TableModelEvent.constructors
+javax.swing.event.SwingPropertyChangeSupport.firePropertyChange
+javax.swing.event.SwingPropertyChangeSupport.getPropertyChangeListeners
+javax.swing.event.SwingPropertyChangeSupport.constructor
+javax.swing.event.SwingPropertyChangeSupport.hasListeners
+javax.swing.event.SwingPropertyChangeSupport.removePropertyChangeListener
+javax.swing.event.SwingPropertyChangeSupport.addPropertyChangeListener
+javax.swing.event.EventListenerList.getListeners
+javax.swing.event.EventListenerList.add
+javax.swing.event.EventListenerList.getListenerList
+javax.swing.event.EventListenerList.getListenerCount
+javax.swing.event.EventListenerList.toString
+javax.swing.event.EventListenerList.remove
+javax.swing.event.TreeSelectionEvent.isAddedPath
+javax.swing.event.TreeSelectionEvent.cloneWithSource
+javax.swing.event.TreeSelectionEvent.constructors
+javax.swing.JDesktopPane.constructor
+javax.swing.JRadioButton.isFocusable
+javax.swing.JRadioButton.uidelegate
+javax.swing.JRadioButton.getActionCommand
+javax.swing.JRadioButton.model
+javax.swing.JMenuBar.getComponentIndex
+javax.swing.JMenuBar.getHelpMenu
+javax.swing.JMenuBar.getSubElements
+javax.swing.JMenuBar.setMargin
+javax.swing.JMenuBar.getInputMap
+javax.swing.JMenuBar.setHelpMenu
+javax.swing.JMenuBar.getActionMap
+javax.swing.JMenuBar.getMenu
+javax.swing.JCheckBoxMenuItem.uidelegate
+javax.swing.JCheckBoxMenuItem.getActionCommand
+javax.swing.JCheckBoxMenuItem.model
+javax.swing.JCheckBoxMenuItem.constructors
+javax.swing.JComboBox.getPrototypeDisplayValue
+javax.swing.JComboBox.MutableTest2
+javax.swing.JComboBox.setEditor
+javax.swing.JComboBox.getEditor
+javax.swing.JComboBox.addItem
+javax.swing.JComboBox.MutableTest1
+javax.swing.JComboBox.removeItem
+javax.swing.JComboBox.setModel
+javax.swing.JComboBox.setSelectedIndex
+javax.swing.JComboBox.model
+javax.swing.JComboBox.listenerList
+javax.swing.JComboBox.setPrototypeDisplayValue
+javax.swing.JComboBox.setEditable
+javax.swing.JComboBox.SimpleSelectionTest
+javax.swing.OverlayLayout.layoutContainer
+javax.swing.OverlayLayout.getLayoutAlignmentY
+javax.swing.OverlayLayout.getLayoutAlignmentX
+javax.swing.OverlayLayout.preferredLayoutSize
+javax.swing.OverlayLayout.minimumLayoutSize
+javax.swing.OverlayLayout.maximumLayoutSize
+javax.swing.JScrollPane.AccessibleJScrollPane.resetViewport
+javax.swing.JScrollPane.createHorizontalScrollBar
+javax.swing.JScrollPane.getInputMap
+javax.swing.JScrollPane.createVerticalScrollBar
+javax.swing.JScrollPane.getActionMap
+javax.swing.DefaultListCellRenderer.getListCellRendererComponent
+javax.swing.JFileChooser.setFileHidingEnabled
+javax.swing.JFileChooser.getControlButtonsAreShown
+javax.swing.JFileChooser.setApproveButtonMnemonic
+javax.swing.JFileChooser.setFileSystemView
+javax.swing.JFileChooser.getApproveButtonText
+javax.swing.JFileChooser.setDialogTitle
+javax.swing.JFileChooser.setDialogType
+javax.swing.JFileChooser.setSelectedFile
+javax.swing.JFileChooser.getChoosableFileFilters
+javax.swing.JFileChooser.getApproveButtonMnemonic
+javax.swing.JFileChooser.setApproveButtonText
+javax.swing.JFileChooser.getDialogType
+javax.swing.JFileChooser.getFileFilter
+javax.swing.JFileChooser.setAccessory
+javax.swing.JFileChooser.isAcceptAllFileFilterUsed
+javax.swing.JFileChooser.accept
+javax.swing.JFileChooser.setControlButtonsAreShown
+javax.swing.JFileChooser.setFileView
+javax.swing.JFileChooser.setCurrentDirectory
+javax.swing.JFileChooser.isFileHidingEnabled
+javax.swing.JFileChooser.constructors
+javax.swing.JFileChooser.changeToParentDirectory
+javax.swing.JFileChooser.getFileView
+javax.swing.JFileChooser.getFileSystemView
+javax.swing.JFileChooser.setSelectedFiles
+javax.swing.JFileChooser.setFileFilter
+javax.swing.JFileChooser.getFileSelectionMode
+javax.swing.JFileChooser.setFileSelectionMode
+javax.swing.JFileChooser.getSelectedFiles
+javax.swing.JFileChooser.getAccessory
+javax.swing.JFileChooser.setApproveButtonToolTipText
+javax.swing.JFileChooser.getApproveButtonToolTipText
+javax.swing.JFileChooser.getDialogTitle
+javax.swing.SpinnerDateModel.getPreviousValue
+javax.swing.SpinnerDateModel.setStart
+javax.swing.SpinnerDateModel.setEnd
+javax.swing.SpinnerDateModel.setValue
+javax.swing.SpinnerDateModel.getNextValue
+javax.swing.SpinnerDateModel.constructors
+javax.swing.JDialog.isRootPaneCheckingEnabled
+javax.swing.JPopupMenu.getInputMap
+javax.swing.JSlider.getPaintTrack
+javax.swing.JSlider.addChangeListener
+javax.swing.JSlider.setMinimum
+javax.swing.JSlider.setSnapToTicks
+javax.swing.JSlider.setOrientation
+javax.swing.JSlider.getMinorTickSpacing
+javax.swing.JSlider.setValue
+javax.swing.JSlider.setMaximum
+javax.swing.JSlider.setExtent
+javax.swing.JSlider.setPaintLabels
+javax.swing.JSlider.getSnapToTicks
+javax.swing.JSlider.setMinorTickSpacing
+javax.swing.JSlider.getUIClassID
+javax.swing.JSlider.setLabelTable
+javax.swing.JSlider.getPaintTicks
+javax.swing.JSlider.setModel
+javax.swing.JSlider.getMaximum
+javax.swing.JSlider.setPaintTicks
+javax.swing.JSlider.getPaintLabels
+javax.swing.JSlider.getMinimum
+javax.swing.JSlider.getModel
+javax.swing.JSlider.getInverted
+javax.swing.JSlider.setInverted
+javax.swing.JSlider.constructors
+javax.swing.JSlider.getMajorTickSpacing
+javax.swing.JSlider.createStandardLabels
+javax.swing.JSlider.setMajorTickSpacing
+javax.swing.JSlider.getExtent
+javax.swing.JSlider.setPaintTrack
+javax.swing.JSlider.getLabelTable
+javax.swing.DefaultButtonModel.addActionListener
+javax.swing.DefaultButtonModel.setPressed
+javax.swing.DefaultButtonModel.setEnabled
+javax.swing.DefaultButtonModel.constructor
+javax.swing.DefaultButtonModel.setActionCommand
+javax.swing.DefaultButtonModel.getSelectedObjects
+javax.swing.DefaultButtonModel.setArmed
+javax.swing.DefaultButtonModel.setSelected
+javax.swing.DefaultButtonModel.constants
+javax.swing.DefaultButtonModel.setRollover
+javax.swing.DefaultButtonModel.setGroup
+javax.swing.JComponent.getListeners
+javax.swing.JComponent.setVerifyInputWhenFocusTarget
+javax.swing.JComponent.getVetoableChangeListeners
+javax.swing.JComponent.setInheritsPopupMenu
+javax.swing.JComponent.getPreferredSize
+javax.swing.JComponent.setEnabled
+javax.swing.JComponent.constructor
+javax.swing.JComponent.registerKeyboardAction
+javax.swing.JComponent.setUI
+javax.swing.JComponent.getActionForKeyStroke
+javax.swing.JComponent.setMinimumSize
+javax.swing.JComponent.setPreferredSize
+javax.swing.JComponent.setDefaultLocale
+javax.swing.JComponent.setBackground
+javax.swing.JComponent.setBorder
+javax.swing.JComponent.getInputMap
+javax.swing.JComponent.setVisible
+javax.swing.JComponent.setAlignmentX
+javax.swing.JComponent.setComponentPopupMenu
+javax.swing.JComponent.getFont
+javax.swing.JComponent.setAlignmentY
+javax.swing.JComponent.setMaximumSize
+javax.swing.JComponent.setFont
+javax.swing.JComponent.getVerifyInputWhenFocusTarget
+javax.swing.JComponent.putClientProperty
+javax.swing.JComponent.getAlignmentY
+javax.swing.JComponent.getComponentPopupMenu
+javax.swing.JComponent.getAlignmentX
+javax.swing.JComponent.removeVetoableChangeListener
+javax.swing.JComponent.getRegisteredKeyStrokes
+javax.swing.JComponent.setForeground
+javax.swing.JComponent.paint
+javax.swing.JComponent.setOpaque
+javax.swing.JComponent.addVetoableChangeListener
+javax.swing.JProgressBar.isStringPainted
+javax.swing.JProgressBar.setOrientation
+javax.swing.JProgressBar.setValue
+javax.swing.JProgressBar.setBorderPainted
+javax.swing.JProgressBar.setStringPainted
+javax.swing.JProgressBar.getAccessibleContext
+javax.swing.JProgressBar.getPercentComplete
+javax.swing.JProgressBar.paramString
+javax.swing.JMenu.uidelegate
+javax.swing.JMenu.getInputMap
+javax.swing.JMenu.getActionCommand
+javax.swing.JMenu.model
+javax.swing.JMenu.getPopUpMenu
+javax.swing.JMenu.remove
+javax.swing.UIManager.LookAndFeelInfo.constructor
+javax.swing.UIManager.getPropertyChangeListeners
+javax.swing.UIManager.getBoolean
+javax.swing.UIManager.addAuxiliaryLookAndFeel
+javax.swing.UIManager.getString
+javax.swing.UIManager.getBorder
+javax.swing.UIManager.getIcon
+javax.swing.UIManager.getInsets
+javax.swing.UIManager.removeAuxiliaryLookAndFeel
+javax.swing.UIManager.setLookAndFeel
+javax.swing.UIManager.getFont
+javax.swing.UIManager.getDefaults
+javax.swing.UIManager.getInt
+javax.swing.UIManager.addPropertyChangeListener
+javax.swing.UIManager.getUI
+javax.swing.UIManager.getDimension
+javax.swing.UIManager.getLookAndFeelDefaults
+javax.swing.UIManager.getCrossPlatformLookAndFeelClassName
+javax.swing.UIManager.getColor
+javax.swing.UIManager.getAuxiliaryLookAndFeels
+javax.swing.JPanel.setBorder
+javax.swing.JPanel.Layouter
+javax.swing.JTree.getCellRenderer
+javax.swing.JTree.isRowSelected
+javax.swing.JTree.setModel
+javax.swing.TransferHandler.exportToClipboard
+javax.swing.TransferHandler.TransferActionConstructor
+javax.swing.TransferHandler.canImport
+javax.swing.TransferHandler.importData
+javax.swing.TransferHandler.createTransferable
+javax.swing.JToolTip.setComponent
+javax.swing.JToolTip.setTipText
+javax.swing.JToolTip.getAccessibleContext
+javax.swing.JToolTip.getUIClassID
+javax.swing.JToolTip.getTipText
+javax.swing.JToolTip.paramString
+javax.swing.JToolTip.getComponent
+javax.swing.JToolBar.buttonInsets
+javax.swing.JToolBar.getInputMap
+javax.swing.JRootPane.RootLayout.layoutContainer
+javax.swing.JRootPane.RootLayout.getLayoutAlignmentY
+javax.swing.JRootPane.RootLayout.getLayoutAlignmentX
+javax.swing.JRootPane.RootLayout.preferredLayoutSize
+javax.swing.JRootPane.setLayeredPane
+javax.swing.ScrollPaneLayout.minimumLayoutSize
+javax.swing.Timer.preparatory
+javax.swing.Timer.setDelay
+javax.swing.Timer.basic
+javax.swing.Timer.test_23918
+javax.swing.Timer.setInitialDelay
+javax.swing.ActionMap.newMapKeysNull
+javax.swing.InputMap.put
+javax.swing.InputMap.constructor
+javax.swing.InputMap.keys
+javax.swing.InputMap.setParent
+javax.swing.InputMap.size
+javax.swing.InputMap.newMapKeysNull
+javax.swing.InputMap.get
+javax.swing.InputMap.getParent
+javax.swing.InputMap.remove
+javax.swing.InputMap.clear
+javax.swing.InputMap.allKeys
+javax.swing.filechooser.FileView.getDescription
+javax.swing.filechooser.FileView.getIcon
+javax.swing.filechooser.FileView.getName
+javax.swing.filechooser.FileView.isTraversable
+javax.swing.filechooser.FileView.getTypeDescription
+javax.swing.filechooser.FileSystemView.getFileSystemView
+javax.swing.ViewportLayout.layoutContainer
+javax.swing.ViewportLayout.minimumLayoutSize
+javax.swing.JList.AccessibleJList.AccessibleJListChild.isFocusTraversable
+javax.swing.JList.AccessibleJList.AccessibleJListChild.isEnabled
+javax.swing.JList.AccessibleJList.AccessibleJListChild.setEnabled
+javax.swing.JList.AccessibleJList.AccessibleJListChild.setCursor
+javax.swing.JList.AccessibleJList.AccessibleJListChild.getForeground
+javax.swing.JList.AccessibleJList.AccessibleJListChild.setBackground
+javax.swing.JList.AccessibleJList.AccessibleJListChild.isVisible
+javax.swing.JList.AccessibleJList.AccessibleJListChild.isShowing
+javax.swing.JList.AccessibleJList.AccessibleJListChild.getFont
+javax.swing.JList.AccessibleJList.AccessibleJListChild.getCursor
+javax.swing.JList.AccessibleJList.AccessibleJListChild.getAccessibleRole
+javax.swing.JList.AccessibleJList.AccessibleJListChild.setFont
+javax.swing.JList.AccessibleJList.AccessibleJListChild.getAccessibleStateSet
+javax.swing.JList.AccessibleJList.AccessibleJListChild.setForeground
+javax.swing.JList.AccessibleJList.AccessibleJListChild.getBackground
+javax.swing.JList.AccessibleJList.valueChanged
+javax.swing.JList.AccessibleJList.getAccessibleChild
+javax.swing.JList.AccessibleJList.getAccessibleRole
+javax.swing.JList.AccessibleJList.intervalAdded
+javax.swing.JList.AccessibleJList.intervalRemoved
+javax.swing.JList.AccessibleJList.contentsChanged
+javax.swing.JList.AccessibleJList.getAccessibleStateSet
+javax.swing.JList.setValueIsAdjusting
+javax.swing.JList.setVisibleRowCount
+javax.swing.JList.setSelectionBackground
+javax.swing.JList.setBackground
+javax.swing.JList.getSelectionBackground
+javax.swing.JList.getInputMap
+javax.swing.JList.setModel
+javax.swing.JList.getNextMatch
+javax.swing.JList.setLayoutOrientation
+javax.swing.JList.constructors
+javax.swing.JList.getBackground
+javax.swing.ToolTipManager.setReshowDelay
+javax.swing.ToolTipManager.setInitialDelay
+javax.swing.ToolTipManager.setDismissDelay
+javax.swing.AbstractButton.constructor
+javax.swing.AbstractButton.setRolloverEnabled
+javax.swing.AbstractButton.setRolloverSelectedIcon
+javax.swing.AbstractButton.init
+javax.swing.AbstractButton.setVerticalTextPosition
+javax.swing.AbstractButton.setHorizontalAlignment
+javax.swing.AbstractButton.setHorizontalTextPosition
+javax.swing.AbstractButton.setRolloverIcon
+javax.swing.AbstractButton.setVerticalAlignment
+javax.swing.AbstractButton.createChangeListener
+javax.swing.JLayeredPane.defaultLayoutManager
+javax.swing.JLayeredPane.getComponentsInLayer
+javax.swing.JLayeredPane.setPosition
+javax.swing.JLayeredPane.moveToFront
+javax.swing.JLayeredPane.addImpl
+javax.swing.DefaultListModel.toArray
+javax.swing.DefaultListModel.trimToSize
+javax.swing.DefaultListModel.removeAllElements
+javax.swing.DefaultListModel.constructor
+javax.swing.DefaultListModel.add
+javax.swing.DefaultListModel.lastElement
+javax.swing.DefaultListModel.copyInto
+javax.swing.DefaultListModel.firstElement
+javax.swing.DefaultListModel.setElementAt
+javax.swing.DefaultListModel.set
+javax.swing.DefaultListModel.elementAt
+javax.swing.DefaultListModel.ensureCapacity
+javax.swing.DefaultListModel.indexOf
+javax.swing.DefaultListModel.insertElementAt
+javax.swing.DefaultListModel.setSize
+javax.swing.DefaultListModel.lastIndexOf
+javax.swing.DefaultListModel.elements
+javax.swing.DefaultListModel.size
+javax.swing.DefaultListModel.getSize
+javax.swing.DefaultListModel.capacity
+javax.swing.DefaultListModel.removeElementAt
+javax.swing.DefaultListModel.get
+javax.swing.DefaultListModel.contains
+javax.swing.DefaultListModel.getElementAt
+javax.swing.DefaultListModel.removeRange
+javax.swing.DefaultListModel.addElement
+javax.swing.DefaultListModel.removeElement
+javax.swing.DefaultListModel.isEmpty
+javax.swing.DefaultListModel.remove
+javax.swing.DefaultListModel.clear
+javax.swing.JFormattedTextField.JFormattedTextFieldTests
+javax.swing.AbstractAction.clone
+javax.swing.AbstractAction.setEnabled
+javax.swing.AbstractAction.getValue
+javax.swing.AbstractAction.constructors
+javax.swing.AbstractAction.putValue
+javax.swing.JTextArea.preferredSize
+javax.swing.JTextArea.isValidChecks
+javax.swing.JTextArea.text
+javax.swing.JTextArea.gettingText
+javax.swing.JCheckBox.constructor
+javax.swing.JCheckBox.isFocusable
+javax.swing.JCheckBox.uidelegate
+javax.swing.JCheckBox.getActionCommand
+javax.swing.JCheckBox.model
+javax.swing.JButton.uidelegate
+javax.swing.JButton.getActionCommand
+javax.swing.JButton.model
+javax.swing.SizeRequirements.calculateAlignedPositions
+javax.swing.tree.TreePath.getParentPath
+javax.swing.tree.TreePath.serialization
+javax.swing.tree.TreePath.getPath
+javax.swing.tree.TreePath.getLastPathComponent
+javax.swing.tree.TreePath.PR27651
+javax.swing.tree.TreePath.isDescendant
+javax.swing.tree.TreePath.equals
+javax.swing.tree.TreePath.getPathCount
+javax.swing.tree.TreePath.constructors
+javax.swing.tree.TreePath.getPathComponent
+javax.swing.tree.TreePath.pathByAddingChild
+javax.swing.tree.DefaultMutableTreeNode.clone
+javax.swing.tree.DefaultMutableTreeNode.getChildAt
+javax.swing.tree.DefaultMutableTreeNode.getChildBefore
+javax.swing.tree.DefaultMutableTreeNode.getSiblingCount
+javax.swing.tree.DefaultMutableTreeNode.isNodeSibling
+javax.swing.tree.DefaultMutableTreeNode.getIndex
+javax.swing.tree.DefaultMutableTreeNode.isNodeChild
+javax.swing.tree.DefaultMutableTreeNode.add
+javax.swing.tree.DefaultMutableTreeNode.getFirstChild
+javax.swing.tree.DefaultMutableTreeNode.getPath
+javax.swing.tree.DefaultMutableTreeNode.removeAllChildren
+javax.swing.tree.DefaultMutableTreeNode.getChildCount
+javax.swing.tree.DefaultMutableTreeNode.isNodeRelated
+javax.swing.tree.DefaultMutableTreeNode.getNextSibling
+javax.swing.tree.DefaultMutableTreeNode.getPreviousSibling
+javax.swing.tree.DefaultMutableTreeNode.setAllowsChildren
+javax.swing.tree.DefaultMutableTreeNode.getPreviousLeaf
+javax.swing.tree.DefaultMutableTreeNode.isNodeAncestor
+javax.swing.tree.DefaultMutableTreeNode.getNextPreviousNode
+javax.swing.tree.DefaultMutableTreeNode.isNodeDescendant
+javax.swing.tree.DefaultMutableTreeNode.breadthFirstEnumeration
+javax.swing.tree.DefaultMutableTreeNode.getLastLeaf
+javax.swing.tree.DefaultMutableTreeNode.children
+javax.swing.tree.DefaultMutableTreeNode.getAllowsChildren
+javax.swing.tree.DefaultMutableTreeNode.getFirstLeaf
+javax.swing.tree.DefaultMutableTreeNode.constructors
+javax.swing.tree.DefaultMutableTreeNode.isLeaf
+javax.swing.tree.DefaultMutableTreeNode.insert
+javax.swing.tree.DefaultMutableTreeNode.DefaultMutableTreeNodeTest
+javax.swing.tree.DefaultMutableTreeNode.getParent
+javax.swing.tree.DefaultMutableTreeNode.getLastChild
+javax.swing.tree.DefaultMutableTreeNode.pathFromAncestorEnumeration
+javax.swing.tree.DefaultMutableTreeNode.remove
+javax.swing.tree.DefaultMutableTreeNode.getNextLeaf
+javax.swing.tree.DefaultMutableTreeNode.getChildAfter
+javax.swing.tree.DefaultTreeCellRenderer.getBackgroundSelectionColor
+javax.swing.tree.DefaultTreeCellRenderer.getOpenIcon
+javax.swing.tree.DefaultTreeCellRenderer.getClosedIcon
+javax.swing.tree.DefaultTreeCellRenderer.setOpenIcon
+javax.swing.tree.DefaultTreeCellRenderer.constructor
+javax.swing.tree.DefaultTreeCellRenderer.getLeafIcon
+javax.swing.tree.DefaultTreeCellRenderer.getBorderSelectionColor
+javax.swing.tree.DefaultTreeCellRenderer.setLeafIcon
+javax.swing.tree.DefaultTreeCellRenderer.getDefaultLeafIcon
+javax.swing.tree.DefaultTreeCellRenderer.setBackgroundSelectionColor
+javax.swing.tree.DefaultTreeCellRenderer.getDefaultOpenIcon
+javax.swing.tree.DefaultTreeCellRenderer.getDefaultClosedIcon
+javax.swing.tree.DefaultTreeCellRenderer.setBackgroundNonSelectionColor
+javax.swing.tree.DefaultTreeCellRenderer.setBorderSelectionColor
+javax.swing.tree.DefaultTreeCellRenderer.getBackgroundNonSelectionColor
+javax.swing.tree.DefaultTreeCellRenderer.setClosedIcon
+javax.swing.tree.VariableHeightLayoutCache.getBounds
+javax.swing.BoxLayout.layoutContainer
+javax.swing.BoxLayout.invalidateLayout
+javax.swing.BoxLayout.constructor
+javax.swing.BoxLayout.simplevertical
+javax.swing.BoxLayout.maximumLayoutSize2
+javax.swing.BoxLayout.getLayoutAlignmentY
+javax.swing.BoxLayout.horizontal2
+javax.swing.BoxLayout.getLayoutAlignmentX
+javax.swing.BoxLayout.simplehorizontal
+javax.swing.BoxLayout.constants
+javax.swing.BoxLayout.preferredLayoutSize
+javax.swing.BoxLayout.minimumLayoutSize
+javax.swing.BoxLayout.maximumLayoutSize
+javax.swing.JApplet.isRootPaneCheckingEnabled
+javax.swing.DefaultBoundedRangeModel.setValueIsAdjusting
+javax.swing.DefaultBoundedRangeModel.setMinimum
+javax.swing.DefaultBoundedRangeModel.serialization
+javax.swing.DefaultBoundedRangeModel.setValue
+javax.swing.DefaultBoundedRangeModel.setMaximum
+javax.swing.DefaultBoundedRangeModel.setExtent
+javax.swing.DefaultBoundedRangeModel.getChangeListeners
+javax.swing.DefaultBoundedRangeModel.getValue
+javax.swing.DefaultBoundedRangeModel.setRangeProperties
+javax.swing.DefaultBoundedRangeModel.getMaximum
+javax.swing.DefaultBoundedRangeModel.getValueIsAdjusting
+javax.swing.DefaultBoundedRangeModel.getMinimum
+javax.swing.DefaultBoundedRangeModel.general
+javax.swing.DefaultBoundedRangeModel.toString
+javax.swing.DefaultBoundedRangeModel.getExtent
+javax.swing.undo.UndoableEditSupport.getUndoableEditListeners
+javax.swing.undo.UndoableEditSupport.createCompoundEdit
+javax.swing.undo.UndoableEditSupport.toString
+javax.swing.undo.UndoableEditSupport.beginUpdate
+javax.swing.undo.UndoableEditSupport.UndoableEditSupport
+javax.swing.undo.UndoableEditSupport.getUpdateLevel
+javax.swing.undo.CompoundEdit.lastEdit
+javax.swing.undo.CompoundEdit.addEdit
+javax.swing.undo.CompoundEdit.canRedo
+javax.swing.undo.CompoundEdit.canUndo
+javax.swing.undo.CompoundEdit.isInProgress
+javax.swing.undo.AbstractUndoableEdit.getRedoPresentationName
+javax.swing.undo.AbstractUndoableEdit.addEdit
+javax.swing.undo.AbstractUndoableEdit.canRedo
+javax.swing.undo.AbstractUndoableEdit.redo
+javax.swing.undo.AbstractUndoableEdit.undo
+javax.swing.undo.AbstractUndoableEdit.canUndo
+javax.swing.undo.AbstractUndoableEdit.getPresentationName
+javax.swing.undo.AbstractUndoableEdit.replaceEdit
+javax.swing.undo.AbstractUndoableEdit.isSignificant
+javax.swing.undo.AbstractUndoableEdit.getUndoPresentationName
+javax.swing.undo.StateEdit.undo
+javax.swing.undo.StateEdit.getPresentationName
+javax.swing.undo.UndoManager.getRedoPresentationName
+javax.swing.undo.UndoManager.getUndoOrRedoPresentationName
+javax.swing.undo.UndoManager.addEdit
+javax.swing.undo.UndoManager.canRedo
+javax.swing.undo.UndoManager.trimEdits
+javax.swing.undo.UndoManager.undoTo
+javax.swing.undo.UndoManager.editToBeUndone
+javax.swing.undo.UndoManager.canUndo
+javax.swing.undo.UndoManager.undoableEditHappened
+javax.swing.undo.UndoManager.setLimit
+javax.swing.undo.UndoManager.discardAllEdits
+javax.swing.undo.UndoManager.redoTo
+javax.swing.undo.UndoManager.end
+javax.swing.undo.UndoManager.toString
+javax.swing.undo.UndoManager.getUndoPresentationName
+javax.swing.undo.UndoManager.getLimit
+javax.swing.undo.UndoManager.editToBeRedone
+javax.swing.undo.UndoManager.canUndoOrRedo
+javax.swing.JMenuItem.getActionCommand
+javax.swing.JMenuItem.constructors
+javax.swing.DefaultComboBoxModel.removeAllElements
+javax.swing.DefaultComboBoxModel.insertElementAt
+javax.swing.DefaultComboBoxModel.getIndexOf
+javax.swing.DefaultComboBoxModel.getSize
+javax.swing.DefaultComboBoxModel.constructors
+javax.swing.DefaultComboBoxModel.removeElementAt
+javax.swing.DefaultComboBoxModel.getSelectedItem
+javax.swing.DefaultComboBoxModel.getElementAt
+javax.swing.DefaultComboBoxModel.addElement
+javax.swing.DefaultComboBoxModel.removeElement
+javax.swing.SizeSequence.getIndex
+javax.swing.SizeSequence.getSizes
+javax.swing.SizeSequence.removeEntries
+javax.swing.SizeSequence.setSizes
+javax.swing.SizeSequence.setSize
+javax.swing.SizeSequence.getSize
+javax.swing.SizeSequence.constructors
+javax.swing.SizeSequence.insertEntries
+javax.swing.JTextField.CopyPaste
+javax.swing.JTextField.createDefaultModel
+javax.swing.JTextField.setDocument
+javax.swing.JTextField.fireActionPerformed
+javax.swing.UIDefaults.putDefaults
+javax.swing.UIDefaults.getBoolean
+javax.swing.UIDefaults.remove
+javax.swing.RepaintManager.addDirtyRegion
+javax.swing.JInternalFrame.AccessibleJInternalFrame.getAccessibleName
+javax.swing.JInternalFrame.AccessibleJInternalFrame.getCurrentAccessibleValue
+javax.swing.JInternalFrame.AccessibleJInternalFrame.getMaximumAccessibleValue
+javax.swing.JInternalFrame.AccessibleJInternalFrame.setCurrentAccessibleValue
+javax.swing.JInternalFrame.AccessibleJInternalFrame.getAccessibleRole
+javax.swing.JInternalFrame.AccessibleJInternalFrame.getAccessibleValue
+javax.swing.JInternalFrame.AccessibleJInternalFrame.getMinimumAccessibleValue
+javax.swing.JInternalFrame.getDesktopIcon
+javax.swing.JInternalFrame.isRootPaneCheckingEnabled
+javax.swing.JInternalFrame.setDefaultCloseOperation
+javax.swing.JInternalFrame.isIconifiable
+javax.swing.JInternalFrame.setTitle
+javax.swing.JInternalFrame.setClosable
+javax.swing.JInternalFrame.setResizable
+javax.swing.JInternalFrame.setIconifiable
+javax.swing.JInternalFrame.setFrameIcon
+javax.swing.JInternalFrame.setMaximizable
+javax.swing.JInternalFrame.getInputMap
+javax.swing.JInternalFrame.setClosed
+javax.swing.JInternalFrame.setNormalBounds
+javax.swing.JInternalFrame.setSelected2
+javax.swing.JInternalFrame.dispose
+javax.swing.JInternalFrame.isResizable
+javax.swing.JInternalFrame.constructors
+javax.swing.JInternalFrame.paramString
+javax.swing.JInternalFrame.setDesktopIcon
+javax.swing.JInternalFrame.getNormalBounds
+javax.swing.SpinnerListModel.Constructors
+javax.swing.SpinnerListModel.Ordering
+javax.swing.SpinnerListModel.SetList
+javax.swing.SpinnerListModel.ArrayModel
+javax.swing.SpinnerListModel.ListModel
+javax.swing.JRadioButtonMenuItem.isFocusable
+javax.swing.JRadioButtonMenuItem.uidelegate
+javax.swing.JRadioButtonMenuItem.getActionCommand
+javax.swing.JRadioButtonMenuItem.model
+javax.swing.KeyStroke.getKeyStroke
+javax.swing.SpinnerNumberModel.getPreviousValue
+javax.swing.SpinnerNumberModel.setMinimum
+javax.swing.SpinnerNumberModel.setValue
+javax.swing.SpinnerNumberModel.setMaximum
+javax.swing.SpinnerNumberModel.getNextValue
+javax.swing.SpinnerNumberModel.setStepSize
+javax.swing.SpinnerNumberModel.constructors
+javax.swing.JLabel.AccessibleJLabel.getAccessibleName
+javax.swing.JLabel.setDisplayedMnemonicIndex
+javax.swing.JLabel.constructor
+javax.swing.JLabel.getAccessibleContext
+javax.swing.JLabel.Icon
+javax.swing.JLabel.getInputMap
+javax.swing.JLabel.setHorizontalAlignment
+javax.swing.JLabel.setFont
+javax.swing.JLabel.setDisplayedMnemonic
+javax.swing.JLabel.getActionMap
+javax.swing.JLabel.Mnemonic
+javax.swing.JLabel.paramString
+javax.swing.JLabel.setVerticalAlignment
+javax.swing.JEditorPane.ContentType
+javax.swing.JEditorPane.ViewType
+javax.swing.JEditorPane.setText
+javax.swing.JEditorPane.getScrollableTracks
+javax.swing.DefaultListSelectionModel.clone
+javax.swing.DefaultListSelectionModel.getListeners
+javax.swing.DefaultListSelectionModel.setValueIsAdjusting
+javax.swing.DefaultListSelectionModel.setAnchorSelectionIndex
+javax.swing.DefaultListSelectionModel.removeListSelectionListener
+javax.swing.DefaultListSelectionModel.constructor
+javax.swing.DefaultListSelectionModel.removeIndexInterval
+javax.swing.DefaultListSelectionModel.removeSelectionInterval
+javax.swing.DefaultListSelectionModel.getAnchorSelectionIndex
+javax.swing.DefaultListSelectionModel.getLeadSelectionIndex
+javax.swing.DefaultListSelectionModel.isLeadAnchorNotificationEnabled
+javax.swing.DefaultListSelectionModel.setSelectionInterval
+javax.swing.DefaultListSelectionModel.getSelectionMode
+javax.swing.DefaultListSelectionModel.isSelectedIndex
+javax.swing.DefaultListSelectionModel.moveLeadSelectionIndex
+javax.swing.DefaultListSelectionModel.leadSelectionIndex
+javax.swing.DefaultListSelectionModel.getMaxSelectionIndex
+javax.swing.DefaultListSelectionModel.getMinSelectionIndex
+javax.swing.DefaultListSelectionModel.getListSelectionListeners
+javax.swing.DefaultListSelectionModel.getValueIsAdjusting
+javax.swing.DefaultListSelectionModel.isSelectionEmpty
+javax.swing.DefaultListSelectionModel.addSelectionInterval
+javax.swing.DefaultListSelectionModel.setLeadSelectionIndex
+javax.swing.DefaultListSelectionModel.toString
+javax.swing.DefaultListSelectionModel.setSelectionMode
+javax.swing.DefaultListSelectionModel.clearSelection
+javax.swing.DefaultListSelectionModel.insertIndexInterval
+javax.swing.DefaultListSelectionModel.addListSelectionListener
+javax.swing.SwingUtilities.calculateInnerArea
+javax.swing.SwingUtilities.isRectangleContainingRectangle
+javax.swing.SwingUtilities.computeIntersection
+javax.swing.SwingUtilities.replaceUIActionMap
+javax.swing.SwingUtilities.computeUnion
+javax.swing.JSpinner.ListEditor.constructor
+javax.swing.JSpinner.ListEditor.getModel
+javax.swing.JSpinner.NumberEditor.getModel
+javax.swing.JSpinner.NumberEditor.constructors
+javax.swing.JSpinner.NumberEditor.getFormat
+javax.swing.JSpinner.DefaultEditor.constructor
+javax.swing.JSpinner.DefaultEditor.stateChanged
+javax.swing.JSpinner.DefaultEditor.propertyChange
+javax.swing.JSpinner.DefaultEditor.preferredLayoutSize
+javax.swing.JSpinner.DefaultEditor.minimumLayoutSize
+javax.swing.JSpinner.DateEditor.getModel
+javax.swing.JSpinner.getPreviousValue
+javax.swing.JSpinner.addChangeListener
+javax.swing.JSpinner.createEditor
+javax.swing.JSpinner.getChangeListeners
+javax.swing.JSpinner.setEditor
+javax.swing.JSpinner.getUIClassID
+javax.swing.JSpinner.getEditor
+javax.swing.JSpinner.setModel
+javax.swing.JSpinner.getNextValue
+javax.swing.JSpinner.getModel
+javax.swing.JSpinner.constructors
+javax.swing.JSpinner.removeChangeListener
+javax.swing.ButtonGroup.constructor
+javax.swing.ButtonGroup.add
+javax.swing.ButtonGroup.isSelected
+javax.swing.ButtonGroup.getSelection
+javax.swing.ButtonGroup.getElements
+javax.swing.ButtonGroup.getButtonCount
+javax.swing.ButtonGroup.setSelected
+javax.swing.ButtonGroup.remove
+javax.swing.JViewport.setView
+gnu.javax.crypto.jce.TestOfDHKeyAgreement2
+gnu.javax.crypto.jce.TestOfPR27849
+gnu.javax.crypto.jce.TestOfPR27228
+java.rmi.server.Uniqueness
+java.lang.Integer.compareTo
+java.lang.Integer.decode
+java.lang.Integer.new_Integer
+java.lang.Integer.IntegerTest
+java.lang.Integer.getInteger
+java.lang.Integer.parseInt
+java.lang.ClassLoader.redefine
+java.lang.ClassLoader.security
+java.lang.ClassLoader.loadClass
+java.lang.ClassLoader.initialize
+java.lang.ClassLoader.Resources
+java.lang.ClassLoader.BootDefinedPackages
+java.lang.Number.NumberTest
+java.lang.ProcessBuilder.simple
+java.lang.System.getProperty
+java.lang.System.arraycopy
+java.lang.System.identityHashCode
+java.lang.ThreadGroup.enumerate
+java.lang.ThreadGroup.insecurity
+java.lang.ThreadGroup.security
+java.lang.String.substring
+java.lang.String.compareTo
+java.lang.String.getBytes13
+java.lang.String.hash
+java.lang.String.split
+java.lang.String.getBytes14
+java.lang.String.startsWith
+java.lang.String.equals
+java.lang.String.indexOf
+java.lang.String.to
+java.lang.String.StringTest
+java.lang.String.surrogate
+java.lang.String.charAt
+java.lang.String.new_String
+java.lang.String.getBytes
+java.lang.String.CASE_INSENSITIVE_ORDER
+java.lang.Class.ClassTest
+java.lang.Class.serialization
+java.lang.Class.reflect
+java.lang.Class.security
+java.lang.Class.init
+java.lang.Class.newInstance
+java.lang.Class.reflect2
+java.lang.Cloneable.CloneableTest
+java.lang.ref.WeakReference.weakref
+java.lang.ref.PhantomReference.phantom
+java.lang.Double.compareTo
+java.lang.Double.DoubleSetterTest
+java.lang.Double.DoubleTest
+java.lang.Double.toHexString
+java.lang.Double.parseDouble
+java.lang.Double.compare
+java.lang.Double.valueOf
+java.lang.StrictMath.cbrt
+java.lang.StrictMath.expm1
+java.lang.StrictMath.cosh
+java.lang.StrictMath.sinh
+java.lang.StrictMath.tanh
+java.lang.Short.hash
+java.lang.Short.ShortTest
+java.lang.InheritableThreadLocal.simple
+java.lang.Math.max
+java.lang.Math.ulp
+java.lang.Math.sin
+java.lang.Math.min
+java.lang.Math.cos
+java.lang.Math.MathTest
+java.lang.Math.rint
+java.lang.Boolean.BooleanTest
+java.lang.Boolean.equals_Boolean
+java.lang.Boolean.new_Boolean
+java.lang.Boolean.hashcode_Boolean
+java.lang.Boolean.get
+java.lang.Boolean.value
+java.lang.Float.compareTo
+java.lang.Float.toHexString
+java.lang.Float.compare
+java.lang.Float.parseFloat
+java.lang.Float.valueOf
+java.lang.Float.FloatTest
+java.lang.Float.new_Float
+java.lang.reflect.Array.set
+java.lang.reflect.Array.newInstance
+java.lang.reflect.AccessibleObject.accessible
+java.lang.reflect.Field.promotion
+java.lang.reflect.Field.access
+java.lang.reflect.Field.toString
+java.lang.reflect.Modifier.toString12
+java.lang.reflect.Modifier.toString
+java.lang.reflect.Constructor.newInstance
+java.lang.reflect.Constructor.toString
+java.lang.reflect.Proxy.DeclaringClass
+java.lang.reflect.Proxy.check13
+java.lang.reflect.Proxy.ExceptionRaising
+java.lang.reflect.Proxy.ToString
+java.lang.reflect.InvocationTargetException.Chain
+java.lang.reflect.Method.equals
+java.lang.reflect.Method.toString
+java.lang.reflect.Method.invoke
+java.lang.reflect.ReflectAccess
+java.lang.ThreadLocal.simple
+java.lang.Object.clone
+java.lang.Object.wait
+java.lang.Object.ObjectTest
+java.lang.Object.oom
+java.lang.Byte.ByteTest
+java.lang.Byte.new_Byte
+java.lang.StringBuffer.StringBufferTest
+java.lang.StringBuffer.plus
+java.lang.Long.Tests15
+java.lang.Long.getLong
+java.lang.Long.LongTest
+java.lang.Long.new_Long
+java.lang.Thread.join
+java.lang.Thread.isAlive
+java.lang.Thread.name
+java.lang.Thread.interrupt
+java.lang.Thread.contextClassLoader
+java.lang.Thread.getThreadGroup
+java.lang.Thread.priority
+java.lang.Thread.stop
+java.lang.Thread.daemon
+java.lang.Package.getPackage
+java.lang.Character.digit
+java.lang.Character.Blocks
+java.lang.Character.unicode
+java.lang.Character.getNumericValue
+java.lang.Character.getType
+java.lang.Character.hash
+java.lang.Character.classify
+java.lang.Character.classify12
+java.lang.Character.to
+java.lang.Character.consts
+java.lang.Character.forDigit
+java.lang.Character.getType12
+java.lang.Character.equals_Character
+java.lang.Character.CharacterTest
+java.lang.Character.Blocks15
+java.lang.SecurityManager.thread
+java.text.StringCharacterIterator.constructor
+java.text.StringCharacterIterator.iter
+java.text.CollationElementIterator.offset
+java.text.CollationElementIterator.jdk11
+java.text.AttributedString.constructors
+java.text.AttributedString.addAttribute
+java.text.AttributedString.getIterator
+java.text.AttributedString.addAttributes
+java.text.AttributedString.Test
+java.text.DecimalFormat.setCurrency
+java.text.DecimalFormat.clone
+java.text.DecimalFormat.setDecimalFormatSymbols
+java.text.DecimalFormat.getNegativePrefix
+java.text.DecimalFormat.applyPattern
+java.text.DecimalFormat.formatToCharacterIterator
+java.text.DecimalFormat.getNegativeSuffix
+java.text.DecimalFormat.setNegativePrefix
+java.text.DecimalFormat.applyLocalizedPattern
+java.text.DecimalFormat.getDecimalFormatSymbols
+java.text.DecimalFormat.toLocalizedPattern
+java.text.DecimalFormat.isDecimalSeparatorAlwaysShown
+java.text.DecimalFormat.setNegativeSuffix
+java.text.DecimalFormat.PR27311
+java.text.DecimalFormat.getPositivePrefix
+java.text.DecimalFormat.getCurrency
+java.text.DecimalFormat.equals
+java.text.DecimalFormat.digits
+java.text.DecimalFormat.setDecimalSeparatorAlwaysShown
+java.text.DecimalFormat.setPositiveSuffix
+java.text.DecimalFormat.parse
+java.text.DecimalFormat.setPositivePrefix
+java.text.DecimalFormat.toPattern14
+java.text.DecimalFormat.setMultiplier
+java.text.DecimalFormat.format
+java.text.DecimalFormat.getPositiveSuffix
+java.text.DecimalFormat.setGroupingSize
+java.text.DecimalFormat.PR23996
+java.text.DecimalFormat.toPattern
+java.text.DecimalFormat.constructors
+java.text.DecimalFormat.MaximumAndMinimumDigits
+java.text.DecimalFormat.formatExp
+java.text.DecimalFormat.getGroupingSize
+java.text.DecimalFormat.hashCode
+java.text.DecimalFormat.position
+java.text.DecimalFormat.getMultiplier
+java.text.NumberFormat.UK
+java.text.CharacterIterator.implement
+java.text.ParsePosition.Test
+java.text.BreakIterator.chariter
+java.text.BreakIterator.patho
+java.text.BreakIterator.lineiter
+java.text.BreakIterator.sentiter
+java.text.BreakIterator.worditer
+java.text.Collator.Constants
+java.text.Collator.GetSet
+java.text.ParseException.Test
+java.text.Annotation.Test
+java.text.RuleBasedCollator.CollatorTests
+java.text.RuleBasedCollator.VeryBasic
+java.text.MessageFormat.format14
+java.text.MessageFormat.attribute
+java.text.MessageFormat.parse
+java.text.MessageFormat.format
+java.text.ChoiceFormat.next
+java.text.ChoiceFormat.parse
+java.text.ChoiceFormat.format
+java.text.DateFormatSymbols.setMonths
+java.text.DateFormatSymbols.setShortMonths
+java.text.DateFormatSymbols.setEras
+java.text.DateFormatSymbols.setAmPmStrings
+java.text.DateFormatSymbols.setWeekdays
+java.text.DateFormatSymbols.setZoneStrings
+java.text.DateFormatSymbols.setShortWeekdays
+java.text.DateFormatSymbols.Test
+java.text.AttributedCharacterIterator.Attribute.toString
+java.text.AttributedCharacterIterator.getRunLimit
+java.text.AttributedCharacterIterator.implement
+java.text.AttributedCharacterIterator.getRunStart
+java.text.AttributedCharacterIterator.getAttribute
+java.text.DateFormat.equals
+java.text.DateFormat.hashCode
+java.text.DateFormat.Test
+java.text.ACIAttribute.Test
+java.text.DecimalFormatSymbols.serial
+java.text.DecimalFormatSymbols.GetSet12
+java.text.DecimalFormatSymbols.getCurrency
+java.text.DecimalFormatSymbols.DumpDefault11
+java.text.DecimalFormatSymbols.GetSet11
+java.text.DecimalFormatSymbols.DumpDefault12
+java.text.FieldPosition.Test
+java.text.SimpleDateFormat.applyPattern
+java.text.SimpleDateFormat.Localization
+java.text.SimpleDateFormat.applyLocalizedPattern
+java.text.SimpleDateFormat.toLocalizedPattern
+java.text.SimpleDateFormat.attribute
+java.text.SimpleDateFormat.Cloning
+java.text.SimpleDateFormat.getDateFormatSymbols
+java.text.SimpleDateFormat.parse
+java.text.SimpleDateFormat.toPattern
+java.text.SimpleDateFormat.constructors
+java.text.SimpleDateFormat.setDateFormatSymbols
+java.text.SimpleDateFormat.getAndSet2DigitYearStart
+java.text.SimpleDateFormat.Test
+java.text.Bidi.Basic
+java.text.Bidi.reorderVisually
+java.math.BigInteger.compareTo
+java.math.BigInteger.modInverse
+java.math.BigInteger.shift
+java.math.BigInteger.serialization
+java.math.BigInteger.add
+java.math.BigInteger.TestOfPR27372
+java.math.BigInteger.signum
+java.math.BigInteger.modPow
+java.math.BigInteger.equals
+java.math.BigInteger.divide
+java.math.BigInteger.setBit
+java.math.BigInteger.multiply
+java.math.BigInteger.TestOfToByteArray
+java.math.BigInteger.toString
+java.math.BigInteger.ctor
+java.math.BigInteger.abs
+java.math.BigInteger.valueOf
+java.math.BigDecimal.compareTo
+java.math.BigDecimal.divide
+java.math.BigDecimal.DiagBigDecimal
+java.math.BigDecimal.construct
+java.math.BigDecimal.setScale
+java.security.MessageDigest.Instance
+java.security.AccessController.doPrivileged
+java.security.AccessController.contexts
+java.security.Security.getAlgorithms
+java.security.Security.provider
+java.security.Provider.NameVersionInfo
+java.security.SecureRandom.SHA1PRNG
+java.security.SecureRandom.TestOfPR23899
+java.security.SecureRandom.Instance
+java.security.KeyPairGenerator.getInstance14
+java.security.AlgorithmParameters.getInstance14
+java.security.AlgorithmParameterGenerator.getInstance14
+java.security.DigestInputStream.readMD5
+java.security.KeyFactory.getInstance14
+java.security.Signature.getInstance14
+java.security.Signature.Instance
+java.security.BasicPermission.newPermission
+java.sql.Clob.ClobTest
+java.sql.Types.TestJdbc10
+java.sql.Types.TestJdbc20
+java.sql.Array.ArrayTest
+java.sql.Blob.BlobTest
+java.sql.Connection.TestJdbc
+java.sql.Time.TimeTest
+java.sql.DriverManager.DriverManagerTest
+java.sql.Date.DateTest
+java.sql.DatabaseMetaData.TestJdbc
+java.sql.Timestamp.TimestampTest
+java.io.RandomAccessFile.setLength
+java.io.RandomAccessFile.security
+java.io.RandomAccessFile.jdk11
+java.io.RandomAccessFile.randomaccessfile
+java.io.BufferedWriter.Test
+java.io.PipedReaderWriter.Test
+java.io.PushbackInputStream.ProtectedVars
+java.io.PushbackInputStream.BufferOverflow
+java.io.PushbackInputStream.Unread
+java.io.FileOutputStream.append
+java.io.FileOutputStream.fileoutputstream
+java.io.FileOutputStream.security
+java.io.FileOutputStream.write
+java.io.FileOutputStream.jdk12
+java.io.StringWriter.Test
+java.io.FilterOutputStream.write
+java.io.ObjectInputStream.security
+java.io.ObjectInputStream.readResolve
+java.io.ObjectInputStream.ClassLoaderTest
+java.io.ObjectOutputStream.security
+java.io.ObjectOutputStream.StreamDataTest
+java.io.ObjectOutputStream.useProtocolVersion
+java.io.InputStream.Test
+java.io.Utf8Encoding.ReadReference
+java.io.Utf8Encoding.WriteRead
+java.io.FilePermission.traversal2
+java.io.FilePermission.simple
+java.io.FilePermission.traversal
+java.io.FileWriter.jdk11
+java.io.OutputStreamWriter.jdk11
+java.io.Serializable.BreakMe
+java.io.Serializable.BreakMeTestSer
+java.io.Serializable.ParentReadResolve
+java.io.Serializable.readResolve
+java.io.Serializable.ParentWriteReplace
+java.io.ObjectInputOutput.LoopSerializationTest
+java.io.ObjectInputOutput.ExtTest
+java.io.ObjectInputOutput.Deserializable
+java.io.ObjectInputOutput.ProxySerializationTest
+java.io.ObjectInputOutput.Compat1
+java.io.ObjectInputOutput.SerTest
+java.io.ObjectInputOutput.HierarchyTest
+java.io.ObjectInputOutput.OutputTest
+java.io.ObjectInputOutput.InputTest
+java.io.PrintWriter.jdk11
+java.io.PrintWriter.checkError
+java.io.SequenceInputStream.Test
+java.io.StringBufferInputStream.ProtectedVars
+java.io.StringBufferInputStream.SimpleRead
+java.io.StringBufferInputStream.MarkReset
+java.io.LineNumberReader.Test2
+java.io.LineNumberReader.mark
+java.io.LineNumberReader.Test
+java.io.InputStreamReader.hang
+java.io.InputStreamReader.utf8
+java.io.InputStreamReader.jdk11
+java.io.InputStreamReader.except
+java.io.InputStreamReader.getEncoding
+java.io.DataInputStream.readLine
+java.io.DataInputStream.ReadReference
+java.io.DataInputStream.ReadReference2
+java.io.FilterWriter.write
+java.io.CharArrayWriter.ProtectedVars
+java.io.CharArrayWriter.BasicTests
+java.io.FileDescriptor.jdk11
+java.io.Reader.Test
+java.io.PushbackReader.BufferOverflow
+java.io.PushbackReader.Unread
+java.io.ByteArrayOutputStream.subclass
+java.io.ByteArrayOutputStream.write
+java.io.PrintStream.subclass
+java.io.PrintStream.encodings
+java.io.ObjectStreamClass.ProxyTest
+java.io.ObjectStreamClass.Test
+java.io.FilterReader.SimpleRead
+java.io.FilterReader.MarkReset
+java.io.BufferedOutputStream.interrupt
+java.io.BufferedOutputStream.Test
+java.io.BufferedInputStream.Skip
+java.io.BufferedInputStream.BigMark
+java.io.BufferedInputStream.ProtectedVars
+java.io.BufferedInputStream.ZeroRead
+java.io.BufferedInputStream.SimpleRead
+java.io.BufferedInputStream.MarkReset
+java.io.BufferedReader.mark
+java.io.BufferedReader.SimpleRead
+java.io.BufferedReader.MarkReset
+java.io.BufferedReader.boundary
+java.io.DataOutputStream.WriteRead2
+java.io.DataOutputStream.writeUTF
+java.io.DataOutputStream.WriteRead
+java.io.PipedStream.close
+java.io.PipedStream.receive
+java.io.PipedStream.Test
+java.io.FileInputStream.fileinputstream
+java.io.FileInputStream.read
+java.io.FileInputStream.security
+java.io.Writer.Test
+java.io.FilterInputStream.SimpleRead
+java.io.FilterInputStream.MarkReset
+java.io.FileReader.jdk11
+java.io.StringReader.Test
+java.io.ByteArrayInputStream.ProtectedVars
+java.io.ByteArrayInputStream.SimpleRead
+java.io.ByteArrayInputStream.MarkReset
+java.io.File.newFileURI
+java.io.File.URI
+java.io.File.createFile
+java.io.File.security
+java.io.File.ReadMethods
+java.io.File.ExecuteMethods
+java.io.File.list
+java.io.File.jdk11
+java.io.File.newFile
+java.io.File.WriteMethods
+java.io.File.canWrite
+java.io.File.listFiles
+java.io.File.emptyFile
+java.io.File.UnicodeURI
+java.io.OutputStream.Test
+java.io.StreamTokenizer.WordWhiteChars
+java.io.StreamTokenizer.slashstar
+java.io.StreamTokenizer.commentchar
+java.io.StreamTokenizer.slashslash
+java.io.StreamTokenizer.newline
+java.io.StreamTokenizer.misc
+java.io.StreamTokenizer.Test
+java.io.LineNumberInputStream.Test
+java.io.CharArrayReader.ProtectedVars
+java.io.CharArrayReader.OutOfBounds
+java.io.CharArrayReader.SimpleRead
+java.io.CharArrayReader.MarkReset
+java.util.Stack.AcuniaStackTest
+java.util.Arrays.asList
+java.util.Arrays.fill
+java.util.Arrays.equals
+java.util.Arrays.sort
+java.util.Arrays.binarySearch
+java.util.Properties.getProperty
+java.util.Properties.AcuniaPropertiesTest
+java.util.Properties.load
+java.util.TreeSet.basic
+java.util.Observable.observable
+java.util.StringTokenizer.hasMoreElements
+java.util.StringTokenizer.hasMoreTokens
+java.util.StringTokenizer.countTokens
+java.util.StringTokenizer.nextToken
+java.util.StringTokenizer.constructors
+java.util.StringTokenizer.nextElement
+java.util.IdentityHashMap.simple
+java.util.prefs.PreferenceTest
+java.util.Hashtable.HashContains
+java.util.Hashtable.AcuniaHashtableTest
+java.util.Hashtable.EnumerateAndModify
+java.util.Hashtable.basic
+java.util.Hashtable.ContainsHash
+java.util.Hashtable.NullValue
+java.util.TreeMap.serialization
+java.util.TimeZone.setDefault
+java.util.TimeZone.zdump
+java.util.TimeZone.setID
+java.util.UUID.TestAll
+java.util.Currency.Constructors
+java.util.Currency.Germany
+java.util.Currency.ReferenceEquality
+java.util.Currency.France
+java.util.Currency.getInstance
+java.util.Currency.Japan
+java.util.Currency.UK
+java.util.Currency.Korea
+java.util.Currency.PRC
+java.util.Currency.Canada
+java.util.Currency.CanadaFrench
+java.util.Currency.China
+java.util.Currency.Taiwan
+java.util.Currency.Italy
+java.util.AbstractCollection.AcuniaAbstractCollectionTest
+java.util.AbstractCollection.AcuniaAddCollectionTest
+java.util.AbstractCollection.toString
+java.util.SimpleTimeZone.clone
+java.util.SimpleTimeZone.hasSameRules
+java.util.SimpleTimeZone.getRawOffset
+java.util.SimpleTimeZone.setRawOffset
+java.util.SimpleTimeZone.check14
+java.util.SimpleTimeZone.equals
+java.util.SimpleTimeZone.inDaylightTime
+java.util.SimpleTimeZone.setStartYear
+java.util.SimpleTimeZone.constructors
+java.util.SimpleTimeZone.getOffset
+java.util.SimpleTimeZone.setDSTSavings
+java.util.SimpleTimeZone.hashCode
+java.util.SimpleTimeZone.constants
+java.util.SimpleTimeZone.getDSTSavings
+java.util.AbstractList.AcuniaAbstractListTest
+java.util.Collections.nCopies
+java.util.Collections.fill
+java.util.Collections.max
+java.util.Collections.copy
+java.util.Collections.rotate
+java.util.Collections.unmodifiableList
+java.util.Collections.min
+java.util.Collections.unmodifiableMap
+java.util.Collections.reverse
+java.util.Collections.reverseOrder
+java.util.Collections.sort
+java.util.Collections.binarySearch
+java.util.logging.SocketHandler.SocketHandler
+java.util.logging.XMLFormatter.getTail
+java.util.logging.Handler.isLoggable
+java.util.logging.Handler.setEncoding
+java.util.logging.Handler.setFilter
+java.util.logging.Handler.getErrorManager
+java.util.logging.Handler.reportError
+java.util.logging.Handler.setLevel
+java.util.logging.Handler.setErrorManager
+java.util.logging.LogRecord.getThreadID
+java.util.logging.LogRecord.setLoggerName
+java.util.logging.LogRecord.getMillis
+java.util.logging.LogRecord.setThrown
+java.util.logging.LogRecord.setThreadID
+java.util.logging.LogRecord.setSequenceNumber
+java.util.logging.LogRecord.setSourceMethodName
+java.util.logging.LogRecord.setResourceBundle
+java.util.logging.LogRecord.setMillis
+java.util.logging.LogRecord.setMessage
+java.util.logging.LogRecord.setParameters
+java.util.logging.LogRecord.setSourceClassName
+java.util.logging.LogRecord.setLevel
+java.util.logging.Level.intValue
+java.util.logging.Level.equals
+java.util.logging.Level.getName
+java.util.logging.Level.parse
+java.util.logging.Level.toString
+java.util.logging.Level.hashCode
+java.util.logging.LogManager.readConfiguration
+java.util.logging.LoggingMXBean.Test
+java.util.logging.Logger.hierarchyChecks
+java.util.logging.Logger.getName
+java.util.logging.Logger.getAnonymousLogger
+java.util.logging.Logger.securityChecks
+java.util.logging.Logger.getParent
+java.util.logging.Logger.global
+java.util.Iterator.ConcurrentModification
+java.util.BitSet.AcuniaBitSetTest
+java.util.BitSet.flip
+java.util.BitSet.jdk10
+java.util.BitSet.get
+java.util.BitSet.clear
+java.util.Timer.taskException
+java.util.GregorianCalendar.first
+java.util.GregorianCalendar.setFirstDayOfWeek
+java.util.GregorianCalendar.dayOfWeekInMonth
+java.util.GregorianCalendar.setWeekOfMonth
+java.util.GregorianCalendar.internal
+java.util.GregorianCalendar.equals
+java.util.GregorianCalendar.getMinimum
+java.util.GregorianCalendar.getMinimalDaysInFirstWeek
+java.util.GregorianCalendar.conversion
+java.util.GregorianCalendar.weekOfYear
+java.util.Random.basic
+java.util.AbstractSet.AcuniaAbstractSetTest
+java.util.Calendar.TimeZone
+java.util.Calendar.ampm
+java.util.Calendar.add
+java.util.Calendar.minmax
+java.util.Calendar.setTime
+java.util.Calendar.setTimeZone
+java.util.Calendar.getInstance
+java.util.Calendar.set
+java.util.Calendar.simple
+java.util.Calendar.roll
+java.util.Calendar.dstOffset
+java.util.regex.Matcher.hitEnd
+java.util.regex.Pattern.UnicodeSimpleCategory
+java.util.regex.Pattern.pcrematches
+java.util.regex.Pattern.matches
+java.util.regex.PatternSplit
+java.util.regex.CharacterClasses
+java.util.AbstractSequentialList.AcuniaAbstractSequentialListTest
+java.util.LinkedList.subList
+java.util.LinkedList.AcuniaLinkedListTest
+java.util.LinkedList.SubListTest
+java.util.HashMap.AcuniaHashMapTest
+java.util.jar.JarInputStream.getNextEntry
+java.util.jar.JarFile.TestOfManifest
+java.util.jar.JarFile.basic
+java.util.Vector.subList
+java.util.Vector.copyInto
+java.util.Vector.removeAll
+java.util.Vector.retainAll
+java.util.Vector.VectorSerialization
+java.util.zip.ZipEntry.time
+java.util.zip.ZipEntry.Size
+java.util.zip.ZipEntry.newZipEntry
+java.util.zip.ZipEntry.setComment
+java.util.zip.ZipInputStream.close
+java.util.zip.ZipInputStream.basic
+java.util.zip.Deflater.PR27435
+java.util.zip.Adler32.checksum
+java.util.zip.GZIPInputStream.PR24461
+java.util.zip.GZIPInputStream.basic
+java.util.zip.InflaterInputStream.basic
+java.util.zip.ZipFile.DirEntryTest
+java.util.zip.ZipFile.NoEntryTest
+java.util.zip.ZipFile.newZipFile
+java.util.Date.compareTo
+java.util.Date.clone
+java.util.Date.before
+java.util.Date.serialization
+java.util.Date.range
+java.util.Date.equals
+java.util.Date.parse
+java.util.Date.after
+java.util.Date.getTimezoneOffset
+java.util.LinkedHashMap.LinkedHashMapTest
+java.util.LinkedHashMap.Regress
+java.util.ArrayList.subList
+java.util.ArrayList.serial
+java.util.ResourceBundle.getBundle
+java.util.AbstractMap.AcuniaAbstractMapTest
+java.beans.XMLDecoder.jdk14
+java.beans.Expression.check
+java.beans.Introspector.getBeanInfo2
+java.beans.Introspector.getBeanInfo4
+java.beans.Introspector.getBeanInfo
+java.beans.Introspector.jdk11
+java.beans.Introspector.jdk12
+java.beans.Introspector.getBeanInfo2_2
+java.beans.DesignMode.constants
+java.beans.PropertyEditorSupport.setValue
+java.beans.PropertyEditorSupport.getSource
+java.beans.SimpleBeanInfo.getIcon
+java.beans.SimpleBeanInfo.getDefaultPropertyIndex
+java.beans.SimpleBeanInfo.getEventSetDescriptors
+java.beans.SimpleBeanInfo.getDefaultEventIndex
+java.beans.SimpleBeanInfo.getBeanDescriptor
+java.beans.SimpleBeanInfo.getAdditionalBeanInfo
+java.beans.SimpleBeanInfo.loadImage
+java.beans.EventSetDescriptor.constructorTest1
+java.beans.FeatureDescriptor.check
+java.beans.beancontext.BeanContextSupport.toArray
+java.beans.beancontext.BeanContextSupport.getChildPropertyChangeListener
+java.beans.beancontext.BeanContextSupport.serialize
+java.beans.beancontext.BeanContextSupport.getChildBeanContextChild
+java.beans.beancontext.BeanContextSupport.getChildBeanContextMembershipListener
+java.beans.beancontext.BeanContextSupport.setDesignTime
+java.beans.beancontext.BeanContextSupport.getChildVisibility
+java.beans.beancontext.BeanContextSupport.constructors
+java.beans.beancontext.BeanContextSupport.getChildVetoableChangeListener
+java.beans.beancontext.BeanContextSupport.getChildSerializable
+java.beans.beancontext.BeanContextSupport.getBeanContextPeer
+java.beans.beancontext.BeanContextServicesSupport.getChildBeanContextServicesListener
+java.beans.beancontext.InstantiateChild
+java.beans.beancontext.Remove
+java.beans.beancontext.Array
+java.beans.beancontext.Add
+java.beans.PropertyChangeSupport.firePropertyChange
+java.beans.VetoableChangeSupport.addVetoableChangeListener
+java.beans.Statement.check
+java.beans.Beans.instantiate_1
+java.beans.EventHandler.check
+java.beans.EventHandler.check14b
+java.beans.PropertyDescriptor.constructorTest2
+java.beans.PropertyDescriptor.constructorTest1
+java.beans.MethodDescriptor.constructorTest1
+java.awt.AWTEvent.constants
+java.awt.CardLayout.show
+java.awt.CardLayout.first
+java.awt.CardLayout.testMaximumLayoutSize
+java.awt.CardLayout.testMinimumLayoutSize
+java.awt.Graphics.clearRect
+java.awt.Polygon.contains
+java.awt.Polygon.getPathIterator
+java.awt.BasicStroke.equals
+java.awt.BasicStroke.constructors
+java.awt.BasicStroke.hashCode
+java.awt.BasicStroke.constants
+java.awt.Graphics2D.setClip
+java.awt.Graphics2D.getClip
+java.awt.Graphics2D.getClipBounds
+java.awt.Graphics2D.setTransform
+java.awt.Graphics2D.clip
+java.awt.Graphics2D.transform
+java.awt.Point.move
+java.awt.Point.clone
+java.awt.Point.equals
+java.awt.Point.constructors
+java.awt.Point.setLocation
+java.awt.Point.translate
+java.awt.Point.getLocation
+java.awt.event.ComponentEvent.paramString
+java.awt.image.ShortLookupTable.getTable
+java.awt.image.ShortLookupTable.lookupPixel
+java.awt.image.ShortLookupTable.constructors
+java.awt.image.PixelGrabber.SimpleGrabber
+java.awt.image.PixelGrabber.testNullProducer
+java.awt.image.ConvolveOp.getEdgeCondition
+java.awt.image.ConvolveOp.getKernel
+java.awt.image.ConvolveOp.filterRaster
+java.awt.image.ConvolveOp.getRenderingHints
+java.awt.image.ConvolveOp.getPoint2D
+java.awt.image.ConvolveOp.createCompatibleDestRaster
+java.awt.image.ConvolveOp.constructors
+java.awt.image.ConvolveOp.getBounds2D
+java.awt.image.ConvolveOp.constants
+java.awt.image.IndexColorModel.getGreens
+java.awt.image.IndexColorModel.getComponentSize
+java.awt.image.IndexColorModel.getTransparentPixel
+java.awt.image.IndexColorModel.getColorSpace
+java.awt.image.IndexColorModel.getAlphas
+java.awt.image.IndexColorModel.getPixelSize
+java.awt.image.IndexColorModel.isValid
+java.awt.image.IndexColorModel.constructors
+java.awt.image.IndexColorModel.getBlues
+java.awt.image.IndexColorModel.getReds
+java.awt.image.IndexColorModel.getTransparency
+java.awt.image.DataBuffer.getDataTypeSize
+java.awt.image.DataBuffer.getOffset
+java.awt.image.DataBuffer.constants
+java.awt.image.DataBuffer.getOffsets
+java.awt.image.DataBufferUShort.getData
+java.awt.image.DataBufferUShort.getBankData
+java.awt.image.DataBufferUShort.setElem
+java.awt.image.DataBufferUShort.getElem
+java.awt.image.DataBufferUShort.getDataType
+java.awt.image.DataBufferUShort.constructors
+java.awt.image.ComponentSampleModel.setPixels
+java.awt.image.ComponentSampleModel.getPixelStride
+java.awt.image.ComponentSampleModel.getDataElements
+java.awt.image.ComponentSampleModel.getSample
+java.awt.image.ComponentSampleModel.getBandOffsets
+java.awt.image.ComponentSampleModel.equals
+java.awt.image.ComponentSampleModel.getPixel
+java.awt.image.ComponentSampleModel.getNumDataElements
+java.awt.image.ComponentSampleModel.getSamples
+java.awt.image.ComponentSampleModel.getSampleSize
+java.awt.image.ComponentSampleModel.getSampleFloat
+java.awt.image.ComponentSampleModel.setDataElements
+java.awt.image.ComponentSampleModel.constructors
+java.awt.image.ComponentSampleModel.setPixel
+java.awt.image.ComponentSampleModel.createDataBuffer
+java.awt.image.ComponentSampleModel.getOffset
+java.awt.image.ComponentSampleModel.getSampleDouble
+java.awt.image.ComponentSampleModel.createCompatibleSampleModel
+java.awt.image.ComponentSampleModel.setSamples
+java.awt.image.ComponentSampleModel.hashCode
+java.awt.image.ComponentSampleModel.getPixels
+java.awt.image.ComponentSampleModel.getScanlineStride
+java.awt.image.ComponentSampleModel.createSubsetSampleModel
+1 problem (1 error)java.awt.image.ColorModel.getComponentSize
+java.awt.image.ColorModel.getRGBdefault
+java.awt.image.ColorModel.constructors
+java.awt.image.LookupTable.constructor
+java.awt.image.LookupTable.getNumComponents
+java.awt.image.RescaleOp.getScaleFactors
+java.awt.image.RescaleOp.getRenderingHints
+java.awt.image.RescaleOp.getPoint2D
+java.awt.image.RescaleOp.constructors
+java.awt.image.RescaleOp.getNumFactors
+java.awt.image.RescaleOp.getOffsets
+java.awt.image.DirectColorModel.coerceData
+java.awt.image.WritableRaster.createChild
+java.awt.image.WritableRaster.createWritableChild
+java.awt.image.ComponentColorModel.coerceData
+java.awt.image.SampleModel.setPixels
+java.awt.image.SampleModel.getSample
+java.awt.image.SampleModel.getPixel
+java.awt.image.SampleModel.getSamples
+java.awt.image.SampleModel.getSampleSize
+java.awt.image.SampleModel.getSampleFloat
+java.awt.image.SampleModel.setPixel
+java.awt.image.SampleModel.setSample
+java.awt.image.SampleModel.createDataBuffer
+java.awt.image.SampleModel.getSampleDouble
+java.awt.image.SampleModel.setSamples
+java.awt.image.SampleModel.getPixels
+java.awt.image.BandCombineOp.getPoint2D
+java.awt.image.BandCombineOp.createCompatibleDestRaster
+java.awt.image.BandCombineOp.getBounds2D
+java.awt.image.BandCombineOp.filter
+java.awt.image.LookupOp.constructor
+java.awt.image.LookupOp.filterRaster
+java.awt.image.LookupOp.getRenderingHints
+java.awt.image.LookupOp.getTable
+java.awt.image.LookupOp.getPoint2D
+java.awt.image.Kernel.getYOrigin
+java.awt.image.Kernel.constructor
+java.awt.image.Kernel.getXOrigin
+java.awt.image.Kernel.getHeight
+java.awt.image.Kernel.check
+java.awt.image.Kernel.getKernelData
+java.awt.image.Kernel.getWidth
+java.awt.image.BufferedImage.getSubimage
+java.awt.image.BufferedImage.getSetRgb1Pixel
+java.awt.image.DataBufferByte.getData
+java.awt.image.DataBufferByte.getBankData
+java.awt.image.DataBufferByte.setElem
+java.awt.image.DataBufferByte.getElem
+java.awt.image.DataBufferByte.getDataType
+java.awt.image.DataBufferByte.constructors
+java.awt.image.DataBufferShort.getData
+java.awt.image.DataBufferShort.getBankData
+java.awt.image.DataBufferShort.setElem
+java.awt.image.DataBufferShort.getElem
+java.awt.image.DataBufferShort.getDataType
+java.awt.image.DataBufferShort.constructors
+java.awt.image.Raster.createChild
+java.awt.image.DataBufferInt.getData
+java.awt.image.DataBufferInt.getBankData
+java.awt.image.DataBufferInt.setElem
+java.awt.image.DataBufferInt.getElem
+java.awt.image.DataBufferInt.getDataType
+java.awt.image.DataBufferInt.constructors
+java.awt.image.SinglePixelPackedSampleModel.getBitOffsets
+java.awt.image.SinglePixelPackedSampleModel.getDataElements
+java.awt.image.SinglePixelPackedSampleModel.getSample
+java.awt.image.SinglePixelPackedSampleModel.equals
+java.awt.image.SinglePixelPackedSampleModel.getPixel
+java.awt.image.SinglePixelPackedSampleModel.getNumDataElements
+java.awt.image.SinglePixelPackedSampleModel.getSamples
+java.awt.image.SinglePixelPackedSampleModel.getSampleSize
+java.awt.image.SinglePixelPackedSampleModel.setDataElements
+java.awt.image.SinglePixelPackedSampleModel.constructors
+java.awt.image.SinglePixelPackedSampleModel.getBitMasks
+java.awt.image.SinglePixelPackedSampleModel.setPixel
+java.awt.image.SinglePixelPackedSampleModel.setSample
+java.awt.image.SinglePixelPackedSampleModel.createDataBuffer
+java.awt.image.SinglePixelPackedSampleModel.getOffset
+java.awt.image.SinglePixelPackedSampleModel.createCompatibleSampleModel
+java.awt.image.SinglePixelPackedSampleModel.hashCode
+java.awt.image.SinglePixelPackedSampleModel.getPixels
+java.awt.image.SinglePixelPackedSampleModel.getScanlineStride
+java.awt.image.SinglePixelPackedSampleModel.createSubsetSampleModel
+java.awt.image.ByteLookupTable.getTable
+java.awt.image.ByteLookupTable.lookupPixel
+java.awt.image.ByteLookupTable.constructors
+java.awt.image.MultiPixelPackedSampleModel.getBitOffset
+java.awt.image.MultiPixelPackedSampleModel.getTransferType
+java.awt.image.MultiPixelPackedSampleModel.getDataElements
+java.awt.image.MultiPixelPackedSampleModel.getSample
+java.awt.image.MultiPixelPackedSampleModel.equals
+java.awt.image.MultiPixelPackedSampleModel.getPixel
+java.awt.image.MultiPixelPackedSampleModel.getSampleSize
+java.awt.image.MultiPixelPackedSampleModel.setDataElements
+java.awt.image.MultiPixelPackedSampleModel.constructors
+java.awt.image.MultiPixelPackedSampleModel.setPixel
+java.awt.image.MultiPixelPackedSampleModel.setSample
+java.awt.image.MultiPixelPackedSampleModel.createDataBuffer
+java.awt.image.MultiPixelPackedSampleModel.getPixelBitStride
+java.awt.image.MultiPixelPackedSampleModel.getOffset
+java.awt.image.MultiPixelPackedSampleModel.createCompatibleSampleModel
+java.awt.image.MultiPixelPackedSampleModel.hashCode
+java.awt.image.MultiPixelPackedSampleModel.getScanlineStride
+java.awt.image.MultiPixelPackedSampleModel.createSubsetSampleModel
+java.awt.image.AffineTransformOp.getPoint2D
+java.awt.image.AffineTransformOp.createCompatibleDestRaster
+java.awt.image.AffineTransformOp.constructors
+java.awt.image.AffineTransformOp.getBounds2D
+java.awt.image.PixelInterleavedSampleModel.createSubsetSampleModel
+java.awt.image.BandedSampleModel.setPixels
+java.awt.image.BandedSampleModel.getDataElements
+java.awt.image.BandedSampleModel.getSample
+java.awt.image.BandedSampleModel.getPixel
+java.awt.image.BandedSampleModel.getSamples
+java.awt.image.BandedSampleModel.getSampleFloat
+java.awt.image.BandedSampleModel.setDataElements
+java.awt.image.BandedSampleModel.constructors
+java.awt.image.BandedSampleModel.setPixel
+java.awt.image.BandedSampleModel.setSample
+java.awt.image.BandedSampleModel.createDataBuffer
+java.awt.image.BandedSampleModel.getSampleDouble
+java.awt.image.BandedSampleModel.createCompatibleSampleModel
+java.awt.image.BandedSampleModel.setSamples
+java.awt.image.BandedSampleModel.hashCode
+java.awt.image.BandedSampleModel.getPixels
+java.awt.image.BandedSampleModel.createSubsetSampleModel
+java.awt.image.ColorConvertOp.filterRaster
+java.awt.image.ColorConvertOp.getPoint2D
+java.awt.image.ColorConvertOp.createCompatibleDestRaster
+java.awt.image.ColorConvertOp.constructors
+java.awt.image.ColorConvertOp.getBounds2D
+java.awt.ScrollPaneAdjustable.paramString
+java.awt.GridBagLayout.AdjustForGravity
+java.awt.GridBagLayout.toString
+java.awt.Dimension.clone
+java.awt.Dimension.equals
+java.awt.Dimension.setSize
+java.awt.Dimension.getSize
+java.awt.Dimension.constructors
+java.awt.TextField.getPreferredSize
+java.awt.TextField.getMinimumSize
+java.awt.TextField.constructors
+java.awt.BorderLayout.layoutContainer
+java.awt.BorderLayout.getHgap
+java.awt.BorderLayout.maxLayoutSize
+java.awt.BorderLayout.setVgap
+java.awt.BorderLayout.getVgap
+java.awt.BorderLayout.getLayoutAlignmentY
+java.awt.BorderLayout.Test15
+java.awt.BorderLayout.getLayoutAlignmentX
+java.awt.BorderLayout.setHgap
+java.awt.BorderLayout.constructors
+java.awt.BorderLayout.constants
+java.awt.BorderLayout.preferredLayoutSize
+java.awt.BorderLayout.addLayoutComponent
+java.awt.Scrollbar.testSetBlockIncrement
+java.awt.Scrollbar.testSetUnitIncrement
+java.awt.Scrollbar.testSetValues
+java.awt.List.testSelected
+java.awt.ScrollPane.add
+java.awt.ScrollPane.getScrollPosition
+java.awt.ScrollPane.testSetLayout
+java.awt.ScrollPane.setScrollPosition
+java.awt.ScrollPane.doLayout
+java.awt.Choice.getSelected
+java.awt.Choice.remove
+java.awt.KeyboardFocusManager.getFocusOwner
+java.awt.KeyboardFocusManager.getGlobalPermanentFocusOwner
+java.awt.KeyboardFocusManager.getGlobalFocusOwner
+java.awt.AWTPermission.constructor
+java.awt.ColorClass.decode
+java.awt.ColorClass.serialization
+java.awt.ColorClass.equals
+java.awt.ColorClass.getGreen
+java.awt.ColorClass.constructors
+java.awt.ColorClass.brighter
+java.awt.ColorClass.hashCode
+java.awt.ColorClass.constants
+java.awt.ColorClass.getBlue
+java.awt.ColorClass.getRed
+java.awt.RenderingHints.Key.isCompatibleValue
+java.awt.RenderingHints.clone
+java.awt.RenderingHints.keySet
+java.awt.RenderingHints.put
+java.awt.RenderingHints.add
+java.awt.RenderingHints.putAll
+java.awt.RenderingHints.entrySet
+java.awt.RenderingHints.equals
+java.awt.RenderingHints.size
+java.awt.RenderingHints.get
+java.awt.RenderingHints.values
+java.awt.RenderingHints.containsValue
+java.awt.RenderingHints.isEmpty
+java.awt.RenderingHints.remove
+java.awt.RenderingHints.clear
+java.awt.Panel.TestPanelRepaint
+java.awt.AWTKeyStroke.serialization
+java.awt.AWTKeyStroke.equals
+java.awt.AWTKeyStroke.getAWTKeyStroke
+java.awt.Rectangle.clone
+java.awt.Rectangle.add
+java.awt.Rectangle.setRect
+java.awt.Rectangle.setBounds
+java.awt.Rectangle.equals
+java.awt.Rectangle.intersects
+java.awt.Rectangle.setSize
+java.awt.Rectangle.grow
+java.awt.Rectangle.outcode
+java.awt.Rectangle.union
+java.awt.Rectangle.constructors
+java.awt.Rectangle.intersection
+java.awt.Rectangle.setLocation
+java.awt.Rectangle.translate
+java.awt.Rectangle.contains
+java.awt.Rectangle.isEmpty
+java.awt.Menu.insert
+java.awt.AlphaComposite.getInstance
+java.awt.AlphaComposite.equals
+java.awt.AlphaComposite.getInstance14
+java.awt.AlphaComposite.getRule
+java.awt.Window.security
+java.awt.Window.focusCycleRootTest
+java.awt.EventClass.constants
+java.awt.Frame.isDisplayable1
+java.awt.Frame.isDisplayable5
+java.awt.Frame.isDisplayable4
+java.awt.Frame.isDisplayable3
+java.awt.Frame.isDisplayable6
+java.awt.Frame.menubar
+java.awt.Frame.isDisplayable2
+java.awt.Frame.isDisplayable7
+java.awt.Container.getListeners
+java.awt.Container.setLayout
+java.awt.Container.getPreferredSize
+java.awt.Container.applyComponentOrientation
+java.awt.Container.getComponentAt
+java.awt.Container.getAlignmentY
+java.awt.Container.getAlignmentX
+java.awt.Container.addImpl
+java.awt.FontClass.serialization
+java.awt.MenuItem.label1
+java.awt.font.TextHitInfo.isLeadingEdge
+java.awt.font.TextHitInfo.getOtherHit
+java.awt.font.TextHitInfo.leading
+java.awt.font.TextHitInfo.getOffsetHit
+java.awt.font.TextHitInfo.equals
+java.awt.font.TextHitInfo.getCharIndex
+java.awt.font.TextHitInfo.afterOffset
+java.awt.font.TextHitInfo.getInsertionIndex
+java.awt.font.TextHitInfo.toString
+java.awt.font.TextHitInfo.beforeOffset
+java.awt.font.TextHitInfo.hashCode
+java.awt.font.TextHitInfo.trailing
+java.awt.font.TransformAttribute.serialization
+java.awt.font.TransformAttribute.getTransform
+java.awt.font.TransformAttribute.isIdentity
+java.awt.font.ShapeGraphicAttribute.ShapeGraphicAttributeTest
+java.awt.font.ImageGraphicAttribute.ImageGraphicAttributeTest
+java.awt.font.TextAttribute.toString13
+java.awt.font.TextAttribute.serialization
+java.awt.font.TextAttribute.toString
+java.awt.font.TextAttribute.constants13
+java.awt.font.TextAttribute.constants
+java.awt.GradientPaint.getPoint2
+java.awt.GradientPaint.equals
+java.awt.GradientPaint.getColor1
+java.awt.GradientPaint.constructors
+java.awt.GradientPaint.getColor2
+java.awt.GradientPaint.isCyclic
+java.awt.GradientPaint.getTransparency
+java.awt.GradientPaint.getPoint1
+java.awt.TextComponent.setSelectionStart
+java.awt.Component.repaint
+java.awt.Component.getListeners
+java.awt.Component.setName
+java.awt.Component.properties14
+java.awt.Component.getMaximumSize
+java.awt.Component.setMinimumSize
+java.awt.Component.getForeground
+java.awt.Component.setPreferredSize
+java.awt.Component.properties
+java.awt.Component.requestFocus
+java.awt.Component.isValid
+java.awt.Component.getFont
+java.awt.Component.setMaximumSize
+java.awt.Component.setComponentOrientation
+java.awt.datatransfer.DataFlavor.writeExternal
+java.awt.datatransfer.StringSelection.selection
+java.awt.TextArea.getPreferredSize
+java.awt.TextArea.getMinimumSize
+java.awt.TextArea.testReplaceText
+java.awt.TextArea.constructors
+java.awt.TextArea.testAppendText
+java.awt.TextArea.testInsertText
+java.awt.TextArea.testInvalidConstructorValues
+java.awt.color.ColorSpace.isCS_sRGB
+java.awt.color.ColorSpace.getInstance
+java.awt.FlowLayout.minimumLayoutSize
+java.awt.geom.Ellipse2D.Double.clone
+java.awt.geom.Ellipse2D.Double.getY
+java.awt.geom.Ellipse2D.Double.setFrame
+java.awt.geom.Ellipse2D.Double.getHeight
+java.awt.geom.Ellipse2D.Double.getX
+java.awt.geom.Ellipse2D.Double.constructors
+java.awt.geom.Ellipse2D.Double.getBounds2D
+java.awt.geom.Ellipse2D.Double.isEmpty
+java.awt.geom.Ellipse2D.Double.getWidth
+java.awt.geom.Ellipse2D.Float.clone
+java.awt.geom.Ellipse2D.Float.getY
+java.awt.geom.Ellipse2D.Float.setFrame
+java.awt.geom.Ellipse2D.Float.getHeight
+java.awt.geom.Ellipse2D.Float.getX
+java.awt.geom.Ellipse2D.Float.constructors
+java.awt.geom.Ellipse2D.Float.getBounds2D
+java.awt.geom.Ellipse2D.Float.isEmpty
+java.awt.geom.Ellipse2D.Float.getWidth
+java.awt.geom.Ellipse2D.intersects
+java.awt.geom.Ellipse2D.contains
+java.awt.geom.GeneralPath.getCurrentPoint
+java.awt.geom.GeneralPath.GeneralPath
+java.awt.geom.GeneralPath.append_PathIterator
+java.awt.geom.GeneralPath.contains
+java.awt.geom.GeneralPath.getPathIterator
+java.awt.geom.RectangularShape.getFrame
+java.awt.geom.RectangularShape.setFrame
+java.awt.geom.RectangularShape.getMinY
+java.awt.geom.RectangularShape.intersects
+java.awt.geom.RectangularShape.getMaxY
+java.awt.geom.RectangularShape.getMaxX
+java.awt.geom.RectangularShape.setFrameFromCenter
+java.awt.geom.RectangularShape.setFrameFromDiagonal
+java.awt.geom.RectangularShape.getMinX
+java.awt.geom.RectangularShape.getCenterX
+java.awt.geom.RectangularShape.getCenterY
+java.awt.geom.RectangularShape.contains
+java.awt.geom.RectangularShape.isEmpty
+java.awt.geom.RectangularShape.getBounds
+java.awt.geom.Line2D.clone
+java.awt.geom.Line2D.getP1
+java.awt.geom.Line2D.linesIntersect
+java.awt.geom.Line2D.ptSegDistSq
+java.awt.geom.Line2D.relativeCCW
+java.awt.geom.Line2D.getP2
+java.awt.geom.Line2D.setLine
+java.awt.geom.Line2D.equals
+java.awt.geom.Line2D.intersects
+java.awt.geom.Line2D.ptLineDistSq
+java.awt.geom.Line2D.ptSegDist
+java.awt.geom.Line2D.intersectsLine
+java.awt.geom.Line2D.contains
+java.awt.geom.Line2D.ptLineDist
+java.awt.geom.Line2D.getPathIterator
+java.awt.geom.Line2D.getBounds
+java.awt.geom.Area.clone
+java.awt.geom.Area.add
+java.awt.geom.Area.isRectangular
+java.awt.geom.Area.createTransformedArea
+java.awt.geom.Area.isPolygonal
+java.awt.geom.Area.intersect
+java.awt.geom.Area.equals
+java.awt.geom.Area.exclusiveOr
+java.awt.geom.Area.intersects
+java.awt.geom.Area.reset
+java.awt.geom.Area.isSingular
+java.awt.geom.Area.constructors
+java.awt.geom.Area.getBounds2D
+java.awt.geom.Area.contains
+java.awt.geom.Area.subtract
+java.awt.geom.Area.isEmpty
+java.awt.geom.Area.transform
+java.awt.geom.Area.getBounds
+java.awt.geom.Rectangle2D.Double.clone
+java.awt.geom.Rectangle2D.Double.createIntersection
+java.awt.geom.Rectangle2D.Double.setRect
+java.awt.geom.Rectangle2D.Double.outcode
+java.awt.geom.Rectangle2D.Double.createUnion
+java.awt.geom.Rectangle2D.Double.isEmpty
+java.awt.geom.Rectangle2D.Float.clone
+java.awt.geom.Rectangle2D.Float.createIntersection
+java.awt.geom.Rectangle2D.Float.setRect
+java.awt.geom.Rectangle2D.Float.outcode
+java.awt.geom.Rectangle2D.Float.createUnion
+java.awt.geom.Rectangle2D.Float.isEmpty
+java.awt.geom.Rectangle2D.add
+java.awt.geom.Rectangle2D.setFrame
+java.awt.geom.Rectangle2D.intersect
+java.awt.geom.Rectangle2D.equals
+java.awt.geom.Rectangle2D.intersects
+java.awt.geom.Rectangle2D.union
+java.awt.geom.Rectangle2D.intersectsLine
+java.awt.geom.Rectangle2D.getBounds2D
+java.awt.geom.Rectangle2D.contains
+java.awt.geom.Rectangle2D.constants
+java.awt.geom.Rectangle2D.getPathIterator
+java.awt.geom.Rectangle2D.getBounds
+java.awt.geom.Arc2D.Double.clone
+java.awt.geom.Arc2D.Float.clone
+java.awt.geom.Arc2D.setFrame
+java.awt.geom.Arc2D.setAngleStart
+java.awt.geom.Arc2D.setArc
+java.awt.geom.Arc2D.setArcByTangent
+java.awt.geom.Arc2D.containsAngle
+java.awt.geom.Arc2D.setArcByCenter
+java.awt.geom.Arc2D.intersects
+java.awt.geom.Arc2D.getEndPoint
+java.awt.geom.Arc2D.setAngleExtent
+java.awt.geom.Arc2D.constructors
+java.awt.geom.Arc2D.getBounds2D
+java.awt.geom.Arc2D.contains
+java.awt.geom.Arc2D.getStartPoint
+java.awt.geom.Arc2D.constants
+java.awt.geom.Arc2D.isEmpty
+java.awt.geom.Arc2D.getPathIterator
+java.awt.geom.Arc2D.setAngles
+java.awt.geom.Arc2D.setArcType
+java.awt.geom.QuadCurve2D.Double.getP1
+java.awt.geom.QuadCurve2D.Double.getP2
+java.awt.geom.QuadCurve2D.Double.getCtrlPt
+java.awt.geom.QuadCurve2D.Double.getBounds2D
+java.awt.geom.QuadCurve2D.Double.Double
+java.awt.geom.QuadCurve2D.Double.setCurve
+java.awt.geom.QuadCurve2D.Float.getP1
+java.awt.geom.QuadCurve2D.Float.Float
+java.awt.geom.QuadCurve2D.Float.getP2
+java.awt.geom.QuadCurve2D.Float.getCtrlPt
+java.awt.geom.QuadCurve2D.Float.getBounds2D
+java.awt.geom.QuadCurve2D.Float.setCurve
+java.awt.geom.QuadCurve2D.clone
+java.awt.geom.QuadCurve2D.getFlatness
+java.awt.geom.QuadCurve2D.subdivide
+java.awt.geom.QuadCurve2D.getFlatnessSq
+java.awt.geom.QuadCurve2D.setCurve
+java.awt.geom.QuadCurve2D.getPathIterator
+java.awt.geom.CubicCurve2D.Double.getP1
+java.awt.geom.CubicCurve2D.Double.getCtrlP2
+java.awt.geom.CubicCurve2D.Double.getP2
+java.awt.geom.CubicCurve2D.Double.getBounds2D
+java.awt.geom.CubicCurve2D.Double.Double
+java.awt.geom.CubicCurve2D.Double.setCurve
+java.awt.geom.CubicCurve2D.Double.getCtrlP1
+java.awt.geom.CubicCurve2D.Float.getP1
+java.awt.geom.CubicCurve2D.Float.getCtrlP2
+java.awt.geom.CubicCurve2D.Float.Float
+java.awt.geom.CubicCurve2D.Float.getP2
+java.awt.geom.CubicCurve2D.Float.getBounds2D
+java.awt.geom.CubicCurve2D.Float.setCurve
+java.awt.geom.CubicCurve2D.Float.getCtrlP1
+java.awt.geom.CubicCurve2D.clone
+java.awt.geom.CubicCurve2D.getFlatness
+java.awt.geom.CubicCurve2D.subdivide
+java.awt.geom.CubicCurve2D.getFlatnessSq
+java.awt.geom.CubicCurve2D.setCurve
+java.awt.geom.CubicCurve2D.getPathIterator
+java.awt.geom.FlatteningPathIterator.FlatteningPathIterator
+java.awt.geom.FlatteningPathIterator.getWindingRule
+java.awt.geom.FlatteningPathIterator.getFlatness
+java.awt.geom.FlatteningPathIterator.getRecursionLimit
+java.awt.geom.FlatteningPathIterator.currentSegment
+java.awt.geom.AffineTransform.clone
+java.awt.geom.AffineTransform.preConcatenate
+java.awt.geom.AffineTransform.getRotateInstance
+java.awt.geom.AffineTransform.getMatrix
+java.awt.geom.AffineTransform.inverseTransform
+java.awt.geom.AffineTransform.getScaleInstance
+java.awt.geom.AffineTransform.createInverse
+java.awt.geom.AffineTransform.deltaTransform
+java.awt.geom.AffineTransform.equals
+java.awt.geom.AffineTransform.setTransform
+java.awt.geom.AffineTransform.constructors
+java.awt.geom.AffineTransform.getTranslateInstance
+java.awt.geom.AffineTransform.constants
+java.awt.geom.AffineTransform.concatenate
+java.awt.geom.AffineTransform.getShearInstance
+java.awt.geom.AffineTransform.transform
+java.awt.geom.AffineTransform.getDeterminant
+java.awt.geom.AffineTransform.isIdentity
+java.awt.geom.RoundRectangle2D.intersects
+java.awt.geom.RoundRectangle2D.contains
+java.awt.testName
+java.nio.Buffer.IntBufferTest
+java.nio.Buffer.ShortBufferTest
+java.nio.Buffer.FloatBufferTest
+java.nio.Buffer.LongBufferTest
+java.nio.Buffer.ByteBufferTest
+java.nio.Buffer.DoubleBufferTest
+java.nio.Buffer.CharBufferTest
+java.nio.LongBuffer.compact
+java.nio.ShortBuffer.compact
+java.nio.IntBuffer.compareTo
+java.nio.IntBuffer.compact
+java.nio.channels.Channels.ChannelsTest
+java.nio.channels.Selector.testEmptySelect
+java.nio.channels.FileChannel.copyIO
+java.nio.channels.FileChannel.multibufferIO
+java.nio.channels.FileChannel.truncate
+java.nio.channels.FileChannel.map
+java.nio.channels.FileChannel.offsetSingleBuffer
+java.nio.channels.FileChannel.singlebufferIO
+java.nio.channels.FileChannel.multidirectbufferIO
+java.nio.channels.FileChannel.offsetSingleDirectBuffer
+java.nio.DoubleBuffer.compareTo
+java.nio.DoubleBuffer.compact
+java.nio.ByteBuffer.direct
+java.nio.ByteBuffer.compact
+java.nio.ByteBuffer.TestAllocateDirect
+java.nio.ByteBuffer.GetPut
+java.nio.ByteBuffer.putDouble
+java.nio.ByteBuffer.Order
+java.nio.ByteBuffer.Allocating
+java.nio.CharBuffer.compact
+java.nio.FloatBuffer.compareTo
+java.nio.FloatBuffer.compact
+java.nio.charset.Charset.UTF8Charset
+java.nio.charset.Charset.utf16
+java.nio.charset.Charset.canEncode
+java.nio.charset.Charset.forName
diff --git a/debian/nss.cfg b/debian/nss.cfg
new file mode 100644 (file)
index 0000000..3535a40
--- /dev/null
@@ -0,0 +1,4 @@
+name = NSS
+nssDbMode = noDb
+attributes = compatibility
+handleStartupErrors = ignoreMultipleInitialisation
diff --git a/debian/openjdk-8-jre-jamvm.overrides b/debian/openjdk-8-jre-jamvm.overrides
new file mode 100644 (file)
index 0000000..01c4b2c
--- /dev/null
@@ -0,0 +1,7 @@
+# It seems to be acceptable to use rpath for private libraries like the
+# jdk is doing it. Check http://wiki.debian.org/RpathIssue for more
+# information.
+openjdk-8-jre-jamvm binary: shlib-with-executable-stack
+
+# Strip libjvm.so with --strip-debug instead of --strip-unneeded. LP: #574997.
+openjdk-8-jre-jamvm binary: unstripped-binary-or-object
diff --git a/debian/patches/8050942.diff b/debian/patches/8050942.diff
new file mode 100644 (file)
index 0000000..fc8557d
--- /dev/null
@@ -0,0 +1,457 @@
+# HG changeset patch
+# User kvn
+# Date 1405636804 25200
+# Node ID 5224135904f811d90acaf8d8b48756ca7f83ae71
+# Parent  e2572eca065148d00cc2547bb36cae42cdb9b206
+8050942: PPC64: implement template interpreter for ppc64le
+Reviewed-by: kvn, goetz
+Contributed-by: asmundak@google.com
+
+--- src/hotspot/src/cpu/ppc/vm/templateTable_ppc_64.cpp
++++ src/hotspot/src/cpu/ppc/vm/templateTable_ppc_64.cpp
+@@ -188,8 +188,12 @@
+       assert(byte_no == f1_byte || byte_no == f2_byte, "byte_no out of range");
+       assert(load_bc_into_bc_reg, "we use bc_reg as temp");
+       __ get_cache_and_index_at_bcp(Rtemp /* dst = cache */, 1);
+-      // Big Endian: ((*(cache+indices))>>((1+byte_no)*8))&0xFF
++      // ((*(cache+indices))>>((1+byte_no)*8))&0xFF:
++#if defined(VM_LITTLE_ENDIAN)
++      __ lbz(Rnew_bc, in_bytes(ConstantPoolCache::base_offset() + ConstantPoolCacheEntry::indices_offset()) + 1 + byte_no, Rtemp);
++#else
+       __ lbz(Rnew_bc, in_bytes(ConstantPoolCache::base_offset() + ConstantPoolCacheEntry::indices_offset()) + 7 - (1 + byte_no), Rtemp);
++#endif
+       __ cmpwi(CCR0, Rnew_bc, 0);
+       __ li(Rnew_bc, (unsigned int)(unsigned char)new_bc);
+       __ beq(CCR0, L_patch_done);
+@@ -1838,8 +1842,8 @@
+   __ clrrdi(Rdef_offset_addr, Rdef_offset_addr, log2_long((jlong)BytesPerInt));
+   // Load lo & hi.
+-  __ lwz(Rlow_byte, BytesPerInt, Rdef_offset_addr);
+-  __ lwz(Rhigh_byte, BytesPerInt * 2, Rdef_offset_addr);
++  __ get_u4(Rlow_byte, Rdef_offset_addr, BytesPerInt, InterpreterMacroAssembler::Unsigned);
++  __ get_u4(Rhigh_byte, Rdef_offset_addr, 2 *BytesPerInt, InterpreterMacroAssembler::Unsigned);
+   // Check for default case (=index outside [low,high]).
+   __ cmpw(CCR0, R17_tos, Rlow_byte);
+@@ -1853,12 +1857,17 @@
+   __ profile_switch_case(Rindex, Rhigh_byte /* scratch */, Rscratch1, Rscratch2);
+   __ sldi(Rindex, Rindex, LogBytesPerInt);
+   __ addi(Rindex, Rindex, 3 * BytesPerInt);
++#if defined(VM_LITTLE_ENDIAN)
++  __ lwbrx(Roffset, Rdef_offset_addr, Rindex);
++  __ extsw(Roffset, Roffset);
++#else
+   __ lwax(Roffset, Rdef_offset_addr, Rindex);
++#endif
+   __ b(Ldispatch);
+   __ bind(Ldefault_case);
+   __ profile_switch_default(Rhigh_byte, Rscratch1);
+-  __ lwa(Roffset, 0, Rdef_offset_addr);
++  __ get_u4(Roffset, Rdef_offset_addr, 0, InterpreterMacroAssembler::Signed);
+   __ bind(Ldispatch);
+@@ -1874,12 +1883,11 @@
+ // Table switch using linear search through cases.
+ // Bytecode stream format:
+ // Bytecode (1) | 4-byte padding | default offset (4) | count (4) | value/offset pair1 (8) | value/offset pair2 (8) | ...
+-// Note: Everything is big-endian format here. So on little endian machines, we have to revers offset and count and cmp value.
++// Note: Everything is big-endian format here.
+ void TemplateTable::fast_linearswitch() {
+   transition(itos, vtos);
+-  Label Lloop_entry, Lsearch_loop, Lfound, Lcontinue_execution, Ldefault_case;
+-
++  Label Lloop_entry, Lsearch_loop, Lcontinue_execution, Ldefault_case;
+   Register Rcount           = R3_ARG1,
+            Rcurrent_pair    = R4_ARG2,
+            Rdef_offset_addr = R5_ARG3, // Is going to contain address of default offset.
+@@ -1893,47 +1901,40 @@
+   __ clrrdi(Rdef_offset_addr, Rdef_offset_addr, log2_long((jlong)BytesPerInt));
+   // Setup loop counter and limit.
+-  __ lwz(Rcount, BytesPerInt, Rdef_offset_addr);    // Load count.
++  __ get_u4(Rcount, Rdef_offset_addr, BytesPerInt, InterpreterMacroAssembler::Unsigned);
+   __ addi(Rcurrent_pair, Rdef_offset_addr, 2 * BytesPerInt); // Rcurrent_pair now points to first pair.
+-  // Set up search loop.
+-  __ cmpwi(CCR0, Rcount, 0);
+-  __ beq(CCR0, Ldefault_case);
+-
+   __ mtctr(Rcount);
++  __ cmpwi(CCR0, Rcount, 0);
++  __ bne(CCR0, Lloop_entry);
+-  // linear table search
+-  __ bind(Lsearch_loop);
+-
+-  __ lwz(Rvalue, 0, Rcurrent_pair);
+-  __ lwa(Roffset, 1 * BytesPerInt, Rcurrent_pair);
+-
+-  __ cmpw(CCR0, Rvalue, Rcmp_value);
+-  __ beq(CCR0, Lfound);
+-
+-  __ addi(Rcurrent_pair, Rcurrent_pair, 2 * BytesPerInt);
+-  __ bdnz(Lsearch_loop);
+-
+-  // default case
++  // Default case
+   __ bind(Ldefault_case);
+-
+-  __ lwa(Roffset, 0, Rdef_offset_addr);
++  __ get_u4(Roffset, Rdef_offset_addr, 0, InterpreterMacroAssembler::Signed);
+   if (ProfileInterpreter) {
+     __ profile_switch_default(Rdef_offset_addr, Rcount/* scratch */);
+-    __ b(Lcontinue_execution);
+   }
++  __ b(Lcontinue_execution);
+-  // Entry found, skip Roffset bytecodes and continue.
+-  __ bind(Lfound);
++  // Next iteration
++  __ bind(Lsearch_loop);
++  __ bdz(Ldefault_case);
++  __ addi(Rcurrent_pair, Rcurrent_pair, 2 * BytesPerInt);
++  __ bind(Lloop_entry);
++  __ get_u4(Rvalue, Rcurrent_pair, 0, InterpreterMacroAssembler::Unsigned);
++  __ cmpw(CCR0, Rvalue, Rcmp_value);
++  __ bne(CCR0, Lsearch_loop);
++
++  // Found, load offset.
++  __ get_u4(Roffset, Rcurrent_pair, BytesPerInt, InterpreterMacroAssembler::Signed);
++  // Calculate case index and profile
++  __ mfctr(Rcurrent_pair);
+   if (ProfileInterpreter) {
+-    // Calc the num of the pair we hit. Careful, Rcurrent_pair points 2 ints
+-    // beyond the actual current pair due to the auto update load above!
+-    __ sub(Rcurrent_pair, Rcurrent_pair, Rdef_offset_addr);
+-    __ addi(Rcurrent_pair, Rcurrent_pair, - 2 * BytesPerInt);
+-    __ srdi(Rcurrent_pair, Rcurrent_pair, LogBytesPerInt + 1);
++    __ sub(Rcurrent_pair, Rcount, Rcurrent_pair);
+     __ profile_switch_case(Rcurrent_pair, Rcount /*scratch*/, Rdef_offset_addr/*scratch*/, Rscratch);
+-    __ bind(Lcontinue_execution);
+   }
++
++  __ bind(Lcontinue_execution);
+   __ add(R14_bcp, Roffset, R14_bcp);
+   __ dispatch_next(vtos);
+ }
+@@ -1989,7 +1990,7 @@
+   // initialize i & j
+   __ li(Ri,0);
+-  __ lwz(Rj, -BytesPerInt, Rarray);
++  __ get_u4(Rj, Rarray, -BytesPerInt, InterpreterMacroAssembler::Unsigned);
+   // and start.
+   Label entry;
+@@ -2006,7 +2007,11 @@
+     //   i = h;
+     // }
+     __ sldi(Rscratch, Rh, log_entry_size);
++#if defined(VM_LITTLE_ENDIAN)
++    __ lwbrx(Rscratch, Rscratch, Rarray);
++#else
+     __ lwzx(Rscratch, Rscratch, Rarray);
++#endif
+     // if (key < current value)
+     //   Rh = Rj
+@@ -2038,20 +2043,20 @@
+   // Ri = value offset
+   __ sldi(Ri, Ri, log_entry_size);
+   __ add(Ri, Ri, Rarray);
+-  __ lwz(Rscratch, 0, Ri);
++  __ get_u4(Rscratch, Ri, 0, InterpreterMacroAssembler::Unsigned);
+   Label not_found;
+   // Ri = offset offset
+   __ cmpw(CCR0, Rkey, Rscratch);
+   __ beq(CCR0, not_found);
+   // entry not found -> j = default offset
+-  __ lwz(Rj, -2 * BytesPerInt, Rarray);
++  __ get_u4(Rj, Rarray, -2 * BytesPerInt, InterpreterMacroAssembler::Unsigned);
+   __ b(default_case);
+   __ bind(not_found);
+   // entry found -> j = offset
+   __ profile_switch_case(Rh, Rj, Rscratch, Rkey);
+-  __ lwz(Rj, BytesPerInt, Ri);
++  __ get_u4(Rj, Ri, BytesPerInt, InterpreterMacroAssembler::Unsigned);
+   if (ProfileInterpreter) {
+     __ b(continue_execution);
+@@ -2146,8 +2151,11 @@
+   assert(byte_no == f1_byte || byte_no == f2_byte, "byte_no out of range");
+   // We are resolved if the indices offset contains the current bytecode.
+-  // Big Endian:
++#if defined(VM_LITTLE_ENDIAN)
++  __ lbz(Rscratch, in_bytes(ConstantPoolCache::base_offset() + ConstantPoolCacheEntry::indices_offset()) + byte_no + 1, Rcache);
++#else
+   __ lbz(Rscratch, in_bytes(ConstantPoolCache::base_offset() + ConstantPoolCacheEntry::indices_offset()) + 7 - (byte_no + 1), Rcache);
++#endif
+   // Acquire by cmp-br-isync (see below).
+   __ cmpdi(CCR0, Rscratch, (int)bytecode());
+   __ beq(CCR0, Lresolved);
+--- src/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
++++ src/hotspot/src/cpu/ppc/vm/templateInterpreter_ppc.cpp
+@@ -175,8 +175,12 @@
+   const Register size  = R12_scratch2;
+   __ get_cache_and_index_at_bcp(cache, 1, index_size);
+-  // Big Endian (get least significant byte of 64 bit value):
++  // Get least significant byte of 64 bit value:
++#if defined(VM_LITTLE_ENDIAN)
++  __ lbz(size, in_bytes(ConstantPoolCache::base_offset() + ConstantPoolCacheEntry::flags_offset()), cache);
++#else
+   __ lbz(size, in_bytes(ConstantPoolCache::base_offset() + ConstantPoolCacheEntry::flags_offset()) + 7, cache);
++#endif
+   __ sldi(size, size, Interpreter::logStackElementSize);
+   __ add(R15_esp, R15_esp, size);
+   __ dispatch_next(state, step);
+@@ -857,7 +861,9 @@
+   // Our signature handlers copy required arguments to the C stack
+   // (outgoing C args), R3_ARG1 to R10_ARG8, and FARG1 to FARG13.
+   __ mr(R3_ARG1, R18_locals);
++#if !defined(ABI_ELFv2)
+   __ ld(signature_handler_fd, 0, signature_handler_fd);
++#endif
+   __ call_stub(signature_handler_fd);
+@@ -1019,8 +1025,13 @@
+   // native result across the call. No oop is present.
+   __ mr(R3_ARG1, R16_thread);
++#if defined(ABI_ELFv2)
++  __ call_c(CAST_FROM_FN_PTR(address, JavaThread::check_special_condition_for_native_trans),
++            relocInfo::none);
++#else
+   __ call_c(CAST_FROM_FN_PTR(FunctionDescriptor*, JavaThread::check_special_condition_for_native_trans),
+             relocInfo::none);
++#endif
+   __ bind(sync_check_done);
+--- src/hotspot/src/cpu/ppc/vm/interp_masm_ppc_64.hpp
++++ src/hotspot/src/cpu/ppc/vm/interp_masm_ppc_64.hpp
+@@ -130,6 +130,7 @@
+   void get_cache_and_index_at_bcp(Register cache, int bcp_offset, size_t index_size = sizeof(u2));
++  void get_u4(Register Rdst, Register Rsrc, int offset, signedOrNot is_signed);
+   // common code
+--- src/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
++++ src/hotspot/src/cpu/ppc/vm/assembler_ppc.inline.hpp
+@@ -263,10 +263,14 @@
+ inline void Assembler::lwax( Register d, Register s1, Register s2) { emit_int32(LWAX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));}
+ inline void Assembler::lwa(  Register d, int si16,    Register s1) { emit_int32(LWA_OPCODE  | rt(d) | ds(si16)   | ra0mem(s1));}
++inline void Assembler::lwbrx( Register d, Register s1, Register s2) { emit_int32(LWBRX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));}
++
+ inline void Assembler::lhzx( Register d, Register s1, Register s2) { emit_int32(LHZX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));}
+ inline void Assembler::lhz(  Register d, int si16,    Register s1) { emit_int32(LHZ_OPCODE  | rt(d) | d1(si16)   | ra0mem(s1));}
+ inline void Assembler::lhzu( Register d, int si16,    Register s1) { assert(d != s1, "according to ibm manual"); emit_int32(LHZU_OPCODE | rt(d) | d1(si16) | rta0mem(s1));}
++inline void Assembler::lhbrx( Register d, Register s1, Register s2) { emit_int32(LHBRX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));}
++
+ inline void Assembler::lhax( Register d, Register s1, Register s2) { emit_int32(LHAX_OPCODE | rt(d) | ra0mem(s1) | rb(s2));}
+ inline void Assembler::lha(  Register d, int si16,    Register s1) { emit_int32(LHA_OPCODE  | rt(d) | d1(si16)   | ra0mem(s1));}
+ inline void Assembler::lhau( Register d, int si16,    Register s1) { assert(d != s1, "according to ibm manual"); emit_int32(LHAU_OPCODE | rt(d) | d1(si16) | rta0mem(s1));}
+@@ -736,10 +740,12 @@
+ inline void Assembler::lwz(  Register d, int si16   ) { emit_int32( LWZ_OPCODE  | rt(d) | d1(si16));}
+ inline void Assembler::lwax( Register d, Register s2) { emit_int32( LWAX_OPCODE | rt(d) | rb(s2));}
+ inline void Assembler::lwa(  Register d, int si16   ) { emit_int32( LWA_OPCODE  | rt(d) | ds(si16));}
++inline void Assembler::lwbrx(Register d, Register s2) { emit_int32( LWBRX_OPCODE| rt(d) | rb(s2));}
+ inline void Assembler::lhzx( Register d, Register s2) { emit_int32( LHZX_OPCODE | rt(d) | rb(s2));}
+ inline void Assembler::lhz(  Register d, int si16   ) { emit_int32( LHZ_OPCODE  | rt(d) | d1(si16));}
+ inline void Assembler::lhax( Register d, Register s2) { emit_int32( LHAX_OPCODE | rt(d) | rb(s2));}
+ inline void Assembler::lha(  Register d, int si16   ) { emit_int32( LHA_OPCODE  | rt(d) | d1(si16));}
++inline void Assembler::lhbrx(Register d, Register s2) { emit_int32( LHBRX_OPCODE| rt(d) | rb(s2));}
+ inline void Assembler::lbzx( Register d, Register s2) { emit_int32( LBZX_OPCODE | rt(d) | rb(s2));}
+ inline void Assembler::lbz(  Register d, int si16   ) { emit_int32( LBZ_OPCODE  | rt(d) | d1(si16));}
+ inline void Assembler::ld(   Register d, int si16   ) { emit_int32( LD_OPCODE   | rt(d) | ds(si16));}
+--- src/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
++++ src/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
+@@ -298,6 +298,7 @@
+     LWZ_OPCODE   = (32u << OPCODE_SHIFT),
+     LWZX_OPCODE  = (31u << OPCODE_SHIFT |  23u << 1),
+     LWZU_OPCODE  = (33u << OPCODE_SHIFT),
++    LWBRX_OPCODE = (31u << OPCODE_SHIFT |  534 << 1),
+     LHA_OPCODE   = (42u << OPCODE_SHIFT),
+     LHAX_OPCODE  = (31u << OPCODE_SHIFT | 343u << 1),
+@@ -306,6 +307,7 @@
+     LHZ_OPCODE   = (40u << OPCODE_SHIFT),
+     LHZX_OPCODE  = (31u << OPCODE_SHIFT | 279u << 1),
+     LHZU_OPCODE  = (41u << OPCODE_SHIFT),
++    LHBRX_OPCODE = (31u << OPCODE_SHIFT |  790 << 1),
+     LBZ_OPCODE   = (34u << OPCODE_SHIFT),
+     LBZX_OPCODE  = (31u << OPCODE_SHIFT |  87u << 1),
+@@ -1364,11 +1366,17 @@
+   inline void lwax( Register d, Register s1, Register s2);
+   inline void lwa(  Register d, int si16,    Register s1);
++  // 4 bytes reversed
++  inline void lwbrx( Register d, Register s1, Register s2);
++
+   // 2 bytes
+   inline void lhzx( Register d, Register s1, Register s2);
+   inline void lhz(  Register d, int si16,    Register s1);
+   inline void lhzu( Register d, int si16,    Register s1);
++  // 2 bytes reversed
++  inline void lhbrx( Register d, Register s1, Register s2);
++
+   // 2 bytes
+   inline void lhax( Register d, Register s1, Register s2);
+   inline void lha(  Register d, int si16,    Register s1);
+@@ -1858,10 +1866,12 @@
+   inline void lwz(  Register d, int si16);
+   inline void lwax( Register d, Register s2);
+   inline void lwa(  Register d, int si16);
++  inline void lwbrx(Register d, Register s2);
+   inline void lhzx( Register d, Register s2);
+   inline void lhz(  Register d, int si16);
+   inline void lhax( Register d, Register s2);
+   inline void lha(  Register d, int si16);
++  inline void lhbrx(Register d, Register s2);
+   inline void lbzx( Register d, Register s2);
+   inline void lbz(  Register d, int si16);
+   inline void ldx(  Register d, Register s2);
+--- src/hotspot/src/cpu/ppc/vm/interp_masm_ppc_64.cpp
++++ src/hotspot/src/cpu/ppc/vm/interp_masm_ppc_64.cpp
+@@ -119,9 +119,15 @@
+     // Call the Interpreter::remove_activation_preserving_args_entry()
+     // func to get the address of the same-named entrypoint in the
+     // generated interpreter code.
++#if defined(ABI_ELFv2)
++    call_c(CAST_FROM_FN_PTR(address,
++                            Interpreter::remove_activation_preserving_args_entry),
++           relocInfo::none);
++#else
+     call_c(CAST_FROM_FN_PTR(FunctionDescriptor*,
+                             Interpreter::remove_activation_preserving_args_entry),
+            relocInfo::none);
++#endif
+     // Jump to Interpreter::_remove_activation_preserving_args_entry.
+     mtctr(R3_RET);
+@@ -331,29 +337,40 @@
+ void InterpreterMacroAssembler::get_2_byte_integer_at_bcp(int         bcp_offset,
+                                                           Register    Rdst,
+                                                           signedOrNot is_signed) {
++#if defined(VM_LITTLE_ENDIAN)
++  if (bcp_offset) {
++    load_const_optimized(Rdst, bcp_offset);
++    lhbrx(Rdst, R14_bcp, Rdst);
++  } else {
++    lhbrx(Rdst, R14_bcp);
++  }
++  if (is_signed == Signed) {
++    extsh(Rdst, Rdst);
++  }
++#else
+   // Read Java big endian format.
+   if (is_signed == Signed) {
+     lha(Rdst, bcp_offset, R14_bcp);
+   } else {
+     lhz(Rdst, bcp_offset, R14_bcp);
+   }
+-#if 0
+-  assert(Rtmp != Rdst, "need separate temp register");
+-  Register Rfirst = Rtmp;
+-  lbz(Rfirst, bcp_offset, R14_bcp); // first byte
+-  lbz(Rdst, bcp_offset+1, R14_bcp); // second byte
+-
+-  // Rdst = ((Rfirst<<8) & 0xFF00) | (Rdst &~ 0xFF00)
+-  rldimi(/*RA=*/Rdst, /*RS=*/Rfirst, /*sh=*/8, /*mb=*/48);
+-  if (is_signed == Signed) {
+-    extsh(Rdst, Rdst);
+-  }
+ #endif
+ }
+ void InterpreterMacroAssembler::get_4_byte_integer_at_bcp(int         bcp_offset,
+                                                           Register    Rdst,
+                                                           signedOrNot is_signed) {
++#if defined(VM_LITTLE_ENDIAN)
++  if (bcp_offset) {
++    load_const_optimized(Rdst, bcp_offset);
++    lwbrx(Rdst, R14_bcp, Rdst);
++  } else {
++    lwbrx(Rdst, R14_bcp);
++  }
++  if (is_signed == Signed) {
++    extsw(Rdst, Rdst);
++  }
++#else
+   // Read Java big endian format.
+   if (bcp_offset & 3) { // Offset unaligned?
+     load_const_optimized(Rdst, bcp_offset);
+@@ -369,19 +386,27 @@
+       lwz(Rdst, bcp_offset, R14_bcp);
+     }
+   }
++#endif
+ }
++
+ // Load the constant pool cache index from the bytecode stream.
+ //
+ // Kills / writes:
+ //   - Rdst, Rscratch
+ void InterpreterMacroAssembler::get_cache_index_at_bcp(Register Rdst, int bcp_offset, size_t index_size) {
+   assert(bcp_offset > 0, "bcp is still pointing to start of bytecode");
++  // Cache index is always in the native format, courtesy of Rewriter.
+   if (index_size == sizeof(u2)) {
+-    get_2_byte_integer_at_bcp(bcp_offset, Rdst, Unsigned);
++    lhz(Rdst, bcp_offset, R14_bcp);
+   } else if (index_size == sizeof(u4)) {
+     assert(EnableInvokeDynamic, "giant index used only for JSR 292");
+-    get_4_byte_integer_at_bcp(bcp_offset, Rdst, Signed);
++    if (bcp_offset & 3) {
++      load_const_optimized(Rdst, bcp_offset);
++      lwax(Rdst, R14_bcp, Rdst);
++    } else {
++      lwa(Rdst, bcp_offset, R14_bcp);
++    }
+     assert(ConstantPool::decode_invokedynamic_index(~123) == 123, "else change next line");
+     nand(Rdst, Rdst, Rdst); // convert to plain index
+   } else if (index_size == sizeof(u1)) {
+@@ -398,6 +423,29 @@
+   add(cache, R27_constPoolCache, cache);
+ }
++// Load 4-byte signed or unsigned integer in Java format (that is, big-endian format)
++// from (Rsrc)+offset.
++void InterpreterMacroAssembler::get_u4(Register Rdst, Register Rsrc, int offset,
++                                       signedOrNot is_signed) {
++#if defined(VM_LITTLE_ENDIAN)
++  if (offset) {
++    load_const_optimized(Rdst, offset);
++    lwbrx(Rdst, Rdst, Rsrc);
++  } else {
++    lwbrx(Rdst, Rsrc);
++  }
++  if (is_signed == Signed) {
++    extsw(Rdst, Rdst);
++  }
++#else
++  if (is_signed == Signed) {
++    lwa(Rdst, offset, Rsrc);
++  } else {
++    lwz(Rdst, offset, Rsrc);
++  }
++#endif
++}
++
+ // Load object from cpool->resolved_references(index).
+ void InterpreterMacroAssembler::load_resolved_reference_at_index(Register result, Register index) {
+   assert_different_registers(result, index);
diff --git a/debian/patches/aarch64.diff b/debian/patches/aarch64.diff
new file mode 100644 (file)
index 0000000..e9ab449
--- /dev/null
@@ -0,0 +1,230 @@
+# DP: Add missing build bits for AArch64 from the AArch64 branch.
+
+Index: b/common/autoconf/build-aux/config.sub
+===================================================================
+--- a/common/autoconf/build-aux/config.sub
++++ b/common/autoconf/build-aux/config.sub
+@@ -264,6 +264,7 @@ case $basic_machine in
+       # Some are omitted here because they have special meanings below.
+       1750a | 580 \
+       | a29k \
++        | aarch64 \
+       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+       | am33_2.0 \
+@@ -340,6 +341,7 @@ case $basic_machine in
+       # Recognize the basic CPU types with company name.
+       580-* \
+       | a29k-* \
++        | aarch64-* \
+       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+Index: b/common/autoconf/generated-configure.sh
+===================================================================
+--- a/common/autoconf/generated-configure.sh
++++ b/common/autoconf/generated-configure.sh
+@@ -6818,6 +6818,12 @@ test -n "$target_alias" &&
+       VAR_CPU_BITS=32
+       VAR_CPU_ENDIAN=little
+       ;;
++    aarch64)
++      VAR_CPU=aarch64
++      VAR_CPU_ARCH=aarch64
++      VAR_CPU_BITS=64
++      VAR_CPU_ENDIAN=little
++      ;;
+     powerpc)
+       VAR_CPU=ppc
+       VAR_CPU_ARCH=ppc
+@@ -6949,6 +6955,12 @@ $as_echo "$OPENJDK_BUILD_OS-$OPENJDK_BUI
+       VAR_CPU_BITS=32
+       VAR_CPU_ENDIAN=little
+       ;;
++    aarch64)
++      VAR_CPU=aarch64
++      VAR_CPU_ARCH=aarch64
++      VAR_CPU_BITS=64
++      VAR_CPU_ENDIAN=little
++      ;;
+     powerpc)
+       VAR_CPU=ppc
+       VAR_CPU_ARCH=ppc
+@@ -7909,11 +7921,6 @@ $as_echo "$with_jvm_variants" >&6; }
+   JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
+   JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'`
+-  if test "x$JVM_VARIANT_CLIENT" = xtrue; then
+-    if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
+-      as_fn_error $? "You cannot build a client JVM for a 64-bit machine." "$LINENO" 5
+-    fi
+-  fi
+   if test "x$JVM_VARIANT_KERNEL" = xtrue; then
+     if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
+       as_fn_error $? "You cannot build a kernel JVM for a 64-bit machine." "$LINENO" 5
+@@ -7953,6 +7960,9 @@ $as_echo "$with_jvm_variants" >&6; }
+   if test "x$VAR_CPU" = xppc64 ; then
+     INCLUDE_SA=false
+   fi
++  if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
++    INCLUDE_SA=false
++  fi
+   if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
+@@ -29712,7 +29722,7 @@ fi
+   #
+   case $COMPILER_NAME in
+     gcc )
+-      CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \
++      CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses \
+       -pipe \
+       -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
+       case $OPENJDK_TARGET_CPU_ARCH in
+@@ -29957,6 +29967,9 @@ fi
+     s390)
+       ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31"
+       ;;
++    aarch64)
++      ZERO_ARCHFLAG=""
++      ;;
+     *)
+       ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
+   esac
+Index: b/common/autoconf/jdk-options.m4
+===================================================================
+--- a/common/autoconf/jdk-options.m4
++++ b/common/autoconf/jdk-options.m4
+@@ -161,6 +156,9 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS
+   if test "x$VAR_CPU" = xppc64 ; then
+     INCLUDE_SA=false
+   fi
++  if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
++    INCLUDE_SA=false
++  fi
+   AC_SUBST(INCLUDE_SA)
+   if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
+Index: b/common/autoconf/platform.m4
+===================================================================
+--- a/common/autoconf/platform.m4
++++ b/common/autoconf/platform.m4
+@@ -48,6 +48,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
+       VAR_CPU_BITS=32
+       VAR_CPU_ENDIAN=little
+       ;;
++    aarch64)
++      VAR_CPU=aarch64
++      VAR_CPU_ARCH=aarch64
++      VAR_CPU_BITS=64
++      VAR_CPU_ENDIAN=little
++      ;;
+     powerpc)
+       VAR_CPU=ppc
+       VAR_CPU_ARCH=ppc
+Index: b/common/autoconf/toolchain.m4
+===================================================================
+--- a/common/autoconf/toolchain.m4
++++ b/common/autoconf/toolchain.m4
+@@ -878,7 +878,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_
+   #
+   case $COMPILER_NAME in
+     gcc )
+-      CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \
++      CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-unused-parameter -Wno-parentheses \
+       -pipe \
+       -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
+       case $OPENJDK_TARGET_CPU_ARCH in
+@@ -1158,6 +1158,9 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_
+     s390)
+       ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31"
+       ;;
++    aarch64)
++      ZERO_ARCHFLAG=""
++      ;;
+     *)
+       ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
+   esac
+Index: b/jdk/make/gensrc/GensrcMisc.gmk
+===================================================================
+--- a/jdk/make/gensrc/GensrcMisc.gmk
++++ b/jdk/make/gensrc/GensrcMisc.gmk
+@@ -95,7 +95,7 @@ $(eval $(call SetupNativeCompilation,BUI
+     INCLUDE_FILES := $(GENSRC_SOR_SRC_FILE), \
+     LANG := C, \
+     CC := $(BUILD_CC), \
+-    LDEXE := $(BUILD_LD), \
++    LDEXE := $(BUILD_CC), \
+     OBJECT_DIR := $(GENSRC_SOR_BIN), \
+     OUTPUT_DIR := $(GENSRC_SOR_BIN), \
+     PROGRAM := genSocketOptionRegistry))
+Index: b/jdk/make/lib/SoundLibraries.gmk
+===================================================================
+--- a/jdk/make/lib/SoundLibraries.gmk
++++ b/jdk/make/lib/SoundLibraries.gmk
+@@ -139,6 +139,10 @@ else
+   ifeq ($(OPENJDK_TARGET_CPU), ppc64)
+        LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64
+   endif
++
++  ifeq ($(OPENJDK_TARGET_CPU), aarch64)
++      LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
++  endif
+ endif
+ LIBJSOUND_CFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"'
+Index: b/jdk/src/share/native/com/sun/media/sound/SoundDefs.h
+===================================================================
+--- a/jdk/src/share/native/com/sun/media/sound/SoundDefs.h
++++ b/jdk/src/share/native/com/sun/media/sound/SoundDefs.h
+@@ -43,6 +43,7 @@
+ #define X_ZERO          6
+ #define X_ARM           7
+ #define X_PPC           8
++#define X_AARCH64     9
+ // **********************************
+ // Make sure you set X_PLATFORM and X_ARCH defines correctly.
+--- /dev/null
++++ b/jdk/src/solaris/bin/aarch64/jvm.cfg
+@@ -0,0 +1,39 @@
++# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++#
++# This code is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation.  Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
++#
++# List of JVMs that can be used as an option to java, javac, etc.
++# Order is important -- first in this list is the default JVM.
++# NOTE that this both this file and its format are UNSUPPORTED and
++# WILL GO AWAY in a future release.
++#
++# You may also select a JVM in an arbitrary location with the
++# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
++# and may not be available in a future release.
++#
++# n.b. server must be first so it is used as the default
++-server KNOWN
++-minimal ERROR
++-cacao ERROR
++-zero KNOWN
++-shark ERROR
++-jamvm ERROR
++-avian KNOWN
diff --git a/debian/patches/accessible-toolkit.patch b/debian/patches/accessible-toolkit.patch
new file mode 100644 (file)
index 0000000..b337a9c
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/jdk/src/share/classes/java/awt/Toolkit.java
++++ b/jdk/src/share/classes/java/awt/Toolkit.java
+@@ -894,7 +894,11 @@
+                         return null;
+                     }
+                 });
+-                loadAssistiveTechnologies();
++                try {
++                    loadAssistiveTechnologies();
++                } catch ( AWTError error) {
++                    // ignore silently
++                }
+             } finally {
+                 // Make sure to always re-enable the JIT.
+                 java.lang.Compiler.enable();
diff --git a/debian/patches/adlc-parser.patch b/debian/patches/adlc-parser.patch
new file mode 100644 (file)
index 0000000..baadd77
--- /dev/null
@@ -0,0 +1,11 @@
+# DP: fixes an uninitialized memory issue in adlc
+--- jdk8/hotspot/src/share/vm/adlc/formsopt.cpp        2014-07-03 21:56:12.000000000 +0200
++++ jdk8/hotspot/src/share/vm/adlc/formsopt.cpp        2014-07-14 11:43:21.900408570 +0200
+@@ -347,6 +347,7 @@
+   _return_value = NULL;
+   _c_return_value = NULL;
+   _interpreter_frame_pointer_reg = NULL;
++  _cisc_spilling_operand_name = NULL;
+ }
+ FrameForm::~FrameForm() {
diff --git a/debian/patches/alpha-float-const.diff b/debian/patches/alpha-float-const.diff
new file mode 100644 (file)
index 0000000..bc63ece
--- /dev/null
@@ -0,0 +1,11 @@
+--- openjdk-boot/jdk/src/share/classes/java/lang/Float.java~   2010-03-08 14:53:10.224835876 +0100
++++ openjdk-boot/jdk/src/share/classes/java/lang/Float.java    2010-03-08 15:05:28.803585964 +0100
+@@ -86,7 +86,7 @@
+      *
+      * @since 1.6
+      */
+-    public static final float MIN_NORMAL = 1.17549435E-38f;
++    public static final float MIN_NORMAL = Float.intBitsToFloat(0x00800000);
+     /**
+      * A constant holding the smallest positive nonzero value of type
diff --git a/debian/patches/applet-hole.patch b/debian/patches/applet-hole.patch
new file mode 100644 (file)
index 0000000..20a31ce
--- /dev/null
@@ -0,0 +1,109 @@
+diff --git jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java
+--- jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java
++++ jdk8/jdk/src/share/classes/sun/applet/AppletPanel.java
+@@ -68,7 +68,7 @@
+     /**
+      * The applet (if loaded).
+      */
+-    Applet applet;
++    protected Applet applet;
+     /**
+      * Applet will allow initialization.  Should be
+@@ -162,7 +162,8 @@
+      * Creates a thread to run the applet. This method is called
+      * each time an applet is loaded and reloaded.
+      */
+-    synchronized void createAppletThread() {
++      //Overridden by NetxPanel.
++    protected synchronized void createAppletThread() {
+         // Create a thread group for the applet, and start a new
+         // thread to load the applet.
+         String nm = "applet-" + getCode();
+@@ -306,7 +307,7 @@
+     /**
+      * Get an event from the queue.
+      */
+-    synchronized AppletEvent getNextEvent() throws InterruptedException {
++    protected synchronized AppletEvent getNextEvent() throws InterruptedException {
+         while (queue == null || queue.isEmpty()) {
+             wait();
+         }
+@@ -692,7 +693,8 @@
+      * applet event processing so that it can be gracefully interrupted from
+      * things like HotJava.
+      */
+-    private void runLoader() {
++      //Overridden by NetxPanel.
++    protected void runLoader() {
+         if (status != APPLET_DISPOSE) {
+             showAppletStatus("notdisposed");
+             return;
+diff --git jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
+--- jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
++++ jdk8/jdk/src/share/classes/sun/applet/AppletViewerPanel.java
+@@ -42,25 +42,25 @@
+  *
+  * @author      Arthur van Hoff
+  */
+-class AppletViewerPanel extends AppletPanel {
++public class AppletViewerPanel extends AppletPanel {
+     /* Are we debugging? */
+-    static boolean debug = false;
++    protected static boolean debug = false;
+     /**
+      * The document url.
+      */
+-    URL documentURL;
++    protected URL documentURL;
+     /**
+      * The base url.
+      */
+-    URL baseURL;
++    protected URL baseURL;
+     /**
+      * The attributes of the applet.
+      */
+-    Hashtable atts;
++    protected Hashtable<String,String> atts;
+     /*
+      * JDK 1.1 serialVersionUID
+@@ -70,7 +70,7 @@
+     /**
+      * Construct an applet viewer and start the applet.
+      */
+-    AppletViewerPanel(URL documentURL, Hashtable atts) {
++    protected AppletViewerPanel(URL documentURL, Hashtable<String,String> atts) {
+         this.documentURL = documentURL;
+         this.atts = atts;
+@@ -106,7 +106,7 @@
+      * Get an applet parameter.
+      */
+     public String getParameter(String name) {
+-        return (String)atts.get(name.toLowerCase());
++        return atts.get(name.toLowerCase());
+     }
+     /**
+@@ -202,12 +202,12 @@
+         return (AppletContext)getParent();
+     }
+-    static void debug(String s) {
++    protected static void debug(String s) {
+         if(debug)
+             System.err.println("AppletViewerPanel:::" + s);
+     }
+-    static void debug(String s, Throwable t) {
++    protected static void debug(String s, Throwable t) {
+         if(debug) {
+             t.printStackTrace();
+             debug(s);
+
diff --git a/debian/patches/atk-wrapper-security.patch b/debian/patches/atk-wrapper-security.patch
new file mode 100644 (file)
index 0000000..3dce654
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/jdk/src/share/lib/security/java.security-linux
++++ b/jdk/src/share/lib/security/java.security-linux
+@@ -177,6 +177,7 @@
+ # corresponding RuntimePermission ("accessClassInPackage."+package) has
+ # been granted.
+ package.access=sun.,\
++               org.GNOME.Accessibility.,\
+                com.sun.xml.internal.,\
+                com.sun.imageio.,\
+                com.sun.istack.internal.,\
diff --git a/debian/patches/autoconf-updates.diff b/debian/patches/autoconf-updates.diff
new file mode 100644 (file)
index 0000000..3e176ba
--- /dev/null
@@ -0,0 +1,2267 @@
+Index: b/common/autoconf/build-aux/config.guess
+===================================================================
+--- a/common/autoconf/build-aux/config.guess
++++ b/common/autoconf/build-aux/config.guess
+@@ -1,89 +1,1420 @@
+-#!/bin/sh
++#! /bin/sh
++# Attempt to guess a canonical system name.
++#   Copyright 1992-2014 Free Software Foundation, Inc.
++
++timestamp='2014-03-23'
++
++# This file is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
+ #
+-# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++# This program is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++# General Public License for more details.
+ #
+-# This code is free software; you can redistribute it and/or modify it
+-# under the terms of the GNU General Public License version 2 only, as
+-# published by the Free Software Foundation.
+-#
+-# This code is distributed in the hope that it will be useful, but WITHOUT
+-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+-# version 2 for more details (a copy is included in the LICENSE file that
+-# accompanied this code).
+-#
+-# You should have received a copy of the GNU General Public License version
+-# 2 along with this work; if not, write to the Free Software Foundation,
+-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+-#
+-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+-# or visit www.oracle.com if you need additional information or have any
+-# questions.
+-#
+-
+-# This is a wrapper for the config.guess from autoconf. The latter does not
+-# properly detect 64 bit systems on all platforms. Instead of patching the
+-# autoconf system (which might easily get lost in a future update), we wrap it
+-# and fix the broken property, if needed.
+-
+-DIR=`dirname $0`
+-OUT=`. $DIR/autoconf-config.guess`
+-
+-# Test and fix solaris on x86_64
+-echo $OUT | grep i386-pc-solaris > /dev/null 2> /dev/null
+-if test $? = 0; then
+-  # isainfo -n returns either i386 or amd64
+-  REAL_CPU=`isainfo -n`
+-  OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'`
+-fi
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, see <http://www.gnu.org/licenses/>.
++#
++# As a special exception to the GNU General Public License, if you
++# distribute this file as part of a program that contains a
++# configuration script generated by Autoconf, you may include it under
++# the same distribution terms that you use for the rest of that
++# program.  This Exception is an additional permission under section 7
++# of the GNU General Public License, version 3 ("GPLv3").
++#
++# Originally written by Per Bothner.
++#
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
++#
++# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+-# Test and fix solaris on sparcv9
+-echo $OUT | grep sparc-sun-solaris > /dev/null 2> /dev/null
+-if test $? = 0; then
+-  # isainfo -n returns either sparc or sparcv9
+-  REAL_CPU=`isainfo -n`
+-  OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'`
+-fi
+-# Test and fix cygwin on x86_64
+-echo $OUT | grep 86-pc-cygwin > /dev/null 2> /dev/null
+-if test $? != 0; then
+-  echo $OUT | grep 86-pc-mingw > /dev/null 2> /dev/null
+-fi
+-if test $? = 0; then
+-  case `echo $PROCESSOR_IDENTIFIER | cut -f1 -d' '` in
+-    intel64|Intel64|INTEL64|em64t|EM64T|amd64|AMD64|8664|x86_64)
+-      REAL_CPU=x86_64
+-      OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'`
+-      ;;
++me=`echo "$0" | sed -e 's,.*/,,'`
++
++usage="\
++Usage: $0 [OPTION]
++
++Output the configuration name of the system \`$me' is run on.
++
++Operation modes:
++  -h, --help         print this help, then exit
++  -t, --time-stamp   print date of last modification, then exit
++  -v, --version      print version number, then exit
++
++Report bugs and patches to <config-patches@gnu.org>."
++
++version="\
++GNU config.guess ($timestamp)
++
++Originally written by Per Bothner.
++Copyright 1992-2014 Free Software Foundation, Inc.
++
++This is free software; see the source for copying conditions.  There is NO
++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
++
++help="
++Try \`$me --help' for more information."
++
++# Parse command line
++while test $# -gt 0 ; do
++  case $1 in
++    --time-stamp | --time* | -t )
++       echo "$timestamp" ; exit ;;
++    --version | -v )
++       echo "$version" ; exit ;;
++    --help | --h* | -h )
++       echo "$usage"; exit ;;
++    -- )     # Stop option processing
++       shift; break ;;
++    - )       # Use stdin as input.
++       break ;;
++    -* )
++       echo "$me: invalid option $1$help" >&2
++       exit 1 ;;
++    * )
++       break ;;
+   esac
+-fi
++done
+-# Test and fix architecture string on AIX
+-# On AIX 'config.guess' returns 'powerpc' as architecture but 'powerpc' is
+-# implicitely handled as 32-bit architecture in 'platform.m4' so we check
+-# for the kernel mode rewrite it to 'powerpc64' if we'Re running in 64-bit mode.
+-# The check could also be done with `/usr/sbin/prtconf | grep "Kernel Type" | grep "64-bit"`
+-echo $OUT | grep powerpc-ibm-aix > /dev/null 2> /dev/null
+-if test $? = 0; then
+-  if [ -x /bin/getconf ] ; then
+-    KERNEL_BITMODE=`getconf KERNEL_BITMODE`
+-    if  [ "$KERNEL_BITMODE" = "32" ]; then
+-      KERNEL_BITMODE=""
+-    fi
+-  fi
+-  OUT=powerpc$KERNEL_BITMODE`echo $OUT | sed -e 's/[^-]*//'`
++if test $# != 0; then
++  echo "$me: too many arguments$help" >&2
++  exit 1
+ fi
+-# Test and fix little endian PowerPC64.
+-# TODO: should be handled by autoconf-config.guess. 
+-if [ "x$OUT" = x ]; then
+-  if [ `uname -m` = ppc64le ]; then
+-    if [ `uname -s` = Linux ]; then
+-      OUT=powerpc64le-unknown-linux-gnu
+-    fi
+-  fi
++trap 'exit 1' 1 2 15
++
++# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
++# compiler to aid in system detection is discouraged as it requires
++# temporary files to be created and, as you can see below, it is a
++# headache to deal with in a portable fashion.
++
++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
++# use `HOST_CC' if defined, but it is deprecated.
++
++# Portable tmp directory creation inspired by the Autoconf team.
++
++set_cc_for_build='
++trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
++: ${TMPDIR=/tmp} ;
++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
++ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
++dummy=$tmp/dummy ;
++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
++case $CC_FOR_BUILD,$HOST_CC,$CC in
++ ,,)    echo "int x;" > $dummy.c ;
++      for c in cc gcc c89 c99 ; do
++        if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
++           CC_FOR_BUILD="$c"; break ;
++        fi ;
++      done ;
++      if test x"$CC_FOR_BUILD" = x ; then
++        CC_FOR_BUILD=no_compiler_found ;
++      fi
++      ;;
++ ,,*)   CC_FOR_BUILD=$CC ;;
++ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
++esac ; set_cc_for_build= ;'
++
++# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
++# (ghazi@noc.rutgers.edu 1994-08-24)
++if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
++      PATH=$PATH:/.attbin ; export PATH
+ fi
+-echo $OUT
++UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
++UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
++UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
++UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
++
++case "${UNAME_SYSTEM}" in
++Linux|GNU|GNU/*)
++      # If the system lacks a compiler, then just pick glibc.
++      # We could probably try harder.
++      LIBC=gnu
++
++      eval $set_cc_for_build
++      cat <<-EOF > $dummy.c
++      #include <features.h>
++      #if defined(__UCLIBC__)
++      LIBC=uclibc
++      #elif defined(__dietlibc__)
++      LIBC=dietlibc
++      #else
++      LIBC=gnu
++      #endif
++      EOF
++      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
++      ;;
++esac
++
++# Note: order is significant - the case branches are not exclusive.
++
++case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
++    *:NetBSD:*:*)
++      # NetBSD (nbsd) targets should (where applicable) match one or
++      # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
++      # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
++      # switched to ELF, *-*-netbsd* would select the old
++      # object file format.  This provides both forward
++      # compatibility and a consistent mechanism for selecting the
++      # object file format.
++      #
++      # Note: NetBSD doesn't particularly care about the vendor
++      # portion of the name.  We always set it to "unknown".
++      sysctl="sysctl -n hw.machine_arch"
++      UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
++          /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
++      case "${UNAME_MACHINE_ARCH}" in
++          armeb) machine=armeb-unknown ;;
++          arm*) machine=arm-unknown ;;
++          sh3el) machine=shl-unknown ;;
++          sh3eb) machine=sh-unknown ;;
++          sh5el) machine=sh5le-unknown ;;
++          *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
++      esac
++      # The Operating System including object format, if it has switched
++      # to ELF recently, or will in the future.
++      case "${UNAME_MACHINE_ARCH}" in
++          arm*|i386|m68k|ns32k|sh3*|sparc|vax)
++              eval $set_cc_for_build
++              if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
++                      | grep -q __ELF__
++              then
++                  # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
++                  # Return netbsd for either.  FIX?
++                  os=netbsd
++              else
++                  os=netbsdelf
++              fi
++              ;;
++          *)
++              os=netbsd
++              ;;
++      esac
++      # The OS release
++      # Debian GNU/NetBSD machines have a different userland, and
++      # thus, need a distinct triplet. However, they do not need
++      # kernel version information, so it can be replaced with a
++      # suitable tag, in the style of linux-gnu.
++      case "${UNAME_VERSION}" in
++          Debian*)
++              release='-gnu'
++              ;;
++          *)
++              release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++              ;;
++      esac
++      # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
++      # contains redundant information, the shorter form:
++      # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
++      echo "${machine}-${os}${release}"
++      exit ;;
++    *:Bitrig:*:*)
++      UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
++      echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
++      exit ;;
++    *:OpenBSD:*:*)
++      UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
++      echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
++      exit ;;
++    *:ekkoBSD:*:*)
++      echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
++      exit ;;
++    *:SolidBSD:*:*)
++      echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
++      exit ;;
++    macppc:MirBSD:*:*)
++      echo powerpc-unknown-mirbsd${UNAME_RELEASE}
++      exit ;;
++    *:MirBSD:*:*)
++      echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
++      exit ;;
++    alpha:OSF1:*:*)
++      case $UNAME_RELEASE in
++      *4.0)
++              UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
++              ;;
++      *5.*)
++              UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
++              ;;
++      esac
++      # According to Compaq, /usr/sbin/psrinfo has been available on
++      # OSF/1 and Tru64 systems produced since 1995.  I hope that
++      # covers most systems running today.  This code pipes the CPU
++      # types through head -n 1, so we only detect the type of CPU 0.
++      ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
++      case "$ALPHA_CPU_TYPE" in
++          "EV4 (21064)")
++              UNAME_MACHINE="alpha" ;;
++          "EV4.5 (21064)")
++              UNAME_MACHINE="alpha" ;;
++          "LCA4 (21066/21068)")
++              UNAME_MACHINE="alpha" ;;
++          "EV5 (21164)")
++              UNAME_MACHINE="alphaev5" ;;
++          "EV5.6 (21164A)")
++              UNAME_MACHINE="alphaev56" ;;
++          "EV5.6 (21164PC)")
++              UNAME_MACHINE="alphapca56" ;;
++          "EV5.7 (21164PC)")
++              UNAME_MACHINE="alphapca57" ;;
++          "EV6 (21264)")
++              UNAME_MACHINE="alphaev6" ;;
++          "EV6.7 (21264A)")
++              UNAME_MACHINE="alphaev67" ;;
++          "EV6.8CB (21264C)")
++              UNAME_MACHINE="alphaev68" ;;
++          "EV6.8AL (21264B)")
++              UNAME_MACHINE="alphaev68" ;;
++          "EV6.8CX (21264D)")
++              UNAME_MACHINE="alphaev68" ;;
++          "EV6.9A (21264/EV69A)")
++              UNAME_MACHINE="alphaev69" ;;
++          "EV7 (21364)")
++              UNAME_MACHINE="alphaev7" ;;
++          "EV7.9 (21364A)")
++              UNAME_MACHINE="alphaev79" ;;
++      esac
++      # A Pn.n version is a patched version.
++      # A Vn.n version is a released version.
++      # A Tn.n version is a released field test version.
++      # A Xn.n version is an unreleased experimental baselevel.
++      # 1.2 uses "1.2" for uname -r.
++      echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
++      # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
++      exitcode=$?
++      trap '' 0
++      exit $exitcode ;;
++    Alpha\ *:Windows_NT*:*)
++      # How do we know it's Interix rather than the generic POSIX subsystem?
++      # Should we change UNAME_MACHINE based on the output of uname instead
++      # of the specific Alpha model?
++      echo alpha-pc-interix
++      exit ;;
++    21064:Windows_NT:50:3)
++      echo alpha-dec-winnt3.5
++      exit ;;
++    Amiga*:UNIX_System_V:4.0:*)
++      echo m68k-unknown-sysv4
++      exit ;;
++    *:[Aa]miga[Oo][Ss]:*:*)
++      echo ${UNAME_MACHINE}-unknown-amigaos
++      exit ;;
++    *:[Mm]orph[Oo][Ss]:*:*)
++      echo ${UNAME_MACHINE}-unknown-morphos
++      exit ;;
++    *:OS/390:*:*)
++      echo i370-ibm-openedition
++      exit ;;
++    *:z/VM:*:*)
++      echo s390-ibm-zvmoe
++      exit ;;
++    *:OS400:*:*)
++      echo powerpc-ibm-os400
++      exit ;;
++    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
++      echo arm-acorn-riscix${UNAME_RELEASE}
++      exit ;;
++    arm*:riscos:*:*|arm*:RISCOS:*:*)
++      echo arm-unknown-riscos
++      exit ;;
++    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
++      echo hppa1.1-hitachi-hiuxmpp
++      exit ;;
++    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
++      # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
++      if test "`(/bin/universe) 2>/dev/null`" = att ; then
++              echo pyramid-pyramid-sysv3
++      else
++              echo pyramid-pyramid-bsd
++      fi
++      exit ;;
++    NILE*:*:*:dcosx)
++      echo pyramid-pyramid-svr4
++      exit ;;
++    DRS?6000:unix:4.0:6*)
++      echo sparc-icl-nx6
++      exit ;;
++    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
++      case `/usr/bin/uname -p` in
++          sparc) echo sparc-icl-nx7; exit ;;
++      esac ;;
++    s390x:SunOS:*:*)
++      echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++      exit ;;
++    sun4H:SunOS:5.*:*)
++      echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++      exit ;;
++    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
++      echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++      exit ;;
++    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
++      echo i386-pc-auroraux${UNAME_RELEASE}
++      exit ;;
++    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
++      eval $set_cc_for_build
++      SUN_ARCH="i386"
++      # If there is a compiler, see if it is configured for 64-bit objects.
++      # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
++      # This test works for both compilers.
++      if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++          if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
++              (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++              grep IS_64BIT_ARCH >/dev/null
++          then
++              SUN_ARCH="x86_64"
++          fi
++      fi
++      echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++      exit ;;
++    sun4*:SunOS:6*:*)
++      # According to config.sub, this is the proper way to canonicalize
++      # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
++      # it's likely to be more like Solaris than SunOS4.
++      echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++      exit ;;
++    sun4*:SunOS:*:*)
++      case "`/usr/bin/arch -k`" in
++          Series*|S4*)
++              UNAME_RELEASE=`uname -v`
++              ;;
++      esac
++      # Japanese Language versions have a version number like `4.1.3-JL'.
++      echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
++      exit ;;
++    sun3*:SunOS:*:*)
++      echo m68k-sun-sunos${UNAME_RELEASE}
++      exit ;;
++    sun*:*:4.2BSD:*)
++      UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
++      test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
++      case "`/bin/arch`" in
++          sun3)
++              echo m68k-sun-sunos${UNAME_RELEASE}
++              ;;
++          sun4)
++              echo sparc-sun-sunos${UNAME_RELEASE}
++              ;;
++      esac
++      exit ;;
++    aushp:SunOS:*:*)
++      echo sparc-auspex-sunos${UNAME_RELEASE}
++      exit ;;
++    # The situation for MiNT is a little confusing.  The machine name
++    # can be virtually everything (everything which is not
++    # "atarist" or "atariste" at least should have a processor
++    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
++    # to the lowercase version "mint" (or "freemint").  Finally
++    # the system name "TOS" denotes a system which is actually not
++    # MiNT.  But MiNT is downward compatible to TOS, so this should
++    # be no problem.
++    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
++      echo m68k-atari-mint${UNAME_RELEASE}
++      exit ;;
++    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
++      echo m68k-atari-mint${UNAME_RELEASE}
++      exit ;;
++    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
++      echo m68k-atari-mint${UNAME_RELEASE}
++      exit ;;
++    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
++      echo m68k-milan-mint${UNAME_RELEASE}
++      exit ;;
++    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
++      echo m68k-hades-mint${UNAME_RELEASE}
++      exit ;;
++    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
++      echo m68k-unknown-mint${UNAME_RELEASE}
++      exit ;;
++    m68k:machten:*:*)
++      echo m68k-apple-machten${UNAME_RELEASE}
++      exit ;;
++    powerpc:machten:*:*)
++      echo powerpc-apple-machten${UNAME_RELEASE}
++      exit ;;
++    RISC*:Mach:*:*)
++      echo mips-dec-mach_bsd4.3
++      exit ;;
++    RISC*:ULTRIX:*:*)
++      echo mips-dec-ultrix${UNAME_RELEASE}
++      exit ;;
++    VAX*:ULTRIX*:*:*)
++      echo vax-dec-ultrix${UNAME_RELEASE}
++      exit ;;
++    2020:CLIX:*:* | 2430:CLIX:*:*)
++      echo clipper-intergraph-clix${UNAME_RELEASE}
++      exit ;;
++    mips:*:*:UMIPS | mips:*:*:RISCos)
++      eval $set_cc_for_build
++      sed 's/^        //' << EOF >$dummy.c
++#ifdef __cplusplus
++#include <stdio.h>  /* for printf() prototype */
++      int main (int argc, char *argv[]) {
++#else
++      int main (argc, argv) int argc; char *argv[]; {
++#endif
++      #if defined (host_mips) && defined (MIPSEB)
++      #if defined (SYSTYPE_SYSV)
++        printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
++      #endif
++      #if defined (SYSTYPE_SVR4)
++        printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
++      #endif
++      #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
++        printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
++      #endif
++      #endif
++        exit (-1);
++      }
++EOF
++      $CC_FOR_BUILD -o $dummy $dummy.c &&
++        dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
++        SYSTEM_NAME=`$dummy $dummyarg` &&
++          { echo "$SYSTEM_NAME"; exit; }
++      echo mips-mips-riscos${UNAME_RELEASE}
++      exit ;;
++    Motorola:PowerMAX_OS:*:*)
++      echo powerpc-motorola-powermax
++      exit ;;
++    Motorola:*:4.3:PL8-*)
++      echo powerpc-harris-powermax
++      exit ;;
++    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
++      echo powerpc-harris-powermax
++      exit ;;
++    Night_Hawk:Power_UNIX:*:*)
++      echo powerpc-harris-powerunix
++      exit ;;
++    m88k:CX/UX:7*:*)
++      echo m88k-harris-cxux7
++      exit ;;
++    m88k:*:4*:R4*)
++      echo m88k-motorola-sysv4
++      exit ;;
++    m88k:*:3*:R3*)
++      echo m88k-motorola-sysv3
++      exit ;;
++    AViiON:dgux:*:*)
++      # DG/UX returns AViiON for all architectures
++      UNAME_PROCESSOR=`/usr/bin/uname -p`
++      if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
++      then
++          if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
++             [ ${TARGET_BINARY_INTERFACE}x = x ]
++          then
++              echo m88k-dg-dgux${UNAME_RELEASE}
++          else
++              echo m88k-dg-dguxbcs${UNAME_RELEASE}
++          fi
++      else
++          echo i586-dg-dgux${UNAME_RELEASE}
++      fi
++      exit ;;
++    M88*:DolphinOS:*:*)       # DolphinOS (SVR3)
++      echo m88k-dolphin-sysv3
++      exit ;;
++    M88*:*:R3*:*)
++      # Delta 88k system running SVR3
++      echo m88k-motorola-sysv3
++      exit ;;
++    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
++      echo m88k-tektronix-sysv3
++      exit ;;
++    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
++      echo m68k-tektronix-bsd
++      exit ;;
++    *:IRIX*:*:*)
++      echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
++      exit ;;
++    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
++      echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
++      exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
++    i*86:AIX:*:*)
++      echo i386-ibm-aix
++      exit ;;
++    ia64:AIX:*:*)
++      if [ -x /usr/bin/oslevel ] ; then
++              IBM_REV=`/usr/bin/oslevel`
++      else
++              IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
++      fi
++      echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
++      exit ;;
++    *:AIX:2:3)
++      if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
++              eval $set_cc_for_build
++              sed 's/^                //' << EOF >$dummy.c
++              #include <sys/systemcfg.h>
++
++              main()
++                      {
++                      if (!__power_pc())
++                              exit(1);
++                      puts("powerpc-ibm-aix3.2.5");
++                      exit(0);
++                      }
++EOF
++              if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
++              then
++                      echo "$SYSTEM_NAME"
++              else
++                      echo rs6000-ibm-aix3.2.5
++              fi
++      elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
++              echo rs6000-ibm-aix3.2.4
++      else
++              echo rs6000-ibm-aix3.2
++      fi
++      exit ;;
++    *:AIX:*:[4567])
++      IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
++      if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
++              IBM_ARCH=rs6000
++      else
++              IBM_ARCH=powerpc
++      fi
++      if [ -x /usr/bin/oslevel ] ; then
++              IBM_REV=`/usr/bin/oslevel`
++      else
++              IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
++      fi
++      echo ${IBM_ARCH}-ibm-aix${IBM_REV}
++      exit ;;
++    *:AIX:*:*)
++      echo rs6000-ibm-aix
++      exit ;;
++    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
++      echo romp-ibm-bsd4.4
++      exit ;;
++    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
++      echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
++      exit ;;                             # report: romp-ibm BSD 4.3
++    *:BOSX:*:*)
++      echo rs6000-bull-bosx
++      exit ;;
++    DPX/2?00:B.O.S.:*:*)
++      echo m68k-bull-sysv3
++      exit ;;
++    9000/[34]??:4.3bsd:1.*:*)
++      echo m68k-hp-bsd
++      exit ;;
++    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
++      echo m68k-hp-bsd4.4
++      exit ;;
++    9000/[34678]??:HP-UX:*:*)
++      HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
++      case "${UNAME_MACHINE}" in
++          9000/31? )            HP_ARCH=m68000 ;;
++          9000/[34]?? )         HP_ARCH=m68k ;;
++          9000/[678][0-9][0-9])
++              if [ -x /usr/bin/getconf ]; then
++                  sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
++                  sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
++                  case "${sc_cpu_version}" in
++                    523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
++                    528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
++                    532)                      # CPU_PA_RISC2_0
++                      case "${sc_kernel_bits}" in
++                        32) HP_ARCH="hppa2.0n" ;;
++                        64) HP_ARCH="hppa2.0w" ;;
++                        '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
++                      esac ;;
++                  esac
++              fi
++              if [ "${HP_ARCH}" = "" ]; then
++                  eval $set_cc_for_build
++                  sed 's/^            //' << EOF >$dummy.c
++
++              #define _HPUX_SOURCE
++              #include <stdlib.h>
++              #include <unistd.h>
++
++              int main ()
++              {
++              #if defined(_SC_KERNEL_BITS)
++                  long bits = sysconf(_SC_KERNEL_BITS);
++              #endif
++                  long cpu  = sysconf (_SC_CPU_VERSION);
++
++                  switch (cpu)
++                      {
++                      case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
++                      case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
++                      case CPU_PA_RISC2_0:
++              #if defined(_SC_KERNEL_BITS)
++                          switch (bits)
++                              {
++                              case 64: puts ("hppa2.0w"); break;
++                              case 32: puts ("hppa2.0n"); break;
++                              default: puts ("hppa2.0"); break;
++                              } break;
++              #else  /* !defined(_SC_KERNEL_BITS) */
++                          puts ("hppa2.0"); break;
++              #endif
++                      default: puts ("hppa1.0"); break;
++                      }
++                  exit (0);
++              }
++EOF
++                  (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
++                  test -z "$HP_ARCH" && HP_ARCH=hppa
++              fi ;;
++      esac
++      if [ ${HP_ARCH} = "hppa2.0w" ]
++      then
++          eval $set_cc_for_build
++
++          # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
++          # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
++          # generating 64-bit code.  GNU and HP use different nomenclature:
++          #
++          # $ CC_FOR_BUILD=cc ./config.guess
++          # => hppa2.0w-hp-hpux11.23
++          # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
++          # => hppa64-hp-hpux11.23
++
++          if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
++              grep -q __LP64__
++          then
++              HP_ARCH="hppa2.0w"
++          else
++              HP_ARCH="hppa64"
++          fi
++      fi
++      echo ${HP_ARCH}-hp-hpux${HPUX_REV}
++      exit ;;
++    ia64:HP-UX:*:*)
++      HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
++      echo ia64-hp-hpux${HPUX_REV}
++      exit ;;
++    3050*:HI-UX:*:*)
++      eval $set_cc_for_build
++      sed 's/^        //' << EOF >$dummy.c
++      #include <unistd.h>
++      int
++      main ()
++      {
++        long cpu = sysconf (_SC_CPU_VERSION);
++        /* The order matters, because CPU_IS_HP_MC68K erroneously returns
++           true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
++           results, however.  */
++        if (CPU_IS_PA_RISC (cpu))
++          {
++            switch (cpu)
++              {
++                case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
++                case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
++                case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
++                default: puts ("hppa-hitachi-hiuxwe2"); break;
++              }
++          }
++        else if (CPU_IS_HP_MC68K (cpu))
++          puts ("m68k-hitachi-hiuxwe2");
++        else puts ("unknown-hitachi-hiuxwe2");
++        exit (0);
++      }
++EOF
++      $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
++              { echo "$SYSTEM_NAME"; exit; }
++      echo unknown-hitachi-hiuxwe2
++      exit ;;
++    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
++      echo hppa1.1-hp-bsd
++      exit ;;
++    9000/8??:4.3bsd:*:*)
++      echo hppa1.0-hp-bsd
++      exit ;;
++    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
++      echo hppa1.0-hp-mpeix
++      exit ;;
++    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
++      echo hppa1.1-hp-osf
++      exit ;;
++    hp8??:OSF1:*:*)
++      echo hppa1.0-hp-osf
++      exit ;;
++    i*86:OSF1:*:*)
++      if [ -x /usr/sbin/sysversion ] ; then
++          echo ${UNAME_MACHINE}-unknown-osf1mk
++      else
++          echo ${UNAME_MACHINE}-unknown-osf1
++      fi
++      exit ;;
++    parisc*:Lites*:*:*)
++      echo hppa1.1-hp-lites
++      exit ;;
++    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
++      echo c1-convex-bsd
++      exit ;;
++    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
++      if getsysinfo -f scalar_acc
++      then echo c32-convex-bsd
++      else echo c2-convex-bsd
++      fi
++      exit ;;
++    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
++      echo c34-convex-bsd
++      exit ;;
++    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
++      echo c38-convex-bsd
++      exit ;;
++    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
++      echo c4-convex-bsd
++      exit ;;
++    CRAY*Y-MP:*:*:*)
++      echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++      exit ;;
++    CRAY*[A-Z]90:*:*:*)
++      echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
++      | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
++            -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
++            -e 's/\.[^.]*$/.X/'
++      exit ;;
++    CRAY*TS:*:*:*)
++      echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++      exit ;;
++    CRAY*T3E:*:*:*)
++      echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++      exit ;;
++    CRAY*SV1:*:*:*)
++      echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++      exit ;;
++    *:UNICOS/mp:*:*)
++      echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++      exit ;;
++    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
++      FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
++      FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
++      FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
++      echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++      exit ;;
++    5000:UNIX_System_V:4.*:*)
++      FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
++      FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
++      echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++      exit ;;
++    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
++      echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
++      exit ;;
++    sparc*:BSD/OS:*:*)
++      echo sparc-unknown-bsdi${UNAME_RELEASE}
++      exit ;;
++    *:BSD/OS:*:*)
++      echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
++      exit ;;
++    *:FreeBSD:*:*)
++      UNAME_PROCESSOR=`/usr/bin/uname -p`
++      case ${UNAME_PROCESSOR} in
++          amd64)
++              echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++          *)
++              echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++      esac
++      exit ;;
++    i*:CYGWIN*:*)
++      echo ${UNAME_MACHINE}-pc-cygwin
++      exit ;;
++    *:MINGW64*:*)
++      echo ${UNAME_MACHINE}-pc-mingw64
++      exit ;;
++    *:MINGW*:*)
++      echo ${UNAME_MACHINE}-pc-mingw32
++      exit ;;
++    *:MSYS*:*)
++      echo ${UNAME_MACHINE}-pc-msys
++      exit ;;
++    i*:windows32*:*)
++      # uname -m includes "-pc" on this system.
++      echo ${UNAME_MACHINE}-mingw32
++      exit ;;
++    i*:PW*:*)
++      echo ${UNAME_MACHINE}-pc-pw32
++      exit ;;
++    *:Interix*:*)
++      case ${UNAME_MACHINE} in
++          x86)
++              echo i586-pc-interix${UNAME_RELEASE}
++              exit ;;
++          authenticamd | genuineintel | EM64T)
++              echo x86_64-unknown-interix${UNAME_RELEASE}
++              exit ;;
++          IA64)
++              echo ia64-unknown-interix${UNAME_RELEASE}
++              exit ;;
++      esac ;;
++    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
++      echo i${UNAME_MACHINE}-pc-mks
++      exit ;;
++    8664:Windows_NT:*)
++      echo x86_64-pc-mks
++      exit ;;
++    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
++      # How do we know it's Interix rather than the generic POSIX subsystem?
++      # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
++      # UNAME_MACHINE based on the output of uname instead of i386?
++      echo i586-pc-interix
++      exit ;;
++    i*:UWIN*:*)
++      echo ${UNAME_MACHINE}-pc-uwin
++      exit ;;
++    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
++      echo x86_64-unknown-cygwin
++      exit ;;
++    p*:CYGWIN*:*)
++      echo powerpcle-unknown-cygwin
++      exit ;;
++    prep*:SunOS:5.*:*)
++      echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++      exit ;;
++    *:GNU:*:*)
++      # the GNU system
++      echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
++      exit ;;
++    *:GNU/*:*:*)
++      # other systems with GNU libc and userland
++      echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
++      exit ;;
++    i*86:Minix:*:*)
++      echo ${UNAME_MACHINE}-pc-minix
++      exit ;;
++    aarch64:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    aarch64_be:Linux:*:*)
++      UNAME_MACHINE=aarch64_be
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    alpha:Linux:*:*)
++      case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
++        EV5)   UNAME_MACHINE=alphaev5 ;;
++        EV56)  UNAME_MACHINE=alphaev56 ;;
++        PCA56) UNAME_MACHINE=alphapca56 ;;
++        PCA57) UNAME_MACHINE=alphapca56 ;;
++        EV6)   UNAME_MACHINE=alphaev6 ;;
++        EV67)  UNAME_MACHINE=alphaev67 ;;
++        EV68*) UNAME_MACHINE=alphaev68 ;;
++      esac
++      objdump --private-headers /bin/sh | grep -q ld.so.1
++      if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    arc:Linux:*:* | arceb:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    arm*:Linux:*:*)
++      eval $set_cc_for_build
++      if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
++          | grep -q __ARM_EABI__
++      then
++          echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      else
++          if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
++              | grep -q __ARM_PCS_VFP
++          then
++              echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
++          else
++              echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
++          fi
++      fi
++      exit ;;
++    avr32*:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    cris:Linux:*:*)
++      echo ${UNAME_MACHINE}-axis-linux-${LIBC}
++      exit ;;
++    crisv32:Linux:*:*)
++      echo ${UNAME_MACHINE}-axis-linux-${LIBC}
++      exit ;;
++    frv:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    hexagon:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    i*86:Linux:*:*)
++      echo ${UNAME_MACHINE}-pc-linux-${LIBC}
++      exit ;;
++    ia64:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    m32r*:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    m68*:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    mips:Linux:*:* | mips64:Linux:*:*)
++      eval $set_cc_for_build
++      sed 's/^        //' << EOF >$dummy.c
++      #undef CPU
++      #undef ${UNAME_MACHINE}
++      #undef ${UNAME_MACHINE}el
++      #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
++      CPU=${UNAME_MACHINE}el
++      #else
++      #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
++      CPU=${UNAME_MACHINE}
++      #else
++      CPU=
++      #endif
++      #endif
++EOF
++      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
++      test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
++      ;;
++    openrisc*:Linux:*:*)
++      echo or1k-unknown-linux-${LIBC}
++      exit ;;
++    or32:Linux:*:* | or1k*:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    padre:Linux:*:*)
++      echo sparc-unknown-linux-${LIBC}
++      exit ;;
++    parisc64:Linux:*:* | hppa64:Linux:*:*)
++      echo hppa64-unknown-linux-${LIBC}
++      exit ;;
++    parisc:Linux:*:* | hppa:Linux:*:*)
++      # Look for CPU level
++      case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
++        PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
++        PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
++        *)    echo hppa-unknown-linux-${LIBC} ;;
++      esac
++      exit ;;
++    ppc64:Linux:*:*)
++      echo powerpc64-unknown-linux-${LIBC}
++      exit ;;
++    ppc:Linux:*:*)
++      echo powerpc-unknown-linux-${LIBC}
++      exit ;;
++    ppc64le:Linux:*:*)
++      echo powerpc64le-unknown-linux-${LIBC}
++      exit ;;
++    ppcle:Linux:*:*)
++      echo powerpcle-unknown-linux-${LIBC}
++      exit ;;
++    s390:Linux:*:* | s390x:Linux:*:*)
++      echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
++      exit ;;
++    sh64*:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    sh*:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    sparc:Linux:*:* | sparc64:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    tile*:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    vax:Linux:*:*)
++      echo ${UNAME_MACHINE}-dec-linux-${LIBC}
++      exit ;;
++    x86_64:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    xtensa*:Linux:*:*)
++      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++      exit ;;
++    i*86:DYNIX/ptx:4*:*)
++      # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
++      # earlier versions are messed up and put the nodename in both
++      # sysname and nodename.
++      echo i386-sequent-sysv4
++      exit ;;
++    i*86:UNIX_SV:4.2MP:2.*)
++      # Unixware is an offshoot of SVR4, but it has its own version
++      # number series starting with 2...
++      # I am not positive that other SVR4 systems won't match this,
++      # I just have to hope.  -- rms.
++      # Use sysv4.2uw... so that sysv4* matches it.
++      echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
++      exit ;;
++    i*86:OS/2:*:*)
++      # If we were able to find `uname', then EMX Unix compatibility
++      # is probably installed.
++      echo ${UNAME_MACHINE}-pc-os2-emx
++      exit ;;
++    i*86:XTS-300:*:STOP)
++      echo ${UNAME_MACHINE}-unknown-stop
++      exit ;;
++    i*86:atheos:*:*)
++      echo ${UNAME_MACHINE}-unknown-atheos
++      exit ;;
++    i*86:syllable:*:*)
++      echo ${UNAME_MACHINE}-pc-syllable
++      exit ;;
++    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
++      echo i386-unknown-lynxos${UNAME_RELEASE}
++      exit ;;
++    i*86:*DOS:*:*)
++      echo ${UNAME_MACHINE}-pc-msdosdjgpp
++      exit ;;
++    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
++      UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
++      if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
++              echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
++      else
++              echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
++      fi
++      exit ;;
++    i*86:*:5:[678]*)
++      # UnixWare 7.x, OpenUNIX and OpenServer 6.
++      case `/bin/uname -X | grep "^Machine"` in
++          *486*)           UNAME_MACHINE=i486 ;;
++          *Pentium)        UNAME_MACHINE=i586 ;;
++          *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
++      esac
++      echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
++      exit ;;
++    i*86:*:3.2:*)
++      if test -f /usr/options/cb.name; then
++              UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
++              echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
++      elif /bin/uname -X 2>/dev/null >/dev/null ; then
++              UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
++              (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
++              (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
++                      && UNAME_MACHINE=i586
++              (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
++                      && UNAME_MACHINE=i686
++              (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
++                      && UNAME_MACHINE=i686
++              echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
++      else
++              echo ${UNAME_MACHINE}-pc-sysv32
++      fi
++      exit ;;
++    pc:*:*:*)
++      # Left here for compatibility:
++      # uname -m prints for DJGPP always 'pc', but it prints nothing about
++      # the processor, so we play safe by assuming i586.
++      # Note: whatever this is, it MUST be the same as what config.sub
++      # prints for the "djgpp" host, or else GDB configury will decide that
++      # this is a cross-build.
++      echo i586-pc-msdosdjgpp
++      exit ;;
++    Intel:Mach:3*:*)
++      echo i386-pc-mach3
++      exit ;;
++    paragon:*:*:*)
++      echo i860-intel-osf1
++      exit ;;
++    i860:*:4.*:*) # i860-SVR4
++      if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
++        echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
++      else # Add other i860-SVR4 vendors below as they are discovered.
++        echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
++      fi
++      exit ;;
++    mini*:CTIX:SYS*5:*)
++      # "miniframe"
++      echo m68010-convergent-sysv
++      exit ;;
++    mc68k:UNIX:SYSTEM5:3.51m)
++      echo m68k-convergent-sysv
++      exit ;;
++    M680?0:D-NIX:5.3:*)
++      echo m68k-diab-dnix
++      exit ;;
++    M68*:*:R3V[5678]*:*)
++      test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
++    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
++      OS_REL=''
++      test -r /etc/.relid \
++      && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
++      /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++        && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
++      /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
++        && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
++    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
++      /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++        && { echo i486-ncr-sysv4; exit; } ;;
++    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
++      OS_REL='.3'
++      test -r /etc/.relid \
++          && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
++      /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++          && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
++      /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
++          && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
++      /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
++          && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
++    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
++      echo m68k-unknown-lynxos${UNAME_RELEASE}
++      exit ;;
++    mc68030:UNIX_System_V:4.*:*)
++      echo m68k-atari-sysv4
++      exit ;;
++    TSUNAMI:LynxOS:2.*:*)
++      echo sparc-unknown-lynxos${UNAME_RELEASE}
++      exit ;;
++    rs6000:LynxOS:2.*:*)
++      echo rs6000-unknown-lynxos${UNAME_RELEASE}
++      exit ;;
++    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
++      echo powerpc-unknown-lynxos${UNAME_RELEASE}
++      exit ;;
++    SM[BE]S:UNIX_SV:*:*)
++      echo mips-dde-sysv${UNAME_RELEASE}
++      exit ;;
++    RM*:ReliantUNIX-*:*:*)
++      echo mips-sni-sysv4
++      exit ;;
++    RM*:SINIX-*:*:*)
++      echo mips-sni-sysv4
++      exit ;;
++    *:SINIX-*:*:*)
++      if uname -p 2>/dev/null >/dev/null ; then
++              UNAME_MACHINE=`(uname -p) 2>/dev/null`
++              echo ${UNAME_MACHINE}-sni-sysv4
++      else
++              echo ns32k-sni-sysv
++      fi
++      exit ;;
++    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
++                      # says <Richard.M.Bartel@ccMail.Census.GOV>
++      echo i586-unisys-sysv4
++      exit ;;
++    *:UNIX_System_V:4*:FTX*)
++      # From Gerald Hewes <hewes@openmarket.com>.
++      # How about differentiating between stratus architectures? -djm
++      echo hppa1.1-stratus-sysv4
++      exit ;;
++    *:*:*:FTX*)
++      # From seanf@swdc.stratus.com.
++      echo i860-stratus-sysv4
++      exit ;;
++    i*86:VOS:*:*)
++      # From Paul.Green@stratus.com.
++      echo ${UNAME_MACHINE}-stratus-vos
++      exit ;;
++    *:VOS:*:*)
++      # From Paul.Green@stratus.com.
++      echo hppa1.1-stratus-vos
++      exit ;;
++    mc68*:A/UX:*:*)
++      echo m68k-apple-aux${UNAME_RELEASE}
++      exit ;;
++    news*:NEWS-OS:6*:*)
++      echo mips-sony-newsos6
++      exit ;;
++    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
++      if [ -d /usr/nec ]; then
++              echo mips-nec-sysv${UNAME_RELEASE}
++      else
++              echo mips-unknown-sysv${UNAME_RELEASE}
++      fi
++      exit ;;
++    BeBox:BeOS:*:*)   # BeOS running on hardware made by Be, PPC only.
++      echo powerpc-be-beos
++      exit ;;
++    BeMac:BeOS:*:*)   # BeOS running on Mac or Mac clone, PPC only.
++      echo powerpc-apple-beos
++      exit ;;
++    BePC:BeOS:*:*)    # BeOS running on Intel PC compatible.
++      echo i586-pc-beos
++      exit ;;
++    BePC:Haiku:*:*)   # Haiku running on Intel PC compatible.
++      echo i586-pc-haiku
++      exit ;;
++    x86_64:Haiku:*:*)
++      echo x86_64-unknown-haiku
++      exit ;;
++    SX-4:SUPER-UX:*:*)
++      echo sx4-nec-superux${UNAME_RELEASE}
++      exit ;;
++    SX-5:SUPER-UX:*:*)
++      echo sx5-nec-superux${UNAME_RELEASE}
++      exit ;;
++    SX-6:SUPER-UX:*:*)
++      echo sx6-nec-superux${UNAME_RELEASE}
++      exit ;;
++    SX-7:SUPER-UX:*:*)
++      echo sx7-nec-superux${UNAME_RELEASE}
++      exit ;;
++    SX-8:SUPER-UX:*:*)
++      echo sx8-nec-superux${UNAME_RELEASE}
++      exit ;;
++    SX-8R:SUPER-UX:*:*)
++      echo sx8r-nec-superux${UNAME_RELEASE}
++      exit ;;
++    Power*:Rhapsody:*:*)
++      echo powerpc-apple-rhapsody${UNAME_RELEASE}
++      exit ;;
++    *:Rhapsody:*:*)
++      echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
++      exit ;;
++    *:Darwin:*:*)
++      UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
++      eval $set_cc_for_build
++      if test "$UNAME_PROCESSOR" = unknown ; then
++          UNAME_PROCESSOR=powerpc
++      fi
++      if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
++          if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++              if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
++                  (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++                  grep IS_64BIT_ARCH >/dev/null
++              then
++                  case $UNAME_PROCESSOR in
++                      i386) UNAME_PROCESSOR=x86_64 ;;
++                      powerpc) UNAME_PROCESSOR=powerpc64 ;;
++                  esac
++              fi
++          fi
++      elif test "$UNAME_PROCESSOR" = i386 ; then
++          # Avoid executing cc on OS X 10.9, as it ships with a stub
++          # that puts up a graphical alert prompting to install
++          # developer tools.  Any system running Mac OS X 10.7 or
++          # later (Darwin 11 and later) is required to have a 64-bit
++          # processor. This is not true of the ARM version of Darwin
++          # that Apple uses in portable devices.
++          UNAME_PROCESSOR=x86_64
++      fi
++      echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
++      exit ;;
++    *:procnto*:*:* | *:QNX:[0123456789]*:*)
++      UNAME_PROCESSOR=`uname -p`
++      if test "$UNAME_PROCESSOR" = "x86"; then
++              UNAME_PROCESSOR=i386
++              UNAME_MACHINE=pc
++      fi
++      echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
++      exit ;;
++    *:QNX:*:4*)
++      echo i386-pc-qnx
++      exit ;;
++    NEO-?:NONSTOP_KERNEL:*:*)
++      echo neo-tandem-nsk${UNAME_RELEASE}
++      exit ;;
++    NSE-*:NONSTOP_KERNEL:*:*)
++      echo nse-tandem-nsk${UNAME_RELEASE}
++      exit ;;
++    NSR-?:NONSTOP_KERNEL:*:*)
++      echo nsr-tandem-nsk${UNAME_RELEASE}
++      exit ;;
++    *:NonStop-UX:*:*)
++      echo mips-compaq-nonstopux
++      exit ;;
++    BS2000:POSIX*:*:*)
++      echo bs2000-siemens-sysv
++      exit ;;
++    DS/*:UNIX_System_V:*:*)
++      echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
++      exit ;;
++    *:Plan9:*:*)
++      # "uname -m" is not consistent, so use $cputype instead. 386
++      # is converted to i386 for consistency with other x86
++      # operating systems.
++      if test "$cputype" = "386"; then
++          UNAME_MACHINE=i386
++      else
++          UNAME_MACHINE="$cputype"
++      fi
++      echo ${UNAME_MACHINE}-unknown-plan9
++      exit ;;
++    *:TOPS-10:*:*)
++      echo pdp10-unknown-tops10
++      exit ;;
++    *:TENEX:*:*)
++      echo pdp10-unknown-tenex
++      exit ;;
++    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
++      echo pdp10-dec-tops20
++      exit ;;
++    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
++      echo pdp10-xkl-tops20
++      exit ;;
++    *:TOPS-20:*:*)
++      echo pdp10-unknown-tops20
++      exit ;;
++    *:ITS:*:*)
++      echo pdp10-unknown-its
++      exit ;;
++    SEI:*:*:SEIUX)
++      echo mips-sei-seiux${UNAME_RELEASE}
++      exit ;;
++    *:DragonFly:*:*)
++      echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
++      exit ;;
++    *:*VMS:*:*)
++      UNAME_MACHINE=`(uname -p) 2>/dev/null`
++      case "${UNAME_MACHINE}" in
++          A*) echo alpha-dec-vms ; exit ;;
++          I*) echo ia64-dec-vms ; exit ;;
++          V*) echo vax-dec-vms ; exit ;;
++      esac ;;
++    *:XENIX:*:SysV)
++      echo i386-pc-xenix
++      exit ;;
++    i*86:skyos:*:*)
++      echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
++      exit ;;
++    i*86:rdos:*:*)
++      echo ${UNAME_MACHINE}-pc-rdos
++      exit ;;
++    i*86:AROS:*:*)
++      echo ${UNAME_MACHINE}-pc-aros
++      exit ;;
++    x86_64:VMkernel:*:*)
++      echo ${UNAME_MACHINE}-unknown-esx
++      exit ;;
++esac
++
++cat >&2 <<EOF
++$0: unable to guess system type
++
++This script, last modified $timestamp, has failed to recognize
++the operating system you are using. It is advised that you
++download the most up to date version of the config scripts from
++
++  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
++and
++  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
++
++If the version you run ($0) is already up to date, please
++send the following data and any information you think might be
++pertinent to <config-patches@gnu.org> in order to provide the needed
++information to handle your system.
++
++config.guess timestamp = $timestamp
++
++uname -m = `(uname -m) 2>/dev/null || echo unknown`
++uname -r = `(uname -r) 2>/dev/null || echo unknown`
++uname -s = `(uname -s) 2>/dev/null || echo unknown`
++uname -v = `(uname -v) 2>/dev/null || echo unknown`
++
++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
++/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
++
++hostinfo               = `(hostinfo) 2>/dev/null`
++/bin/universe          = `(/bin/universe) 2>/dev/null`
++/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
++/bin/arch              = `(/bin/arch) 2>/dev/null`
++/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
++
++UNAME_MACHINE = ${UNAME_MACHINE}
++UNAME_RELEASE = ${UNAME_RELEASE}
++UNAME_SYSTEM  = ${UNAME_SYSTEM}
++UNAME_VERSION = ${UNAME_VERSION}
++EOF
++
++exit 1
++
++# Local variables:
++# eval: (add-hook 'write-file-hooks 'time-stamp)
++# time-stamp-start: "timestamp='"
++# time-stamp-format: "%:y-%02m-%02d"
++# time-stamp-end: "'"
++# End:
+Index: b/common/autoconf/build-aux/config.sub
+===================================================================
+--- a/common/autoconf/build-aux/config.sub
++++ b/common/autoconf/build-aux/config.sub
+@@ -1,70 +1,40 @@
+ #! /bin/sh
++# Configuration validation subroutine script.
++#   Copyright 1992-2014 Free Software Foundation, Inc.
+-#
+-# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+-#
+-# This code is free software; you can redistribute it and/or modify it
+-# under the terms of the GNU General Public License version 2 only, as
+-# published by the Free Software Foundation.  Oracle designates this
+-# particular file as subject to the "Classpath" exception as provided
+-# by Oracle in the LICENSE file that accompanied this code.
+-#
+-# This code is distributed in the hope that it will be useful, but WITHOUT
+-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+-# version 2 for more details (a copy is included in the LICENSE file that
+-# accompanied this code).
+-#
+-# You should have received a copy of the GNU General Public License version
+-# 2 along with this work; if not, write to the Free Software Foundation,
+-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+-#
+-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+-# or visit www.oracle.com if you need additional information or have any
+-# questions.
+-#
++timestamp='2014-05-01'
+-# Configuration validation subroutine script.
+-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+-#   Free Software Foundation, Inc.
+-
+-timestamp='2008-01-16'
+-
+-# This file is (in principle) common to ALL GNU software.
+-# The presence of a machine in this file suggests that SOME GNU software
+-# can handle that machine.  It does not imply ALL GNU software can.
+-#
+-# This file is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2 of the License, or
++# This file is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
+ # (at your option) any later version.
+ #
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
++# This program is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++# General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+-# 02110-1301, USA.
++# along with this program; if not, see <http://www.gnu.org/licenses/>.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+-# the same distribution terms that you use for the rest of that program.
++# the same distribution terms that you use for the rest of that
++# program.  This Exception is an additional permission under section 7
++# of the GNU General Public License, version 3 ("GPLv3").
+-# Please send patches to <config-patches@gnu.org>.  Submit a context
+-# diff and a properly formatted ChangeLog entry.
++# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+ #
+ # Configuration subroutine to validate and canonicalize a configuration type.
+ # Supply the specified configuration type as an argument.
+ # If it is invalid, we print an error message on stderr and exit with code 1.
+ # Otherwise, we print the canonical config type on stdout and succeed.
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
++
+ # This file is supposed to be the same for all GNU packages
+ # and recognize all the CPU types, system types and aliases
+ # that are meaningful with *any* GNU software.
+@@ -98,8 +68,7 @@ Report bugs and patches to <config-patch
+ version="\
+ GNU config.sub ($timestamp)
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
++Copyright 1992-2014 Free Software Foundation, Inc.
+ This is free software; see the source for copying conditions.  There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -146,12 +115,18 @@ esac
+ # Here we must recognize all the valid KERNEL-OS combinations.
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+-  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
++  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
++  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
++  knetbsd*-gnu* | netbsd*-gnu* | \
++  kopensolaris*-gnu* | \
+   storm-chaos* | os2-emx* | rtmk-nova*)
+     os=-$maybe_os
+     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+     ;;
++  android-linux)
++    os=-linux-android
++    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
++    ;;
+   *)
+     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+     if [ $basic_machine != $1 ]
+@@ -174,10 +149,13 @@ case $os in
+       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+-      -apple | -axis | -knuth | -cray)
++      -apple | -axis | -knuth | -cray | -microblaze*)
+               os=
+               basic_machine=$1
+               ;;
++      -bluegene*)
++              os=-cnk
++              ;;
+       -sim | -cisco | -oki | -wec | -winbond)
+               os=
+               basic_machine=$1
+@@ -192,10 +170,10 @@ case $os in
+               os=-chorusos
+               basic_machine=$1
+               ;;
+-      -chorusrdb)
+-              os=-chorusrdb
++      -chorusrdb)
++              os=-chorusrdb
+               basic_machine=$1
+-              ;;
++              ;;
+       -hiux*)
+               os=-hiuxwe2
+               ;;
+@@ -240,6 +218,12 @@ case $os in
+       -isc*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
++      -lynx*178)
++              os=-lynxos178
++              ;;
++      -lynx*5)
++              os=-lynxos5
++              ;;
+       -lynx*)
+               os=-lynxos
+               ;;
+@@ -264,59 +248,85 @@ case $basic_machine in
+       # Some are omitted here because they have special meanings below.
+       1750a | 580 \
+       | a29k \
++      | aarch64 | aarch64_be \
+       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+       | am33_2.0 \
+-      | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
++      | arc | arceb \
++      | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
++      | avr | avr32 \
++      | be32 | be64 \
+       | bfin \
+-      | c4x | clipper \
++      | c4x | c8051 | clipper \
+       | d10v | d30v | dlx | dsp16xx \
++      | epiphany \
+       | fido | fr30 | frv \
+       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
++      | hexagon \
+       | i370 | i860 | i960 | ia64 \
+       | ip2k | iq2000 \
++      | k1om \
++      | le32 | le64 \
++      | lm32 \
+       | m32c | m32r | m32rle | m68000 | m68k | m88k \
+-      | maxq | mb | microblaze | mcore | mep \
++      | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+       | mips | mipsbe | mipseb | mipsel | mipsle \
+       | mips16 \
+       | mips64 | mips64el \
+-      | mips64vr | mips64vrel \
++      | mips64octeon | mips64octeonel \
+       | mips64orion | mips64orionel \
++      | mips64r5900 | mips64r5900el \
++      | mips64vr | mips64vrel \
+       | mips64vr4100 | mips64vr4100el \
+       | mips64vr4300 | mips64vr4300el \
+       | mips64vr5000 | mips64vr5000el \
+       | mips64vr5900 | mips64vr5900el \
+       | mipsisa32 | mipsisa32el \
+       | mipsisa32r2 | mipsisa32r2el \
++      | mipsisa32r6 | mipsisa32r6el \
+       | mipsisa64 | mipsisa64el \
+       | mipsisa64r2 | mipsisa64r2el \
++      | mipsisa64r6 | mipsisa64r6el \
+       | mipsisa64sb1 | mipsisa64sb1el \
+       | mipsisa64sr71k | mipsisa64sr71kel \
++      | mipsr5900 | mipsr5900el \
+       | mipstx39 | mipstx39el \
+       | mn10200 | mn10300 \
++      | moxie \
+       | mt \
+       | msp430 \
+-      | nios | nios2 \
++      | nds32 | nds32le | nds32be \
++      | nios | nios2 | nios2eb | nios2el \
+       | ns16k | ns32k \
+-      | or32 \
++      | open8 | or1k | or1knd | or32 \
+       | pdp10 | pdp11 | pj | pjl \
+-      | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
++      | powerpc | powerpc64 | powerpc64le | powerpcle \
+       | pyramid \
++      | rl78 | rx \
+       | score \
+-      | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
++      | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+       | sh64 | sh64le \
+       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+-      | spu | strongarm \
+-      | tahoe | thumb | tic4x | tic80 | tron \
+-      | v850 | v850e \
++      | spu \
++      | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
++      | ubicom32 \
++      | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+       | we32k \
+-      | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+-      | z8k)
++      | x86 | xc16x | xstormy16 | xtensa \
++      | z8k | z80)
+               basic_machine=$basic_machine-unknown
+               ;;
+-      m6811 | m68hc11 | m6812 | m68hc12)
+-              # Motorola 68HC11/12.
++      c54x)
++              basic_machine=tic54x-unknown
++              ;;
++      c55x)
++              basic_machine=tic55x-unknown
++              ;;
++      c6x)
++              basic_machine=tic6x-unknown
++              ;;
++      m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+@@ -326,6 +336,21 @@ case $basic_machine in
+               basic_machine=mt-unknown
+               ;;
++      strongarm | thumb | xscale)
++              basic_machine=arm-unknown
++              ;;
++      xgate)
++              basic_machine=$basic_machine-unknown
++              os=-none
++              ;;
++      xscaleeb)
++              basic_machine=armeb-unknown
++              ;;
++
++      xscaleel)
++              basic_machine=armel-unknown
++              ;;
++
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+@@ -340,64 +365,82 @@ case $basic_machine in
+       # Recognize the basic CPU types with company name.
+       580-* \
+       | a29k-* \
++      | aarch64-* | aarch64_be-* \
+       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+-      | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
++      | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
+       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+       | avr-* | avr32-* \
++      | be32-* | be64-* \
+       | bfin-* | bs2000-* \
+-      | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+-      | clipper-* | craynv-* | cydra-* \
++      | c[123]* | c30-* | [cjt]90-* | c4x-* \
++      | c8051-* | clipper-* | craynv-* | cydra-* \
+       | d10v-* | d30v-* | dlx-* \
+       | elxsi-* \
+       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+       | h8300-* | h8500-* \
+       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
++      | hexagon-* \
+       | i*86-* | i860-* | i960-* | ia64-* \
+       | ip2k-* | iq2000-* \
++      | k1om-* \
++      | le32-* | le64-* \
++      | lm32-* \
+       | m32c-* | m32r-* | m32rle-* \
+       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+-      | m88110-* | m88k-* | maxq-* | mcore-* \
++      | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
++      | microblaze-* | microblazeel-* \
+       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+       | mips16-* \
+       | mips64-* | mips64el-* \
+-      | mips64vr-* | mips64vrel-* \
++      | mips64octeon-* | mips64octeonel-* \
+       | mips64orion-* | mips64orionel-* \
++      | mips64r5900-* | mips64r5900el-* \
++      | mips64vr-* | mips64vrel-* \
+       | mips64vr4100-* | mips64vr4100el-* \
+       | mips64vr4300-* | mips64vr4300el-* \
+       | mips64vr5000-* | mips64vr5000el-* \
+       | mips64vr5900-* | mips64vr5900el-* \
+       | mipsisa32-* | mipsisa32el-* \
+       | mipsisa32r2-* | mipsisa32r2el-* \
++      | mipsisa32r6-* | mipsisa32r6el-* \
+       | mipsisa64-* | mipsisa64el-* \
+       | mipsisa64r2-* | mipsisa64r2el-* \
++      | mipsisa64r6-* | mipsisa64r6el-* \
+       | mipsisa64sb1-* | mipsisa64sb1el-* \
+       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
++      | mipsr5900-* | mipsr5900el-* \
+       | mipstx39-* | mipstx39el-* \
+       | mmix-* \
+       | mt-* \
+       | msp430-* \
+-      | nios-* | nios2-* \
++      | nds32-* | nds32le-* | nds32be-* \
++      | nios-* | nios2-* | nios2eb-* | nios2el-* \
+       | none-* | np1-* | ns16k-* | ns32k-* \
++      | open8-* \
++      | or1k*-* \
+       | orion-* \
+       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+-      | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
++      | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+       | pyramid-* \
+-      | romp-* | rs6000-* \
+-      | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
++      | rl78-* | romp-* | rs6000-* | rx-* \
++      | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+       | sparclite-* \
+-      | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+-      | tahoe-* | thumb-* \
++      | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
++      | tahoe-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
++      | tile*-* \
+       | tron-* \
+-      | v850-* | v850e-* | vax-* \
++      | ubicom32-* \
++      | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
++      | vax-* \
+       | we32k-* \
+-      | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
++      | x86-* | x86_64-* | xc16x-* | xps100-* \
+       | xstormy16-* | xtensa*-* \
+       | ymp-* \
+-      | z8k-*)
++      | z8k-* | z80-*)
+               ;;
+       # Recognize the basic CPU types without company name, with glob match.
+       xtensa*)
+@@ -419,7 +462,7 @@ case $basic_machine in
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+-      abacus)
++      abacus)
+               basic_machine=abacus-unknown
+               ;;
+       adobe68k)
+@@ -465,6 +508,10 @@ case $basic_machine in
+               basic_machine=m68k-apollo
+               os=-bsd
+               ;;
++      aros)
++              basic_machine=i386-pc
++              os=-aros
++              ;;
+       aux)
+               basic_machine=m68k-apple
+               os=-aux
+@@ -481,10 +528,27 @@ case $basic_machine in
+               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
++      bluegene*)
++              basic_machine=powerpc-ibm
++              os=-cnk
++              ;;
++      c54x-*)
++              basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
++              ;;
++      c55x-*)
++              basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
++              ;;
++      c6x-*)
++              basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
++              ;;
+       c90)
+               basic_machine=c90-cray
+               os=-unicos
+               ;;
++      cegcc)
++              basic_machine=arm-unknown
++              os=-cegcc
++              ;;
+       convex-c1)
+               basic_machine=c1-convex
+               os=-bsd
+@@ -513,7 +577,7 @@ case $basic_machine in
+               basic_machine=craynv-cray
+               os=-unicosmp
+               ;;
+-      cr16)
++      cr16 | cr16-*)
+               basic_machine=cr16-unknown
+               os=-elf
+               ;;
+@@ -552,6 +616,10 @@ case $basic_machine in
+               basic_machine=m88k-motorola
+               os=-sysv3
+               ;;
++      dicos)
++              basic_machine=i686-pc
++              os=-dicos
++              ;;
+       djgpp)
+               basic_machine=i586-pc
+               os=-msdosdjgpp
+@@ -667,7 +735,6 @@ case $basic_machine in
+       i370-ibm* | ibm*)
+               basic_machine=i370-ibm
+               ;;
+-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+       i*86v32)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv32
+@@ -725,8 +792,15 @@ case $basic_machine in
+               basic_machine=ns32k-utek
+               os=-sysv
+               ;;
++      microblaze*)
++              basic_machine=microblaze-xilinx
++              ;;
++      mingw64)
++              basic_machine=x86_64-pc
++              os=-mingw64
++              ;;
+       mingw32)
+-              basic_machine=i386-pc
++              basic_machine=i686-pc
+               os=-mingw32
+               ;;
+       mingw32ce)
+@@ -761,10 +835,18 @@ case $basic_machine in
+       ms1-*)
+               basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+               ;;
++      msys)
++              basic_machine=i686-pc
++              os=-msys
++              ;;
+       mvs)
+               basic_machine=i370-ibm
+               os=-mvs
+               ;;
++      nacl)
++              basic_machine=le32-unknown
++              os=-nacl
++              ;;
+       ncr3000)
+               basic_machine=i486-ncr
+               os=-sysv4
+@@ -829,6 +911,12 @@ case $basic_machine in
+       np1)
+               basic_machine=np1-gould
+               ;;
++      neo-tandem)
++              basic_machine=neo-tandem
++              ;;
++      nse-tandem)
++              basic_machine=nse-tandem
++              ;;
+       nsr-tandem)
+               basic_machine=nsr-tandem
+               ;;
+@@ -911,9 +999,10 @@ case $basic_machine in
+               ;;
+       power)  basic_machine=power-ibm
+               ;;
+-      ppc)    basic_machine=powerpc-unknown
++      ppc | ppcbe)    basic_machine=powerpc-unknown
+               ;;
+-      ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
++      ppc-* | ppcbe-*)
++              basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppcle | powerpclittle | ppc-le | powerpc-little)
+               basic_machine=powerpcle-unknown
+@@ -938,7 +1027,11 @@ case $basic_machine in
+               basic_machine=i586-unknown
+               os=-pw32
+               ;;
+-      rdos)
++      rdos | rdos64)
++              basic_machine=x86_64-pc
++              os=-rdos
++              ;;
++      rdos32)
+               basic_machine=i386-pc
+               os=-rdos
+               ;;
+@@ -1007,6 +1100,9 @@ case $basic_machine in
+               basic_machine=i860-stratus
+               os=-sysv4
+               ;;
++      strongarm-* | thumb-*)
++              basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
++              ;;
+       sun2)
+               basic_machine=m68000-sun
+               ;;
+@@ -1063,20 +1159,8 @@ case $basic_machine in
+               basic_machine=t90-cray
+               os=-unicos
+               ;;
+-      tic54x | c54x*)
+-              basic_machine=tic54x-unknown
+-              os=-coff
+-              ;;
+-      tic55x | c55x*)
+-              basic_machine=tic55x-unknown
+-              os=-coff
+-              ;;
+-      tic6x | c6x*)
+-              basic_machine=tic6x-unknown
+-              os=-coff
+-              ;;
+       tile*)
+-              basic_machine=tile-unknown
++              basic_machine=$basic_machine-unknown
+               os=-linux-gnu
+               ;;
+       tx39)
+@@ -1146,6 +1230,9 @@ case $basic_machine in
+       xps | xps100)
+               basic_machine=xps100-honeywell
+               ;;
++      xscale-* | xscalee[bl]-*)
++              basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
++              ;;
+       ymp)
+               basic_machine=ymp-cray
+               os=-unicos
+@@ -1154,6 +1241,10 @@ case $basic_machine in
+               basic_machine=z8k-unknown
+               os=-sim
+               ;;
++      z80-*-coff)
++              basic_machine=z80-unknown
++              os=-sim
++              ;;
+       none)
+               basic_machine=none-none
+               os=-none
+@@ -1192,7 +1283,7 @@ case $basic_machine in
+       we32k)
+               basic_machine=we32k-att
+               ;;
+-      sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
++      sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+               basic_machine=sh-unknown
+               ;;
+       sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+@@ -1239,9 +1330,12 @@ esac
+ if [ x"$os" != x"" ]
+ then
+ case $os in
+-        # First match some system type aliases
+-        # that might get confused with valid system types.
++      # First match some system type aliases
++      # that might get confused with valid system types.
+       # -solaris* is a basic system type, with this one exception.
++      -auroraux)
++              os=-auroraux
++              ;;
+       -solaris1 | -solaris1.*)
+               os=`echo $os | sed -e 's|solaris1|sunos4|'`
+               ;;
+@@ -1262,21 +1356,23 @@ case $os in
+       # Each alternative MUST END IN A *, to match a version number.
+       # -sysv* is not here because it comes later, after sysvr4.
+       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+-            | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+-            | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
++            | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
++            | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
++            | -sym* | -kopensolaris* | -plan9* \
+             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+-            | -aos* \
++            | -aos* | -aros* \
+             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+-            | -openbsd* | -solidbsd* \
++            | -bitrig* | -openbsd* | -solidbsd* \
+             | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+             | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+-            | -chorusos* | -chorusrdb* \
+-            | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+-            | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
++            | -chorusos* | -chorusrdb* | -cegcc* \
++            | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
++            | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
++            | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+             | -uxpv* | -beos* | -mpeix* | -udk* \
+             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+@@ -1284,7 +1380,7 @@ case $os in
+             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+-            | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
++            | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
+       # Remember, each alternative MUST END IN *, to match a version number.
+               ;;
+       -qnx*)
+@@ -1323,7 +1419,7 @@ case $os in
+       -opened*)
+               os=-openedition
+               ;;
+-        -os400*)
++      -os400*)
+               os=-os400
+               ;;
+       -wince*)
+@@ -1372,7 +1468,7 @@ case $os in
+       -sinix*)
+               os=-sysv4
+               ;;
+-        -tpf*)
++      -tpf*)
+               os=-tpf
+               ;;
+       -triton*)
+@@ -1408,12 +1504,14 @@ case $os in
+       -aros*)
+               os=-aros
+               ;;
+-      -kaos*)
+-              os=-kaos
+-              ;;
+       -zvmoe)
+               os=-zvmoe
+               ;;
++      -dicos*)
++              os=-dicos
++              ;;
++      -nacl*)
++              ;;
+       -none)
+               ;;
+       *)
+@@ -1436,10 +1534,10 @@ else
+ # system, and we'll never get to this point.
+ case $basic_machine in
+-        score-*)
++      score-*)
+               os=-elf
+               ;;
+-        spu-*)
++      spu-*)
+               os=-elf
+               ;;
+       *-acorn)
+@@ -1451,8 +1549,23 @@ case $basic_machine in
+       arm*-semi)
+               os=-aout
+               ;;
+-        c4x-* | tic4x-*)
+-              os=-coff
++      c4x-* | tic4x-*)
++              os=-coff
++              ;;
++      c8051-*)
++              os=-elf
++              ;;
++      hexagon-*)
++              os=-elf
++              ;;
++      tic54x-*)
++              os=-coff
++              ;;
++      tic55x-*)
++              os=-coff
++              ;;
++      tic6x-*)
++              os=-coff
+               ;;
+       # This must come before the *-dec entry.
+       pdp10-*)
+@@ -1472,14 +1585,11 @@ case $basic_machine in
+               ;;
+       m68000-sun)
+               os=-sunos3
+-              # This also exists in the configure program, but was not the
+-              # default.
+-              # os=-sunos4
+               ;;
+       m68*-cisco)
+               os=-aout
+               ;;
+-        mep-*)
++      mep-*)
+               os=-elf
+               ;;
+       mips*-cisco)
+@@ -1506,7 +1616,7 @@ case $basic_machine in
+       *-ibm)
+               os=-aix
+               ;;
+-      *-knuth)
++      *-knuth)
+               os=-mmixware
+               ;;
+       *-wec)
+@@ -1611,7 +1721,7 @@ case $basic_machine in
+                       -sunos*)
+                               vendor=sun
+                               ;;
+-                      -aix*)
++                      -cnk*|-aix*)
+                               vendor=ibm
+                               ;;
+                       -beos*)
diff --git a/debian/patches/bootstrap-with-gcj.diff b/debian/patches/bootstrap-with-gcj.diff
new file mode 100644 (file)
index 0000000..1b4ea12
--- /dev/null
@@ -0,0 +1,654 @@
+Description: Build the langtools with GCJ. This patch is incomplete but may be
+ used as a starting point for someone really willing to bootstrap OpenJDK 8
+ with GCJ. The compilation fails due to the missing java.nio.file API, several
+ classes would have to be modified to work without this package. It's possible
+ to ignore ~100 errors by skipping the compilation of jdeps (delete the
+ langtools/src/share/classes/com/sun/tools/jdeps directory). The build will then
+ fail on the BUILD_FULL_JAVAC phase.
+Author: Emmanuel Bourg <ebourg@apache.org>
+--- a/common/autoconf/boot-jdk.m4
++++ b/common/autoconf/boot-jdk.m4
+@@ -54,7 +54,7 @@
+             BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
+             # Extra M4 quote needed to protect [] in grep expression.
+-            [FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep  '\"1\.[78]\.'`]
++            [FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep  '\"1\.[5678]\.'`]
+             if test "x$FOUND_VERSION_78" = x; then
+               AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring])
+               AC_MSG_NOTICE([(Your Boot JDK must be version 7 or 8)])
+@@ -278,7 +278,7 @@
+   BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA,java)
+   BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC,javac)
+   BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAH,javah)
+-  BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAP,javap)
++  #BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAP,javap)
+   BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR,jar)
+   BOOTJDK_CHECK_TOOL_IN_BOOTJDK(RMIC,rmic)
+   BOOTJDK_CHECK_TOOL_IN_BOOTJDK(NATIVE2ASCII,native2ascii)
+@@ -286,7 +286,7 @@
+   # Finally, set some other options...
+   # When compiling code to be executed by the Boot JDK, force jdk7 compatibility.
+-  BOOT_JDK_SOURCETARGET="-source 7 -target 7"
++  BOOT_JDK_SOURCETARGET="-source 1.7 -target 1.7"
+   AC_SUBST(BOOT_JDK_SOURCETARGET)
+   AC_SUBST(JAVAC_FLAGS)
+ ])
+--- a/langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java
++++ b/langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java
+@@ -1163,7 +1163,8 @@
+         }
+         protected ZipFormatException(String message, Throwable cause) {
+-            super(message, cause);
++            super(message);
++            initCause(cause);
+         }
+     }
+ }
+--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/JNIWriter.java
++++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/JNIWriter.java
+@@ -218,7 +218,7 @@
+             println(out, cppGuardEnd());
+             println(out, guardEnd(cname));
+         } catch (TypeSignature.SignatureException e) {
+-            throw new IOException(e);
++            throw (IOException) new IOException().initCause(e);
+         }
+     }
+--- a/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java
++++ b/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java
+@@ -40,7 +40,6 @@
+ import java.nio.CharBuffer;
+ import java.nio.charset.CharsetDecoder;
+ import javax.tools.JavaFileObject;
+-import java.text.Normalizer;
+ /**
+  * A subclass of JavaFileObject representing regular files.
+@@ -182,17 +181,6 @@
+         if (name.equals(n)) {
+             return true;
+         }
+-        if (isMacOS && Normalizer.isNormalized(name, Normalizer.Form.NFD)
+-            && Normalizer.isNormalized(n, Normalizer.Form.NFC)) {
+-            // On Mac OS X it is quite possible to file name and class
+-            // name normalized in a different way - in that case we have to normalize file name
+-            // to the Normal Form Compised (NFC)
+-            String normName = Normalizer.normalize(name, Normalizer.Form.NFC);
+-            if (normName.equals(n)) {
+-                this.name = normName;
+-                return true;
+-            }
+-        }
+             if (name.equalsIgnoreCase(n)) {
+             try {
+--- a/langtools/src/share/classes/com/sun/tools/javac/tree/DocPretty.java
++++ b/langtools/src/share/classes/com/sun/tools/javac/tree/DocPretty.java
+@@ -67,7 +67,7 @@
+                 tree.accept(this, null);
+             }
+         } catch (UncheckedIOException ex) {
+-            throw new IOException(ex.getMessage(), ex);
++            throw (IOException) new IOException(ex.getMessage()).initCause(ex);
+         }
+     }
+--- a/make/common/JavaCompilation.gmk
++++ b/make/common/JavaCompilation.gmk
+@@ -549,7 +549,7 @@
+       $$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.$1_batch.tmp)
+       $(ECHO) Compiling `$(WC) $$($1_BIN)/_the.$1_batch.tmp | $(TR) -s ' ' | $(CUT) -f 2 -d ' '` files for $1
+       ($$($1_JVM) $$($1_JAVAC) $$($1_FLAGS) \
+-          -implicit:none -sourcepath "$$($1_SRCROOTSC)" \
++          -sourcepath "$$($1_SRCROOTSC)" \
+           -d $$($1_BIN) $$($1_HEADERS_ARG) @$$($1_BIN)/_the.$1_batch.tmp && \
+       $(MV) $$($1_BIN)/_the.$1_batch.tmp $$($1_BIN)/_the.$1_batch)
+--- a/langtools/src/share/classes/com/sun/tools/javac/util/ServiceLoader.java
++++ b/langtools/src/share/classes/com/sun/tools/javac/util/ServiceLoader.java
+@@ -38,7 +38,6 @@
+ import java.util.List;
+ import java.util.Map;
+ import java.util.NoSuchElementException;
+-import java.util.Objects;
+ import java.util.ServiceConfigurationError;
+@@ -70,7 +69,7 @@
+     private ClassLoader loader;
+     // Cached providers, in instantiation order
+-    private LinkedHashMap<String,S> providers = new LinkedHashMap<>();
++    private LinkedHashMap<String,S> providers = new LinkedHashMap<String,S>();
+     // The current lazy-lookup iterator
+     private LazyIterator lookupIterator;
+@@ -92,7 +91,10 @@
+     }
+     private ServiceLoader(Class<S> svc, ClassLoader cl) {
+-        service = Objects.requireNonNull(svc, "Service interface cannot be null");
++        if (svc == null) {
++            throw new NullPointerException("Service interface cannot be null");
++        }
++        service = svc;
+         loader = (cl == null) ? ClassLoader.getSystemClassLoader() : cl;
+         reload();
+     }
+@@ -170,7 +172,7 @@
+     {
+         InputStream in = null;
+         BufferedReader r = null;
+-        ArrayList<String> names = new ArrayList<>();
++        ArrayList<String> names = new ArrayList<String>();
+         try {
+             // The problem is that by default, streams opened with
+             // u.openInputStream use a cached reference to a JarFile, which
+@@ -362,7 +364,7 @@
+     public static <S> ServiceLoader<S> load(Class<S> service,
+                                             ClassLoader loader)
+     {
+-        return new ServiceLoader<>(service, loader);
++        return new ServiceLoader<S>(service, loader);
+     }
+     /**
+--- a/langtools/src/share/classes/javax/annotation/processing/AbstractProcessor.java
++++ b/langtools/src/share/classes/javax/annotation/processing/AbstractProcessor.java
+@@ -28,7 +28,6 @@
+ import java.util.Set;
+ import java.util.HashSet;
+ import java.util.Collections;
+-import java.util.Objects;
+ import javax.lang.model.element.*;
+ import javax.lang.model.SourceVersion;
+ import javax.tools.Diagnostic;
+@@ -147,7 +146,8 @@
+     public synchronized void init(ProcessingEnvironment processingEnv) {
+         if (initialized)
+             throw new IllegalStateException("Cannot call init more than once.");
+-        Objects.requireNonNull(processingEnv, "Tool provided null ProcessingEnvironment");
++        if (processingEnv == null)
++            throw new NullPointerException("Tool provided null ProcessingEnvironment");
+         this.processingEnv = processingEnv;
+         initialized = true;
+--- a/langtools/src/share/classes/com/sun/tools/javac/util/Pair.java
++++ b/langtools/src/share/classes/com/sun/tools/javac/util/Pair.java
+@@ -25,8 +25,6 @@
+ package com.sun.tools.javac.util;
+-import java.util.Objects;
+-
+ /** A generic class for pairs.
+  *
+  *  <p><b>This is NOT part of any supported API.
+@@ -51,8 +49,12 @@
+     public boolean equals(Object other) {
+         return
+             other instanceof Pair<?,?> &&
+-            Objects.equals(fst, ((Pair<?,?>)other).fst) &&
+-            Objects.equals(snd, ((Pair<?,?>)other).snd);
++            equals(fst, ((Pair<?,?>)other).fst) &&
++            equals(snd, ((Pair<?,?>)other).snd);
++    }
++
++    private boolean equals(Object a, Object b) {
++        return (a == b) || (a != null && a.equals(b));
+     }
+     public int hashCode() {
+--- a/langtools/make/build.properties
++++ b/langtools/make/build.properties
+@@ -68,7 +68,7 @@
+ # set the following to -version to verify the versions of javac being used
+ javac.version.opt =
+ # in time, there should be no exceptions to -Xlint:all
+-javac.lint.opts = -Xlint:all -Werror
++javac.lint.opts = -Xlint:all
+ # options for the <javadoc> task for javac
+ #javadoc.jls3.url=http://java.sun.com/docs/books/jls/
+--- a/langtools/make/BuildLangtools.gmk
++++ b/langtools/make/BuildLangtools.gmk
+@@ -36,7 +36,7 @@
+     JAVAC := $(JAVAC), \
+     SERVER_DIR := $(SJAVAC_SERVER_DIR), \
+     SERVER_JVM := $(SJAVAC_SERVER_JAVA), \
+-    FLAGS := -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -Werror))
++    FLAGS := -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -nowarn -1.7))
+ # javax.tools.JavaCompilerTool isn't really a suffix but this gets the file copied.
+ RESOURCE_SUFFIXES := .gif .xml .css .js javax.tools.JavaCompilerTool
+@@ -175,7 +175,7 @@
+         JAVAC := "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" \
+             -cp $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
+             com.sun.tools.javac.Main, \
+-        FLAGS := -XDignore.symbol.file=true -Xlint:all$(COMMA)-deprecation -Werror, \
++        FLAGS := -XDignore.symbol.file=true -Xlint:all$(COMMA)-deprecation, \
+         SERVER_DIR := $(SJAVAC_SERVER_DIR), \
+         SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
+--- a/langtools/src/share/classes/com/sun/tools/classfile/ClassFile.java
++++ b/langtools/src/share/classes/com/sun/tools/classfile/ClassFile.java
+@@ -28,8 +28,7 @@
+ import java.io.File;
+ import java.io.IOException;
+ import java.io.InputStream;
+-import java.nio.file.Files;
+-import java.nio.file.Path;
++import java.io.FileInputStream;
+ import static com.sun.tools.classfile.AccessFlags.*;
+@@ -44,26 +43,16 @@
+ public class ClassFile {
+     public static ClassFile read(File file)
+             throws IOException, ConstantPoolException {
+-        return read(file.toPath(), new Attribute.Factory());
++        return read(file, new Attribute.Factory());
+     }
+-    public static ClassFile read(Path input)
+-            throws IOException, ConstantPoolException {
+-        return read(input, new Attribute.Factory());
+-    }
+-
+-    public static ClassFile read(Path input, Attribute.Factory attributeFactory)
++    public static ClassFile read(File file, Attribute.Factory attributeFactory)
+             throws IOException, ConstantPoolException {
+-        try (InputStream in = Files.newInputStream(input)) {
++        try (InputStream in = new FileInputStream(file)) {
+             return new ClassFile(in, attributeFactory);
+         }
+     }
+-    public static ClassFile read(File file, Attribute.Factory attributeFactory)
+-            throws IOException, ConstantPoolException {
+-        return read(file.toPath(), attributeFactory);
+-    }
+-
+     public static ClassFile read(InputStream in)
+             throws IOException, ConstantPoolException {
+         return new ClassFile(in, new Attribute.Factory());
+--- a/langtools/src/share/classes/com/sun/tools/javac/nio/PathFileManager.java
++++ b/langtools/src/share/classes/com/sun/tools/javac/nio/PathFileManager.java
+@@ -25,10 +25,8 @@
+ package com.sun.tools.javac.nio;
++import java.io.File;
+ import java.io.IOException;
+-import java.nio.file.FileSystem;
+-import java.nio.file.FileSystems;
+-import java.nio.file.Path;
+ import javax.tools.FileObject;
+ import javax.tools.JavaFileManager;
+ import javax.tools.JavaFileObject;
+@@ -52,13 +50,13 @@
+      * Get the default file system used to create paths. If no value has been
+      * set, the default file system is {@link FileSystems#getDefault}.
+      */
+-    FileSystem getDefaultFileSystem();
++    //FileSystem getDefaultFileSystem();
+     /**
+      * Set the default file system used to create paths.
+      * @param fs the default file system used to create any new paths.
+      */
+-    void setDefaultFileSystem(FileSystem fs);
++    //void setDefaultFileSystem(FileSystem fs);
+     /**
+      * Get file objects representing the given files.
+@@ -69,7 +67,7 @@
+      * a directory
+      */
+     Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(
+-        Iterable<? extends Path> paths);
++        Iterable<File> paths);
+     /**
+      * Get file objects representing the given paths.
+@@ -86,7 +84,7 @@
+      * @throws NullPointerException if the given array contains null
+      * elements
+      */
+-    Iterable<? extends JavaFileObject> getJavaFileObjects(Path... paths);
++    Iterable<? extends JavaFileObject> getJavaFileObjects(File... paths);
+     /**
+      * Return the Path for a file object that has been obtained from this
+@@ -97,7 +95,7 @@
+      * @throws IllegalArgumentException is the file object was not obtained from
+      * from this file manager.
+      */
+-    Path getPath(FileObject fo);
++    File getPath(FileObject fo);
+     /**
+      * Get the search path associated with the given location.
+@@ -107,7 +105,7 @@
+      * associated search path
+      * @see #setLocation
+      */
+-    Iterable<? extends Path> getLocation(Location location);
++    Iterable<File> getLocation(Location location);
+     /**
+      * Associate the given search path with the given location.  Any
+@@ -122,5 +120,5 @@
+      * @throws IOException if location is an output location and searchpath
+      * does not represent an existing directory
+      */
+-    void setLocation(Location location, Iterable<? extends Path> searchPath) throws IOException;
++    void setLocation(Location location, Iterable<File> searchPath) throws IOException;
+ }
+--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/PathDocFileFactory.java
++++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/PathDocFileFactory.java
+@@ -28,15 +28,13 @@
+ import java.io.BufferedInputStream;
+ import java.io.BufferedOutputStream;
+ import java.io.BufferedWriter;
++import java.io.File;
+ import java.io.IOException;
+ import java.io.InputStream;
+ import java.io.OutputStream;
+ import java.io.OutputStreamWriter;
+ import java.io.UnsupportedEncodingException;
+ import java.io.Writer;
+-import java.nio.file.DirectoryStream;
+-import java.nio.file.Files;
+-import java.nio.file.Path;
+ import java.util.ArrayList;
+ import java.util.Arrays;
+ import java.util.LinkedHashSet;
+@@ -65,7 +63,7 @@
+  */
+ class PathDocFileFactory extends DocFileFactory {
+     private final PathFileManager fileManager;
+-    private final Path destDir;
++    private final File destDir;
+     public PathDocFileFactory(Configuration configuration) {
+         super(configuration);
+@@ -75,7 +73,7 @@
+                 || !fileManager.hasLocation(DocumentationTool.Location.DOCUMENTATION_OUTPUT)) {
+             try {
+                 String dirName = configuration.destDirName.isEmpty() ? "." : configuration.destDirName;
+-                Path dir = fileManager.getDefaultFileSystem().getPath(dirName);
++                File dir = new File(dirName);
+                 fileManager.setLocation(DocumentationTool.Location.DOCUMENTATION_OUTPUT, Arrays.asList(dir));
+             } catch (IOException e) {
+                 throw new DocletAbortException(e);
+@@ -86,11 +84,11 @@
+     }
+     public DocFile createFileForDirectory(String file) {
+-        return new StandardDocFile(fileManager.getDefaultFileSystem().getPath(file));
++        return new StandardDocFile(new File(file));
+     }
+     public DocFile createFileForInput(String file) {
+-        return new StandardDocFile(fileManager.getDefaultFileSystem().getPath(file));
++        return new StandardDocFile(new File(file));
+     }
+     public DocFile createFileForOutput(DocPath path) {
+@@ -104,10 +102,10 @@
+         Set<DocFile> files = new LinkedHashSet<DocFile>();
+         if (fileManager.hasLocation(location)) {
+-            for (Path f: fileManager.getLocation(location)) {
+-                if (Files.isDirectory(f)) {
+-                    f = f.resolve(path.getPath());
+-                    if (Files.exists(f))
++            for (File f: fileManager.getLocation(location)) {
++                if (f.isDirectory()) {
++                    f = new File(f, path.getPath());
++                    if (f.exists())
+                         files.add(new StandardDocFile(f));
+                 }
+             }
+@@ -116,10 +114,10 @@
+     }
+     class StandardDocFile extends DocFile {
+-        private Path file;
++        private File file;
+         /** Create a StandardDocFile for a given file. */
+-        private StandardDocFile(Path file) {
++        private StandardDocFile(File file) {
+             super(configuration);
+             this.file = file;
+         }
+@@ -127,7 +125,7 @@
+         /** Create a StandardDocFile for a given location and relative path. */
+         private StandardDocFile(Location location, DocPath path) {
+             super(configuration, location, path);
+-            this.file = destDir.resolve(path.getPath());
++            this.file = new File(destDir, path.getPath());
+         }
+         /** Open an input stream for the file. */
+@@ -169,22 +167,22 @@
+         /** Return true if the file can be read. */
+         public boolean canRead() {
+-            return Files.isReadable(file);
++            return file.canRead();
+         }
+         /** Return true if the file can be written. */
+         public boolean canWrite() {
+-            return Files.isWritable(file);
++            return file.canWrite();
+         }
+         /** Return true if the file exists. */
+         public boolean exists() {
+-            return Files.exists(file);
++            return file.exists();
+         }
+         /** Return the base name (last component) of the file name. */
+         public String getName() {
+-            return file.getFileName().toString();
++            return file.getName();
+         }
+         /** Return the file system path for this file. */
+@@ -199,12 +197,12 @@
+         /** Return true is file identifies a directory. */
+         public boolean isDirectory() {
+-            return Files.isDirectory(file);
++            return file.isDirectory();
+         }
+         /** Return true is file identifies a file. */
+         public boolean isFile() {
+-            return Files.isRegularFile(file);
++            return file.exists() && !file.isDirectory();
+         }
+         /** Return true if this file is the same as another. */
+@@ -212,32 +210,21 @@
+             if (!(other instanceof StandardDocFile))
+                 return false;
+-            try {
+-                return Files.isSameFile(file, ((StandardDocFile) other).file);
+-            } catch (IOException e) {
+-                return false;
+-            }
++            return file.equals(((StandardDocFile) other).file);
+         }
+         /** If the file is a directory, list its contents. */
+         public Iterable<DocFile> list() throws IOException {
+             List<DocFile> files = new ArrayList<DocFile>();
+-            try (DirectoryStream<Path> ds = Files.newDirectoryStream(file)) {
+-                for (Path f: ds) {
+-                    files.add(new StandardDocFile(f));
+-                }
++            for (File f : file.listFiles()) {
++                files.add(new StandardDocFile(f));
+             }
+             return files;
+         }
+         /** Create the file as a directory, including any parent directories. */
+         public boolean mkdirs() {
+-            try {
+-                Files.createDirectories(file);
+-                return true;
+-            } catch (IOException e) {
+-                return false;
+-            }
++            return file.mkdirs();
+         }
+         /**
+@@ -258,7 +245,7 @@
+          */
+         public DocFile resolve(String p) {
+             if (location == null && path == null) {
+-                return new StandardDocFile(file.resolve(p));
++                return new StandardDocFile(new File(file, p));
+             } else {
+                 return new StandardDocFile(location, path.resolve(p));
+             }
+@@ -272,7 +259,7 @@
+         public DocFile resolveAgainst(Location locn) {
+             if (locn != DocumentationTool.Location.DOCUMENTATION_OUTPUT)
+                 throw new IllegalArgumentException();
+-            return new StandardDocFile(destDir.resolve(file));
++            return new StandardDocFile(new File(destDir, file.toString()));
+         }
+         /** Return a string to identify the contents of this object,
+@@ -291,7 +278,7 @@
+             return sb.toString();
+         }
+-        private JavaFileObject getJavaFileObjectForInput(Path file) {
++        private JavaFileObject getJavaFileObjectForInput(File file) {
+             return fileManager.getJavaFileObjects(file).iterator().next();
+         }
+--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java
++++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java
+@@ -196,7 +196,8 @@
+     }
+     private static String encodeURL(String url) {
+-        byte[] urlBytes = url.getBytes(Charset.forName("UTF-8"));
++        try {
++        byte[] urlBytes = url.getBytes("UTF-8");
+         StringBuilder sb = new StringBuilder();
+         for (int i = 0; i < urlBytes.length; i++) {
+             int c = urlBytes[i];
+@@ -207,6 +208,9 @@
+             }
+         }
+         return sb.toString();
++        } catch (java.io.UnsupportedEncodingException e) {
++            throw new RuntimeException(e);
++        }
+     }
+     /**
+--- a/langtools/src/share/classes/com/sun/tools/classfile/ReferenceFinder.java
++++ b/langtools/src/share/classes/com/sun/tools/classfile/ReferenceFinder.java
+@@ -28,7 +28,6 @@
+ import java.util.ArrayList;
+ import java.util.HashSet;
+ import java.util.List;
+-import java.util.Objects;
+ import java.util.Set;
+ import com.sun.tools.classfile.Instruction.TypeKind;
+ import static com.sun.tools.classfile.ConstantPool.*;
+@@ -77,8 +76,11 @@
+      * Constructor.
+      */
+     public ReferenceFinder(Filter filter, Visitor visitor) {
+-        this.filter = Objects.requireNonNull(filter);
+-        this.visitor = Objects.requireNonNull(visitor);
++        if (filter == null || visitor == null) {
++            throw new NullPointerException();
++        }
++        this.filter = filter;
++        this.visitor = visitor;
+     }
+     /**
+--- a/langtools/src/share/classes/com/sun/tools/javac/sym/Profiles.java
++++ b/langtools/src/share/classes/com/sun/tools/javac/sym/Profiles.java
+@@ -25,13 +25,14 @@
+ package com.sun.tools.javac.sym;
+ import java.io.BufferedInputStream;
++import java.io.BufferedReader;
+ import java.io.BufferedWriter;
+ import java.io.File;
+ import java.io.FileInputStream;
+ import java.io.FileWriter;
++import java.io.InputStreamReader;
+ import java.io.IOException;
+ import java.nio.charset.Charset;
+-import java.nio.file.Files;
+ import java.util.HashMap;
+ import java.util.Map;
+ import java.util.Properties;
+@@ -59,7 +60,9 @@
+                 lists.put(i, new TreeSet<String>());
+             File rt_jar_lst = new File(args[1]);
+-            for (String line: Files.readAllLines(rt_jar_lst.toPath(), Charset.defaultCharset())) {
++            BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(rt_jar_lst)));
++            String line;
++            while ((line = reader.readLine()) != null) {
+                 if (line.endsWith(".class")) {
+                     String type = line.substring(0, line.length() - 6);
+                     int profile = p.getProfile(type);
+@@ -67,6 +70,7 @@
+                         lists.get(i).add(type);
+                 }
+             }
++            reader.close();
+             for (int i = 1; i <= 4; i++) {
+                 BufferedWriter out = new BufferedWriter(new FileWriter(i + ".txt"));
+--- a/langtools/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java
++++ b/langtools/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java
+@@ -58,7 +58,11 @@
+     }
+     public String getValue() {
+-        return new String(debug_extension, UTF8);
++        try {
++            return new String(debug_extension, "UTF-8");
++        } catch (java.io.UnsupportedEncodingException e) {
++            throw new RuntimeException(e);
++        }
+     }
+     public <R, D> R accept(Visitor<R, D> visitor, D data) {
+--- a/langtools/src/share/classes/com/sun/tools/javac/util/JavacMessages.java
++++ b/langtools/src/share/classes/com/sun/tools/javac/util/JavacMessages.java
+@@ -121,7 +121,7 @@
+                     ResourceBundle rb = ResourceBundle.getBundle(bundleName, locale);
+                     bundleList = bundleList.prepend(rb);
+                 } catch (MissingResourceException e) {
+-                    throw new InternalError("Cannot find javac resource bundle for locale " + locale);
++                    //throw (Error) new InternalError("Cannot find javac resource bundle for locale " + locale).initCause(e);
+                 }
+             }
+             bundleCache.put(locale, new SoftReference<List<ResourceBundle>>(bundleList));
diff --git a/debian/patches/cacao-armv4.diff b/debian/patches/cacao-armv4.diff
new file mode 100644 (file)
index 0000000..791f837
--- /dev/null
@@ -0,0 +1,100 @@
+Revert the following cacao change, when building for armel/armv4:
+
+# HG changeset patch
+# User Stefan Ring <stefan@complang.tuwien.ac.at>
+# Date 1344071656 -7200
+# Node ID 73ffc3dc8c16664613f878a131ded372b2099191
+# Parent e153dd602364e16b3f2b275d91cc683c4e3df2bb
+arm: Thumb interworking should work on armv5
+* src/vm/jit/arm/asmpart.S: Use Thumb interworking-aware instructions for transfer to C code.
+* src/vm/jit/arm/codegen.c: Likewise, for ICMD_BUILTIN.
+* src/vm/jit/arm/codegen.h: Define macros for BL and BLX instructions.
+
+--- cacao/cacao/src/vm/jit/arm/asmpart.S.orig  2013-01-10 17:45:14.000000000 +0100
++++ cacao/cacao/src/vm/jit/arm/asmpart.S       2013-02-08 17:24:23.744533547 +0100
+@@ -1,6 +1,6 @@
+ /* src/vm/jit/arm/asmpart.S - Java-C interface functions for ARM
+-   Copyright (C) 1996-2012
++   Copyright (C) 1996-2005, 2006, 2007, 2008
+    CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
+    This file is part of CACAO.
+@@ -239,7 +239,7 @@
+       stmfd sp!, {lr}                     /* save return address                */
+       add   a0, sp, #(1*4)                /* pass java sp                       */
+       mov   a1, lr                        /* pass exception address             */
+-      blx   exceptions_asm_new_abstractmethoderror
++      bl    exceptions_asm_new_abstractmethoderror
+       ldmfd sp!, {lr}                     /* restore return address             */
+       mov   xptr, res1                    /* get exception pointer              */
+@@ -281,7 +281,7 @@
+       swi   __ARM_NR_cacheflush
+ #endif
+-      bx    lr
++      mov   pc, lr
+ /* disable exec-stacks ********************************************************/
+--- cacao/cacao/src/vm/jit/arm/codegen.h.orig  2013-01-10 17:45:14.000000000 +0100
++++ cacao/cacao/src/vm/jit/arm/codegen.h       2013-02-08 17:24:23.744533547 +0100
+@@ -1,6 +1,6 @@
+ /* src/vm/jit/arm/codegen.h - code generation macros and definitions for ARM
+-   Copyright (C) 1996-2012
++   Copyright (C) 1996-2005, 2006, 2007, 2008, 2010
+    CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
+    This file is part of CACAO.
+@@ -215,19 +215,6 @@
+     } while (0)
+-/* branch and branch with link X (instruction set exchange)
+-   cond ... conditional execution
+-   L ...... branch with link (L=1)
+-   reg .... register
+-*/
+-
+-#define M_BRAX(cond,L,reg) \
+-    do { \
+-              *((u4 *) cd->mcodeptr) = (((cond) << 28) | (0x12 << 20) | (0xfff << 8) | (L << 5) | (1 << 4) | ((reg) & 0xf)); \
+-              cd->mcodeptr += 4; \
+-    } while (0)
+-
+-
+ /* branch and branch with link: M_BRA
+    cond ... conditional execution
+    L ...... branch with link (L=1)
+@@ -490,9 +477,6 @@
+ #define M_BLO(off)         M_BRA(COND_CC,0,off)
+ #define M_BLS(off)         M_BRA(COND_LS,0,off)
+-#define M_BX(a)            M_BRAX(COND_AL,0,a)
+-#define M_BLX(a)           M_BRAX(COND_AL,1,a)
+-
+ /******************************************************************************/
+ /* macros for load and store instructions *************************************/
+--- cacao/cacao/src/vm/jit/arm/codegen.c.orig  2013-01-10 17:45:14.000000000 +0100
++++ cacao/cacao/src/vm/jit/arm/codegen.c       2013-02-08 17:24:23.748533547 +0100
+@@ -1,6 +1,6 @@
+ /* src/vm/jit/arm/codegen.c - machine code generator for Arm
+-   Copyright (C) 1996-2012
++   Copyright (C) 1996-2011
+    CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
+    This file is part of CACAO.
+@@ -1733,7 +1733,8 @@
+                       /* generate the actual call */
+-                      M_BLX(REG_PV);
++                      M_MOV(REG_LR, REG_PC);
++                      M_MOV(REG_PC, REG_PV);
+                       break;
diff --git a/debian/patches/compare-pointer-with-literal.patch b/debian/patches/compare-pointer-with-literal.patch
new file mode 100644 (file)
index 0000000..623d919
--- /dev/null
@@ -0,0 +1,11 @@
+--- jdk8/jdk/src/solaris/native/sun/awt/awt_Font.c     2014-06-23 01:01:34.000000000 +0200
++++ jdk8/jdk/src/solaris/native/sun/awt/awt_Font.c     2014-07-08 23:22:33.235559628 +0200
+@@ -502,7 +502,7 @@
+             jio_snprintf(fdata->flist[i].xlfd, strlen(nativename) + 10,
+                          nativename, size * 10);
+-            if (nativename != NULL && nativename != "")
++            if (nativename && !strcmp(nativename, ""))
+                 JNU_ReleaseStringPlatformChars(env, fontDescriptorName, (const char *) nativename);
+             /*
diff --git a/debian/patches/default-jvm-cfg-aarch64.diff b/debian/patches/default-jvm-cfg-aarch64.diff
new file mode 100644 (file)
index 0000000..6a07e4e
--- /dev/null
@@ -0,0 +1,22 @@
+--- openjdk/jdk/src/share/bin/java.c.orig
++++ openjdk/jdk/src/share/bin/java.c
+@@ -1580,7 +1580,7 @@
+ ReadKnownVMs(const char *jvmCfgName, jboolean speculative)
+ {
+     FILE *jvmCfg;
+-    char line[MAXPATHLEN+20];
++    char line[MAXPATHLEN+30];
+     int cnt = 0;
+     int lineno = 0;
+     jlong start, end;
+@@ -1595,6 +1595,10 @@
+     jvmCfg = fopen(jvmCfgName, "r");
+     if (jvmCfg == NULL) {
++      strcat(jvmCfgName, "-default");
++      jvmCfg = fopen(jvmCfgName, "r");
++    }
++    if (jvmCfg == NULL) {
+       if (!speculative) {
+         JLI_ReportErrorMessage(CFG_ERROR6, jvmCfgName);
+         exit(1);
diff --git a/debian/patches/default-jvm-cfg-default.diff b/debian/patches/default-jvm-cfg-default.diff
new file mode 100644 (file)
index 0000000..cf6bdcb
--- /dev/null
@@ -0,0 +1,24 @@
+Index: b/jdk/src/share/bin/java.c
+===================================================================
+--- a/jdk/src/share/bin/java.c
++++ b/jdk/src/share/bin/java.c
+@@ -1628,7 +1628,7 @@ jint
+ ReadKnownVMs(const char *jvmCfgName, jboolean speculative)
+ {
+     FILE *jvmCfg;
+-    char line[MAXPATHLEN+20];
++    char line[MAXPATHLEN+30];
+     int cnt = 0;
+     int lineno = 0;
+     jlong start, end;
+@@ -1643,6 +1643,10 @@ ReadKnownVMs(const char *jvmCfgName, jbo
+     jvmCfg = fopen(jvmCfgName, "r");
+     if (jvmCfg == NULL) {
++      strcat(jvmCfgName, "-default");
++      jvmCfg = fopen(jvmCfgName, "r");
++    }
++    if (jvmCfg == NULL) {
+       if (!speculative) {
+         JLI_ReportErrorMessage(CFG_ERROR6, jvmCfgName);
+         exit(1);
diff --git a/debian/patches/disable-doclint-by-default.diff b/debian/patches/disable-doclint-by-default.diff
new file mode 100644 (file)
index 0000000..65f6294
--- /dev/null
@@ -0,0 +1,56 @@
+Description: Disable doclint by default
+ OpenJDK 8 adds and enables doclint by default. This catches issues in
+ javadoc comments. It is too strict, breaks javadoc compilation and, in
+ general, breaks the build for old code known to build with previous
+ versions of OpenJDK.
+ .
+ See: http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html
+ See: https://lists.fedoraproject.org/pipermail/java-devel/2014-February/005150.html
+Author: Andrew John Hughes <ahughes@redhat.com>
+Forwarded: not-needed
+--- a/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
++++ b/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java
+@@ -811,10 +811,9 @@
+             doclintOpts.add(opt == null ? DocLint.XMSGS_OPTION : DocLint.XMSGS_CUSTOM_PREFIX + opt);
+         }
+-        if (doclintOpts.isEmpty()) {
+-            doclintOpts.add(DocLint.XMSGS_OPTION);
+-        } else if (doclintOpts.size() == 1
+-                && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX + "none")) {
++        if (doclintOpts.isEmpty() ||
++          (doclintOpts.size() == 1
++           && doclintOpts.get(0).equals(DocLint.XMSGS_CUSTOM_PREFIX + "none"))) {
+             return;
+         }
+--- a/langtools/test/tools/javadoc/doclint/DocLintTest.java
++++ b/langtools/test/tools/javadoc/doclint/DocLintTest.java
+@@ -130,12 +130,12 @@
+         };
+         test(Collections.<String>emptyList(),
+-                Main.Result.ERROR,
+-                EnumSet.of(Message.DL_ERR9A, Message.DL_WRN12A));
++                Main.Result.OK,
++                EnumSet.of(Message.JD_WRN10, Message.JD_WRN13));
+         test(Arrays.asList(rawDiags),
+-                Main.Result.ERROR,
+-                EnumSet.of(Message.DL_ERR9, Message.DL_WRN12));
++                Main.Result.OK,
++                EnumSet.of(Message.JD_WRN10, Message.JD_WRN13));
+         test(Arrays.asList("-Xdoclint:none"),
+                 Main.Result.OK,
+@@ -158,8 +158,8 @@
+                 EnumSet.of(Message.DL_WRN12));
+         test(Arrays.asList(rawDiags, "-private"),
+-                Main.Result.ERROR,
+-                EnumSet.of(Message.DL_ERR6, Message.DL_ERR9, Message.DL_WRN12));
++                Main.Result.OK,
++                EnumSet.of(Message.JD_WRN10, Message.JD_WRN13));
+         test(Arrays.asList(rawDiags, "-Xdoclint:syntax", "-private"),
+                 Main.Result.ERROR,
diff --git a/debian/patches/dnd-files.patch b/debian/patches/dnd-files.patch
new file mode 100644 (file)
index 0000000..c9729ff
--- /dev/null
@@ -0,0 +1,22 @@
+Index: b/jdk/src/solaris/classes/sun/awt/X11/XDataTransferer.java
+===================================================================
+--- a/jdk/src/solaris/classes/sun/awt/X11/XDataTransferer.java
++++ b/jdk/src/solaris/classes/sun/awt/X11/XDataTransferer.java
+@@ -281,14 +281,14 @@ public class XDataTransferer extends Dat
+             reader = new BufferedReader(new InputStreamReader(stream, charset));
+             String line;
+             ArrayList<URI> uriList = new ArrayList<URI>();
+-            URI uri;
+             while ((line = reader.readLine()) != null) {
+                 try {
+-                    uri = new URI(line);
++                    if (!"\0".equals(line)) {
++                        uriList.add(new URI(line));
++                    }
+                 } catch (URISyntaxException uriSyntaxException) {
+                     throw new IOException(uriSyntaxException);
+                 }
+-                uriList.add(uri);
+             }
+             return uriList.toArray(new URI[uriList.size()]);
+         } finally {
diff --git a/debian/patches/dont-strip-images.diff b/debian/patches/dont-strip-images.diff
new file mode 100644 (file)
index 0000000..28c920c
--- /dev/null
@@ -0,0 +1,13 @@
+--- src/common/autoconf/toolchain.m4
++++ src/common/autoconf/toolchain.m4
+@@ -542,7 +542,9 @@
+     LDEXE="$CC"
+     LDCXX="$CXX"
+     LDEXECXX="$CXX"
+-    POST_STRIP_CMD="$STRIP -g"
++    if test -z "$POST_STRIP_CMD" ; then
++      POST_STRIP_CMD="$STRIP -g"
++    fi
+     # Linking is different on MacOSX
+     if test "x$OPENJDK_TARGET_OS" = xmacosx; then
diff --git a/debian/patches/enumipv6-fix.patch b/debian/patches/enumipv6-fix.patch
new file mode 100644 (file)
index 0000000..82f73c5
--- /dev/null
@@ -0,0 +1,11 @@
+--- openjdk/jdk/src/solaris/native/java/net/NetworkInterface.c~        2012-02-15 09:26:50.000000000 +0100
++++ openjdk/jdk/src/solaris/native/java/net/NetworkInterface.c 2012-02-26 14:13:22.602107361 +0100
+@@ -1105,7 +1105,7 @@
+     uint8_t ipv6addr[16];
+     if ((f = fopen(_PATH_PROCNET_IFINET6, "r")) != NULL) {
+-        while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %20s\n",
++        while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %x %x %x %x %20s\n",
+                          addr6p[0], addr6p[1], addr6p[2], addr6p[3], addr6p[4], addr6p[5], addr6p[6], addr6p[7],
+                          &if_idx, &plen, &scope, &dad_status, devname) != EOF) {
diff --git a/debian/patches/fix-jtreg-location.diff b/debian/patches/fix-jtreg-location.diff
new file mode 100644 (file)
index 0000000..321b638
--- /dev/null
@@ -0,0 +1,44 @@
+Description: Fixes the path to jtreg on Debian
+Author: Emmanuel Bourg <ebourg@apache.org>
+Forwarded: no
+Index: b/common/autoconf/toolchain.m4
+===================================================================
+--- a/common/autoconf/toolchain.m4
++++ b/common/autoconf/toolchain.m4
+@@ -1218,7 +1218,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG],
+       BASIC_FIXUP_PATH([JT_HOME])
+       # jtreg win32 script works for everybody
+-      JTREGEXE="$JT_HOME/win32/bin/jtreg"
++      JTREGEXE="/usr/bin/jtreg"
+       if test ! -f "$JTREGEXE"; then
+         AC_MSG_ERROR([JTReg executable does not exist: $JTREGEXE])
+Index: b/hotspot/test/Makefile
+===================================================================
+--- a/hotspot/test/Makefile
++++ b/hotspot/test/Makefile
+@@ -176,7 +176,7 @@ ifdef TESTDIRS
+ endif
+ # Default JTREG to run (win32 script works for everybody)
+-JTREG = $(JT_HOME)/win32/bin/jtreg
++JTREG = /usr/bin/jtreg
+ # Option to tell jtreg to not run tests marked with "ignore"
+ ifeq ($(PLATFORM), windows)
+Index: b/langtools/test/Makefile
+===================================================================
+--- a/langtools/test/Makefile
++++ b/langtools/test/Makefile
+@@ -93,8 +93,8 @@ ifdef JPRT_JTREG_HOME
+ else
+   JTREG_HOME = $(SLASH_JAVA)/re/jtreg/4.1/promoted/latest/binaries/jtreg
+ endif
+-JTREG = $(JTREG_HOME)/$(JT_PLATFORM)/bin/jtreg
+-JTDIFF = $(JTREG_HOME)/$(JT_PLATFORM)/bin/jtdiff
++JTREG = /usr/bin/jtreg
++JTDIFF = /usr/bin/jtdiff
+ # Default JCK to run
+ ifdef JPRT_JCK_HOME
diff --git a/debian/patches/fontconfig-arphic-uming.diff b/debian/patches/fontconfig-arphic-uming.diff
new file mode 100644 (file)
index 0000000..106029a
--- /dev/null
@@ -0,0 +1,244 @@
+--- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.orig        2008-10-12 10:42:26.000000000 +0000
++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties     2008-10-12 10:43:49.000000000 +0000
+@@ -25,107 +25,156 @@
+ # Version
+-# Uses Ubuntu 6.10 (Edgy) fonts and file paths.
++# Used for Ubuntu 6.10 (edgy), Ubuntu 7.04 (feisty), Ubuntu 7.10 (gutsy),
++# Debian 4.0 (etch), Debian 5.0 (lenny) fonts and file paths.
+ version=1
+ # Component Font Mappings
++allfonts.chinese-gb18030=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1
++allfonts.chinese-gb18030.motif=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1
++allfonts.chinese-big5=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1
++allfonts.chinese-big5.motif=-misc-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1
++
+ dialog.plain.latin-1=DejaVu Sans
+-dialog.plain.japanese-x0208=Kochi Gothic
+-dialog.plain.korean=Baekmuk Dotum
++dialog.plain.latin-1.motif=LuxiSans-Regular
++dialog.plain.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialog.plain.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
++dialog.plain.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
+ dialog.bold.latin-1=DejaVu Sans Bold
+-dialog.bold.japanese-x0208=Kochi Gothic
+-dialog.bold.korean=Baekmuk Dotum
++dialog.bold.latin-1.motif=LuxiSans-Bold
++dialog.bold.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialog.bold.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
++dialog.bold.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
+ dialog.italic.latin-1=DejaVu Sans Oblique
+-dialog.italic.japanese-x0208=Kochi Gothic
+-dialog.italic.korean=Baekmuk Dotum
++dialog.italic.latin-1.motif=LuxiSans-Oblique
++dialog.italic.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialog.italic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
++dialog.italic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
+ dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
+-dialog.bolditalic.japanese-x0208=Kochi Gothic
+-dialog.bolditalic.korean=Baekmuk Dotum
+-
++dialog.bolditalic.latin-1.motif=LuxiSans-BoldOblique
++dialog.bolditalic.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialog.bolditalic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
++dialog.bolditalic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
+ sansserif.plain.latin-1=DejaVu Sans
+-sansserif.plain.japanese-x0208=Kochi Gothic
+-sansserif.plain.korean=Baekmuk Dotum
++sansserif.plain.latin-1.motif=LuxiSans-Regular
++sansserif.plain.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++sansserif.plain.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
++sansserif.plain.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
+ sansserif.bold.latin-1=DejaVu Sans Bold
+-sansserif.bold.japanese-x0208=Kochi Gothic
+-sansserif.bold.korean=Baekmuk Dotum
++sansserif.bold.latin-1.motif=LuxiSans-Bold
++sansserif.bold.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++sansserif.bold.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
++sansserif.bold.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
+ sansserif.italic.latin-1=DejaVu Sans Oblique
+-sansserif.italic.japanese-x0208=Kochi Gothic
+-sansserif.italic.korean=Baekmuk Dotum
++sansserif.italic.latin-1.motif=LuxiSans-Oblique
++sansserif.italic.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++sansserif.italic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
++sansserif.italic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
+ sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
+-sansserif.bolditalic.japanese-x0208=Kochi Gothic
+-sansserif.bolditalic.korean=Baekmuk Dotum
+-
++sansserif.bolditalic.latin-1.motif=LuxiSans-BoldOblique
++sansserif.bolditalic.japanese-x0208=-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++sansserif.bolditalic.korean=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
++sansserif.bolditalic.korean.motif=-misc-baekmuk gulim-medium-r-normal--*-%d-*-*-c-*-*-*
+ serif.plain.latin-1=DejaVu Serif
+-serif.plain.japanese-x0208=Kochi Mincho
+-serif.plain.korean=Baekmuk Batang
++serif.plain.latin-1.motif=LuxiSerif-Regular
++serif.plain.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++serif.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
++serif.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
+ serif.bold.latin-1=DejaVu Serif Bold
+-serif.bold.japanese-x0208=Kochi Mincho
+-serif.bold.korean=Baekmuk Batang
++serif.bold.latin-1.motif=LuxiSerif-Bold
++serif.bold.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++serif.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
++serif.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
+ serif.italic.latin-1=DejaVu Serif Oblique
+-serif.italic.japanese-x0208=Kochi Mincho
+-serif.italic.korean=Baekmuk Batang
++serif.italic.latin-1.motif=LuxiSerif-Oblique
++serif.italic.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++serif.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
++serif.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
+ serif.bolditalic.latin-1=DejaVu Serif Bold Oblique
+-serif.bolditalic.japanese-x0208=Kochi Mincho
+-serif.bolditalic.korean=Baekmuk Batang
+-
++serif.bolditalic.latin-1.motif=LuxiSerif-BoldOblique
++serif.bolditalic.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++serif.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
++serif.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
+ monospaced.plain.latin-1=DejaVu Sans Mono
+-monospaced.plain.japanese-x0208=Kochi Gothic
+-monospaced.plain.korean=Baekmuk Dotum
++monospaced.plain.latin-1.motif=LuxiMono-Regular
++monospaced.plain.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++monospaced.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
++monospaced.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
+ monospaced.bold.latin-1=DejaVu Sans Mono Bold
+-monospaced.bold.japanese-x0208=Kochi Gothic
+-monospaced.bold.korean=Baekmuk Dotum
++monospaced.bold.latin-1.motif=LuxiMono-Bold
++monospaced.bold.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++monospaced.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
++monospaced.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
+ monospaced.italic.latin-1=DejaVu Sans Mono Oblique
+-monospaced.italic.japanese-x0208=Kochi Gothic
+-monospaced.italic.korean=Baekmuk Dotum
++monospaced.italic.latin-1.motif=LuxiMono-Oblique
++monospaced.italic.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++monospaced.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
++monospaced.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
+ monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
+-monospaced.bolditalic.japanese-x0208=Kochi Gothic
+-monospaced.bolditalic.korean=Baekmuk Dotum
+-
++monospaced.bolditalic.latin-1.motif=LuxiMono-BoldOblique
++monospaced.bolditalic.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++monospaced.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
++monospaced.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
+ dialoginput.plain.latin-1=DejaVu Sans Mono
+-dialoginput.plain.japanese-x0208=Kochi Gothic
+-dialoginput.plain.korean=Baekmuk Dotum
++dialoginput.plain.latin-1.motif=LuxiMono-Regular
++dialoginput.plain.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialoginput.plain.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
++dialoginput.plain.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
+ dialoginput.bold.latin-1=DejaVu Sans Mono Bold
+-dialoginput.bold.japanese-x0208=Kochi Gothic
+-dialoginput.bold.korean=Baekmuk Dotum
++dialoginput.bold.latin-1.motif=LuxiMono-Bold
++dialoginput.bold.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialoginput.bold.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
++dialoginput.bold.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
+ dialoginput.italic.latin-1=DejaVu Sans Mono Oblique
+-dialoginput.italic.japanese-x0208=Kochi Gothic
+-dialoginput.italic.korean=Baekmuk Dotum
++dialoginput.italic.latin-1.motif=LuxiMono-Oblique
++dialoginput.italic.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialoginput.italic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
++dialoginput.italic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
+ dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
+-dialoginput.bolditalic.japanese-x0208=Kochi Gothic
+-dialoginput.bolditalic.korean=Baekmuk Dotum
+-
+-allfonts.chinese-big5=AR PL ZenKai Uni
+-allfonts.chinese-gb18030=AR PL ZenKai Uni
++dialoginput.bolditalic.latin-1.motif=LuxiMono-BoldOblique
++dialoginput.bolditalic.japanese-x0208=-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0
++dialoginput.bolditalic.korean=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
++dialoginput.bolditalic.korean.motif=-misc-baekmuk batang-medium-r-normal--*-%d-*-*-c-*-*-*
+ # Search Sequences
+ sequence.allfonts=latin-1
+-sequence.allfonts.Big5=chinese-big5,latin-1
+-sequence.allfonts.x-euc-jp-linux=japanese-x0208,latin-1
+-sequence.allfonts.EUC-KR=korean,latin-1
+-sequence.allfonts.GB18030=chinese-gb18030,latin-1
++sequence.allfonts.UTF-8.ko=latin-1,korean
++sequence.allfonts.UTF-8=latin-1,chinese-gb18030
++sequence.allfonts.UTF-8.ja=latin-1,japanese-x0208
++sequence.allfonts.UTF-8.zh.CN=latin-1,chinese-gb18030
++sequence.allfonts.UTF-8.zh.TW=latin-1,chinese-big5
++sequence.allfonts.Big5=latin-1,chinese-big5
++sequence.allfonts.GB2312=latin-1,chinese-gb18030
++sequence.allfonts.x-euc-jp-linux=latin-1,japanese-x0208
++sequence.allfonts.EUC-KR=latin-1,korean
++sequence.allfonts.GB18030=latin-1,chinese-gb18030
+ sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean
++# Exclusion Ranges
++
++exclusion.japanese-x0208=0390-03d6,2200-22ef,2701-27be
++
+ # Font File Names
+ filename.DejaVu_Sans=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
+@@ -143,8 +192,27 @@
+ filename.DejaVu_Serif_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Oblique.ttf
+ filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldOblique.ttf
+-filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf
+-filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf
+-filename.AR_PL_ZenKai_Uni=/usr/share/fonts//truetype/arphic/ukai.ttf
+-filename.Baekmuk_Dotum=/usr/share/fonts/truetype/baekmuk/dotum.ttf
+-filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf
++filename.-misc-ar_pl_shanheisun_uni-medium-r-normal--*-*-*-*-p-*-iso10646-1=/usr/share/fonts/truetype/arphic/uming.ttf
++filename.-misc-baekmuk_batang-medium-r-normal--*-%d-*-*-c-*-*-*=/usr/share/fonts/truetype/baekmuk/batang.ttf
++filename.-misc-baekmuk_gulim-medium-r-normal--*-%d-*-*-c-*-*-*=/usr/share/fonts/truetype/baekmuk/gulim.ttf
++filename.-vlgothic-gothic-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf
++filename.-sazanami-mincho-medium-r-normal--*-%d-*-*-c-*-jisx0208.1983-0=/usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf
++
++filename.LuxiSans-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisr.ttf
++filename.LuxiSans-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisb.ttf
++filename.LuxiSans-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisri.ttf
++filename.LuxiSans-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisbi.ttf
++filename.LuxiMono-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximr.ttf
++filename.LuxiMono-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximb.ttf
++filename.LuxiMono-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximri.ttf
++filename.LuxiMono-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximbi.ttf
++filename.LuxiSerif-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirr.ttf
++filename.LuxiSerif-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirb.ttf
++filename.LuxiSerif-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirri.ttf
++filename.LuxiSerif-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirbi.ttf
++
++# AWT X11 font paths
++awtfontpath.latin-1=/usr/share/fonts/X11/Type1
++awtfontpath.chinese-gb18030=/usr/share/fonts/truetype/arphic
++awtfontpath.japanese-x0208=/usr/share/fonts/truetype/vlgothic
++awtfontpath.korean=/usr/share/fonts/truetype/baekmuk
diff --git a/debian/patches/fontconfig-japanese.diff b/debian/patches/fontconfig-japanese.diff
new file mode 100644 (file)
index 0000000..793b2dd
--- /dev/null
@@ -0,0 +1,219 @@
+# used for Debian wheezy and Ubuntu 12.04 LTS or newer
+
+--- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.orig        2013-02-07 17:01:24.723477262 +0100
++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties     2013-02-07 17:03:39.043477916 +0100
+@@ -57,142 +57,142 @@
+ serif.plain.latin-1=DejaVu Serif
+ #serif.plain.latin-1.motif=LuxiSerif-Regular
+-serif.plain.japanese-kochi=Kochi Mincho
+ serif.plain.japanese-sazanami=Sazanami Mincho
+ serif.plain.japanese-vlgothic=Sazanami Mincho
++serif.plain.japanese-ipafont=IPAMincho
+ serif.plain.korean-nanum=NanumMyeongjo
+ serif.bold.latin-1=DejaVu Serif Bold
+ #serif.bold.latin-1.motif=LuxiSerif-Bold
+-serif.bold.japanese-kochi=Kochi Mincho
+ serif.bold.japanese-sazanami=Sazanami Mincho
+ serif.bold.japanese-vlgothic=Sazanami Mincho
++serif.bold.japanese-ipafont=IPAMincho
+ serif.bold.korean-nanum=NanumMyeongjo Bold
+ serif.italic.latin-1=DejaVu Serif Oblique
+ #serif.italic.latin-1.motif=LuxiSerif-Oblique
+-serif.italic.japanese-kochi=Kochi Mincho
+ serif.italic.japanese-sazanami=Sazanami Mincho
+ serif.italic.japanese-vlgothic=Sazanami Mincho
++serif.italic.japanese-ipafont=IPAMincho
+ serif.italic.korean-nanum=NanumMyeongjo
+ serif.bolditalic.latin-1=DejaVu Serif Bold Oblique
+ #serif.bolditalic.latin-1.motif=LuxiSerif-BoldOblique
+-serif.bolditalic.japanese-kochi=Kochi Mincho
+ serif.bolditalic.japanese-sazanami=Sazanami Mincho
+ serif.bolditalic.japanese-vlgothic=Sazanami Mincho
++serif.bolditalic.japanese-ipafont=IPAMincho
+ serif.bolditalic.korean-nanum=NanumMyeongjo Bold
+ sansserif.plain.latin-1=DejaVu Sans
+ #sansserif.plain.latin-1.motif=LuxiSans-Regular
+-sansserif.plain.japanese-kochi=Kochi Gothic
+ sansserif.plain.japanese-sazanami=Sazanami Gothic
+ sansserif.plain.japanese-vlgothic=VL PGothic
++sansserif.plain.japanese-ipafont=IPAPGothic
+ sansserif.plain.korean-nanum=NanumGothic
+ sansserif.bold.latin-1=DejaVu Sans Bold
+ #sansserif.bold.latin-1.motif=LuxiSans-Bold
+-sansserif.bold.japanese-kochi=Kochi Gothic
+ sansserif.bold.japanese-sazanami=Sazanami Gothic
+ sansserif.bold.japanese-vlgothic=VL PGothic
++sansserif.bold.japanese-ipafont=IPAPGothic
+ sansserif.bold.korean-nanum=NanumGothic Bold
+ sansserif.italic.latin-1=DejaVu Sans Oblique
+ #sansserif.italic.latin-1.motif=LuxiSans-Oblique
+-sansserif.italic.japanese-kochi=Kochi Gothic
+ sansserif.italic.japanese-sazanami=Sazanami Gothic
+ sansserif.italic.japanese-vlgothic=VL PGothic
++sansserif.italic.japanese-ipafont=IPAPGothic
+ sansserif.italic.korean-nanum=NanumGothic
+ sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
+ #sansserif.bolditalic.latin-1.motif=LuxiSans-BoldOblique
+-sansserif.bolditalic.japanese-kochi=Kochi Gothic
+ sansserif.bolditalic.japanese-sazanami=Sazanami Gothic
+ sansserif.bolditalic.japanese-vlgothic=VL PGothic
++sansserif.bolditalic.japanese-ipafont=IPAPGothic
+ sansserif.bolditalic.korean-nanum=NanumGothic Bold
+ monospaced.plain.latin-1=DejaVu Sans Mono
+ #monospaced.plain.latin-1.motif=LuxiMono-Regular
+-monospaced.plain.japanese-kochi=Kochi Gothic
+ monospaced.plain.japanese-sazanami=Sazanami Gothic
+ monospaced.plain.japanese-vlgothic=VL Gothic
++monospaced.plain.japanese-ipafont=IPAGothic
+ monospaced.plain.korean-nanum=NanumGothicCoding
+ monospaced.bold.latin-1=DejaVu Sans Mono Bold
+ #monospaced.bold.latin-1.motif=LuxiMono-Bold
+-monospaced.bold.japanese-kochi=Kochi Gothic
+ monospaced.bold.japanese-sazanami=Sazanami Gothic
+ monospaced.bold.japanese-vlgothic=VL Gothic
++monospaced.bold.japanese-ipafont=IPAGothic
+ monospaced.bold.korean-nanum=NanumGothicCoding Bold
+ monospaced.italic.latin-1=DejaVu Sans Mono Oblique
+ #monospaced.italic.latin-1.motif=LuxiMono-Oblique
+-monospaced.italic.japanese-kochi=Kochi Gothic
+ monospaced.italic.japanese-sazanami=Sazanami Gothic
+ monospaced.italic.japanese-vlgothic=VL Gothic
++monospaced.italic.japanese-ipafont=IPAGothic
+ monospaced.italic.korean-nanum=NanumGothicCoding
+ monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
+ #monospaced.bolditalic.latin-1.motif=LuxiMono-BoldOblique
+-monospaced.bolditalic.japanese-kochi=Kochi Gothic
+ monospaced.bolditalic.japanese-sazanami=Sazanami Gothic
+ monospaced.bolditalic.japanese-vlgothic=VL Gothic
++monospaced.bolditalic.japanese-ipafont=IPAGothic
+ monospaced.bolditalic.korean-nanum=NanumGothicCoding Bold
+ dialog.plain.latin-1=DejaVu Sans
+ #dialog.plain.latin-1.motif=LuxiSans-Regular
+-dialog.plain.japanese-kochi=Kochi Gothic
+ dialog.plain.japanese-sazanami=Sazanami Gothic
+ dialog.plain.japanese-vlgothic=VL PGothic
++dialog.plain.japanese-ipafont=IPAPGothic
+ dialog.plain.korean-nanum=NanumGothic
+ dialog.bold.latin-1=DejaVu Sans Bold
+ #dialog.bold.latin-1.motif=LuxiSans-Bold
+-dialog.bold.japanese-kochi=Kochi Gothic
+ dialog.bold.japanese-sazanami=Sazanami Gothic
+ dialog.bold.japanese-vlgothic=VL PGothic
++dialog.bold.japanese-ipafont=IPAPGothic
+ dialog.bold.korean-nanum=NanumGothic Bold
+ dialog.italic.latin-1=DejaVu Sans Oblique
+ #dialog.italic.latin-1.motif=LuxiSans-Oblique
+-dialog.italic.japanese-kochi=Kochi Gothic
+ dialog.italic.japanese-sazanami=Sazanami Gothic
+ dialog.italic.japanese-vlgothic=VL PGothic
++dialog.italic.japanese-ipafont=IPAPGothic
+ dialog.italic.korean-nanum=NanumGothic
+ dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
+ #dialog.bolditalic.latin-1.motif=LuxiSans-BoldOblique
+-dialog.bolditalic.japanese-kochi=Kochi Gothic
+ dialog.bolditalic.japanese-sazanami=Sazanami Gothic
+ dialog.bolditalic.japanese-vlgothic=VL PGothic
++dialog.bolditalic.japanese-ipafont=IPAPGothic
+ dialog.bolditalic.korean-nanum=NanumGothic Bold
+ dialoginput.plain.latin-1=DejaVu Sans Mono
+ #dialoginput.plain.latin-1.motif=LuxiMono-Regular
+-dialoginput.plain.japanese-kochi=Kochi Gothic
+ dialoginput.plain.japanese-sazanami=Sazanami Gothic
+ dialoginput.plain.japanese-vlgothic=VL Gothic
++dialoginput.plain.japanese-ipafont=IPAGothic
+ dialoginput.plain.korean-nanum=NanumGothic
+ dialoginput.bold.latin-1=DejaVu Sans Mono Bold
+ #dialoginput.bold.latin-1.motif=LuxiMono-Bold
+-dialoginput.bold.japanese-kochi=Kochi Gothic
+ dialoginput.bold.japanese-sazanami=Sazanami Gothic
+ dialoginput.bold.japanese-vlgothic=VL Gothic
++dialoginput.bold.japanese-ipafont=IPAGothic
+ dialoginput.bold.korean-nanum=NanumGothic Bold
+ dialoginput.italic.latin-1=DejaVu Sans Mono Oblique
+ #dialoginput.italic.latin-1.motif=LuxiMono-Oblique
+-dialoginput.italic.japanese-kochi=Kochi Gothic
+ dialoginput.italic.japanese-sazanami=Sazanami Gothic
+ dialoginput.italic.japanese-vlgothic=VL Gothic
++dialoginput.italic.japanese-ipafont=IPAGothic
+ dialoginput.italic.korean-nanum=NanumGothic
+ dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
+ #dialoginput.bolditalic.latin-1.motif=LuxiMono-BoldOblique
+-dialoginput.bolditalic.japanese-kochi=Kochi Gothic
+ dialoginput.bolditalic.japanese-sazanami=Sazanami Gothic
+ dialoginput.bolditalic.japanese-vlgothic=VL Gothic
++dialoginput.bolditalic.japanese-ipafont=IPAGothic
+ dialoginput.bolditalic.korean-nanum=NanumGothic Bold
+ # Search Sequences
+@@ -201,18 +201,20 @@
+ sequence.allfonts.GB18030=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
+ sequence.allfonts.GB2312=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
+ sequence.allfonts.GBK=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
+-sequence.allfonts.x-euc-jp-linux=latin-1,japanese-vlgothic,japanese-sazanami,japanese-kochi
++sequence.allfonts.x-euc-jp-linux=latin-1,japanese-ipafont,japanese-vlgothic,japanese-sazanami
+ sequence.allfonts.EUC-KR=latin-1,korean-nanum
+ sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-microhei,wqy-zenhei
+ sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-microhei,wqy-zenhei
+-#sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
+-sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-nanum,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
++#sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-ipafont,japanese-vlgothic,japanese-sazanami,korean-un,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
++sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-ipafont,japanese-vlgothic,japanese-sazanami,korean-nanum,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
++
++sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-ipafont,japanese-vlgothic,japanese-sazanami,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
+ # Exclusion Ranges
+-exclusion.japanese-kochi=0390-03d6,2200-22ef,2701-27be
+ exclusion.japanese-sazanami=0390-03d6,2200-22ef,2701-27be
+ exclusion.japanese-vlgothic=0390-03d6,2200-22ef,2701-27be
++exclusion.japanese-ipafont=0390-03d6,2200-22ef,2701-27be
+ # Font File Names
+@@ -244,12 +246,16 @@
+ filename.NanumGothic_Bold=/usr/share/fonts/truetype/nanum/NanumGothicBold.ttf
+ filename.NanumGothicCoding=/usr/share/fonts/truetype/nanum-coding/NanumGothic_Coding.ttf
+ filename.NanumGothicCoding_Bold=/usr/share/fonts/truetype/nanum-coding/NanumGothic_Coding_Bold.ttf
+-filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic.ttf
++
++#Japanese fonts
+ filename.Sazanami_Gothic=/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf
+-filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho.ttf
+ filename.Sazanami_Mincho=/usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf
+ filename.VL_Gothic=/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf
+ filename.VL_PGothic=/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf
++filename.IPAGothic=/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf
++filename.IPAPGothic=/usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf
++filename.IPAMincho=/usr/share/fonts/opentype/ipafont-mincho/ipam.ttf
++filename.IPAPMincho=/usr/share/fonts/opentype/ipafont-mincho/ipamp.ttf
+ filename.Lohit_Bengali=/usr/share/fonts/truetype/ttf-bengali-fonts/lohit_bn.ttf
+ filename.Lohit_Gujarati=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_gu.ttf
+@@ -283,7 +289,6 @@
+ awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic
+ awtfontpath.wqy-microhei=/usr/share/fonts/truetype/wqy
+ awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy
+-awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi
+ awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami
+ awtfontpath.japanese-vlgothic=/usr/share/fonts/truetype/vlgothic
+ awtfontpath.korean-nanum=/usr/share/fonts/truetype/nanum
diff --git a/debian/patches/fontconfig-korean-nanum.diff b/debian/patches/fontconfig-korean-nanum.diff
new file mode 100644 (file)
index 0000000..6d28ad5
--- /dev/null
@@ -0,0 +1,266 @@
+# used for Debian wheezy and Ubuntu 12.04 LTS or newer
+
+--- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.orig
++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties
+@@ -60,200 +60,140 @@
+ serif.plain.japanese-kochi=Kochi Mincho
+ serif.plain.japanese-sazanami=Sazanami Mincho
+ serif.plain.japanese-vlgothic=Sazanami Mincho
+-serif.plain.korean-baekmuk=Baekmuk Batang
+-#serif.plain.korean-baekmuk.motif=Baekmuk Batang
+-serif.plain.korean-un=UnBatang
+-#serif.plain.korean-un.motif=UnBatang
++serif.plain.korean-nanum=NanumMyeongjo
+ serif.bold.latin-1=DejaVu Serif Bold
+ #serif.bold.latin-1.motif=LuxiSerif-Bold
+ serif.bold.japanese-kochi=Kochi Mincho
+ serif.bold.japanese-sazanami=Sazanami Mincho
+ serif.bold.japanese-vlgothic=Sazanami Mincho
+-serif.bold.korean-baekmuk=Baekmuk Batang
+-#serif.bold.korean-baekmuk.motif=Baekmuk Batang
+-serif.bold.korean-un=UnBatang Bold
+-#serif.bold.korean-un.motif=UnBatang Bold
++serif.bold.korean-nanum=NanumMyeongjo Bold
+ serif.italic.latin-1=DejaVu Serif Oblique
+ #serif.italic.latin-1.motif=LuxiSerif-Oblique
+ serif.italic.japanese-kochi=Kochi Mincho
+ serif.italic.japanese-sazanami=Sazanami Mincho
+ serif.italic.japanese-vlgothic=Sazanami Mincho
+-serif.italic.korean-baekmuk=Baekmuk Batang
+-#serif.italic.korean-baekmuk.motif=Baekmuk Batang
+-serif.italic.korean-un=UnBatang
+-#serif.italic.korean-un.motif=UnBatang
++serif.italic.korean-nanum=NanumMyeongjo
+ serif.bolditalic.latin-1=DejaVu Serif Bold Oblique
+ #serif.bolditalic.latin-1.motif=LuxiSerif-BoldOblique
+ serif.bolditalic.japanese-kochi=Kochi Mincho
+ serif.bolditalic.japanese-sazanami=Sazanami Mincho
+ serif.bolditalic.japanese-vlgothic=Sazanami Mincho
+-serif.bolditalic.korean-baekmuk=Baekmuk Batang
+-#serif.bolditalic.korean-baekmuk.motif=Baekmuk Batang
+-serif.bolditalic.korean-un=UnBatang Bold
+-#serif.bolditalic.korean-un.motif=UnBatang Bold
++serif.bolditalic.korean-nanum=NanumMyeongjo Bold
+ sansserif.plain.latin-1=DejaVu Sans
+ #sansserif.plain.latin-1.motif=LuxiSans-Regular
+ sansserif.plain.japanese-kochi=Kochi Gothic
+ sansserif.plain.japanese-sazanami=Sazanami Gothic
+ sansserif.plain.japanese-vlgothic=VL PGothic
+-sansserif.plain.korean-baekmuk=Baekmuk Gulim
+-#sansserif.plain.korean-baekmuk.motif=Baekmuk Gulim
+-sansserif.plain.korean-un=UnDotum
+-#sansserif.plain.korean-un.motif=UnDotum
++sansserif.plain.korean-nanum=NanumGothic
+ sansserif.bold.latin-1=DejaVu Sans Bold
+ #sansserif.bold.latin-1.motif=LuxiSans-Bold
+ sansserif.bold.japanese-kochi=Kochi Gothic
+ sansserif.bold.japanese-sazanami=Sazanami Gothic
+ sansserif.bold.japanese-vlgothic=VL PGothic
+-sansserif.bold.korean-baekmuk=Baekmuk Gulim
+-#sansserif.bold.korean-baekmuk.motif=Baekmuk Gulim
+-sansserif.bold.korean-un=UnDotum Bold
+-#sansserif.bold.korean-un.motif=UnDotum Bold
++sansserif.bold.korean-nanum=NanumGothic Bold
+ sansserif.italic.latin-1=DejaVu Sans Oblique
+ #sansserif.italic.latin-1.motif=LuxiSans-Oblique
+ sansserif.italic.japanese-kochi=Kochi Gothic
+ sansserif.italic.japanese-sazanami=Sazanami Gothic
+ sansserif.italic.japanese-vlgothic=VL PGothic
+-sansserif.italic.korean-baekmuk=Baekmuk Gulim
+-#sansserif.italic.korean-baekmuk.motif=Baekmuk Gulim
+-sansserif.italic.korean-un=UnDotum
+-#sansserif.italic.korean-un.motif=UnDotum
++sansserif.italic.korean-nanum=NanumGothic
+ sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
+ #sansserif.bolditalic.latin-1.motif=LuxiSans-BoldOblique
+ sansserif.bolditalic.japanese-kochi=Kochi Gothic
+ sansserif.bolditalic.japanese-sazanami=Sazanami Gothic
+ sansserif.bolditalic.japanese-vlgothic=VL PGothic
+-sansserif.bolditalic.korean-baekmuk=Baekmuk Gulim
+-#sansserif.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
+-sansserif.bolditalic.korean-un=UnDotum Bold
+-#sansserif.bolditalic.korean-un.motif=UnDotum Bold
++sansserif.bolditalic.korean-nanum=NanumGothic Bold
+ monospaced.plain.latin-1=DejaVu Sans Mono
+ #monospaced.plain.latin-1.motif=LuxiMono-Regular
+ monospaced.plain.japanese-kochi=Kochi Gothic
+ monospaced.plain.japanese-sazanami=Sazanami Gothic
+ monospaced.plain.japanese-vlgothic=VL Gothic
+-monospaced.plain.korean-baekmuk=Baekmuk Gulim
+-#monospaced.plain.korean-baekmuk.motif=Baekmuk Gulim
+-monospaced.plain.korean-un=UnDotum
+-#monospaced.plain.korean-un.motif=UnDotum
++monospaced.plain.korean-nanum=NanumGothicCoding
+ monospaced.bold.latin-1=DejaVu Sans Mono Bold
+ #monospaced.bold.latin-1.motif=LuxiMono-Bold
+ monospaced.bold.japanese-kochi=Kochi Gothic
+ monospaced.bold.japanese-sazanami=Sazanami Gothic
+ monospaced.bold.japanese-vlgothic=VL Gothic
+-monospaced.bold.korean-baekmuk=Baekmuk Gulim
+-#monospaced.bold.korean-baekmuk.motif=Baekmuk Gulim
+-monospaced.bold.korean-un=UnDotum Bold
+-#monospaced.bold.korean-un.motif=UnDotum Bold
++monospaced.bold.korean-nanum=NanumGothicCoding Bold
+ monospaced.italic.latin-1=DejaVu Sans Mono Oblique
+ #monospaced.italic.latin-1.motif=LuxiMono-Oblique
+ monospaced.italic.japanese-kochi=Kochi Gothic
+ monospaced.italic.japanese-sazanami=Sazanami Gothic
+ monospaced.italic.japanese-vlgothic=VL Gothic
+-monospaced.italic.korean-baekmuk=Baekmuk Gulim
+-#monospaced.italic.korean-baekmuk.motif=Baekmuk Gulim
+-monospaced.italic.korean-un=UnDotum
+-#monospaced.italic.korean-un.motif=UnDotum
++monospaced.italic.korean-nanum=NanumGothicCoding
+ monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
+ #monospaced.bolditalic.latin-1.motif=LuxiMono-BoldOblique
+ monospaced.bolditalic.japanese-kochi=Kochi Gothic
+ monospaced.bolditalic.japanese-sazanami=Sazanami Gothic
+ monospaced.bolditalic.japanese-vlgothic=VL Gothic
+-monospaced.bolditalic.korean-baekmuk=Baekmuk Gulim
+-#monospaced.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
+-monospaced.bolditalic.korean-un=UnDotum Bold
+-#monospaced.bolditalic.korean-un.motif=UnDotum Bold
++monospaced.bolditalic.korean-nanum=NanumGothicCoding Bold
+ dialog.plain.latin-1=DejaVu Sans
+ #dialog.plain.latin-1.motif=LuxiSans-Regular
+ dialog.plain.japanese-kochi=Kochi Gothic
+ dialog.plain.japanese-sazanami=Sazanami Gothic
+ dialog.plain.japanese-vlgothic=VL PGothic
+-dialog.plain.korean-baekmuk=Baekmuk Gulim
+-#dialog.plain.korean-baekmuk.motif=Baekmuk Gulim
+-dialog.plain.korean-un=UnDotum
+-#dialog.plain.korean-un.motif=UnDotum
++dialog.plain.korean-nanum=NanumGothic
+ dialog.bold.latin-1=DejaVu Sans Bold
+ #dialog.bold.latin-1.motif=LuxiSans-Bold
+ dialog.bold.japanese-kochi=Kochi Gothic
+ dialog.bold.japanese-sazanami=Sazanami Gothic
+ dialog.bold.japanese-vlgothic=VL PGothic
+-dialog.bold.korean-baekmuk=Baekmuk Gulim
+-#dialog.bold.korean-baekmuk.motif=Baekmuk Gulim
+-dialog.bold.korean-un=UnDotum Bold
+-#dialog.bold.korean-un.motif=UnDotum Bold
++dialog.bold.korean-nanum=NanumGothic Bold
+ dialog.italic.latin-1=DejaVu Sans Oblique
+ #dialog.italic.latin-1.motif=LuxiSans-Oblique
+ dialog.italic.japanese-kochi=Kochi Gothic
+ dialog.italic.japanese-sazanami=Sazanami Gothic
+ dialog.italic.japanese-vlgothic=VL PGothic
+-dialog.italic.korean-baekmuk=Baekmuk Gulim
+-#dialog.italic.korean-baekmuk.motif=Baekmuk Gulim
+-dialog.italic.korean-un=UnDotum
+-#dialog.italic.korean-un.motif=UnDotum
++dialog.italic.korean-nanum=NanumGothic
+ dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
+ #dialog.bolditalic.latin-1.motif=LuxiSans-BoldOblique
+ dialog.bolditalic.japanese-kochi=Kochi Gothic
+ dialog.bolditalic.japanese-sazanami=Sazanami Gothic
+ dialog.bolditalic.japanese-vlgothic=VL PGothic
+-dialog.bolditalic.korean-baekmuk=Baekmuk Gulim
+-#dialog.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
+-dialog.bolditalic.korean-un=UnDotum Bold
+-#dialog.bolditalic.korean-un.motif=UnDotum Bold
++dialog.bolditalic.korean-nanum=NanumGothic Bold
+ dialoginput.plain.latin-1=DejaVu Sans Mono
+ #dialoginput.plain.latin-1.motif=LuxiMono-Regular
+ dialoginput.plain.japanese-kochi=Kochi Gothic
+ dialoginput.plain.japanese-sazanami=Sazanami Gothic
+ dialoginput.plain.japanese-vlgothic=VL Gothic
+-dialoginput.plain.korean-baekmuk=Baekmuk Gulim
+-#dialoginput.plain.korean-baekmuk.motif=Baekmuk Gulim
+-dialoginput.plain.korean-un=UnDotum
+-#dialoginput.plain.korean-un.motif=UnDotum
++dialoginput.plain.korean-nanum=NanumGothic
+ dialoginput.bold.latin-1=DejaVu Sans Mono Bold
+ #dialoginput.bold.latin-1.motif=LuxiMono-Bold
+ dialoginput.bold.japanese-kochi=Kochi Gothic
+ dialoginput.bold.japanese-sazanami=Sazanami Gothic
+ dialoginput.bold.japanese-vlgothic=VL Gothic
+-dialoginput.bold.korean-baekmuk=Baekmuk Gulim
+-#dialoginput.bold.korean-baekmuk.motif=Baekmuk Gulim
+-dialoginput.bold.korean-un=UnDotum Bold
+-#dialoginput.bold.korean-un.motif=UnDotum Bold
++dialoginput.bold.korean-nanum=NanumGothic Bold
+ dialoginput.italic.latin-1=DejaVu Sans Mono Oblique
+ #dialoginput.italic.latin-1.motif=LuxiMono-Oblique
+ dialoginput.italic.japanese-kochi=Kochi Gothic
+ dialoginput.italic.japanese-sazanami=Sazanami Gothic
+ dialoginput.italic.japanese-vlgothic=VL Gothic
+-dialoginput.italic.korean-baekmuk=Baekmuk Gulim
+-#dialoginput.italic.korean-baekmuk.motif=Baekmuk Gulim
+-dialoginput.italic.korean-un=UnDotum
+-#dialoginput.italic.korean-un.motif=UnDotum
++dialoginput.italic.korean-nanum=NanumGothic
+ dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
+ #dialoginput.bolditalic.latin-1.motif=LuxiMono-BoldOblique
+ dialoginput.bolditalic.japanese-kochi=Kochi Gothic
+ dialoginput.bolditalic.japanese-sazanami=Sazanami Gothic
+ dialoginput.bolditalic.japanese-vlgothic=VL Gothic
+-dialoginput.bolditalic.korean-baekmuk=Baekmuk Gulim
+-#dialoginput.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
+-dialoginput.bolditalic.korean-un=UnDotum Bold
+-#dialoginput.bolditalic.korean-un.motif=UnDotum Bold
++dialoginput.bolditalic.korean-nanum=NanumGothic Bold
+ # Search Sequences
+@@ -262,11 +202,11 @@
+ sequence.allfonts.GB2312=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
+ sequence.allfonts.GBK=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
+ sequence.allfonts.x-euc-jp-linux=latin-1,japanese-vlgothic,japanese-sazanami,japanese-kochi
+-sequence.allfonts.EUC-KR=latin-1,korean-un,korean-baekmuk
++sequence.allfonts.EUC-KR=latin-1,korean-nanum
+ sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-microhei,wqy-zenhei
+ sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-microhei,wqy-zenhei
+-#sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
+-sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
++#sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
++sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-nanum,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
+ # Exclusion Ranges
+@@ -298,12 +238,12 @@
+ filename.WenQuanYi_Micro_Hei=/usr/share/fonts/truetype/wqy/wqy-microhei.ttc
+ filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc
+-filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf
+-filename.UnBatang=/usr/share/fonts/truetype/unfonts/UnBatang.ttf
+-filename.UnBatang_Bold=/usr/share/fonts/truetype/unfonts/UnBatangBold.ttf
+-filename.Baekmuk_Gulim=/usr/share/fonts/truetype/baekmuk/gulim.ttf
+-filename.UnDotum=/usr/share/fonts/truetype/unfonts/UnDotum.ttf
+-filename.UnDotum_Bold=/usr/share/fonts/truetype/unfonts/UnDotumBold.ttf
++filename.NanumMyeongjo=/usr/share/fonts/truetype/nanum/NanumMyeongjo.ttf
++filename.NanumMyeongjo_Bold=/usr/share/fonts/truetype/nanum/NanumMyeongjoBold.ttf
++filename.NanumGothic=/usr/share/fonts/truetype/nanum/NanumGothic.ttf
++filename.NanumGothic_Bold=/usr/share/fonts/truetype/nanum/NanumGothicBold.ttf
++filename.NanumGothicCoding=/usr/share/fonts/truetype/nanum-coding/NanumGothic_Coding.ttf
++filename.NanumGothicCoding_Bold=/usr/share/fonts/truetype/nanum-coding/NanumGothic_Coding_Bold.ttf
+ filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic.ttf
+ filename.Sazanami_Gothic=/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf
+ filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho.ttf
+@@ -346,5 +286,4 @@
+ awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi
+ awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami
+ awtfontpath.japanese-vlgothic=/usr/share/fonts/truetype/vlgothic
+-awtfontpath.korean-baekmuk=/usr/share/fonts/truetype/baekmuk
+-awtfontpath.korean-un=/usr/share/fonts/truetype/unfonts
++awtfontpath.korean-nanum=/usr/share/fonts/truetype/nanum
diff --git a/debian/patches/fontconfig-wqy-microhei.patch b/debian/patches/fontconfig-wqy-microhei.patch
new file mode 100644 (file)
index 0000000..23093aa
--- /dev/null
@@ -0,0 +1,53 @@
+--- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.orig
++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties
+@@ -37,6 +37,7 @@
+ #allfonts.uminghk.motif=AR PL UMing HK
+ allfonts.umingtw=AR PL UMing TW
+ #allfonts.umingtw.motif=AR PL UMing TW
++allfonts.wqy-microhei=WenQuanYi Micro Hei
+ allfonts.wqy-zenhei=WenQuanYi Zen Hei
+ #allfonts.wqy-zenhei.motif=WenQuanYi Zen Hei
+ allfonts.shanheisun=AR PL ShanHeiSun Uni
+@@ -257,15 +258,15 @@
+ # Search Sequences
+ sequence.allfonts=latin-1
+-sequence.allfonts.GB18030=latin-1,umingcn,shanheisun,wqy-zenhei
+-sequence.allfonts.GB2312=latin-1,umingcn,shanheisun,wqy-zenhei
+-sequence.allfonts.GBK=latin-1,umingcn,shanheisun,wqy-zenhei
++sequence.allfonts.GB18030=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
++sequence.allfonts.GB2312=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
++sequence.allfonts.GBK=latin-1,wqy-microhei,umingcn,shanheisun,wqy-zenhei
+ sequence.allfonts.x-euc-jp-linux=latin-1,japanese-vlgothic,japanese-sazanami,japanese-kochi
+ sequence.allfonts.EUC-KR=latin-1,korean-un,korean-baekmuk
+-sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-zenhei
+-sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-zenhei
++sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-microhei,wqy-zenhei
++sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-microhei,wqy-zenhei
+ #sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
+-sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
++sequence.fallback=wqy-microhei,uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
+ # Exclusion Ranges
+@@ -293,9 +294,10 @@
+ filename.AR_PL_UMing_CN=/usr/share/fonts/truetype/arphic/uming.ttc
+ filename.AR_PL_UMing_HK=/usr/share/fonts/truetype/arphic/uming.ttc
+ filename.AR_PL_UMing_TW=/usr/share/fonts/truetype/arphic/uming.ttc
+-filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttf
++filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttc
+-filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf
++filename.WenQuanYi_Micro_Hei=/usr/share/fonts/truetype/wqy/wqy-microhei.ttc
++filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc
+ filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf
+ filename.UnBatang=/usr/share/fonts/truetype/unfonts/UnBatang.ttf
+ filename.UnBatang_Bold=/usr/share/fonts/truetype/unfonts/UnBatangBold.ttf
+@@ -339,6 +341,7 @@
+ awtfontpath.uminghk=/usr/share/fonts/truetype/arphic
+ awtfontpath.umingtw=/usr/share/fonts/truetype/arphic
+ awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic
++awtfontpath.wqy-microhei=/usr/share/fonts/truetype/wqy
+ awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy
+ awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi
+ awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami
diff --git a/debian/patches/hotspot-disable-werror.diff b/debian/patches/hotspot-disable-werror.diff
new file mode 100644 (file)
index 0000000..1f6c382
--- /dev/null
@@ -0,0 +1,13 @@
+# DP: Turn off -Werror for hotspot, overwrites -fpermissive.
+
+--- src/hotspot/make/linux/makefiles/gcc.make~ 2014-07-02 15:25:35.805646895 +0200
++++ src/hotspot/make/linux/makefiles/gcc.make  2014-07-02 15:37:59.346690749 +0200
+@@ -205,7 +205,7 @@
+ endif
+ # Compiler warnings are treated as errors
+-WARNINGS_ARE_ERRORS = -Werror -Wno-error=format -Wno-error=deprecated
++WARNINGS_ARE_ERRORS = 
+ ifeq ($(USE_CLANG), true)
+   # However we need to clean the code up before we can unrestrictedly enable this option with Clang
diff --git a/debian/patches/hotspot-libpath-aarch64.diff b/debian/patches/hotspot-libpath-aarch64.diff
new file mode 100644 (file)
index 0000000..7b0b73e
--- /dev/null
@@ -0,0 +1,37 @@
+# DP: Set the hotspot default libpath to ignore lib64 and add multiarch
+
+Index: b/hotspot/src/os/linux/vm/os_linux.cpp
+===================================================================
+--- a/hotspot/src/os/linux/vm/os_linux.cpp
++++ b/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -355,10 +355,10 @@
+ //        1: ...
+ //        ...
+ //        7: The default directories, normally /lib and /usr/lib.
+-#if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390)) || defined(BUILTIN_SIM)
+-#define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib"
++#ifdef DEB_MULTIARCH
++#define DEFAULT_LIBPATH       "/usr/lib/" DEB_MULTIARCH "/jni" ":/lib/" DEB_MULTIARCH ":/usr/lib/" DEB_MULTIARCH ":/usr/lib/jni:/lib:/usr/lib"
+ #else
+-#define DEFAULT_LIBPATH "/lib:/usr/lib"
++#define DEFAULT_LIBPATH       "/usr/lib/jni:/lib:/usr/lib"
+ #endif
+ // Base path of extensions installed on the system.
+Index: b/hotspot/make/linux/makefiles/vm.make
+===================================================================
+--- a/hotspot/make/linux/makefiles/vm.make
++++ b/hotspot/make/linux/makefiles/vm.make
+@@ -98,6 +98,12 @@ CXXFLAGS =           \
+   ${HS_LIB_ARCH}     \
+   ${VM_DISTRO}
++DEB_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null || true)
++ifneq (,$(DEB_MULTIARCH))
++CPPFLAGS += -DDEB_MULTIARCH="\"$(DEB_MULTIARCH)\""
++CXXFLAGS += -DDEB_MULTIARCH="\"$(DEB_MULTIARCH)\""
++endif
++
+ # This is VERY important! The version define must only be supplied to vm_version.o
+ # If not, ccache will not re-use the cache at all, since the version string might contain
+ # a time and date.
diff --git a/debian/patches/hotspot-libpath-default.diff b/debian/patches/hotspot-libpath-default.diff
new file mode 100644 (file)
index 0000000..603c67c
--- /dev/null
@@ -0,0 +1,33 @@
+# DP: Set the hotspot default libpath to ignore lib64 and add multiarch
+
+--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -353,10 +353,10 @@
+ //        1: ...
+ //        ...
+ //        7: The default directories, normally /lib and /usr/lib.
+-#if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390))
+-#define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib"
++#ifdef DEB_MULTIARCH
++#define DEFAULT_LIBPATH       "/usr/lib/" DEB_MULTIARCH "/jni" ":/lib/" DEB_MULTIARCH ":/usr/lib/" DEB_MULTIARCH ":/usr/lib/jni:/lib:/usr/lib"
+ #else
+-#define DEFAULT_LIBPATH "/lib:/usr/lib"
++#define DEFAULT_LIBPATH       "/usr/lib/jni:/lib:/usr/lib"
+ #endif
+ // Base path of extensions installed on the system.
+--- openjdk/hotspot/make/linux/makefiles/vm.make
++++ openjdk/hotspot/make/linux/makefiles/vm.make
+@@ -98,6 +98,12 @@
+   ${HS_LIB_ARCH}     \
+   ${VM_DISTRO}
++DEB_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null || true)
++ifneq (,$(DEB_MULTIARCH))
++CPPFLAGS += -DDEB_MULTIARCH="\"$(DEB_MULTIARCH)\""
++CXXFLAGS += -DDEB_MULTIARCH="\"$(DEB_MULTIARCH)\""
++endif
++
+ # This is VERY important! The version define must only be supplied to vm_version.o
+ # If not, ccache will not re-use the cache at all, since the version string might contain
+ # a time and date.
diff --git a/debian/patches/hotspot-mips-align.diff b/debian/patches/hotspot-mips-align.diff
new file mode 100644 (file)
index 0000000..c2ef984
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
++++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+@@ -329,7 +329,7 @@
+   ThreadStateTransition::transition_from_java(thread, _thread_in_native);
+   // Make the call
+-  intptr_t result[4 - LogBytesPerWord];
++  intptr_t result[4 - LogBytesPerWord] __attribute__((__aligned__(__alignof__(double))));
+   ffi_call(handler->cif(), (void (*)()) function, result, arguments);
+   // Change the thread state back to _thread_in_Java.
diff --git a/debian/patches/hotspot-no-march-i586.diff b/debian/patches/hotspot-no-march-i586.diff
new file mode 100644 (file)
index 0000000..c886a91
--- /dev/null
@@ -0,0 +1,13 @@
+# Don't explicitly build with -march=i586 on i386 architectures.
+
+--- a/hotspot/make/linux/makefiles/gcc.make
++++ b/hotspot/make/linux/makefiles/gcc.make
+@@ -171,7 +171,7 @@
+ endif
+ ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
+-ARCHFLAG/i486    = -m32 -march=i586
++ARCHFLAG/i486    = -m32
+ ARCHFLAG/amd64   = -m64 $(STACK_ALIGNMENT_OPT)
+ ARCHFLAG/ia64    =
+ ARCHFLAG/sparc   = -m32 -mcpu=v9
diff --git a/debian/patches/hotspot-powerpcspe.diff b/debian/patches/hotspot-powerpcspe.diff
new file mode 100644 (file)
index 0000000..7c50d71
--- /dev/null
@@ -0,0 +1,11 @@
+--- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+@@ -36,7 +36,7 @@
+   // Atomically copy 64 bits of data
+   static void atomic_copy64(volatile void *src, volatile void *dst) {
+-#if defined(PPC32)
++#if defined(PPC32) && !defined(__NO_FPRS__)
+     double tmp;
+     asm volatile ("lfd  %0, 0(%1)\n"
+                   "stfd %0, 0(%2)\n"
diff --git a/debian/patches/hotspot-set-compiler.diff b/debian/patches/hotspot-set-compiler.diff
new file mode 100644 (file)
index 0000000..2500619
--- /dev/null
@@ -0,0 +1,12 @@
+# DP: Allow to overwrite CC/CXX from the environment
+--- openjdk/hotspot/make/linux/makefiles/gcc.make
++++ openjdk/hotspot/make/linux/makefiles/gcc.make
+@@ -39,7 +39,7 @@
+     ifeq ($(USE_CLANG), true)
+       CXX = clang++
+       CC  = clang
+-    else
++    else ifeq ($(CXX),)
+       CXX = g++
+       CC  = gcc
+     endif
diff --git a/debian/patches/hotspot-sparc-arch.diff b/debian/patches/hotspot-sparc-arch.diff
new file mode 100644 (file)
index 0000000..f54d893
--- /dev/null
@@ -0,0 +1,13 @@
+Index: b/hotspot/make/linux/makefiles/defs.make
+===================================================================
+--- a/hotspot/make/linux/makefiles/defs.make
++++ b/hotspot/make/linux/makefiles/defs.make
+@@ -69,7 +69,7 @@ ifeq ($(ARCH), ia64)
+ endif
+ # sparc
+-ifeq ($(ARCH), sparc64)
++ifneq (,$(filter $(ARCH), sparc sparc64))
+   ifeq ($(ARCH_DATA_MODEL), 64)
+     ARCH_DATA_MODEL  = 64
+     MAKE_ARGS        += LP64=1
diff --git a/debian/patches/hotspot-sparc-fix.diff b/debian/patches/hotspot-sparc-fix.diff
new file mode 100644 (file)
index 0000000..355a7bf
--- /dev/null
@@ -0,0 +1,23 @@
+# unused patch
+
+Index: b/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp
+===================================================================
+--- a/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp
++++ b/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp
+@@ -28,6 +28,7 @@
+ static bool detect_niagara() {
+   char cpu[128];
++  char *buf = cpu;
+   bool rv = false;
+   FILE* fp = fopen("/proc/cpuinfo", "r");
+@@ -36,7 +37,7 @@ static bool detect_niagara() {
+   }
+   while (!feof(fp)) {
+-    if (fscanf(fp, "cpu\t\t: %100[^\n]", &cpu) == 1) {
++    if (fscanf(fp, "cpu\t\t: %100[^\n]", buf) == 1) {
+       if (strstr(cpu, "Niagara") != NULL) {
+         rv = true;
+       }
diff --git a/debian/patches/hotspot-warn-no-errformat.diff b/debian/patches/hotspot-warn-no-errformat.diff
new file mode 100644 (file)
index 0000000..2901bf1
--- /dev/null
@@ -0,0 +1,28 @@
+# DP: Build Hotspot with -Wno-error=format (not warning free on ppc64el).
+
+Index: b/hotspot/make/solaris/makefiles/gcc.make
+===================================================================
+--- a/hotspot/make/solaris/makefiles/gcc.make
++++ b/hotspot/make/solaris/makefiles/gcc.make
+@@ -116,7 +116,7 @@ endif
+ # Compiler warnings are treated as errors 
+-WARNINGS_ARE_ERRORS = -Werror 
++WARNINGS_ARE_ERRORS = -Werror -Wno-error=format
+ # Enable these warnings. See 'info gcc' about details on these options
+ WARNING_FLAGS = -Wpointer-arith -Wconversion -Wsign-compare -Wundef
+ CFLAGS_WARN/DEFAULT = $(WARNINGS_ARE_ERRORS) $(WARNING_FLAGS)
+Index: b/hotspot/make/linux/makefiles/gcc.make
+===================================================================
+--- a/hotspot/make/linux/makefiles/gcc.make
++++ b/hotspot/make/linux/makefiles/gcc.make
+@@ -205,7 +205,7 @@ else
+ endif
+ # Compiler warnings are treated as errors
+-WARNINGS_ARE_ERRORS = -Werror
++WARNINGS_ARE_ERRORS = -Werror -Wno-error=format -Wno-error=deprecated
+ ifeq ($(USE_CLANG), true)
+   # However we need to clean the code up before we can unrestrictedly enable this option with Clang
diff --git a/debian/patches/icc_loading_with_symlink.diff b/debian/patches/icc_loading_with_symlink.diff
new file mode 100644 (file)
index 0000000..d98afc6
--- /dev/null
@@ -0,0 +1,35 @@
+Description: Allow loading of ICC profiles when jre/lib/cmm is a
+ symlink by disabling call to isChildOf(f, dir) in getStandardProfileFile
+ and getProfileFile methods.
+ .
+ isChildOf method try to ensures f.getCanonicalPath start with
+ dir.getCanonicalPath but, on openjdk-6, dir.getCanonicalPath
+ will resolve to realpath and so won't match.
+ .
+ It should fix "Cannot open file sRGB.pf" errors.
+Author: Damien Raude-Morvan <drazzib@debian.org>
+Last-Update: 2012-05-18
+Bug-Debian: http://bugs.debian.org/641530
+Forwarded: not-yet
+
+--- a/jdk/src/share/classes/java/awt/color/ICC_Profile.java
++++ b/jdk/src/share/classes/java/awt/color/ICC_Profile.java
+@@ -1833,9 +1833,6 @@
+                     dir = st.nextToken();
+                         fullPath = dir + File.separatorChar + fileName;
+                     f = new File(fullPath);
+-                    if (!isChildOf(f, dir)) {
+-                        f = null;
+-                    }
+                 }
+             }
+@@ -1872,7 +1869,7 @@
+             File.separatorChar + "lib" + File.separatorChar + "cmm";
+         String fullPath = dir + File.separatorChar + fileName;
+         File f = new File(fullPath);
+-        return (f.isFile() && isChildOf(f, dir)) ? f : null;
++        return (f.isFile()) ? f : null;
+     }
+     /**
diff --git a/debian/patches/icedtea-4953367.patch b/debian/patches/icedtea-4953367.patch
new file mode 100644 (file)
index 0000000..3037080
--- /dev/null
@@ -0,0 +1,21 @@
+http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4953367
+
+--- a/jdk/src/solaris/native/java/lang/java_props_md.c
++++ b/jdk/src/solaris/native/java/lang/java_props_md.c
+@@ -612,6 +612,7 @@
+     sprops.path_separator = ":";
+     sprops.line_separator = "\n";
++#ifndef __linux__
+ #if !defined(_ALLBSD_SOURCE)
+     /* Append CDE message and resource search path to NLSPATH and
+      * XFILESEARCHPATH, in order to pick localized message for
+@@ -620,7 +621,7 @@
+     setPathEnvironment("NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat");
+     setPathEnvironment("XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt");
+ #endif
+-
++#endif
+ #ifdef MACOSX
+     setProxyProperties(&sprops);
diff --git a/debian/patches/icedtea-override-redirect-compiz.patch b/debian/patches/icedtea-override-redirect-compiz.patch
new file mode 100644 (file)
index 0000000..6c694b2
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java
++++ b/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java
+@@ -1215,6 +1215,7 @@
+     boolean isOverrideRedirect() {
+         return XWM.getWMID() == XWM.OPENLOOK_WM ||
++            XWM.getWMID() == XWM.COMPIZ_WM ||
+             Window.Type.POPUP.equals(getWindowType());
+     }
diff --git a/debian/patches/icedtea-sound.diff b/debian/patches/icedtea-sound.diff
new file mode 100644 (file)
index 0000000..a955829
--- /dev/null
@@ -0,0 +1,158 @@
+--- a/icedtea-sound/acinclude.m4
++++ b/icedtea-sound/acinclude.m4
+@@ -24,12 +24,14 @@
+       BUILD_ARCH_DIR=amd64
+       INSTALL_ARCH_DIR=amd64
+       JRE_ARCH_DIR=amd64
++      ARCHFLAG="-m64"
+       ;;
+     i?86)
+       BUILD_ARCH_DIR=i586
+       INSTALL_ARCH_DIR=i386
+       JRE_ARCH_DIR=i386
+       ARCH_PREFIX=${LINUX32}
++      ARCHFLAG="-m32"
+       ;;
+     alpha*)
+       BUILD_ARCH_DIR=alpha
+@@ -40,11 +42,13 @@
+       BUILD_ARCH_DIR=arm
+       INSTALL_ARCH_DIR=arm
+       JRE_ARCH_DIR=arm
++      ARCHFLAG="-D_LITTLE_ENDIAN"
+       ;;
+     arm64|aarch64)
+       BUILD_ARCH_DIR=aarch64
+       INSTALL_ARCH_DIR=aarch64
+       JRE_ARCH_DIR=aarch64
++      ARCHFLAG="-D_LITTLE_ENDIAN"
+       ;;
+     mips)
+       BUILD_ARCH_DIR=mips
+@@ -61,16 +65,19 @@
+       INSTALL_ARCH_DIR=ppc
+       JRE_ARCH_DIR=ppc
+       ARCH_PREFIX=${LINUX32}
++      ARCHFLAG="-m32"
+       ;;
+     powerpc64)
+       BUILD_ARCH_DIR=ppc64
+       INSTALL_ARCH_DIR=ppc64
+       JRE_ARCH_DIR=ppc64
++      ARCHFLAG="-m64"
+        ;;
+     powerpc64le)
+       BUILD_ARCH_DIR=ppc64
+       INSTALL_ARCH_DIR=ppc64
+       JRE_ARCH_DIR=ppc64
++      ARCHFLAG="-m64"
+        ;;
+     sparc)
+       BUILD_ARCH_DIR=sparc
+@@ -78,23 +85,27 @@
+       JRE_ARCH_DIR=sparc
+       CROSS_TARGET_ARCH=sparc
+       ARCH_PREFIX=${LINUX32}
++      ARCHFLAG="-m32"
+        ;;
+     sparc64)
+       BUILD_ARCH_DIR=sparcv9
+       INSTALL_ARCH_DIR=sparcv9
+       JRE_ARCH_DIR=sparc64
++      ARCHFLAG="-m64"
+        ;;
+     s390)
+       BUILD_ARCH_DIR=s390
+       INSTALL_ARCH_DIR=s390
+       JRE_ARCH_DIR=s390
+       ARCH_PREFIX=${LINUX32}
++      ARCHFLAG="-m31"
+        ;;
+     s390x)
+       BUILD_ARCH_DIR=s390x
+       INSTALL_ARCH_DIR=s390x
+       JRE_ARCH_DIR=s390x
+       CROSS_TARGET_ARCH=s390x
++      ARCHFLAG="-m64"
+       ;;
+     sh*)
+       BUILD_ARCH_DIR=sh
+--- a/icedtea-sound/configure
++++ b/icedtea-sound/configure
+@@ -3719,12 +3719,14 @@
+       BUILD_ARCH_DIR=amd64
+       INSTALL_ARCH_DIR=amd64
+       JRE_ARCH_DIR=amd64
++      ARCHFLAG="-m64"
+       ;;
+     i?86)
+       BUILD_ARCH_DIR=i586
+       INSTALL_ARCH_DIR=i386
+       JRE_ARCH_DIR=i386
+       ARCH_PREFIX=${LINUX32}
++      ARCHFLAG="-m32"
+       ;;
+     alpha*)
+       BUILD_ARCH_DIR=alpha
+@@ -3735,11 +3737,13 @@
+       BUILD_ARCH_DIR=arm
+       INSTALL_ARCH_DIR=arm
+       JRE_ARCH_DIR=arm
++      ARCHFLAG="-D_LITTLE_ENDIAN"
+       ;;
+     arm64|aarch64)
+       BUILD_ARCH_DIR=aarch64
+       INSTALL_ARCH_DIR=aarch64
+       JRE_ARCH_DIR=aarch64
++      ARCHFLAG="-D_LITTLE_ENDIAN"
+       ;;
+     mips)
+       BUILD_ARCH_DIR=mips
+@@ -3756,16 +3760,19 @@
+       INSTALL_ARCH_DIR=ppc
+       JRE_ARCH_DIR=ppc
+       ARCH_PREFIX=${LINUX32}
++      ARCHFLAG="-m32"
+       ;;
+     powerpc64)
+       BUILD_ARCH_DIR=ppc64
+       INSTALL_ARCH_DIR=ppc64
+       JRE_ARCH_DIR=ppc64
++      ARCHFLAG="-m64"
+        ;;
+     powerpc64le)
+       BUILD_ARCH_DIR=ppc64
+       INSTALL_ARCH_DIR=ppc64
+       JRE_ARCH_DIR=ppc64
++      ARCHFLAG="-m64"
+        ;;
+     sparc)
+       BUILD_ARCH_DIR=sparc
+@@ -3773,23 +3780,27 @@
+       JRE_ARCH_DIR=sparc
+       CROSS_TARGET_ARCH=sparc
+       ARCH_PREFIX=${LINUX32}
++      ARCHFLAG="-m32"
+        ;;
+     sparc64)
+       BUILD_ARCH_DIR=sparcv9
+       INSTALL_ARCH_DIR=sparcv9
+       JRE_ARCH_DIR=sparc64
++      ARCHFLAG="-m64"
+        ;;
+     s390)
+       BUILD_ARCH_DIR=s390
+       INSTALL_ARCH_DIR=s390
+       JRE_ARCH_DIR=s390
+       ARCH_PREFIX=${LINUX32}
++      ARCHFLAG="-m31"
+        ;;
+     s390x)
+       BUILD_ARCH_DIR=s390x
+       INSTALL_ARCH_DIR=s390x
+       JRE_ARCH_DIR=s390x
+       CROSS_TARGET_ARCH=s390x
++      ARCHFLAG="-m64"
+       ;;
+     sh*)
+       BUILD_ARCH_DIR=sh
diff --git a/debian/patches/include-all-srcs.diff b/debian/patches/include-all-srcs.diff
new file mode 100644 (file)
index 0000000..989446d
--- /dev/null
@@ -0,0 +1,57 @@
+Description: Include all source files in src.zip
+Origin: vendor, http://pkgs.fedoraproject.org/cgit/java-1.8.0-openjdk.git/plain/include-all-srcs.patch
+Forwarded: not-needed
+--- a/jdk/make/CreateJars.gmk
++++ b/jdk/make/CreateJars.gmk
+@@ -569,38 +569,12 @@
+ ##########################################################################################
+ SRC_ZIP_INCLUDES = \
+-    com/sun/corba \
+-    com/sun/image/codec/jpeg \
+-    com/sun/imageio \
+-    com/sun/java_cup \
+-    com/sun/javadoc \
+-    com/sun/java/swing \
+-    com/sun/jmx \
+-    com/sun/naming \
+-    com/sun/org/apache \
+-    com/sun/security/auth \
+-    com/sun/security/jgss \
+-    com/sun/source \
++    com \
+     java \
+-    javax/accessibility \
+-    javax/annotation \
+-    javax/imageio \
+-    javax/lang \
+-    javax/management \
+-    javax/naming \
+-    javax/print \
+-    javax/rmi \
+-    javax/script \
+-    javax/security \
+-    javax/sound \
+-    javax/sql \
+-    javax/swing \
+-    javax/tools \
+-    javax/xml \
+-    org/ietf \
+-    org/omg \
+-    org/w3c/dom \
+-    org/xml/sax \
++    javax \
++    jdk \
++    org \
++    sun \
+     #
+ SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes
+@@ -632,7 +606,6 @@
+ $(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \
+     SRC := $(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src, \
+     INCLUDES := $(SRC_ZIP_INCLUDES) launcher, \
+-    EXCLUDES := javax/swing/beaninfo, \
+     SUFFIXES := .java .c .h, \
+     ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \
+     EXTRA_DEPS := $(LAUNCHER_ZIP_SRC)))
diff --git a/debian/patches/java-access-bridge-security.patch b/debian/patches/java-access-bridge-security.patch
new file mode 100644 (file)
index 0000000..2e5d0e1
--- /dev/null
@@ -0,0 +1,15 @@
+# patch only used for builds with java-access-bridge support
+
+--- openjdk/jdk/src/share/lib/security/java.security-linux
++++ openjdk/jdk/src/share/lib/security/java.security-linux
+@@ -149,7 +149,9 @@
+                com.sun.org.apache.xml.internal.security.,\
+                com.sun.org.glassfish.,\
+                org.jcp.xml.dsig.internal.,\
+-               oracle.jrockit.jfr.
++               oracle.jrockit.jfr.,\
++               org.GNOME.Accessibility.,\
++               org.GNOME.Bonobo.
+ #
+ # List of comma-separated packages that start with or equal this string
+ # will cause a security exception to be thrown when
diff --git a/debian/patches/jdk-freetypeScaler-crash.diff b/debian/patches/jdk-freetypeScaler-crash.diff
new file mode 100644 (file)
index 0000000..4399260
--- /dev/null
@@ -0,0 +1,141 @@
+Description:
+
+       Fixing the bad JNI code in the font manager code. Two issues:
+       
+         o The JNIEnv is unique to the thread. It cannot be saved by one thread and
+           reused by another. Use GetEnv instead.
+       
+         o The 'font2D' jobject needs to be converted into a global reference because
+           its lifetime exceeds the lifetime of a native method call.
+       
+Evaluation:
+
+Appropriately register/free everything with the garbage collector.
+
+Fix:
+
+# HG changeset patch
+# User martin
+# Date 1224202830 25200
+# Node ID 3c9d6001d8a90698a3540a2a483717f26a98db78
+# Parent  68730f05449cd4f39ce1cb82adc6c4e57f87554f
+Crash in freetypeScaler.c due to insufficient GC protection
+Summary: NewGlobalRef/DeleteGlobalRef as needed.
+Reviewed-by:
+Contributed-by: yamauchi@google.com
+
+--- a/jdk/make/mapfiles/libfontmanager/mapfile-vers.openjdk
++++ b/jdk/make/mapfiles/libfontmanager/mapfile-vers.openjdk
+@@ -29,6 +29,7 @@
+ SUNWprivate_1.1 {
+       global:
++                JNI_OnLoad;
+                 getSunFontIDs;
+                 newLayoutTableCache;
+                 freeLayoutTableCache;
+--- a/jdk/src/share/native/sun/font/freetypeScaler.c
++++ b/jdk/src/share/native/sun/font/freetypeScaler.c
+@@ -48,16 +48,6 @@
+ #define  ROUND(x) ((int) (x+0.5))
+ typedef struct {
+-    /* Important note:
+-         JNI forbids sharing same env between different threads.
+-         We are safe, because pointer is overwritten every time we get into
+-         JNI call (see setupFTContext).
+-
+-         Pointer is used by font data reading callbacks
+-         such as ReadTTFontFileFunc.
+-
+-         NB: We may consider switching to JNI_GetEnv. */
+-    JNIEnv* env;
+     FT_Library library;
+     FT_Face face;
+     jobject font2D;
+@@ -90,6 +80,13 @@
+ void z_error(char *s) {}
+ #endif
++static JavaVM* jvm = NULL;
++
++JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) {
++    jvm = vm;
++    return JNI_VERSION_1_2;
++}
++
+ /**************** Error handling utilities *****************/
+ static jmethodID invalidateScalerMID;
+@@ -120,6 +117,10 @@
+     FT_Done_Face(scalerInfo->face);
+     FT_Done_FreeType(scalerInfo->library);
++    if (scalerInfo->font2D != NULL) {
++        (*env)->DeleteGlobalRef(env, scalerInfo->font2D);
++    }
++
+     if (scalerInfo->directBuffer != NULL) {
+         (*env)->DeleteGlobalRef(env, scalerInfo->directBuffer);
+     }
+@@ -147,10 +148,9 @@
+ #define FILEDATACACHESIZE 1024
+-/* NB: is it ever called? */
+ static void CloseTTFontFileFunc(FT_Stream stream) {
++    JNIEnv* env = (JNIEnv*) JNU_GetEnv(jvm, JNI_VERSION_1_2);
+     FTScalerInfo *scalerInfo = (FTScalerInfo *) stream->pathname.pointer;
+-    JNIEnv* env = scalerInfo->env;
+     jclass tmpClass = (*env)->FindClass(env, "sun/font/TrueTypeFont");
+     jfieldID platNameField =
+          (*env)->GetFieldID(env, tmpClass, "platName", "Ljava/lang/String;");
+@@ -166,8 +166,8 @@
+                                         unsigned char* destBuffer,
+                                         unsigned long numBytes)
+ {
++    JNIEnv* env = (JNIEnv*) JNU_GetEnv(jvm, JNI_VERSION_1_2);
+     FTScalerInfo *scalerInfo = (FTScalerInfo *) stream->pathname.pointer;
+-    JNIEnv* env = scalerInfo->env;
+     jobject bBuffer;
+     int bread = 0;
+@@ -260,8 +260,7 @@
+     if (scalerInfo == NULL)
+         return 0;
+-    scalerInfo->env = env;
+-    scalerInfo->font2D = font2D;
++    scalerInfo->font2D = (*env)->NewGlobalRef(env, font2D);
+     scalerInfo->fontDataOffset = 0;
+     scalerInfo->fontDataLength = 0;
+     scalerInfo->fileSize = filesize;
+@@ -278,6 +277,7 @@
+     */
+     error = FT_Init_FreeType(&scalerInfo->library);
+     if (error) {
++        (*env)->DeleteGlobalRef(env, scalerInfo->font2D);
+         free(scalerInfo);
+         return 0;
+     }
+@@ -348,6 +348,7 @@
+         }
+         if (scalerInfo->fontData != NULL)
+             free(scalerInfo->fontData);
++        (*env)->DeleteGlobalRef(env, scalerInfo->font2D);
+         free(scalerInfo);
+         return 0;
+     }
+@@ -408,8 +409,10 @@
+                           FTScalerContext *context) {
+     int errCode = 0;
+-    scalerInfo->env = env;
+-    scalerInfo->font2D = font2D;
++    if (scalerInfo->font2D != NULL) {
++        (*env)->DeleteGlobalRef(env, scalerInfo->font2D);
++    }
++    scalerInfo->font2D = (*env)->NewGlobalRef(env, font2D);
+     if (context != NULL) {
+         FT_Set_Transform(scalerInfo->face, &context->transform, NULL);
diff --git a/debian/patches/jdk-pulseaudio.diff b/debian/patches/jdk-pulseaudio.diff
new file mode 100644 (file)
index 0000000..ac11ab7
--- /dev/null
@@ -0,0 +1,16 @@
+--- openjdk/jdk/src/share/lib/sound.properties 2008-08-28 04:15:18.000000000 -0400
++++ openjdk/jdk/src/share/lib/sound.properties 2008-10-03 16:59:21.000000000 -0400
+@@ -37,3 +37,13 @@
+ # Specify the default Receiver by provider and name:
+ # javax.sound.midi.Receiver=com.sun.media.sound.MidiProvider#SunMIDI1
+ #
++
++javax.sound.sampled.Clip=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider
++javax.sound.sampled.Port=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider
++javax.sound.sampled.SourceDataLine=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider
++javax.sound.sampled.TargetDataLine=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider
++
++#javax.sound.sampled.Clip=com.sun.media.sound.DirectAudioDeviceProvider
++#javax.sound.sampled.Port=com.sun.media.sound.PortMixerProvider
++#javax.sound.sampled.SourceDataLine=com.sun.media.sound.DirectAudioDeviceProvider
++#javax.sound.sampled.TargetDataLine=com.sun.media.sound.DirectAudioDeviceProvider
diff --git a/debian/patches/jexec.diff.in b/debian/patches/jexec.diff.in
new file mode 100644 (file)
index 0000000..5f343a1
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/jdk/src/solaris/bin/jexec.c
++++ b/jdk/src/solaris/bin/jexec.c
+@@ -168,9 +168,10 @@
+
+     /* Get the path to the java binary, which is in a known position relative
+      * to our current position, which is in argv[0]. */
+-    if (getJavaPath(argv[argi++], java, RELATIVE_DEPTH) != 0) {
++    if (getJavaPath("/@basedir@/jre/lib/jexec", java, RELATIVE_DEPTH) != 0) {
+         errorExit(errno, MISSING_JAVA_MSG);
+     }
++    argi++;
+     alen = (argc + 2) * (sizeof (const char *));
+     if (alen <= 0 || alen > INT_MAX / sizeof(char *)) {
+         errorExit(errno, BAD_ARG_MSG);
diff --git a/debian/patches/kfreebsd-support-hotspot.diff b/debian/patches/kfreebsd-support-hotspot.diff
new file mode 100644 (file)
index 0000000..dc175b6
--- /dev/null
@@ -0,0 +1,823 @@
+--- src.orig/hotspot/src/os/linux/vm/decoder_linux.cpp
++++ src/hotspot/src/os/linux/vm/decoder_linux.cpp
+@@ -22,6 +22,7 @@
+  *
+  */
++#include "utilities/globalDefinitions.hpp"
+ #include "prims/jvm.h"
+ #include "utilities/decoder_elf.hpp"
+--- src.orig/hotspot/src/os/linux/vm/attachListener_linux.cpp
++++ src/hotspot/src/os/linux/vm/attachListener_linux.cpp
+@@ -39,6 +39,10 @@
+ #define UNIX_PATH_MAX   sizeof(((struct sockaddr_un *)0)->sun_path)
+ #endif
++#if defined(__FreeBSD_kernel__)
++#include <sys/ucred.h>
++#endif
++
+ // The attach mechanism on Linux uses a UNIX domain socket. An attach listener
+ // thread is created at startup or is created on-demand via a signal from
+ // the client tool. The attach listener creates a socket and binds it to a file
+@@ -337,16 +341,26 @@
+     // get the credentials of the peer and check the effective uid/guid
+     // - check with jeff on this.
++#if defined(LOCAL_PEERCRED) /* GNU/kFreeBSD */
++    struct xucred cred_info;
++    socklen_t optlen = sizeof(cred_info);
++    if (::getsockopt(s, SOL_SOCKET, LOCAL_PEERCRED, (void*)&cred_info, &optlen) == -1) {
++#else
+     struct ucred cred_info;
+     socklen_t optlen = sizeof(cred_info);
+     if (::getsockopt(s, SOL_SOCKET, SO_PEERCRED, (void*)&cred_info, &optlen) == -1) {
++#endif
+       ::close(s);
+       continue;
+     }
+     uid_t euid = geteuid();
+     gid_t egid = getegid();
++#if defined(LOCAL_PEERCRED) /* GNU/kFreeBSD */
++    if (cred_info.cr_uid != euid || cred_info.cr_gid != egid) {
++#else
+     if (cred_info.uid != euid || cred_info.gid != egid) {
++#endif 
+       ::close(s);
+       continue;
+     }
+--- src.orig/hotspot/src/os/linux/vm/jvm_linux.cpp
++++ src/hotspot/src/os/linux/vm/jvm_linux.cpp
+@@ -169,7 +169,9 @@
+   "WINCH",      SIGWINCH,       /* Window size change (4.3 BSD, Sun).  */
+   "POLL",       SIGPOLL,        /* Pollable event occurred (System V).  */
+   "IO",         SIGIO,          /* I/O now possible (4.2 BSD).  */
++#ifdef SIGPWR
+   "PWR",        SIGPWR,         /* Power failure restart (System V).  */
++#endif
+ #ifdef SIGSYS
+   "SYS",        SIGSYS          /* Bad system call. Only on some Linuxen! */
+ #endif
+--- src.orig/hotspot/src/os/linux/vm/os_linux.cpp
++++ src/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -22,6 +22,7 @@
+  *
+  */
++#include "utilities/globalDefinitions.hpp"
+ // no precompiled headers
+ #include "classfile/classLoader.hpp"
+ #include "classfile/systemDictionary.hpp"
+@@ -91,8 +92,16 @@
+ # include <semaphore.h>
+ # include <fcntl.h>
+ # include <string.h>
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++# include <sys/param.h>
++# include <sys/sysctl.h>
++#ifndef ETIME
++# define ETIME ETIMEDOUT
++#endif
++#else
+ # include <syscall.h>
+ # include <sys/sysinfo.h>
++#endif
+ # include <gnu/libc-version.h>
+ # include <sys/ipc.h>
+ # include <sys/shm.h>
+@@ -197,11 +206,22 @@
+ }
+ julong os::Linux::available_memory() {
++#ifndef __FreeBSD_kernel__
+   // values in struct sysinfo are "unsigned long"
+   struct sysinfo si;
+   sysinfo(&si);
+   return (julong)si.freeram * si.mem_unit;
++#else
++  int mib[2] = {CTL_HW, HW_USERMEM}, mem;
++  size_t len;
++  len = sizeof(mem);
++  if (sysctl(mib, 2, &mem, &len, NULL, 0) == 0) {
++    return (julong) mem;
++  } else {
++    return 0;
++  }
++#endif
+ }
+ julong os::physical_memory() {
+@@ -239,11 +259,11 @@
+ // i386: 224, ia64: 1105, amd64: 186, sparc 143
+ #ifdef __ia64__
+ #define SYS_gettid 1105
+-#elif __i386__
++#elif defined(__i386__)
+ #define SYS_gettid 224
+-#elif __amd64__
++#elif defined(__amd64__)
+ #define SYS_gettid 186
+-#elif __sparc__
++#elif defined(__sparc__)
+ #define SYS_gettid 143
+ #else
+ #error define gettid for the arch
+@@ -2219,18 +2239,22 @@
+   st->print("Memory:");
+   st->print(" %dk page", os::vm_page_size()>>10);
++#ifndef __FreeBSD_kernel__
+   // values in struct sysinfo are "unsigned long"
+   struct sysinfo si;
+   sysinfo(&si);
++#endif
+   st->print(", physical " UINT64_FORMAT "k",
+             os::physical_memory() >> 10);
+   st->print("(" UINT64_FORMAT "k free)",
+             os::available_memory() >> 10);
++#ifndef __FreeBSD_kernel__
+   st->print(", swap " UINT64_FORMAT "k",
+             ((jlong)si.totalswap * si.mem_unit) >> 10);
+   st->print("(" UINT64_FORMAT "k free)",
+             ((jlong)si.freeswap * si.mem_unit) >> 10);
++#endif
+   st->cr();
+ }
+@@ -6007,6 +6031,7 @@
+ int os::fork_and_exec(char* cmd) {
+   const char * argv[4] = {"sh", "-c", cmd, NULL};
++#ifdef __linux__
+   // fork() in LinuxThreads/NPTL is not async-safe. It needs to run
+   // pthread_atfork handlers and reset pthread library. All we need is a
+   // separate process to execve. Make a direct syscall to fork process.
+@@ -6014,6 +6039,9 @@
+   // the best...
+   pid_t pid = NOT_IA64(syscall(__NR_fork);)
+               IA64_ONLY(fork();)
++#else
++  pid_t pid = fork();
++#endif
+   if (pid < 0) {
+     // fork failed
+@@ -6022,6 +6050,7 @@
+   } else if (pid == 0) {
+     // child process
++#ifdef __linux__
+     // execve() in LinuxThreads will call pthread_kill_other_threads_np()
+     // first to kill every thread on the thread list. Because this list is
+     // not reset by fork() (see notes above), execve() will instead kill
+@@ -6031,6 +6060,9 @@
+     // above.
+     NOT_IA64(syscall(__NR_execve, "/bin/sh", argv, environ);)
+     IA64_ONLY(execve("/bin/sh", (char* const*)argv, environ);)
++#else
++    execve("/bin/sh", (char* const*)argv, environ);
++#endif
+     // execve failed
+     _exit(-1);
+--- src.orig/hotspot/src/os/linux/vm/osThread_linux.cpp
++++ src/hotspot/src/os/linux/vm/osThread_linux.cpp
+@@ -22,6 +22,7 @@
+  *
+  */
++#include "utilities/globalDefinitions.hpp"
+ // no precompiled headers
+ #include "runtime/mutex.hpp"
+ #include "runtime/osThread.hpp"
+--- src.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
++++ src/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+@@ -22,6 +22,7 @@
+  *
+  */
++#include "utilities/globalDefinitions.hpp"
+ // no precompiled headers
+ #include "asm/macroAssembler.hpp"
+ #include "classfile/classLoader.hpp"
+@@ -74,6 +75,7 @@
+ # include <ucontext.h>
+ # include <fpu_control.h>
++#ifdef __linux__
+ #ifdef AMD64
+ #define REG_SP REG_RSP
+ #define REG_PC REG_RIP
+@@ -87,6 +89,54 @@
+ #define SPELL_REG_SP "esp"
+ #define SPELL_REG_FP "ebp"
+ #endif // AMD64
++#endif
++
++#if defined(__FreeBSD_kernel__)
++#define context_trapno uc_mcontext.mc_trapno
++#ifdef AMD64
++#define SPELL_REG_SP "rsp"
++#define SPELL_REG_FP "rbp"
++#define context_sp uc_mcontext.mc_rsp
++#define context_pc uc_mcontext.mc_rip
++#define context_fp uc_mcontext.mc_rbp
++#define context_rip uc_mcontext.mc_rip
++#define context_rsp uc_mcontext.mc_rsp
++#define context_rbp uc_mcontext.mc_rbp
++#define context_flags uc_mcontext.mc_flags
++#define context_err uc_mcontext.mc_err
++#define context_rax uc_mcontext.mc_rax
++#define context_rbx uc_mcontext.mc_rbx
++#define context_rcx uc_mcontext.mc_rcx
++#define context_rdx uc_mcontext.mc_rdx
++#define context_rsi uc_mcontext.mc_rsi
++#define context_rdi uc_mcontext.mc_rdi
++#define context_r8 uc_mcontext.mc_r8
++#define context_r9 uc_mcontext.mc_r9
++#define context_r10 uc_mcontext.mc_r10
++#define context_r11 uc_mcontext.mc_r11
++#define context_r12 uc_mcontext.mc_r12
++#define context_r13 uc_mcontext.mc_r13
++#define context_r14 uc_mcontext.mc_r14
++#define context_r15 uc_mcontext.mc_r15
++#else
++#define SPELL_REG_SP "esp"
++#define SPELL_REG_FP "ebp"
++#define context_sp uc_mcontext.mc_esp
++#define context_pc uc_mcontext.mc_eip
++#define context_fp uc_mcontext.mc_ebp
++#define context_eip uc_mcontext.mc_eip
++#define context_esp uc_mcontext.mc_esp
++#define context_eax uc_mcontext.mc_eax
++#define context_ebx uc_mcontext.mc_ebx
++#define context_ecx uc_mcontext.mc_ecx
++#define context_edx uc_mcontext.mc_edx
++#define context_ebp uc_mcontext.mc_ebp
++#define context_esi uc_mcontext.mc_esi
++#define context_edi uc_mcontext.mc_edi
++#define context_eflags uc_mcontext.mc_eflags
++#define context_trapno uc_mcontext.mc_trapno
++#endif // AMD64
++#endif
+ PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
+@@ -118,15 +168,27 @@
+ }
+ address os::Linux::ucontext_get_pc(ucontext_t * uc) {
++#if defined(__FreeBSD_kernel__)
++  return (address)uc->context_pc;
++#else
+   return (address)uc->uc_mcontext.gregs[REG_PC];
++#endif
+ }
+ intptr_t* os::Linux::ucontext_get_sp(ucontext_t * uc) {
++#if defined(__FreeBSD_kernel__)
++  return (intptr_t*)uc->context_sp;
++#else
+   return (intptr_t*)uc->uc_mcontext.gregs[REG_SP];
++#endif
+ }
+ intptr_t* os::Linux::ucontext_get_fp(ucontext_t * uc) {
++#if defined(__FreeBSD_kernel__)
++  return (intptr_t*)uc->context_fp;
++#else
+   return (intptr_t*)uc->uc_mcontext.gregs[REG_FP];
++#endif
+ }
+ // For Forte Analyzer AsyncGetCallTrace profiling support - thread
+@@ -278,7 +340,11 @@
+     pc = (address) os::Linux::ucontext_get_pc(uc);
+     if (StubRoutines::is_safefetch_fault(pc)) {
++#if defined(__FreeBSD_kernel__)
++      uc->context_pc = intptr_t(StubRoutines::continuation_for_safefetch_fault(pc));
++#else
+       uc->uc_mcontext.gregs[REG_PC] = intptr_t(StubRoutines::continuation_for_safefetch_fault(pc));
++#endif
+       return 1;
+     }
+@@ -443,7 +509,11 @@
+   // Furthermore, a false-positive should be harmless.
+   if (UnguardOnExecutionViolation > 0 &&
+       (sig == SIGSEGV || sig == SIGBUS) &&
++#if defined(__FreeBSD_kernel__)
++      uc->context_trapno == trap_page_fault) {
++#else
+       uc->uc_mcontext.gregs[REG_TRAPNO] == trap_page_fault) {
++#endif
+     int page_size = os::vm_page_size();
+     address addr = (address) info->si_addr;
+     address pc = os::Linux::ucontext_get_pc(uc);
+@@ -513,7 +583,11 @@
+     // save all thread context in case we need to restore it
+     if (thread != NULL) thread->set_saved_exception_pc(pc);
++#if defined(__FreeBSD_kernel__)
++    uc->context_pc = (intptr_t)stub;
++#else
+     uc->uc_mcontext.gregs[REG_PC] = (greg_t)stub;
++#endif
+     return true;
+   }
+@@ -765,6 +839,7 @@
+   ucontext_t *uc = (ucontext_t*)context;
+   st->print_cr("Registers:");
++#ifdef __linux__
+ #ifdef AMD64
+   st->print(  "RAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RAX]);
+   st->print(", RBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBX]);
+@@ -807,6 +882,48 @@
+   st->print(", EFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]);
+   st->print(", CR2=" INTPTR_FORMAT, uc->uc_mcontext.cr2);
+ #endif // AMD64
++#elif defined(__FreeBSD_kernel__)
++#ifdef AMD64
++  st->print(  "RAX=" INTPTR_FORMAT, uc->context_rax);
++  st->print(", RBX=" INTPTR_FORMAT, uc->context_rbx);
++  st->print(", RCX=" INTPTR_FORMAT, uc->context_rcx);
++  st->print(", RDX=" INTPTR_FORMAT, uc->context_rdx);
++  st->cr();
++  st->print(  "RSP=" INTPTR_FORMAT, uc->context_rsp);
++  st->print(", RBP=" INTPTR_FORMAT, uc->context_rbp);
++  st->print(", RSI=" INTPTR_FORMAT, uc->context_rsi);
++  st->print(", RDI=" INTPTR_FORMAT, uc->context_rdi);
++  st->cr();
++  st->print(  "R8 =" INTPTR_FORMAT, uc->context_r8);
++  st->print(", R9 =" INTPTR_FORMAT, uc->context_r9);
++  st->print(", R10=" INTPTR_FORMAT, uc->context_r10);
++  st->print(", R11=" INTPTR_FORMAT, uc->context_r11);
++  st->cr();
++  st->print(  "R12=" INTPTR_FORMAT, uc->context_r12);
++  st->print(", R13=" INTPTR_FORMAT, uc->context_r13);
++  st->print(", R14=" INTPTR_FORMAT, uc->context_r14);
++  st->print(", R15=" INTPTR_FORMAT, uc->context_r15);
++  st->cr();
++  st->print(  "RIP=" INTPTR_FORMAT, uc->context_rip);
++  st->print(", EFLAGS=" INTPTR_FORMAT, uc->context_flags);
++  st->print(", ERR=" INTPTR_FORMAT, uc->context_err);
++  st->cr();
++  st->print("  TRAPNO=" INTPTR_FORMAT, uc->context_trapno);
++#else
++  st->print(  "EAX=" INTPTR_FORMAT, uc->context_eax);
++  st->print(", EBX=" INTPTR_FORMAT, uc->context_ebx);
++  st->print(", ECX=" INTPTR_FORMAT, uc->context_ecx);
++  st->print(", EDX=" INTPTR_FORMAT, uc->context_edx);
++  st->cr();
++  st->print(  "ESP=" INTPTR_FORMAT, uc->context_esp);
++  st->print(", EBP=" INTPTR_FORMAT, uc->context_ebp);
++  st->print(", ESI=" INTPTR_FORMAT, uc->context_esi);
++  st->print(", EDI=" INTPTR_FORMAT, uc->context_edi);
++  st->cr();
++  st->print(  "EIP=" INTPTR_FORMAT, uc->context_eip);
++  st->print(", EFLAGS=" INTPTR_FORMAT, uc->context_eflags);
++#endif // AMD64
++#endif
+   st->cr();
+   st->cr();
+@@ -837,6 +954,7 @@
+   // this is only for the "general purpose" registers
++#ifdef __linux__
+ #ifdef AMD64
+   st->print("RAX="); print_location(st, uc->uc_mcontext.gregs[REG_RAX]);
+   st->print("RBX="); print_location(st, uc->uc_mcontext.gregs[REG_RBX]);
+@@ -864,6 +982,35 @@
+   st->print("ESI="); print_location(st, uc->uc_mcontext.gregs[REG_ESI]);
+   st->print("EDI="); print_location(st, uc->uc_mcontext.gregs[REG_EDI]);
+ #endif // AMD64
++#elif defined(__FreeBSD_kernel__)
++#ifdef AMD64
++  st->print("RAX="); print_location(st, uc->context_rax);
++  st->print("RBX="); print_location(st, uc->context_rbx);
++  st->print("RCX="); print_location(st, uc->context_rcx);
++  st->print("RDX="); print_location(st, uc->context_rdx);
++  st->print("RSP="); print_location(st, uc->context_rsp);
++  st->print("RBP="); print_location(st, uc->context_rbp);
++  st->print("RSI="); print_location(st, uc->context_rsi);
++  st->print("RDI="); print_location(st, uc->context_rdi);
++  st->print("R8 ="); print_location(st, uc->context_r8);
++  st->print("R9 ="); print_location(st, uc->context_r9);
++  st->print("R10="); print_location(st, uc->context_r10);
++  st->print("R11="); print_location(st, uc->context_r11);
++  st->print("R12="); print_location(st, uc->context_r12);
++  st->print("R13="); print_location(st, uc->context_r13);
++  st->print("R14="); print_location(st, uc->context_r14);
++  st->print("R15="); print_location(st, uc->context_r15);
++#else
++  st->print("EAX="); print_location(st, uc->context_eax);
++  st->print("EBX="); print_location(st, uc->context_ebx);
++  st->print("ECX="); print_location(st, uc->context_ecx);
++  st->print("EDX="); print_location(st, uc->context_edx);
++  st->print("ESP="); print_location(st, uc->context_esp);
++  st->print("EBP="); print_location(st, uc->context_ebp);
++  st->print("ESI="); print_location(st, uc->context_esi);
++  st->print("EDI="); print_location(st, uc->context_edi);
++#endif // AMD64
++#endif
+   st->cr();
+ }
+--- src.orig/hotspot/src/share/vm/memory/allocation.hpp
++++ src/hotspot/src/share/vm/memory/allocation.hpp
+@@ -25,8 +25,8 @@
+ #ifndef SHARE_VM_MEMORY_ALLOCATION_HPP
+ #define SHARE_VM_MEMORY_ALLOCATION_HPP
+-#include "runtime/globals.hpp"
+ #include "utilities/globalDefinitions.hpp"
++#include "runtime/globals.hpp"
+ #include "utilities/macros.hpp"
+ #ifdef COMPILER1
+ #include "c1/c1_globals.hpp"
+--- src.orig/hotspot/src/share/vm/ci/ciObject.hpp
++++ src/hotspot/src/share/vm/ci/ciObject.hpp
+@@ -25,6 +25,7 @@
+ #ifndef SHARE_VM_CI_CIOBJECT_HPP
+ #define SHARE_VM_CI_CIOBJECT_HPP
++#include "utilities/globalDefinitions.hpp"
+ #include "ci/ciBaseObject.hpp"
+ #include "ci/ciClassList.hpp"
+ #include "memory/allocation.hpp"
+--- src.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
++++ src/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
+@@ -22,6 +22,7 @@
+  *
+  */
++#include "utilities/globalDefinitions.hpp"
+ // no precompiled headers
+ #include "classfile/vmSymbols.hpp"
+ #include "gc_interface/collectedHeap.hpp"
+--- src.orig/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
++++ src/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
+@@ -76,7 +76,7 @@
+ # include <sys/procfs.h>
+ # endif
+-#if defined(LINUX) || defined(_ALLBSD_SOURCE)
++#if defined(LINUX) || defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__)
+ #ifndef __STDC_LIMIT_MACROS
+ #define __STDC_LIMIT_MACROS
+ #endif // __STDC_LIMIT_MACROS
+--- src.orig/hotspot/make/defs.make
++++ src/hotspot/make/defs.make
+@@ -167,9 +167,6 @@
+ # Windows should have OS predefined
+ ifeq ($(OS),)
+   OS   := $(shell uname -s)
+-  ifneq ($(findstring BSD,$(OS)),)
+-    OS=bsd
+-  endif
+   ifeq ($(OS), Darwin)
+     OS=bsd
+   endif
+@@ -195,6 +192,10 @@
+   OSNAME=linux
+ endif
++ifeq ($(OS), GNU/kFreeBSD)
++  OSNAME=linux
++endif
++
+ # Determinations of default make arguments and platform specific settings
+ MAKE_ARGS=
+--- src.orig/hotspot/make/linux/Makefile
++++ src/hotspot/make/linux/Makefile
+@@ -232,6 +232,9 @@
+ SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3%
+ OS_VERSION := $(shell uname -r)
+ EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION))
++ifeq ($(shell uname -s), GNU/kFreeBSD)
++EMPTY_IF_NOT_SUPPORTED = supported
++endif
+ check_os_version:
+ ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),)
+--- src.orig/hotspot/make/linux/makefiles/defs.make
++++ src/hotspot/make/linux/makefiles/defs.make
+@@ -102,7 +102,7 @@
+ endif
+ # i686/i586 ie 32-bit x86
+-ifneq (,$(findstring $(ARCH), i686 i586))
++ifneq (,$(filter i686 i386, $(ARCH)))
+   ARCH_DATA_MODEL  = 32
+   PLATFORM         = linux-i586
+   VM_PLATFORM      = linux_i486
+--- src.orig/hotspot/agent/src/os/linux/ps_core.c
++++ src/hotspot/agent/src/os/linux/ps_core.c
+@@ -551,11 +551,16 @@
+       return false;
+    // copy regs
++#if defined(__FreeBSD_kernel__)
++   memcpy(&newthr->regs, &prstat->pr_reg, sizeof(struct user_regs_struct));
++#else
+    memcpy(&newthr->regs, prstat->pr_reg, sizeof(struct user_regs_struct));
++#endif
+    if (is_debug()) {
+       print_debug("integer regset\n");
+ #ifdef i386
++#ifdef __linux__
+       // print the regset
+       print_debug("\teax = 0x%x\n", newthr->regs.eax);
+       print_debug("\tebx = 0x%x\n", newthr->regs.ebx);
+@@ -566,9 +571,21 @@
+       print_debug("\tesi = 0x%x\n", newthr->regs.esi);
+       print_debug("\tedi = 0x%x\n", newthr->regs.edi);
+       print_debug("\teip = 0x%x\n", newthr->regs.eip);
++#elif defined(__FreeBSD_kernel__)
++      print_debug("\teax = 0x%x\n", newthr->regs.r_eax);
++      print_debug("\tebx = 0x%x\n", newthr->regs.r_ebx);
++      print_debug("\tecx = 0x%x\n", newthr->regs.r_ecx);
++      print_debug("\tedx = 0x%x\n", newthr->regs.r_edx);
++      print_debug("\tesp = 0x%x\n", newthr->regs.r_esp);
++      print_debug("\tebp = 0x%x\n", newthr->regs.r_ebp);
++      print_debug("\tesi = 0x%x\n", newthr->regs.r_esi);
++      print_debug("\tedi = 0x%x\n", newthr->regs.r_edi);
++      print_debug("\teip = 0x%x\n", newthr->regs.r_eip);
++#endif
+ #endif
+ #if defined(amd64) || defined(x86_64)
++#ifdef __linux__
+       // print the regset
+       print_debug("\tr15 = 0x%lx\n", newthr->regs.r15);
+       print_debug("\tr14 = 0x%lx\n", newthr->regs.r14);
+@@ -597,6 +614,27 @@
+       print_debug("\tes = 0x%lx\n", newthr->regs.es);
+       print_debug("\tfs = 0x%lx\n", newthr->regs.fs);
+       print_debug("\tgs = 0x%lx\n", newthr->regs.gs);
++#elif defined(__FreeBSD_kernel__)
++      print_debug("\tr15 = 0x%lx\n", newthr->regs.r_r15);
++      print_debug("\tr14 = 0x%lx\n", newthr->regs.r_r14);
++      print_debug("\tr13 = 0x%lx\n", newthr->regs.r_r13);
++      print_debug("\tr12 = 0x%lx\n", newthr->regs.r_r12);
++      print_debug("\trbp = 0x%lx\n", newthr->regs.r_rbp);
++      print_debug("\trbx = 0x%lx\n", newthr->regs.r_rbx);
++      print_debug("\tr11 = 0x%lx\n", newthr->regs.r_r11);
++      print_debug("\tr10 = 0x%lx\n", newthr->regs.r_r10);
++      print_debug("\tr9 = 0x%lx\n", newthr->regs.r_r9);
++      print_debug("\tr8 = 0x%lx\n", newthr->regs.r_r8);
++      print_debug("\trax = 0x%lx\n", newthr->regs.r_rax);
++      print_debug("\trcx = 0x%lx\n", newthr->regs.r_rcx);
++      print_debug("\trdx = 0x%lx\n", newthr->regs.r_rdx);
++      print_debug("\trsi = 0x%lx\n", newthr->regs.r_rsi);
++      print_debug("\trdi = 0x%lx\n", newthr->regs.r_rdi);
++      print_debug("\trip = 0x%lx\n", newthr->regs.r_rip);
++      print_debug("\tcs = 0x%lx\n", newthr->regs.r_cs);
++      print_debug("\trsp = 0x%lx\n", newthr->regs.r_rsp);
++      print_debug("\tss = 0x%lx\n", newthr->regs.r_ss);
++#endif
+ #endif
+    }
+--- src.orig/hotspot/agent/src/os/linux/ps_proc.c
++++ src/hotspot/agent/src/os/linux/ps_proc.c
+@@ -40,6 +40,22 @@
+ #define __WALL          0x40000000  // Copied from /usr/include/linux/wait.h
+ #endif
++#ifndef PTRACE_PEEKDATA
++#define PTRACE_PEEKDATA PT_READ_D
++#endif
++
++#ifndef PTRACE_ATTACH
++#define PTRACE_ATTACH PT_ATTACH
++#endif
++
++#ifndef PTRACE_DETACH
++#define PTRACE_DETACH PT_DETACH
++#endif
++
++#ifndef PTRACE_CONT
++#define PTRACE_CONT PT_CONTINUE
++#endif
++
+ // This file has the libproc implementation specific to live process
+ // For core files, refer to ps_core.c
+@@ -57,7 +73,11 @@
+ // before calling process_read_data.
+ static bool process_read_data(struct ps_prochandle* ph, uintptr_t addr, char *buf, size_t size) {
++#if defined(__FreeBSD_kernel__)
++  int rslt;
++#else
+   long rslt;
++#endif
+   size_t i, words;
+   uintptr_t end_addr = addr + size;
+   uintptr_t aligned_addr = align(addr, sizeof(long));
+@@ -65,36 +85,62 @@
+   if (aligned_addr != addr) {
+     char *ptr = (char *)&rslt;
+     errno = 0;
++#if defined(__FreeBSD_kernel__)
++    rslt = ptrace(PTRACE_PEEKDATA, ph->pid, (caddr_t) aligned_addr, 0);
++#else
+     rslt = ptrace(PTRACE_PEEKDATA, ph->pid, aligned_addr, 0);
++#endif
+     if (errno) {
+       print_debug("ptrace(PTRACE_PEEKDATA, ..) failed for %d bytes @ %lx\n", size, addr);
+       return false;
+     }
+     for (; aligned_addr != addr; aligned_addr++, ptr++);
++#if defined(__FreeBSD_kernel__)
++    for (; ((intptr_t)aligned_addr % sizeof(int)) && aligned_addr < end_addr;
++#else
+     for (; ((intptr_t)aligned_addr % sizeof(long)) && aligned_addr < end_addr;
++#endif
+         aligned_addr++)
+        *(buf++) = *(ptr++);
+   }
++#if defined(__FreeBSD_kernel__)
++  words = (end_addr - aligned_addr) / sizeof(int);
++#else
+   words = (end_addr - aligned_addr) / sizeof(long);
++#endif
+   // assert((intptr_t)aligned_addr % sizeof(long) == 0);
+   for (i = 0; i < words; i++) {
+     errno = 0;
++#if defined(__FreeBSD_kernel__)
++    rslt = ptrace(PTRACE_PEEKDATA, ph->pid, (caddr_t) aligned_addr, 0);
++#else
+     rslt = ptrace(PTRACE_PEEKDATA, ph->pid, aligned_addr, 0);
++#endif
+     if (errno) {
+       print_debug("ptrace(PTRACE_PEEKDATA, ..) failed for %d bytes @ %lx\n", size, addr);
+       return false;
+     }
++#if defined(__FreeBSD_kernel__)
++    *(int *)buf = rslt;
++    buf += sizeof(int);
++    aligned_addr += sizeof(int);
++#else
+     *(long *)buf = rslt;
+     buf += sizeof(long);
+     aligned_addr += sizeof(long);
++#endif
+   }
+   if (aligned_addr != end_addr) {
+     char *ptr = (char *)&rslt;
+     errno = 0;
++#if defined(__FreeBSD_kernel__)
++    rslt = ptrace(PTRACE_PEEKDATA, ph->pid, (caddr_t) aligned_addr, 0);
++#else
+     rslt = ptrace(PTRACE_PEEKDATA, ph->pid, aligned_addr, 0);
++#endif
+     if (errno) {
+       print_debug("ptrace(PTRACE_PEEKDATA, ..) failed for %d bytes @ %lx\n", size, addr);
+       return false;
+@@ -133,7 +179,11 @@
+ #endif
+ #ifdef PTRACE_GETREGS_REQ
++#if defined(__FreeBSD_kernel__)
++ if (ptrace_getregs(PTRACE_GETREGS_REQ, pid, (caddr_t) user, 0) < 0) {
++#else
+  if (ptrace_getregs(PTRACE_GETREGS_REQ, pid, user, NULL) < 0) {
++#endif
+    print_debug("ptrace(PTRACE_GETREGS, ...) failed for lwp %d\n", pid);
+    return false;
+  }
+@@ -205,7 +255,11 @@
+ // attach to a process/thread specified by "pid"
+ static bool ptrace_attach(pid_t pid) {
++#if defined(__FreeBSD_kernel__)
++  if (ptrace(PTRACE_ATTACH, pid, NULL, 0) < 0) {
++#else
+   if (ptrace(PTRACE_ATTACH, pid, NULL, NULL) < 0) {
++#endif
+     print_debug("ptrace(PTRACE_ATTACH, ..) failed for %d\n", pid);
+     return false;
+   } else {
+@@ -299,7 +353,11 @@
+ // detach a given pid
+ static bool ptrace_detach(pid_t pid) {
++#if defined(__FreeBSD_kernel__)
++  if (pid && ptrace(PTRACE_DETACH, pid, NULL, 0) < 0) {
++#else
+   if (pid && ptrace(PTRACE_DETACH, pid, NULL, NULL) < 0) {
++#endif
+     print_debug("ptrace(PTRACE_DETACH, ..) failed for %d\n", pid);
+     return false;
+   } else {
+--- src.orig/hotspot/agent/src/os/linux/libproc.h
++++ src/hotspot/agent/src/os/linux/libproc.h
+@@ -28,6 +28,10 @@
+ #include <jni.h>
+ #include <unistd.h>
+ #include <stdint.h>
++#if defined(__FreeBSD_kernel__)
++#include <sys/types.h>
++#include <machine/reg.h>
++#endif
+ #include "proc_service.h"
+ #if defined(arm) || defined(ppc)
+@@ -72,6 +76,10 @@
+ #define user_regs_struct  pt_regs
+ #endif
++#if defined(__FreeBSD_kernel__)
++#define user_regs_struct reg
++#endif
++
+ // This C bool type must be int for compatibility with Linux calls and
+ // it would be a mistake to equivalence it to C++ bool on many platforms
+--- src.orig/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c
++++ src/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c
+@@ -364,7 +364,7 @@
+ #ifdef i386
+ #define REG_INDEX(reg) sun_jvm_hotspot_debugger_x86_X86ThreadContext_##reg
+-
++#ifdef __linux__
+   regs[REG_INDEX(GS)]  = (uintptr_t) gregs.xgs;
+   regs[REG_INDEX(FS)]  = (uintptr_t) gregs.xfs;
+   regs[REG_INDEX(ES)]  = (uintptr_t) gregs.xes;
+@@ -380,12 +380,28 @@
+   regs[REG_INDEX(PC)] = (uintptr_t) gregs.eip;
+   regs[REG_INDEX(CS)]  = (uintptr_t) gregs.xcs;
+   regs[REG_INDEX(SS)]  = (uintptr_t) gregs.xss;
+-
++#elif defined(__FreeBSD_kernel__)
++  regs[REG_INDEX(GS)]  = (uintptr_t) gregs.r_gs;
++  regs[REG_INDEX(FS)]  = (uintptr_t) gregs.r_fs;
++  regs[REG_INDEX(ES)]  = (uintptr_t) gregs.r_es;
++  regs[REG_INDEX(DS)]  = (uintptr_t) gregs.r_ds;
++  regs[REG_INDEX(EDI)] = (uintptr_t) gregs.r_edi;
++  regs[REG_INDEX(ESI)] = (uintptr_t) gregs.r_esi;
++  regs[REG_INDEX(FP)] = (uintptr_t) gregs.r_ebp;
++  regs[REG_INDEX(SP)] = (uintptr_t) gregs.r_isp;
++  regs[REG_INDEX(EBX)] = (uintptr_t) gregs.r_ebx;
++  regs[REG_INDEX(EDX)] = (uintptr_t) gregs.r_edx;
++  regs[REG_INDEX(ECX)] = (uintptr_t) gregs.r_ecx;
++  regs[REG_INDEX(EAX)] = (uintptr_t) gregs.r_eax;
++  regs[REG_INDEX(PC)] = (uintptr_t) gregs.r_eip;
++  regs[REG_INDEX(CS)]  = (uintptr_t) gregs.r_cs;
++  regs[REG_INDEX(SS)]  = (uintptr_t) gregs.r_ss;
++#endif
+ #endif /* i386 */
+ #ifdef amd64
+ #define REG_INDEX(reg) sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_##reg
+-
++#ifdef __linux__
+   regs[REG_INDEX(R15)] = gregs.r15;
+   regs[REG_INDEX(R14)] = gregs.r14;
+   regs[REG_INDEX(R13)] = gregs.r13;
+@@ -411,7 +427,27 @@
+   regs[REG_INDEX(ES)] = gregs.es;
+   regs[REG_INDEX(FS)] = gregs.fs;
+   regs[REG_INDEX(GS)] = gregs.gs;
+-
++#elif defined(__FreeBSD_kernel__)
++  regs[REG_INDEX(R15)] = gregs.r_r15;
++  regs[REG_INDEX(R14)] = gregs.r_r14;
++  regs[REG_INDEX(R13)] = gregs.r_r13;
++  regs[REG_INDEX(R12)] = gregs.r_r12;
++  regs[REG_INDEX(RBP)] = gregs.r_rbp;
++  regs[REG_INDEX(RBX)] = gregs.r_rbx;
++  regs[REG_INDEX(R11)] = gregs.r_r11;
++  regs[REG_INDEX(R10)] = gregs.r_r10;
++  regs[REG_INDEX(R9)] = gregs.r_r9;
++  regs[REG_INDEX(R8)] = gregs.r_r8;
++  regs[REG_INDEX(RAX)] = gregs.r_rax;
++  regs[REG_INDEX(RCX)] = gregs.r_rcx;
++  regs[REG_INDEX(RDX)] = gregs.r_rdx;
++  regs[REG_INDEX(RSI)] = gregs.r_rsi;
++  regs[REG_INDEX(RDI)] = gregs.r_rdi;
++  regs[REG_INDEX(RIP)] = gregs.r_rip;
++  regs[REG_INDEX(CS)] = gregs.r_cs;
++  regs[REG_INDEX(RSP)] = gregs.r_rsp;
++  regs[REG_INDEX(SS)] = gregs.r_ss;
++#endif
+ #endif /* amd64 */
+ #if defined(sparc) || defined(sparcv9)
diff --git a/debian/patches/kfreebsd-support-jamvm.diff b/debian/patches/kfreebsd-support-jamvm.diff
new file mode 100644 (file)
index 0000000..cd44bcf
--- /dev/null
@@ -0,0 +1,42 @@
+Description: 
+ - Add ifdef TIOCINQ = FIONREAD
+ jamvm/src/classlib/openjdk/jvm.c
+ - Update configure for kfreebsd-amd64
+ jamvm/jamvm/configure.ac
+Author: Damien Raude-Morvan <drazzib@debian.org>
+Last-Update: 2011-08-05
+Forwarded: no
+
+--- a/jamvm/configure.ac
++++ b/jamvm/configure.ac
+@@ -38,6 +38,7 @@
+ i386-*-freebsd*) host_os=bsd libdl_needed=no ;;
+ i386-*-solaris*) host_cpu=x86 host_os=solaris ;;
+ x86_64-*-linux*) host_os=linux ;;
++x86_64-*-kfreebsd*) host_os=linux ;;
+ hppa*-*-linux*) host_cpu=parisc host_os=linux ;;
+ mips*-*-linux*) host_cpu=mips host_os=linux ;;
+ x86_64-*-openbsd*) host_os=bsd libdl_needed=no ;;
+--- a/jamvm/configure
++++ b/jamvm/configure
+@@ -2926,6 +2926,7 @@
+ i386-*-freebsd*) host_os=bsd libdl_needed=no ;;
+ i386-*-solaris*) host_cpu=x86 host_os=solaris ;;
+ x86_64-*-linux*) host_os=linux ;;
++x86_64-*-kfreebsd*) host_os=linux ;;
+ hppa*-*-linux*) host_cpu=parisc host_os=linux ;;
+ mips*-*-linux*) host_cpu=mips host_os=linux ;;
+ x86_64-*-openbsd*) host_os=bsd libdl_needed=no ;;
+--- a/jamvm/src/classlib/openjdk/jvm.c
++++ b/jamvm/src/classlib/openjdk/jvm.c
+@@ -63,6 +63,10 @@
+ #define have_monotonic_clock FALSE
+ #endif
++#ifndef TIOCINQ
++#define TIOCINQ FIONREAD
++#endif
++
+ static Class *cloneable_class, *constant_pool_class;
+ static Class *exception_class, *runtime_excp_class;
diff --git a/debian/patches/kfreebsd-support-jdk.diff b/debian/patches/kfreebsd-support-jdk.diff
new file mode 100644 (file)
index 0000000..a964a43
--- /dev/null
@@ -0,0 +1,1305 @@
+Description: Initial GNU/kFreeBSD support for openjdk-8 (JDK part)
+ - Alter build system to consider GNU/kFreeBSD like linux
+   since this port is libc based.
+   openjdk/jdk/make/common/shared/Platform.gmk
+ - ENODATA is undefined :
+   openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java
+   openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java
+ - sendfile implementation :
+   openjdk/jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c
+   (from bsd-port)
+ - BSD network stack usage :
+   openjdk/jdk/src/solaris/native/java/net/*
+   (from bsd-port)
+ - Don't build sctp protocol
+   openjdk/jdk/make/com/sun/nio/Makefile
+ - Don't build jsoundalsa
+   openjdk/jdk/make/javax/sound/Makefile
+ - Disable epoll feature and so LinuxWatchService
+   openjdk/jdk/make/java/nio/Makefile
+Author: Damien Raude-Morvan <drazzib@debian.org>
+Author: Guido Günther <agx@sigxcpu.org>
+Author: Steven Chamberlain <steven@pyro.eu.org>
+Last-Update: 2014-07-11
+Forwarded: no
+
+--- src.orig/jdk/src/solaris/bin/ergo_i586.c
++++ src/jdk/src/solaris/bin/ergo_i586.c
+@@ -106,7 +106,7 @@
+ #endif /* __solaris__ */
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ /*
+  * A utility method for asking the CPU about itself.
+--- src.orig/jdk/src/solaris/bin/jexec.c
++++ src/jdk/src/solaris/bin/jexec.c
+@@ -76,7 +76,7 @@
+ #include <string.h>
+ #include <limits.h>
+ #include <errno.h>
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ #  include <sys/types.h>
+ #  include <sys/stat.h>
+ #  include <fcntl.h>
+@@ -92,7 +92,7 @@
+ static const char * MISSING_JAVA_MSG = "can't locate java";
+ static const char * BAD_ARG_MSG      = "incorrect number of arguments";
+ static const char * MEM_FAILED_MSG   = "memory allocation failed";
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ static const char * BAD_PATHNAME_MSG = "invalid path";
+ static const char * BAD_FILE_MSG     = "invalid file";
+ static const char * BAD_MAGIC_MSG    = "invalid file (bad magic number)";
+@@ -101,7 +101,7 @@
+ /* Define a constant that represents the number of directories to pop off the
+  * current location to find the java binary */
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ static const int RELATIVE_DEPTH = 2;
+ #else /* Solaris */
+ static const int RELATIVE_DEPTH = 3;
+@@ -114,7 +114,7 @@
+ static const char * JAR_FLAG = "-jar";
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ /* largest possible size for a local file header */
+ static const size_t CHUNK_SIZE = 65535;
+@@ -126,7 +126,7 @@
+ int main(int argc, const char * argv[]);
+ void errorExit(int error, const char * message);
+ int getJavaPath(const char * path, char * buf, int depth);
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ const char * isJar(const char * path);
+ #endif
+@@ -182,7 +182,7 @@
+     }
+     nargv[nargc++] = java;
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+     /* The "-jar" flag is already in the original args list on Solaris,
+      * so it only needs to be added on Linux. */
+     nargv[nargc++] = JAR_FLAG;
+@@ -192,7 +192,7 @@
+         const char * jarfile = argv[argi++];
+         const char * message = NULL;
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+         /* On Linux we also need to make sure argv[1] is really a JAR
+          * file (this will also resolve any symlinks, which helps). */
+         char jarPath[PATH_MAX + 1];
+@@ -301,7 +301,7 @@
+ }
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ /*
+  * Check if the given file is a JAR file.
+  *
+--- src.orig/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c
++++ src/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c
+@@ -42,7 +42,7 @@
+ #include <strings.h>
+ #endif
+-#if defined(__linux__) || defined(_AIX)
++#if defined(__linux__) || defined(_AIX) || defined(__GLIBC__)
+ #include <string.h>
+ #endif
+--- src.orig/jdk/src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c
++++ src/jdk/src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c
+@@ -35,7 +35,7 @@
+ #include <strings.h>
+ #endif
+-#if defined(__linux__)
++#if defined(__linux__) || defined(__GLIBC__)
+ #include <string.h>
+ #endif
+--- src.orig/jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c
++++ src/jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c
+@@ -41,7 +41,7 @@
+ #include <sys/sendfile.h>
+ #elif defined(_AIX)
+ #include <sys/socket.h>
+-#elif defined(_ALLBSD_SOURCE)
++#elif defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__)
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/uio.h>
+@@ -213,6 +213,31 @@
+     if (numBytes > 0)
+         return numBytes;
++
++    if (result == -1) {
++        if (errno == EAGAIN)
++            return IOS_UNAVAILABLE;
++        if (errno == EOPNOTSUPP || errno == ENOTSOCK || errno == ENOTCONN)
++            return IOS_UNSUPPORTED_CASE;
++        if ((errno == EINVAL) && ((ssize_t)count >= 0))
++            return IOS_UNSUPPORTED_CASE;
++        if (errno == EINTR)
++            return IOS_INTERRUPTED;
++        JNU_ThrowIOExceptionWithLastError(env, "Transfer failed");
++        return IOS_THROWN;
++    }
++
++    return result;
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++    off_t numBytes;
++    int result;
++
++    numBytes = count;
++
++    result = sendfile(srcFD, dstFD, position, count, NULL, &numBytes, 0);
++
++    if (numBytes > 0)
++        return numBytes;
+     if (result == -1) {
+         if (errno == EAGAIN)
+--- src.orig/jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h
++++ src/jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h
+@@ -319,8 +319,36 @@
+ typedef int sctp_bindx_func(int sd, struct sockaddr *addrs, int addrcnt, int flags);
+ typedef int sctp_peeloff_func(int sock, sctp_assoc_t id);
++#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+-#endif /* __linux__ */
++#include <stdint.h>
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <bsd/sys/cdefs.h>
++#include <netinet/sctp.h>
++#include <netinet/sctp_peeloff.h>
++#include <netinet/sctp_uio.h>
++#include "jni.h"
++
++#define nio_sctp_getladdrs sctp_getladdrs
++#define nio_sctp_freeladdrs sctp_freeladdrs
++#define nio_sctp_getpaddrs sctp_getpaddrs
++#define nio_sctp_freepaddrs sctp_freepaddrs
++#define nio_sctp_bindx  sctp_bindx
++#define nio_sctp_peeloff sctp_peeloff
++
++#endif /* __FreeBSD_kernel__ || __FreeBSD_kernel__ */
++
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++
++#define nio_sctp_getladdrs sctp_getladdrs
++#define nio_sctp_freeladdrs sctp_freeladdrs
++#define nio_sctp_getpaddrs sctp_getpaddrs
++#define nio_sctp_freepaddrs sctp_freepaddrs
++#define nio_sctp_bindx  sctp_bindx
++#define nio_sctp_peeloff sctp_peeloff
++
++#else
+ sctp_getladdrs_func* nio_sctp_getladdrs;
+ sctp_freeladdrs_func* nio_sctp_freeladdrs;
+@@ -329,6 +357,8 @@
+ sctp_bindx_func* nio_sctp_bindx;
+ sctp_peeloff_func* nio_sctp_peeloff;
++#endif
++
+ jboolean loadSocketExtensionFuncs(JNIEnv* env);
+ #endif /* !SUN_NIO_CH_SCTP_H */
+--- src.orig/jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c
++++ src/jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c
+@@ -442,7 +442,7 @@
+             } else if (errno == EINTR) {
+                 return IOS_INTERRUPTED;
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+             } else if (errno == ENOTCONN) {
+                 /* ENOTCONN when EOF reached */
+                 rv = 0;
+--- src.orig/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c
++++ src/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c
+@@ -35,7 +35,7 @@
+ #include <string.h>
+ #include <errno.h>
+-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
+ #include <netinet/in.h>
+ #endif
+@@ -81,7 +81,7 @@
+     rv = connect(fd, 0, 0);
+ #endif
+-#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(_AIX)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(_AIX) || defined(__GLIBC__)
+     {
+         int len;
+         SOCKADDR sa;
+--- src.orig/jdk/src/solaris/native/sun/nio/ch/Net.c
++++ src/jdk/src/solaris/native/sun/nio/ch/Net.c
+@@ -273,7 +273,7 @@
+         }
+     }
+-#if defined(__linux__)
++#if ( defined(__linux__) || defined(__GLIBC__) )
+     if (type == SOCK_DGRAM) {
+         int arg = 0;
+         int level = (domain == AF_INET6) ? IPPROTO_IPV6 : IPPROTO_IP;
+--- src.orig/jdk/src/solaris/native/sun/nio/ch/NativeThread.c
++++ src/jdk/src/solaris/native/sun/nio/ch/NativeThread.c
+@@ -32,7 +32,7 @@
+ #include "sun_nio_ch_NativeThread.h"
+ #include "nio_util.h"
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+   #include <pthread.h>
+   #include <sys/signal.h>
+   /* Also defined in net/linux_close.c */
+--- src.orig/jdk/src/solaris/native/sun/nio/ch/SocketChannelImpl.c
++++ src/jdk/src/solaris/native/sun/nio/ch/SocketChannelImpl.c
+@@ -31,7 +31,7 @@
+ #include <string.h>
+ #include <poll.h>
+-#if __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ #include <netinet/in.h>
+ #endif
+--- src.orig/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c
++++ src/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c
+@@ -28,7 +28,7 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+-#if __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ #include <netinet/in.h>
+ #endif
+--- src.orig/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c
++++ src/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c
+@@ -58,6 +58,7 @@
+  */
+ jboolean loadSocketExtensionFuncs
+   (JNIEnv* env) {
++#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__)
+     if (dlopen(nativeSctpLib, RTLD_GLOBAL | RTLD_LAZY) == NULL) {
+         JNU_ThrowByName(env, "java/lang/UnsupportedOperationException",
+               dlerror());
+@@ -105,6 +106,7 @@
+               dlerror());
+         return JNI_FALSE;
+     }
++#endif /* __FreeBSD__ */
+     funcsLoaded = JNI_TRUE;
+     return JNI_TRUE;
+--- src.orig/jdk/src/solaris/native/sun/awt/extutil.h
++++ src/jdk/src/solaris/native/sun/awt/extutil.h
+@@ -58,7 +58,7 @@
+  */
+ /* $XFree86: xc/include/extensions/extutil.h,v 1.5 2001/01/17 17:53:20 dawes Exp $ */
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+ #ifndef _EXTUTIL_H_
+ #define _EXTUTIL_H_
+--- src.orig/jdk/src/solaris/native/sun/awt/VDrawingArea.c
++++ src/jdk/src/solaris/native/sun/awt/VDrawingArea.c
+@@ -33,7 +33,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ /* XXX: Shouldn't be necessary. */
+ #include "awt_p.h"
+ #endif /* __linux__ */
+--- src.orig/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c
++++ src/jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c
+@@ -120,7 +120,8 @@
+  */
+ #define MAXFRAMEBUFFERS 16
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++
+ typedef struct {
+    int   screen_number;
+    short x_org;
+@@ -439,7 +440,7 @@
+                                       RTLD_LAZY | RTLD_GLOBAL);
+         }
+-#ifndef __linux__ /* SOLARIS */
++#if ! defined(__linux__) && ! defined(__GLIBC__)  /* SOLARIS */
+         if (xrenderLibHandle == NULL) {
+             xrenderLibHandle = dlopen("/usr/sfw/lib/libXrender.so.1",
+                                       RTLD_LAZY | RTLD_GLOBAL);
+@@ -583,7 +584,8 @@
+ }
+ #ifndef HEADLESS
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++
+ static void xinerama_init_linux()
+ {
+     void* libHandle = NULL;
+@@ -634,7 +636,7 @@
+     }
+ }
+ #endif
+-#if !defined(__linux__) && !defined(MACOSX) /* Solaris */
++#if !defined(__linux__) && !defined(MACOSX) && !defined(__GLIBC__) /* Solaris */
+ static void xinerama_init_solaris()
+ {
+     void* libHandle = NULL;
+@@ -694,11 +696,11 @@
+     }
+     DTRACE_PRINTLN("Xinerama extension is available");
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+     xinerama_init_linux();
+ #else /* Solaris */
+     xinerama_init_solaris();
+-#endif /* __linux__ || MACOSX */
++#endif /* __linux__ || MACOSX || __GLIBC__ */
+ }
+ #endif /* HEADLESS */
+@@ -1592,7 +1594,7 @@
+ {
+     jobject point = NULL;
+ #ifndef HEADLESS    /* return NULL in HEADLESS, Linux */
+-#if !defined(__linux__) && !defined(MACOSX)
++#if !defined(__linux__) && !defined(MACOSX) && !defined(__GLIBC__)
+     int x,y;
+     AWT_LOCK();
+--- src.orig/jdk/src/solaris/native/sun/awt/awt_Font.c
++++ src/jdk/src/solaris/native/sun/awt/awt_Font.c
+@@ -255,7 +255,7 @@
+             if (strcmp(style, "regular") == 0) {
+                 altstyle = "roman";
+             }
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+             if (!strcmp(family, "lucidasans")) {
+                 family = "lucida";
+             }
+--- src.orig/jdk/src/solaris/native/sun/awt/awt_InputMethod.c
++++ src/jdk/src/solaris/native/sun/awt/awt_InputMethod.c
+@@ -52,7 +52,7 @@
+                                 XIMPreeditDrawCallbackStruct *);
+ static void PreeditCaretCallback(XIC, XPointer,
+                                  XIMPreeditCaretCallbackStruct *);
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+ static void StatusStartCallback(XIC, XPointer, XPointer);
+ static void StatusDoneCallback(XIC, XPointer, XPointer);
+ static void StatusDrawCallback(XIC, XPointer,
+@@ -66,7 +66,7 @@
+ #define PreeditDoneIndex        1
+ #define PreeditDrawIndex        2
+ #define PreeditCaretIndex       3
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+ #define StatusStartIndex        4
+ #define StatusDoneIndex         5
+ #define StatusDrawIndex         6
+@@ -84,14 +84,14 @@
+     (XIMProc)PreeditDoneCallback,
+     (XIMProc)PreeditDrawCallback,
+     (XIMProc)PreeditCaretCallback,
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+     (XIMProc)StatusStartCallback,
+     (XIMProc)StatusDoneCallback,
+     (XIMProc)StatusDrawCallback,
+ #endif
+ };
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+ #define MAX_STATUS_LEN  100
+ typedef struct {
+     Window   w;                /*status window id        */
+@@ -124,7 +124,7 @@
+     XIMCallback *callbacks;     /* callback parameters */
+     jobject     x11inputmethod; /* global ref to X11InputMethod instance */
+                                 /* associated with the XIC */
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+     StatusWindow *statusWindow; /* our own status window  */
+ #endif
+     char        *lookup_buf;    /* buffer used for XmbLookupString */
+@@ -370,7 +370,7 @@
+ static void
+ freeX11InputMethodData(JNIEnv *env, X11InputMethodData *pX11IMData)
+ {
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+     if (pX11IMData->statusWindow != NULL){
+         StatusWindow *sw = pX11IMData->statusWindow;
+         XFreeGC(awt_display, sw->lightGC);
+@@ -473,7 +473,7 @@
+     pX11IMData = getX11InputMethodData(env, currentX11InputMethodInstance);
+     if (pX11IMData == NULL) {
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+         return False;
+ #else
+         return result;
+@@ -481,7 +481,7 @@
+     }
+     if ((ic = pX11IMData->current_ic) == (XIC)0){
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+         return False;
+ #else
+         return result;
+@@ -573,7 +573,7 @@
+     return result;
+ }
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+ static StatusWindow *createStatusWindow(
+                                 Window parent) {
+     StatusWindow *statusWindow;
+@@ -886,7 +886,7 @@
+         }
+     }
+ }
+-#endif  /* __linux__ || MACOSX */
++#endif  /* __linux__ || MACOSX || __GLIBC__ */
+ /*
+  * Creates two XICs, one for active clients and the other for passive
+  * clients. All information on those XICs are stored in the
+@@ -930,7 +930,7 @@
+         return FALSE ;
+     }
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+     on_the_spot_styles |= XIMStatusNothing;
+     /*kinput does not support XIMPreeditCallbacks and XIMStatusArea
+@@ -943,9 +943,9 @@
+             break;
+         }
+     }
+-#else /*! __linux__ && !MACOSX */
++#else /*! __linux__ && !MACOSX && !__GLIBC__ */
+     on_the_spot_styles |= XIMStatusNothing;
+-#endif /* __linux__ || MACOSX */
++#endif /* __linux__ || MACOSX || __GLIBC__ */
+     for (i = 0; i < im_styles->count_styles; i++) {
+         active_styles |= im_styles->supported_styles[i] & on_the_spot_styles;
+@@ -993,7 +993,7 @@
+                         NULL);
+         if (preedit == (XVaNestedList)NULL)
+             goto err;
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+         /*always try XIMStatusCallbacks for active client...*/
+         {
+             status = (XVaNestedList)XVaCreateNestedList(0,
+@@ -1015,7 +1015,7 @@
+             XFree((void *)status);
+             XFree((void *)preedit);
+         }
+-#else /* !__linux__ && !MACOSX */
++#else /* !__linux__ && !MACOSX && !__GLIBC__ */
+             pX11IMData->ic_active = XCreateIC(X11im,
+                                               XNClientWindow, w,
+                                               XNFocusWindow, w,
+@@ -1023,7 +1023,7 @@
+                                               XNPreeditAttributes, preedit,
+                                               NULL);
+         XFree((void *)preedit);
+-#endif /* __linux__ || MACOSX */
++#endif /* __linux__ || MACOSX || __GLIBC__ */
+         pX11IMData->ic_passive = XCreateIC(X11im,
+                                            XNClientWindow, w,
+                                            XNFocusWindow, w,
+@@ -1189,7 +1189,7 @@
+ }
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+ static void
+ StatusStartCallback(XIC ic, XPointer client_data, XPointer call_data)
+ {
+@@ -1257,7 +1257,7 @@
+  finally:
+     AWT_UNLOCK();
+ }
+-#endif /* __linux__ || MACOSX */
++#endif /* __linux__ || MACOSX || __GLIBC__ */
+ static void CommitStringCallback(XIC ic, XPointer client_data, XPointer call_data) {
+     JNIEnv *env = GetJNIEnv();
+@@ -1354,14 +1354,14 @@
+ /* Use IMInstantiate call back only on Linux, as there is a bug in Solaris
+    (4768335)
+ */
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+     registered = XRegisterIMInstantiateCallback(dpy, NULL, NULL,
+                      NULL, (XIDProc)OpenXIMCallback, NULL);
+     if (!registered) {
+         /* directly call openXIM callback */
+ #endif
+         OpenXIMCallback(dpy, NULL, NULL);
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+     }
+ #endif
+@@ -1396,9 +1396,9 @@
+     globalRef = (*env)->NewGlobalRef(env, this);
+     pX11IMData->x11inputmethod = globalRef;
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX)  || defined(__GLIBC__)
+     pX11IMData->statusWindow = NULL;
+-#endif /* __linux__ || MACOSX */
++#endif /* __linux__ || MACOSX || __GLIBC__ */
+     pX11IMData->lookup_buf = 0;
+     pX11IMData->lookup_buf_len = 0;
+@@ -1448,14 +1448,14 @@
+         setXICFocus(pX11IMData->current_ic, req);
+         currentX11InputMethodInstance = pX11IMData->x11inputmethod;
+         currentFocusWindow =  w;
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+         if (active && pX11IMData->statusWindow && pX11IMData->statusWindow->on)
+             onoffStatusWindow(pX11IMData, w, True);
+ #endif
+     } else {
+         currentX11InputMethodInstance = NULL;
+         currentFocusWindow = 0;
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+         onoffStatusWindow(pX11IMData, 0, False);
+         if (pX11IMData->current_ic != NULL)
+ #endif
+@@ -1472,7 +1472,7 @@
+ Java_sun_awt_X11InputMethod_turnoffStatusWindow(JNIEnv *env,
+                                                 jobject this)
+ {
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+     X11InputMethodData *pX11IMData;
+     StatusWindow *statusWindow;
+@@ -1640,7 +1640,7 @@
+ JNIEXPORT void JNICALL Java_sun_awt_X11_XInputMethod_adjustStatusWindow
+   (JNIEnv *env, jobject this, jlong window)
+ {
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+     AWT_LOCK();
+     adjustStatusWindow(window);
+     AWT_UNLOCK();
+--- src.orig/jdk/src/solaris/native/sun/awt/fontpath.c
++++ src/jdk/src/solaris/native/sun/awt/fontpath.c
+@@ -23,9 +23,9 @@
+  * questions.
+  */
+-#if defined(__linux__)
++#if defined(__linux__) || defined(__GLIBC__)
+ #include <string.h>
+-#endif /* __linux__ */
++#endif /* __linux__ || __GLIBC__ */
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <strings.h>
+--- src.orig/jdk/src/solaris/native/sun/awt/awt_Robot.c
++++ src/jdk/src/solaris/native/sun/awt/awt_Robot.c
+@@ -45,7 +45,7 @@
+ #include "wsutils.h"
+ #include "list.h"
+ #include "multiVis.h"
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+ #include <sys/socket.h>
+ #endif
+--- src.orig/jdk/src/solaris/native/sun/java2d/j2d_md.h
++++ src/jdk/src/solaris/native/sun/java2d/j2d_md.h
+@@ -30,7 +30,8 @@
+ /*
+  * Linux and MACOSX's version of <sys/types.h> does not define intptr_t
+  */
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
++
+ #include <stdint.h>
+ #endif /* __linux__ || MACOSX */
+--- src.orig/jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c
++++ src/jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c
+@@ -804,7 +804,7 @@
+ static int initialized;
+ static int usevis = JNI_TRUE;
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+ #   define ULTRA_CHIP   "sparc64"
+ #else
+ #   define ULTRA_CHIP   "sun4u"
+--- src.orig/jdk/src/solaris/native/sun/net/dns/ResolverConfigurationImpl.c
++++ src/jdk/src/solaris/native/sun/net/dns/ResolverConfigurationImpl.c
+@@ -33,7 +33,7 @@
+ #include <strings.h>
+ #endif
+-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
+ #include <string.h>
+ #endif
+--- src.orig/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c
++++ src/jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c
+@@ -32,7 +32,7 @@
+ #include <dlfcn.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
+ #include <string.h>
+ #else
+ #include <strings.h>
+--- src.orig/jdk/src/solaris/native/sun/xawt/XToolkit.c
++++ src/jdk/src/solaris/native/sun/xawt/XToolkit.c
+@@ -27,7 +27,7 @@
+ #include <X11/Xutil.h>
+ #include <X11/Xos.h>
+ #include <X11/Xatom.h>
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ #include <execinfo.h>
+ #endif
+@@ -799,7 +799,7 @@
+     return ret;
+ }
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ void print_stack(void)
+ {
+   void *array[10];
+--- src.orig/jdk/src/solaris/native/java/nio/MappedByteBuffer.c
++++ src/jdk/src/solaris/native/java/nio/MappedByteBuffer.c
+@@ -40,7 +40,7 @@
+     int result = 0;
+     int i = 0;
+     void *a = (void *) jlong_to_ptr(address);
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+     unsigned char *vec = (unsigned char *)malloc(numPages * sizeof(char));
+ #else
+     char *vec = (char *)malloc(numPages * sizeof(char));
+--- src.orig/jdk/src/solaris/native/java/util/TimeZone_md.c
++++ src/jdk/src/solaris/native/java/util/TimeZone_md.c
+@@ -49,7 +49,7 @@
+ #define fileclose       fclose
+ #endif
+-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
+ static const char *ETC_TIMEZONE_FILE = "/etc/timezone";
+@@ -126,7 +126,7 @@
+         return NULL;
+     }
+-#if defined(_AIX) || defined(__linux__) || defined(MACOSX) || (defined(__solaris__) \
++#if defined(_AIX) || defined(__linux__) || defined(__GLIBC__) || defined(MACOSX) || (defined(__solaris__) \
+     && (defined(_POSIX_PTHREAD_SEMANTICS) || defined(_LP64)))
+     while (readdir_r(dirp, entry, &dp) == 0 && dp != NULL) {
+ #else
+@@ -214,7 +214,7 @@
+     return tz;
+ }
+-#if defined(__linux__) || defined(MACOSX)
++#if defined(__linux__) || defined(MACOSX) || defined(__GLIBC__)
+ /*
+  * Performs Linux specific mapping and returns a zone ID
+@@ -230,7 +230,7 @@
+     char *buf;
+     size_t size;
+-#ifdef __linux__
++#ifdef __linux__ || defined(__GLIBC__)
+     /*
+      * Try reading the /etc/timezone file for Debian distros. There's
+      * no spec of the file format available. This parsing assumes that
+@@ -664,7 +664,7 @@
+     tz = getenv("TZ");
+-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
+     if (tz == NULL) {
+ #else
+ #if defined (__solaris__) || defined(_AIX)
+@@ -690,7 +690,7 @@
+ #endif
+     if (tz != NULL) {
+-#ifdef __linux__
++#if defined(__linux__)  || defined(__GLIBC__)
+         /*
+          * Ignore "posix/" prefix.
+          */
+--- src.orig/jdk/src/solaris/native/java/io/io_util_md.c
++++ src/jdk/src/solaris/native/java/io/io_util_md.c
+@@ -99,7 +99,7 @@
+     WITH_PLATFORM_STRING(env, path, ps) {
+         FD fd;
+-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
+         /* Remove trailing slashes, since the kernel won't */
+         char *p = (char *)ps + strlen(ps) - 1;
+         while ((p > ps) && (*p == '/'))
+--- src.orig/jdk/src/solaris/native/java/lang/locale_str.h
++++ src/jdk/src/solaris/native/java/lang/locale_str.h
+@@ -48,7 +48,7 @@
+     "gl", "gl_ES",
+     "he", "iw_IL",
+     "hr", "hr_HR",
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+     "hs", "en_US", // used on Linux, not clear what it stands for
+ #endif
+     "hu", "hu_HU",
+@@ -78,14 +78,14 @@
+     "sv", "sv_SE",
+     "th", "th_TH",
+     "tr", "tr_TR",
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+     "ua", "en_US", // used on Linux, not clear what it stands for
+ #endif
+     "uk", "uk_UA",
+     "vi", "vi_VN",
+     "wa", "wa_BE",
+     "zh", "zh_CN",
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+     "bokmal", "nb_NO",
+     "bokm\xE5l", "nb_NO",
+     "catalan", "ca_ES",
+@@ -146,13 +146,13 @@
+     "POSIX", "en",
+     "cz", "cs",
+     "he", "iw",
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+     "hs", "en", // used on Linux, not clear what it stands for
+ #endif
+     "id", "in",
+     "sh", "sr", // sh is deprecated
+     "su", "fi",
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+     "ua", "en", // used on Linux, not clear what it stands for
+     "catalan", "ca",
+     "croatian", "hr",
+@@ -195,7 +195,7 @@
+  * Linux/Solaris script string to Java script name mapping table.
+  */
+ static char *script_names[] = {
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+     "cyrillic", "Cyrl",
+     "devanagari", "Deva",
+     "iqtelif", "Latn",
+@@ -208,7 +208,7 @@
+  * Linux/Solaris country string to ISO3166 string mapping table.
+  */
+ static char *country_names[] = {
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+     "RN", "US", // used on Linux, not clear what it stands for
+ #endif
+     "YU", "CS", // YU has been removed from ISO 3166
+--- src.orig/jdk/src/solaris/native/java/lang/UNIXProcess_md.c
++++ src/jdk/src/solaris/native/java/lang/UNIXProcess_md.c
+@@ -396,7 +396,7 @@
+ #ifdef START_CHILD_USE_CLONE
+ static pid_t
+ cloneChild(ChildStuff *c) {
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ #define START_CHILD_CLONE_STACK_SIZE (64 * 1024)
+     /*
+      * See clone(2).
+--- src.orig/jdk/src/solaris/native/java/lang/java_props_md.c
++++ src/jdk/src/solaris/native/java/lang/java_props_md.c
+@@ -23,7 +23,7 @@
+  * questions.
+  */
+-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
+ #include <stdio.h>
+ #include <ctype.h>
+ #endif
+@@ -57,7 +57,7 @@
+ #include "java_props.h"
+ #if !defined(_ALLBSD_SOURCE)
+-#ifdef __linux__
++#ifdef __linux__ || defined(__GLIBC__)
+   #ifndef CODESET
+   #define CODESET _NL_CTYPE_CODESET_NAME
+   #endif
+@@ -151,7 +151,7 @@
+     lc = setlocale(cat, NULL);
+ #endif
+-#ifndef __linux__
++#if !defined(__linux__) && !defined(__GLIBC__)
+     if (lc == NULL) {
+         return 0;
+     }
+@@ -331,7 +331,7 @@
+          * in order to use optimizations. */
+         *std_encoding = (*p != '\0') ? p : "ISO8859-1";
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+         /*
+          * Remap the encoding string to a different value for japanese
+          * locales on linux so that customized converters are used instead
+@@ -559,7 +559,7 @@
+      sprops.unicode_encoding = "UnicodeBig";
+  #endif
+ #else /* !_ALLBSD_SOURCE */
+-#ifdef __linux__
++#ifdef __linux__ || defined(__GLIBC__)
+ #if __BYTE_ORDER == __LITTLE_ENDIAN
+     sprops.unicode_encoding = "UnicodeLittle";
+ #else
+--- src.orig/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
++++ src/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
+@@ -33,7 +33,7 @@
+ #ifdef __solaris__
+ #include <fcntl.h>
+ #endif
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ #include <unistd.h>
+ #include <sys/utsname.h>
+ #include <netinet/ip.h>
+@@ -291,7 +291,7 @@
+     /* The fdObj'fd */
+     jint fd;
+-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
+     SOCKADDR addr;
+     int len;
+ #endif
+@@ -301,19 +301,26 @@
+     }
+     fd = (*env)->GetIntField(env, fdObj, IO_fd_fdID);
+-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
+         memset(&addr, 0, sizeof(addr));
+ #ifdef AF_INET6
+         if (ipv6_available()) {
+             struct sockaddr_in6 *him6 = (struct sockaddr_in6 *)&addr;
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++            him6->sin6_family = AF_INET6;
++#else
+             him6->sin6_family = AF_UNSPEC;
++#endif
+             len = sizeof(struct sockaddr_in6);
+         } else
+ #endif
+         {
+             struct sockaddr_in *him4 = (struct sockaddr_in*)&addr;
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+             him4->sin_family = AF_UNSPEC;
++#else
+             len = sizeof(struct sockaddr_in);
++#endif
+         }
+         JVM_Connect(fd, (struct sockaddr *)&addr, len);
+--- src.orig/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
++++ src/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
+@@ -75,7 +75,7 @@
+     } else {
+         // ensure null-terminated
+         hostname[NI_MAXHOST] = '\0';
+-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
+         /* On Linux/FreeBSD gethostname() says "host.domain.sun.com".  On
+          * Solaris gethostname() says "host", so extra work is needed.
+          */
+@@ -798,7 +798,7 @@
+         case ENETUNREACH: /* Network Unreachable */
+         case EAFNOSUPPORT: /* Address Family not supported */
+         case EADDRNOTAVAIL: /* address is not available on  the  remote machine */
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+         case EINVAL:
+         case EHOSTUNREACH:
+           /*
+--- src.orig/jdk/src/solaris/native/java/net/Inet4AddressImpl.c
++++ src/jdk/src/solaris/native/java/net/Inet4AddressImpl.c
+@@ -644,7 +644,7 @@
+       n = sendto(fd, sendbuf, plen, 0, (struct sockaddr *)him,
+                  sizeof(struct sockaddr));
+       if (n < 0 && errno != EINPROGRESS ) {
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+         if (errno != EINVAL && errno != EHOSTUNREACH)
+           /*
+            * On some Linux versions, when a socket is bound to the loopback
+@@ -810,7 +810,7 @@
+         case ENETUNREACH: /* Network Unreachable */
+         case EAFNOSUPPORT: /* Address Family not supported */
+         case EADDRNOTAVAIL: /* address is not available on  the  remote machine */
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+         case EINVAL:
+         case EHOSTUNREACH:
+           /*
+--- src.orig/jdk/src/solaris/native/java/net/NetworkInterface.c
++++ src/jdk/src/solaris/native/java/net/NetworkInterface.c
+@@ -63,17 +63,17 @@
+ #define _PATH_PROCNET_IFINET6           "/proc/net/if_inet6"
+ #endif
+-#if defined(_ALLBSD_SOURCE)
++#if defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__)
+ #include <sys/param.h>
+ #include <sys/ioctl.h>
+ #include <sys/sockio.h>
+-#if defined(__APPLE__)
++#if defined(__APPLE__) || defined(__FreeBSD_kernel__)
+ #include <net/ethernet.h>
+ #include <net/if_var.h>
+ #include <net/if_dl.h>
+ #include <netinet/in_var.h>
+-#include <ifaddrs.h>
+ #endif
++#include <ifaddrs.h>
+ #endif
+ #include "jvm.h"
+@@ -1805,7 +1805,11 @@
+      * try the old way.
+      */
+     memset(&lif, 0, sizeof(lif));
++#if defined(__FreeBSD_kernel__)
++    strcpy(lif.lifr_name, ifname);
++#else
+     strlcpy(lif.lifr_name, ifname, sizeof(lif.lifr_name));
++#endif
+     if (ioctl(sock, SIOCGLIFHWADDR, &lif) != -1) {
+         struct sockaddr_dl *sp;
+@@ -1891,7 +1895,7 @@
+ /** BSD **/
+-#ifdef _ALLBSD_SOURCE
++#if defined(_ALLBSD_SOURCE) || defined(__FreeBSD_kernel__)
+ /* Open socket for further ioct calls, try v4 socket first and
+  * if it falls return v6 socket
+  */
+@@ -2020,7 +2024,11 @@
+             continue;
+         memset(&ifr6, 0, sizeof(ifr6));
++#if defined(__FreeBSD_kernel__)
++        strcpy(ifr6.ifr_name, ifa->ifa_name);
++#else
+         strlcpy(ifr6.ifr_name, ifa->ifa_name, sizeof(ifr6.ifr_name));
++#endif
+         memcpy(&ifr6.ifr_addr, ifa->ifa_addr, MIN(sizeof(ifr6.ifr_addr), ifa->ifa_addr->sa_len));
+         if (ioctl(sock, SIOCGIFNETMASK_IN6, (caddr_t)&ifr6) < 0) {
+--- src.orig/jdk/src/solaris/native/java/net/net_util_md.c
++++ src/jdk/src/solaris/native/java/net/net_util_md.c
+@@ -56,6 +56,11 @@
+ #include <net/route.h>
+ #include <sys/utsname.h>
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++#include <sys/param.h>
++#include <sys/sysctl.h>
++#endif
++
+ #ifndef IPV6_FLOWINFO_SEND
+ #define IPV6_FLOWINFO_SEND      33
+ #endif
+--- src.orig/jdk/src/solaris/native/java/net/PlainSocketImpl.c
++++ src/jdk/src/solaris/native/java/net/PlainSocketImpl.c
+@@ -32,7 +32,7 @@
+ #endif
+ #include <netinet/tcp.h>        /* Defines TCP_NODELAY, needed for 2.6 */
+ #include <netinet/in.h>
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ #include <netinet/ip.h>
+ #endif
+ #include <netdb.h>
+@@ -41,7 +41,7 @@
+ #ifdef __solaris__
+ #include <fcntl.h>
+ #endif
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+ #include <unistd.h>
+ #endif
+@@ -467,7 +467,7 @@
+     /* report the appropriate exception */
+     if (connect_rv < 0) {
+-#ifdef __linux__
++#if defined(__linux__) || defined(__GLIBC__)
+         /*
+          * Linux/GNU distribution setup /etc/hosts so that
+          * InetAddress.getLocalHost gets back the loopback address
+--- src.orig/jdk/src/solaris/native/java/net/net_util_md.h
++++ src/jdk/src/solaris/native/java/net/net_util_md.h
+@@ -47,7 +47,7 @@
+    close subroutine does not return until the select call returns.
+    ...
+ */
+-#if defined(__linux__) || defined(MACOSX) || defined (_AIX)
++#if defined(__linux__) || defined(MACOSX) || defined (_AIX) || defined(__GLIBC__)
+ extern int NET_Timeout(int s, long timeout);
+ extern int NET_Read(int s, void* buf, size_t len);
+ extern int NET_RecvFrom(int s, void *buf, int len, unsigned int flags,
+@@ -195,7 +195,7 @@
+ /************************************************************************
+  *  Utilities
+  */
+-#ifdef __linux__
++#if defined(__linux__)
+ extern int kernelIsV24();
+ #endif
+--- src.orig/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java
++++ src/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java
+@@ -306,7 +306,7 @@
+         super.setOsNameAndVersion();
+-        if (!osName.equals("Linux")) {
++        if (!(osName.equals("Linux") || osName.equals("GNU/kFreeBSD"))) {
+             return;
+         }
+         try {
+--- src.orig/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java
++++ src/jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java
+@@ -161,6 +161,7 @@
+     static boolean isBSD() {
+         return (osname.equals("Linux") ||
++                osname.equals("GNU/kFreeBSD") ||
+                 osname.contains("OS X"));
+     }
+--- src.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java
++++ src/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java
+@@ -102,9 +102,7 @@
+                 LinuxNativeDispatcher.fgetxattr(fd, name, 0L, 0);
+                 return true;
+             } catch (UnixException e) {
+-                // attribute does not exist
+-                if (e.errno() == UnixConstants.ENODATA)
+-                    return true;
++                return false;
+             } finally {
+                 UnixNativeDispatcher.close(fd);
+             }
+--- src.orig/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java
++++ src/jdk/src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java
+@@ -238,9 +238,6 @@
+             }
+             throw new UnixException("Value of " + DOS_XATTR_NAME + " attribute is invalid");
+         } catch (UnixException x) {
+-            // default value when attribute does not exist
+-            if (x.errno() == ENODATA)
+-                return 0;
+             throw x;
+         } finally {
+             buffer.release();
+--- src.orig/jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java
++++ src/jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java
+@@ -59,7 +59,7 @@
+             .doPrivileged(new GetPropertyAction("os.name"));
+         if (osname.equals("SunOS"))
+             return createProvider("sun.nio.fs.SolarisFileSystemProvider");
+-        if (osname.equals("Linux"))
++        if (osname.equals("Linux") || osname.equals("GNU/kFreeBSD"))
+             return createProvider("sun.nio.fs.LinuxFileSystemProvider");
+         if (osname.contains("OS X"))
+             return createProvider("sun.nio.fs.MacOSXFileSystemProvider");
+--- src.orig/jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java
++++ src/jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java
+@@ -64,7 +64,7 @@
+             .doPrivileged(new GetPropertyAction("os.name"));
+         if (osname.equals("SunOS"))
+             return createProvider("sun.nio.ch.SolarisAsynchronousChannelProvider");
+-        if (osname.equals("Linux"))
++        if (osname.equals("Linux") || osname.equals("GNU/kFreeBSD"))
+             return createProvider("sun.nio.ch.LinuxAsynchronousChannelProvider");
+         if (osname.contains("OS X"))
+             return createProvider("sun.nio.ch.BsdAsynchronousChannelProvider");
+--- src.orig/jdk/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java
++++ src/jdk/src/solaris/classes/sun/awt/X11/XScrollbarPeer.java
+@@ -74,7 +74,7 @@
+      * Currently uses hardcoded values
+      */
+     private int getDefaultDimension() {
+-        if (System.getProperty("os.name").equals("Linux")) {
++        if (System.getProperty("os.name").equals("Linux") || System.getProperty("os.name").equals("GNU/kFreeBSD")) {
+             return DEFAULT_WIDTH_LINUX;
+         } else {
+             return DEFAULT_WIDTH_SOLARIS;
+--- src.orig/jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h
++++ src/jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h
+@@ -61,7 +61,7 @@
+ #define log1p   jlog1p
+ #define expm1   jexpm1
+-#if defined(__linux__) || defined(_ALLBSD_SOURCE)
++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__)
+ #define __ieee754_sqrt          __j__ieee754_sqrt
+ #define __ieee754_acos          __j__ieee754_acos
+ #define __ieee754_log           __j__ieee754_log
+--- src.orig/jdk/src/share/classes/sun/font/FontUtilities.java
++++ src/jdk/src/share/classes/sun/font/FontUtilities.java
+@@ -76,7 +76,7 @@
+                 String osName = System.getProperty("os.name", "unknownOS");
+                 isSolaris = osName.startsWith("SunOS");
+-                isLinux = osName.startsWith("Linux");
++                isLinux = osName.startsWith("Linux") || osName.equals("GNU/kFreeBSD");
+                 isMacOSX = osName.contains("OS X"); // TODO: MacOSX
+--- src.orig/jdk/src/share/classes/sun/print/PSPrinterJob.java
++++ src/jdk/src/share/classes/sun/print/PSPrinterJob.java
+@@ -1587,7 +1587,9 @@
+         }
+        String osname = System.getProperty("os.name");
+-       if (osname.equals("Linux") || osname.contains("OS X")) {
++       if (osname.equals("Linux") ||
++           osname.equals("GNU/kFreeBSD") ||
++           osname.contains("OS X")) {
+             execCmd = new String[ncomps];
+             execCmd[n++] = "/usr/bin/lpr";
+             if ((pFlags & PRINTER) != 0) {
+--- src.orig/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java
++++ src/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java
+@@ -1298,6 +1298,7 @@
+         String osName = AccessController.doPrivileged(
+             new GetPropertyAction("os.name"));
+         if ("SunOS".equals(osName) || "Linux".equals(osName) || "AIX".equals(osName)
++               || "GNU/kFreeBSD".equals(osName)
+                || osName.contains("OS X")) {
+             charset("x-COMPOUND_TEXT", "COMPOUND_TEXT",
+                     new String[] {
+--- src.orig/jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java
++++ src/jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java
+@@ -49,6 +49,7 @@
+                             String osname = System.getProperty("os.name");
+                             if (osname.startsWith("SunOS") ||
+                                 osname.contains("OS X") ||
++                                osname.startsWith("GNU/kFreeBSD") ||
+                                 osname.startsWith("Linux")) {
+                                 return new Boolean(System.getProperty
+                                     (USE_NATIVE_PROP));
+--- src.orig/jdk/src/share/classes/java/awt/GraphicsEnvironment.java
++++ src/jdk/src/share/classes/java/awt/GraphicsEnvironment.java
+@@ -178,6 +178,7 @@
+                             } else {
+                                 headless = defaultHeadless =
+                                     Boolean.valueOf(("Linux".equals(osName) ||
++                                                     "GNU/kFreeBSD".equals(osName) ||
+                                                      "SunOS".equals(osName) ||
+                                                      "FreeBSD".equals(osName) ||
+                                                      "NetBSD".equals(osName) ||
+--- src.orig/jdk/src/solaris/native/sun/net/portconfig.c
++++ src/jdk/src/solaris/native/sun/net/portconfig.c
+@@ -28,7 +28,7 @@
+ #include <unistd.h>
+ #include <errno.h>
+-#if defined(_ALLBSD_SOURCE)
++#if defined(_ALLBSD_SOURCE) || defined (__FreeBSD_kernel__)
+ #include <sys/sysctl.h>
+ #endif
+@@ -67,7 +67,7 @@
+         range->lower = net_getParam("/dev/tcp", "tcp_smallest_anon_port");
+         return 0;
+     }
+-#elif defined(_ALLBSD_SOURCE)
++#elif defined(_ALLBSD_SOURCE) || defined (__FreeBSD_kernel__)
+     {
+         int ret;
+         size_t size = sizeof(range->lower);
+--- src.orig/jdk/src/solaris/classes/sun/net/PortConfig.java
++++ src/jdk/src/solaris/classes/sun/net/PortConfig.java
+@@ -63,6 +63,9 @@
+                         // /usr/sbin/no -a | fgrep ephemeral
+                         defaultLower = 32768;
+                         defaultUpper = 65535;
++                    } else if (os.contains("FreeBSD")) {
++                        defaultLower = 10000;
++                        defaultUpper = 65535;
+                     } else {
+                         throw new InternalError(
+                             "sun.net.PortConfig: unknown OS");
diff --git a/debian/patches/ld-symbolic-functions-aarch64.diff b/debian/patches/ld-symbolic-functions-aarch64.diff
new file mode 100644 (file)
index 0000000..8f72868
--- /dev/null
@@ -0,0 +1,32 @@
+--- openjdk/hotspot/make/linux/makefiles/gcc.make.orig 2014-01-27 11:43:44.000000000 +0000
++++ openjdk/hotspot/make/linux/makefiles/gcc.make      2014-01-30 15:51:23.507418895 +0000
+@@ -295,6 +295,7 @@
+ # Enable linker optimization
+ LFLAGS += -Xlinker -O1
++LFLAGS += -Wl,-Bsymbolic-functions
+ ifeq ($(USE_CLANG),)
+   # If this is a --hash-style=gnu system, use --hash-style=both
+--- openjdk/hotspot/agent/src/os/linux/Makefile.orig   2014-01-30 15:51:23.507418895 +0000
++++ openjdk/hotspot/agent/src/os/linux/Makefile        2014-01-30 15:52:15.307790918 +0000
+@@ -77,7 +77,7 @@
+ LFLAGS_LIBSA += $(LDFLAGS_HASH_STYLE)
+ $(LIBSA): $(ARCH) $(OBJS) mapfile
+-        $(GCC) -shared $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
++        $(GCC) -shared -Wl,-Bsymbolic-functions $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
+ test.o: test.c
+       $(GCC) -c -o test.o -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) test.c
+--- openjdk/jdk/make/common/Defs-linux.gmk.orig        2014-01-30 15:50:28.335021361 +0000
++++ openjdk/jdk/make/common/Defs-linux.gmk     2014-01-30 15:51:23.507418895 +0000
+@@ -351,7 +351,7 @@
+ EXTRA_LIBS += -lc
+-LDFLAGS_DEFS_OPTION  = -Xlinker -z -Xlinker defs
++LDFLAGS_DEFS_OPTION  = -Xlinker -z -Xlinker defs -Wl,-Bsymbolic-functions
+ LDFLAGS_COMMON  += $(LDFLAGS_DEFS_OPTION)
+ #
diff --git a/debian/patches/ld-symbolic-functions-default.diff b/debian/patches/ld-symbolic-functions-default.diff
new file mode 100644 (file)
index 0000000..b5f4d20
--- /dev/null
@@ -0,0 +1,25 @@
+Index: b/hotspot/agent/src/os/linux/Makefile
+===================================================================
+--- a/hotspot/agent/src/os/linux/Makefile
++++ b/hotspot/agent/src/os/linux/Makefile
+@@ -77,7 +77,7 @@ endif
+ LFLAGS_LIBSA += $(LDFLAGS_HASH_STYLE)
+ $(LIBSA): $(ARCH) $(OBJS) mapfile
+-        $(GCC) -shared $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
++        $(GCC) -shared -Wl,-Bsymbolic-functions $(LFLAGS_LIBSA) -o $(LIBSA) $(OBJS) $(LIBS)
+ test.o: test.c
+       $(GCC) -c -o test.o -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) test.c
+Index: b/hotspot/make/linux/makefiles/gcc.make
+===================================================================
+--- a/hotspot/make/linux/makefiles/gcc.make
++++ b/hotspot/make/linux/makefiles/gcc.make
+@@ -295,6 +295,7 @@ endif
+ # Enable linker optimization
+ LFLAGS += -Xlinker -O1
++LFLAGS += -Wl,-Bsymbolic-functions
+ ifeq ($(USE_CLANG),)
+   # If this is a --hash-style=gnu system, use --hash-style=both
diff --git a/debian/patches/libpcsclite-dlopen.diff b/debian/patches/libpcsclite-dlopen.diff
new file mode 100644 (file)
index 0000000..0562d4d
--- /dev/null
@@ -0,0 +1,36 @@
+--- a/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java
++++ b/jdk/src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java
+@@ -48,6 +48,7 @@
+     private final static String PROP_NAME = "sun.security.smartcardio.library";
++    private final static String LIB0 = "libpcsclite.so.1";
+     private final static String LIB1 = "/usr/$LIBISA/libpcsclite.so";
+     private final static String LIB2 = "/usr/local/$LIBISA/libpcsclite.so";
+     private final static String PCSC_FRAMEWORK = "/System/Library/Frameworks/PCSC.framework/Versions/Current/PCSC";
+@@ -104,22 +105,9 @@
+         if (lib.length() != 0) {
+             return lib;
+         }
+-        lib = expand(LIB1);
+-        if (new File(lib).isFile()) {
+-            // if LIB1 exists, use that
+-            return lib;
+-        }
+-        lib = expand(LIB2);
+-        if (new File(lib).isFile()) {
+-            // if LIB2 exists, use that
+-            return lib;
+-        }
+-        lib = PCSC_FRAMEWORK;
+-        if (new File(lib).isFile()) {
+-            // if PCSC.framework exists, use that
+-            return lib;
+-        }
+-        throw new IOException("No PC/SC library found on this system");
++      // let dlopen do the work
++      lib = LIB0;
++      return lib;
+     }
+     private static native void initialize(String libraryName);
diff --git a/debian/patches/link-with-as-needed.diff b/debian/patches/link-with-as-needed.diff
new file mode 100644 (file)
index 0000000..b76dcd2
--- /dev/null
@@ -0,0 +1,40 @@
+# DP: Fix build failures with -Wl,--as-needed, don't explicitly link with -lc
+
+--- a/jdk/make/CompileLaunchers.gmk
++++ b/jdk/make/CompileLaunchers.gmk
+@@ -427,7 +427,7 @@ endif
+ # binary (at least on linux) which causes the size to differ between old and new build.
+ ifeq ($(USE_EXTERNAL_LIBZ), true)
+   UNPACKEXE_CFLAGS := -DSYSTEM_ZLIB
+-  UNPACKEXE_ZIPOBJS := -lz
++  UNPACKEXE_LIBS := -lz
+ else
+   UNPACKEXE_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.8
+   UNPACKEXE_ZIPOBJS := $(JDK_OUTPUTDIR)/objs/libzip/zcrc32$(OBJ_SUFFIX) \
+@@ -488,9 +488,9 @@ $(eval $(call SetupNativeCompilation,BUI
+     LDFLAGS_posix := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
+         $(call SET_SHARED_LIBRARY_NAME,$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)) \
+         $(call SET_SHARED_LIBRARY_ORIGIN), \
+-    LDFLAGS_linux := -lc, \
++    LDFLAGS_linux := , \
+     LDFLAGS_solaris := $(UNPACKEXE_LDFLAGS_solaris) -lc, \
+-    LDFLAGS_SUFFIX := $(LIBCXX), \
++    LDFLAGS_SUFFIX := $(UNPACKEXE_LIBS) $(LIBCXX), \
+     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR), \
+     OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/unpackexe$(OUTPUT_SUBDIR), \
+     PROGRAM := unpack200, \
+--- a/jdk/make/lib/Awt2dLibraries.gmk
++++ b/jdk/make/lib/Awt2dLibraries.gmk
+@@ -762,10 +762,10 @@ $(eval $(call SetupNativeCompilation,BUI
+         $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
+         $(BUILD_LIBJAVAJPEG_HEADERS), \
+     MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
+-    LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \
++    LDFLAGS := $(LDFLAGS_JDKLIB) \
+         $(call SET_SHARED_LIBRARY_ORIGIN), \
+     LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
+-    LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
++    LDFLAGS_SUFFIX := $(LIBJPEG_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \
+     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+     RC_FLAGS := $(RC_FLAGS) \
+         -D "JDK_FNAME=javajpeg.dll" \
diff --git a/debian/patches/make4-compatibility.diff b/debian/patches/make4-compatibility.diff
new file mode 100644 (file)
index 0000000..73671c2
--- /dev/null
@@ -0,0 +1,40 @@
+# DP: Fix hotspot build system for GNU make 4.0.
+
+Description: Fixes a bug in adjust-mflags.sh that breaks the hotspot build
+ with GNU make 4.0. The adjust-mflags.sh script attempts to replace
+ the -j parameter but it corrupts other parameters containing the character 'j'.
+ make 4.0 is more strict and returns an error in this case.
+ For example:
+     -I/home/ebourg/openjdk8/make/common
+ is transformed into:
+     -I/home/ebourg/open -j2 -dk8/make/common
+ This error is caused by this sed expression:
+     s/ -\([^  ][^     ]*\)j/ -\1 -j/
+ This expression splits a set of concatenated options containing the 'j' character:
+     -abcdefghijkl  -->  -abcdefghi -jkl
+ But it breaks the -I parameter which is followed by a path that may contain 'j'
+ (and this is often true when building open*j*dk)
+ The fix consists in ignoring the concatenated options if '/' is found.
+Author: Emmanuel Bourg <ebourg@apache.org>
+Bug: https://bugs.openjdk.java.net/browse/JDK-8028407
+--- a/hotspot/make/linux/makefiles/adjust-mflags.sh
++++ b/hotspot/make/linux/makefiles/adjust-mflags.sh
+@@ -64,7 +64,7 @@
+       echo "$MFLAGS" \
+       | sed '
+               s/^-/ -/
+-              s/ -\([^        ][^     ]*\)j/ -\1 -j/
++              s/ -\([^        ][^/    ]*\)j/ -\1 -j/
+               s/ -j[0-9][0-9]*/ -j/
+               s/ -j\([^       ]\)/ -j -\1/
+               s/ -j/ -j'${HOTSPOT_BUILD_JOBS:-${default_build_jobs}}'/
diff --git a/debian/patches/multiple-pkcs11-library-init.patch b/debian/patches/multiple-pkcs11-library-init.patch
new file mode 100644 (file)
index 0000000..f1e8bc2
--- /dev/null
@@ -0,0 +1,74 @@
+# HG changeset patch
+# User andrew
+# Date 1352129932 0
+# Node ID e9c857dcb964dbfa5eef3a3590244cb4d999cf7a
+# Parent  1406789608b76d0906881979335d685855f44190
+Allow multiple PKCS11 library initialisation to be a non-critical error.
+
+diff -r 1406789608b7 -r e9c857dcb964 src/share/classes/sun/security/pkcs11/Config.java
+--- jdk8/jdk/src/share/classes/sun/security/pkcs11/Config.java Tue Oct 30 13:05:14 2012 +0000
++++ jdk8/jdk/src/share/classes/sun/security/pkcs11/Config.java Mon Nov 05 15:38:52 2012 +0000
+@@ -52,6 +52,7 @@
+     static final int ERR_HALT       = 1;
+     static final int ERR_IGNORE_ALL = 2;
+     static final int ERR_IGNORE_LIB = 3;
++    static final int ERR_IGNORE_MULTI_INIT = 4;
+     // same as allowSingleThreadedModules but controlled via a system property
+     // and applied to all providers. if set to false, no SunPKCS11 instances
+@@ -980,6 +981,8 @@
+             handleStartupErrors = ERR_IGNORE_LIB;
+         } else if (val.equals("halt")) {
+             handleStartupErrors = ERR_HALT;
++        } else if (val.equals("ignoreMultipleInitialisation")) {
++            handleStartupErrors = ERR_IGNORE_MULTI_INIT;
+         } else {
+             throw excToken("Invalid value for handleStartupErrors:");
+         }
+diff -r 1406789608b7 -r e9c857dcb964 src/share/classes/sun/security/pkcs11/SunPKCS11.java
+--- jdk8/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java  Tue Oct 30 13:05:14 2012 +0000
++++ jdk8/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java  Mon Nov 05 15:38:52 2012 +0000
+@@ -168,26 +168,37 @@
+                 String nssLibraryDirectory = config.getNssLibraryDirectory();
+                 String nssSecmodDirectory = config.getNssSecmodDirectory();
+                 boolean nssOptimizeSpace = config.getNssOptimizeSpace();
++                int errorHandling = config.getHandleStartupErrors();
+                 if (secmod.isInitialized()) {
+                     if (nssSecmodDirectory != null) {
+                         String s = secmod.getConfigDir();
+                         if ((s != null) &&
+                                 (s.equals(nssSecmodDirectory) == false)) {
+-                            throw new ProviderException("Secmod directory "
+-                                + nssSecmodDirectory
+-                                + " invalid, NSS already initialized with "
+-                                + s);
++                            String msg = "Secmod directory " + nssSecmodDirectory
++                                + " invalid, NSS already initialized with " + s;
++                            if (errorHandling == Config.ERR_IGNORE_MULTI_INIT ||
++                                errorHandling == Config.ERR_IGNORE_ALL) {
++                                throw new UnsupportedOperationException(msg);
++                            } else {
++                                throw new ProviderException(msg);
++                            }
+                         }
+                     }
+                     if (nssLibraryDirectory != null) {
+                         String s = secmod.getLibDir();
+                         if ((s != null) &&
+                                 (s.equals(nssLibraryDirectory) == false)) {
+-                            throw new ProviderException("NSS library directory "
++                            String msg = "NSS library directory "
+                                 + nssLibraryDirectory
+                                 + " invalid, NSS already initialized with "
+-                                + s);
++                                + s;
++                            if (errorHandling == Config.ERR_IGNORE_MULTI_INIT ||
++                                errorHandling == Config.ERR_IGNORE_ALL) {
++                                throw new UnsupportedOperationException(msg);
++                            } else {
++                                throw new ProviderException(msg);
++                            }
+                         }
+                     }
+                 } else {
diff --git a/debian/patches/no-pch-build.diff b/debian/patches/no-pch-build.diff
new file mode 100644 (file)
index 0000000..0e1de32
--- /dev/null
@@ -0,0 +1,110 @@
+--- openjdk/hotspot/src/share/vm/oops/arrayKlassKlass.cpp~     2013-03-04 22:51:00.000000000 +0100
++++ openjdk/hotspot/src/share/vm/oops/arrayKlassKlass.cpp      2013-04-15 13:57:24.992929086 +0200
+@@ -30,6 +30,7 @@
+ #include "runtime/handles.inline.hpp"
+ #ifndef SERIALGC
+ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
+ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
+ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
+ #include "memory/cardTableRS.hpp"
+--- openjdk/hotspot/src/share/vm/oops/constantPoolKlass.cpp~   2013-03-04 22:51:00.000000000 +0100
++++ openjdk/hotspot/src/share/vm/oops/constantPoolKlass.cpp    2013-04-15 14:02:52.143087149 +0200
+@@ -49,6 +49,7 @@
+ #endif
+ #ifndef SERIALGC
+ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
+ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
+ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
+ #include "memory/cardTableRS.hpp"
+--- openjdk/hotspot/src/share/vm/oops/cpCacheKlass.cpp~        2013-03-04 22:51:00.000000000 +0100
++++ openjdk/hotspot/src/share/vm/oops/cpCacheKlass.cpp 2013-04-15 14:04:45.219838633 +0200
+@@ -35,6 +35,7 @@
+ #include "runtime/handles.inline.hpp"
+ #ifndef SERIALGC
+ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
+ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
+ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
+ #include "memory/cardTableRS.hpp"
+--- openjdk/hotspot/src/share/vm/oops/instanceKlass.cpp~       2013-03-04 22:51:00.000000000 +0100
++++ openjdk/hotspot/src/share/vm/oops/instanceKlass.cpp        2013-04-15 14:07:55.861109867 +0200
+@@ -70,6 +70,7 @@
+ #include "gc_implementation/g1/g1RemSet.inline.hpp"
+ #include "gc_implementation/g1/heapRegionSeq.inline.hpp"
+ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
+ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
+ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
+ #include "oops/oop.pcgc.inline.hpp"
+--- openjdk/hotspot/src/share/vm/oops/instanceKlassKlass.cpp~  2013-03-04 22:51:00.000000000 +0100
++++ openjdk/hotspot/src/share/vm/oops/instanceKlassKlass.cpp   2013-04-15 14:08:53.541485528 +0200
+@@ -44,6 +44,7 @@
+ #include "runtime/fieldDescriptor.hpp"
+ #ifndef SERIALGC
+ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
+ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
+ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
+ #include "memory/cardTableRS.hpp"
+--- openjdk/hotspot/src/share/vm/oops/instanceMirrorKlass.cpp~ 2013-03-04 22:51:00.000000000 +0100
++++ openjdk/hotspot/src/share/vm/oops/instanceMirrorKlass.cpp  2013-04-15 14:10:11.162003798 +0200
+@@ -42,6 +42,7 @@
+ #include "gc_implementation/g1/g1RemSet.inline.hpp"
+ #include "gc_implementation/g1/heapRegionSeq.inline.hpp"
+ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
+ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
+ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
+ #include "oops/oop.pcgc.inline.hpp"
+--- openjdk/hotspot/src/share/vm/oops/instanceRefKlass.cpp~    2013-03-04 22:51:00.000000000 +0100
++++ openjdk/hotspot/src/share/vm/oops/instanceRefKlass.cpp     2013-04-15 14:11:11.726403390 +0200
+@@ -39,6 +39,7 @@
+ #include "gc_implementation/g1/g1RemSet.inline.hpp"
+ #include "gc_implementation/g1/heapRegionSeq.inline.hpp"
+ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
+ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
+ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
+ #include "oops/oop.pcgc.inline.hpp"
+--- openjdk/hotspot/src/share/vm/oops/klassKlass.cpp~  2013-03-04 22:51:00.000000000 +0100
++++ openjdk/hotspot/src/share/vm/oops/klassKlass.cpp   2013-04-15 14:13:01.999133769 +0200
+@@ -42,6 +42,7 @@
+ #include "runtime/handles.inline.hpp"
+ #ifndef SERIALGC
+ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
+ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
+ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
+ #include "memory/cardTableRS.hpp"
+--- openjdk/hotspot/src/share/vm/oops/objArrayKlass.cpp~       2013-03-04 22:51:00.000000000 +0100
++++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.cpp        2013-04-15 14:16:10.616389484 +0200
+@@ -47,6 +47,7 @@
+ #include "gc_implementation/g1/g1RemSet.inline.hpp"
+ #include "gc_implementation/g1/heapRegionSeq.inline.hpp"
+ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
+ #include "gc_implementation/parallelScavenge/psCompactionManager.hpp"
+ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
+ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
+--- openjdk/hotspot/src/share/vm/oops/objArrayKlassKlass.cpp~  2013-03-04 22:51:00.000000000 +0100
++++ openjdk/hotspot/src/share/vm/oops/objArrayKlassKlass.cpp   2013-04-15 14:17:01.800729154 +0200
+@@ -33,6 +33,7 @@
+ #include "oops/oop.inline2.hpp"
+ #ifndef SERIALGC
+ #include "gc_implementation/parNew/parOopClosures.inline.hpp"
++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
+ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
+ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
+ #include "memory/cardTableRS.hpp"
+--- openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp~       2013-03-04 22:51:00.000000000 +0100
++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp        2013-04-15 14:20:24.782079605 +0200
+@@ -28,6 +28,7 @@
+ #include "gc_implementation/parallelScavenge/cardTableExtension.hpp"
+ #include "gc_implementation/parallelScavenge/gcTaskManager.hpp"
+ #include "gc_implementation/parallelScavenge/psMarkSweep.hpp"
++#include "gc_implementation/parallelScavenge/psOldGen.hpp"
+ #include "gc_implementation/parallelScavenge/psPromotionManager.hpp"
+ #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp"
+ #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp"
diff --git a/debian/patches/nonreparenting-wm.diff b/debian/patches/nonreparenting-wm.diff
new file mode 100644 (file)
index 0000000..3562814
--- /dev/null
@@ -0,0 +1,58 @@
+--- a/jdk/src/solaris/classes/sun/awt/X11/XWM.java
++++ b/jdk/src/solaris/classes/sun/awt/X11/XWM.java
+@@ -104,7 +104,8 @@
+         COMPIZ_WM = 12,
+         LG3D_WM = 13,
+         CWM_WM = 14,
+-        MUTTER_WM = 15;
++        MUTTER_WM = 15,
++        OTHER_NONREPARENTING_WM = 16;
+     public String toString() {
+         switch  (WMID) {
+           case NO_WM:
+@@ -596,7 +597,7 @@
+     }
+     static boolean isNonReparentingWM() {
+-        return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM || XWM.getWMID() == XWM.CWM_WM);
++        return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM || XWM.getWMID() == XWM.CWM_WM || XWM.getWMID() == XWM.OTHER_NONREPARENTING_WM);
+     }
+     /*
+@@ -791,9 +792,17 @@
+              * supports WIN or _NET wm spec.
+              */
+             else if (l_net_protocol.active()) {
+-                awt_wmgr = XWM.OTHER_WM;
++                if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) {
++                    awt_wmgr = XWM.OTHER_NONREPARENTING_WM;
++                } else {
++                    awt_wmgr = XWM.OTHER_WM;
++              }
+             } else if (win.active()) {
+-                awt_wmgr = XWM.OTHER_WM;
++                if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) {
++                    awt_wmgr = XWM.OTHER_NONREPARENTING_WM;
++                } else {
++                    awt_wmgr = XWM.OTHER_WM;
++              }
+             }
+             /*
+              * Check for legacy WMs.
+@@ -804,6 +813,8 @@
+                 awt_wmgr = XWM.MOTIF_WM;
+             } else if (isOpenLook()) {
+                 awt_wmgr = XWM.OPENLOOK_WM;
++            } else if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) {
++                awt_wmgr = XWM.OTHER_NONREPARENTING_WM;
+             } else {
+                 awt_wmgr = XWM.OTHER_WM;
+             }
+@@ -1332,6 +1343,7 @@
+                   res = new Insets(28, 6, 6, 6);
+                   break;
+               case NO_WM:
++              case OTHER_NONREPARENTING_WM:
+               case LG3D_WM:
+                   res = zeroInsets;
+                   break;
diff --git a/debian/patches/pass-extra-flags.diff b/debian/patches/pass-extra-flags.diff
new file mode 100644 (file)
index 0000000..7ebfab3
--- /dev/null
@@ -0,0 +1,36 @@
+--- openjdk/hotspot/make/linux/makefiles/jsig.make
++++ openjdk/hotspot/make/linux/makefiles/jsig.make
+@@ -54,7 +54,9 @@
+ $(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
+       @echo Making signal interposition lib...
+       $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
+-                         $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $< -ldl
++                         $(LFLAGS_JSIG) $(EXTRA_LDFLAGS) \
++                         $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) \
++                         -o $@ $< -ldl
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+       $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
+       $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
+--- openjdk/hotspot/make/linux/makefiles/vm.make
++++ openjdk/hotspot/make/linux/makefiles/vm.make
+@@ -121,7 +121,8 @@
+ # Extra flags from gnumake's invocation or environment
+ CFLAGS += $(EXTRA_CFLAGS)
+-LFLAGS += $(EXTRA_CFLAGS)
++CXXFLAGS += $(EXTRA_CXXFLAGS)
++LFLAGS += $(EXTRA_LDFLAGS)
+ # Don't set excutable bit on stack segment
+ # the same could be done by separate execstack command
+--- openjdk/hotspot/make/linux/makefiles/saproc.make
++++ openjdk/hotspot/make/linux/makefiles/saproc.make
+@@ -73,7 +73,7 @@
+ else
+ ALT_SAINCDIR=
+ endif
+-SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
++SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
+       $(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
diff --git a/debian/patches/ppc64el.diff b/debian/patches/ppc64el.diff
new file mode 100644 (file)
index 0000000..0e11e5a
--- /dev/null
@@ -0,0 +1,57 @@
+Index: b/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
+===================================================================
+--- a/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
++++ b/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp
+@@ -34,9 +34,13 @@
+ define_pd_global(bool,  DontYieldALot,           false);
+ define_pd_global(intx,  ThreadStackSize,         1536);
+ #ifdef _LP64
+-define_pd_global(intx,  VMThreadStackSize,       1024);
++#if defined (_LITTLE_ENDIAN) && defined (__powerpc64__)
++define_pd_global(intx,  VMThreadStackSize,       1920);
+ #else
+-define_pd_global(intx,  VMThreadStackSize,       512);
++define_pd_global(intx,  VMThreadStackSize,       1280);
++#endif
++#else
++define_pd_global(intx,  VMThreadStackSize,       640);
+ #endif // _LP64
+ define_pd_global(intx,  CompilerThreadStackSize, 0);
+ define_pd_global(uintx, JVMInvokeMethodSlack,    8192);
+Index: b/hotspot/src/os/linux/vm/os_linux.cpp
+===================================================================
+--- a/hotspot/src/os/linux/vm/os_linux.cpp
++++ b/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -4767,6 +4767,7 @@ void os::init(void) {
+   pthread_mutex_init(&dl_mutex, NULL);
++NOT_ZERO (
+   // If the pagesize of the VM is greater than 8K determine the appropriate
+   // number of initial guard pages.  The user can change this with the
+   // command line arguments, if needed.
+@@ -4775,6 +4776,7 @@ void os::init(void) {
+     StackRedPages = 1;
+     StackShadowPages = round_to((StackShadowPages*Linux::vm_default_page_size()), vm_page_size()) / vm_page_size();
+   }
++)
+ }
+ // To install functions for atexit system call
+@@ -4825,9 +4827,16 @@ jint os::init_2(void)
+   // size.  Add a page for compiler2 recursion in main thread.
+   // Add in 2*BytesPerWord times page size to account for VM stack during
+   // class initialization depending on 32 or 64 bit VM.
++NOT_ZERO (
+   os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,
+             (size_t)(StackYellowPages+StackRedPages+StackShadowPages) * Linux::page_size() +
+                     (2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::vm_default_page_size());
++)
++ZERO_ONLY (
++  os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed,          
++            (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
++                     2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::page_size());
++)
+   size_t threadStackSizeInBytes = ThreadStackSize * K;
+   if (threadStackSizeInBytes != 0 &&
diff --git a/debian/patches/set-exec-name.diff b/debian/patches/set-exec-name.diff
new file mode 100644 (file)
index 0000000..5c4d954
--- /dev/null
@@ -0,0 +1,47 @@
+--- openjdk/jdk/src/solaris/bin/java_md.c.orig
++++ openjdk/jdk/src/solaris/bin/java_md.c
+@@ -688,8 +688,19 @@
+         char buf[PATH_MAX+1];
+         int len = readlink(self, buf, PATH_MAX);
+         if (len >= 0) {
++          const char* prefixes[] = {"/cow/", "/persistmnt/", "/rofs/", "/rwfs/", "/squashmnt/", NULL};
++          const char **prefix;
++          size_t prefix_len = 0;
+             buf[len] = '\0';            /* readlink doesn't nul terminate */
+-            exec_path = JLI_StringDup(buf);
++          for (prefix = prefixes; *prefix; prefix++) {
++            prefix_len = strlen(buf) < strlen(*prefix) ? strlen(buf) : strlen(*prefix);
++            if (!strncmp(*prefix, buf, prefix_len)) {
++                  prefix_len--;
++                  break;
++            }
++            prefix_len = 0;
++          }
++            exec_path = JLI_StringDup(buf + prefix_len);
+         }
+     }
+ #else /* !__solaris__ && !__linux */
+--- openjdk/hotspot/src/os/posix/launcher/java_md.c.orig
++++ openjdk/hotspot/src/os/posix/launcher/java_md.c
+@@ -967,8 +967,19 @@
+         char buf[PATH_MAX+1];
+         int len = readlink(self, buf, PATH_MAX);
+         if (len >= 0) {
+-            buf[len] = '\0';            /* readlink doesn't nul terminate */
+-            exec_path = JLI_StringDup(buf);
++           buf[len] = '\0';            /* readlink doesn't nul terminate */
++           const char* prefixes[] = {"/cow/", "/persistmnt/", "/rofs/", "/rwfs/", "/squashmnt/", NULL};
++           const char **prefix;
++           size_t prefix_len = 0;
++           for (prefix = prefixes; *prefix; prefix++) {
++             prefix_len = strlen(buf) < strlen(*prefix) ? strlen(buf) : strlen(*prefix);
++             if (!strncmp(*prefix, buf, prefix_len)) {
++                   prefix_len--;
++                   break;
++             }
++             prefix_len = 0;
++           }
++           exec_path = JLI_StringDup(buf + prefix_len);
+         }
+     }
+ #else /* !__sun && !__linux */
diff --git a/debian/patches/shebang.diff b/debian/patches/shebang.diff
new file mode 100644 (file)
index 0000000..fc08ba3
--- /dev/null
@@ -0,0 +1,7 @@
+--- a/jdk/src/share/sample/scripting/scriptpad/src/scripts/memory.sh
++++ b/jdk/src/share/sample/scripting/scriptpad/src/scripts/memory.sh
+@@ -1,3 +1,4 @@
++#!/bin/sh
+ #
+ # Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
+ #
diff --git a/debian/patches/sparc-stubgenerator.diff b/debian/patches/sparc-stubgenerator.diff
new file mode 100644 (file)
index 0000000..4e0ea20
--- /dev/null
@@ -0,0 +1,44 @@
+Author: Damien Raude-Morvan <drazzib@debian.org>
+Description: Fix FTBFS on sparc on stubGenerator_sparc.cpp by using explicit class typedef.
+
+--- a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp
++++ b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp
+@@ -1055,7 +1055,7 @@
+                                               Label& L_loop, bool use_prefetch, bool use_bis);
+   void disjoint_copy_core(Register from, Register to, Register count, int log2_elem_size,
+-                          int iter_size, CopyLoopFunc copy_loop_func) {
++                          int iter_size, StubGenerator::CopyLoopFunc copy_loop_func) {
+     Label L_copy;
+     assert(log2_elem_size <= 3, "the following code should be changed");
+@@ -1206,7 +1206,8 @@
+     __ inc(from, 8);
+     __ sllx(O3, left_shift,  O3);
+-    disjoint_copy_core(from, to, count, log2_elem_size, 16, copy_16_bytes_shift_loop);
++    StubGenerator::CopyLoopFunc aFunction = &StubGenerator::copy_16_bytes_shift_loop;
++    disjoint_copy_core(from, to, count, log2_elem_size, 16, aFunction);
+     __ inccc(count, count_dec>>1 ); // + 8 bytes
+     __ brx(Assembler::negative, true, Assembler::pn, L_copy_last_bytes);
+@@ -2085,7 +2086,8 @@
+       __ dec(count, 4);   // The cmp at the beginning guaranty count >= 4
+       __ sllx(O3, 32,  O3);
+-      disjoint_copy_core(from, to, count, 2, 16, copy_16_bytes_loop);
++      StubGenerator::CopyLoopFunc aFunction = &StubGenerator::copy_16_bytes_loop;
++      disjoint_copy_core(from, to, count, 2, 16, aFunction);
+       __ br(Assembler::always, false, Assembler::pt, L_copy_4_bytes);
+       __ delayed()->inc(count, 4); // restore 'count'
+@@ -2366,7 +2368,8 @@
+     // count >= 0 (original count - 8)
+     __ mov(from, from64);
+-    disjoint_copy_core(from64, to64, count, 3, 64, copy_64_bytes_loop);
++    StubGenerator::CopyLoopFunc aFunction = &StubGenerator::copy_64_bytes_loop;
++    disjoint_copy_core(from64, to64, count, 3, 64, aFunction);
+       // Restore O4(offset0), O5(offset8)
+       __ sub(from64, from, offset0);
diff --git a/debian/patches/stack-direction.diff b/debian/patches/stack-direction.diff
new file mode 100644 (file)
index 0000000..04deba3
--- /dev/null
@@ -0,0 +1,217 @@
+# unused patch (work in progress for PARISC support)
+
+--- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp.old     2010-01-06 16:30:02.000000000 +0100
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp 2010-01-06 23:14:47.000000000 +0100
+@@ -144,8 +144,13 @@
+       address addr = (address) info->si_addr;
+       // check if fault address is within thread stack
++#ifdef __hppa__
++      if (addr > thread->stack_base() &&
++          addr <= thread->stack_base() + thread->stack_size()) {
++#else
+       if (addr < thread->stack_base() &&
+           addr >= thread->stack_base() - thread->stack_size()) {
++#endif
+         // stack overflow
+         if (thread->in_stack_yellow_zone(addr)) {
+           thread->disable_stack_yellow_zone();
+@@ -294,7 +299,11 @@
+   if (res != 0) {
+     fatal1("pthread_attr_getstack failed with errno = %d", res);
+   }
++#ifdef __hppa__
++  address stack_top = stack_bottom - stack_bytes;
++#else
+   address stack_top = stack_bottom + stack_bytes;
++#endif
+   // The block of memory returned by pthread_attr_getstack() includes
+   // guard pages where present.  We need to trim these off.
+@@ -321,7 +330,11 @@
+   stack_bottom += (total_pages - guard_pages) / 2 * page_bytes;
+ #endif // IA64
++#ifdef __hppa__
++  stack_bottom -= guard_bytes;
++#else
+   stack_bottom += guard_bytes;
++#endif
+   pthread_attr_destroy(&attr);
+@@ -329,19 +342,36 @@
+   // by pthread_attr_getstack is the maximum size it could possibly
+   // be given what currently mapped.  This can be huge, so we cap it.
+   if (os::Linux::is_initial_thread()) {
++#ifdef __hppa__
++    stack_bytes = stack_bottom - stack_top;
++#else
+     stack_bytes = stack_top - stack_bottom;
++#endif
+     if (stack_bytes > JavaThread::stack_size_at_create())
+       stack_bytes = JavaThread::stack_size_at_create();
++#ifdef __hppa__
++    stack_bottom = stack_top + stack_bytes;
++#else
+     stack_bottom = stack_top - stack_bytes;
++#endif
+   }
++#ifdef __hppa__
++  assert(os::current_stack_pointer() <= stack_bottom, "should do");
++  assert(os::current_stack_pointer() > stack_top, "should do");
++#else
+   assert(os::current_stack_pointer() >= stack_bottom, "should do");
+   assert(os::current_stack_pointer() < stack_top, "should do");
++#endif
+   *bottom = stack_bottom;
++#ifdef __hppa__
++  *size = stack_bottom - stack_top;
++#else
+   *size = stack_top - stack_bottom;
++#endif
+ }
+ address os::current_stack_base() {
+--- openjdk/hotspot/src/share/vm/runtime/thread.cpp.old        2009-10-02 23:16:39.000000000 +0200
++++ openjdk/hotspot/src/share/vm/runtime/thread.cpp    2010-01-06 23:31:24.000000000 +0100
+@@ -713,8 +713,13 @@
+   else if (is_ConcurrentGC_thread())        st->print("ConcurrentGCThread");
+   else st->print("Thread");
++#ifdef __hppa__
+   st->print(" [stack: " PTR_FORMAT "," PTR_FORMAT "]",
+             _stack_base - _stack_size, _stack_base);
++#else
++  st->print(" [stack: " PTR_FORMAT "," PTR_FORMAT "]",
++            _stack_base + _stack_size, _stack_base);
++#endif
+   if (osthread()) {
+     st->print(" [id=%d]", osthread()->thread_id());
+@@ -792,7 +797,11 @@
+ bool Thread::is_in_stack(address adr) const {
+   assert(Thread::current() == this, "is_in_stack can only be called from current thread");
+   address end = os::current_stack_pointer();
++#ifdef __hppa__
++  if (stack_base() <= adr && adr <= end) return true;
++#else
+   if (stack_base() >= adr && adr >= end) return true;
++#endif
+   return false;
+ }
+@@ -804,7 +813,11 @@
+ // should be revisited, and they should be removed if possible.
+ bool Thread::is_lock_owned(address adr) const {
++#ifdef __hppa__
++  return (_stack_base <= adr && adr <= (_stack_base + _stack_size));
++#else
+   return (_stack_base >= adr && adr >= (_stack_base - _stack_size));
++#endif
+ }
+ bool Thread::set_as_starting_thread() {
+@@ -2108,7 +2121,11 @@
+ void JavaThread::create_stack_guard_pages() {
+   if (! os::uses_stack_guard_pages() || _stack_guard_state != stack_guard_unused) return;
++#ifdef __hppa__
++  address low_addr = stack_base();
++#else
+   address low_addr = stack_base() - stack_size();
++#endif
+   size_t len = (StackYellowPages + StackRedPages) * os::vm_page_size();
+   int allocate = os::allocate_stack_guard_pages();
+@@ -2131,7 +2148,11 @@
+ void JavaThread::remove_stack_guard_pages() {
+   if (_stack_guard_state == stack_guard_unused) return;
++#ifdef __hppa__
++  address low_addr = stack_base();
++#else
+   address low_addr = stack_base() - stack_size();
++#endif
+   size_t len = (StackYellowPages + StackRedPages) * os::vm_page_size();
+   if (os::allocate_stack_guard_pages()) {
+@@ -2156,10 +2177,17 @@
+   // The base notation is from the stacks point of view, growing downward.
+   // We need to adjust it to work correctly with guard_memory()
++#ifdef __hppa__
++  address base = stack_yellow_zone_base() + stack_yellow_zone_size();
++
++  guarantee(base > stack_base(),"Error calculating stack yellow zone");
++  guarantee(base > os::current_stack_pointer(),"Error calculating stack yellow zone");
++#else
+   address base = stack_yellow_zone_base() - stack_yellow_zone_size();
+   guarantee(base < stack_base(),"Error calculating stack yellow zone");
+   guarantee(base < os::current_stack_pointer(),"Error calculating stack yellow zone");
++#endif
+   if (os::guard_memory((char *) base, stack_yellow_zone_size())) {
+     _stack_guard_state = stack_guard_enabled;
+@@ -2178,7 +2206,11 @@
+   // The base notation is from the stacks point of view, growing downward.
+   // We need to adjust it to work correctly with guard_memory()
++#ifdef __hppa__
++  address base = stack_yellow_zone_base() + stack_yellow_zone_size();
++#else
+   address base = stack_yellow_zone_base() - stack_yellow_zone_size();
++#endif
+   if (os::unguard_memory((char *)base, stack_yellow_zone_size())) {
+     _stack_guard_state = stack_guard_yellow_disabled;
+@@ -2192,10 +2224,17 @@
+   // The base notation is from the stacks point of view, growing downward.
+   // We need to adjust it to work correctly with guard_memory()
+   assert(_stack_guard_state != stack_guard_unused, "must be using guard pages.");
++#ifdef __hppa__
++  address base = stack_red_zone_base() + stack_red_zone_size();
++
++  guarantee(base > stack_base(),"Error calculating stack red zone");
++  guarantee(base > os::current_stack_pointer(),"Error calculating stack red zone");
++#else
+   address base = stack_red_zone_base() - stack_red_zone_size();
+   guarantee(base < stack_base(),"Error calculating stack red zone");
+   guarantee(base < os::current_stack_pointer(),"Error calculating stack red zone");
++#endif
+   if(!os::guard_memory((char *) base, stack_red_zone_size())) {
+     warning("Attempt to guard stack red zone failed.");
+@@ -2206,7 +2245,11 @@
+   // The base notation is from the stacks point of view, growing downward.
+   // We need to adjust it to work correctly with guard_memory()
+   assert(_stack_guard_state != stack_guard_unused, "must be using guard pages.");
++#ifdef __hppa__
++  address base = stack_red_zone_base() + stack_red_zone_size();
++#else
+   address base = stack_red_zone_base() - stack_red_zone_size();
++#endif
+   if (!os::unguard_memory((char *)base, stack_red_zone_size())) {
+     warning("Attempt to unguard stack red zone failed.");
+   }
+@@ -2451,8 +2494,13 @@
+   if (osthread()) {
+     st->print(", id=%d", osthread()->thread_id());
+   }
++#ifdef __hppa__
++  st->print(", stack(" PTR_FORMAT "," PTR_FORMAT ")",
++            _stack_base + _stack_size, _stack_base);
++#else
+   st->print(", stack(" PTR_FORMAT "," PTR_FORMAT ")",
+             _stack_base - _stack_size, _stack_base);
++#endif
+   st->print("]");
+   return;
+ }
diff --git a/debian/patches/system-lcms.diff b/debian/patches/system-lcms.diff
new file mode 100644 (file)
index 0000000..e6b298d
--- /dev/null
@@ -0,0 +1,107 @@
+# DP: taken from http://icedtea.classpath.org/wiki/IcedTea_Patches_for_OpenJDK_8
+
+Index: b/common/autoconf/libraries.m4
+===================================================================
+--- a/common/autoconf/libraries.m4
++++ b/common/autoconf/libraries.m4
+@@ -679,6 +679,46 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS],
+   ###############################################################################
+   #
++  # Check for the lcms2 library
++  #
++
++  AC_ARG_WITH(lcms, [AS_HELP_STRING([--with-lcms],
++      [use lcms2 from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
++
++  AC_CHECK_LIB(lcms2, cmsOpenProfileFromFile,
++               [ LCMS_FOUND=yes ],
++               [ LCMS_FOUND=no ])
++
++  AC_MSG_CHECKING([for which lcms to use])
++
++  DEFAULT_LCMS=bundled
++
++  #
++  # If user didn't specify, use DEFAULT_LCMS
++  #
++  if test "x${with_lcms}" = "x"; then
++      with_lcms=${DEFAULT_LCMS}
++  fi
++
++  if test "x${with_lcms}" = "xbundled"; then
++      USE_EXTERNAL_LCMS=false
++      AC_MSG_RESULT([bundled])
++  elif test "x${with_lcms}" = "xsystem"; then
++      if test "x${LCMS_FOUND}" = "xyes"; then
++          USE_EXTERNAL_LCMS=true
++          AC_MSG_RESULT([system])
++      else
++          AC_MSG_RESULT([system not found])
++          AC_MSG_ERROR([--with-lcms=system specified, but no lcms found!])
++      fi
++  else
++      AC_MSG_ERROR([Invalid value for --with-lcms: ${with_lcms}, use 'system' or 'bundled'])
++  fi
++
++  AC_SUBST(USE_EXTERNAL_LCMS)
++
++  ###############################################################################
++  #
+   # Check for the png library
+   #
+Index: b/jdk/make/lib/Awt2dLibraries.gmk
+===================================================================
+--- a/jdk/make/lib/Awt2dLibraries.gmk
++++ b/jdk/make/lib/Awt2dLibraries.gmk
+@@ -670,8 +670,8 @@ endif
+ ##########################################################################################
+ # TODO: Update awt lib path when awt is converted
+-$(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \
+-    LIBRARY := lcms, \
++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVALCMS, \
++    LIBRARY := javalcms, \
+     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
+     SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \
+     LANG := C, \
+@@ -689,19 +689,19 @@ $(eval $(call SetupNativeCompilation,BUI
+     LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \
+     LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \
+     LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \
+-    LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \
++    LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm -llcms2, \
+     LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\
+     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+     RC_FLAGS := $(RC_FLAGS) \
+-        -D "JDK_FNAME=lcms.dll" \
+-        -D "JDK_INTERNAL_NAME=lcms" \
++        -D "JDK_FNAME=javalcms.dll" \
++        -D "JDK_INTERNAL_NAME=javalcms" \
+         -D "JDK_FTYPE=0x2L", \
+-    OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \
++    OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavalcms, \
+     DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
+-BUILD_LIBRARIES += $(BUILD_LIBLCMS)
++BUILD_LIBRARIES += $(BUILD_LIBJAVALCMS)
+-$(BUILD_LIBLCMS): $(BUILD_LIBAWT)
++$(BUILD_LIBJAVALCMS): $(BUILD_LIBAWT)
+ ##########################################################################################
+Index: b/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+===================================================================
+--- a/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
++++ b/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java
+@@ -207,7 +207,7 @@ public class LCMS implements PCMM {
+                          * disposer frameworks
+                          */
+                         System.loadLibrary("awt");
+-                        System.loadLibrary("lcms");
++                        System.loadLibrary("javalcms");
+                         return null;
+                     }
+                 });
diff --git a/debian/patches/system-libjpeg.diff b/debian/patches/system-libjpeg.diff
new file mode 100644 (file)
index 0000000..5e98fb0
--- /dev/null
@@ -0,0 +1,375 @@
+# DP: S8043805: Allow using a system-installed libjpeg
+# DP:   http://hg.openjdk.java.net/jdk9/client/rev/bfd9a3e1aeb5
+# DP:   http://hg.openjdk.java.net/jdk9/client/jdk/rev/320743f0b4fc
+
+Index: b/common/autoconf/generated-configure.sh
+===================================================================
+--- a/common/autoconf/generated-configure.sh
++++ b/common/autoconf/generated-configure.sh
+@@ -1058,6 +1058,7 @@ enable_freetype_bundling
+ with_alsa
+ with_alsa_include
+ with_alsa_lib
++with_libjpeg
+ with_giflib
+ with_zlib
+ with_stdc__lib
+@@ -1828,6 +1829,8 @@ Optional Packages:
+                           headers under PATH/include)
+   --with-alsa-include     specify directory for the alsa include files
+   --with-alsa-lib         specify directory for the alsa library
++  --with-libjpeg          use libjpeg from build system or OpenJDK source
++                          (system, bundled) [bundled]
+   --with-giflib           use giflib from build system or OpenJDK source
+                           (system, bundled) [bundled]
+   --with-zlib             use zlib from build system or OpenJDK source
+@@ -7921,6 +7924,11 @@ $as_echo "$with_jvm_variants" >&6; }
+   JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
+   JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'`
++  if test "x$JVM_VARIANT_CLIENT" = xtrue; then
++    if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
++      as_fn_error $? "You cannot build a client JVM for a 64-bit machine." "$LINENO" 5
++    fi
++  fi
+   if test "x$JVM_VARIANT_KERNEL" = xtrue; then
+     if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
+       as_fn_error $? "You cannot build a kernel JVM for a 64-bit machine." "$LINENO" 5
+@@ -34924,10 +34932,43 @@ done
+   # Check for the jpeg library
+   #
+-  USE_EXTERNAL_LIBJPEG=true
+-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5
+-$as_echo_n "checking for main in -ljpeg... " >&6; }
+-if ${ac_cv_lib_jpeg_main+:} false; then :
++
++# Check whether --with-libjpeg was given.
++if test "${with_libjpeg+set}" = set; then :
++  withval=$with_libjpeg;
++fi
++
++
++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for which libjpeg to use" >&5
++$as_echo_n "checking for which libjpeg to use... " >&6; }
++
++  # default is bundled
++  DEFAULT_LIBJPEG=bundled
++
++  #
++  # if user didn't specify, use DEFAULT_LIBJPEG
++  #
++  if test "x${with_libjpeg}" = "x"; then
++    with_libjpeg=${DEFAULT_LIBJPEG}
++  fi
++
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libjpeg}" >&5
++$as_echo "${with_libjpeg}" >&6; }
++
++  if test "x${with_libjpeg}" = "xbundled"; then
++    USE_EXTERNAL_LIBJPEG=false
++  elif test "x${with_libjpeg}" = "xsystem"; then
++    ac_fn_cxx_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default"
++if test "x$ac_cv_header_jpeglib_h" = xyes; then :
++
++else
++   as_fn_error $? "--with-libjpeg=system specified, but jpeglib.h not found!" "$LINENO" 5
++fi
++
++
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_CreateDecompress in -ljpeg" >&5
++$as_echo_n "checking for jpeg_CreateDecompress in -ljpeg... " >&6; }
++if ${ac_cv_lib_jpeg_jpeg_CreateDecompress+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+@@ -34935,27 +34976,33 @@ LIBS="-ljpeg  $LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+-
++/* Override any GCC internal prototype to avoid an error.
++   Use char because int might match the return type of a GCC
++   builtin and then its argument prototype would still apply.  */
++#ifdef __cplusplus
++extern "C"
++#endif
++char jpeg_CreateDecompress ();
+ int
+ main ()
+ {
+-return main ();
++return jpeg_CreateDecompress ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ if ac_fn_cxx_try_link "$LINENO"; then :
+-  ac_cv_lib_jpeg_main=yes
++  ac_cv_lib_jpeg_jpeg_CreateDecompress=yes
+ else
+-  ac_cv_lib_jpeg_main=no
++  ac_cv_lib_jpeg_jpeg_CreateDecompress=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5
+-$as_echo "$ac_cv_lib_jpeg_main" >&6; }
+-if test "x$ac_cv_lib_jpeg_main" = xyes; then :
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_CreateDecompress" >&5
++$as_echo "$ac_cv_lib_jpeg_jpeg_CreateDecompress" >&6; }
++if test "x$ac_cv_lib_jpeg_jpeg_CreateDecompress" = xyes; then :
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_LIBJPEG 1
+ _ACEOF
+@@ -34963,13 +35010,16 @@ _ACEOF
+   LIBS="-ljpeg $LIBS"
+ else
+-   USE_EXTERNAL_LIBJPEG=false
+-      { $as_echo "$as_me:${as_lineno-$LINENO}: Will use jpeg decoder bundled with the OpenJDK source" >&5
+-$as_echo "$as_me: Will use jpeg decoder bundled with the OpenJDK source" >&6;}
+-
++   as_fn_error $? "--with-libjpeg=system specified, but no libjpeg found" "$LINENO" 5
+ fi
++    USE_EXTERNAL_LIBJPEG=true
++  else
++    as_fn_error $? "Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'" "$LINENO" 5
++  fi
++
++
+   ###############################################################################
+   #
+Index: b/common/autoconf/libraries.m4
+===================================================================
+--- a/common/autoconf/libraries.m4
++++ b/common/autoconf/libraries.m4
+@@ -608,11 +608,36 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS],
+   # Check for the jpeg library
+   #
+-  USE_EXTERNAL_LIBJPEG=true
+-  AC_CHECK_LIB(jpeg, main, [],
+-      [ USE_EXTERNAL_LIBJPEG=false
+-      AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source])
+-  ])
++  AC_ARG_WITH(libjpeg, [AS_HELP_STRING([--with-libjpeg],
++      [use libjpeg from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
++
++  AC_MSG_CHECKING([for which libjpeg to use])
++
++  # default is bundled
++  DEFAULT_LIBJPEG=bundled
++
++  #
++  # if user didn't specify, use DEFAULT_LIBJPEG
++  #
++  if test "x${with_libjpeg}" = "x"; then
++    with_libjpeg=${DEFAULT_LIBJPEG}
++  fi
++
++  AC_MSG_RESULT(${with_libjpeg})
++
++  if test "x${with_libjpeg}" = "xbundled"; then
++    USE_EXTERNAL_LIBJPEG=false
++  elif test "x${with_libjpeg}" = "xsystem"; then
++    AC_CHECK_HEADER(jpeglib.h, [],
++        [ AC_MSG_ERROR([--with-libjpeg=system specified, but jpeglib.h not found!])])
++    AC_CHECK_LIB(jpeg, jpeg_CreateDecompress, [],
++        [ AC_MSG_ERROR([--with-libjpeg=system specified, but no libjpeg found])])
++
++    USE_EXTERNAL_LIBJPEG=true
++  else
++    AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled'])
++  fi
++
+   AC_SUBST(USE_EXTERNAL_LIBJPEG)
+   ###############################################################################
+Index: b/jdk/make/lib/Awt2dLibraries.gmk
+===================================================================
+--- a/jdk/make/lib/Awt2dLibraries.gmk
++++ b/jdk/make/lib/Awt2dLibraries.gmk
+@@ -704,21 +704,24 @@ $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
+ ##########################################################################################
++BUILD_LIBJAVAJPEG_DIR := $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
++
+ ifdef OPENJDK
+-  BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
++  BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers
+ else
+-  BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed
+-  BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
+-  BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC)
++  BUILD_LIBJAVAJPEG_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjpeg/mapfile-vers-closed
++  BUILD_LIBJAVAJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
++  BUILD_LIBJAVAJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJAVAJPEG_CLOSED_SRC)
+ endif
+-BUILD_LIBJPEG_REORDER :=
++BUILD_LIBJAVAJPEG_REORDER :=
+ ifeq ($(OPENJDK_TARGET_OS), solaris)
+   ifneq ($(OPENJDK_TARGET_CPU), x86_64)
+-    BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
++    BUILD_LIBJAVAJPEG_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU)
+   endif
+ endif
++
+ # Suppress gcc warnings like "variable might be clobbered by 'longjmp'
+ # or 'vfork'": this warning indicates that some variable is placed to
+ # a register by optimized compiler and it's value might be lost on longjmp().
+@@ -730,37 +733,50 @@ endif
+ #      $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
+ #          \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
+ #  ifeq ($(CC_43_OR_NEWER), 1)
+-#    BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
++#    BUILD_LIBJAVAJPEG_CFLAGS_linux += -Wno-clobbered
+ #  endif
+ #endif
+-$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \
+-    LIBRARY := jpeg, \
++ifeq ($(USE_EXTERNAL_LIBJPEG), true)
++  LIBJPEG_LIBS := -ljpeg
++  BUILD_LIBJAVAJPEG_INCLUDE_FILES := \
++      imageIOJPEG.c \
++      jpegdecoder.c
++  BUILD_LIBJAVAJPEG_HEADERS :=
++else
++  LIBJPEG_LIBS :=
++  BUILD_LIBJAVAJPEG_INCLUDE_FILES :=
++  BUILD_LIBJAVAJPEG_HEADERS := -I$(BUILD_LIBJAVAJPEG_DIR)
++endif
++
++$(eval $(call SetupNativeCompilation,BUILD_LIBJAVAJPEG, \
++    LIBRARY := javajpeg, \
+     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
+-    SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \
+-        $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
++    SRC := $(BUILD_LIBJAVAJPEG_CLOSED_SRC) \
++        $(BUILD_LIBJAVAJPEG_DIR), \
++    INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \
+     LANG := C, \
+     OPTIMIZATION := HIGHEST, \
+     CFLAGS := $(CFLAGS_JDKLIB) \
+-        $(BUILD_LIBJPEG_CLOSED_INCLUDES) \
+-        -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \
+-    MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \
+-    LDFLAGS := $(LDFLAGS_JDKLIB) \
++        $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
++        $(BUILD_LIBJAVAJPEG_HEADERS), \
++    MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
++    LDFLAGS := $(LDFLAGS_JDKLIB) $(LIBJPEG_LIBS) \
+         $(call SET_SHARED_LIBRARY_ORIGIN), \
+     LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \
+     LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
+     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+     RC_FLAGS := $(RC_FLAGS) \
+-        -D "JDK_FNAME=jpeg.dll" \
+-        -D "JDK_INTERNAL_NAME=jpeg" \
++        -D "JDK_FNAME=javajpeg.dll" \
++        -D "JDK_INTERNAL_NAME=javajpeg" \
+         -D "JDK_FTYPE=0x2L", \
+-    REORDER := $(BUILD_LIBJPEG_REORDER), \
++    REORDER := $(BUILD_LIBJAVAJPEG_REORDER), \
+     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \
+     DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
+-$(BUILD_LIBJPEG): $(BUILD_LIBJAVA)
++$(BUILD_LIBJAVAJPEG): $(BUILD_LIBJAVA)
+-BUILD_LIBRARIES += $(BUILD_LIBJPEG)
++BUILD_LIBRARIES += $(BUILD_LIBJAVAJPEG)
+ ##########################################################################################
+@@ -1206,6 +1222,13 @@ ifndef BUILD_HEADLESS_ONLY
+     GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib
+   endif
++  ifeq ($(USE_EXTERNAL_LIBJPEG), true)
++    LIBJPEG_LDFLAGS := -ljpeg
++  else
++    LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
++    LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
++  endif
++
+   ifneq ($(OPENJDK_TARGET_OS), macosx)
+     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
+   else
+@@ -1268,11 +1291,13 @@ ifndef BUILD_HEADLESS_ONLY
+       EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
+       LANG := C, \
+       OPTIMIZATION := LOW, \
+-      CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \
++      CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
++                $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \
+       MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
+       LDFLAGS := $(LDFLAGS_JDKLIB) \
+           $(call SET_SHARED_LIBRARY_ORIGIN), \
+-      LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \
++      LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \
++                        $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \
+       LDFLAGS_SUFFIX_solaris := -lc, \
+       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+       RC_FLAGS := $(RC_FLAGS) \
+Index: b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+===================================================================
+--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
++++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java
+@@ -89,7 +89,7 @@ public class JPEGImageReader extends Ima
+         java.security.AccessController.doPrivileged(
+             new java.security.PrivilegedAction<Void>() {
+                 public Void run() {
+-                    System.loadLibrary("jpeg");
++                    System.loadLibrary("javajpeg");
+                     return null;
+                 }
+             });
+Index: b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+===================================================================
+--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
++++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+@@ -179,7 +179,7 @@ public class JPEGImageWriter extends Ima
+         java.security.AccessController.doPrivileged(
+             new java.security.PrivilegedAction<Void>() {
+                 public Void run() {
+-                    System.loadLibrary("jpeg");
++                    System.loadLibrary("javajpeg");
+                     return null;
+                 }
+             });
+Index: b/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+===================================================================
+--- a/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
++++ b/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java
+@@ -56,7 +56,7 @@ public class JPEGImageDecoder extends Im
+         java.security.AccessController.doPrivileged(
+             new java.security.PrivilegedAction<Void>() {
+                 public Void run() {
+-                    System.loadLibrary("jpeg");
++                    System.loadLibrary("javajpeg");
+                     return null;
+                 }
+             });
+Index: b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
+===================================================================
+--- a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
++++ b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
+@@ -51,7 +51,7 @@
+ /* headers from the JPEG library */
+ #include <jpeglib.h>
+-#include "jerror.h"
++#include <jerror.h>
+ #undef MAX
+ #define MAX(a,b)        ((a) > (b) ? (a) : (b))
diff --git a/debian/patches/system-libpng.diff b/debian/patches/system-libpng.diff
new file mode 100644 (file)
index 0000000..f2aa1e2
--- /dev/null
@@ -0,0 +1,121 @@
+# DP: taken from http://icedtea.classpath.org/wiki/IcedTea_Patches_for_OpenJDK_8
+
+Index: b/common/autoconf/libraries.m4
+===================================================================
+--- a/common/autoconf/libraries.m4
++++ b/common/autoconf/libraries.m4
+@@ -679,6 +679,47 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS],
+   ###############################################################################
+   #
++  # Check for the png library
++  #
++
++  AC_ARG_WITH(libpng, [AS_HELP_STRING([--with-libpng],
++     [use libpng from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
++
++  AC_CHECK_LIB(png, png_sig_cmp,
++               [ LIBPNG_FOUND=yes ],
++               [ LIBPNG_FOUND=no ])
++
++  AC_MSG_CHECKING([for which libpng to use])
++
++  # default is bundled
++  DEFAULT_LIBPNG=bundled
++
++  #
++  # if user didn't specify, use DEFAULT_LIBPNG
++  #
++  if test "x${with_libpng}" = "x"; then
++      with_libpng=${DEFAULT_libpng}
++  fi
++
++
++  if test "x${with_libpng}" = "xbundled"; then
++      USE_EXTERNAL_LIBPNG=false
++      AC_MSG_RESULT([bundled])
++  elif test "x${with_libpng}" = "xsystem"; then
++      if test "x${LIBPNG_FOUND}" = "xyes"; then
++          USE_EXTERNAL_LIBPNG=true
++          AC_MSG_RESULT([system])
++      else
++          AC_MSG_RESULT([system not found])
++          AC_MSG_ERROR([--with-libpng=system specified, but no libpng found!])
++      fi
++  else
++      AC_MSG_ERROR([Invalid value of --with-libpng: ${with_libpng}, use 'system' or 'bundled'])
++  fi
++  AC_SUBST(USE_EXTERNAL_LIBPNG)
++
++  ###############################################################################
++  #
+   # Check for the zlib library
+   #
+Index: b/common/autoconf/spec.gmk.in
+===================================================================
+--- a/common/autoconf/spec.gmk.in
++++ b/common/autoconf/spec.gmk.in
+@@ -555,6 +555,7 @@ endif
+ ENABLE_JFR=@ENABLE_JFR@
+ ENABLE_INTREE_EC=@ENABLE_INTREE_EC@
+ USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@
++USE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@
+ USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
+ USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
+ LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
+Index: b/jdk/make/lib/Awt2dLibraries.gmk
+===================================================================
+--- a/jdk/make/lib/Awt2dLibraries.gmk
++++ b/jdk/make/lib/Awt2dLibraries.gmk
+@@ -1213,7 +1213,6 @@ endif
+ ifndef BUILD_HEADLESS_ONLY
+   LIBSPLASHSCREEN_DIRS := \
+     $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \
+-    $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \
+     $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen
+   ifeq ($(USE_EXTERNAL_LIBGIF), true)
+@@ -1230,6 +1229,13 @@ ifndef BUILD_HEADLESS_ONLY
+     LIBJPEG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg
+   endif
++  ifeq ($(USE_EXTERNAL_LIBPNG), true)
++    LIBPNG_LDFLAGS := -lpng
++  else
++    LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/image/libpng
++    LIBPNG_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/libpng
++  endif
++
+   ifneq ($(OPENJDK_TARGET_OS), macosx)
+     LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen
+   else
+@@ -1293,12 +1299,12 @@ ifndef BUILD_HEADLESS_ONLY
+       LANG := C, \
+       OPTIMIZATION := LOW, \
+       CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
+-                $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS), \
++                $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(LIBPNG_CFLAGS), \
+       MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
+       LDFLAGS := $(LDFLAGS_JDKLIB) \
+           $(call SET_SHARED_LIBRARY_ORIGIN), \
+       LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) \
+-                        $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS), \
++                        $(GIFLIB_LDFLAGS) $(LIBJPEG_LDFLAGS) $(LIBPNG_LDFLAGS), \
+       LDFLAGS_SUFFIX_solaris := -lc, \
+       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+       RC_FLAGS := $(RC_FLAGS) \
+Index: b/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
+===================================================================
+--- a/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
++++ b/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c
+@@ -25,8 +25,7 @@
+ #include "splashscreen_impl.h"
+-#include "../libpng/png.h"
+-
++#include <png.h>
+ #include <setjmp.h>
+ #define SIG_BYTES 8
diff --git a/debian/patches/system-pcsclite.diff b/debian/patches/system-pcsclite.diff
new file mode 100644 (file)
index 0000000..209f949
--- /dev/null
@@ -0,0 +1,191 @@
+Index: b/common/autoconf/libraries.m4
+===================================================================
+--- a/common/autoconf/libraries.m4
++++ b/common/autoconf/libraries.m4
+@@ -760,6 +760,53 @@
+   ###############################################################################
+   #
++  # Check for the pcsclite library
++  #
++
++  AC_ARG_WITH(libpcsclite, [AS_HELP_STRING([--with-libpcsclite],
++      [use libpcsclite from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
++
++  AC_CHECK_LIB(pcsclite, SCardConnect,
++      [ LIBPCSCLITE_FOUND=yes ],
++      [ LIBPCSCLITE_FOUND=no ])
++
++  AC_MSG_CHECKING([for which libpcsclite to use])
++
++  DEFAULT_LIBPCSCLITE=bundled
++
++  if test "x${LIBPCSCLITE_FOUND}" != "xyes"; then
++    #
++    # If we don't find any system...set default to bundled
++    #
++    DEFAULT_LIBPCSCLITE=bundled
++  fi
++
++  #
++  # If user didn't specify, use DEFAULT_PCSC
++  #
++  if test "x${with_libpcsclite}" = "x"; then
++    with_libpcsclite=${DEFAULT_LIBPCSCLITE}
++  fi
++
++  if test "x${with_libpcsclite}" = "xbundled"; then
++    USE_EXTERNAL_LIBPCSCLITE=false
++    AC_MSG_RESULT([bundled])
++  elif test "x${with_libpcsclite}" = "xsystem"; then
++    if test "x${LIBPCSCLITE_FOUND}" = "xyes"; then
++      USE_EXTERNAL_LIBPCSCLITE=true
++      AC_MSG_RESULT([system])
++    else
++      AC_MSG_RESULT([system not found])
++      AC_MSG_ERROR([--with-libpcsclite=system specified, but no libpcsclite found!])
++    fi
++  else
++    AC_MSG_ERROR([Invalid value for --with-libpcsclite: ${with_libpcsclite}, use 'system' or 'bundled'])
++  fi
++
++  AC_SUBST(USE_EXTERNAL_LIBPCSCLITE)
++
++  ###############################################################################
++  #
+   # Check for the zlib library
+   #
+Index: b/common/autoconf/spec.gmk.in
+===================================================================
+--- a/common/autoconf/spec.gmk.in
++++ b/common/autoconf/spec.gmk.in
+@@ -557,6 +557,7 @@
+ USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@
+ USE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@
+ USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
++USE_EXTERNAL_LIBPCSCLITE:=@USE_EXTERNAL_LIBPCSCLITE@
+ USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
+ LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
+ MSVCR_DLL:=@MSVCR_DLL@
+Index: b/jdk/make/lib/SecurityLibraries.gmk
+===================================================================
+--- a/jdk/make/lib/SecurityLibraries.gmk
++++ b/jdk/make/lib/SecurityLibraries.gmk
+@@ -75,11 +75,11 @@
+     CFLAGS := $(CFLAGS_JDKLIB) \
+         -I$(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \
+         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio \
+-        -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio/MUSCLE, \
++        -I/usr/include/PCSC -DUSE_SYSTEM_LIBPCSCLITE, \
+     MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libj2pcsc/mapfile-vers, \
+     LDFLAGS := $(LDFLAGS_JDKLIB) \
+         $(call SET_SHARED_LIBRARY_ORIGIN), \
+-    LDFLAGS_SUFFIX_posix := $(LIBDL), \
++    LDFLAGS_SUFFIX_posix := -lpcsclite $(LIBDL), \
+     LDFLAGS_SUFFIX_windows := winscard.lib, \
+     LDFLAGS_SUFFIX_solaris := -lc, \
+     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
+Index: b/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.c
+===================================================================
+--- a/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.c
++++ b/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.c
+@@ -36,6 +36,7 @@
+ #include "pcsc_md.h"
++#ifndef USE_SYSTEM_LIBPCSCLITE
+ void *hModule;
+ FPTR_SCardEstablishContext scardEstablishContext;
+ FPTR_SCardConnect scardConnect;
+@@ -47,6 +48,7 @@
+ FPTR_SCardBeginTransaction scardBeginTransaction;
+ FPTR_SCardEndTransaction scardEndTransaction;
+ FPTR_SCardControl scardControl;
++#endif
+ /*
+  * Throws a Java Exception by name
+@@ -75,7 +77,9 @@
+     throwByName(env, "java/io/IOException", msg);
+ }
++#ifndef USE_SYSTEM_LIBPCSCLITE
+ void *findFunction(JNIEnv *env, void *hModule, char *functionName) {
++    return NULL;
+     void *fAddress = dlsym(hModule, functionName);
+     if (fAddress == NULL) {
+         char errorMessage[256];
+@@ -85,9 +89,11 @@
+     }
+     return fAddress;
+ }
++#endif
+ JNIEXPORT void JNICALL Java_sun_security_smartcardio_PlatformPCSC_initialize
+         (JNIEnv *env, jclass thisClass, jstring jLibName) {
++#ifndef USE_SYSTEM_LIBPCSCLITE
+     const char *libName = (*env)->GetStringUTFChars(env, jLibName, NULL);
+     if (libName == NULL) {
+         throwNullPointerException(env, "PCSC library name is null");
+@@ -141,4 +147,5 @@
+ #else
+     scardControl          = (FPTR_SCardControl)         findFunction(env, hModule, "SCardControl132");
+ #endif // __APPLE__
++#endif
+ }
+Index: b/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.h
+===================================================================
+--- a/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.h
++++ b/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.h
+@@ -23,6 +23,8 @@
+  * questions.
+  */
++#ifndef USE_SYSTEM_LIBPCSCLITE
++
+ typedef LONG (*FPTR_SCardEstablishContext)(ULONG dwScope,
+                 const void *pvReserved1,
+                 const void *pvReserved2,
+@@ -110,3 +112,41 @@
+ extern FPTR_SCardBeginTransaction scardBeginTransaction;
+ extern FPTR_SCardEndTransaction scardEndTransaction;
+ extern FPTR_SCardControl scardControl;
++
++#else
++
++#define CALL_SCardEstablishContext(dwScope, pvReserved1, pvReserved2, phContext) \
++    (SCardEstablishContext(dwScope, pvReserved1, pvReserved2, phContext))
++
++#define CALL_SCardConnect(hContext, szReader, dwSharedMode, dwPreferredProtocols, phCard, pdwActiveProtocols) \
++    (SCardConnect(hContext, szReader, dwSharedMode, dwPreferredProtocols, phCard, pdwActiveProtocols))
++
++#define CALL_SCardDisconnect(hCard, dwDisposition) \
++    (SCardDisconnect(hCard, dwDisposition))
++
++#define CALL_SCardStatus(hCard, mszReaderNames, pcchReaderLen, pdwState, pdwProtocol, pbAtr, pcbAtrLen) \
++    (SCardStatus(hCard, mszReaderNames, pcchReaderLen, pdwState, pdwProtocol, pbAtr, pcbAtrLen))
++
++#define CALL_SCardGetStatusChange(hContext, dwTimeout, rgReaderStates, cReaders) \
++    (SCardGetStatusChange(hContext, dwTimeout, rgReaderStates, cReaders))
++
++#define CALL_SCardTransmit(hCard, pioSendPci, pbSendBuffer, cbSendLength, \
++                            pioRecvPci, pbRecvBuffer, pcbRecvLength) \
++    (SCardTransmit(hCard, pioSendPci, pbSendBuffer, cbSendLength, \
++                            pioRecvPci, pbRecvBuffer, pcbRecvLength))
++
++#define CALL_SCardListReaders(hContext, mszGroups, mszReaders, pcchReaders) \
++    (SCardListReaders(hContext, mszGroups, mszReaders, pcchReaders))
++
++#define CALL_SCardBeginTransaction(hCard) \
++    (SCardBeginTransaction(hCard))
++
++#define CALL_SCardEndTransaction(hCard, dwDisposition) \
++    (SCardEndTransaction(hCard, dwDisposition))
++
++#define CALL_SCardControl(hCard, dwControlCode, pbSendBuffer, cbSendLength, \
++            pbRecvBuffer, pcbRecvLength, lpBytesReturned) \
++    (SCardControl(hCard, dwControlCode, pbSendBuffer, cbSendLength, \
++            pbRecvBuffer, pcbRecvLength, lpBytesReturned))
++
++#endif
diff --git a/debian/patches/workaround_expand_exec_shield_cs_limit.diff b/debian/patches/workaround_expand_exec_shield_cs_limit.diff
new file mode 100644 (file)
index 0000000..b166541
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
++++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+@@ -890,7 +890,7 @@ void os::verify_stack_alignment() {
+  * updates (JDK-8023956).
+  */
+ void os::workaround_expand_exec_shield_cs_limit() {
+-#if defined(IA32)
++#if defined(IA32) && !defined(ZERO)
+   size_t page_size = os::vm_page_size();
+   /*
+    * Take the highest VA the OS will give us and exec
+--- a/hotspot/src/os/linux/vm/os_linux.cpp.orig
++++ b/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -4846,7 +4846,7 @@ ZERO_ONLY (
+   Linux::capture_initial_stack(JavaThread::stack_size_at_create());
+-#if defined(IA32)
++#if defined(IA32) && !defined(ZERO)
+   workaround_expand_exec_shield_cs_limit();
+ #endif
diff --git a/debian/patches/zero-architectures.diff b/debian/patches/zero-architectures.diff
new file mode 100644 (file)
index 0000000..7362ec0
--- /dev/null
@@ -0,0 +1,104 @@
+# DP: Add support for zero architectures alpha, m68k, mips*, sh4
+
+--- a/common/autoconf/platform.m4
++++ b/common/autoconf/platform.m4
+@@ -42,6 +42,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
+       VAR_CPU_BITS=32
+       VAR_CPU_ENDIAN=little
+       ;;
++    alpha*)
++      VAR_CPU=alpha
++      VAR_CPU_ARCH=alpha
++      VAR_CPU_BITS=64
++      VAR_CPU_ENDIAN=little
++      ;;
+     arm*)
+       VAR_CPU=arm
+       VAR_CPU_ARCH=arm
+@@ -54,6 +60,48 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
+       VAR_CPU_BITS=64
+       VAR_CPU_ENDIAN=little
+       ;;
++    m68k)
++      VAR_CPU=m68k
++      VAR_CPU_ARCH=m68k
++      VAR_CPU_BITS=32
++      VAR_CPU_ENDIAN=big
++      ;;
++    mips)
++      VAR_CPU=mips
++      VAR_CPU_ARCH=mips
++      VAR_CPU_BITS=32
++      VAR_CPU_ENDIAN=big
++      ;;
++    mipsel)
++      VAR_CPU=mipsel
++      VAR_CPU_ARCH=mipsel
++      VAR_CPU_BITS=32
++      VAR_CPU_ENDIAN=little
++      ;;
++    mipsn32)
++      VAR_CPU=mipsn32
++      VAR_CPU_ARCH=mipsn32
++      VAR_CPU_BITS=32
++      VAR_CPU_ENDIAN=big
++      ;;
++    mipsn32el)
++      VAR_CPU=mipsn32el
++      VAR_CPU_ARCH=mipsn32el
++      VAR_CPU_BITS=32
++      VAR_CPU_ENDIAN=little
++      ;;
++    mips64)
++      VAR_CPU=mips64
++      VAR_CPU_ARCH=mips64
++      VAR_CPU_BITS=64
++      VAR_CPU_ENDIAN=big
++      ;;
++    mips64el)
++      VAR_CPU=mips64el
++      VAR_CPU_ARCH=mips64el
++      VAR_CPU_BITS=64
++      VAR_CPU_ENDIAN=little
++      ;;
+     powerpc)
+       VAR_CPU=ppc
+       VAR_CPU_ARCH=ppc
+@@ -72,6 +120,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
+       VAR_CPU_BITS=64
+       VAR_CPU_ENDIAN=little
+       ;;
++    sh*)
++      VAR_CPU=sh
++      VAR_CPU_ARCH=sh
++      VAR_CPU_BITS=32
++      VAR_CPU_ENDIAN=little
++      ;;
+     s390)
+       VAR_CPU=s390
+       VAR_CPU_ARCH=s390
+@@ -371,8 +425,13 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS],
+   # ZERO_ARCHDEF is used to enable architecture-specific code
+   case "${OPENJDK_TARGET_CPU}" in
++    alpha*)  ZERO_ARCHDEF=ALPHA ;;
++    m68k)  ZERO_ARCHDEF=M68K ;;
++    mips|mipsn32|mips64)  ZERO_ARCHDEF=MIPS ;;
++    mipsel|mipsn32el|mips64el)  ZERO_ARCHDEF=MIPSEL ;;
+     ppc*)    ZERO_ARCHDEF=PPC   ;;
+     s390*)   ZERO_ARCHDEF=S390  ;;
++    sh*)   ZERO_ARCHDEF=sh  ;;
+     sparc*)  ZERO_ARCHDEF=SPARC ;;
+     x86_64*) ZERO_ARCHDEF=AMD64 ;;
+     x86)     ZERO_ARCHDEF=IA32  ;;
+--- a/common/autoconf/toolchain.m4
++++ b/common/autoconf/toolchain.m4
+@@ -1166,6 +1166,8 @@
+     *)
+       ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
+   esac
++  # use the default for the package builds
++  ZERO_ARCHFLAG=""
+   TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [], [ZERO_ARCHFLAG=""])
+   AC_SUBST(ZERO_ARCHFLAG)
diff --git a/debian/patches/zero-fpu-control-is-noop.diff b/debian/patches/zero-fpu-control-is-noop.diff
new file mode 100644 (file)
index 0000000..af91ab5
--- /dev/null
@@ -0,0 +1,27 @@
+Description: ZeroVM fix under IA32. Actual code in
+ openjdk/hotspot/src/os/linux/vm/os_linux.cpp#safe_cond_timedwait 
+ call get_fpu_control_word and set_fpu_control_word under
+ any IA32 arch.
+ In os_linux_zero.cpp, this methods throw errors with ShouldNotCallThis.
+ Just replace it with just NO-OP.
+ TODO: Maybe just add ifndef ZERO in os_linux.cpp
+Author: Damien Raude-Morvan <drazzib@debian.org>
+Last-Update: 2011-08-02
+Forwarded: http://mail.openjdk.java.net/pipermail/zero-dev/2011-August/000398.html
+--- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
++++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+@@ -259,11 +259,12 @@
+ }
+ int os::Linux::get_fpu_control_word() {
+-  ShouldNotCallThis();
++  // Nothing to do
++  return 0;
+ }
+ void os::Linux::set_fpu_control_word(int fpu) {
+-  ShouldNotCallThis();
++  // Nothing to do
+ }
+ bool os::is_allocatable(size_t bytes) {
diff --git a/debian/patches/zero-missing-headers.diff b/debian/patches/zero-missing-headers.diff
new file mode 100644 (file)
index 0000000..7e9b219
--- /dev/null
@@ -0,0 +1,25 @@
+Description: at least in 7b143, building without the precompiled headers doesn't work.
+ patch attached.
+Forwarded: http://mail.openjdk.java.net/pipermail/zero-dev/2011-July/000385.html
+
+--- openjdk/hotspot/src/cpu/zero/vm/entry_zero.hpp.orig
++++ openjdk/hotspot/src/cpu/zero/vm/entry_zero.hpp
+@@ -26,6 +26,8 @@
+ #ifndef CPU_ZERO_VM_ENTRY_ZERO_HPP
+ #define CPU_ZERO_VM_ENTRY_ZERO_HPP
++#include "interpreter/cppInterpreter.hpp"
++
+ class ZeroEntry {
+  public:
+   ZeroEntry() {
+--- openjdk/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp.orig
++++ openjdk/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp
+@@ -25,6 +25,7 @@
+
+ #include "precompiled.hpp"
+ #include "assembler_zero.inline.hpp"
++#include "entry_zero.hpp"
+ #include "memory/resourceArea.hpp"
+ #include "nativeInst_zero.hpp"
+ #include "oops/oop.inline.hpp"
diff --git a/debian/patches/zero-opt.diff b/debian/patches/zero-opt.diff
new file mode 100644 (file)
index 0000000..7d3d763
--- /dev/null
@@ -0,0 +1,16 @@
+# DP: Build zero with -O2 -finline-functions instead of -O3 (still needed?)
+--- openjdk/hotspot/make/linux/makefiles/gcc.make~     2013-04-15 13:44:59.703968963 +0200
++++ openjdk/hotspot/make/linux/makefiles/gcc.make      2013-04-15 16:22:04.124240511 +0200
+@@ -170,7 +170,11 @@
+ CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@)) 
+ # The flags to use for an Optimized g++ build
+-OPT_CFLAGS += -O3
++ifeq ($(ZERO_BUILD), true)
++  OPT_CFLAGS += -O2 -finline-functions
++else
++  OPT_CFLAGS += -O3
++endif
+ # Hotspot uses very unstrict aliasing turn this optimization off
+ OPT_CFLAGS += -fno-strict-aliasing
diff --git a/debian/patches/zero-sparc.diff b/debian/patches/zero-sparc.diff
new file mode 100644 (file)
index 0000000..96f4080
--- /dev/null
@@ -0,0 +1,287 @@
+--- openjdk/hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp.old   2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp       2014-01-15 10:55:36.991083672 +0000
+@@ -25,7 +25,7 @@
+ #ifndef CPU_SPARC_VM_BYTECODES_SPARC_HPP
+ #define CPU_SPARC_VM_BYTECODES_SPARC_HPP
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+ #define NLOCALS_IN_REGS 6
+ #endif
+--- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp.old     2014-01-15 09:57:03.613191054 +0000
++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp 2014-01-15 10:55:36.995083702 +0000
+@@ -82,7 +82,7 @@
+   // Must never look like an address returned by reserve_memory,
+   // even in its subfields (as defined by the CPU immediate fields,
+   // if the CPU splits constants across multiple instructions).
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+   // On SPARC, 0 != %hi(any real address), because there is no
+   // allocation in the first 1Kb of the virtual address space.
+   return (char *) 0;
+--- openjdk/hotspot/src/share/vm/opto/output.cpp.old   2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/opto/output.cpp       2014-01-15 10:55:37.015083849 +0000
+@@ -682,7 +682,7 @@
+       array->append(new_loc_value( _regalloc, regnum, Location::lng ));
+     }
+ #else //_LP64
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+     if (t->base() == Type::Long && OptoReg::is_reg(regnum)) {
+       // For SPARC we have to swap high and low words for
+       // long values stored in a single-register (g0-g7).
+--- openjdk/hotspot/src/share/vm/opto/chaitin.cpp.old  2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/opto/chaitin.cpp      2014-01-15 10:55:37.023083908 +0000
+@@ -723,7 +723,7 @@
+         case Op_RegFlags:
+         case 0:                 // not an ideal register
+           lrg.set_num_regs(1);
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+           lrg.set_reg_pressure(2);
+ #else
+           lrg.set_reg_pressure(1);
+@@ -1328,7 +1328,7 @@
+     // Check if a color is available and if so pick the color
+     OptoReg::Name reg = choose_color( *lrg, chunk );
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+     debug_only(lrg->compute_set_mask_size());
+     assert(lrg->num_regs() < 2 || lrg->is_bound() || is_even(reg-1), "allocate all doubles aligned");
+ #endif
+--- openjdk/hotspot/src/share/vm/opto/chaitin.hpp.old  2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/opto/chaitin.hpp      2014-01-15 10:55:37.015083849 +0000
+@@ -293,7 +293,7 @@
+ // TEMPORARILY REPLACED WITH COMMAND LINE FLAG
+ //// !!!!! Magic Constants need to move into ad file
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+ //#define FLOAT_PRESSURE 30  /*     SFLT_REG_mask.Size() - 1 */
+ //#define INT_PRESSURE   23  /* NOTEMP_I_REG_mask.Size() - 1 */
+ #define FLOAT_INCREMENT(regs) regs
+--- openjdk/hotspot/src/share/vm/runtime/safepoint.cpp.old     2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/runtime/safepoint.cpp 2014-01-15 10:55:37.027083937 +0000
+@@ -765,7 +765,7 @@
+                 newptr, is_oop?"oop":"   ", (wasoop && !is_oop) ? "STALE" : ((wasoop==false&&is_oop==false&&oldptr !=newptr)?"STOMP":"     "));
+ }
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+ static void print_me(intptr_t *new_sp, intptr_t *old_sp, bool *was_oops) {
+ #ifdef _LP64
+   tty->print_cr("--------+------address-----+------before-----------+-------after----------+");
+--- openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp.old        2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp    2014-01-15 10:55:37.031083968 +0000
+@@ -815,7 +815,7 @@
+ #ifdef _LP64
+       jlong res = (jlong)low->get_int();
+ #else
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+       // For SPARC we have to swap high and low words.
+       jlong res = jlong_from((jint)low->get_int(), (jint)value->get_int());
+ #else
+@@ -866,7 +866,7 @@
+ #ifdef _LP64
+       jlong res = (jlong)low->get_int();
+ #else
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+       // For SPARC we have to swap high and low words.
+       jlong res = jlong_from((jint)low->get_int(), (jint)value->get_int());
+ #else
+--- openjdk/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp.old       2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/runtime/advancedThresholdPolicy.cpp   2014-01-15 10:55:37.035083997 +0000
+@@ -62,7 +62,7 @@
+   }
+ #endif
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+   if (FLAG_IS_DEFAULT(InlineSmallCode)) {
+     FLAG_SET_DEFAULT(InlineSmallCode, 2500);
+   }
+--- openjdk/hotspot/src/share/vm/runtime/stackValue.cpp.old    2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/runtime/stackValue.cpp        2014-01-15 10:55:37.023083908 +0000
+@@ -34,7 +34,7 @@
+     // Stack or register value
+     Location loc = ((LocationValue *)sv)->location();
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+     // %%%%% Callee-save floats will NOT be working on a Sparc until we
+     // handle the case of a 2 floats in a single double register.
+     assert( !(loc.is_register() && loc.type() == Location::float_in_dbl), "Sparc does not handle callee-save floats yet" );
+--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp.old     2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2014-01-15 10:55:37.043084056 +0000
+@@ -1993,7 +1993,7 @@
+   status = status && verify_object_alignment();
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+   if (UseConcMarkSweepGC || UseG1GC) {
+     // Issue a stern warning if the user has explicitly set
+     // UseMemSetInBOT (it is known to cause issues), but allow
+--- openjdk/hotspot/src/share/vm/c1/c1_Runtime1.cpp.old        2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/c1/c1_Runtime1.cpp    2014-01-15 10:55:37.063084203 +0000
+@@ -1074,7 +1074,7 @@
+             RelocIterator iter(nm, (address)instr_pc, (address)(instr_pc + 1));
+             relocInfo::change_reloc_info_for_address(&iter, (address) instr_pc,
+                                                      relocInfo::none, relocInfo::oop_type);
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+             // Sparc takes two relocations for an oop so update the second one.
+             address instr_pc2 = instr_pc + NativeMovConstReg::add_offset;
+             RelocIterator iter2(nm, instr_pc2, instr_pc2 + 1);
+--- openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp.old    2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp        2014-01-15 10:55:37.047084085 +0000
+@@ -577,7 +577,7 @@
+       monitor_address(op->in_opr()->as_constant_ptr()->as_jint(), op->result_opr());
+       break;
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+     case lir_pack64:
+       pack64(op->in_opr(), op->result_opr());
+       break;
+@@ -852,7 +852,7 @@
+         if (!r->is_stack()) {
+           stringStream st;
+           st.print("bad oop %s at %d", r->as_Register()->name(), _masm->offset());
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+           _masm->_verify_oop(r->as_Register(), strdup(st.as_string()), __FILE__, __LINE__);
+ #else
+           _masm->verify_oop(r->as_Register());
+--- openjdk/hotspot/src/share/vm/c1/c1_LinearScan.cpp.old      2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/c1/c1_LinearScan.cpp  2014-01-15 10:55:37.079084322 +0000
+@@ -2128,7 +2128,7 @@
+         }
+ #endif
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+         assert(assigned_reg >= pd_first_fpu_reg && assigned_reg <= pd_last_fpu_reg, "no fpu register");
+         assert(interval->assigned_regHi() >= pd_first_fpu_reg && interval->assigned_regHi() <= pd_last_fpu_reg, "no fpu register");
+         assert(assigned_reg % 2 == 0 && assigned_reg + 1 == interval->assigned_regHi(), "must be sequential and even");
+@@ -2726,7 +2726,7 @@
+       assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation (only fpu_regnrLo is used)");
+ #endif
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+       assert(opr->fpu_regnrLo() == opr->fpu_regnrHi() + 1, "assumed in calculation (only fpu_regnrHi is used)");
+ #endif
+ #ifdef ARM
+--- openjdk/hotspot/src/share/vm/c1/c1_LIR.hpp.old     2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/c1/c1_LIR.hpp 2014-01-15 10:55:37.059084174 +0000
+@@ -595,7 +595,7 @@
+   static LIR_Opr single_softfp(int reg)            { return (LIR_Opr)((reg  << LIR_OprDesc::reg1_shift) |                                     LIR_OprDesc::float_type  | LIR_OprDesc::cpu_register | LIR_OprDesc::single_size); }
+   static LIR_Opr double_softfp(int reg1, int reg2) { return (LIR_Opr)((reg1 << LIR_OprDesc::reg1_shift) | (reg2 << LIR_OprDesc::reg2_shift) | LIR_OprDesc::double_type | LIR_OprDesc::cpu_register | LIR_OprDesc::double_size); }
+ #endif
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+   static LIR_Opr double_fpu(int reg1, int reg2) { return (LIR_Opr)(intptr_t)((reg1 << LIR_OprDesc::reg1_shift) |
+                                                                              (reg2 << LIR_OprDesc::reg2_shift) |
+                                                                              LIR_OprDesc::double_type          |
+--- openjdk/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp.old    2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp        2014-01-15 10:55:37.055084145 +0000
+@@ -1891,7 +1891,7 @@
+   Value recv = has_receiver ? apop() : NULL;
+   int vtable_index = methodOopDesc::invalid_vtable_index;
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+   // Currently only supported on Sparc.
+   // The UseInlineCaches only controls dispatch to invokevirtuals for
+   // loaded classes which we weren't able to statically bind.
+--- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp.old       2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp   2014-01-15 10:55:37.083084351 +0000
+@@ -3095,7 +3095,7 @@
+   tty->print_cr("stack_base: " INTPTR_FORMAT, (uintptr_t) this->_stack_base);
+   tty->print_cr("stack_limit: " INTPTR_FORMAT, (uintptr_t) this->_stack_limit);
+   tty->print_cr("monitor_base: " INTPTR_FORMAT, (uintptr_t) this->_monitor_base);
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+   tty->print_cr("last_Java_pc: " INTPTR_FORMAT, (uintptr_t) this->_last_Java_pc);
+   tty->print_cr("frame_bottom: " INTPTR_FORMAT, (uintptr_t) this->_frame_bottom);
+   tty->print_cr("&native_fresult: " INTPTR_FORMAT, (uintptr_t) &this->_native_fresult);
+--- openjdk/hotspot/src/share/vm/utilities/macros.hpp.old      2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/utilities/macros.hpp  2014-01-15 10:55:37.087084380 +0000
+@@ -207,7 +207,7 @@
+ #define NOT_AMD64(code) code
+ #endif
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+ #define SPARC_ONLY(code) code
+ #define NOT_SPARC(code)
+ #else
+--- openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp.old       2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp   2014-01-15 10:55:37.087084380 +0000
+@@ -243,7 +243,7 @@
+ // checking for nanness
+ #ifdef SOLARIS
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+ inline int g_isnan(float  f) { return isnanf(f); }
+ #else
+ // isnanf() broken on Intel Solaris use isnand()
+--- openjdk/hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp.old        2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp    2014-01-15 10:55:37.087084380 +0000
+@@ -249,7 +249,7 @@
+ // checking for nanness
+ #ifdef SOLARIS
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+ inline int g_isnan(float  f) { return isnanf(f); }
+ #else
+ // isnanf() broken on Intel Solaris use isnand()
+--- openjdk/hotspot/src/share/vm/adlc/output_h.cpp.old 2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/adlc/output_h.cpp     2014-01-15 10:55:37.095084439 +0000
+@@ -718,7 +718,7 @@
+   fprintf(fp_hpp, "class Pipeline_Use_Cycle_Mask {\n");
+   if (_pipeline->_maxcycleused <=
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+     64
+ #else
+     32
+--- openjdk/hotspot/src/share/vm/adlc/formssel.cpp.old 2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/adlc/formssel.cpp     2014-01-15 10:55:37.103084499 +0000
+@@ -1020,7 +1020,7 @@
+     const char  *opType   = NULL;
+     while (_matrule->base_operand(position, globals, result, name, opType)) {
+       if ( strcmp(opType,"ConP") == 0 ) {
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+         reloc_entries += 2; // 1 for sethi + 1 for setlo
+ #else
+         ++reloc_entries;
+@@ -1058,7 +1058,7 @@
+   // Check for any component being an immediate float or double.
+   Form::DataType data_type = is_chain_of_constant(globals);
+   if( data_type==idealD || data_type==idealF ) {
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+     // sparc required more relocation entries for floating constants
+     // (expires 9/98)
+     reloc_entries += 6;
+--- openjdk/hotspot/src/share/vm/adlc/output_c.cpp.old 2014-01-14 21:26:34.000000000 +0000
++++ openjdk/hotspot/src/share/vm/adlc/output_c.cpp     2014-01-15 10:55:37.111084557 +0000
+@@ -779,7 +779,7 @@
+     /* Do Nothing */;
+   else if (_pipeline->_maxcycleused <=
+-#ifdef SPARC
++#if defined(SPARC) && !defined(ZERO)
+     64
+ #else
+     32
diff --git a/debian/patches/zero-x32.diff b/debian/patches/zero-x32.diff
new file mode 100644 (file)
index 0000000..212ab03
--- /dev/null
@@ -0,0 +1,72 @@
+# DP: Add support for x32
+
+--- a/hotspot/src/os/linux/vm/os_linux.cpp
++++ b/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -1950,7 +1950,7 @@ void * os::dll_load(const char *filename
+   #if  (defined IA32)
+     static  Elf32_Half running_arch_code=EM_386;
+-  #elif   (defined AMD64)
++  #elif  (defined AMD64) || (defined X32)
+     static  Elf32_Half running_arch_code=EM_X86_64;
+   #elif  (defined IA64)
+     static  Elf32_Half running_arch_code=EM_IA_64;
+--- a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
++++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
+@@ -35,7 +35,6 @@
+ #endif
+ #ifdef __linux__
+ #include <unistd.h>
+-#include <sys/sysctl.h>
+ #include <sys/utsname.h>
+ #include <netinet/ip.h>
+--- a/jdk/src/solaris/native/java/net/PlainSocketImpl.c
++++ b/jdk/src/solaris/native/java/net/PlainSocketImpl.c
+@@ -43,7 +43,6 @@
+ #endif
+ #ifdef __linux__
+ #include <unistd.h>
+-#include <sys/sysctl.h>
+ #endif
+ #include "jvm.h"
+--- a/common/autoconf/platform.m4
++++ b/common/autoconf/platform.m4
+@@ -31,10 +31,17 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
+   # First argument is the cpu name from the trip/quad
+   case "$1" in
+     x86_64)
+-      VAR_CPU=x86_64
+-      VAR_CPU_ARCH=x86
+-      VAR_CPU_BITS=64
+-      VAR_CPU_ENDIAN=little
++      if test "`dpkg-architecture -qDEB_HOST_ARCH`" = x32 ; then
++        VAR_CPU=x32
++        VAR_CPU_ARCH=x86
++        VAR_CPU_BITS=32
++        VAR_CPU_ENDIAN=little
++      else
++        VAR_CPU=x86_64
++        VAR_CPU_ARCH=x86
++        VAR_CPU_BITS=64
++        VAR_CPU_ENDIAN=little
++      fi
+       ;;
+     i?86)
+       VAR_CPU=x86
+@@ -433,7 +440,13 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS],
+     s390*)   ZERO_ARCHDEF=S390  ;;
+     sh*)   ZERO_ARCHDEF=sh  ;;
+     sparc*)  ZERO_ARCHDEF=SPARC ;;
+-    x86_64*) ZERO_ARCHDEF=AMD64 ;;
++    x86_64*)
++      if test "`dpkg-architecture -qDEB_HOST_ARCH`" = x32 ; then
++        ZERO_ARCHDEF=X32
++      else
++        ZERO_ARCHDEF=AMD64
++      fi
++      ;;
+     x86)     ZERO_ARCHDEF=IA32  ;;
+     *)      ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z A-Z)
+   esac
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..5ee894d
--- /dev/null
@@ -0,0 +1,2264 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+unexport LANG LC_ALL
+
+dh_version := $(shell dpkg-query -f '$${Version}\n' -W debhelper | sed -n 's/^\(.\).*/\1/p')
+
+SHELL = /bin/bash
+
+vafilt = $(subst $(2)=,,$(filter $(2)=%,$(1)))
+
+DPKG_VARS              := $(shell dpkg-architecture)
+DEB_HOST_GNU_TYPE      ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE     ?= $(call vafilt,$(DPKG_VARS),DEB_BUILD_GNU_TYPE)
+DEB_HOST_ARCH          ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH)
+DEB_HOST_ARCH_CPU      ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH_CPU)
+DEB_HOST_MULTIARCH     ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_MULTIARCH)
+
+PATH := $(CURDIR)/bin:$(PATH)
+export PATH
+
+CHANGELOG_VARS := $(shell dpkg-parsechangelog | sed -n 's/ /_/g;/^[^_]/s/^\([^:]*\):_\(.*\)/\1=\2/p')
+PKGSOURCE := $(call vafilt,$(CHANGELOG_VARS),Source)
+PKGVERSION := $(call vafilt,$(CHANGELOG_VARS),Version)
+
+distribution := $(shell lsb_release --id --short)
+distrel := $(shell lsb_release --codename --short)
+ifeq ($(distrel),n/a)
+  distrel := sid
+endif
+
+multiarch_dir = /$(DEB_HOST_MULTIARCH)
+
+hotspot_archs  = amd64 i386 arm64 lpia ppc64 ppc64el kfreebsd-amd64 kfreebsd-i386
+# FIXME: use bootcycle builds for zero archs?
+bootcycle_build  = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),yes)
+
+shark_archs    = amd64 i386 lpia kfreebsd-amd64 kfreebsd-i386
+# Shark build but just crash
+shark_archs    =
+
+ifneq (,$(filter $(distrel),lucid precise quantal raring saucy trusty utopic lenny etch squeeze wheezy jessie sid))
+  is_default = no
+else
+  is_default = yes
+endif
+
+srcdir         = src
+builddir       = build
+zbuilddir      = build-zero
+jbuilddir      = build-jamvm
+
+VENDOR         = openjdk
+Vendor         = OpenJDK
+TOP            = usr/lib/jvm
+origin         = openjdk
+basename       = openjdk-$(shortver)
+ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
+  priority     = $(if $(filter yes, $(is_default)),1081,1069)
+  vm_name      = Hotspot JIT
+else ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs)))
+  priority     = $(if $(filter yes, $(is_default)),1075,1065)
+  vm_name      = Hotspot Shark
+else
+  priority     = $(if $(filter yes, $(is_default)),1074,1063)
+  vm_name      = Hotspot Zero
+endif
+jvmver         = 1.8.0
+shortver       = 8
+updatever      := $(shell echo $(PKGVERSION) | sed -n 's/.*u\([0-9]\+\).*/\1/p')
+buildver       := $(shell echo $(PKGVERSION) | sed -n 's/.*\(b[0-9]\+\).*/\1/p')
+
+ifneq (,$(DEB_HOST_MULTIARCH))
+  jdirname     = java-$(shortver)-$(origin)-$(DEB_HOST_ARCH)
+  jdiralias    = java-$(jvmver)-$(origin)-$(DEB_HOST_ARCH)
+  basedir      = $(TOP)/$(jdirname)
+  commonbasedir        = $(TOP)/java-$(shortver)-$(origin)-common
+  commonbasedir        = $(basedir)
+  etcdir       = etc/java-$(shortver)-$(origin)
+else
+  jdirname     = java-$(shortver)-$(origin)
+  jdiralias    = java-$(jvmver)-$(origin)
+  basedir      = $(TOP)/$(jdirname)
+  commonbasedir        = $(TOP)/java-$(shortver)-$(origin)
+  etcdir       = etc/$(jdirname)
+endif
+security       = $(etcdir)/security
+ifeq ($(bootcycle_build),yes)
+  jreimg       = images/j2re-image
+  sdkimg       = images/j2sdk-image
+  build_target = images
+else
+  jreimg       = bootcycle-build/images/j2re-image
+  sdkimg       = bootcycle-build/images/j2sdk-image
+  build_target = bootcycle-images
+endif
+
+# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
+COMMA=,
+SPACE = $(EMPTY) $(EMPTY)
+ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+  NJOBS = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+endif
+
+with_check = $(if $(findstring nocheck, $(DEB_BUILD_OPTIONS)),,yes)
+ifneq (,$(filter $(DEB_HOST_ARCH), armel))
+  with_check = disabled running check on $(DEB_HOST_ARCH)
+endif
+
+with_docs = $(if $(findstring nodocs, $(DEB_BUILD_OPTIONS)),,yes)
+ifneq (,$(findstring cacao shark, $(PKGSOURCE)))
+  with_docs = disabled for cacao and shark
+endif
+
+with_wgy_zenhai = $(if $(filter $(distrel),lenny),,yes)
+
+arch_map       := alpha=alpha arm=arm armel=arm armhf=arm arm64=aarch64 amd64=amd64 hppa=parisc i386=i586 lpia=i586 m68k=m68k mips=mips mipsel=mipsel mips64=mips64 mips64el=mips64el powerpc=ppc powerpcspe=ppc ppc64=ppc64 ppc64el=ppc64le sparc=sparc sparc64=sparc64 sh4=sh s390x=s390x ia64=ia64 m68k=m68k x32=x32
+archdir_map    := alpha=alpha arm=arm armel=arm armhf=arm arm64=aarch64 amd64=amd64 hppa=parisc i386=i386 lpia=i386 m68k=m68k mips=mips mipsel=mipsel mips64=mips64 mips64el=mips64el powerpc=ppc powerpcspe=ppc ppc64=ppc64 ppc64el=ppc64 sparc=sparc sparc64=sparcv9 sh4=sh s390x=s390x ia64=ia64 m68k=m68k x32=x32
+
+jvmarch                := $(strip $(patsubst $(DEB_HOST_ARCH_CPU)=%, %, \
+                       $(filter $(DEB_HOST_ARCH_CPU)=%, $(arch_map))))
+archdir                := $(strip $(patsubst $(DEB_HOST_ARCH_CPU)=%, %, \
+                       $(filter $(DEB_HOST_ARCH_CPU)=%, $(archdir_map))))
+ifeq ($(DEB_HOST_ARCH),x32)
+  jvmarch := x32
+  archdir := x32
+endif
+
+default_vm = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),hotspot,zero)
+hotspot_version = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),default,zero)
+hotspot_version = default
+ifneq (,$(filter $(DEB_HOST_ARCH),arm64))
+  hotspot_version = aarch64
+endif
+
+any_archs = alpha amd64 armel armhf arm64 i386 ia64 lpia mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
+bootjdk_gcj_archs = amd64 armel armhf arm64 hppa i386 ia64 lpia powerpc powerpcspe ppc64 ppc64el m68k mips mipsel sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
+bootjdk_openjdk_archs = alpha arm64 mips64 mips64el
+bootjdk_cacao_archs =
+#ifneq (,$(filter nobootstrap, $(DEB_BUILD_OPTIONS)))
+  bootjdk_openjdk_archs := $(bootjdk_openjdk_archs) $(bootjdk_gcj_archs)
+  bootjdk_gcj_archs :=
+#endif
+
+cacao_archs = alpha amd64 armel armhf i386 lpia powerpc powerpcspe m68k mips mipsel
+# TODO kfreebsd porting for cacao vm
+cacao_archs =
+
+ifeq (,$(filter $(distrel),squeeze lucid))
+  jamvm_archs = amd64 armel armhf i386 lpia mips mipsel powerpc kfreebsd-i386 kfreebsd-amd64
+endif
+ifeq (,$(filter $(distrel),wheezy squeeze lucid))
+  jamvm_defaults =
+endif
+
+altshark_archs = powerpc ppc64 ppc64el
+# Shark build but just crash
+altshark_archs =
+
+altzero_archs = $(filter-out sparc sparc64, $(hotspot_archs)) $(altshark_archs)
+
+ifeq (,$(filter noaltcacao, $(DEB_BUILD_OPTIONS)))
+  ifneq (,$(filter $(DEB_HOST_ARCH), $(cacao_archs)))
+    alternate_vms += cacao
+  endif
+endif
+ifeq (,$(filter noaltzero, $(DEB_BUILD_OPTIONS))$(filter noaltshark, $(DEB_BUILD_OPTIONS)))
+  ifneq (,$(filter $(DEB_HOST_ARCH), $(altzero_archs)))
+    ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs) $(altshark_archs)))
+      alternate_vms += shark
+      zero_dir = shark
+    else
+      alternate_vms += zero
+      zero_dir = zero
+    endif
+  endif
+endif
+ifeq (,$(filter noaltjamvm, $(DEB_BUILD_OPTIONS)))
+  ifneq (,$(filter $(DEB_HOST_ARCH), $(jamvm_archs)))
+    alternate_vms += jamvm
+  endif
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), $(bootjdk_gcj_archs)))
+  BOOTJDK_JAVA = gcj
+  BOOTJDK_HOME = /usr/lib/jvm/java-gcj
+  ifneq (,$(filter $(distrel), wheezy))
+    ifneq (,$(filter $(DEB_HOST_ARCH), m68k))
+      BOOTJDK_HOME = /usr/lib/jvm/java-1.5.0-gcj-4.6
+    endif
+    ifneq (,$(filter $(DEB_HOST_ARCH), ia64))
+      BOOTJDK_HOME = /usr/lib/jvm/java-1.5.0-gcj-4.7-ia64
+    endif
+  endif
+else ifneq (,$(filter $(DEB_HOST_ARCH), $(bootjdk_openjdk_archs)))
+  BOOTJDK_JAVA = openjdk
+  BOOTJDK_HOME := $(strip $(subst /bin/javac,, $(firstword $(wildcard \
+                       /usr/lib/jvm/java-7-openjdk-$(DEB_HOST_ARCH)/bin/javac \
+                       /usr/lib/jvm/java-7-openjdk/bin/javac \
+                       /usr/lib/jvm/java-8-openjdk-$(DEB_HOST_ARCH)/bin/javac))))
+else ifneq (,$(filter $(DEB_HOST_ARCH), $(bootjdk_cacao_archs)))
+  BOOTJDK_JAVA = cacao
+  BOOTJDK_HOME = /usr/lib/jvm/java-6-cacao
+else
+  $(error unknown bootstrap method for architecture $(DEB_HOST_ARCH))
+endif
+
+OPENJDK_VERSION = jdk$(shortver)u$(updatever)-$(buildver)
+
+# for Hotspot: hotspot/make/linux/makefiles/vm.make
+# Don't overwrite Hotspot opt level :
+# -O3 is already default option for hotspot
+
+# FIXME: ftbfs with -Werror=format-security
+dpkg_buildflags_hs = \
+       DEB_CFLAGS_MAINT_STRIP="-O2 -Werror=format-security" \
+       DEB_CXXFLAGS_MAINT_STRIP="-O2 -Werror=format-security"
+# jdk/make/CompileDemos.gmk (SetupJVMTIDemo) doesn't like commas in flags
+dpkg_buildflags_hs += \
+       DEB_LDFLAGS_MAINT_STRIP="-Wl,-z,relro -Wl,-Bsymbolic-functions" \
+       DEB_LDFLAGS_MAINT_APPEND="-Xlinker -z -Xlinker relro -Xlinker -Bsymbolic-functions"
+dpkg_buildflags_hs += dpkg-buildflags
+export EXTRA_CPPFLAGS_HS := $(shell $(dpkg_buildflags_hs) --get CPPFLAGS)
+export EXTRA_CFLAGS_HS   := $(shell $(dpkg_buildflags_hs) --get CFLAGS) $(shell $(dpkg_buildflags_hs) --get CPPFLAGS)
+export EXTRA_CXXFLAGS_HS := $(shell $(dpkg_buildflags_hs) --get CXXFLAGS)
+export EXTRA_LDFLAGS_HS  := $(shell $(dpkg_buildflags_hs) --get LDFLAGS)
+
+# for JDK: jdk/make/common/Defs.gmk
+# Don't overwrite JDK opt level :
+# 1) with forced -03, it cause wrong Math.* computations, see #679292 and #678228
+# 2) JDK already use it's own OPTIMIZATION_LEVEL variable for each module
+dpkg_buildflags_jdk = DEB_CFLAGS_MAINT_STRIP="-O2" DEB_CXXFLAGS_MAINT_STRIP="-O2"
+dpkg_buildflags_jdk += dpkg-buildflags
+export EXTRA_CPPFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get CPPFLAGS)
+export EXTRA_CFLAGS_JDK   := $(shell $(dpkg_buildflags_jdk) --get CFLAGS) $(shell $(dpkg_buildflags_jdk) --get CPPFLAGS)
+export EXTRA_CXXFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get CXXFLAGS)
+export EXTRA_LDFLAGS_JDK  := $(shell $(dpkg_buildflags_jdk) --get LDFLAGS)
+
+#for JamVM: Makefile.am
+ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+dpkg_buildflags_jamvm += DEB_CFLAGS_MAINT_STRIP="-O2" DEB_CXXFLAGS_MAINT_STRIP="-O2"
+dpkg_buildflags_jamvm += DEB_CFLAGS_MAINT_APPEND="-O3" DEB_CXXFLAGS_MAINT_APPEND="-O3"
+endif
+dpkg_buildflags_jamvm += dpkg-buildflags
+export EXTRA_CPPFLAGS_JAMVM := $(shell $(dpkg_buildflags_jamvm) --get CPPFLAGS)
+export EXTRA_CFLAGS_JAMVM   := $(shell $(dpkg_buildflags_jamvm) --get CFLAGS)
+export EXTRA_CXXFLAGS_JAMVM := $(shell $(dpkg_buildflags_jamvm) --get CXXFLAGS)
+export EXTRA_LDFLAGS_JAMVM  := $(shell $(dpkg_buildflags_jamvm) --get LDFLAGS)
+
+#for IcedTea
+ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+dpkg_buildflags_it += DEB_CFLAGS_MAINT_STRIP="-O2" DEB_CXXFLAGS_MAINT_STRIP="-O2"
+dpkg_buildflags_it += DEB_CFLAGS_MAINT_APPEND="-O3" DEB_CXXFLAGS_MAINT_APPEND="-O3"
+endif
+dpkg_buildflags_it += dpkg-buildflags
+export EXTRA_CPPFLAGS_IT := $(shell $(dpkg_buildflags_it) --get CPPFLAGS)
+export EXTRA_CFLAGS_IT   := $(shell $(dpkg_buildflags_it) --get CFLAGS)
+export EXTRA_CXXFLAGS_IT := $(shell $(dpkg_buildflags_it) --get CXXFLAGS)
+export EXTRA_LDFLAGS_IT  := $(shell $(dpkg_buildflags_it) --get LDFLAGS)
+
+#for CACAO: Makefile.am
+ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+dpkg_buildflags_cacao += DEB_CFLAGS_MAINT_STRIP="-O2" DEB_CXXFLAGS_MAINT_STRIP="-O2"
+dpkg_buildflags_cacao += DEB_CFLAGS_MAINT_APPEND="-O3" DEB_CXXFLAGS_MAINT_APPEND="-O3"
+endif
+dpkg_buildflags_cacao += dpkg-buildflags
+export EXTRA_CPPFLAGS_CACAO := $(shell $(dpkg_buildflags_cacao) --get CPPFLAGS)
+export EXTRA_CFLAGS_CACAO   := $(shell $(dpkg_buildflags_cacao) --get CFLAGS)
+export EXTRA_CXXFLAGS_CACAO := $(shell $(dpkg_buildflags_cacao) --get CXXFLAGS)
+export EXTRA_LDFLAGS_CACAO  := $(shell $(dpkg_buildflags_cacao) --get LDFLAGS)
+
+# This section should be in sync with "bd_gcc" definition
+ifneq (,$(filter $(distrel),squeeze lucid))
+  export CC = gcc-4.4
+  export CXX = g++-4.4
+  GCJ_SUFFIX = -4.4
+else ifneq (,$(filter $(distrel),wheezy quantal raring))
+  export CC = gcc-4.7
+  export CXX = g++-4.7
+  GCJ_SUFFIX = -4.7
+  ifneq (,$(filter $(DEB_HOST_ARCH), mips mipsel))
+    export CC = gcc-4.4
+    export CXX = g++-4.4
+  endif
+  ifneq (,$(filter $(DEB_HOST_ARCH), m68k))
+    GCJ_SUFFIX = -4.6
+  endif
+else ifneq (,$(filter $(distrel),precise))
+  export CC = gcc-4.6
+  export CXX = g++-4.6
+  GCJ_SUFFIX = -4.6
+else ifneq (,$(filter $(distrel),saucy trusty))
+  export CC = gcc-4.8
+  export CXX = g++-4.8
+  GCJ_SUFFIX = -4.8
+else
+  export CC = gcc-4.9
+  export CXX = g++-4.9
+  GCJ_SUFFIX = -4.9
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf))
+ifeq ($(distribution),Ubuntu)
+  OPT_CFLAGS/cppInterpreter_arm.o = -march=armv6 -mtune=cortex-a8 -O2 -falign-functions=64 -falign-loops=8 -g0
+else
+  OPT_CFLAGS/cppInterpreter_arm.o = -O2 -falign-functions=32 -falign-loops=8 -g0
+endif
+export OPT_CFLAGS/cppInterpreter_arm.o
+endif
+
+with_pulse = yes
+
+ifneq (,$(filter $(distrel),squeeze lucid))
+  with_bridge = bridge
+  with_jni_bridge = yes
+else
+  with_bridge = atk
+endif
+
+with_nss = yes
+with_tzdata = yes
+
+on_buildd := $(shell [ -f /CurrentlyBuilding -o "$$LOGNAME" = buildd ] && echo yes)
+
+ifeq ($(distribution),Debian)
+  with_wm = $(notdir $(firstword $(wildcard /usr/bin/metacity /usr/bin/twm)))
+  ifneq (,$(findstring twm, $(with_wm)))
+    with_wm_args = -f $(CURDIR)/bin/jtreg.tmwrc
+  endif
+  bd_wm = twm | metacity, twm | dbus-x11,
+else
+  with_wm = $(notdir $(firstword $(wildcard /usr/bin/metacity /usr/bin/twm)))
+  with_wm_args =
+  ifneq (,$(findstring twm, $(with_wm)))
+    with_wm_args = -f $(CURDIR)/bin/jtreg.tmwrc
+  endif
+  ifneq (,$(filter $(distrel),saucy raring quantal precise lucid))
+    bd_wm = metacity | twm, dbus-x11,
+  else
+    bd_wm = twm | metacity, twm | dbus-x11,
+  endif
+endif
+ifeq ($(with_wm),metacity)
+  with_wm_prefix = dbus-launch --exit-with-session
+endif
+
+ifeq (,$(filter $(distrel),squeeze wheezy lucid precise quantal raring saucy trusty))
+  with_systemtap = yes
+  ALT_SDT_H := $(firstword $(wildcard /usr/include/*/sys/sdt.h /usr/include/sys/sdt.h))
+  export ALT_SDT_H
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), sparc64))
+  USE_PRECOMPILED_HEADER = 0
+  export USE_PRECOMPILED_HEADER
+endif
+
+COMMON_PATCHES = \
+       hotspot-warn-no-errformat.diff \
+       make4-compatibility.diff \
+       aarch64.diff \
+       hotspot-set-compiler.diff \
+       hotspot-sparc-fix.diff \
+       ppc64el.diff \
+       system-libjpeg.diff \
+       system-libpng.diff \
+       system-lcms.diff \
+       system-pcsclite.diff \
+       link-with-as-needed.diff \
+       ld-symbolic-functions-default.diff \
+       hotspot-mips-align.diff \
+       hotspot-no-march-i586.diff \
+       hotspot-sparc-arch.diff \
+       icc_loading_with_symlink.diff \
+       icedtea-4953367.patch \
+       icedtea-override-redirect-compiz.patch \
+       jdk-freetypeScaler-crash.diff \
+       libpcsclite-dlopen.diff \
+       nonreparenting-wm.diff \
+       shebang.diff \
+       zero-fpu-control-is-noop.diff \
+       jexec.diff \
+       default-jvm-cfg-default.diff \
+       disable-doclint-by-default.diff \
+       fix-jtreg-location.diff \
+       include-all-srcs.diff \
+       pass-extra-flags.diff \
+       hotspot-disable-werror.diff \
+       dont-strip-images.diff \
+       workaround_expand_exec_shield_cs_limit.diff \
+       zero-architectures.diff \
+       adlc-parser.patch \
+       compare-pointer-with-literal.patch \
+       multiple-pkcs11-library-init.patch \
+       applet-hole.patch \
+       8050942.diff \
+
+# FIXME: update patches
+       #accessible-toolkit.patch # update for 8
+
+ifeq ($(with_bridge),atk)
+    COMMON_PATCHES += atk-wrapper-security.patch
+else ifneq (,$(with_bridge))
+    COMMON_PATCHES += java-access-bridge-security.patch
+endif
+
+COMMON_PATCHES += \
+       zero-missing-headers.diff \
+       dnd-files.patch \
+       zero-x32.diff \
+
+# FIXME        fontconfig-wqy-microhei.patch \
+# FIXME        zero-sparc.diff \
+# FIXME        no-pch-build.diff \
+
+ifeq (,$(filter $(DEB_HOST_ARCH),arm64))
+  COMMON_PATCHES += \
+       hotspot-powerpcspe.diff
+# FIXME        zero-opt.diff
+endif
+
+# FIXME CACAO update needed
+#ifeq ($(DEB_HOST_ARCH),armel)
+#  ifeq ($(distrel),quantal)
+#    DISTRIBUTION_PATCHES += cacao-armv4.diff
+#  else ifeq ($(distribution),Debian)
+#    DISTRIBUTION_PATCHES += cacao-armv4.diff
+#  endif
+#endif
+
+# FIXME needs an update:
+#      $(if $(with_wgy_zenhai),,fontconfig-arphic-uming.diff) \
+
+# FIXME: needs an update
+#ifeq (,$(filter $(distrel),squeeze lucid))
+#  COMMON_PATCHES += \
+#      fontconfig-korean-nanum.diff \
+#      fontconfig-japanese.diff
+#endif
+
+ifeq ($(with_pulse),yes)
+    COMMON_PATCHES += \
+       jdk-pulseaudio.diff
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), alpha))
+  # FIXME: Needed for non-bootstrap builds?
+  COMMON_PATCHES += \
+       alpha-float-const.diff
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386))
+  COMMON_PATCHES += \
+       kfreebsd-support-jdk.diff \
+       kfreebsd-support-hotspot.diff
+endif
+
+DEFAULT_PATCHES = \
+       $(COMMON_PATCHES) \
+       hotspot-libpath-$(hotspot_version).diff
+
+# for additional zero builds
+ZERO_PATCHES = \
+       $(COMMON_PATCHES) \
+       hotspot-libpath-default.diff
+
+
+CONFIGURE_ARGS =
+
+# GNU/kFreeBSD don't support epoll syscall so don't try to check of it.
+# FIXME need to check the flag, configure complains about it
+#ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386))
+#  CONFIGURE_ARGS += --disable-compile-against-syscalls
+#endif
+
+# there are problems --with-alt-jar=/usr/bin/fastjar,
+# see http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=217
+# only use it for zero ports except powerpc (which we assume as
+# fast enough to build.
+ifeq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs) ia64 powerpc powerpcspe ppc64 ppc64el))
+  CONFIGURE_ARGS += --with-alt-jar=/usr/bin/fastjar
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf))
+  CONFIGURE_ARGS += \
+       --disable-arm32-jit
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), $(cacao_archs)))
+  ifneq (,$(filter $(DEB_HOST_ARCH), armel))
+    # TODO: test build done without --enable-softfloat
+    EXTRA_BUILD_ENV += CACAO_CONFIGURE_ARGS='--host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)'
+  else
+    EXTRA_BUILD_ENV += CACAO_CONFIGURE_ARGS='--host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)'
+  endif
+endif
+
+ifeq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
+  CONFIGURE_ARGS += --enable-zero
+  ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs)))
+    CONFIGURE_ARGS += --enable-shark
+  endif
+endif
+
+EXTRA_BUILD_ENV += MAKE_VERBOSE=y QUIETLY= LOG=debug
+
+EXTRA_BUILD_ENV += LIBFFI_LIBS=-lffi_pic
+
+# http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2014-March/026450.html
+# plus needs explicit --disable-debug-symbols
+EXTRA_BUILD_ENV += \
+       DEBUG_BINARIES=true \
+       FULL_DEBUG_SYMBOLS=0 \
+       ZIP_DEBUGINFO_FILES=0 \
+       STRIP_POLICY=none \
+       POST_STRIP_CMD=true \
+       ALT_OBJCOPY=/does_not_exist
+
+ifeq ($(with_pulse),yes)
+  CONFIGURE_ARGS += --enable-pulse-java
+endif
+
+CONFIGURE_ARGS += --enable-system-kerberos
+
+ifeq ($(with_nss),yes)
+  CONFIGURE_ARGS += --enable-nss
+else ifeq ($(with_nss),no)
+  CONFIGURE_ARGS += --disable-nss
+endif
+
+ifeq ($(with_systemtap),yes)
+  CONFIGURE_ARGS += --enable-systemtap --with-abs-install-dir=/$(basedir)
+endif
+
+COMMON_CONFIGURE_ARGS =
+DEFAULT_CONFIGURE_ARGS =
+ZERO_CONFIGURE_ARGS =
+
+# FIXME: --with-jvm-variants=server,zero not supported upstream
+ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_archs)))
+  DEFAULT_CONFIGURE_ARGS += --with-jvm-variants=server
+else
+  DEFAULT_CONFIGURE_ARGS += --with-jvm-variants=zero
+endif
+ZERO_CONFIGURE_ARGS += --with-jvm-variants=zero
+
+DEFAULT_CONFIGURE_ARGS += --with-boot-jdk=$(BOOTJDK_HOME)
+ZERO_CONFIGURE_ARGS += --with-boot-jdk=$(CURDIR)/$(builddir)/$(sdkimg)
+
+COMMON_CONFIGURE_ARGS += --disable-ccache
+
+# FIXME: zero not ready for --disable-precompiled-headers
+#COMMON_CONFIGURE_ARGS += --disable-precompiled-headers
+ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_archs)))
+  DEFAULT_CONFIGURE_ARGS += --disable-precompiled-headers
+endif
+
+ifeq ($(with_check),yes)
+  COMMON_CONFIGURE_ARGS += --with-jtreg
+endif
+
+# FIXME: these might be out of date for AArch64
+COMMON_CONFIGURE_ARGS += \
+       --with-update-version=$(updatever) \
+       --with-build-number=$(buildver)
+#      --with-milestone=fcs \
+#      --with-user-release-suffix='$(distribution) $(PKGVERSION)' \
+
+#      --with-debug-level=fastdebug \
+
+COMMON_CONFIGURE_ARGS += \
+       --with-debug-level=release \
+       --disable-debug-symbols \
+       --disable-zip-debug-info \
+       --enable-unlimited-crypto \
+       --with-zlib=system \
+       --with-giflib=system \
+       --with-libpng=system \
+       --with-libjpeg=system \
+       --with-lcms=system \
+       --with-libpcsclite=system \
+       --with-stdc++lib=dynamic
+
+ifneq (,$(NJOBS))
+  COMMON_CONFIGURE_ARGS += --with-num-cores=$(NJOBS)
+endif
+
+# FIXME: upstream says the extra flags are not designed for general purpose ...
+# http://mail.openjdk.java.net/pipermail/jdk8u-dev/2014-July/001389.html
+
+# FIXME: demos fail to build with these ...
+# FIXME: zero ftbfs without -fpermissive
+#src/cpu/zero/vm/cppInterpreter_zero.cpp:732:30: error: invalid conversion from 'intptr_t {aka long int}' to 'const void*' [-fpermissive]
+#       object = (oop) locals[0];
+#                              ^
+
+#COMMON_CONFIGURE_ARGS += \
+       --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \
+       --with-extra-cxxflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CXXFLAGS_HS)' \
+       --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)'
+
+ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
+  DEFAULT_CONFIGURE_ARGS += \
+       --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \
+       --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)'
+else
+  DEFAULT_CONFIGURE_ARGS += \
+       --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \
+       --with-extra-cxxflags='-fpermissive' \
+       --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)'
+endif
+
+ZERO_CONFIGURE_ARGS += \
+       --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \
+       --with-extra-cxxflags='-fpermissive' \
+       --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)'
+
+# FIXME: this, or use target ..., fix cross builds
+#CONFIGURE_ARGS += --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)
+
+# (most) jre and jdk tools handled by the alternatives system.
+# dups in heimdal-clients, krb5-user: kinit, klist, ktab, no alternatives
+# use javaws from icedtea-netx
+all_jre_tools  = $(filter-out javaws, $(notdir $(wildcard $(builddir)/$(jreimg)/bin/*)))
+jre_tools      = $(filter policytool, $(all_jre_tools))
+jre_hl_tools   := $(filter-out $(jre_tools), $(all_jre_tools))
+
+corba_tools    = orbd servertool tnameserv
+jre_hl_tools_alt= $(filter-out $(corba_tools), $(jre_hl_tools)) $(corba_tools)
+jre_tools_alt  = $(filter-out kinit klist ktab, $(jre_tools))
+
+all_jdk_tools  = $(filter-out javaws, $(notdir $(wildcard build/$(sdkimg)/bin/*)))
+jdk_tools      = $(filter-out $(all_jre_tools), $(all_jdk_tools))
+jdk_tools_alt  = $(filter-out apt java-rmi.cgi, $(jdk_tools))
+
+# build dependencies
+bd_autotools = autoconf, automake, autotools-dev,
+# This section should be in sync with "GCJ_SUFFIX" definition
+bd_bootstrap =
+ifneq (,$(bootjdk_gcj_archs))
+  bd_bootstrap += \
+       ecj-gcj [$(strip $(foreach a,$(bootjdk_gcj_archs), $(a)))],
+  bootjdk_gcj46_archs = m68k
+  bootjdk_gcj_default_archs = $(filter-out $(bootjdk_gcj46_archs), $(bootjdk_gcj_archs))
+  ifneq (,$(filter $(distrel),squeeze wheezy lucid precise))
+    bd_bootstrap += \
+       gcj-jdk [$(strip $(foreach a,$(bootjdk_gcj_default_archs), $(a)))], \
+       gcj-4.6-jdk [$(strip $(foreach a,$(bootjdk_gcj46_archs), $(a)))], \
+       gcj-4.7-jdk [ia64],
+  else
+    bd_bootstrap += \
+       gcj-jdk [$(strip $(foreach a,$(bootjdk_gcj_default_archs), $(a)))],
+  endif
+endif
+ifneq (,$(bootjdk_openjdk_archs))
+  bd_bootstrap += \
+       openjdk-7-jdk | openjdk-8-jdk,
+endif
+ifneq (,$(bootjdk_cacao_archs))
+  bd_bootstrap += \
+       cacao-oj6-jdk [$(strip $(foreach a,$(bootjdk_cacao_archs), $(a)))],
+endif
+
+# This section should be in sync with "CC/CXX" definition
+ifneq (,$(filter $(distrel),squeeze lucid))
+  bd_gcc = g++-4.4 (>= 4.4.1),
+else ifneq (,$(filter $(distrel), precise))
+  bd_gcc = g++-4.6,
+else ifneq (,$(filter $(distrel), wheezy))
+  bd_gcc = g++-4.7, g++-4.4 [mips mipsel],
+else ifneq (,$(filter $(distrel), quantal raring))
+  bd_gcc = g++-4.7,
+else ifneq (,$(filter $(distrel), saucy trusty))
+  bd_gcc = g++-4.8,
+else
+  bd_gcc = g++-4.9,
+endif
+bd_syslibs = zlib1g-dev, libattr1-dev,
+ifneq (,$(filter $(distrel),squeeze lucid))
+  bd_syslibs += libpng12-dev, libjpeg62-dev,
+else
+  bd_syslibs += libpng-dev, libjpeg8-dev,
+endif
+bd_syslibs += \
+       libgif-dev,
+bd_openjdk = \
+       libxtst-dev, libxi-dev, libxt-dev, libxaw7-dev, libxrender-dev, libcups2-dev, \
+       libasound2-dev, liblcms2-dev, libfreetype6-dev (>= 2.2.1), libgtk2.0-dev, \
+       libxinerama-dev, libkrb5-dev, xsltproc, libpcsclite-dev,
+
+pkg_ffidev = libffi-dev
+
+bd_zero = \
+       $(pkg_ffidev) [$(foreach a,$(hotspot_archs),!$(a))],
+bd_zero = \
+       $(pkg_ffidev),
+
+ifneq (,$(shark_archs))
+  bd_zero = $(pkg_ffidev),
+  ifneq (,$(filter $(distrel),lucid))
+    bd_shark = llvm-dev (>= 2.7) [$(foreach a,$(shark_archs) $(altshark_archs),$(a))],
+    bd_shark += oprofile [$(foreach a,$(shark_archs) $(altshark_archs),$(a))],
+  else
+    ifneq (,$(filter $(distrel),squeeze))
+      llvm_suffix = -2.7
+    else ifneq (,$(filter $(distrel),precise))
+      llvm_suffix = -2.9
+    else
+      llvm_suffix = -3.0
+    endif
+    bd_shark = llvm$(llvm_suffix)-dev [$(foreach a,$(shark_archs) $(altshark_archs),$(a))],
+    ifneq (,$(filter $(DEB_HOST_ARCH),$(shark_archs) $(altshark_archs)))
+      CONFIGURE_ARGS += --with-llvm-config=llvm-config$(llvm_suffix)
+    endif
+  endif
+endif
+
+ifneq (,$(cacao_archs))
+  # cacao included in the openjdk tarball
+  bd_cacao = libtool,
+endif
+
+ifneq (,$(filter $(distrel),lucid))
+  bd_ant = ant, ant1.8-optional,
+else
+  bd_ant = ant, ant-optional,
+endif
+
+bd_fastjar = fastjar (>= 2:0.96-0ubuntu2),
+bd_xvfb = xvfb, xauth, xfonts-base, libgl1-mesa-dri [!x32], $(bd_wm) x11-xkb-utils,
+bd_mauve = mauve,
+ifeq ($(with_pulse),yes)
+  bd_pulsejava = libpulse-dev (>= 0.9.12),
+endif
+ifeq ($(with_nss),yes)
+  ifneq (,$(filter $(distrel),squeeze lucid))
+    bd_nss = libnss3-dev (>= 3.12.3),
+  else ifneq (,$(filter $(distrel),wheezy precise))
+    bd_nss = libnss3-dev (>= 3.13.4),
+  else
+    bd_nss = libnss3-dev (>= 2:3.13.5),
+  endif
+endif
+ifeq ($(with_systemtap),yes)
+  bd_systemtap = systemtap-sdt-dev,
+endif
+
+ifneq (,$(jamvm_archs))
+  bd_jamvm = libtool,
+endif
+
+dlopen_hl_depends = \
+       libcups2, liblcms2-2, \
+       $(if $(findstring jpeg8, $(bd_syslibs)),libjpeg8,libjpeg62)
+ifneq ($(with_nss),no)
+  ifneq (,$(filter $(distrel),squeeze lucid))
+    dlopen_hl_depends += , libnss3-1d (>= 3.12.3)
+  else ifneq (,$(filter $(distrel), wheezy sid))
+    dlopen_hl_depends += , libnss3 (>= 2:3.13.4)
+  else
+    dlopen_hl_depends += , libnss3-1d (>= 3.12.9+ckbi-1.82-0ubuntu4)
+  endif
+endif
+dlopen_hl_recommends =
+dlopen_jre_depends = \
+       libgtk2.0-0, libxrandr2, libxinerama1, libgl1-mesa-glx | libgl1
+dlopen_jre_recommends =
+# these are not yet ready for multiarch
+ifneq (,$(DEB_HOST_MULTIARCH))
+  dlopen_jre_recommends += , libgnome2-0, libgnomevfs2-0, libgconf2-4
+else
+  dlopen_jre_depends += , libgnome2-0, libgnomevfs2-0, libgconf2-4
+endif
+
+plugin_name = IcedTeaPlugin.so
+browser_plugin_dirs = mozilla
+
+# .desktop files need to be multiarch installable
+java_launcher = /$(basedir)/bin/java
+java_launcher = /usr/bin/java
+ifeq ($(distribution),Ubuntu)
+  java_launcher = cautious-launcher %f /$(basedir)/bin/java
+  java_launcher = cautious-launcher %f /usr/bin/java
+endif
+
+ifneq (,$(filter $(distrel),squeeze wheezy lucid precise quantal raring))
+  core_fonts = ttf-dejavu-extra
+else
+  core_fonts = fonts-dejavu-extra
+endif
+ifneq (,$(filter $(distrel),squeeze lucid))
+  cjk_fonts = ttf-baekmuk | ttf-unfonts | ttf-unfonts-core,
+  cjk_fonts += ttf-sazanami-gothic | ttf-kochi-gothic,
+  cjk_fonts += ttf-sazanami-mincho | ttf-kochi-mincho,
+else
+  cfk_fonts = fonts-nanum,
+  cjk_fonts += fonts-ipafont-gothic, fonts-ipafont-mincho,
+endif
+cjk_fonts += $(if $(with_wgy_zenhai),ttf-wqy-microhei | ttf-wqy-zenhei,ttf-arphic-uming),
+ifneq (,$(filter $(distrel),squeeze wheezy))
+  cjk_fonts += ttf-indic-fonts,
+else ifneq (,$(filter $(distrel), lucid maverick natty oneiric precise quantal raring saucy trusty))
+  cjk_fonts += ttf-indic-fonts-core, ttf-telugu-fonts, ttf-oriya-fonts,
+  cjk_fonts += ttf-kannada-fonts, ttf-bengali-fonts,
+else
+  cjk_fonts += fonts-indic,
+endif
+
+p_jre  = $(basename)-jre
+p_jrehl        = $(basename)-jre-headless
+p_jrec = $(basename)-jre-cacao
+p_jrej = $(basename)-jre-jamvm
+p_jrez = $(basename)-jre-zero
+p_jdk  = $(basename)-jdk
+p_demo = $(basename)-demo
+p_src  = $(basename)-source
+p_doc  = $(basename)-doc
+p_dbg  = $(basename)-dbg
+
+d      = debian/tmp
+d_jre  = debian/$(p_jre)
+d_jrehl        = debian/$(p_jrehl)
+d_jrec = debian/$(p_jrec)
+d_jrej = debian/$(p_jrej)
+d_jrez = debian/$(p_jrez)
+d_jdk  = debian/$(p_jdk)
+d_demo = debian/$(p_demo)
+d_src  = debian/$(p_src)
+d_doc  = debian/$(p_doc)
+d_dbg  = debian/$(p_dbg)
+
+control_vars = \
+       '-Vvm:Name=$(vm_name)' \
+       '-Vdlopenhl:Depends=$(dlopen_hl_depends)' \
+       '-Vdlopenhl:Recommends=$(dlopen_hl_recommends)' \
+       '-Vdlopenjre:Depends=$(dlopen_jre_depends)' \
+       '-Vdlopenjre:Recommends=$(dlopen_jre_recommends)' \
+       '-Vpkg:pulseaudio=$(pkg_pulseaudio)' \
+       '-Vxulrunner:Depends=$(xulrunner_depends)' \
+
+ifneq (,$(DEB_HOST_MULTIARCH))
+  control_vars += \
+       '-Vmultiarch:Depends=multiarch-support'
+endif
+
+ifneq (,$(filter-out $(hotspot_archs), $(cacao_archs)))
+  control_vars += '-Vcacao:Recommends=$(p_jrec) (= $${binary:Version})'
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),$(jamvm_archs)))
+  ifneq (,$(filter $(DEB_HOST_ARCH),$(jamvm_defaults)))
+    control_vars += '-Vjredefault:Depends=$(p_jrej) (= $${binary:Version})'
+  else ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_archs)))
+    control_vars += '-Vjamvm:Suggests=$(p_jrej) (= $${binary:Version})'
+  else
+    control_vars += '-Vjamvm:Recommends=$(p_jrej) (= $${binary:Version})'
+  endif
+endif
+
+ifeq ($(with_bridge),atk)
+  control_vars += '-Vdep:bridge=libatk-wrapper-java-jni (>= 0.30.4-0ubuntu2)'
+else ifeq ($(with_bridge),yes)
+  ifneq (,$(DEB_HOST_MULTIARCH))
+    control_vars += '-Vdep:bridge=libaccess-bridge-java-jni (>= 1.26.2-6)'
+  else ifeq ($(with_jni_bridge),yes)
+    control_vars += '-Vdep:bridge=libaccess-bridge-java-jni'
+  else
+    control_vars += '-Vdep:bridge=libaccess-bridge-java'
+  endif
+endif
+
+ifeq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
+  ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs)))
+    control_vars += '-Vdefaultvm:Provides=$(p_jre)-zero, $(p_jre)-shark'
+  else
+    control_vars += '-Vdefaultvm:Provides=$(p_jre)-zero'
+  endif
+endif
+ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs) $(altshark_archs)))
+  control_vars += '-Vzerovm:Provides=$(p_jre)-shark'
+endif
+
+pkg_certs = ca-certificates-java
+control_vars += '-Vcacert:Depends=$(pkg_certs)'
+
+ifeq ($(with_tzdata),yes)
+  pkg_tzdata = tzdata-java
+  ifneq (,$(filter $(distrel), precise))
+    pkg_tzdata += (>= 2012e-0ubuntu0.12.04.1)
+  endif
+endif
+control_vars += '-Vtzdata:Depends=$(pkg_tzdata)'
+
+pkg_jcommon = java-common (>= 0.28)
+control_vars += '-Vjcommon:Depends=$(pkg_jcommon)'
+
+debian/control: debian/control.in debian/rules
+       @cp -p debian/control debian/control.old
+       sed \
+             -e 's/@basename@/$(basename)/g' \
+             -e 's/@bd_autotools@/$(bd_autotools)/g' \
+             -e 's/@bd_bootstrap@/$(strip $(bd_bootstrap))/g' \
+             -e 's/@bd_openjdk@/$(bd_openjdk)/g' \
+             -e 's/@bd_zero@/$(bd_zero)/g' \
+             -e 's/@bd_gcc@/$(bd_gcc)/g' \
+             -e 's/@bd_syslibs@/$(bd_syslibs)/g' \
+             -e 's/@bd_fastjar@/$(bd_fastjar)/g' \
+             -e 's/@bd_mauve@/$(bd_mauve)/g' \
+             -e 's/@bd_xvfb@/$(bd_xvfb)/g' \
+             -e 's/@bd_cacao@/$(bd_cacao)/g' \
+             -e 's/@bd_jamvm@/$(bd_jamvm)/g' \
+             -e 's/@bd_pulsejava@/$(bd_pulsejava)/g' \
+             -e 's/@bd_nss@/$(bd_nss)/g' \
+             -e 's/@bd_systemtap@/$(bd_systemtap)/g' \
+             -e 's/@bd_shark@/$(bd_shark)/g' \
+             -e 's/@bd_ant@/$(bd_ant)/g' \
+             -e 's/@core_fonts@/$(core_fonts)/g' \
+             -e 's/@cjk_fonts@/$(cjk_fonts)/g' \
+             -e 's/@any_archs@/$(any_archs)/g' \
+             -e 's/@cacao_archs@/$(cacao_archs)/g' \
+             -e 's/@jamvm_archs@/$(jamvm_archs)/g' \
+             -e 's/@hotspot_archs@/$(hotspot_archs)/g' \
+             -e 's/@altzero_archs@/$(altzero_archs)/g' \
+           debian/control.in \
+           $(if $(cacao_archs), debian/control.cacao-jre) \
+           $(if $(jamvm_archs), debian/control.jamvm-jre) \
+           $(if $(altzero_archs), debian/control.zero-jre) \
+           $(if $(DEB_HOST_MULTIARCH),,| grep -v '^Multi-Arch') \
+               > debian/control
+       @if cmp -s debian/control debian/control.old; then \
+         rm -f debian/control.old; \
+       else \
+         diff -u debian/control.old debian/control | wdiff -d -; \
+         echo "debian/control did change, please restart the build"; \
+         rm -f debian/control.old; \
+         exit 1; \
+       fi
+
+packaging-files:
+       for f in debian/*.in debian/patches/*.in; do \
+         case "$$f" in debian/control.in) continue; esac; \
+         f2=$$(echo $$f | sed 's/JB/$(basename)/;s/\.in$$//'); \
+         sed -e 's/@JRE@/$(p_jre)/g' \
+             -e 's/@JDK@/$(p_jdk)/g' \
+             -e 's/@vendor@/$(Vendor)/g' \
+             -e 's/@RELEASE@/$(shortver)/g' \
+             -e 's/@basename@/$(basename)/g' \
+             -e 's,@TOP@,$(TOP),g' \
+             -e 's,@basedir@,$(basedir),g' \
+             -e 's,@etcdir@,$(etcdir),g' \
+             -e 's,@jdiralias@,$(jdiralias),g' \
+             -e 's,@jdirname@,$(jdirname),g' \
+             -e 's/@srcname@/$(srcname)/g' \
+             -e 's/@jvmarch@/$(jvmarch)/g' \
+             -e 's/@archdir@/$(archdir)/g' \
+             -e 's/@tag@/$(tag)/g' \
+             -e 's/@priority@/$(priority)/g' \
+             -e 's/@mantag@/$(mantag)/g' \
+             -e 's/@multiarch@/$(DEB_HOST_MULTIARCH)/g' \
+             -e 's/@jre_hl_tools@/$(jre_hl_tools_alt)/g' \
+             -e 's/@jre_tools@/$(jre_tools_alt)/g' \
+             -e 's/@jdk_tools@/$(jdk_tools_alt)/g' \
+             -e 's/@corba_tools@/$(corba_tools)/g' \
+             -e 's,@j2se_lib@,$(j2se_lib),g' \
+             -e 's,@j2se_share@,$(j2se_share),g' \
+             -e 's,@java_launcher@,$(java_launcher),g' \
+             -e 's,@with_tzdata@,$(with_tzdata),g' \
+             -e 's/@cjk_fonts@/$(cjk_fonts)/g' \
+           $$f > $$f2; \
+       done
+ifneq (,$(filter $(DEB_HOST_ARCH), i386 lpia))
+# not yet in OpenJDK
+#      cat debian/$(p_jre)-i586.menu >> $(d_jre).menu
+       rm -f debian/$(p_jre)-i586.menu
+endif
+
+configure: stamps/configure
+stamps/configure: stamps/patch
+       -cat /etc/hosts
+
+       mkdir -p bin
+ifeq (,$(filter $(DEB_HOST_ARCH), alpha amd64 arm64 hppa ppc64 ppc64el s390x sparc64 x32))
+       ( \
+         echo '#! /bin/sh'; \
+         echo 'if [ -x /usr/bin/linux32 ]; then'; \
+         echo '    exec /usr/bin/linux32 /bin/uname "$$@"'; \
+         echo 'else'; \
+         echo '    exec /bin/uname "$$@"'; \
+         echo 'fi'; \
+       ) > bin/uname
+       chmod +x bin/uname
+       echo "UNAME checks"
+       uname -a
+endif
+       /bin/uname -a
+       lsb_release -a
+
+       -cat /proc/sys/kernel/random/entropy_avail
+
+       mkdir -p stamps
+       mkdir -p $(builddir)
+       cd $(srcdir) && sh common/autoconf/autogen.sh
+       cd $(builddir) && $(EXTRA_BUILD_ENV) ../$(srcdir)/configure \
+               $(DEFAULT_CONFIGURE_ARGS) \
+               $(COMMON_CONFIGURE_ARGS)
+
+       touch $@
+
+stamps/zero-configure: stamps/build stamps/patch
+       mkdir -p stamps
+       mkdir -p $(zbuilddir)
+       cd $(zbuilddir) && $(EXTRA_BUILD_ENV) ../$(srcdir)/configure \
+               $(ZERO_CONFIGURE_ARGS) \
+               $(COMMON_CONFIGURE_ARGS)
+
+       touch $@
+
+stamps/jamvm-configure: stamps/jamvm-unpack stamps/patch stamps/build
+       if [ -x jamvm/autogen.sh ]; then \
+         cd jamvm && NOCONFIGURE=yes ./autogen.sh; \
+       fi
+       mkdir -p $(jbuilddir)
+       cd $(jbuilddir) && ../jamvm/configure \
+               --prefix=$(CURDIR)/$(jbuilddir)/install \
+               --with-java-runtime-library=openjdk8 \
+               --with-gnu-ld \
+               CPPFLAGS='$(EXTRA_CPPFLAGS_JAMVM)' \
+               CFLAGS='$(EXTRA_CFLAGS_JAMVM)' \
+               CXXFLAGS='$(EXTRA_CXXFLAGS_JAMVM)' \
+               LDFLAGS='$(EXTRA_LDFLAGS_JAMVM)'
+       touch $@
+
+stamps/sound-configure: stamps/build
+       rm -rf icedtea-sound
+       tar xf icedtea-sound.tar.xz
+       mv $$(tar tf icedtea-sound.tar.xz | head -1 | sed 's,/.*,,') \
+         icedtea-sound
+       patch -p1 -R < debian/patches/icedtea-sound.diff
+       if [ -x icedtea-sound/autogen.sh ]; then \
+         cd icedtea-sound && ./autogen.sh; \
+       fi
+       cd icedtea-sound && ./configure \
+         --with-jdk-home=$(CURDIR)/$(builddir)/$(sdkimg) \
+         CPPFLAGS="$(EXTRA_CPPFLAGS_IT)" \
+         CFLAGS="$(EXTRA_CFLAGS_IT)" \
+         CXXFLAGS="$(EXTRA_CXXFLAGS_IT)" \
+         LDFLAGS="$(EXTRA_LDFLAGS_IT)"
+       touch $@
+
+stamps/sound-build: stamps/sound-configure
+       $(MAKE) -C icedtea-sound
+       touch $@
+
+stamps/jamvm-build: stamps/jamvm-configure
+       $(MAKE) -C $(jbuilddir)
+       $(MAKE) -C $(jbuilddir) install
+       rm -rf $(builddir)/$(sdkimg)/jre/lib/$(archdir)/jamvm
+       mkdir -p $(builddir)/$(sdkimg)/jre/lib/$(archdir)/jamvm
+       cp -p $(jbuilddir)/install/lib/libjvm.so \
+               $(builddir)/$(sdkimg)/jre/lib/$(archdir)/jamvm/.
+       cp -p $(builddir)/$(sdkimg)/jre/lib/$(archdir)/server/Xusage.txt \
+               $(builddir)/$(sdkimg)/jre/lib/$(archdir)/jamvm/.
+       touch $@
+
+unpack: stamps/unpack stamps/jamvm-unpack
+stamps/unpack:
+       rm -rf $(srcdir)
+       tar xf root.tar.xz
+       mv $$(tar tf root.tar.xz | head -1 | sed 's,/.*,,') $(srcdir)
+       chmod +x $(srcdir)/configure
+       for tb in corba jaxp jaxws langtools hotspot jdk nashorn; do \
+         d=$$(tar tf $$tb.tar.xz | head -1 | sed 's,/.*,,'); \
+         tar -C $(srcdir) -x -f $$tb.tar.xz; \
+         mv $(srcdir)/$$d $(srcdir)/$$tb; \
+       done
+# FIXME: do the zero build from the hotspot.tar.gz
+ifneq (,$(filter $(DEB_HOST_ARCH), arm64))
+       rm -rf $(srcdir)/hotspot
+       tar -C $(srcdir) -x -f hotspot-aarch64.tar.xz
+       mv $(srcdir)/$$(tar tf hotspot-aarch64.tar.xz | head -1 | sed 's,/.*,,') \
+         $(srcdir)/hotspot
+endif
+
+       : # remove embedded libraries
+       find $(srcdir)/jdk/src/share/native/sun/awt/image/jpeg \
+         ! -name imageioJPEG.c ! -name jpegdecoder.c ! -name jinclude.h \
+         -type f -delete
+       rm -rf $(srcdir)/jdk/src/share/native/sun/awt/libpng/*
+       rm -rf $(srcdir)/jdk/src/share/native/sun/awt/giflib/*
+       rm -rf $(srcdir)/jdk/src/share/native/sun/java2d/cmm/lcms/cms*
+       rm -rf $(srcdir)/jdk/src/share/native/sun/java2d/cmm/lcms/lcms2*
+       rm -rf $$d/src/solaris/native/sun/security/smartcardio/MUSCLE
+
+       $(MAKE) -f debian/rules packaging-files
+
+       mkdir -p stamps
+       touch $@
+
+stamps/jamvm-unpack:
+       mkdir -p stamps
+       rm -rf jamvm jamvm-*
+       tar xf jamvm.tar.gz
+       mv jamvm-2* jamvm
+       patch -p1 < debian/patches/kfreebsd-support-jamvm.diff
+       @mkdir -p stamps
+       touch $@
+
+patch: stamps/patch
+stamps/patch: stamps/unpack stamps/jamvm-unpack
+       for i in $(DEFAULT_PATCHES); do \
+         echo $$i; \
+       done > $(srcdir)/series
+
+       cd $(srcdir) && \
+         QUILT_PATCHES=../debian/patches quilt --quiltrc - push -a
+       ( \
+         echo ""; echo "Patches applied in this version:"; \
+         for i in $$(egrep -v '^#|^ *$$' $(srcdir)/series); do \
+           echo ""; echo "$$i:"; \
+           sed -n 's/^# *DP: */  /p' debian/patches/$$i; \
+         done \
+       ) > stamps/pxx
+       mv stamps/pxx $@
+
+ifeq ($(with_check),yes)
+    ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs) alpha ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el sh4))
+      with_mauve_check = $(default_vm)
+    endif
+    ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs) alpha arm64 armel armhf ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390x sh4 x32))
+      with_jtreg_check = $(default_vm)
+    endif
+
+    ifneq (,$(filter cacao, $(alternate_vms)))
+      ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 lpia powerpc powerpcspe sparc))
+       # only activate after testing
+       with_mauve_check += cacao
+      endif
+      ifneq (,$(filter $(DEB_HOST_ARCH), alpha amd64 armel armhf i386 lpia mips mipsel mips64 mips64el powerpc powerpcspe))
+       # only activate after testing; hangs several tests.
+       with_jtreg_check += cacao
+      endif
+    endif
+
+    ifneq (,$(filter jamvm, $(alternate_vms)))
+      ifneq (,$(filter $(DEB_HOST_ARCH), amd64 ))
+       # only activate after testing
+       with_mauve_check += jamvm
+      endif
+      ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 lpia))
+       # only activate after testing; hangs several tests.
+       with_jtreg_check += jamvm
+      endif
+    endif
+
+    ifneq (,$(filter shark, $(alternate_vms)))
+      ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 lpia powerpc powerpcspe))
+       # only activate after testing
+       with_mauve_check += $(if $(filter $(DEB_HOST_ARCH),$(altshark_archs)),shark,zero)
+      endif
+      # shark hangs on ppc64
+      ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 lpia powerpc powerpcspe))
+       # only activate after testing; hangs several tests.
+       with_jtreg_check += $(if $(filter $(DEB_HOST_ARCH),$(altshark_archs)),shark,zero)
+      endif
+    endif
+
+    ifneq (,$(filter zero, $(alternate_vms)))
+      ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 lpia))
+       # only activate after testing
+       with_mauve_check += zero
+      endif
+      ifneq (,$(filter $(DEB_HOST_ARCH), arm64 amd64 i386 lpia))
+       # only activate after testing; hangs several tests.
+       with_jtreg_check += zero
+      endif
+    endif
+
+    with_mauve_check =
+endif
+
+# these are best guesses depending on the architecture and the build machines
+# some tests require 4min to run, so set the minimum timeout to 3 x 2min.
+ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel armhf ia64 m68k mips mipsel mips64 mips64el powerpc powerpcspe x32))
+  JTREG_OPTIONS = -timeout:5
+else
+  JTREG_OPTIONS = -timeout:3
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf))
+  JTREG_OPTIONS += -Xmx256M -vmoption:-Xmx256M
+endif
+
+build_stamps = \
+       stamps/build \
+       $(if $(filter $(DEB_HOST_ARCH),$(altzero_archs)),stamps/zero-build) \
+       $(if $(filter $(DEB_HOST_ARCH),$(jamvm_archs)),stamps/jamvm-build)
+
+ifeq ($(with_pulse),yes)
+  build_stamps += stamps/sound-build
+endif
+
+build_stamps +=  stamps/jtreg-check-default
+
+ifeq (0,1)
+build_stamps +=  stamps/mauve-check-default stamps/jtreg-check-default
+#build_stamps += $(if $(filter cacao, $(alternate_vms)),stamps/mauve-check-cacao stamps/jtreg-check-cacao)
+build_stamps += $(if $(filter jamvm, $(alternate_vms)),stamps/mauve-check-jamvm stamps/jtreg-check-jamvm)
+build_stamps += $(if $(filter zero, $(alternate_vms)),stamps/mauve-check-zero stamps/jtreg-check-zero)
+ifneq (,$(filter shark, $(alternate_vms)))
+  ifneq (,$(filter $(DEB_HOST_ARCH),$(altshark_archs)))
+    build_stamps += stamps/mauve-check-shark stamps/jtreg-check-shark
+  else
+    build_stamps += stamps/mauve-check-zero stamps/jtreg-check-zero
+  endif
+endif
+endif
+
+pre-build:
+ifneq (,$(filter $(DEB_HOST_ARCH),s390))
+       @echo explicitely fail the build for $(DEB_HOST_ARCH), patches not updated
+#else ifneq (,$(filter $(DEB_HOST_ARCH),armel))
+#      @echo explicitely fail the build for $(DEB_HOST_ARCH), ARM assembler interpreter not yet ported
+       false
+endif
+
+build-arch: build
+build-indep: build stamps/build-docs
+build: pre-build $(build_stamps)
+       if [ -f buildwatch.pid ]; then \
+         pid=$$(cat buildwatch.pid); \
+         kill -1 $$pid || :; sleep 1; kill -9 $$pid || :; \
+       fi
+       rm -f buildwatch.pid
+
+stamps/build: stamps/configure
+ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel armhf ia64 m68k mips mipsel mips64 mips64el powerpc powerpcspe s390x sparc sparc64))
+       sh -c 'sh debian/buildwatch.sh $(CURDIR)/$(builddir) &'
+endif
+       if $(EXTRA_BUILD_ENV) $(MAKE) -C $(builddir) $(build_target); then \
+         : ; \
+       else \
+         if [ -f buildwatch.pid ]; then \
+           pid=$$(cat buildwatch.pid); \
+           kill -1 $$pid || :; sleep 1; kill -9 $$pid || :; \
+         fi; \
+         false; \
+       fi
+
+       touch $@
+
+stamps/zero-build: stamps/zero-configure
+       : # FIXME: build using the just built jdk, and build the vm only
+       $(EXTRA_BUILD_ENV) $(MAKE) -C $(zbuilddir) images
+       rm -rf $(builddir)/$(sdkimg)/jre/lib/$(archdir)/zero
+       cp -a $(zbuilddir)/$(subst bootcycle-build/,,$(sdkimg))/jre/lib/$(archdir)/server \
+               $(builddir)/$(sdkimg)/jre/lib/$(archdir)/zero
+       touch $@
+
+stamps/build-docs: stamps/build
+       $(MAKE) -C $(builddir) docs
+       touch $@
+
+stamps/xvfb-check:
+       mkdir -p bin
+       ( \
+         echo '#!/bin/sh'; \
+         echo '$(with_wm_prefix) $(with_wm) $(with_wm_args) &'; \
+         echo 'pid=$$!'; \
+         echo 'sleep 3'; \
+         echo '"$$@"'; \
+         echo 'kill -9 $$pid'; \
+       ) > bin/my-jtreg-run
+       chmod 755 bin/my-jtreg-run
+ifeq (,$(wildcard /usr/bin/$(with_wm)))
+       echo 'xvfb-run -a -e $(CURDIR)/test/xvfb-run.log -s "-extension GLX" "$$@"' > bin/my-xvfb-run
+else
+       echo 'xvfb-run -a -e $(CURDIR)/test/xvfb-run.log -s "-extension GLX" my-jtreg-run "$$@"' > bin/my-xvfb-run
+  ifeq ($(with_wm),twm)
+       grep -v '^include-menu-defs' /etc/X11/twm/system.twmrc-menu > bin/jtreg.tmwrc
+       echo RandomPlacement >> bin/jtreg.tmwrc
+  endif
+endif
+       if ! /bin/sh bin/my-xvfb-run true ; then \
+         echo "error running $$(cat bin/my-xvfb-run)"; \
+         cat test/xvfb-run.log; \
+         sed -i 's/ -s *"[^"]*"//' bin/my-xvfb-run; \
+         if ! /bin/sh bin/my-xvfb-run true ; then \
+           echo "error running $$(cat bin/my-xvfb-run)"; \
+           cat test/xvfb-run.log; \
+           rm -f bin/my-xvfb-run; \
+         fi; \
+       fi
+       if [ -f bin/my-xvfb-run ]; then \
+         echo "using $$(cat bin/my-xvfb-run)"; \
+       fi
+       touch $@
+
+XVFB_RUN_CMD = xvfb-run -a -e $(CURDIR)/test/xvfb-run.log -s "-extension GLX"
+ifneq (,$(wildcard /usr/bin/$(with_wm)))
+  XVFB_RUN_CMD += $(CURDIR)/bin/my-jtreg-run
+endif
+
+stamps/mauve-check-default: stamps/build stamps/xvfb-check
+       $(MAKE) -f debian/rules mauve-run-check VMNAME=$(default_vm) VMARGS=
+       touch $@
+
+stamps/mauve-check-cacao: stamps/xvfb-check
+       $(MAKE) -f debian/rules mauve-run-check VMNAME=cacao VMARGS='-vmarg -cacao'
+       touch $@
+
+stamps/mauve-check-jamvm: stamps/xvfb-check
+       $(MAKE) -f debian/rules mauve-run-check VMNAME=jamvm VMARGS='-vmarg -jamvm'
+       touch $@
+
+stamps/mauve-check-shark: stamps/xvfb-check
+       $(MAKE) -f debian/rules mauve-run-check VMNAME=shark VMARGS='-vmarg -shark'
+       touch $@
+
+stamps/mauve-check-zero: stamps/xvfb-check
+       $(MAKE) -f debian/rules mauve-run-check VMNAME=zero VMARGS='-vmarg -zero'
+       touch $@
+
+stamps/mauve-build: stamps/build
+       rm -rf build/mauve
+       mkdir -p build/mauve
+ifeq ($(with_mauve_check),yes)
+       tar -x -C build -f /usr/src/mauve.tar.gz
+       cd build/mauve \
+           && aclocal \
+           && automake \
+           && autoconf \
+           && PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH \
+               ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)
+       PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH $(MAKE) -C build/mauve
+endif
+       touch $@
+
+stamps/mauve-check: stamps/build stamps/mauve-build stamps/xvfb-check
+
+mauve-run-check:
+       rm -rf build/mauve build/mauve-$(VMNAME)
+ifneq (,$(filter $(VMNAME), $(with_mauve_check)))
+       tar -x -C build -f /usr/src/mauve.tar.gz
+       mv build/mauve build/mauve-$(VMNAME)
+       cd build/mauve-$(VMNAME) \
+           && aclocal \
+           && automake \
+           && autoconf \
+           && PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH ./configure \
+               --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)
+       PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH $(MAKE) -C build/mauve-$(VMNAME)
+
+       if [ -f bin/my-xvfb-run ]; then \
+         cd build/mauve-$(VMNAME) && \
+           JAVA_HOME=$(CURDIR)/build/$(sdkimg) \
+           PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH \
+               time /bin/sh $(CURDIR)/bin/my-xvfb-run java Harness \
+                   -vm $(CURDIR)/build/$(sdkimg)/bin/java \
+                   $(VMARGS) \
+                   -file $(CURDIR)/debian/mauve_tests \
+                   -timeout 30000 2>&1 \
+               | tee mauve_output-$(VMNAME); \
+       else \
+         echo "mauve testsuite not run for this build (xvfb failures)" \
+           > build/mauve-$(VMNAME)/mauve_output-$(VMNAME); \
+         cat test/xvfb-run.log >> build/mauve-$(VMNAME)/mauve_output-$(VMNAME); \
+       fi
+       @sleep 5
+else
+       mkdir -p build/mauve-$(VMNAME)
+       echo "mauve testsuite not run for this build" \
+         > build/mauve-$(VMNAME)/mauve_output-$(VMNAME)
+endif
+
+stamps/jtreg-check-default: stamps/build stamps/xvfb-check
+       $(MAKE) -f debian/rules jtreg-run-check VMNAME=$(default_vm) VMARGS= \
+               TEST_SUITES='hotspot langtools'
+#              $(if $(filter $(default_vm),hotspot),TEST_SUITES='hotspot langtools jdk',TEST_SUITES='hotspot langtools')
+       touch $@
+
+stamps/jtreg-check-cacao: stamps/build stamps/xvfb-check
+       $(MAKE) -f debian/rules jtreg-run-check VMNAME=cacao VMARGS='-vmoption:-cacao' \
+               TEST_SUITES='hotspot langtools'
+       touch $@
+
+stamps/jtreg-check-jamvm: stamps/build stamps/xvfb-check
+       ICEDTEA_JTREG_OTHERVM=-othervm \
+         $(MAKE) -f debian/rules jtreg-run-check VMNAME=jamvm VMARGS='-vmoption:-jamvm' \
+               TEST_SUITES='hotspot langtools'
+       touch $@
+
+stamps/jtreg-check-shark: stamps/build stamps/xvfb-check
+       $(MAKE) -f debian/rules jtreg-run-check VMNAME=shark VMARGS='-vmoption:-shark' \
+               TEST_SUITES='hotspot langtools'
+       touch $@
+
+stamps/jtreg-check-zero: stamps/build stamps/xvfb-check
+       $(MAKE) -f debian/rules jtreg-run-check VMNAME=zero VMARGS='-vmoption:-zero' \
+               TEST_SUITES='langtools hotspot'
+       touch $@
+
+jtreg-run-check:
+       mkdir -p test
+ifneq (,$(filter $(VMNAME), $(with_jtreg_check)))
+       if [ ! -f $(builddir)/$(sdkimg)/jre/lib/security/java.security.install ]; then \
+         fgrep -v 'sun.security.pkcs11' $(builddir)/$(sdkimg)/jre/lib/security/java.security \
+           > $(builddir)/$(sdkimg)/jre/lib/security/java.security.test; \
+         mv $(builddir)/$(sdkimg)/jre/lib/security/java.security \
+           $(builddir)/$(sdkimg)/jre/lib/security/java.security.install; \
+         mv $(builddir)/$(sdkimg)/jre/lib/security/java.security.test \
+           $(builddir)/$(sdkimg)/jre/lib/security/java.security; \
+       fi
+
+       @echo "BEGIN jtreg"
+       time $(MAKE) -f debian/rules -k jtregcheck \
+               $(if $(TEST_SUITES),TEST_SUITES="$(TEST_SUITES)") \
+               JTREG_OPTIONS='$(VMARGS) $(JTREG_OPTIONS)' \
+               2>&1 | tee test/jtreg_output-$(VMNAME)
+       @echo "END jtreg"
+
+       if [ -f $(builddir)/$(sdkimg)/jre/lib/security/java.security.install ]; then \
+         mv $(builddir)/$(sdkimg)/jre/lib/security/java.security.install \
+           $(builddir)/$(sdkimg)/jre/lib/security/java.security; \
+       fi
+
+#      for i in check-hotspot.log check-jdk.log check-langtools.log jtreg-summary.log; do \
+#        if [ -f test/$$i ]; then \
+           mv test/$$i test/$${i%*.log}-$(VMNAME).log; \
+#        else \
+#          mkdir -p test; \
+#          cp test/jtreg_output-$(VMNAME) test/$${i%*.log}-$(VMNAME).log; \
+#        fi; \
+#      done
+
+       for i in check-hotspot.log check-jdk.log check-langtools.log jtreg-summary.log; do \
+         if [ -f test/$$i ]; then \
+           mv test/$$i test/$${i%*.log}-$(VMNAME).log; \
+         else \
+           mkdir -p test; \
+         fi; \
+       done
+
+       @echo "BEGIN jtreg-summary-$(VMNAME)"
+       -cat test/jtreg-summary-$(VMNAME).log
+       @echo "END jtreg-summary-$(VMNAME)"
+
+       : # kill testsuite processes still hanging
+       @pids=$$($(jtreg_pids)); \
+       if [ -n "$$pids" ]; then \
+         echo "killing processes..."; \
+         $(jtreg_processes); \
+         kill -1 $$pids; \
+         sleep 2; \
+         pids=$$($(jtreg_pids)); \
+         if [ -n "$$pids" ]; then \
+           echo "trying harder..."; \
+           $(jtreg_processes); \
+           kill -9 $$pids; \
+           sleep 2; \
+         fi; \
+       else \
+         echo "nothing to cleanup"; \
+       fi; \
+       pids=$$($(jtreg_pids)); \
+       if [ -n "$$pids" ]; then \
+         echo "leftover processes..."; \
+         $(jtreg_processes); \
+       fi
+
+       -for i in hotspot langtools jdk; do \
+         test -f test/check-$$i-$(VMNAME).log || continue; \
+         for t in $$(egrep '^(FAILED|Error)' test/check-$$i-$(VMNAME).log | sed 's/.* \(.*\)\.[^.][^.]*$$/\1/'); do \
+           echo test/$$i/JTwork/$$t.jtr; \
+         done; \
+       done > test/failed_tests-$(VMNAME).list; \
+       GZIP=-9vn tar -C . -c -z -f test/failed_tests-$(VMNAME).tar.gz -T test/failed_tests-$(VMNAME).list
+else
+       echo "jtreg harness not run for this build" > test/jtreg_output-$(VMNAME)
+endif
+
+# ----------------------------------------------------------------------------
+# jtreg targets taken from IcedTea
+
+export JTREG_HOME=/usr/share/java
+
+TESTS_TO_RUN = $(addprefix check-,$(TEST_SUITES))
+
+check-hotspot: stamps/build
+       mkdir -p test/hotspot/JTwork test/hotspot/JTreport
+       JT_JAVA=$(BOOTJDK_HOME) jtreg -v1 -a -ignore:quiet \
+               -w:test/hotspot/JTwork -r:test/hotspot/JTreport \
+               -jdk:$(builddir)/$(sdkimg) \
+               $(JTREG_OPTIONS) \
+               $(CURDIR)/$(srcdir)/hotspot/test \
+           | tee test/$@.log
+
+check-langtools: stamps/build
+       mkdir -p test/langtools/JTwork test/langtools/JTreport
+       JT_JAVA=$(BOOTJDK_HOME) jtreg -v1 -a -ignore:quiet \
+               -w:test/langtools/JTwork -r:test/langtools/JTreport \
+               $${JTREG_OTHERVM:--samevm} \
+               -jdk:$(builddir)/$(sdkimg) \
+               $(JTREG_OPTIONS) \
+               -exclude:debian/excludelist.langtools.jtx \
+               $(CURDIR)/$(srcdir)/langtools/test \
+           | tee test/$@.log
+
+check-jdk: stamps/build stamps/xvfb-check
+       mkdir -p test/jdk/JTwork test/jdk/JTreport
+       set -x; \
+       if test "x$${DISPLAY}" = "x"; then XVFB_RUN="$(XVFB_RUN_CMD)"; fi; \
+       if test "x$${DISPLAY}" = "x" && test "x$${XVFB_RUN}" = "x"; then \
+               echo "WARNING: DISPLAY not set and xvfb-run not found"; \
+       fi; \
+       $(if $(DISPLAY),,$(XVFB_RUN_CMD)) \
+       JT_JAVA=$(BOOTJDK_HOME) jtreg -v1 -a -ignore:quiet \
+               -w:test/jdk/JTwork -r:test/jdk/JTreport \
+               $${JTREG_OTHERVM:--samevm} \
+               -jdk:$(builddir)/$(sdkimg) \
+               $(JTREG_OPTIONS) \
+               -exclude:debian/excludelist.jdk.jtx \
+               $(CURDIR)/$(srcdir)/jdk/test \
+           | tee test/$@.log
+
+# FIXME: this might need some adjustment for other OS than Linux
+jtreg_processes = ps x -ww -o pid,ppid,args \
+       | awk '$$2 == 1 && $$3 ~ /^$(subst /,\/,/scratch)/' \
+       | $(SED) 's,$(CURDIR)/$(builddir)/$(sdkimg),<sdkimg>,g;s,$(CURDIR),<pwd>,g'
+jtreg_pids = ps x --no-headers -ww -o pid,ppid,args \
+       | awk '$$2 == 1 && $$3 ~ /^$(subst /,\/,$(CURDIR)/$(builddir)/$(sdkimg))/ {print $$1}'
+
+jtregcheck: $(TESTS_TO_RUN)
+       for i in $(TEST_SUITES); do \
+         echo "--------------- jtreg console summary for $$i ---------------"; \
+         egrep -v '^(Passed:|Directory|Re[a-z]+\ written\ to)' test/check-$$i.log; \
+       done | tee test/jtreg-summary.log
+
+       : # kill testsuite processes still hanging
+       @pids=$$($(jtreg_pids)); \
+       if [ -n "$$pids" ]; then \
+         echo "killing processes..."; \
+         $(jtreg_processes); \
+         kill -1 $$pids; \
+         sleep 2; \
+         pids=$$($(jtreg_pids)); \
+         if [ -n "$$pids" ]; then \
+           echo "try harder..."; \
+           $(jtreg_processes); \
+           kill -9 $$pids; \
+           sleep 2; \
+         fi; \
+       else \
+         echo "nothing to cleanup"; \
+       fi; \
+       pids=$$($(jtreg_pids)); \
+       if [ -n "$$pids" ]; then \
+         echo "leftover processes..."; \
+         $(jtreg_processes); \
+       fi
+
+# ----------------------------------------------------------------------------
+
+clean: debian-clean
+       dh_testdir
+       dh_testroot
+       rm -rf $(srcdir) jamvm
+       rm -rf stamps build build-* test
+       rm -rf icedtea-sound
+       rm -rf autom4te.cache
+       rm -rf bin
+       rm -f buildwatch.pid
+
+       dh_clean
+
+debian-clean:
+       dh_testdir
+       dh_testroot
+       dh_prep || dh_clean -k
+       for f in debian/*.in debian/patches/*.in; do \
+         f2=$$(echo $$f | sed 's/JB/$(basename)/;s/\.in$$//'); \
+         case "$$f2" in debian/control) continue; esac; \
+         rm -f $$f2; \
+       done
+       rm -f debian/*.install debian/*.links debian/*.debhelper.log
+
+lib_ext_dirs = common $(sort $(foreach arch,$(arch_map),$(firstword $(subst =,$(SPACE),$(arch)))))
+ifeq ($(distribution),Ubuntu)
+  lib_ext_dirs := $(filter-out arm hppa m68k mips% powerpcspe s390% sh%, $(lib_ext_dirs))
+else
+  lib_ext_dirs := $(filter-out arm hppa lpia, $(lib_ext_dirs))
+endif
+
+install: packaging-files
+       dh_testdir
+       dh_testroot
+       dh_prep || dh_clean -k
+       rm -f debian/*.install debian/*.links
+       dh_installdirs
+
+       : # install into temporary location
+       mkdir -p $(d)/$(basedir)
+       cp -a $(builddir)/$(sdkimg)/* $(d)/$(basedir)/
+# FIXME: still needed?
+#      cp -a build/$(jreimg)/man $(d)/$(basedir)/jre/
+
+ifeq ($(with_pulse),yes)
+       cp icedtea-sound/icedtea-sound.jar $(d)/$(basedir)/jre/lib/ext/.
+       cp icedtea-sound/build/native/libicedtea-sound.so \
+         $(d)/$(basedir)/jre/lib/$(archdir)/.
+endif
+
+       chmod -R u+w $(d)
+
+       : # use javaws from icedtea-netx 
+       find $(d) -name 'javaws*' | xargs -r rm -f
+
+       : # install default jvm config file
+       cp debian/jvm.cfg-default $(d)/$(basedir)/jre/lib/$(archdir)/
+
+ifeq ($(with_tzdata),yes)
+       : # use the timezone files from tzdata-java
+       rm -rf $(d)/$(basedir)/jre/lib/zi
+endif
+
+       : # compress manpages
+       find $(d)/$(basedir)/man $(d)/$(basedir)/jre/man -type f ! -type l \
+         | xargs gzip -9v -n
+
+       : # copy man pages into the jre/man directory
+       mkdir -p $(d)/$(basedir)/jre/man/man1
+       mkdir -p $(d)/$(basedir)/jre/man/ja_JP.UTF-8/man1
+       for i in $(d)/$(basedir)/jre/bin/*; do \
+         b=$$(basename $$i); \
+         cp -p $(d)/$(basedir)/man/man1/$$b.1.gz $(d)/$(basedir)/jre/man/man1/.; \
+         cp -p $(d)/$(basedir)/man/ja_JP.UTF-8/man1/$$b.1.gz $(d)/$(basedir)/jre/man/ja_JP.UTF-8/man1/.; \
+       done
+       cp -a $(d)/$(basedir)/man/ja $(d)/$(basedir)/jre/man/.
+
+       : # replace common files in jdk and jre by symlinks
+       @cd $(d)/$(basedir); \
+         for i in `find jre -type f`; do \
+           i2=$${i#jre/*}; \
+           if [ -f $$i2 ]; then \
+             if cmp -s $$i $$i2; then \
+               : ; \
+             else \
+               echo "XXX: differing files"; \
+               md5sum $$i $$i2; \
+             fi; \
+           else \
+             continue; \
+           fi; \
+           d=$$(echo ./$$i2 | sed -r 's,[^/]+/,../,g;s,/[^/]+$$,,;s,\.\.$$,,'); \
+           echo "    symlink $$i2 -> $$d$$i"; \
+           ln -sf $$d$$i $$i2; \
+         done
+
+       mkdir -p $(d)/$(etcdir)/security
+       mkdir -p $(d)/$(etcdir)/management
+       mkdir -p $(d)/$(etcdir)/images/cursors
+
+       : # rename templates (comments only) to config files,
+       : # and move to /$(etcdir)
+       for i in \
+         management/jmxremote.password \
+         management/snmp.acl; \
+       do \
+         mv $(d)/$(basedir)/jre/lib/$$i.template $(d)/$(etcdir)/$$i; \
+       done
+
+ifeq ($(with_bridge),atk)
+       cp -p debian/accessibility-atk.properties \
+               $(d)/$(basedir)/jre/lib/accessibility.properties
+else
+       cp -p debian/accessibility.properties $(d)/$(basedir)/jre/lib/
+endif
+       cp -p debian/swing.properties $(d)/$(basedir)/jre/lib/
+
+ifneq (,$(pkg_certs))
+       rm -f $(d)/$(basedir)/jre/lib/security/cacerts
+endif
+
+       : # FIXME: merge nss changes from IcedTea
+       cp debian/nss.cfg $(d)/$(basedir)/jre/lib/security/nss.cfg
+
+       : # move config files to $(etcdir) and symlink them.
+       for i in \
+         accessibility.properties \
+         calendars.properties \
+         content-types.properties \
+         images/cursors/cursors.properties \
+         logging.properties \
+         sound.properties \
+         flavormap.properties \
+         net.properties \
+         psfontj2d.properties \
+         psfont.properties.ja \
+         swing.properties \
+         tz.properties \
+         management/jmxremote.access \
+         management/management.properties \
+         security/java.policy \
+         security/java.security \
+         $$([ -f $(d)/$(basedir)/jre/lib/security/nss.cfg ] && echo security/nss.cfg) \
+         $(if $(findstring ca-cert,$(pkg_certs)),,security/cacerts) \
+         security/blacklisted.certs; \
+       do \
+         mv $(d)/$(basedir)/jre/lib/$$i $(d)/$(etcdir)/$$i; \
+       done
+       mv $(d)/$(basedir)/jre/lib/$(archdir)/jvm.cfg \
+               $(d)/$(etcdir)/
+ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
+       printf -- '-zero KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg
+else
+       printf -- '-zero ALIASED_TO -server\n' >> $(d)/$(etcdir)/jvm.cfg
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), $(jamvm_archs)))
+       printf -- '-jamvm KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),$(jamvm_defaults)))
+       grep '^[# ]' $(d)/$(etcdir)/jvm.cfg \
+               > $(d)/$(etcdir)/jvm.cfg.new
+       grep 'jamvm' $(d)/$(etcdir)/jvm.cfg \
+               >> $(d)/$(etcdir)/jvm.cfg.new
+       egrep -v '^[# ]|jamvm' $(d)/$(etcdir)/jvm.cfg \
+               >> $(d)/$(etcdir)/jvm.cfg.new
+       mv $(d)/$(etcdir)/jvm.cfg.new $(d)/$(etcdir)/jvm.cfg
+endif
+       : # FIXME: avian working with 8?
+       : # printf -- '-avian KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg
+
+ifeq (0,1)
+# FIXME: XXX
+       mv $(d)/$(basedir)/jre/lib/fontconfig.Ubuntu.properties.src \
+               $(d)/$(etcdir)/fontconfig.properties
+endif
+
+       : # remove files which we do not want to distribute
+       rm -f $(d)/$(basedir)/jre/lib/fontconfig*.properties.src
+       rm -f $(d)/$(basedir)/jre/lib/fontconfig*.bfc
+       rm -f $(d)/$(basedir)/jre/lib/$(archdir)/*/classes.jsa
+
+       : # remove empty directories
+       rmdir $(d)/$(basedir)/jre/lib/management
+       rmdir $(d)/$(basedir)/jre/lib/applet
+#      rmdir $(d)/$(basedir)/jre/lib/security
+
+       : # FIXME: fix, move and install tapset files
+       rm -rf $(d)/$(basedir)/tapset
+
+       : # TODO: why do we provide a custom font.properties.ja?
+       : # cp -p debian/font.properties.ja $(d_jbin)/$(etcdir)/.
+#      cp debian/font.properties.wgy_zenhai \
+#              $(d)/$(etcdir)/font.properties.ja
+
+
+       : # now move things to the packages. it is so ****** to create
+       : # .install files first. dh_movefiles did do the job perfectly
+
+       : # $(p_jrehl).install / $(p_jre).install
+       ( \
+         echo 'etc'; \
+         echo '$(basedir)/jre/lib/jexec'; \
+         echo '$(basedir)/jre/lib/rt.jar'; \
+         echo '$(basedir)/jre/lib/security/*_policy.jar'; \
+         echo '$(basedir)/jre/man/ja'; \
+         echo '$(basedir)/man/ja'; \
+         echo '$(basedir)/bin/java-rmi.cgi'; \
+       ) > debian/$(p_jrehl).install
+ifneq (,$(DEB_HOST_MULTIARCH))
+       ( \
+         echo '$(basedir)/jre/lib/meta-index'; \
+         echo '$(basedir)/jre/lib/ext/meta-index'; \
+       ) >> debian/$(p_jrehl).install
+endif
+       $(RM) debian/$(p_jre).install
+
+       cd $(CURDIR)/$(d); \
+       for i in $(basedir)/jre/{bin,man/man1,man/ja_JP.UTF-8/man1}/*; do \
+         case "$$i" in \
+           */policytool*) echo $$i >> ../$(p_jre).install;; \
+           *) echo $$i >> ../$(p_jrehl).install; \
+         esac; \
+       done
+
+       cd $(CURDIR)/$(d); \
+       for i in $(basedir)/{bin,man/man1,man/ja_JP.UTF-8/man1}/*; do \
+         [ -h $$i ] || continue; \
+         case "$$i" in \
+           */policytool*) echo $$i >> ../$(p_jre).install;; \
+           *) echo $$i >> ../$(p_jrehl).install; \
+         esac; \
+       done; \
+
+       cd $(CURDIR)/$(d); \
+       for i in $(basedir)/jre/lib/$(archdir)/*; do \
+         case "$$i" in \
+           */libjavagtk.so|*/libsplashscreen.so|*/libjsoundalsa.so|$(if $(with_pulse),*/libicedtea-sound.so|)*/xawt) echo $$i >> ../$(p_jre).install;; \
+           */cacao) echo $$i >> ../$(p_jrec).install;; \
+           */jamvm) echo $$i >> ../$(p_jrej).install;; \
+           */zero|*/shark) echo $$i >> ../$(p_jrez).install;; \
+           *) echo $$i >> ../$(p_jrehl).install; \
+         esac; \
+       done
+
+       : # $(p_jrehl).install
+       ( \
+         echo '$(basedir)/jre/ASSEMBLY_EXCEPTION $(commonbasedir)/jre/'; \
+         echo '$(basedir)/jre/THIRD_PARTY_README $(commonbasedir)/jre/'; \
+         cd $(d); \
+         for i in $(basedir)/jre/lib/*; do \
+           case "$$i" in \
+             */$(archdir)|*/jexec|*/rt.jar|*/security$(if $(DEB_HOST_MULTIARCH),|*/meta-index)) \
+               continue; \
+           esac; \
+           echo $$i $(commonbasedir)/jre/lib/; \
+         done; \
+       ) >> debian/$(p_jrehl).install
+
+       : # $(p_jdk).install
+       ( \
+         echo '$(basedir)/include'; \
+         echo '$(basedir)/lib'; \
+         echo '$(basedir)/LICENSE'; \
+         echo '$(basedir)/ASSEMBLY_EXCEPTION'; \
+         echo '$(basedir)/THIRD_PARTY_README'; \
+         cd $(d); \
+         for i in $(basedir)/{bin,man/man1,man/ja_JP.UTF-8/man1}/*; do \
+           [ -h $$i -o "$$i" = $(basedir)/bin/java-rmi.cgi ] && continue; \
+           echo $$i; \
+         done; \
+       ) > debian/$(p_jdk).install
+
+       : # $(p_src).install
+       ( \
+         echo '$(basedir)/src.zip $(TOP)/$(basename)/'; \
+       ) > debian/$(p_src).install
+
+       : # move demos and samples, create symlinks for $(p_demo)
+       mkdir -p $(d)/usr/share/doc/$(p_jrehl)/demo
+       for i in $(d)/$(basedir)/demo/*; do \
+         b=$$(basename $$i); \
+         case "$$i" in \
+           */jvmti) \
+             echo $(basedir)/demo/$$b usr/share/doc/$(p_jrehl)/demo/$$b >> $(d_demo).links;; \
+           *) \
+             mv $$i $(d)/usr/share/doc/$(p_jrehl)/demo/$$b; \
+             echo usr/share/doc/$(p_jrehl)/demo/$$b $(basedir)/demo/$$b >> $(d_demo).links;; \
+         esac; \
+       done
+       mv $(d)/$(basedir)/sample $(d)/usr/share/doc/$(p_jrehl)/examples
+       echo usr/share/doc/$(p_jrehl)/examples $(basedir)/sample >> $(d_demo).links
+       echo usr/share/doc/$(p_jre) usr/share/doc/$(p_demo) >> $(d_demo).links
+
+       : # $(p_demo).install
+       ( \
+         echo '$(basedir)/demo'; \
+         echo 'usr/share/doc/$(p_jrehl)/examples'; \
+         echo 'usr/share/doc/$(p_jrehl)/demo'; \
+       ) > debian/$(p_demo).install
+
+       : # $(p_dbg).install
+ifneq (,$(wildcard $(d)/$(basedir)/jre/lib/$(archdir)/*.diz))
+       ( \
+         echo '$(basedir)/jre/lib/$(archdir)/*.diz'; \
+         echo '$(basedir)/jre/lib/$(archdir)/*/*.diz'; \
+       ) > debian/$(p_dbg).install
+endif
+ifneq (,$(wildcard $(d)/$(basedir)/jre/lib/$(archdir)/*.debuginfo))
+       ( \
+         echo '$(basedir)/jre/lib/$(archdir)/*.debuginfo'; \
+         echo '$(basedir)/jre/lib/$(archdir)/*/*.debuginfo'; \
+       ) > debian/$(p_dbg).install
+endif
+
+       dh_install --sourcedir=debian/tmp --fail-missing -XLICENSE -Xrelease
+
+       find $(d_jrehl) $(d_jre) $(d_jrez) $(d_jrec) $(d_jrej) -type f \
+         \( -name '*.debuginfo' -o -name '*.diz' \) -print | xargs -r rm -f
+
+ifneq (,$(DEB_HOST_MULTIARCH))
+       rm -f $(d_jrehl)/$(commonbasedir)/jre/lib/ext/meta-index
+endif
+
+       : # give all permissions to cross-VM extension directory
+       sed -i \
+           -e '/permission java\.security\.AllPermission;/,/};/c\' \
+           -e '        permission java.security.AllPermission;\' \
+           -e '};\' \
+           -e '\' \
+           $(if $(DEB_HOST_MULTIARCH),$(foreach i, $(lib_ext_dirs), \
+           -e 'grant codeBase "file:/$(TOP)/java-$(shortver)-$(origin)-$(i)/jre/lib/ext/*" {\' \
+           -e '        permission java.security.AllPermission;\' \
+           -e '};\')) \
+           -e '\' \
+           -e '// Comment this out if you want to give all permissions to the\' \
+           -e '// Debian Java repository too:\' \
+           -e '//grant codeBase "file:/usr/share/java/repository/-" {\' \
+           -e '//        permission java.security.AllPermission;\' \
+           -e '//};\' \
+           -e '' \
+           $(d_jrehl)/$(security)/java.policy
+# 'make Emacs Makefile mode happy
+
+       dh_installdirs -p$(p_jrehl) \
+               usr/share/doc/$(p_jrehl) \
+               usr/share/binfmts
+
+       dh_installdirs -p$(p_jre) \
+               usr/share/applications \
+               usr/share/application-registry \
+               usr/share/mime-info \
+               usr/share/pixmaps
+
+       : # add GNOME stuff
+       cp -p debian/$(basename)-policytool.desktop \
+             $(d_jre)/usr/share/applications/
+       cp -p debian/$(basename)-java.desktop \
+             $(d_jre)/usr/share/applications/
+
+       for i in archive; do \
+         cp debian/$(basename)-$$i.applications \
+           $(d_jre)/usr/share/application-registry/; \
+         cp debian/$(basename)-$$i.keys $(d_jre)/usr/share/mime-info/; \
+         cp debian/$(basename)-$$i.mime $(d_jre)/usr/share/mime-info/; \
+       done
+
+       cp -p debian/sun_java.xpm \
+               $(d_jre)/usr/share/pixmaps/$(basename).xpm
+
+       mkdir -p $(d_demo)/usr/share/pixmaps
+       cp -p debian/sun_java_app.xpm \
+               $(d_demo)/usr/share/pixmaps/$(basename)-app.xpm
+
+ifeq (0,1)
+# FIXME: not available in 8
+       : # install icons
+       for i in 16 24 32 48; do \
+         install -D -m 644 -p jdk/src/solaris/classes/sun/awt/X11/java-icon$${i}.png \
+           $(d_jre)/usr/share/icons/hicolor/$${i}x$${i}/apps/$(basename).png; \
+       done
+endif
+
+       : # create docdir symlinks for $(p_jrehl)
+       ( \
+         echo usr/share/doc/$(p_jrehl) $(basedir)/docs; \
+       ) > $(d_jrehl).links
+ifneq (,$(DEB_HOST_MULTIARCH))
+       echo '/$(basedir) /usr/lib/jvm/$(jdirname)' >> $(d_jrehl).links
+endif
+
+       : # create docdir symlinks for $(p_jre)
+       ( \
+         echo usr/share/doc/$(p_jrehl) usr/share/doc/$(p_jre); \
+       ) > $(d_jre).links
+
+ifneq (,$(filter shark zero, $(alternate_vms)))
+       : # create docdir symlinks for $(p_jrez)
+       ( \
+         echo usr/share/doc/$(p_jrehl) usr/share/doc/$(p_jrez); \
+       ) > $(d_jrez).links
+endif
+
+       : # create docdir symlinks for $(p_src)
+       ( \
+         echo usr/share/doc/$(p_jre) usr/share/doc/$(p_src); \
+       ) > $(d_src).links
+
+       : # create docdir symlinks for $(p_jdk)
+       ( \
+         echo usr/share/doc/$(p_jre) usr/share/doc/$(p_jdk); \
+       ) > $(d_jdk).links
+# doesn't work, no package dependency
+ifneq (,$(DEB_HOST_MULTIARCH))
+         echo '$(TOP)/$(basename)/src.zip $(basedir)/src.zip' >> $(d_jdk).links
+endif
+
+       : # create docdir symlinks for $(p_dbg)
+       ( \
+         echo usr/share/doc/$(p_jrehl) usr/share/doc/$(p_dbg); \
+       ) > $(d_dbg).links
+
+ifeq ($(with_bridge),atk)
+       : # create links for the atk wrapper
+       echo "usr/share/java/java-atk-wrapper.jar $(basedir)/jre/lib/ext/java-atk-wrapper.jar" \
+           >> $(d_jre).links
+       echo "usr/lib$(multiarch_dir)/jni/libatk-wrapper.so $(basedir)/jre/lib/ext/libatk-wrapper.so" \
+           >> $(d_jre).links
+else ifeq ($(with_bridge),yes)
+       : # create links for the gnome accessibility bridge
+       echo "usr/share/java/gnome-java-bridge.jar $(basedir)/jre/lib/ext/gnome-java-bridge.jar" \
+           >> $(d_jre).links
+  ifeq ($(with_jni_bridge),yes)
+         echo "usr/lib$(multiarch_dir)/jni/libjava-access-bridge-jni.so $(basedir)/jre/lib/ext/libjava-access-bridge-jni.so" \
+           >> $(d_jre).links
+  endif
+endif
+
+ifeq ($(with_tzdata),yes)
+       echo usr/share/javazi $(basedir)/jre/lib/zi \
+         >> $(d_jrehl).links
+endif
+
+       : # create links for the config files
+       find $(d_jrehl)/$(etcdir) -type f ! -name jvm.cfg \
+           -printf "$(etcdir)/%P $(basedir)/jre/lib/%P\n" >> $(d_jrehl).links
+ifneq (,$(DEB_HOST_MULTIARCH))
+       mv $(d_jrehl)/$(etcdir)/jvm.cfg \
+         $(d_jrehl)/$(etcdir)/jvm-$(DEB_HOST_ARCH).cfg
+       ( \
+         echo "$(etcdir)/jvm-$(DEB_HOST_ARCH).cfg $(basedir)/jre/lib/$(archdir)/jvm.cfg"; \
+       ) >> $(d_jrehl).links
+else
+       ( \
+         echo "$(etcdir)/jvm.cfg $(basedir)/jre/lib/$(archdir)/jvm.cfg"; \
+       ) >> $(d_jrehl).links
+endif
+ifneq (,$(pkg_certs))
+       echo "etc/ssl/certs/java/cacerts $(basedir)/jre/lib/security/cacerts" \
+           >> $(d_jrehl).links
+endif
+
+       @echo JRE_HL_TOOLS: $(jre_hl_tools_alt) jexec
+       @echo JRE_TOOLS: $(jre_tools_alt)
+       @echo JDK_TOOLS: $(jdk_tools_alt)
+       ( \
+         echo 'name=$(jdirname)'; \
+         echo 'alias=$(jdiralias)'; \
+         echo 'priority=$(priority)'; \
+         echo 'section=main'; \
+         echo ''; \
+         for i in $(jre_hl_tools_alt); do \
+           echo "hl $$i /$(basedir)/jre/bin/$$i"; \
+         done; \
+         echo "hl jexec /$(basedir)/jre/lib/jexec"; \
+         for i in $(jre_tools_alt); do \
+           echo "jre $$i /$(basedir)/jre/bin/$$i"; \
+         done; \
+         for i in $(jdk_tools_alt); do \
+           echo "jdk $$i /$(basedir)/bin/$$i"; \
+         done; \
+         for d in $(browser_plugin_dirs); do \
+           echo "plugin $$d-javaplugin.so /$(basedir)/jre/lib/$(archdir)/$(plugin_name)"; \
+         done; \
+       ) > $(d_jrehl)/$(TOP)/.$(jdiralias).jinfo
+
+       ( \
+         echo 'package $(basename)'; \
+         echo 'interpreter /usr/bin/jexec'; \
+         echo 'magic PK\x03\x04'; \
+       ) > $(d_jrehl)/$(basedir)/jre/lib/jar.binfmt
+
+       : # another jvm symlink
+       ln -sf $(jdirname) $(d_jrehl)/usr/lib/jvm/$(jdiralias)
+
+ifeq ($(with_systemtap),yes FIXME)
+       : # systemtap support
+       mkdir -p $(d_jrehl)/usr/share/systemtap/tapset
+       cp -p build/tapset/hotspot.stp $(d_jrehl)/usr/share/systemtap/tapset/
+endif
+
+ifeq (0,1)
+       : # Install stuff to generate font config and timezone files.
+       mkdir -p $(d_jrehl)/$(commonbasedir)/jre/lib
+# FIXME: not built in 8
+       cp -p build/openjdk.build/btjars/compilefontconfig.jar \
+               $(d_jrehl)/$(commonbasedir)/jre/lib/
+       cp -p build/openjdk.build/btjars/javazic.jar \
+               $(d_jrehl)/$(commonbasedir)/jre/lib/
+endif
+
+       : # install lintian overrides
+       for FILE in debian/*.overrides; do \
+         PKG=`basename $$FILE .overrides`; \
+         install -D -m644 $$FILE debian/$$PKG/usr/share/lintian/overrides/$$PKG; \
+       done
+
+nodocs = $(if $(findstring nodocs, $(DEB_BUILD_OPTIONS)),-N$(p_doc))
+nojrec = $(if $(filter cacao, $(alternate_vms)),,-N$(p_jrec))
+nojrej = $(if $(filter jamvm, $(alternate_vms)),,-N$(p_jrej))
+nojrez = $(if $(filter shark zero, $(alternate_vms)),,-N$(p_jrez))
+
+# Build architecture independant packages
+binary-indep: build stamps/build-docs
+       dh_testdir
+       dh_testroot
+ifeq ($(with_docs),yes)
+       dh_installchangelogs -p$(p_doc)
+       dh_installdocs -p$(p_doc)
+       mkdir -p $(d_doc)/usr/share/doc/$(p_jrehl)
+       for i in $(builddir)/docs/*; do \
+         [ -e $$i ] || continue; \
+         b=$$(basename $$i); \
+         cp -a $$i $(d_doc)/usr/share/doc/$(p_jrehl)/; \
+         ln -sf ../$(p_jrehl)/$$b $(d_doc)/usr/share/doc/$(p_doc)/$$b; \
+       done
+endif
+# FIXME: desktop and menu files not ready for multiarch. #658321
+ifeq (,$(DEB_HOST_MULTIARCH))
+       dh_installmenu -i $(nodocs)
+endif
+       -dh_icons -i $(nodocs) || dh_iconcache -i $(nodocs)
+#      dh_installdebconf -i $(nodocs)
+       dh_link -i $(nodocs)
+       dh_compress -i $(nodocs) -Xexamples -Xdemo -Xpackage-list
+       dh_fixperms -i $(nodocs)
+       dh_installdeb -i $(nodocs)
+       dh_gencontrol -i $(nodocs) -- $(control_vars)
+       dh_md5sums -i $(nodocs)
+       dh_builddeb -i $(nodocs) $(bd_options)
+
+absarchdir = $(CURDIR)/$(d_jrehl)/$(basedir)/jre/lib/$(archdir)
+shlibdeps_ld_path =$(absarchdir):$(absarchdir)/client:$(absarchdir)/server:$(absarchdir)/native_threads$(if $(xulrunner_depends),:$(shell pkg-config --libs-only-L libxul | sed  's/^-L//;s/-devel//;s,/lib *$$,,'))
+
+# pass vm name as first argument
+define install_test_results
+       mkdir -p $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)
+#      -cp mauve-$(1)/mauve_output-$(1) \
+#        $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/mauve_output-$(1).log
+       -cp jtreg_output-$(1) \
+         $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/jtreg_output-$(1).log
+       -cp test/jtreg-summary-$(1).log test/check-*-$(1).log \
+         $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/
+       -cp test/failed_tests-$(1).tar.gz \
+         $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/failed_tests-$(1).tar.gz
+endef
+
+# Build architecture dependant packages
+binary-arch: build install
+       dh_testdir
+       dh_testroot
+       dh_installchangelogs -p$(p_jrehl)
+       dh_installdocs -p$(p_jrehl) \
+               debian/JAVA_HOME \
+               debian/README.alternatives \
+               debian/README.Debian
+ifeq (0,1)
+# FIXME: IcedTea specific bits
+       for i in AUTHORS NEWS README; do \
+         cp -p $$i $(d_jrehl)/usr/share/doc/$(p_jrehl)/$$i.IcedTea; \
+       done
+endif
+       $(call install_test_results,$(default_vm))
+
+ifneq (,$(filter cacao, $(alternate_vms)))
+       dh_installchangelogs -p$(p_jrec)
+       dh_installdocs -p$(p_jrec)
+       $(call install_test_results,cacao)
+endif
+ifneq (,$(filter jamvm, $(alternate_vms)))
+       dh_installchangelogs -p$(p_jrej)
+       dh_installdocs -p$(p_jrej)
+       $(call install_test_results,jamvm)
+endif
+ifneq (,$(filter zero, $(alternate_vms)))
+       $(call install_test_results,zero)
+endif
+# FIXME: desktop and menu files not ready for multiarch. #658321
+ifeq (,$(DEB_HOST_MULTIARCH))
+       dh_installmenu -s $(nodemo) $(nojrec) $(nojrej) $(nojrez)
+endif
+       -dh_icons -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) \
+               || dh_iconcache -s $(nodemo) $(nojrec) $(nojrej) $(nojrez)
+#      dh_installdebconf -s $(nodemo) $(nojrec) $(nojrej) $(nojrez)
+       dh_link -s $(nodemo) $(nojrec) $(nojrej) $(nojrez)
+       $(if $(filter $(dh_version), 5 6 7 8),NADA=,DH_COMPAT=9) dh_strip -s \
+               $(nodemo) $(nojrec) $(nojrej) $(nojrez) \
+               -Xlibjvm.so -X.debuginfo --dbg-package=$(p_dbg)
+
+ifeq (,$(findstring nostrip, $(DEB_BUILD_OPTIONS)))
+       set -ex; \
+       for i in {$(d_jrehl),$(d_jre),$(d_jrec),$(d_jrez)}/$(basedir)/jre/lib/$(archdir)/*/libjvm.so; do \
+         [ -f $$i ] || continue; \
+         b_id=$$(LC_ALL=C readelf -n $$i | sed -n 's/ *Build ID: *\([0-9a-f][0-9a-f]*\)/\1/p'); \
+         if [ -z "$$b_id" ] || [ "$(dh_version)" -lt 9 ]; then \
+           id=$$(echo $$i | sed -r 's,debian/[^/]+,$(d_dbg)/usr/lib/debug,'); \
+           echo strip $$i; \
+           mkdir -p $$(dirname $$id); \
+           objcopy --only-keep-debug $$i $$id; \
+           chmod 644 $$id; \
+           strip --remove-section=.comment --remove-section=.note \
+             --strip-debug $$i; \
+           objcopy --add-gnu-debuglink $$id $$i; \
+         else \
+           d=$(d_dbg)/usr/lib/debug/.build-id/$$(expr substr $$b_id 1 2); \
+           mkdir -p $$d; \
+           objcopy --only-keep-debug --compress-debug-sections \
+             $$i $$d/$$b_id.debug; \
+           chmod 644 $$d/$$b_id.debug; \
+           strip --remove-section=.comment --remove-section=.note \
+             $$i; \
+           objcopy --add-gnu-debuglink \
+             $$d/$$b_id.debug $$i; \
+         fi; \
+       done
+endif
+
+       dh_compress -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) -Xexamples -Xdemo -Xpackage-list
+       dh_fixperms -s $(nodemo) $(nojrec) $(nojrej) $(nojrez)
+       dh_makeshlibs -p$(p_jrehl) -p$(p_jre)
+       dh_shlibdeps -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) -L $(p_jrehl) \
+               -l$(shlibdeps_ld_path) \
+               --
+       dh_installdeb -s $(nodemo) $(nojrec) $(nojrej) $(nojrez)
+       dh_gencontrol -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) \
+               -- $(control_vars)
+       dh_md5sums -s $(nodemo) $(nojrec) $(nojrej) $(nojrez)
+       dh_builddeb -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) #$(bd_options)
+
+
+hg_project             = jdk8u
+hg_tag                 = jdk8u40-b04
+hg_url                 = http://hg.openjdk.java.net/jdk8u/$(hg_project)
+hg_project_aarch64     = jdk8
+hg_tag_aarch64         = tip
+hg_url_aarch64         = http://hg.openjdk.java.net/aarch64-port/$(hg_project_aarch64)
+origdir = ../openjdk-8-$(subst jdk,,$(hg_tag)).orig
+get-orig:
+       mkdir $(origdir)
+       wget -O $(origdir)/root.tar.bz2 $(hg_url)/archive/$(hg_tag).tar.bz2
+       for repo in corba jaxp jaxws langtools hotspot jdk nashorn; do \
+         wget -O $(origdir)/$$repo.tar.bz2 \
+           $(hg_url)/$$repo/archive/$(hg_tag).tar.bz2; \
+       done
+       wget -O $(origdir)/hotspot-aarch64.tar.bz2 \
+         $(hg_url_aarch64)/hotspot/archive/$(hg_tag_aarch64).tar.bz2
+
+       wget -O $(origdir)/icedtea-sound.tar.bz2 \
+         http://icedtea.classpath.org/hg/icedtea-sound/archive/tip.tar.bz2
+
+       : # remove JSON license from THIRD_PARTY_README; no files shipped
+       set -ex; \
+       for repo in root corba jaxp jaxws langtools hotspot jdk nashorn hotspot-aarch64; do \
+         d=$$(tar tf $(origdir)/$$repo.tar.bz2 | head -1 | sed 's,/.*,,'); \
+         tar xf $(origdir)/$$repo.tar.bz2; \
+         find $$d -maxdepth 2 -name THIRD_PARTY_README; \
+         for f in $$(find $$d -maxdepth 2 -name THIRD_PARTY_README); do \
+           awk '/^%% This notice is provided with respect to JSON/ { skip=1 } skip == 0 {print} /^----------/ { skip = 0} ' $$f > $$f.new; \
+           diff -u $$f $$f.new || true; \
+           mv $$f.new $$f; \
+         done; \
+         case $$repo in jdk) \
+           rm -v -rf $$d/src/share/native/java/util/zip/zlib-*; \
+           find $$d/src/share/native/sun/awt/image/jpeg \
+             ! -name imageioJPEG.c ! -name jpegdecoder.c ! -name jinclude.h \
+             -type f -print -delete; \
+           rm -v -rf $$d/src/share/native/sun/awt/giflib; \
+           rm -v -rf $$d/src/share/native/sun/awt/libpng; \
+           rm -v -f $$d/src/share/native/sun/java2d/cmm/lcms/cms*.c; \
+           rm -v -f $$d/src/share/native/sun/java2d/cmm/lcms/lcms2*.h; \
+           rm -v -rf $$d/src/solaris/native/sun/security/smartcardio/MUSCLE; \
+         esac; \
+         tar cfJ $(origdir)/$$repo.tar.xz $$d; \
+         rm -rf $$d; \
+         rm -f $(origdir)/$$repo.tar.bz2; \
+       done
+
+binary: binary-arch binary-indep
+.PHONY: build build-arch build-indep clean binary-indep binary-arch binary install packaging-files
diff --git a/debian/sharedmimeinfo b/debian/sharedmimeinfo
new file mode 100644 (file)
index 0000000..78604fd
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+       <mime-type type="application/java-archive">
+               <comment>Java Archive</comment>
+               <glob pattern="*.jar"/>
+       </mime-type>
+
+       <mime-type type="application/x-java-jnlp-file">
+               <comment>Java Web Start application</comment>
+               <glob pattern="*.jnlp"/>
+       </mime-type>
+</mime-info>
diff --git a/debian/source/format b/debian/source/format
new file mode 100644 (file)
index 0000000..d3827e7
--- /dev/null
@@ -0,0 +1 @@
+1.0
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644 (file)
index 0000000..485c6e1
--- /dev/null
@@ -0,0 +1 @@
+openjdk-8 source: quilt-build-dep-but-no-series-file
diff --git a/debian/sun_java.xpm b/debian/sun_java.xpm
new file mode 100644 (file)
index 0000000..00db1b6
--- /dev/null
@@ -0,0 +1,194 @@
+/* XPM */
+static char *sun_java[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 156 2",
+"   c #34479E",
+".  c #4152A3",
+"X  c #4153A2",
+"o  c #4153A3",
+"O  c #4D5EA8",
+"+  c #4D5EA9",
+"@  c #4E5EA9",
+"#  c #5A69AD",
+"$  c #5A69AE",
+"%  c #5A69AF",
+"&  c #5A6AAD",
+"*  c #6675B3",
+"=  c #6775B2",
+"-  c #6775B3",
+";  c #6776B3",
+":  c #6775B5",
+">  c #6776B4",
+",  c #7480B7",
+"<  c #7380B8",
+"1  c #7381B8",
+"2  c #7380BA",
+"3  c #7481B8",
+"4  c #D12124",
+"5  c #D42F31",
+"6  c #D73D3E",
+"7  c #D94A4A",
+"8  c #D94A4B",
+"9  c #DA4A4A",
+"0  c #DA4B4B",
+"q  c #DC5957",
+"w  c #DC5858",
+"e  c #DD5859",
+"r  c #DD5959",
+"t  c #DF6664",
+"y  c #E06664",
+"u  c #E27471",
+"i  c #E27570",
+"p  c #E27472",
+"a  c #E37472",
+"s  c #E27574",
+"d  c #E37474",
+"f  c #E5827E",
+"g  c #E5837F",
+"h  c #818BBD",
+"j  c #818CBC",
+"k  c #808CBE",
+"l  c #818DC0",
+"z  c #8D97C2",
+"x  c #8D97C3",
+"c  c #8D97C5",
+"v  c #8E98C5",
+"b  c #99A2C7",
+"n  c #99A3C7",
+"m  c #99A2C8",
+"M  c #99A3C8",
+"N  c #99A2CA",
+"B  c #99A2CB",
+"V  c #A6AECD",
+"C  c #A5AED2",
+"Z  c #A6AED0",
+"A  c #B3B9D3",
+"S  c #B2B9D4",
+"D  c #B3B9D5",
+"F  c #B2B9D6",
+"G  c #B3BAD5",
+"H  c #BFC4D6",
+"J  c #BFC5D7",
+"K  c #BFC5D8",
+"L  c #BFC5D9",
+"P  c #BFC5DA",
+"I  c #BFC5DB",
+"U  c #BFC5DC",
+"Y  c #BFC5DD",
+"T  c #E58381",
+"R  c #E68380",
+"E  c #E88F89",
+"W  c #E88F8B",
+"Q  c #E8908A",
+"!  c #EB9D99",
+"~  c #EB9D9A",
+"^  c #EB9D9D",
+"/  c #EDABA2",
+"(  c #EEABA6",
+")  c #EDACA6",
+"_  c #F0B9B1",
+"`  c #F1B9B1",
+"'  c #F0B9B6",
+"]  c #F3C7BD",
+"[  c #CCD0DA",
+"{  c #CCD1DA",
+"}  c #CDD0DA",
+"|  c #CCD0DC",
+" . c #CCD0DD",
+".. c #CCD1DD",
+"X. c #CCD0DE",
+"o. c #CCD1DE",
+"O. c #CCD1DF",
+"+. c #D8DBDF",
+"@. c #CCD0E0",
+"#. c #D8DCE1",
+"$. c #D9DCE1",
+"%. c #D9DCE3",
+"&. c #D9DCE4",
+"*. c #D9DCE5",
+"=. c #D9DCE6",
+"-. c #D9DCE7",
+";. c #D9DCE8",
+":. c #F6D5CB",
+">. c #F6D5CD",
+",. c #F6D5D3",
+"<. c #F9E3D7",
+"1. c #F9E3DA",
+"2. c #F9E3DB",
+"3. c #E6E7E7",
+"4. c #E5E7E9",
+"5. c #E5E7EC",
+"6. c #E5E8E8",
+"7. c #E6E8E9",
+"8. c #E6E8EA",
+"9. c #E6E8EB",
+"0. c #E5E8EC",
+"q. c #E6E8EC",
+"w. c #F9E3E1",
+"e. c #F2F3EC",
+"r. c #FCF0E1",
+"t. c #FCF0E3",
+"y. c #FCF1E5",
+"u. c #FCF0E7",
+"i. c #FCF1E6",
+"p. c #FCF1E7",
+"a. c #FCF1E8",
+"s. c #FFFEED",
+"d. c #FFFEEE",
+"f. c #FFFEEF",
+"g. c #F2F3F0",
+"h. c #F2F3F1",
+"j. c #F2F3F2",
+"k. c #F2F3F4",
+"l. c #FFFEF0",
+"z. c #FFFEF1",
+"x. c #FFFEF2",
+"c. c #FFFEF3",
+"v. c #FFFFF3",
+"b. c #FFFFF4",
+"n. c #FFFFF5",
+"m. c #FFFFF6",
+"M. c #FFFFF7",
+"N. c #FFFFF8",
+"B. c #FFFFF9",
+"V. c #FFFFFA",
+"C. c #FFFFFB",
+"Z. c #FFFFFC",
+"A. c #FFFFFD",
+"S. c #FFFFFE",
+"D. c gray100",
+"F. c None",
+/* pixels */
+"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.w.~ F.F.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.r F.F.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.' q F.F.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.M.q u F.F.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.F.F.F.M.M.! 4 1.F.F.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.F.F.M.M.f 4 E M.M.F.w.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.F.M.i.t 4 i x.1.g u ,.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.M.>.7 4 f r.f 5 ! C.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.1.5 4 / r.7 5 >.M.F.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.M.q 4 E d.i 4 >.M.F.F.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.M.4 5 d.d.4 6 x.x.F.F.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.7 7 d.d.4 4 :.M.F.F.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.M./ 4 <.x.q 4 7 i.F.F.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.M.u t x.] 4 4 ) M.F.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.F.u.7 _ x.E 4 ! M.M.F.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.h.@.4.M.i.u i._ 5 i.M.F.-.N : c @.M.F.F.F.F.F.",
+"F.F.F.F.F.F.k.B O h P x.x.M.x.i.a :.x.M.9.L @.L O   c M.F.F.F.F.",
+"F.F.F.F.F.F.>   X c n b n n n n h = & X v M.M.M.8.    M.F.F.F.F.",
+"F.F.F.F.F.F.F.+...N n n n N N n J ..4.M.M.M.x.M.M.    M.F.F.F.F.",
+"F.F.F.F.F.F.F.M.+.O ..x.d.x.d.x.x.3.L 8.M.M.M.x. .  X M.F.F.F.F.",
+"F.F.F.F.F.F.F.M.F     X = = = =       O 8.M.M.h.&   S M.F.F.F.F.",
+"F.F.F.F.F.F.F.M.M...z = = = = = j V %.x.F.M.9.%   S M.F.F.F.F.F.",
+"F.F.F.F.F.F.F.M.M.4.n d.d.d.d.x.d.x.M.M.M.S X l 5.F.M.F.F.F.F.F.",
+"F.F.F.F.F.F.M.M.x.=   O = = = = o   = -.-.S h.M.F.M.F.F.F.F.F.F.",
+"F.F.F.F.F.M.-.{ { %.,             , A x.M.M.M.M.M.F.F.F.F.F.F.F.",
+"F.F.F.F.F O , J e.x.d.d.{ { { +.x.x.x.M.M.M.M.M.=.Y F.F.F.F.F.F.",
+"F.F.F.F.    O z H %.d.x.x.d.d.d.d.x.x.x.x...K N O C C.F.F.F.F.F.",
+"F.F.F.F.N O             # = = = = = O         O L C.F.F.F.F.F.F.",
+"F.F.F.F.M.M.%.V > &                   O = N =.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.M.M.M.M.x.x.M.M.M.M.M.M.M.M.M.F.F.F.F.F.F.F.F.F.F.",
+"F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F."
+};
diff --git a/debian/sun_java_app.xpm b/debian/sun_java_app.xpm
new file mode 100644 (file)
index 0000000..7a0f941
--- /dev/null
@@ -0,0 +1,199 @@
+/* XPM */
+static char * dukejre_xpm[] = {
+"32 32 164 2",
+"      c None",
+".     c #000000",
+"+     c #2D2D2D",
+"@     c #363636",
+"#     c #313131",
+"$     c #3E3E3E",
+"%     c #3D3D3D",
+"&     c #2B2B2B",
+"*     c #444444",
+"=     c #494949",
+"-     c #373737",
+";     c #1C1C1C",
+">     c #545454",
+",     c #434343",
+"'     c #272727",
+")     c #0B0B0B",
+"!     c #414141",
+"~     c #5C5C5C",
+"{     c #4F4F4F",
+"]     c #141414",
+"^     c #3A3A3A",
+"/     c #585858",
+"(     c #403A3A",
+"_     c #32201F",
+":     c #090202",
+"<     c #4F4E4E",
+"[     c #833D3E",
+"}     c #BE3432",
+"|     c #D63736",
+"1     c #79201F",
+"2     c #040101",
+"3     c #251313",
+"4     c #212121",
+"5     c #9A5857",
+"6     c #EBB9B9",
+"7     c #E03A38",
+"8     c #CA3430",
+"9     c #862221",
+"0     c #251211",
+"a     c #774C35",
+"b     c #CC5213",
+"c     c #A25151",
+"d     c #B23D3C",
+"e     c #AC2B29",
+"f     c #8F2422",
+"g     c #691A19",
+"h     c #321D1E",
+"i     c #7E3D20",
+"j     c #D55A0D",
+"k     c #8E3F10",
+"l     c #250F0F",
+"m     c #5D1615",
+"n     c #631817",
+"o     c #661918",
+"p     c #501313",
+"q     c #200909",
+"r     c #3D3A39",
+"s     c #6D341B",
+"t     c #AE4F14",
+"u     c #CC5515",
+"v     c #44403F",
+"w     c #381414",
+"x     c #310C0C",
+"y     c #220908",
+"z     c #1F0B0B",
+"A     c #413939",
+"B     c #525252",
+"C     c #9B6343",
+"D     c #D96319",
+"E     c #D3A88C",
+"F     c #D7D7D7",
+"G     c #868383",
+"H     c #797777",
+"I     c #898989",
+"J     c #A3A3A3",
+"K     c #DBDBDB",
+"L     c #E27626",
+"M     c #DE6F21",
+"N     c #E9E8E7",
+"O     c #EDEDED",
+"P     c #F8F8F8",
+"Q     c #FFFFFF",
+"R     c #EC7A20",
+"S     c #E27728",
+"T     c #ED7C21",
+"U     c #E5E1DE",
+"V     c #EEEEEE",
+"W     c #F6F6F6",
+"X     c #FDFDFD",
+"Y     c #B76D3E",
+"Z     c #E5711D",
+"`     c #F0851E",
+" .    c #ED7D24",
+"..    c #F18B1D",
+"+.    c #C75810",
+"@.    c #CC5616",
+"#.    c #E36F1D",
+"$.    c #F2911A",
+"%.    c #FBFBFB",
+"&.    c #F9F6F2",
+"*.    c #F9AA14",
+"=.    c #F08A1D",
+"-.    c #D35E13",
+";.    c #E16D1C",
+">.    c #F49B18",
+",.    c #B9B9B9",
+"'.    c #FAFAFA",
+").    c #F49818",
+"!.    c #E3701D",
+"~.    c #A1480F",
+"{.    c #E06B1C",
+"].    c #FCFCFC",
+"^.    c #E26D1C",
+"/.    c #0F0F0F",
+"(.    c #DE691B",
+"_.    c #F6A016",
+":.    c #E97E1C",
+"<.    c #F7A117",
+"[.    c #EB7A20",
+"}.    c #E4701D",
+"|.    c #837B77",
+"1.    c #A0938A",
+"2.    c #717171",
+"3.    c #959595",
+"4.    c #E1A27A",
+"5.    c #DB844B",
+"6.    c #D6671F",
+"7.    c #D56318",
+"8.    c #D6671B",
+"9.    c #DB6616",
+"0.    c #DE6614",
+"a.    c #D96B1C",
+"b.    c #D66A21",
+"c.    c #D7996D",
+"d.    c #C0BFBF",
+"e.    c #393939",
+"f.    c #686868",
+"g.    c #8F8F8F",
+"h.    c #D3D3D3",
+"i.    c #D1D1D1",
+"j.    c #CFCFCF",
+"k.    c #DCDCDC",
+"l.    c #D8D8D8",
+"m.    c #C0C0C0",
+"n.    c #C3C3C3",
+"o.    c #333333",
+"p.    c #696969",
+"q.    c #606060",
+"r.    c #E6E6E6",
+"s.    c #A0A0A0",
+"t.    c #8A8A8A",
+"u.    c #5F5F5F",
+"v.    c #8C8C8C",
+"w.    c #B6B6B6",
+"x.    c #BDBDBD",
+"y.    c #262626",
+"z.    c #7C7C7C",
+"A.    c #C2C2C2",
+"B.    c #C1C1C1",
+"C.    c #B5B5B5",
+"D.    c #6E6E6E",
+"E.    c #868686",
+"F.    c #ABABAB",
+"G.    c #292929",
+"                                                                ",
+"                                  . .                           ",
+"                                  . .   . .                     ",
+"                              .     .   . .                     ",
+"                    +         . .   . . . .                     ",
+"                    @ #       . . . . . . .                     ",
+"                    $ % &       . . . . . .                     ",
+"                    * = - ;       . . . . .                     ",
+"                    * > , ' ) . . . . . .                       ",
+"                    ! ~ { # ] .     . . .                       ",
+"                    ^ / / ( _ : .     . .                       ",
+"                    # < [ } | 1 2     .                         ",
+"                  3 4 5 6 7 8 9 0 a b .                         ",
+"                  3 3 c d e f g h i j .                         ",
+"                  k l m n o p q r s j .                         ",
+"                t u v w x y z A B C j .                         ",
+"              $ . D E F G H I J K j L .                         ",
+"              $ . M j N O P Q Q Q j R j                         ",
+"            $ $ . S T j U V W X j T T j Y                       ",
+"            $ . . Z ` T j j j j j  ...T j +.                    ",
+"            . . @.#.$.%.%.%.%.%.%.&.*.=.j -.                    ",
+"            . . @.;.>.%.%.,.. '.%.%.*.).!.j ~.                  ",
+"            . . @.{.*.%.%.%.. ].].%.*.*.^.j j                   ",
+"            /.. j (.*.%.'.%.. '.%.%.*._.^.j j                   ",
+"            . . . j :.%.'.%.%.'.'.%.<.[.}.j |.                  ",
+"          . . # . . j j j T T T T T T T j 1.2.                  ",
+"            . ^ 3.O 4.5.6.7.8.9.0.a.b.c.d.e.f.                  ",
+"            ] . g.O h.i.j.j.h.h.h.k.l.m.n.o.p.                  ",
+"              q.O O r.s.t.$ $ $ u.v.3.w.x.y.u.                  ",
+"              z.A.B.C.D.$ $     $ $ u.E.F.& u.                  ",
+"              # F.F.D.$ $         $ $ ' G.e.u.                  ",
+"                $ $ $ $               $ $ $                     "};
diff --git a/debian/swing.properties b/debian/swing.properties
new file mode 100644 (file)
index 0000000..0f55df0
--- /dev/null
@@ -0,0 +1,2 @@
+# uncomment to set the default look and feel to GTK
+#swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
diff --git a/debian/update-hgrev.sh b/debian/update-hgrev.sh
new file mode 100644 (file)
index 0000000..7bd056e
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+tarballs=(corba.tar.gz hotspot.tar.gz jaxp.tar.gz jaxws.tar.gz jdk-dfsg.tar.gz langtools-dfsg.tar.gz openjdk.tar.gz)
+varhgchange=(CORBA_CHANGESET HOTSPOT_CHANGESET JAXP_CHANGESET JAXWS_CHANGESET JDK_CHANGESET LANGTOOLS_CHANGESET OPENJDK_CHANGESET)
+tarballdir=.
+
+makefile1=Makefile.am
+
+function update_var() {
+    varname=$1
+    newsum=$2
+
+    echo "$varname: ${newsum}"
+    if [ -f $makefile1 ]; then
+        sed -i "s/\(^$varname\)\(..*$\)/\1 = ${newsum}/" $makefile1
+    fi
+}
+
+function actual_tar_rev() {
+    tar=$1
+
+    revision=$(tar tf $tar | head -1 | sed 's,/.*,,' | sed 's,.*-,,')
+}
+
+# For all modules
+for (( i = 0 ; i < ${#varhgchange[@]} ; i++ )); do
+   actual_tar_rev $tarballdir/${tarballs[$i]}
+   update_var ${varhgchange[$i]} $revision
+done
\ No newline at end of file
diff --git a/debian/update-shasum.sh b/debian/update-shasum.sh
new file mode 100644 (file)
index 0000000..e1ba2fc
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+tarballs=(jdk-dfsg.tar.gz langtools-dfsg.tar.gz)
+varshasum=(JDK_SHA256SUM LANGTOOLS_SHA256SUM)
+tarballdir=.
+
+makefile1=Makefile.am
+
+function update_var() {
+    varname=$1
+    newsum=$2
+
+    echo "$varname: ${newsum}"
+    if [ -f $makefile1 ]; then
+        sed -i "s/\(^$varname\)\(..*$\)/\1 = ${newsum}/" $makefile1
+    fi
+}
+
+# For all modules
+for (( i = 0 ; i < ${#tarballs[@]} ; i++ )); do
+   newsum=$(sha256sum $tarballdir/${tarballs[$i]} | cut -f 1 -d ' ')
+   update_var ${varshasum[$i]} $newsum
+done
+
+# Use downloaded cacao source tarball
+#newsum=$(sha256sum $tarballdir/cacao-*.tar.* | cut -f 1 -d ' ')
+#update_var "CACAO_SHA256SUM" $newsum