Hello community, here is the log from the commit of package java-1_8_0-openj9 for openSUSE:Factory checked in at 2020-01-30 22:35:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/java-1_8_0-openj9 (Old) and /work/SRC/openSUSE:Factory/.java-1_8_0-openj9.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "java-1_8_0-openj9" Thu Jan 30 22:35:59 2020 rev:1 rq:768316 version:1.8.0.242 Changes: -------- New Changes file: --- /dev/null 2019-12-19 10:12:34.003146842 +0100 +++ /work/SRC/openSUSE:Factory/.java-1_8_0-openj9.new.26092/java-1_8_0-openj9.changes 2020-01-30 22:36:11.512545616 +0100 @@ -0,0 +1,4 @@ +------------------------------------------------------------------- +Mon Jan 27 11:50:27 UTC 2020 - Fridrich Strba <fst...@suse.com> + +- Initial packaging of OpenJDK 1.8.0_242-b08 with OpenJ9 0.18.1 New: ---- 51a5857d24eca5e220ccd932bc98e9f1d0438e71.zip 7a1b0239a91f9d8819cb541812b4d774edd5bba4.zip 8cf8a305812fe1f710d79d215f17bff241a6c4d6.zip TestCryptoLevel.java _constraints alternative-path-to-tzdb_dat.patch disable-doclint-by-default.patch freemarker-2.3.29-sources.jar freemarker-2.3.29.jar icedtea-sound-1.0.1.tar.xz java-1_8_0-openj9.changes java-1_8_0-openj9.spec java-atk-wrapper-security.patch jconsole.desktop.in jdk-gcc-warnings.patch link-with-as-needed.patch multiple-pkcs11-library-init.patch nss.cfg openj9-nogit.patch.in policytool.desktop.in system-lcms.patch system-libjpeg.patch system-libpng.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ java-1_8_0-openj9.spec ++++++ ++++ 999 lines (skipped) ++++++ TestCryptoLevel.java ++++++ /* TestCryptoLevel -- Ensure unlimited crypto policy is in use. Copyright (C) 2012 Red Hat, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero 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 Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; import java.security.Permission; import java.security.PermissionCollection; public class TestCryptoLevel { public static void main(String[] args) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InvocationTargetException { Class<?> cls = null; Method def = null, exempt = null; try { cls = Class.forName("javax.crypto.JceSecurity"); } catch (ClassNotFoundException ex) { System.err.println("Running a non-Sun JDK."); System.exit(0); } try { def = cls.getDeclaredMethod("getDefaultPolicy"); exempt = cls.getDeclaredMethod("getExemptPolicy"); } catch (NoSuchMethodException ex) { System.err.println("Running IcedTea with the original crypto patch."); System.exit(0); } def.setAccessible(true); exempt.setAccessible(true); PermissionCollection defPerms = (PermissionCollection) def.invoke(null); PermissionCollection exemptPerms = (PermissionCollection) exempt.invoke(null); Class<?> apCls = Class.forName("javax.crypto.CryptoAllPermission"); Field apField = apCls.getDeclaredField("INSTANCE"); apField.setAccessible(true); Permission allPerms = (Permission) apField.get(null); if (defPerms.implies(allPerms) && (exemptPerms == null || exemptPerms.implies(allPerms))) { System.err.println("Running with the unlimited policy."); System.exit(0); } else { System.err.println("WARNING: Running with a restricted crypto policy."); System.exit(-1); } } } ++++++ _constraints ++++++ <constraints> <hardware> <physicalmemory> <size unit="M">4096</size> </physicalmemory> <disk> <size unit="G">20</size> </disk> </hardware> </constraints> ++++++ alternative-path-to-tzdb_dat.patch ++++++ --- a/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java 2020-01-22 11:12:33.000000000 +0100 +++ b/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java 2020-01-29 09:40:23.558260593 +0100 @@ -31,6 +31,7 @@ import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; +import java.io.InputStream; import java.io.IOException; import java.io.StreamCorruptedException; import java.security.AccessController; @@ -47,6 +48,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Objects; +import java.util.Properties; import java.util.Set; import java.util.SimpleTimeZone; import java.util.concurrent.ConcurrentHashMap; @@ -251,7 +253,15 @@ AccessController.doPrivileged(new PrivilegedAction<Object>() { public Object run() { try { - String libDir = System.getProperty("java.home") + File.separator + "lib"; + final String homeDir = System.getProperty("java.home"); + if (homeDir == null) { + throw new Error("java.home is not set"); + } + String libDir = homeDir + File.separator + "lib"; + String otherDir = getZoneInfoDir(libDir); + if (otherDir != null) + libDir = otherDir; + try (DataInputStream dis = new DataInputStream( new BufferedInputStream(new FileInputStream( new File(libDir, "tzdb.dat"))))) { @@ -264,6 +274,27 @@ } }); } + + private static String getZoneInfoDir(final String libDir) { + return AccessController.doPrivileged (new PrivilegedAction<String>() { + public String run() { + File f = new File(libDir + File.separator + "tz.properties"); + try (BufferedInputStream bin = new BufferedInputStream(new FileInputStream(f))) { + Properties props = new Properties(); + props.load(bin); + String dir = props.getProperty("sun.zoneinfo.dir"); + if (dir == null) + return null; + File tzdbdat = new File(dir, "tzdb.dat"); + if (tzdbdat.exists()) + return dir; + return null; + } catch (Exception x) { + return null; + } + } + }); + } private static void addOldMapping() { for (String[] alias : oldMappings) { ++++++ disable-doclint-by-default.patch ++++++ 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 <ahug...@redhat.com> Author: Emmanuel Bourg <ebo...@apache.org> --- jdk8/langtools/src/share/classes/com/sun/tools/javadoc/DocEnv.java +++ jdk8/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; } --- jdk8/langtools/test/tools/javadoc/doclint/DocLintTest.java +++ jdk8/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, ++++++ java-atk-wrapper-security.patch ++++++ --- jdk8/jdk/src/share/lib/security/java.security-linux 2014-07-15 23:08:27.000000000 +0200 +++ jdk8/jdk/src/share/lib/security/java.security-linux 2014-07-18 09:04:45.127566697 +0200 @@ -224,7 +224,9 @@ com.ibm.oti.,\ openj9.internal.,\ jdk.xml.internal.,\ - com.sun.activation.registries. + com.sun.activation.registries.,\ + org.GNOME.Accessibility.,\ + org.GNOME.Bonobo. # # List of comma-separated packages that start with or equal this string @@ -274,7 +276,9 @@ jdk.nashorn.internal.,\ jdk.nashorn.tools.,\ jdk.xml.internal.,\ - com.sun.activation.registries. + com.sun.activation.registries.,\ + org.GNOME.Accessibility.,\ + org.GNOME.Bonobo. # # Determines whether this properties file can be appended to ++++++ jconsole.desktop.in ++++++ [Desktop Entry] Name=OpenJDK 8 Monitoring & Management Console GenericName=OpenJDK Monitoring & Management Console Comment=Monitor and manage OpenJDK applications for @VERSION@ Exec=@JAVA_HOME@/bin/jconsole Icon=java Terminal=false Type=Application StartupWMClass=sun-tools-jconsole-JConsole Categories=Development;Profiling; Version=1.0 ++++++ jdk-gcc-warnings.patch ++++++ --- a/jdk/src/share/native/com/sun/java/util/jar/pack/bands.cpp 2020-01-22 11:12:33.000000000 +0100 +++ b/jdk/src/share/native/com/sun/java/util/jar/pack/bands.cpp 2020-01-27 17:06:13.010809355 +0100 @@ -288,7 +288,7 @@ { e_##name, #name, /*debug only*/ \ cspec, ix } -const band_init all_band_inits[] = { +const band_init all_band_inits[BAND_LIMIT+1] = { //BAND_INIT(archive_magic, BYTE1_spec, 0), //BAND_INIT(archive_header, UNSIGNED5_spec, 0), //BAND_INIT(band_headers, BYTE1_spec, 0), @@ -448,14 +448,8 @@ BAND_INIT(file_modtime, DELTA5_spec, 0), BAND_INIT(file_options, UNSIGNED5_spec, 0), //BAND_INIT(file_bits, BYTE1_spec, 0), -#ifndef PRODUCT - { 0, 0, 0, 0 } -#else - { 0, 0 } -#endif + { 0, NULL, 0, 0 } }; -#define NUM_BAND_INITS \ - (sizeof(all_band_inits)/sizeof(all_band_inits[0])) band* band::makeBands(unpacker* u) { band* tmp_all_bands = U_NEW(band, BAND_LIMIT); --- a/jdk/src/share/native/sun/java2d/opengl/OGLContext.c 2020-01-22 11:12:33.000000000 +0100 +++ b/jdk/src/share/native/sun/java2d/opengl/OGLContext.c 2020-01-27 17:06:13.010809355 +0100 @@ -38,6 +38,8 @@ #include "GraphicsPrimitiveMgr.h" #include "Region.h" +#include "jvm.h" + /** * The following methods are implemented in the windowing system (i.e. GLX * and WGL) source files. --- a/jdk/src/solaris/native/sun/awt/awt_Font.c 2020-01-22 11:12:33.000000000 +0100 +++ b/jdk/src/solaris/native/sun/awt/awt_Font.c 2020-01-27 17:06:13.010809355 +0100 @@ -454,6 +454,7 @@ int32_t i, size; char *fontsetname = NULL; char *nativename = NULL; + Boolean doFree = FALSE; jobjectArray componentFonts = NULL; jobject peer = NULL; jobject fontDescriptor = NULL; @@ -493,8 +494,10 @@ if (!JNU_IsNull(env, fontDescriptorName)) { nativename = (char *) JNU_GetStringPlatformChars(env, fontDescriptorName, NULL); + doFree = TRUE; } else { nativename = ""; + doFree = FALSE; } fdata->flist[i].xlfd = malloc(strlen(nativename) @@ -502,7 +505,7 @@ jio_snprintf(fdata->flist[i].xlfd, strlen(nativename) + 10, nativename, size * 10); - if (nativename != NULL && nativename != "") + if (nativename != NULL && doFree) JNU_ReleaseStringPlatformChars(env, fontDescriptorName, (const char *) nativename); /* --- a/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c 2020-01-22 11:12:33.000000000 +0100 +++ b/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c 2020-01-27 17:06:13.010809355 +0100 @@ -545,7 +545,7 @@ xsdo->cData = xsdo->configData->color_data; XShared_initSurface(env, xsdo, depth, width, height, drawable); - xsdo->xrPic = NULL; + xsdo->xrPic = None; #endif /* !HEADLESS */ } --- a/jdk/src/solaris/native/sun/xawt/XToolkit.c 2020-01-22 11:12:33.000000000 +0100 +++ b/jdk/src/solaris/native/sun/xawt/XToolkit.c 2020-01-27 17:06:13.010809355 +0100 @@ -723,7 +723,7 @@ if (pollFds[0].revents) { // Events in X pipe update_poll_timeout(TIMEOUT_EVENTS); - PRINT2("performPoll(): TIMEOUT_EVENTS curPollTimeout = %ld \n", curPollTimeout); + PRINT2("performPoll(): TIMEOUT_EVENTS curPollTimeout = %d \n", curPollTimeout); } return TRUE; ++++++ link-with-as-needed.patch ++++++ --- jdk8/jdk/make/CompileLaunchers.gmk 2014-09-26 08:53:47.340118668 +0200 +++ jdk8/jdk/make/CompileLaunchers.gmk 2014-09-26 08:54:18.702392301 +0200 @@ -504,7 +504,7 @@ # 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 UNPACKEXE_ZIPOBJS := $(JDK_OUTPUTDIR)/objs/libzip/zcrc32$(OBJ_SUFFIX) \ @@ -560,9 +560,9 @@ 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, \ --- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-09-26 08:53:47.341118645 +0200 +++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-09-26 08:54:22.383307050 +0200 @@ -760,10 +760,10 @@ $(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" \ ++++++ multiple-pkcs11-library-init.patch ++++++ # 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 { ++++++ nss.cfg ++++++ name = NSS nssLibraryDirectory = nssDbMode = noDb attributes = compatibility ++++++ openj9-nogit.patch.in ++++++ --- a/closed/OpenJ9.gmk 2020-01-23 11:32:56.700658325 +0100 +++ b/closed/OpenJ9.gmk 2020-01-23 23:25:54.764578248 +0100 @@ -29,15 +29,15 @@ BUILD_ID := 000000 endif -OPENJ9_SHA := $(shell git -C $(OPENJ9_TOPDIR) rev-parse --short HEAD) +OPENJ9_SHA := @OPENJ9_SHA@ ifeq (,$(OPENJ9_SHA)) $(error Could not determine OpenJ9 SHA) endif # Find OpenJ9 tag associated with current commit (suppressing stderr in case there is no such tag). -OPENJ9_TAG := $(shell git -C $(OPENJ9_TOPDIR) describe --exact-match HEAD 2>/dev/null) +OPENJ9_TAG := @OPENJ9_TAG@ ifeq (,$(OPENJ9_TAG)) - OPENJ9_BRANCH := $(shell git -C $(OPENJ9_TOPDIR) rev-parse --abbrev-ref HEAD) + OPENJ9_BRANCH := @OPENJ9_BRANCH@ ifeq (,$(OPENJ9_BRANCH)) $(error Could not determine OpenJ9 branch) endif @@ -46,7 +46,7 @@ OPENJ9_VERSION_STRING := $(OPENJ9_TAG) endif -OPENJ9OMR_SHA := $(shell git -C $(OPENJ9OMR_TOPDIR) rev-parse --short HEAD) +OPENJ9OMR_SHA := @OPENJ9OMR_SHA@ ifeq (,$(OPENJ9OMR_SHA)) $(error Could not determine OMR SHA) endif --- a/jdk/make/closed/autoconf/custom-hook.m4 2020-01-23 11:32:57.428662256 +0100 +++ b/jdk/make/closed/autoconf/custom-hook.m4 2020-01-23 23:30:36.802221424 +0100 @@ -368,7 +368,7 @@ AC_SUBST(JDK_MOD_VERSION) AC_SUBST(JDK_FIX_VERSION) - OPENJDK_SHA=`git -C $SRC_ROOT rev-parse --short HEAD` + OPENJDK_SHA=@OPENJDK_SHA@ AC_SUBST(OPENJDK_SHA) ++++++ policytool.desktop.in ++++++ [Desktop Entry] Name=OpenJDK 8 Policy Tool GenericName=OpenJDK Policy Tool Comment=Manage OpenJDK policy files (@VERSION@) Exec=@JAVA_HOME@/bin/policytool Icon=java Terminal=false Type=Application StartupWMClass=sun-security-tools-PolicyTool Categories=Settings;DesktopSettings;Security; Version=1.0 ++++++ system-lcms.patch ++++++ --- jdk8/common/autoconf/libraries.m4 2014-09-26 08:49:01.572737814 +0200 +++ jdk8/common/autoconf/libraries.m4 2014-09-26 08:50:22.896853996 +0200 @@ -679,6 +679,46 @@ ############################################################################### # + # 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 # --- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-09-26 08:49:00.981751504 +0200 +++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-09-26 08:50:22.897853978 +0200 @@ -669,8 +669,8 @@ ########################################################################################## # 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, \ @@ -688,19 +688,19 @@ 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) ########################################################################################## --- jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java 2014-09-26 08:49:00.646759264 +0200 +++ jdk8/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMS.java 2014-09-26 08:50:22.897853978 +0200 @@ -207,7 +207,7 @@ * disposer frameworks */ System.loadLibrary("awt"); - System.loadLibrary("lcms"); + System.loadLibrary("javalcms"); return null; } }); ++++++ system-libjpeg.patch ++++++ --- jdk8/common/autoconf/libraries.m4 2015-02-17 13:27:11.468829365 +0100 +++ jdk8/common/autoconf/libraries.m4 2015-02-17 13:27:49.143980484 +0100 @@ -608,11 +608,36 @@ # Check for the jpeg library # + 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 - AC_CHECK_LIB(jpeg, main, [], - [ USE_EXTERNAL_LIBJPEG=false - AC_MSG_NOTICE([Will use jpeg decoder bundled with the OpenJDK source]) - ]) + else + AC_MSG_ERROR([Invalid use of --with-libjpeg: ${with_libjpeg}, use 'system' or 'bundled']) + fi + AC_SUBST(USE_EXTERNAL_LIBJPEG) ############################################################################### --- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2015-02-17 13:25:22.125292473 +0100 +++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2015-02-17 13:28:30.812041352 +0100 @@ -704,18 +704,20 @@ ########################################################################################## +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 @@ -730,37 +733,50 @@ # $(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 @@ 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 @@ 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) \ --- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java 2015-02-17 13:25:22.295288644 +0100 +++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java 2015-02-17 13:27:49.145980439 +0100 @@ -89,7 +89,7 @@ java.security.AccessController.doPrivileged( new java.security.PrivilegedAction<Void>() { public Void run() { - System.loadLibrary("jpeg"); + System.loadLibrary("javajpeg"); return null; } }); --- jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java 2015-02-17 13:25:22.295288644 +0100 +++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java 2015-02-17 13:27:49.145980439 +0100 @@ -179,7 +179,7 @@ java.security.AccessController.doPrivileged( new java.security.PrivilegedAction<Void>() { public Void run() { - System.loadLibrary("jpeg"); + System.loadLibrary("javajpeg"); return null; } }); --- jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java 2015-02-17 13:25:22.170291459 +0100 +++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java 2015-02-17 13:27:49.146980416 +0100 @@ -56,7 +56,7 @@ java.security.AccessController.doPrivileged( new java.security.PrivilegedAction<Void>() { public Void run() { - System.loadLibrary("jpeg"); + System.loadLibrary("javajpeg"); return null; } }); --- jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2015-02-17 13:25:22.531283329 +0100 +++ jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2015-02-17 13:27:49.146980416 +0100 @@ -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)) --- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c 2015-02-17 13:25:22.539283148 +0100 +++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c 2015-02-17 13:27:49.147980394 +0100 @@ -25,9 +25,9 @@ #include "splashscreen_impl.h" -#include "jinclude.h" -#include "jpeglib.h" -#include "jerror.h" +#include <jpeglib.h> +#include <jerror.h> +#include <jmorecfg.h> #include <setjmp.h> @@ -113,11 +113,11 @@ if (cinfo->src == NULL) { /* first time for this JPEG object? */ cinfo->src = (struct jpeg_source_mgr *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, - JPOOL_PERMANENT, SIZEOF(stream_source_mgr)); + JPOOL_PERMANENT, sizeof(stream_source_mgr)); src = (stream_src_ptr) cinfo->src; src->buffer = (JOCTET *) (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, - JPOOL_PERMANENT, INPUT_BUF_SIZE * SIZEOF(JOCTET)); + JPOOL_PERMANENT, INPUT_BUF_SIZE * sizeof(JOCTET)); } src = (stream_src_ptr) cinfo->src; ++++++ system-libpng.patch ++++++ --- jdk8/common/autoconf/libraries.m4 2014-09-26 08:45:01.057310067 +0200 +++ jdk8/common/autoconf/libraries.m4 2014-09-26 08:46:38.602049970 +0200 @@ -679,6 +679,47 @@ ############################################################################### # + # 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 # --- jdk8/common/autoconf/spec.gmk.in 2014-09-26 08:45:01.057310067 +0200 +++ jdk8/common/autoconf/spec.gmk.in 2014-09-26 08:46:38.603049945 +0200 @@ -555,6 +555,7 @@ 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@ --- jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-09-26 08:45:00.475323552 +0200 +++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2014-09-26 08:46:38.603049945 +0200 @@ -1211,7 +1211,6 @@ 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) @@ -1228,6 +1227,13 @@ 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 @@ -1291,12 +1297,12 @@ 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) \ --- jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c 2014-09-26 08:45:00.414324966 +0200 +++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c 2014-09-26 08:46:38.603049945 +0200 @@ -25,8 +25,7 @@ #include "splashscreen_impl.h" -#include "../libpng/png.h" - +#include <png.h> #include <setjmp.h> #define SIG_BYTES 8