Mac Appstore no longer accepts 32bit/universal JOGL

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

Mac Appstore no longer accepts 32bit/universal JOGL

runiter
Today when I tried submitting my Java3D desktop app to Mac Appstore I got an error complaining that it contains 32bit/universal libraries. Evidently Apple only accepts 64bit libraries now. Is there a 64bit version of JOGL mac library available somewhere?
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D
Reply | Threaded
Open this post in threaded view
|

Re: Mac Appstore no longer accepts 32bit/universal JOGL

gouessej
Administrator
Hello

The Mac Appstore accepts only 64-bit libraries since June 2018. No there is no such libraries yet but I assume that the Objective-C code already uses LP64, it should help to compile JOGL native 64-bit libraries without having to modify the source code.

The JogAmp server was updated several months ago but some things are still broken, including the bug tracker. Somebody suggested to use Gitlab CI in the meantime to build JOGL until the JogAmp server is able to get the job done anew but I have seen nothing ready, maybe I've missed something.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Mac Appstore no longer accepts 32bit/universal JOGL

runiter
Julien, are there any updates regarding 64-bit libraries?
I can't build them myself because I don't have much experience with Objective-C and only use Mac in a slow emulator.
Meanwhile my Appstore app is stuck in the old version :(
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D
Reply | Threaded
Open this post in threaded view
|

Re: Mac Appstore no longer accepts 32bit/universal JOGL

gouessej
Administrator
Maybe Wade can help, I have no access to a Mac right now.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Mac Appstore no longer accepts 32bit/universal JOGL

Wade Walker
Administrator
In reply to this post by runiter
It's strange that the app store thinks JOGL contains 32-bit Mac libraries -- the JOGL build scripts can't even build a 32-bit Mac lib anymore, it's 64-bit only. Are you using a super-old version of JOGL or something? You could always unzip the JARs and see if there's a 32-bit .dylib hiding in there, and if there is, you could delete it and re-zip.
Reply | Threaded
Open this post in threaded view
|

Re: Mac Appstore no longer accepts 32bit/universal JOGL

gouessej
Administrator
Should we provide a .jnilib too?
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Mac Appstore no longer accepts 32bit/universal JOGL

runiter
In reply to this post by Wade Walker
Wade,
I verified that there is no .dylib include with my package.

These are the files I currently include:

libgluegen-rt.jnilib
libjogl_desktop.jnilib
libnativewindow_awt.jnilib
libnativewindow_macosx.jnilib

I just tried redownloading the latest version of the above files from jogamp.org but it appears that these files haven't changed since 2015.

Are you sure these are all 64 bits?
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D
Reply | Threaded
Open this post in threaded view
|

Re: Mac Appstore no longer accepts 32bit/universal JOGL

Wade Walker
Administrator
On Mac OS X, type
file libgluegen-rt.jnilib
 or
otool -hv libgluegen-rt.jnilib
. You should see:

$ file libgluegen-rt.jnilib 
libgluegen-rt.jnilib: Mach-O 64-bit dynamically linked shared library x86_64

$ otool -hv libgluegen-rt.jnilib 
Mach header
      magic cputype cpusubtype  caps    filetype ncmds sizeofcmds      flags
MH_MAGIC_64  X86_64        ALL  0x00       DYLIB    12       1352   NOUNDEFS DYLDLINK TWOLEVEL NO_REEXPORTED_DYLIBS

If these show as 32-bit libs, then you'd need to switch to a newer version of JOGL :)
Reply | Threaded
Open this post in threaded view
|

Re: Mac Appstore no longer accepts 32bit/universal JOGL

runiter
I get this on the native file I included with my package:

libgluegen-rt.jnilib: Mach-O universal binary with 2 architectures: [i386:Mach-O dynamically linked shared library i386] [x86_64:Mach-O 64-bit dynamically linked shared library x86_64]
libgluegen-rt.jnilib (for architecture i386): Mach-O dynamically linked shared library i386
libgluegen-rt.jnilib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64

It appears that 32bit native is included.
I get a same output when downloading the latest JOGL version from here:

http://jogamp.org/deployment/jogamp-current/jar/gluegen-rt-android-natives-macosx-universal.jar

So looks like we do include 32bit even in the latest version of JOGL :(
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D
Reply | Threaded
Open this post in threaded view
|

Re: Mac Appstore no longer accepts 32bit/universal JOGL

Wade Walker
Administrator
Just tell me the exact version of JOGL you have, and I'll try building a new version. As long as the version is tagged in the repo, it shouldn't be difficult.
Reply | Threaded
Open this post in threaded view
|

Re: Mac Appstore no longer accepts 32bit/universal JOGL

runiter
Thanks very much Wade.
If you build the latest version of JOGL that'd be great. I'm not tied to any specific version.
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D
Reply | Threaded
Open this post in threaded view
|

Re: Mac Appstore no longer accepts 32bit/universal JOGL

Wade Walker
Administrator
Actually, it looks like there is an easier and better solution: use the "lipo" command to remove the i386 code from your existing .jnilib libraries.

lipo libgluegen-rt.jnilib -remove i386 -output libgluegen-rt-64.jnilib

This way you can be sure that your new library matches everything else in your JOGL distribution (whereas if I built it, something might not match up precisely). You'd need to do this for each .jnilib, and then move the old ones out and put the new 64-bit-only ones in their place, using the original filenames. Then you can check with the "file" utility that they're all correct.
Reply | Threaded
Open this post in threaded view
|

Re: Mac Appstore no longer accepts 32bit/universal JOGL

runiter
Ahh interesting, I wondered if there was a way to do that.
Thanks for command, will use it.
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D