Need some advice regarding patches for old AppKit compatibility

Jason Liu jasonliu at umich.edu
Wed Jun 3 18:01:40 UTC 2020


In my course of packaging some new ports, I've run across a couple
instances of applications which are claimed by their devs to only be
compatible with "macOS 10.12 and above". However, I've discovered that in
reality, the only reason they're no longer compatible with older versions
of macOS is because the names of a lot of constants changed in AppKit
starting in 10.12. All of these constants appear to be related to either
the drawing of GUI Cocoa windows or UI events (e.g. mouse down, mouse
dragged, etc.).

So far, I've encountered two pieces of software where this is happening:
Blender and MaterialX.

A solution I found which some projects (e.g. Qemu) have implemented
basically replaces the new AppKit constants with the old AppKit ones using
*#define* directives if the OS version is below 10.12. I've created a
separate header file that gathers together a list of the constants I've
been able to find, which is modeled on information from this message:

https://lists.gnu.org/archive/html/qemu-devel/2017-04/msg04330.html

I'm doing my portfile development on a machine running 10.11, and have
verified that my patch seems to allow me to build these applications
without any noticeable issues (no runtime crashes, segfaults, etc.).

So my question to everyone is: Should I just add my header file to the
files/ folder for whichever ports need it? Or is this something that
might benefit from me creating a project in GitHub? I'm guessing that there
could be other software packages which might benefit from such a
compatibility layer.

-- 
Jason Liu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-dev/attachments/20200603/e2112fd1/attachment.html>


More information about the macports-dev mailing list