[FIXED] OSX / Java 7

Started by normen, August 14, 2012, 17:07:59

Previous topic - Next topic

pizza2004

@kgcab I'm still getting the issue I was before when I try to start Minecraft, how did you get it to run with Java 7?  Are you sure you're not just running it with Java 6 still?  Using the default launcher provided with Minecraft will only run it in Java 6, try running it with this launcher I modified to run in Java 7.  http://www.mediafire.com/?137i1rraix5sd0a  Basically, due to the difference in Oracle's implementation of Java, it's not possible for the app to find Java 7, so it just uses the version of Java 6 that Apple still provides.  It took some doing, but I managed to hack the launcher apart and use a new launcher provided by Oracle to create a new version of the Minecraft launcher that will work with Java 7.

So yeah, unless you're running Minecraft through the command line (or via the launcher I provided) you're not going to be running Java 7, but rather Java 6.  I figured I'd try to clarify this as I think it might be helpful for everyone to know what version of Java you're running for certain.  You can also generate a crash log by holding down F3+C for like 10 seconds and then copy the contents of that file (It's in your minecraft folder in crash reports) to here so we can see for certain which version of Java you're using.

kappa

New update:

- fixed cmd-Q immediate app kill issue as reported by Nagi, LWJGL should now catch all quit commands (cmd-q, right clicking quit from dock, quit from menu, etc) and then report Display.isCloseRequested() as true.
- fixed issue with Display.setDisplayMode locking/freezing after an AL.create call as reported by Nagi (test case to reproduce the issue was very helpful).
- removed more AWT dependancies and replaced with equivalent Cocoa code (e.g. Display.getAvailableDisplayModes()), as a result LWJGL now even works when -Djava.awtheadless=true is set.
- Minor tweak to native cursor behaviour.

@cookies - Thx for reporting the Multisampling/AA issue when using JME3, currently looking into that and will hopefully have that fixed next.

@kgcabs - odd issue that, can you confirm whether it also happens on the Java 6 and/or when using the current stable release of LWJGL 2.8.5. Lastly can you also check whether it happens when running Minecraft in fullscreen mode? thx

Do please test and report any issues.

Latest experimental build here: https://www.dropbox.com/s/b6gj27dmoyo0h0j/macosx.zip

Nagi

Thanks, kappa. I've been testing for a while and it works like a charm! The test case works perfectly now, and LWJGL is also catching the quit commands. I've even updated my local copy of the library I'm using (LibGDX) and my game runs smoothly, without needing to alter LibGDX source code anymore. I'll keep testing, but everything seems fine now. Thank you very much!
IKIGames: @superikigames

ajr_1

Hi kappa, thanks for the new update.  I'm getting issues with the cursor in this one though - I've linked a couple of photos to illustrate.  Everything else seems to be good though.

Cursor from this release:
http://www.flickr.com/photos/93113964@N07/8465551790/

Cursor from previous release:
http://www.flickr.com/photos/93113964@N07/8464454927/


kappa

@ajr_1, thx for testing, are you setting a native cursor? if so which data format are you using? (ARGB8888?, 1 bit or 8 bit transparency?)

refD

Hi Kappa,

I've just been testing out the latest build. I'm having 2 main issues:

Mouse Grabbing

I'm trying to work out the exact pattern, but I can achieve both a completely lost cursor when the mouse shouldn't be grabbed, and an ever present cursor when it should be grabbed. Once I get the exact sequence of events I'll create a test case.

Fullscreen

When entering full screen, Display.getWidth/getHeight report the correct height/width of the screen, but only a subset of the window based from the bottom left is being drawn to (that area appears to match the windowed resolution before entering full screen).

I initially thought this might be glViewport based issue on my end .... but on hitting full screen getWidth/getHeight are reporting the correct the width/height (and my only viewport call is just after resize) and I'm also testing the same code against 2.8.5 on both windows and Mac, and both work are working perfectly.

Upon leaving full screen, resizing the window breaks Display.getWidth/getHeight, they get stuck reporting a specific width/height (one slightly smaller than full screen that doesn't match the current window) and continue to report that specific value regardless of the actual window size getting resized.

I haven't reduced this to a stand alone smallest possible test case. If my issue is strange/cant be reproduced let me know and I'll make one.

In short form:
1. Enter full screen
2. Exit full screen (only subset of window drawn too)
3. Resize window (getWidth/getHeight breaks)

Thanks.

normen

I tested the latest upload with our jMonkeyEngine SDK which has two different ways to display the output to circumvent issues but both fail :(

The method where we create a backbuffer and copy the result to a "real" AWT panel works also on OSX/Java 7 with the current stable lwjgl but now both that and the use of the normal canvas fail like so:

Thread 41 Crashed:: Java: LWJGL Renderer Thread
0   libsystem_kernel.dylib           0x00007fff8e447212 __pthread_kill + 10
1   libsystem_c.dylib                0x00007fff881c2af4 pthread_kill + 90
2   libsystem_c.dylib                0x00007fff88206dce abort + 143
3   libjvm.dylib                     0x000000010b373c6f os::abort(bool) + 25
4   libjvm.dylib                     0x000000010b46242e VMError::report_and_die() + 2306
5   libjvm.dylib                     0x000000010b375363 JVM_handle_bsd_signal + 1073
6   libsystem_c.dylib                0x00007fff881af8ea _sigtramp + 26
7   liblwjgl.dylib                   0x000000014862217e Java_org_lwjgl_opengl_MacOSXContextImplementation_nCreate + 206
8   ???                              0x000000010bc4df90 0 + 4492418960
9   ???                              0x000000010bc42333 0 + 4492370739
10  ???                              0x000000010bc429e1 0 + 4492372449
11  ???                              0x000000010bc42158 0 + 4492370264
12  ???                              0x000000010bc42158 0 + 4492370264
13  ???                              0x000000010bc42158 0 + 4492370264
14  ???                              0x000000010bc42158 0 + 4492370264
15  ???                              0x000000010bc42158 0 + 4492370264
16  ???                              0x000000010bc42158 0 + 4492370264
17  ???                              0x000000010bc42450 0 + 4492371024
18  ???                              0x000000010bc42806 0 + 4492371974
19  ???                              0x000000010bc3c4f7 0 + 4492346615
20  libjvm.dylib                     0x000000010b24752f JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*) + 557
21  libjvm.dylib                     0x000000010b247a0c JavaCalls::call_virtual(JavaValue*, KlassHandle, Symbol*, Symbol*, JavaCallArguments*, Thread*) + 256
22  libjvm.dylib                     0x000000010b247b46 JavaCalls::call_virtual(JavaValue*, Handle, KlassHandle, Symbol*, Symbol*, Thread*) + 74
23  libjvm.dylib                     0x000000010b27e4c0 thread_entry(JavaThread*, Thread*) + 169
24  libjvm.dylib                     0x000000010b437294 JavaThread::thread_main_inner() + 134
25  libjvm.dylib                     0x000000010b43877a JavaThread::run() + 440
26  libjvm.dylib                     0x000000010b374191 java_start(Thread*) + 173
27  libsystem_c.dylib                0x00007fff881c1742 _pthread_start + 327
28  libsystem_c.dylib                0x00007fff881ae181 thread_start + 13

Thread 41 crashed with X86 Thread State (64-bit):
 rax: 0x0000000000000000  rbx: 0x0000000000000006  rcx: 0x0000000148608cb8  rdx: 0x0000000000000000
 rdi: 0x000000000000eb17  rsi: 0x0000000000000006  rbp: 0x0000000148608ce0  rsp: 0x0000000148608cb8
  r8: 0x00007fff76fb0278   r9: 0x0000000148608c90  r10: 0x0000000020000000  r11: 0x0000000000000206
 r12: 0x000000010b70a0e0  r13: 0x00007fdd86c191d8  r14: 0x000000014860a000  r15: 0x000000010b3771bc
 rip: 0x00007fff8e447212  rfl: 0x0000000000000206  cr2: 0x00007fff76fa9fe8
Logical CPU: 0






When I run a normal jME app with the native window context it works but when I quit the app I get this (the first exception is happening multiple times before):

2013-02-12 14:29:30.249 java[7727:cd0b] Cocoa AWT: Not running on AppKit thread 0 when expected. (
   0   libosxapp.dylib                     0x0000000120d05411 +[ThreadUtilities getJNIEnv] + 34
   1   liblwawt.dylib                      0x0000000120c6c7ef -[AWTWindow windowDidBecomeMain:] + 118
   2   CoreFoundation                      0x00007fff8be3347a _CFXNotificationPost + 2554
   3   Foundation                          0x00007fff883a7846 -[NSNotificationCenter postNotificationName:object:userInfo:] + 64
   4   AppKit                              0x00007fff8723b7f0 -[NSWindow becomeMainWindow] + 169
   5   AppKit                              0x00007fff87235073 -[NSWindow _changeKeyAndMainLimitedOK:] + 830
   6   AppKit                              0x00007fff873133fc -[NSWindow _orderOutAndCalcKeyWithCounter:stillVisible:docWindow:] + 909
   7   AppKit                              0x00007fff8723d249 -[NSWindow _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 3218
   8   AppKit                              0x00007fff8723c138 -[NSWindow _doOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 940
   9   AppKit                              0x00007fff8723bd1f -[NSWindow orderWindow:relativeTo:] + 159
   10  AppKit                              0x00007fff87312b73 __18-[NSWindow _close]_block_invoke_0 + 487
   11  AppKit                              0x00007fff87312965 -[NSWindow _close] + 364
   12  liblwjgl.dylib                      0x0000000128e486c5 Java_org_lwjgl_opengl_MacOSXDisplay_nDestroyWindow + 165
   13  ???                                 0x000000010ddb2f90 0x0 + 4527435664
   14  ???                                 0x000000010dda7158 0x0 + 4527386968
   15  ???                                 0x000000010dda7806 0x0 + 4527388678
   16  ???                                 0x000000010dda7158 0x0 + 4527386968
   17  ???                                 0x000000010dda7158 0x0 + 4527386968
   18  ???                                 0x000000010dda7806 0x0 + 4527388678
)
2013-02-12 14:29:30.254 java[7727:cd0b]    Please file a bug report at http://java.net/jira/browse/MACOSX_PORT with this message and a reproducible test case.
2013-02-12 14:29:30.256 java[7727:cd0b] An uncaught exception was raised
2013-02-12 14:29:30.259 java[7727:cd0b] java.lang.StackOverflowError
   at org.lwjgl.opengl.MacOSXDisplay.nDestroyWindow(Native Method)
   at org.lwjgl.opengl.MacOSXDisplay.destroyWindow(MacOSXDisplay.java:204)
   at org.lwjgl.opengl.Display.destroyWindow(Display.java:348)
   at org.lwjgl.opengl.Display.access$400(Display.java:62)
   at org.lwjgl.opengl.Display$5.destroy(Display.java:832)
   at org.lwjgl.opengl.Display.destroy(Display.java:1083)
   at com.jme3.system.lwjgl.LwjglDisplay.destroyContext(LwjglDisplay.java:155)
   at com.jme3.system.lwjgl.LwjglAbstractDisplay.deinitInThread(LwjglAbstractDisplay.java:194)
   at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:233)
   at java.lang.Thread.run(Thread.java:722)
2013-02-12 14:29:30.286 java[7727:cd0b] (
   0   CoreFoundation                      0x00007fff8be810a6 __exceptionPreprocess + 198
   1   libobjc.A.dylib                     0x00007fff8a0413f0 objc_exception_throw + 43
   2   CoreFoundation                      0x00007fff8bf15229 -[NSException raise] + 9
   3   JavaNativeFoundation                0x00000001202c5539 JNFCallVoidMethod + 209
   4   liblwawt.dylib                      0x0000000120c6c838 -[AWTWindow windowDidBecomeMain:] + 191
   5   CoreFoundation                      0x00007fff8be3347a _CFXNotificationPost + 2554
   6   Foundation                          0x00007fff883a7846 -[NSNotificationCenter postNotificationName:object:userInfo:] + 64
   7   AppKit                              0x00007fff8723b7f0 -[NSWindow becomeMainWindow] + 169
   8   AppKit                              0x00007fff87235073 -[NSWindow _changeKeyAndMainLimitedOK:] + 830
   9   AppKit                              0x00007fff873133fc -[NSWindow _orderOutAndCalcKeyWithCounter:stillVisible:docWindow:] + 909
   10  AppKit                              0x00007fff8723d249 -[NSWindow _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 3218
   11  AppKit                              0x00007fff8723c138 -[NSWindow _doOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 940
   12  AppKit                              0x00007fff8723bd1f -[NSWindow orderWindow:relativeTo:] + 159
   13  AppKit                              0x00007fff87312b73 __18-[NSWindow _close]_block_invoke_0 + 487
   14  AppKit                              0x00007fff87312965 -[NSWindow _close] + 364
   15  liblwjgl.dylib                      0x0000000128e486c5 Java_org_lwjgl_opengl_MacOSXDisplay_nDestroyWindow + 165
   16  ???                                 0x000000010ddb2f90 0x0 + 4527435664
   17  ???                                 0x000000010dda7158 0x0 + 4527386968
   18  ???                                 0x000000010dda7806 0x0 + 4527388678
   19  ???                                 0x000000010dda7158 0x0 + 4527386968
   20  ???                                 0x000000010dda7158 0x0 + 4527386968
   21  ???                                 0x000000010dda7806 0x0 + 4527388678
)
2013-02-12 14:29:30.289 java[7727:cd0b] *** Terminating app due to uncaught exception 'JavaNativeException', reason: 'Internal JNF Error: failed calling Throwable.toString()'
*** First throw call stack:
(
   0   CoreFoundation                      0x00007fff8be810a6 __exceptionPreprocess + 198
   1   libobjc.A.dylib                     0x00007fff8a0413f0 objc_exception_throw + 43
   2   CoreFoundation                      0x00007fff8bf15229 -[NSException raise] + 9
   3   JavaNativeFoundation                0x00000001202c5539 JNFCallVoidMethod + 209
   4   liblwawt.dylib                      0x0000000120c6c838 -[AWTWindow windowDidBecomeMain:] + 191
   5   CoreFoundation                      0x00007fff8be3347a _CFXNotificationPost + 2554
   6   Foundation                          0x00007fff883a7846 -[NSNotificationCenter postNotificationName:object:userInfo:] + 64
   7   AppKit                              0x00007fff8723b7f0 -[NSWindow becomeMainWindow] + 169
   8   AppKit                              0x00007fff87235073 -[NSWindow _changeKeyAndMainLimitedOK:] + 830
   9   AppKit                              0x00007fff873133fc -[NSWindow _orderOutAndCalcKeyWithCounter:stillVisible:docWindow:] + 909
   10  AppKit                              0x00007fff8723d249 -[NSWindow _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 3218
   11  AppKit                              0x00007fff8723c138 -[NSWindow _doOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 940
   12  AppKit                              0x00007fff8723bd1f -[NSWindow orderWindow:relativeTo:] + 159
   13  AppKit                              0x00007fff87312b73 __18-[NSWindow _close]_block_invoke_0 + 487
   14  AppKit                              0x00007fff87312965 -[NSWindow _close] + 364
   15  liblwjgl.dylib                      0x0000000128e486c5 Java_org_lwjgl_opengl_MacOSXDisplay_nDestroyWindow + 165
   16  ???                                 0x000000010ddb2f90 0x0 + 4527435664
   17  ???                                 0x000000010dda7158 0x0 + 4527386968
   18  ???                                 0x000000010dda7806 0x0 + 4527388678
   19  ???                                 0x000000010dda7158 0x0 + 4527386968
   20  ???                                 0x000000010dda7158 0x0 + 4527386968
   21  ???                                 0x000000010dda7806 0x0 + 4527388678
)
libc++abi.dylib: terminate called throwing an exception


Running on OSX 10.8.2 / MacBook Pro Core i7 / NVIDIA GeForce GT 330M 512 MB / JDK 1.7u13

Cheers,
Normen

NateS

Using the latest experimental JAR on Windows 7, CTRL is not reported as being down when the mouse is clicked. You can reproduce this using the executable example code here:
http://lwjgl.org/forum/index.php/topic,4811.0.html

I need to use Display.setParent but this seems to crash on OSX. I can post the stacktrace, but first is it expected that Display.setParent works at this point? Not using it does work on Mac.

Edit, stacktrace:
...
Caused by: org.lwjgl.LWJGLException: Could not get the JAWT interface
at org.lwjgl.opengl.AWTSurfaceLock.lockAndInitHandle(Native Method)
at org.lwjgl.opengl.AWTSurfaceLock.access$100(Unknown Source)
at org.lwjgl.opengl.AWTSurfaceLock$1.run(Unknown Source)
at org.lwjgl.opengl.AWTSurfaceLock$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.opengl.AWTSurfaceLock.privilegedLockAndInitHandle(Unknown Source)
at org.lwjgl.opengl.AWTSurfaceLock.lockAndGetHandle(Unknown Source)
at org.lwjgl.opengl.MacOSXCanvasPeerInfo.initHandle(Unknown Source)
at org.lwjgl.opengl.MacOSXDisplayPeerInfo.doLockAndInitHandle(Unknown Source)
at org.lwjgl.opengl.PeerInfo.lockAndGetHandle(Unknown Source)
at org.lwjgl.opengl.MacOSXDisplay.createWindow(Unknown Source)
at org.lwjgl.opengl.Display.createWindow(Unknown Source)
at org.lwjgl.opengl.Display.create(Unknown Source)
at org.lwjgl.opengl.Display.create(Unknown Source)
... 18 more


I've worked around it by using an LWJGL window instead of a Swing window on Mac. I also found the JavaApplicationStub no longer works for Java 7, by design. I used a shell script to launch Java. Screw you Apple!

kappa

New update:

Finally had a chance to test out JME3 with the OS X builds, found a number of issues which should now be fixed.

- implemented PBuffer support, fixes crash when using multisampling/AA with JME3, thx @cookies for finding and reporting.
- fixed an issue where the right side of title bar didn't allowing dragging after a window resize.
- fixed a crash on startup when creating a new Display after an old one has been destroyed in the same app.
- moved all the native Cocoa UI create/destroy code to the main thread, should fix the AppKit threading issues/crashes.
- a fix for a mouse grabbing issue by releasing mouse grab on Display destroy.
- fixed a resizing issues where incorrect Display size was being shown.

@refD - Mouse grabbing should be slightly improved now, do let know if you still have issues with it. There is a fix for a resizing problem, do test latest binary to see if you still get the issues you reported.

@norman - your second reported issue should hopefully be fixed now, as for the first issue, got a link to a test case that can reproduce the issue? maybe one of the jme3 engine tests?

@NateS - currently the OS X branch is based on LWJGL 2.8.5 so doesn't include the fixes for the windows control key issue yet but once merged into the main branch should be fixed (almost ready to do that). As for Display.setParent() it should work now (at least it does when tested with Minecraft), if zip below doesn't work do let me know (be nice if you had a small test case or example jar/app that can reproduce the issue).

Thx for testing and reporting issues.

Latest experimental build here: https://www.dropbox.com/s/b6gj27dmoyo0h0j/macosx.zip

NateS

Using latest, setDisplay still doesn't work:
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Unable to create OpenGL display.
	at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(LwjglGraphics.java:220)
	at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setupDisplay(LwjglGraphics.java:181)
	at com.badlogic.gdx.backends.lwjgl.LwjglCanvas.create(LwjglCanvas.java:184)
	... 15 more
Caused by: org.lwjgl.LWJGLException: Could not get the JAWT interface
	at org.lwjgl.opengl.AWTSurfaceLock.lockAndInitHandle(Native Method)
	at org.lwjgl.opengl.AWTSurfaceLock.access$100(AWTSurfaceLock.java:51)
	at org.lwjgl.opengl.AWTSurfaceLock$1.run(AWTSurfaceLock.java:94)
	at org.lwjgl.opengl.AWTSurfaceLock$1.run(AWTSurfaceLock.java:92)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.lwjgl.opengl.AWTSurfaceLock.privilegedLockAndInitHandle(AWTSurfaceLock.java:92)
	at org.lwjgl.opengl.AWTSurfaceLock.lockAndGetHandle(AWTSurfaceLock.java:66)
	at org.lwjgl.opengl.MacOSXCanvasPeerInfo.initHandle(MacOSXCanvasPeerInfo.java:64)
	at org.lwjgl.opengl.MacOSXDisplayPeerInfo.doLockAndInitHandle(MacOSXDisplayPeerInfo.java:56)
	at org.lwjgl.opengl.PeerInfo.lockAndGetHandle(PeerInfo.java:85)
	at org.lwjgl.opengl.MacOSXDisplay.createWindow(MacOSXDisplay.java:136)
	at org.lwjgl.opengl.Display.createWindow(Display.java:303)
	at org.lwjgl.opengl.Display.create(Display.java:845)
	at org.lwjgl.opengl.Display.create(Display.java:754)
	at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(LwjglGraphics.java:216)


Running without setDisplay seems to work, but crashes sometimes when the app is closed by clicking the close button in the window title. Here are the crash files:
http://pastebin.com/5CJ1vipy
http://pastebin.com/6wbvKJgN
http://pastebin.com/KBg1mMA6

pizza2004

You know, I don't think it's by design that the JavaApplicationStub no longer works, so much as that Oracle is handling Java in a different way, and JavaApplicationStub isn't programmed to recognize it as a valid version of Java, being older and keyed to work specifically with Apple's version.

Minecraft does not work for me when I run it with Java 7, I get the exact same error I previously posted when I try to run it.  It runs with Java 6 just fine, but I haven't ever had a problem with that even when I've used these.  I provided a link a few posts back that can be used to get an updated launcher app for Minecraft that uses Java 7 instead of Java 6, due to the problem I mentioned in the first half of this post.  Try running Minecraft with that instead of the regular app and see if you can successfully run it.

kappa

Minor update:

@pizza2004 & @NateS, I had an attempt to try fix the "Could not get the JAWT interface" when running on Java 7, hopefully it should be fixed now, unfortunately don't have access to OS X 10.7+ so can't test to confirm if it works.

Please do test and report any issues.

Latest experimental build here: https://www.dropbox.com/s/b6gj27dmoyo0h0j/macosx.zip

NateS

Quote from: pizza2004 on February 16, 2013, 12:36:16
You know, I don't think it's by design that the JavaApplicationStub no longer works, so much as that Oracle is handling Java in a different way, and JavaApplicationStub isn't programmed to recognize it as a valid version of Java, being older and keyed to work specifically with Apple's version.
http://lists.apple.com/archives/java-dev/2012/Apr/msg00115.html
Scott worked on Java for Apple and now for Oracle, so he's probably right.

@kappa, we've got to get you the latest. :(

I've got a user running OSX 10.7.5 that reports everything is fine until they resize the window, then it locks the whole machine:
http://www.esotericsoftware.com/forum/viewtopic.php?f=3&t=66

pizza2004

@NateS  Right, he says it is intended behavior, but I don't think he means that they purposefully changed it so that JavaApplicationStub wouldn't work so much as that Apple won't allow Oracle to install Java 7 directly into the OS like Java 6 is, and because of this change the JavaApplicationStub can't find the copy of Java 7.  I also don't think Apple is going to update JavaApplicationStub to be able to find Java 7 because they expect Oracle to take care of that sort of thing now.  Hence why it is correct behavior, because JavaApplicationStub only applies to Apple's versions of Java.

@kappa  That update doesn't seem to have changed anything at all.  In fact, I have gotten the exact same error every time I tried to run Minecraft with this version of LWJGL using Java 7, despite the updates you've made.

kappa

@NateS - sounds like a driver crash, also came across it during development however did attempt a fix which worked at the time (at least for my driver) however apparently not for that mac user, anyway I've changed the way resizing works now with Display.setParent(), so shouldn't crash anymore.

Latest experimental build here: https://www.dropbox.com/s/b6gj27dmoyo0h0j/macosx.zip