SuccessChanges

Summary

  1. Bug 1172: Use the same in-jar folder structure for native jars as the (details)
  2. Bug 1145: Fix cc1 NativeLibrary: Add current working directory + (details)
  3. Bug 1194: NativeLibrary: Remove dangerous search paths using the JRE (details)
  4. Bug 1194: Reinstate system-lib search for NativeLibrary.open(..) and (details)
  5. Bug 1145: Fix cc2: Null versions reported using the fat-jar (details)
  6. Bug 1172: TempJarCache: Only copy native library files from (details)
Commit 3f73bbbd44721cc666e4d3505fcf163490636ba8 by xerxes
Bug 1172: Use the same in-jar folder structure for native jars as the fat-jar
The file was modifiedmake/gluegen-cpptasks-base.xml (diff)
Commit bf4d8786cb732d86db333b43020ecf0af27f60bf by xerxes
Bug 1145: Fix cc1 NativeLibrary: Add current working directory + natives/os-arch/ + library names

Fixes Bug 1145 cc1 when using an unpacked fat-jar
The file was modifiedsrc/java/com/jogamp/common/os/NativeLibrary.java (diff)
Commit d12e4d4ea279998b27457691038e709879dcaca6 by xerxes
Bug 1194: NativeLibrary: Remove dangerous search paths using the JRE extension mechanism

NativeLibrary:
    API change: Removed searchSystemPathFirst argument to the
    open and enumerateLibraryPaths methods.
    Removed the generic sun.boot.library.path system path and the
    MacOS specific Frameworks paths from enumerateLibraryPaths.

JNILibLoaderBase, PlatformPropsImpl & TestElfReader01:
   Updated to handle the NativeLibrary API change.

This change will prevent JogAmp modules to pickup and load unsupported
and old SUN JOGL 1 natives that may have been deployed with the JRE.
The file was modifiedsrc/junit/com/jogamp/common/os/TestElfReader01.java (diff)
The file was modifiedsrc/java/com/jogamp/common/os/NativeLibrary.java (diff)
The file was modifiedsrc/java/com/jogamp/common/jvm/JNILibLoaderBase.java (diff)
The file was modifiedsrc/java/jogamp/common/os/PlatformPropsImpl.java (diff)
Commit 6557eedd0f0ec98d743c762a698bb028e88a9e16 by Sven Gothel
Bug 1194: Reinstate system-lib search for NativeLibrary.open(..) and PlatformPropsImpl.findSysLib(..).

This patch partially reverts of commit d12e4d4ea279998b27457691038e709879dcaca6.

NativeLibrary.open(..) requires search of system libraries,
since it loads the actual 'tool library' for which we generate the JNI binding.
The 'tool library' is preferably the system wide installed version,
e.g. libGL.so etc.

PlatformPropsImpl.findSysLib(..) also requires finding system libraries
as needed for PlatformPropsImpl.queryElfFile(..), i.e. using libjava.so etc.

Only the JNI 'glue library', glueing java calls to the 'tool library',
shall not use the system wide library search since we shall only use
JogAmp provided instances here.

This patch also reinstates binary compatibility w/ prev. GlueGen JARs
since NativeLibrary.enumerateLibraryPath(..) is public.

+++

Further more 'NativeLibrary.enumerateLibraryPath(..)'
now adds OSX system framework search _before_ the user path
in case 'searchSystemPath && searchSystemPathFirst'.
Original code always added this search to the end,
which does not match the intended behavior (-> bug).
The file was modifiedsrc/junit/com/jogamp/common/os/TestElfReader01.java (diff)
The file was modifiedsrc/java/com/jogamp/common/os/NativeLibrary.java (diff)
The file was modifiedsrc/java/jogamp/common/os/PlatformPropsImpl.java (diff)
The file was modifiedmake/scripts/runtest.sh (diff)
Commit 32f09a5894ce3b157d5439df83703fa6f5336ff4 by Sven Gothel
Bug 1145: Fix cc2: Null versions reported using the fat-jar (JogampVersion)

In case we run fat-jar file, the package name is 'com.jogamp'
and all entries are based upon GlueGen.

JogampVersion will fall back trying to find a fat-jar Manifest
in case a null Manifest is being passed.
The file was modifiedsrc/java/com/jogamp/common/util/JogampVersion.java (diff)
Commit 41d89263109d20dbcfcc7a642c88a290b4877b5f by Sven Gothel
Bug 1172: TempJarCache: Only copy native library files from 'natives/os.and.arch', reducing JAR search.

Since all native libraries are now contained within 'natives/os.and.arch',
we don't need to search the whole JAR file anymore
but simply can copy the content of the defined folder - if existing.
The file was modifiedmake/scripts/runtest.sh (diff)
The file was modifiedsrc/java/com/jogamp/common/jvm/JNILibLoaderBase.java (diff)