Bug 865

Summary: Applets on Safari >= 6.1 [OSX]: IOUtil.getTempDir(..) Cannot determine executable temp directory
Product: [JogAmp] Gluegen Reporter: Sven Gothel <sgothel>
Component: coreAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: enhancement CC: karelknoest, tarioh
Priority: ---    
Version: 2   
Hardware: All   
OS: macosx   
Type: --- SCM Refs:
fec9712b151ad31b053fe700cb0f809b9715407c
Workaround: ---
Bug Depends on:    
Bug Blocks: 1015    

Description Sven Gothel 2013-10-23 06:31:44 CEST
IOUtil.getTempDir(..) cannot determine executable temp directory on OSX 10.9 / Safari 7.0.
Comment 1 Sven Gothel 2013-10-23 06:32:09 CEST
OSX 10.9 / FF works though ..
Comment 2 Sven Gothel 2013-10-23 06:33:03 CEST
IOUtil.testDirExec: </var/folders/w5/mf8cm5c56ws6c2glx_m0q8c80000gp/T/WebKitPlugin-zY6yWp/jogamp_exe_tst7572851605035216314.sh>: Cannot run program "/private/var/folders/w5/mf8cm5c56ws6c2glx_m0q8c80000gp/T/WebKitPlugin-zY6yWp/jogamp_exe_tst7572851605035216314.sh": error=1, Operation not permitted
IOUtil.testFile: </Users/jogamp>: is not writable


.. this might be an issue w/ new version of WebKit.
Comment 3 Sven Gothel 2013-10-23 08:22:07 CEST
The 'exetst' File created via 'File.createTempFile("jogamp_exe_tst", getShellSuffix(), dir)'
exposed the following extended attributes on OSX 10.9 w/ Safari 7.0:

(08:13:56 AM) sgothel: charelle:log jogamp$ xattr -l ~/test/a.sh 
(08:13:56 AM) sgothel: com.apple.quarantine: 0006;52675f00;PluginProcess.app;
Comment 4 Karel Knoest 2013-10-23 15:27:43 CEST
Same problem occurs for Safari 6.1 on OSX 10.8. 

Trace log:
Warning: Catched Exception while retrieving temp base directory:
java.lang.RuntimeException: Could not determine a temporary directory
        at com.jogamp.common.util.IOUtil.getTempDir(IOUtil.java:1222)
        at com.jogamp.common.util.cache.TempFileCache.<clinit>(TempFileCache.java:80)
        at com.jogamp.common.util.cache.TempJarCache.initSingleton(TempJarCache.java:90)
        at com.jogamp.common.os.Platform$1.run(Platform.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.jogamp.common.os.Platform.<clinit>(Platform.java:173)
        at javax.media.opengl.GLProfile.<clinit>(GLProfile.java:82)
        at jogamp.opengl.awt.VersionApplet.my_init(VersionApplet.java:73)
        at jogamp.opengl.awt.VersionApplet.init(VersionApplet.java:136)
        at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
        at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:744)
java.lang.UnsatisfiedLinkError: Can't load library: /System/Library/Frameworks/gluegen-rt.Framework/gluegen-rt
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)
        at java.lang.Runtime.load0(Runtime.java:795)
        at java.lang.System.load(System.java:1062)
        at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:551)
        at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:64)
        at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:96)
        at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:414)
        at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:388)
        at com.jogamp.common.os.Platform$1.run(Platform.java:203)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.jogamp.common.os.Platform.<clinit>(Platform.java:173)
        at javax.media.opengl.GLProfile.<clinit>(GLProfile.java:82)
        at jogamp.opengl.awt.VersionApplet.my_init(VersionApplet.java:73)
        at jogamp.opengl.awt.VersionApplet.init(VersionApplet.java:136)
        at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
        at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:744)
Ignored exception: java.lang.UnsatisfiedLinkError: Can't load library: /System/Library/Frameworks/gluegen-rt.Framework/gluegen-rt
basic: Dialog type is not candidate for embedding
Comment 5 Sven Gothel 2013-10-23 16:49:29 CEST
    - IOUtil.getTempDir(..): Don't test executable caps on OSX for java_io_tmpdir
    
    - JarUtil.extract(..): Issue native fixNativeLibAttribs(..) on OSX for native library files,
                           i.e. remove xattr 'com.apple.quarantine'
Comment 6 Karel Knoest 2013-10-25 16:14:23 CEST
Hi Sven,

Thank you for looking into this bug this quickly. 

For fixing this issue on our side, I'm curious how to interpret your last post.

Looking forward to your feedback!

Best,
Knoest
Comment 7 Sven Gothel 2013-10-25 16:56:36 CEST
(In reply to comment #6)
> Hi Sven,
> 
> Thank you for looking into this bug this quickly. 
> 
> For fixing this issue on our side, I'm curious how to interpret your last
> post.
> 
> Looking forward to your feedback!
> 
> Best,
> Knoest

Sorry, my comment 5 is a summary (git commit message)
of JOGL commit fec9712b151ad31b053fe700cb0f809b9715407c

so it's not a recipe for you ..  :)

Read the JOGL git commit for details (source).
Comment 8 Karel Knoest 2013-10-28 09:12:45 CET
Ah, thanks... by bad, I was keeping an eye on the wrong project.

(In reply to comment #7)
> (In reply to comment #6)
> > Hi Sven,
> > 
> > Thank you for looking into this bug this quickly. 
> > 
> > For fixing this issue on our side, I'm curious how to interpret your last
> > post.
> > 
> > Looking forward to your feedback!
> > 
> > Best,
> > Knoest
> 
> Sorry, my comment 5 is a summary (git commit message)
> of JOGL commit fec9712b151ad31b053fe700cb0f809b9715407c
> 
> so it's not a recipe for you ..  :)
> 
> Read the JOGL git commit for details (source).
Comment 9 arioh 2014-10-08 13:29:58 CEST
It is broken again in 2.2.1. Tested on Windows XP + IE8
2.1.5 works fine