libgdx / libgdx/packr

PACKR Issue building on Catalina

Open
#205 34 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

question
Dominant language
C++
Stars
2.6k
Forks
174
PR merge metrics
No merged PRs in 30d

Description

PROBLEM: Modern PACKR releases (4.0, 3.0)+ do not create functional (unsigned) LibGDX apps for Catalina
ENVIRONMENT: We can reproduce this on builds from multiple Macs (Catalina and Big Sur) as well as from Windows 10
WORKAROUND: We have found an older (pre-2020) version of PACKR that works correctly

Summary

Unsigned LibGDX applications built by the current version of PACKR on Catalina do not run. They quit immediately with the crash error

# Problematic frame:
# C  [AppKit+0x3e5abc]  -[NSOpenGLContext setView:]+0xe5

This is a known issue with Catalina where the OpenGL context is accessed outside the main frame, and introduced by how Catalina manages security. This is a problem introduced by PACKR, since the original JAR files run normally.

We did not have this problem last year (I use PACKR for a course). Indeed when we revert to our older version of PACKR, it successfully creates applications for Catalina. I have no idea which version of PACKR that is, but when I expand the JAR file I see that it was built on March 19, 2019. So I suspect it may be 1.2.

From research on the Internet (and the build date of the older version of PACKR), I think the problem is with the Mac SDK used to build the executables used by PACKR. I refer you to this thread for a similar issue with JOGAMP:

https://jogamp.org/bugzilla//show_bug.cgi?id=1398

In that case error was introduced by using the default Catalina SDK 'macosx10.15'. Use of an older SDK, such as 'macosx10.11' (even on Catalina or Big Sur Macs) caused the error to disappear.

We have not verified whether or not this problem goes away when you sign the app with a MacOS Developer Certificate. But ideally this should not be required for informal LibGDX distribution.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Catalina crash with a current PACKR build and an unsigned LibGDX application, then compare it with the older working PACKR version described in the issue. Review PACKR’s Mac executable-generation and SDK configuration; done means unsigned applications launch successfully on Catalina and Big Sur without the NSOpenGLContext crash.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, macos
Domain
build-system, desktop, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.