Fridrich Strba 2024-08-05 11:24:10 +00:00 committed by Git OBS Bridge
commit 51982fe882
28 changed files with 2346 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:38371f6ef59ba89f89135dd5579d0952cc4d28adb452c25c194a248da70dc5fc
size 29265781

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4c01a2db59226a198abd2c6eae857ab1028c91b616fbf80ade639aaec2e21021
size 11151844

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0111d7f31c26943620555f5495e00055569f04a24a7bc44ac96282bd7235269b
size 132769320

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:31b067d16c7c9538d99db1fb9aee79d0e208a0173f1c5deb93aaaf96e66c5cca
size 11172351

72
TestCryptoLevel.java Normal file
View File

@ -0,0 +1,72 @@
/* 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);
}
}
}

10
_constraints Normal file
View File

@ -0,0 +1,10 @@
<constraints>
<hardware>
<physicalmemory>
<size unit="M">4096</size>
</physicalmemory>
<disk>
<size unit="G">20</size>
</disk>
</hardware>
</constraints>

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:859d1898f55b446a25d6f113cdb5f196a2fe51560fde0b596f553650e1855aeb
size 132810297

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a44313209419f44cc293f1d08b545d81fd84672a0813d6e7d632a79b19cb0efa
size 29189918

View File

@ -0,0 +1,58 @@
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>
Author: Emmanuel Bourg <ebourg@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,

View File

@ -0,0 +1,87 @@
--- openjdk/jdk/src/share/bin/splashscreen_stubs.c
+++ openjdk/jdk/src/share/bin/splashscreen_stubs.c
@@ -61,11 +61,11 @@ typedef char* (*SplashGetScaledImageName_t)(const char* fileName,
#define INVOKEV(name) _INVOKE(name, ,;)
int DoSplashLoadMemory(void* pdata, int size) {
- INVOKE(SplashLoadMemory, NULL)(pdata, size);
+ INVOKE(SplashLoadMemory, 0)(pdata, size);
}
int DoSplashLoadFile(const char* filename) {
- INVOKE(SplashLoadFile, NULL)(filename);
+ INVOKE(SplashLoadFile, 0)(filename);
}
void DoSplashInit(void) {
@@ -87,4 +87,4 @@ void DoSplashSetScaleFactor(float scaleFactor) {
char* DoSplashGetScaledImageName(const char* fileName, const char* jarName,
float* scaleFactor) {
INVOKE(SplashGetScaledImageName, NULL)(fileName, jarName, scaleFactor);
-}
\ No newline at end of file
+}
--- openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
+++ openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
@@ -2850,14 +2850,14 @@ Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage
pb = &data->pixelBuf;
if (setPixelBuffer(env, pb, buffer) == NOT_OK) {
- freeArray(scale, numBands);
+ freeArray((void**)scale, numBands);
return data->abortFlag; // We already threw an out of memory exception
}
// Allocate a 1-scanline buffer
scanLinePtr = (JSAMPROW)malloc(scanLineSize);
if (scanLinePtr == NULL) {
- freeArray(scale, numBands);
+ freeArray((void**)scale, numBands);
JNU_ThrowByName( env,
"java/lang/OutOfMemoryError",
"Writing JPEG Stream");
@@ -2879,7 +2879,7 @@ Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage
JNU_ThrowByName(env, "javax/imageio/IIOException", buffer);
}
- freeArray(scale, numBands);
+ freeArray((void**)scale, numBands);
free(scanLinePtr);
return data->abortFlag;
}
@@ -2928,7 +2928,7 @@ Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage
(*env)->ReleaseIntArrayElements(env, QtableSelectors, qsels, JNI_ABORT);
}
if (!success) {
- freeArray(scale, numBands);
+ freeArray((void**)scale, numBands);
free(scanLinePtr);
return data->abortFlag;
}
@@ -2949,7 +2949,7 @@ Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage
if (GET_ARRAYS(env, data,
(const JOCTET **)(&dest->next_output_byte)) == NOT_OK) {
(*env)->ExceptionClear(env);
- freeArray(scale, numBands);
+ freeArray((void**)scale, numBands);
free(scanLinePtr);
JNU_ThrowByName(env,
"javax/imageio/IIOException",
@@ -2987,7 +2987,7 @@ Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage
scanData = (*env)->GetIntArrayElements(env, scanInfo, NULL);
if (scanData == NULL) {
RELEASE_ARRAYS(env, data, (const JOCTET *)(dest->next_output_byte));
- freeArray(scale, numBands);
+ freeArray((void**)scale, numBands);
free(scanLinePtr);
return data->abortFlag;
}
@@ -3086,7 +3086,7 @@ Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage
jpeg_abort((j_common_ptr)cinfo);
}
- freeArray(scale, numBands);
+ freeArray((void**)scale, numBands);
free(scanLinePtr);
RELEASE_ARRAYS(env, data, NULL);
return data->abortFlag;

View File

@ -0,0 +1 @@
addFilter("executable-stack")

299
java-1_8_0-openj9.changes Normal file
View File

@ -0,0 +1,299 @@
-------------------------------------------------------------------
Thu May 23 17:21:33 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u412 build 08 with OpenJ9 0.44.0 virtual
machine
- Including Oracle April 2024 CPU changes
* CVE-2024-21094 (bsc#1222986), CVE-2024-21011 (bsc#1222979),
CVE-2024-21085 (bsc#1222984), CVE-2024-21068 (bsc#1222983)
* OpenJ9 changes, see
https://eclipse.dev/openj9/docs/version0.44
- Added patch:
* openj9-openssl.patch
+ fix build with older openssl that does not define
SSL_R_UNEXPECTED_EOF_WHILE_READING
-------------------------------------------------------------------
Mon May 6 17:41:21 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Added patch:
* fix-build-with-gcc14.patch
+ fix build with gcc14
+ pointer/integer type precision
-------------------------------------------------------------------
Thu Mar 7 12:44:28 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Removed patch:
* alternative-path-to-tzdb_dat.patch
+ Remove the possibility to use the system timezone-java. It
creates more problems then it solves (bsc#1213470)
-------------------------------------------------------------------
Tue Feb 20 15:43:24 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Use %patch -P N instead of deprecated %patchN.
-------------------------------------------------------------------
Mon Feb 12 16:01:06 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u402 build 06 with OpenJ9 0.43.0 virtual
machine
- Including Oracle January 2024 CPU changes
* CVE-2024-20918 (bsc#1218907), CVE-2024-20919 (bsc#1218903),
CVE-2024-20921 (bsc#1218905), CVE-2024-20926 (bsc#1218906),
CVE-2024-20945 (bsc#1218909), CVE-2024-20952 (bsc#1218911)
* OpenJ9 changes, see
https://www.eclipse.org/openj9/docs/version0.43/
-------------------------------------------------------------------
Wed Nov 22 18:19:11 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u392 build 08 with OpenJ9 0.41.0 virtual
machine
- Including Oracle October 2023 CPU changes
* CVE-2023-22067 (bsc#1216379), CVE-2023-22081 (bsc#1216374)
- Including OpenJ9 0.41.0 fixes of CVE-2023-5676, bsc#1217214
* For other OpenJ9 changes, see
https://www.eclipse.org/openj9/docs/version0.41
- Removed patch:
* link-with-as-needed.patch
+ big part not needed anymore besides one hunk integrated into
system-libjpeg.patch
- Modified patch:
* system-libjpeg.patch
+ rediff and integrate one hunk from link-with-as-needed.patch
-------------------------------------------------------------------
Tue Aug 15 07:06:29 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u382 build 05 with OpenJ9 0.40.0 virtual
machine
- Including Oracle July 2023 CPU changes
* CVE-2023-22045 (bsc#1213481), CVE-2023-22049 (bsc#1213482)
* OpenJ9 changes, see
https://www.eclipse.org/openj9/docs/version0.40
- Modified patch:
* stringop-overflow.patch
+ rediff to changed context
-------------------------------------------------------------------
Mon Aug 7 14:11:01 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u372 build 07 with OpenJ9 0.38.0 virtual
machine
- Including Oracle April 2023 CPU changes
* CVE-2023-21930 (bsc#1210628), CVE-2023-21937 (bsc#1210631),
CVE-2023-21938 (bsc#1210632), CVE-2023-21939 (bsc#1210634),
CVE-2023-21954 (bsc#1210635), CVE-2023-21967 (bsc#1210636),
CVE-2023-21968 (bsc#1210637)
* OpenJ9 specific vulnerability: CVE-2023-2597 (bsc#1211615)
* OpenJ9 changes, see
https://www.eclipse.org/openj9/docs/version0.38
-------------------------------------------------------------------
Tue Mar 28 10:02:44 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Added patch:
* stringop-overflow.patch
+ disable -Wstringop-overflow and fix build in Factory
-------------------------------------------------------------------
Mon Mar 6 09:04:23 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u362 build 09 with OpenJ9 0.36.0 virtual
machine
- Including Oracle January 2023 CPU changes
CVE-2023-21830 (bsc#1207249), CVE-2023-21843 (bsc#1207248)
* OpenJ9 changes, see
https://www.eclipse.org/openj9/docs/version0.36/
-------------------------------------------------------------------
Mon Oct 31 11:42:41 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u352 build 08 with OpenJ9 0.35.0 virtual
machine
* Including Oracle October 2022 CPU changes
CVE-2022-21619 (bsc#1204473), CVE-2022-21626 (bsc#1204471),
CVE-2022-21624 (bsc#1204475), CVE-2022-21628 (bsc#1204472)
* Fixes OpenJ9 vulnerability bsc#1204703, CVE-2022-3676
* OpenJ9 changes, see
https://www.eclipse.org/openj9/docs/version0.35
-------------------------------------------------------------------
Tue Aug 16 06:39:22 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u345 build 01 with OpenJ9 0.33.0 virtual
machine
* Including Oracle July 2022 CPU changes
CVE-2022-21540 (bsc#1201694), CVE-2022-21541 (bsc#1201692),
CVE-2022-34169 (bsc#1201684)
* OpenJ9 changes, see
https://www.eclipse.org/openj9/docs/version0.33
- Modified template patch:
* openj9-nogit.patch.in
+ The git commit hash code became more generic, so redo the
template patch
- Added patch:
* openj9-no-narrowing.patch
+ Fix narrowing conversion error
-------------------------------------------------------------------
Tue Jul 12 07:06:17 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u332 build 09 with OpenJ9 0.32.0 virtual
machine
* Fixes bsc#1198935, CVE-2021-41041: unverified methods can be
invoked using MethodHandles
* Including Oracle April 2022 CPU fixes
CVE-2022-21426 (bsc#1198672), CVE-2022-21434 (bsc#1198674),
CVE-2022-21443 (bsc#1198675), CVE-2022-21476 (bsc#1198671),
CVE-2022-21496 (bsc#1198673)
* OpenJ9 changes, see
https://www.eclipse.org/openj9/docs/version0.32
-------------------------------------------------------------------
Mon Feb 28 09:47:15 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u322 build 04 with OpenJ9 0.30.0 virtual
machine
* including Oracle January 2022 CPU changes
CVE-2022-21248 (bsc#1194926), CVE-2022-21277 (bsc#1194930),
CVE-2022-21282 (bsc#1194933), CVE-2022-21291 (bsc#1194925),
CVE-2022-21293 (bsc#1194935), CVE-2022-21294 (bsc#1194934),
CVE-2022-21296 (bsc#1194932), CVE-2022-21299 (bsc#1194931),
CVE-2022-21305 (bsc#1194939), CVE-2022-21340 (bsc#1194940),
CVE-2022-21341 (bsc#1194941), CVE-2022-21360 (bsc#1194929),
CVE-2022-21365 (bsc#1194928), CVE-2022-21366 (bsc#1194927),
* OpenJ9 changes, see
https://www.eclipse.org/openj9/docs/version0.30
- Added patch:
* libdwarf-fix.patch
+ fix build with different versions of libdwarf
-------------------------------------------------------------------
Tue Nov 2 11:29:15 UTC 2021 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u312 build 07 with OpenJ9 0.29.0 virtual
machine
* including Oracle July 2021 and October 2021 CPU changes
CVE-2021-2341 (bsc#1188564), CVE-2021-2369 (bsc#1188565),
CVE-2021-2388 (bsc#1188566), CVE-2021-35550 (bsc#1191901),
CVE-2021-35565 (bsc#1191909), CVE-2021-35556 (bsc#1191910),
CVE-2021-35559 (bsc#1191911), CVE-2021-35561 (bsc#1191912),
CVE-2021-35564 (bsc#1191913), CVE-2021-35567 (bsc#1191903),
CVE-2021-35578 (bsc#1191904), CVE-2021-35586 (bsc#1191914),
CVE-2021-35603 (bsc#1191906)
* OpenJ9 changes, see
https://www.eclipse.org/openj9/docs/version0.29
- Remove the unneeded icedtea-sound provider
- Removed patches:
* jdk-gcc-warnings.patch
* maybe-uninitialized.patch
* omr-no-return-in-nonvoid-function.patch
+ integrated upstream
-------------------------------------------------------------------
Fri Jun 18 10:15:55 UTC 2021 - Fridrich Strba <fstrba@suse.com>
- Remove the forcing of DWARF version 4, since the libdwarf in
factory works correctly with this build and DWARF5 symbol format
- Expand supported architectures to aarch64
-------------------------------------------------------------------
Thu Jun 10 16:24:28 UTC 2021 - Fridrich Strba <fstrba@suse.com>
- Force DWARF version 4 when building with gcc >= 11
* the internal omr tools set error with debugging information
in DWARF5 format
* fixes build in factory
-------------------------------------------------------------------
Sun May 16 07:25:18 UTC 2021 - Fridrich Strba <fstrba@suse.com>
- Fix version typo in spec file
-------------------------------------------------------------------
Fri May 14 08:55:58 UTC 2021 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u292 build 10 with OpenJ9 0.26.0 virtual
machine
* including Oracle April 2021 CPU changes (bsc#1185055,
CVE-2021-2163 and bsc#1185056, CVE-2021-2161)
* OpenJ9 changes, see
https://www.eclipse.org/openj9/docs/version0.26
- Added patch:
* maybe-uninitialized.patch
+ initialize variables in constructor
+ fixes build with newer gcc
-------------------------------------------------------------------
Tue Jan 26 07:28:09 UTC 2021 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u282 build 08 with OpenJ9 0.24.0 virtual
machine
* including Oracle January 2021 CPU changes (bsc#1181239)
* OpenJ9 changes, see
https://www.eclipse.org/openj9/docs/version0.24
- Modified template patch:
* openj9-nogit.patch.in
+ replace git runs by pre-fetched git hashes in new places
+ remove hunks that are irrelevant in new sources
-------------------------------------------------------------------
Mon Nov 2 09:07:50 UTC 2020 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u272 build 10 with OpenJ9 0.23.0 virtual
machine
* including Oracle July 2020 CPU changes (bsc#1174157) and
October 2020 CPU changes (bsc#1177943)
+ fixes CVE-2020-14556, CVE-2020-14577, CVE-2020-14578,
CVE-2020-14579, CVE-2020-14581, CVE-2020-14583,
CVE-2020-14593, CVE-2020-14621, CVE-2020-14779,
CVE-2020-14781, CVE-2020-14782, CVE-2020-14792,
CVE-2020-14796, CVE-2020-14797, CVE-2020-14798 and
CVE-2020-14803
- Removed patch:
* gcc10.patch
+ not needed any more in this version
- Modified patches:
* java-atk-wrapper-security.patch
* openj9-no-werror.patch
* system-lcms.patch
+ rediff to changed context
- Added patch:
* omr-no-return-in-nonvoid-function.patch
+ fix build error on some systems
-------------------------------------------------------------------
Fri Jun 26 09:12:17 UTC 2020 - Fridrich Strba <fstrba@suse.com>
- Added patches:
* gcc10.patch
+ Fix dupplicate global pointer variables with gcc 10
+ openj9-no-werror.patch
+ Do not build with warnings as errors the OpenJ9 parts, since
that would mean broken build with new warnings from gcc 10
-------------------------------------------------------------------
Fri Apr 24 06:26:21 UTC 2020 - Fridrich Strba <fstrba@suse.com>
- Update to OpenJDK 8u252 build 09 with OpenJ9 0.20.0 virtual
machine
* including Oracle April 2020 CPU changes (bsc#1169511)
+ fixes: CVE-2020-2754, CVE-2020-2755, CVE-2020-2756,
CVE-2020-2757, CVE-2020-2773, CVE-2020-2781, CVE-2020-2800,
CVE-2020-2803, CVE-2020-2805 and CVE-2020-2830
* OpenJ9 changes,
see https://www.eclipse.org/openj9/docs/version0.20
-------------------------------------------------------------------
Wed Apr 15 09:07:59 UTC 2020 - Fridrich Strba <fstrba@suse.com>
- The pack200 and unpack200 alternatives should be slaves of java
and not of javac, since they are part of JRE (bsc#1171352).
-------------------------------------------------------------------
Mon Jan 27 11:50:27 UTC 2020 - Fridrich Strba <fstrba@suse.com>
- Initial packaging of OpenJDK 1.8.0_242-b08 with OpenJ9 0.18.1

963
java-1_8_0-openj9.spec Normal file
View File

@ -0,0 +1,963 @@
#
# spec file for package java-1_8_0-openj9
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# ugly hack to prevent spec-cleaner from changing make -> make_build
%global make make
%{!?aarch64:%global aarch64 aarch64 arm64 armv8}
%global debug 0
%global bootcycle 1
# Convert an absolute path to a relative path. Each symbolic link is
# specified relative to the directory in which it is installed so that
# it will resolve properly within chrooted installations.
%global script 'use File::Spec; print File::Spec->abs2rel($ARGV[0], $ARGV[1])'
%global abs2rel perl -e %{script}
%global syslibdir %{_libdir}
# Standard JPackage naming and versioning defines.
%global updatever 422
%global buildver b05
%global root_repository https://github.com/ibmruntimes/openj9-openjdk-jdk8/archive
%global root_revision a75ff73ce586d4105f89e83f0b3a80ca922e0d6f
%global root_branch v0.46.0-release
%global omr_repository https://github.com/eclipse/openj9-omr/archive
%global omr_revision 840a9adba4548aa546e36c97a1150b7306a7e07b
%global omr_branch v0.46.0-release
%global openj9_repository https://github.com/eclipse/openj9/archive
%global openj9_revision 1a6f6128aa2f639de1e33cae77a31f474ba6b1a9
%global openj9_branch v0.46.0-release
%global openj9_tag openj9-0.46.0
# priority must be 6 digits in total
%global priority 1801
%global javaver 1.8.0
# Standard JPackage directories and symbolic links.
%global sdklnk java-%{javaver}-openj9
%global archname %{sdklnk}
%global jrelnk jre-%{javaver}-openj9
%global sdkdir %{sdklnk}-%{javaver}
%global jredir %{sdkdir}/jre
%global sdkbindir %{_jvmdir}/%{sdklnk}/bin
%global jrebindir %{_jvmdir}/%{jrelnk}/bin
%global jvmjardir %{_jvmjardir}/%{sdkdir}
%global jvmjarlink %{_jvmjardir}/%{sdklnk}
# Prevent brp-java-repack-jars from being run.
%global __jar_repack 0
# cacert symlink
%global cacerts %{_jvmdir}/%{jredir}/lib/security/cacerts
# real file made by update-ca-certificates
%global javacacerts %{_var}/lib/ca-certificates/java-cacerts
# turn zero on non jit arches by default
%ifarch x86_64
%global archinstall amd64
%endif
%ifarch ppc64le
%global archinstall ppc64le
%endif
%ifarch s390x
%global archinstall s390x
%endif
%ifarch %{aarch64}
%global archinstall aarch64
%endif
%if %{debug}
%global debugbuild slowdebug
%else
%global debugbuild release
%endif
%if %{bootcycle}
%global imagesdir build/%{debugbuild}/bootcycle-build/images
%global imagestarget bootcycle-images
%else
%global imagesdir build/%{debugbuild}/images
%global imagestarget images
%endif
%global bits 64
Name: java-1_8_0-openj9
Version: %{javaver}.%{updatever}
Release: 0
Summary: OpenJDK 8 Runtime Environment with Eclipse OpenJ9 virtual machine
License: Apache-1.1 AND Apache-2.0 AND EPL-2.0 AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-only WITH Classpath-exception-2.0 AND LGPL-2.0-only AND MPL-1.0 AND MPL-1.1 AND SUSE-Public-Domain AND W3C
Group: Development/Languages/Java
URL: https://www.eclipse.org/openj9/
# Sources from upstream OpenJDK8 project.
Source0: %{root_repository}/%{root_revision}.zip
Source1: %{omr_repository}/%{omr_revision}.zip
Source2: %{openj9_repository}/%{openj9_revision}.zip
# Desktop files. Adapated from IcedTea.
Source11: jconsole.desktop.in
Source12: policytool.desktop.in
# Ensure we aren't using the limited crypto policy
Source14: TestCryptoLevel.java
Source100: openj9-nogit.patch.in
Source1000: %{name}-rpmlintrc
# RPM/distribution specific patches
# Restrict access to java-atk-wrapper classes
Patch1: java-atk-wrapper-security.patch
# Allow multiple initialization of PKCS11 libraries
Patch2: multiple-pkcs11-library-init.patch
# Disable doclint for compatibility
Patch3: disable-doclint-by-default.patch
# Allow building with newer libdwarf
Patch4: libdwarf-fix.patch
# Fix build with gcc 13
Patch31: stringop-overflow.patch
# Fix build with gcc 14
Patch32: fix-build-with-gcc14.patch
# Patches for system libraries
Patch201: system-libjpeg.patch
Patch202: system-libpng.patch
Patch203: system-lcms.patch
Patch210: openj9-no-werror.patch
Patch211: openj9-openssl.patch
BuildRequires: alsa-lib-devel
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: binutils
BuildRequires: cmake
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
BuildRequires: fdupes
BuildRequires: fontconfig
BuildRequires: freetype2-devel
BuildRequires: giflib-devel
BuildRequires: gtk2-devel
BuildRequires: java-ca-certificates
BuildRequires: libX11-devel
BuildRequires: libXi-devel
BuildRequires: libXinerama-devel
BuildRequires: libXt-devel
BuildRequires: libXtst-devel
BuildRequires: libdwarf-devel
BuildRequires: libelf-devel
BuildRequires: libjpeg-devel
BuildRequires: liblcms2-devel
BuildRequires: libnuma-devel
BuildRequires: libpng-devel
BuildRequires: libxslt
BuildRequires: nasm >= 2.11
BuildRequires: openssl-devel
BuildRequires: pkgconfig
BuildRequires: unzip
BuildRequires: update-desktop-files
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
# Requires rest of java
Requires: %{name}-headless = %{version}-%{release}
Requires: fontconfig
# mozilla-nss has to be installed to prevent
# java.security.ProviderException: Could not initialize NSS
# ...
# java.io.FileNotFoundException: /usr/lib64/libnss3.so
#was bnc#634793
Requires: mozilla-nss
Requires(post): file
Requires(post): java-ca-certificates
# Standard JPackage base provides.
Provides: java = %{javaver}
Provides: java-%{javaver} = %{version}-%{release}
Provides: java-openj9 = %{version}-%{release}
Provides: java-openjdk = %{version}-%{release}
Provides: jre = %{javaver}
Provides: jre-%{javaver} = %{version}-%{release}
Provides: jre-%{javaver}-openj9 = %{version}-%{release}
Provides: jre-%{javaver}-openjdk = %{version}-%{release}
Provides: jre-openj9 = %{version}-%{release}
Provides: jre-openjdk = %{version}-%{release}
# Standard JPackage extensions provides.
Provides: java-fonts = %{version}
# Required at least by fop
Provides: java-%{bits} = %{javaver}
Provides: java-%{javaver}-%{bits}
Provides: java-openjdk-%{bits} = %{version}-%{release}
Provides: jre-%{bits} = %{javaver}
Provides: jre-%{javaver}-%{bits}
Provides: jre-%{javaver}-openj9-%{bits} = %{version}-%{release}
Provides: jre-%{javaver}-openjdk-%{bits} = %{version}-%{release}
Provides: jre-openj9-%{bits} = %{version}-%{release}
Provides: jre-openjdk-%{bits} = %{version}-%{release}
Provides: jre1.3.x
Provides: jre1.4.x
Provides: jre1.5.x
Provides: jre1.6.x
Provides: jre1.7.x
Provides: jre1.8.x
ExclusiveArch: x86_64 ppc64le s390x aarch64
%if 0%{?suse_version} < 1500
BuildRequires: gcc7
BuildRequires: gcc7-c++
%else
BuildRequires: gcc >= 7
BuildRequires: gcc-c++ >= 7
%endif
%if %{bootcycle}
BuildRequires: java-devel >= 1.7
BuildConflicts: java >= 9
BuildConflicts: java-devel >= 9
BuildConflicts: java-headless >= 9
%else
BuildRequires: %{name}-devel
%endif
%description
The OpenJDK 8 with Eclipse OpenJ9 virtual machine. Eclipse OpenJ9
is a Java Virtual Machine for OpenJDK that is optimized for small
footprint, fast start-up, and high throughput.
Supported architectures are ppc64le, s390x and x86_64
%package headless
Summary: OpenJDK 8 Runtime Environment with Eclipse OpenJ9
# Require jpackage-utils for ownership of /usr/lib/jvm/
Group: Development/Languages/Java
Requires: jpackage-utils
# Post requires update-alternatives to install tool update-alternatives.
Requires(post): update-alternatives
# Postun requires update-alternatives to uninstall tool update-alternatives.
Requires(postun): update-alternatives
# Standard JPackage base provides.
Provides: java-%{javaver}-headless = %{version}-%{release}
Provides: java-headless = %{javaver}
Provides: java-openj9-headless = %{version}-%{release}
Provides: java-openjdk-headless = %{version}-%{release}
Provides: jre-%{javaver}-headless = %{version}-%{release}
Provides: jre-%{javaver}-openj9-headless = %{version}-%{release}
Provides: jre-%{javaver}-openjdk-headless = %{version}-%{release}
Provides: jre-headless = %{javaver}
Provides: jre-openj9-headless = %{version}-%{release}
Provides: jre-openjdk-headless = %{version}-%{release}
# Standard JPackage extensions provides.
Provides: jaas = %{version}
Provides: java-sasl = %{version}
Provides: jce = %{version}
Provides: jdbc-stdext = 4.2
Provides: jndi = %{version}
Provides: jndi-cos = %{version}
Provides: jndi-dns = %{version}
Provides: jndi-ldap = %{version}
Provides: jndi-rmi = %{version}
Provides: jsse = %{version}
%description headless
The OpenJDK 8 runtime environment without audio and video support.
Supported architectures are ppc64le, s390x and x86_64
%package devel
Summary: OpenJDK 8 Development Environment with Eclipse OpenJ9
# Require base package.
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
# Post requires update-alternatives to install tool update-alternatives.
Requires(post): update-alternatives
# Postun requires update-alternatives to uninstall tool update-alternatives.
Requires(postun): update-alternatives
# Standard JPackage devel provides.
Provides: java-%{javaver}-devel = %{version}
Provides: java-devel = %{javaver}
Provides: java-devel-openj9 = %{version}
Provides: java-devel-openjdk = %{version}
Provides: java-sdk = %{javaver}
Provides: java-sdk-%{javaver} = %{version}
Provides: java-sdk-%{javaver}-openj9 = %{version}
Provides: java-sdk-%{javaver}-openjdk = %{version}
Provides: java-sdk-openj9 = %{version}
Provides: java-sdk-openjdk = %{version}
%description devel
The OpenJDK 8 development tools.
Supported architectures are ppc64le, s390x and x86_64
%package demo
Summary: OpenJDK 8 Demos
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
%description demo
The OpenJDK 8 demos.
%package src
Summary: OpenJDK 8 Source Bundle
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
%description src
The OpenJDK 8 source bundle.
%package javadoc
Summary: OpenJDK 8 API Documentation
Group: Development/Languages/Java
Requires: jpackage-utils
# Post requires update-alternatives to install javadoc alternative.
Requires(post): update-alternatives
# Postun requires update-alternatives to uninstall javadoc alternative.
Requires(postun): update-alternatives
# Standard JPackage javadoc provides.
Provides: java-%{javaver}-javadoc = %{version}-%{release}
Provides: java-javadoc = %{version}-%{release}
BuildArch: noarch
%description javadoc
The OpenJDK 8 API documentation.
%package accessibility
Summary: OpenJDK 8 accessibility connector
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: java-atk-wrapper
%description accessibility
Enables accessibility support in OpenJDK 8 by using java-atk-wrapper.
This allows compatible at-spi2 based accessibility programs to work
for AWT and Swing-based programs.
Please note, the java-atk-wrapper is still in beta, and OpenJDK 8
itself is still being tuned to be working with accessibility features.
There are known issues with accessibility on, so please do not install
this package unless you really need to.
%prep
%setup -q -n openj9-openjdk-jdk8-%{root_revision} -a 1 -a 2
# Set up the build tree using the subrepository tarballs
pwd
mv openj9-omr-%{omr_revision} omr
mv openj9-%{openj9_revision} openj9
cp openj9/LICENSE LICENSE.openj9
# Remove libraries that are linked
rm -rvf jdk/src/share/native/java/util/zip/zlib-*
find jdk/src/share/native/sun/awt/image/jpeg ! -name imageioJPEG.c ! -name jpegdecoder.c -type f -delete
rm -rvf jdk/src/share/native/sun/awt/libpng
rm -rvf jdk/src/share/native/sun/awt/giflib
rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/cms*
rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2*
%patch -P 201 -p1
%patch -P 202 -p1
%patch -P 203 -p1
%patch -P 210
%patch -P 211 -p1
%patch -P 1 -p1
%patch -P 2 -p1
%patch -P 3 -p1
%patch -P 4 -p1
%patch -P 31 -p1
%patch -P 32 -p1
cat %{SOURCE100} \
| sed "s/@OPENJ9_SHA@/`expr substr '%{openj9_revision}' 1 7`/g" \
| sed "s/@OPENJ9_BRANCH@/%{openj9_branch}/g" \
| sed "s/@OPENJ9_TAG@/%{openj9_tag}/g" \
| sed "s/@OPENJ9OMR_SHA@/`expr substr '%{omr_revision}' 1 7`/g" \
| sed "s/@OPENJDK_SHA@/`expr substr '%{root_revision}' 1 7`/g" \
| patch -p1 -u -l
sed -i -e "s/<Unknown>/`expr substr '%{omr_revision}' 1 7`/g" \
omr/cmake/versions.cmake
# Prepare desktop files
for file in %{SOURCE11} %{SOURCE12} ; do
OUTPUT_FILE=`basename $file | sed -e s:\.in$::g`
sed -e s:@JAVA_HOME@:%{_jvmdir}/%{sdkdir}:g $file > $OUTPUT_FILE
sed -i -e s:@VERSION@:%{javaver}.%{_arch}:g $OUTPUT_FILE
done
%build
export ARCH_DATA_MODEL=64
(cd common/autoconf
bash ./autogen.sh
)
EXTRA_CFLAGS="-Wno-error -Wno-maybe-uninitialized -fno-delete-null-pointer-checks -fno-lifetime-dse"
EXTRA_CPP_FLAGS="-Wno-error -Wno-maybe-uninitialized -std=gnu++98 -fno-delete-null-pointer-checks -fno-lifetime-dse"
%ifarch ppc64le
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
%endif
bash configure \
%if 0%{?suse_version} < 1500
CPP=cpp-7 \
CXX=g++-7 \
CC=gcc-7 \
NM=gcc-nm-7 \
%endif
--disable-warnings-as-errors-omr \
--disable-warnings-as-errors-openj9 \
--enable-demos \
--disable-zip-debug-info \
--with-milestone="fcs" \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
--with-debug-level=%{debugbuild} \
--with-conf-name=%{debugbuild} \
--enable-unlimited-crypto \
--with-zlib=system \
--with-libjpeg=system \
--with-giflib=system \
--with-libpng=system \
--with-lcms=system \
--with-openssl=system \
--with-stdc++lib=dynamic \
--with-native-debug-symbols=internal \
--with-boot-jdk=%{_sysconfdir}/alternatives/java_sdk
%{make} \
JAVAC_FLAGS=-g \
LOG=trace \
DEBUG_BINARIES=true \
STRIP_POLICY=no_strip \
POST_STRIP_CMD="" \
WARNINGS_ARE_ERRORS="-Wno-error" \
CFLAGS_WARNINGS_ARE_ERRORS="-Wno-error" \
%{imagestarget} docs
# remove redundant *diz and *debuginfo files
find %{imagesdir}/j2sdk-image -iname '*.diz' -exec rm {} \;
find %{imagesdir}/j2sdk-image -iname '*.debuginfo' -exec rm {} \;
export JAVA_HOME=$(pwd)/%{imagesdir}/j2sdk-image
# cacerts are generated in runtime in openSUSE
if [ -f %{imagesdir}/j2sdk-image/jre/lib/security/cacerts ]; then
rm %{imagesdir}/j2sdk-image/jre/lib/security/cacerts
fi
# Check unlimited policy has been used
$JAVA_HOME/bin/javac -d . %{SOURCE14}
$JAVA_HOME/bin/java TestCryptoLevel
%if 0
# Check debug symbols are present and can identify code
SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so"
if [ -f "$SERVER_JVM" ] ; then
nm -aCl "$SERVER_JVM" | grep javaCalls.cpp
fi
CLIENT_JVM="$JAVA_HOME/jre/lib/%{archinstall}/client/libjvm.so"
if [ -f "$CLIENT_JVM" ] ; then
nm -aCl "$CLIENT_JVM" | grep javaCalls.cpp
fi
ZERO_JVM="$JAVA_HOME/jre/lib/%{archinstall}/zero/libjvm.so"
if [ -f "$ZERO_JVM" ] ; then
nm -aCl "$ZERO_JVM" | grep javaCalls.cpp
fi
%endif
%install
export LANG=en_US.UTF-8
#bnc#530046
export STRIP_KEEP_SYMTAB=libjvm*
# skip /usr/lib/rpm/brp-check-bytecode-version:
export NO_BRP_CHECK_BYTECODE_VERSION=true
pushd %{imagesdir}/j2sdk-image
# Install main files.
install -d -m 755 %{buildroot}%{_jvmdir}/%{sdkdir}
cp -a bin include lib src.zip %{buildroot}%{_jvmdir}/%{sdkdir}
install -d -m 755 %{buildroot}%{_jvmdir}/%{jredir}
cp -a jre/bin jre/lib %{buildroot}%{_jvmdir}/%{jredir}
# Install extension symlinks.
install -d -m 755 %{buildroot}%{jvmjardir}
pushd %{buildroot}%{jvmjardir}
RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir}/lib %{jvmjardir})
ln -sf $RELATIVE/jsse.jar jsse-%{version}.jar
ln -sf $RELATIVE/jce.jar jce-%{version}.jar
ln -sf $RELATIVE/rt.jar jndi-%{version}.jar
ln -sf $RELATIVE/rt.jar jndi-ldap-%{version}.jar
ln -sf $RELATIVE/rt.jar jndi-cos-%{version}.jar
ln -sf $RELATIVE/rt.jar jndi-rmi-%{version}.jar
ln -sf $RELATIVE/rt.jar jaas-%{version}.jar
ln -sf $RELATIVE/rt.jar jdbc-stdext-%{version}.jar
ln -sf jdbc-stdext-%{version}.jar jdbc-stdext-3.0.jar
ln -sf $RELATIVE/rt.jar sasl-%{version}.jar
for jar in *-%{version}.jar
do
if [ x%{version} != x%{javaver} ]
then
ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|-%{javaver}.jar|g")
fi
ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|.jar|g")
done
popd
# Install JCE policy symlinks.
install -d -m 755 %{buildroot}%{_jvmprivdir}/%{archname}/jce/vanilla
# Install versionless symlinks.
pushd %{buildroot}%{_jvmdir}
ln -sf %{jredir} %{jrelnk}
ln -sf %{sdkdir} %{sdklnk}
popd
pushd %{buildroot}%{_jvmjardir}
ln -sf %{sdkdir} %{jrelnk}
ln -sf %{sdkdir} %{sdklnk}
popd
# Remove javaws man page
rm -f man/man1/javaws*
# Install man pages.
install -d -m 755 %{buildroot}%{_mandir}/man1
# These tree tools are not built,
# so disregard their manpages too.
rm -f man/man1/jhat.1*
rm -f man/man1/jinfo.1*
rm -f man/man1/jstatd.1*
for manpage in man/man1/*
do
# Convert man pages to UTF8 encoding.
iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
mv -f $manpage.tmp $manpage
install -m 644 -p $manpage %{buildroot}%{_mandir}/man1/$(basename \
$manpage .1)-%{sdklnk}.1
done
# Install demos and samples.
cp -a demo %{buildroot}%{_jvmdir}/%{sdkdir}
# enable short-circuit
mkdir -p sample/rmi
[ -f bin/java-rmi.cgi ] && mv bin/java-rmi.cgi sample/rmi
cp -a sample %{buildroot}%{_jvmdir}/%{sdkdir}
popd
# Install Javadoc documentation.
install -d -m 755 %{buildroot}%{_javadocdir}
cp -a build/%{debugbuild}/docs %{buildroot}%{_javadocdir}/%{sdklnk}
# Install icons and menu entries.
for s in 16 24 32 48 ; do
install -D -p -m 644 \
jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
%{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-openj9.png
done
# Install desktop files.
install -d -m 0755 %{buildroot}%{_datadir}/{applications,pixmaps}
install -d -m 0755 %{buildroot}/%{_jvmdir}/%{jredir}/lib/desktop/
for d in jconsole policytool; do
install -m 0644 $d.desktop %{buildroot}/%{_jvmdir}/%{jredir}/lib/desktop/
%suse_update_desktop_file %{buildroot}/%{_jvmdir}/%{jredir}/lib/desktop/$d.desktop
done
# Find JRE directories.
find %{buildroot}%{_jvmdir}/%{jredir} -type d \
| grep -v jre/lib/security \
| sed 's|'%{buildroot}'|%dir |' \
> %{name}.files.headless
# Find JRE files.
find %{buildroot}%{_jvmdir}/%{jredir} -type f -o -type l \
| grep -v jre/lib/security \
| sed 's|'%{buildroot}'||' \
>> %{name}.files.all
#split %{name}.files to %{name}.files-headless and %{name}.files
#see https://bugzilla.redhat.com/show_bug.cgi?id=875408
NOT_HEADLESS=\
"%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjsoundalsa.so
%{_jvmdir}/%{jredir}/lib/%{archinstall}/libsplashscreen.so
%{_jvmdir}/%{jredir}/lib/%{archinstall}/libawt_xawt.so
%{_jvmdir}/%{jredir}/lib/%{archinstall}/libjawt.so"
#filter %{name}.files from %{name}.files.all to %{name}.files-headless
ALL=`cat %{name}.files.all`
for file in $ALL ; do
INLCUDE="NO" ;
for blacklist in $NOT_HEADLESS ; do
# we can not match normally, because rpmbuild will evaluate !0 result as script failure
q=`expr match "$file" "$blacklist"` || :
l=`expr length "$blacklist"` || :
if [ $q -eq $l ]; then
INLCUDE="YES" ;
fi;
done
if [ "x$INLCUDE" = "xNO" ]; then
echo "$file" >> %{name}.files-headless
else
echo "$file" >> %{name}.files
fi
done
# Find demo directories.
find %{buildroot}%{_jvmdir}/%{sdkdir}/demo \
%{buildroot}%{_jvmdir}/%{sdkdir}/sample -type d \
| sed 's|'%{buildroot}'|%dir |' \
> %{name}-demo.files
# FIXME: remove SONAME entries from demo DSOs. See
# https://bugzilla.redhat.com/show_bug.cgi?id=436497
# Find non-documentation demo files.
find %{buildroot}%{_jvmdir}/%{sdkdir}/demo \
%{buildroot}%{_jvmdir}/%{sdkdir}/sample \
-type f -o -type l | sort \
| grep -v README \
| sed 's|'%{buildroot}'||' \
>> %{name}-demo.files
# Find documentation demo files.
find %{buildroot}%{_jvmdir}/%{sdkdir}/demo \
%{buildroot}%{_jvmdir}/%{sdkdir}/sample \
-type f -o -type l | sort \
| grep README \
| sed 's|'%{buildroot}'||' \
| sed 's|^|%doc |' \
>> %{name}-demo.files
# Create links which leads to separately installed java-atk-bridge and allow configuration
# links points to java-atk-wrapper - an dependence
# mvyskocil: links are handled in post, lets make ghost files there
touch %{buildroot}/%{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so
touch %{buildroot}/%{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar
pushd %{buildroot}/%{_jvmdir}/%{jredir}/lib/
echo "#Config file to enable java-atk-wrapper" > accessibility.properties
echo "" >> accessibility.properties
echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >> accessibility.properties
echo "" >> accessibility.properties
popd
# fdupes links the files from JDK to JRE, so it breaks a JRE
# use it carefully :))
%fdupes -s %{buildroot}/%{_jvmdir}/%{jredir}/
%fdupes -s %{buildroot}/%{_jvmdir}/%{sdkdir}/demo
%fdupes -s %{buildroot}%{_javadocdir}/%{sdklnk}
%post headless
ext=.gz
update-alternatives \
--install %{_bindir}/java java %{jrebindir}/java %{priority} \
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jrelnk} \
--slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \
--slave %{_bindir}/keytool keytool %{jrebindir}/keytool \
--slave %{_bindir}/orbd orbd %{jrebindir}/orbd \
--slave %{_bindir}/policytool policytool %{jrebindir}/policytool \
--slave %{_bindir}/rmid rmid %{jrebindir}/rmid \
--slave %{_bindir}/rmiregistry rmiregistry %{jrebindir}/rmiregistry \
--slave %{_bindir}/servertool servertool %{jrebindir}/servertool \
--slave %{_bindir}/tnameserv tnameserv %{jrebindir}/tnameserv \
--slave %{_bindir}/pack200 pack200 %{jrebindir}/pack200 \
--slave %{_bindir}/unpack200 unpack200 %{jrebindir}/unpack200 \
--slave %{_mandir}/man1/java.1$ext java.1$ext \
%{_mandir}/man1/java-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \
%{_mandir}/man1/keytool-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \
%{_mandir}/man1/orbd-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \
%{_mandir}/man1/policytool-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \
%{_mandir}/man1/rmid-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \
%{_mandir}/man1/rmiregistry-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \
%{_mandir}/man1/servertool-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \
%{_mandir}/man1/tnameserv-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \
%{_mandir}/man1/pack200-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \
%{_mandir}/man1/unpack200-%{sdklnk}.1$ext \
--slave %{_datadir}/applications/policytool.desktop policytool.desktop \
%{_jvmdir}/%{jredir}/lib/desktop/policytool.desktop \
|| :
update-alternatives \
--install %{_jvmdir}/jre-openjdk \
jre_openjdk %{_jvmdir}/%{jrelnk} %{priority} \
--slave %{_jvmjardir}/jre-openjdk \
jre_openjdk_exports %{_jvmjardir}/%{jrelnk}
update-alternatives \
--install %{_jvmdir}/jre-%{javaver} \
jre_%{javaver} %{_jvmdir}/%{jrelnk} %{priority} \
--slave %{_jvmjardir}/jre-%{javaver} \
jre_%{javaver}_exports %{_jvmjardir}/%{jrelnk}
%postun headless
if [ $1 -eq 0 ]
then
if test -f /proc/sys/fs/binfmt_misc/jarexec
then
echo '-1' > /proc/sys/fs/binfmt_misc/jarexec
fi
update-alternatives --remove java %{jrebindir}/java
update-alternatives --remove jre_openjdk %{_jvmdir}/%{jrelnk}
update-alternatives --remove jre_%{javaver} %{_jvmdir}/%{jrelnk}
fi
%posttrans headless
# bnc#781690#c11: don't trust user defined JAVA_HOME and use the current VM
# XXX: this might conflict between various versions of openjdk
export JAVA_HOME=%{_jvmdir}/%{jrelnk}
# check if the java-cacerts is a valid keystore (bnc#781690)
if [ X"`%{_bindir}/file --mime-type -b %{javacacerts}`" \
!= "Xapplication/x-java-keystore;" ]; then
%{_sbindir}/update-ca-certificates
fi
# remove the default empty cacert file, if it's installed
if [ 0`stat -c "%%s" %{cacerts} 2>/dev/null` = "032" ] ; then
rm -f %{cacerts}
fi
# if cacerts does exists, neither does not contain/point to a
# valid keystore (bnc#781690) ...
if [ X"`%{_bindir}/file --mime-type -b -L %{cacerts}`" \
!= "Xapplication/x-java-keystore;" ]; then
# bnc#727223
rm -f %{cacerts}
ln -s %{javacacerts} %{cacerts}
fi
%post devel
ext=.gz
update-alternatives \
--install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdklnk} \
--slave %{_jvmjardir}/java java_sdk_exports %{jvmjarlink} \
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir}/appletviewer \
--slave %{_bindir}/extcheck extcheck %{sdkbindir}/extcheck \
--slave %{_bindir}/jar jar %{sdkbindir}/jar \
--slave %{_bindir}/jarsigner jarsigner %{sdkbindir}/jarsigner \
--slave %{_bindir}/javadoc javadoc %{sdkbindir}/javadoc \
--slave %{_bindir}/javah javah %{sdkbindir}/javah \
--slave %{_bindir}/javap javap %{sdkbindir}/javap \
--slave %{_bindir}/jconsole jconsole %{sdkbindir}/jconsole \
--slave %{_bindir}/jdb jdb %{sdkbindir}/jdb \
--slave %{_bindir}/jmap jmap %{sdkbindir}/jmap \
--slave %{_bindir}/jps jps %{sdkbindir}/jps \
--slave %{_bindir}/jrunscript jrunscript %{sdkbindir}/jrunscript \
--slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir}/jsadebugd \
--slave %{_bindir}/jstack jstack %{sdkbindir}/jstack \
--slave %{_bindir}/jstat jstat %{sdkbindir}/jstat \
--slave %{_bindir}/native2ascii native2ascii %{sdkbindir}/native2ascii \
--slave %{_bindir}/rmic rmic %{sdkbindir}/rmic \
--slave %{_bindir}/schemagen schemagen %{sdkbindir}/schemagen \
--slave %{_bindir}/serialver serialver %{sdkbindir}/serialver \
--slave %{_bindir}/wsgen wsgen %{sdkbindir}/wsgen \
--slave %{_bindir}/wsimport wsimport %{sdkbindir}/wsimport \
--slave %{_bindir}/xjc xjc %{sdkbindir}/xjc \
--slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \
%{_mandir}/man1/appletviewer-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \
%{_mandir}/man1/extcheck-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/jar.1$ext jar.1$ext \
%{_mandir}/man1/jar-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \
%{_mandir}/man1/jarsigner-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/javac.1$ext javac.1$ext \
%{_mandir}/man1/javac-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \
%{_mandir}/man1/javadoc-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/javah.1$ext javah.1$ext \
%{_mandir}/man1/javah-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/javap.1$ext javap.1$ext \
%{_mandir}/man1/javap-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \
%{_mandir}/man1/jconsole-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \
%{_mandir}/man1/jdb-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \
%{_mandir}/man1/jrunscript-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \
%{_mandir}/man1/jsadebugd-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \
%{_mandir}/man1/native2ascii-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \
%{_mandir}/man1/rmic-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \
%{_mandir}/man1/schemagen-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \
%{_mandir}/man1/serialver-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \
%{_mandir}/man1/wsgen-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \
%{_mandir}/man1/wsimport-%{sdklnk}.1$ext \
--slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \
%{_mandir}/man1/xjc-%{sdklnk}.1$ext \
--slave %{_datadir}/applications/jconsole.desktop jconsole.desktop \
%{_jvmdir}/%{jredir}/lib/desktop/jconsole.desktop \
|| :
update-alternatives \
--install %{_jvmdir}/java-openjdk \
java_sdk_openjdk %{_jvmdir}/%{sdklnk} %{priority} \
--slave %{_jvmjardir}/java-openjdk \
java_sdk_openjdk_exports %{jvmjarlink}
update-alternatives \
--install %{_jvmdir}/java-%{javaver} \
java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} %{priority} \
--slave %{_jvmjardir}/java-%{javaver} \
java_sdk_%{javaver}_exports %{jvmjarlink}
%postun devel
if [ $1 -eq 0 ]
then
update-alternatives --remove javac %{sdkbindir}/javac
update-alternatives --remove java_sdk_openjdk %{_jvmdir}/%{sdklnk}
update-alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk}
fi
%post javadoc
# in some settings, the %{_javadocdir}/%{sdklnk}/api does not exist
# and the update-alternatives call ends up in error. So, filter this
# cases out.
if [ -d %{_javadocdir}/%{sdklnk}/api ]
then
update-alternatives \
--install %{_javadocdir}/java javadocdir %{_javadocdir}/%{sdklnk}/api \
%{priority}
fi
%postun javadoc
if [ $1 -eq 0 ]
then
# in some settings, the %{_javadocdir}/%{sdklnk}/api does not exist
# and the update-alternatives call ends up in error. So, filter this
# cases out.
if [ -d %{_javadocdir}/%{sdklnk}/api ]
then
update-alternatives --remove javadocdir %{_javadocdir}/%{sdklnk}/api
fi
fi
%post accessibility
# create links to java-atk-wrapper
if [ ! -e %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so ]; then
if [ -e %{_libdir}/java-atk-wrapper/libatk-wrapper.so ]; then
ln -sf %{_libdir}/java-atk-wrapper/libatk-wrapper.so %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so
else
ln -sf %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so
fi
fi
if [ ! -e %{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar ]; then
ln -sf %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar %{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar
fi
%files -f %{name}.files
%dir %{_jvmdir}/%{jredir}/lib/%{archinstall}
%dir %{_datadir}/icons/hicolor
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-openj9.png
%files headless -f %{name}.files-headless
%dir %{_jvmdir}
%dir %{_jvmdir}/%{jredir}/
%dir %{_jvmdir}/%{jredir}/bin
%dir %{_jvmdir}/%{jredir}/lib
%dir %{_jvmdir}/%{jredir}/lib/%{archinstall}
%dir %{_jvmdir}/%{jredir}/lib/%{archinstall}/default
%dir %{_jvmdir}/%{jredir}/lib/%{archinstall}/jli
%dir %{_jvmdir}/%{jredir}/lib/%{archinstall}/j9vm
%dir %{_jvmdir}/%{jredir}/lib/%{archinstall}/server
%dir %{_jvmdir}/%{jredir}/lib/cmm
%dir %{_jvmdir}/%{jredir}/lib/ddr
%dir %{_jvmdir}/%{jredir}/lib/desktop
%dir %{_jvmdir}/%{jredir}/lib/ext
%dir %{_jvmdir}/%{jredir}/lib/images
%dir %{_jvmdir}/%{jredir}/lib/images/cursors
%dir %{_jvmdir}/%{jredir}/lib/management
%dir %{_jvmdir}/%{jredir}/lib/security
%dir %{_jvmdir}/%{jredir}/lib/security/policy
%dir %{_jvmdir}/%{jredir}/lib/security/policy/limited
%dir %{_jvmdir}/%{jredir}/lib/security/policy/unlimited
%dir %{_libdir}/jvm-exports
%dir %{_libdir}/jvm-private
%doc %{imagesdir}/j2sdk-image/jre/ASSEMBLY_EXCEPTION
%license %{imagesdir}/j2sdk-image/jre/LICENSE LICENSE.openj9
%doc %{imagesdir}/j2sdk-image/jre/THIRD_PARTY_README
%dir %{_jvmdir}/%{sdkdir}
%{_jvmdir}/%{jrelnk}
%{_jvmjardir}/%{jrelnk}
%{_jvmprivdir}/*
%{jvmjardir}
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs
%{_mandir}/man1/java-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/jjs-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/keytool-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/orbd-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/pack200-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/policytool-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/rmid-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/rmiregistry-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/servertool-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/tnameserv-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/unpack200-%{sdklnk}.1%{?ext_man}
%{_jvmdir}/%{jredir}/lib/security/policy/limited/US_export_policy.jar
%{_jvmdir}/%{jredir}/lib/security/policy/limited/local_policy.jar
%{_jvmdir}/%{jredir}/lib/security/policy/unlimited/US_export_policy.jar
%{_jvmdir}/%{jredir}/lib/security/policy/unlimited/local_policy.jar
%ifnarch %{aarch64}
%{_jvmdir}/%{jredir}/lib/security/nss.fips.cfg
%endif
%files devel
%dir %{_jvmdir}/%{sdkdir}/bin
%dir %{_jvmdir}/%{sdkdir}/include
%dir %{_jvmdir}/%{sdkdir}/lib
%{_jvmdir}/%{sdkdir}/bin/*
%{_jvmdir}/%{sdkdir}/include/*
%{_jvmdir}/%{sdkdir}/lib/*
%{_jvmdir}/%{sdklnk}
%{_jvmjardir}/%{sdklnk}
%{_mandir}/man1/appletviewer-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/extcheck-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/idlj-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/jar-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/jarsigner-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/javac-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/javadoc-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/javah-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/javap-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/jconsole-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/jdb-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/jdeps-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/jrunscript-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/jsadebugd-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/native2ascii-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/rmic-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/schemagen-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/serialver-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/wsgen-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/wsimport-%{sdklnk}.1%{?ext_man}
%{_mandir}/man1/xjc-%{sdklnk}.1%{?ext_man}
%files demo -f %{name}-demo.files
%files src
%{_jvmdir}/%{sdkdir}/src.zip
%files javadoc
%dir %{_javadocdir}
%dir %{_javadocdir}/%{sdklnk}
%{_javadocdir}/%{sdklnk}/*
%files accessibility
%dir %{_jvmdir}/%{jredir}/lib/ext
%config(noreplace) %{_jvmdir}/%{jredir}/lib/accessibility.properties
%ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so
%ghost %{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar
%changelog

View File

@ -0,0 +1,24 @@
--- openjdk/jdk/src/share/lib/security/java.security-linux 2014-07-15 23:08:27.000000000 +0200
+++ openjdk/jdk/src/share/lib/security/java.security-linux 2014-07-18 09:04:45.127566697 +0200
@@ -227,7 +227,9 @@
com.sun.activation.registries.,\
jdk.jfr.events.,\
jdk.jfr.internal.,\
- jdk.management.jfr.internal.
+ jdk.management.jfr.internal.\
+ org.GNOME.Accessibility.,\
+ org.GNOME.Bonobo.
#
# List of comma-separated packages that start with or equal this string
@@ -280,7 +282,9 @@
com.sun.activation.registries.,\
jdk.jfr.events.,\
jdk.jfr.internal.,\
- jdk.management.jfr.internal.
+ jdk.management.jfr.internal.\
+ org.GNOME.Accessibility.,\
+ org.GNOME.Bonobo.
#
# Determines whether this properties file can be appended to

11
jconsole.desktop.in Normal file
View File

@ -0,0 +1,11 @@
[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

85
libdwarf-fix.patch Normal file
View File

@ -0,0 +1,85 @@
--- a/omr/ddr/lib/ddr-scanner/dwarf/DwarfScanner.cpp
+++ b/omr/ddr/lib/ddr-scanner/dwarf/DwarfScanner.cpp
@@ -1497,6 +1497,13 @@ DwarfScanner::traverse_cu_in_debug_section(Symbol_IR *ir)
Dwarf_Half addressSize = 0;
Dwarf_Unsigned nextCUheader = 0;
Dwarf_Error error = NULL;
+#ifdef DW_LIBDWARF_VERSION_MAJOR
+ Dwarf_Half lengthSize = 0;
+ Dwarf_Half extensionSize = 0;
+ Dwarf_Sig8 typeSignature;
+ Dwarf_Unsigned typeOffset = 0;
+ Dwarf_Half nextCUheaderType = 0;
+#endif
/* Go over each cu header. */
while (DDR_RC_OK == rc) {
@@ -1504,7 +1511,11 @@ DwarfScanner::traverse_cu_in_debug_section(Symbol_IR *ir)
_typeOffsetMap.clear();
_ir = &newIR;
+#ifdef DW_LIBDWARF_VERSION_MAJOR
+ int ret = dwarf_next_cu_header_d(_debug, true, &cuHeaderLength, &versionStamp, &abbrevOffset, &addressSize, &lengthSize, &extensionSize, &typeSignature, &typeOffset, &nextCUheader, &nextCUheaderType, &error);
+#else
int ret = dwarf_next_cu_header(_debug, &cuHeaderLength, &versionStamp, &abbrevOffset, &addressSize, &nextCUheader, &error);
+#endif
if (DW_DLV_ERROR == ret) {
ERRMSG("Failed to get next dwarf CU header.");
rc = DDR_RC_ERROR;
@@ -1518,7 +1529,11 @@ DwarfScanner::traverse_cu_in_debug_section(Symbol_IR *ir)
Dwarf_Die childDie = NULL;
/* Expect the CU to have a single sibling - a DIE */
+#ifdef DW_LIBDWARF_VERSION_MAJOR
+ if (DW_DLV_ERROR == dwarf_siblingof_b(_debug, NULL, true, &cuDie, &error)) {
+#else
if (DW_DLV_ERROR == dwarf_siblingof(_debug, NULL, &cuDie, &error)) {
+#endif
ERRMSG("Getting sibling of CU: %s\n", dwarf_errmsg(error));
rc = DDR_RC_ERROR;
break;
@@ -1617,12 +1632,20 @@ DwarfScanner::scanFile(OMRPortLibrary *portLibrary, Symbol_IR *ir, const char *f
}
if (DDR_RC_OK == rc) {
+#ifdef DW_LIBDWARF_VERSION_MAJOR
+ unsigned int groupNumber = DW_GROUPNUMBER_ANY;
+#else
Dwarf_Unsigned access = DW_DLC_READ;
+#endif
Dwarf_Handler errhand = 0;
Dwarf_Ptr errarg = NULL;
intptr_t native_fd = omrfile_convert_omrfile_fd_to_native_fd(fd);
DwarfScanner::scanFileName = filepath;
+#ifdef DW_LIBDWARF_VERSION_MAJOR
+ res = dwarf_init_b((int)native_fd, groupNumber, errhand, errarg, &_debug, &error);
+#else
res = dwarf_init((int)native_fd, access, errhand, errarg, &_debug, &error);
+#endif
if (DW_DLV_OK != res) {
ERRMSG("Failed to initialize libDwarf scanning %s: %s\nExiting...\n", filepath, dwarf_errmsg(error));
if (NULL != error) {
@@ -1640,7 +1663,11 @@ DwarfScanner::scanFile(OMRPortLibrary *portLibrary, Symbol_IR *ir, const char *f
DEBUGPRINTF("Unloading libDwarf");
+#ifdef DW_LIBDWARF_VERSION_MAJOR
+ res = dwarf_finish(_debug);
+#else
res = dwarf_finish(_debug, &error);
+#endif
if (DW_DLV_OK != res) {
ERRMSG("Failed to Unload libDwarf: %s\nExiting...\n", dwarf_errmsg(error));
if (NULL != error) {
@@ -1681,7 +1708,11 @@ DwarfScanner::getNextSibling(Dwarf_Die *die)
Dwarf_Error err = NULL;
/* Get the next sibling and free the previous one if successful. */
+#ifdef DW_LIBDWARF_VERSION_MAJOR
+ int ret = dwarf_siblingof_b(_debug, *die, true, &nextSibling, &err);
+#else
int ret = dwarf_siblingof(_debug, *die, &nextSibling, &err);
+#endif
if (DW_DLV_ERROR == ret) {
ERRMSG("Getting sibling of die:%s\n", dwarf_errmsg(err));
} else if (DW_DLV_OK == ret) {

View File

@ -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 {

21
openj9-no-narrowing.patch Normal file
View File

@ -0,0 +1,21 @@
--- a/openj9/runtime/compiler/env/j9methodServer.cpp
+++ b/openj9/runtime/compiler/env/j9methodServer.cpp
@@ -2634,7 +2634,7 @@ TR_ResolvedRelocatableJ9JITServerMethod::validateMethodFieldAttributes(const TR_
return equal;
}
-TR_J9ServerMethod::TR_J9ServerMethod(TR_FrontEnd * fe, TR_Memory * trMemory, J9Class * aClazz, uintptr_t cpIndex)
+TR_J9ServerMethod::TR_J9ServerMethod(TR_FrontEnd * fe, TR_Memory * trMemory, J9Class * aClazz, int32_t cpIndex)
: TR_J9Method()
{
TR_ASSERT(cpIndex != -1, "cpIndex shouldn't be -1");
--- a/openj9/runtime/compiler/env/j9methodServer.hpp
+++ b/openj9/runtime/compiler/env/j9methodServer.hpp
@@ -326,6 +326,6 @@ protected:
class TR_J9ServerMethod : public TR_J9Method
{
public:
- TR_J9ServerMethod(TR_FrontEnd *trvm, TR_Memory *, J9Class * aClazz, uintptr_t cpIndex);
+ TR_J9ServerMethod(TR_FrontEnd *trvm, TR_Memory *, J9Class * aClazz, int32_t cpIndex);
};
#endif // J9METHODSERVER_H

48
openj9-no-werror.patch Normal file
View File

@ -0,0 +1,48 @@
--- openj9/runtime/makelib/targets.mk.linux.inc.ftl 2020-04-15 02:48:00.000000000 +0200
+++ openj9/runtime/makelib/targets.mk.linux.inc.ftl 2020-06-26 07:37:18.255678364 +0200
@@ -459,18 +459,18 @@
ifndef UMA_SUPPRESS_WARNINGS_AS_ERRORS
<#if uma.spec.processor.ppc>
<#if uma.spec.flags.env_gcc.enabled>
- CFLAGS += -Wreturn-type -Werror
- CXXFLAGS += -Wreturn-type -Werror
+ CFLAGS += -Wreturn-type
+ CXXFLAGS += -Wreturn-type
<#else>
CFLAGS += -qhalt=w
CXXFLAGS += -qhalt=w
</#if>
ifdef USE_PPC_GCC
- PPC_GCC_CXXFLAGS += -Wreturn-type -Werror
+ PPC_GCC_CXXFLAGS += -Wreturn-type
endif
<#else>
- CFLAGS += -Wimplicit -Wreturn-type -Werror
- CXXFLAGS += -Wreturn-type -Werror
+ CFLAGS += -Wimplicit -Wreturn-type
+ CXXFLAGS += -Wreturn-type
</#if>
endif
endif
--- omr/omrmakefiles/rules.linux.mk 2020-04-14 14:43:05.000000000 +0200
+++ omr/omrmakefiles/rules.linux.mk 2020-06-26 08:19:16.264774446 +0200
@@ -345,15 +345,15 @@
ifeq ($(OMR_WARNINGS_AS_ERRORS),1)
ifeq (ppc,$(OMR_HOST_ARCH))
ifeq (gcc,$(OMR_TOOLCHAIN))
- GLOBAL_CFLAGS += -Wreturn-type -Werror
- GLOBAL_CXXFLAGS += -Wreturn-type -Werror
+ GLOBAL_CFLAGS += -Wreturn-type
+ GLOBAL_CXXFLAGS += -Wreturn-type
else
GLOBAL_CFLAGS += -qhalt=w
GLOBAL_CXXFLAGS += -qhalt=w
endif
else
- GLOBAL_CFLAGS+=-Wimplicit -Wreturn-type -Werror
- GLOBAL_CXXFLAGS+=-Wreturn-type -Werror
+ GLOBAL_CFLAGS+=-Wimplicit -Wreturn-type
+ GLOBAL_CXXFLAGS+=-Wreturn-type
endif
endif

57
openj9-nogit.patch.in Normal file
View File

@ -0,0 +1,57 @@
--- a/closed/OpenJ9.gmk
+++ b/closed/OpenJ9.gmk
@@ -38,11 +38,11 @@ VersionPairs :=
# ----------
# $1 - repository display name
# $2 - variable name
-# $3 - root directory of git repository
+# $3 - variable value
# $4 - 'required' for a required repository, anything else for an optional one
GetVersion = $(eval $(call GetVersionHelper,$(strip $1),$(strip $2),$(strip $3),$(strip $4)))
define GetVersionHelper
- $2 := $$(if $(wildcard $3),$$(shell $(GIT) -C $3 rev-parse --short HEAD))
+ $2 := $3
ifneq (,$$($2))
VersionLabelWidth := $(shell $(ECHO) "$1" | $(AWK) "{ width = length; print (width > $(VersionLabelWidth) ? width : $(VersionLabelWidth)) }")
VersionPairs += "$1" "$$($2)"
@@ -58,17 +58,17 @@ define ShowVersions
@$(PRINTF) " %-$(VersionLabelWidth)s - %s\n" $(VersionPairs)
endef # ShowVersions
-$(call GetVersion, openjdk, OPENJDK_SHA, $(TOPDIR), required)
-$(call GetVersion, openj9, OPENJ9_SHA, $(OPENJ9_TOPDIR), required)
-$(call GetVersion, omr, OPENJ9OMR_SHA, $(OPENJ9OMR_TOPDIR), required)
-$(call GetVersion, openssl, OPENSSL_SHA, $(OPENSSL_DIR))
+$(call GetVersion, openjdk, OPENJDK_SHA, @OPENJDK_SHA@, required)
+$(call GetVersion, openj9, OPENJ9_SHA, @OPENJ9_SHA@, required)
+$(call GetVersion, omr, OPENJ9OMR_SHA, @OPENJ9OMR_SHA@, required)
+$(call GetVersion, openssl, OPENSSL_SHA, @OPENSSL_SHA@ )
# 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@
ifneq (,$(OPENJ9_TAG))
OPENJ9_VERSION_STRING := $(OPENJ9_TAG)
else
- 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
diff --git a/closed/make/Main.gmk b/closed/make/Main.gmk
index d73fff3230..d17eea56b8 100644
--- a/closed/make/Main.gmk
+++ b/closed/make/Main.gmk
@@ -35,9 +35,9 @@ clean-j9vm :
# Override definition from MakeBase.gmk for OpenJ9.
define GetSourceTips
$(PRINTF) "%s:%s\n" \
- OpenJDK "$(shell $(GIT) -C $(TOPDIR) rev-parse --short HEAD)" \
- OpenJ9 "$(shell $(GIT) -C $(OPENJ9_TOPDIR) rev-parse --short HEAD)" \
- OMR "$(shell $(GIT) -C $(OPENJ9OMR_TOPDIR) rev-parse --short HEAD)" \
+ OpenJDK "@OPENJDK_SHA@" \
+ OpenJ9 "@OPENJ9_SHA@" \
+ OMR "@OPENJ9OMR_SHA@" \
> $@
endef

13
openj9-openssl.patch Normal file
View File

@ -0,0 +1,13 @@
--- a/openj9/runtime/compiler/runtime/Listener.cpp
+++ b/openj9/runtime/compiler/runtime/Listener.cpp
@@ -44,6 +44,10 @@
#include "runtime/CompileService.hpp"
#include "runtime/Listener.hpp"
+#ifndef SSL_R_UNEXPECTED_EOF_WHILE_READING
+#define SSL_R_UNEXPECTED_EOF_WHILE_READING 294
+#endif
+
static bool
handleOpenSSLConnectionError(int connfd, SSL *&ssl, BIO *&bio, const char *errMsg, int ret, TR::CompilationInfo *compInfo)
{

11
policytool.desktop.in Normal file
View File

@ -0,0 +1,11 @@
[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

20
stringop-overflow.patch Normal file
View File

@ -0,0 +1,20 @@
diff -urEbwB openj9-openjdk-jdk17.orig/omr/compiler/optimizer/OMRSimplifierHandlers.cpp openj9-openjdk-jdk17/omr/compiler/optimizer/OMRSimplifierHandlers.cpp
--- openj9-openjdk-jdk17.orig/omr/compiler/optimizer/OMRSimplifierHandlers.cpp 2023-03-28 09:18:57.979474249 +0200
+++ openj9-openjdk-jdk17/omr/compiler/optimizer/OMRSimplifierHandlers.cpp 2023-03-28 09:49:47.316000333 +0200
@@ -22,6 +22,9 @@
#ifndef OMR_SIMPLIFIERHANDLERS_INCL
#define OMR_SIMPLIFIERHANDLERS_INCL
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstringop-overflow"
+
#include "optimizer/OMRSimplifierHelpers.hpp"
#include "optimizer/SimplifierHandlers.hpp"
@@ -17353,5 +17356,6 @@
return node;
}
+#pragma GCC diagnostic pop
#endif

99
system-lcms.patch Normal file
View File

@ -0,0 +1,99 @@
--- 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 @@
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, \
@@ -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;
}
});

240
system-libjpeg.patch Normal file
View File

@ -0,0 +1,240 @@
--- jdk8/common/autoconf/libraries.m4 2023-11-22 18:11:00.405573557 +0100
+++ jdk8/common/autoconf/libraries.m4 2023-11-22 18:13:07.916625522 +0100
@@ -609,11 +609,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 2023-11-22 18:11:00.615575289 +0100
+++ jdk8/jdk/make/lib/Awt2dLibraries.gmk 2023-11-22 18:15:26.204333006 +0100
@@ -702,18 +702,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
@@ -728,37 +730,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), \
+ $(BUILD_LIBJAVAJPEG_CLOSED_INCLUDES) \
+ $(BUILD_LIBJAVAJPEG_HEADERS), \
+ MAPFILE := $(BUILD_LIBJAVAJPEG_MAPFILE), \
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=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)
##########################################################################################
@@ -1197,6 +1212,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
@@ -1259,11 +1281,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 2023-11-22 18:11:00.668909063 +0100
+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java 2023-11-22 18:13:07.916625522 +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 2023-11-22 18:11:00.668909063 +0100
+++ jdk8/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java 2023-11-22 18:13:07.916625522 +0100
@@ -177,7 +177,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 2023-11-22 18:11:00.855577269 +0100
+++ jdk8/jdk/src/share/classes/sun/awt/image/JPEGImageDecoder.java 2023-11-22 18:13:07.916625522 +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 2023-11-22 18:11:01.012245228 +0100
+++ jdk8/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2023-11-22 18:13:07.919958884 +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 2023-11-22 18:11:01.028912033 +0100
+++ jdk8/jdk/src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c 2023-11-22 18:13:07.919958884 +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;

111
system-libpng.patch Normal file
View File

@ -0,0 +1,111 @@
--- 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