zoom icon indicating copy to clipboard operation
zoom copied to clipboard

Build failure on Catalina

Open jasonshanks opened this issue 6 years ago • 24 comments
trafficstars

HI – I noticed after running Catalina Beta that Zoom isn't 64bit. Tried to build project with most recent Xcode failed. Is getting this working on 64-bit going to be a lot more more?

Thanks for keeping this alive over the years!!

jasonshanks avatar Sep 11 '19 03:09 jasonshanks

I've pushed my latest version that compiles with Mojave. That's all it does at the moment: there's some kind of incompatibility with the newer framework version that causes it to crash on startup, combined with something that's causing XCode's debugger to fail to attach properly, which is getting in the way of working out what's going wrong.

Note that you can find a version I compiled a few years ago that should have 64-bit support over at https://logicalshift.io/zoom/Zoom-20150906.zip

Logicalshift avatar Sep 13 '19 08:09 Logicalshift

Note that you can find a version I compiled a few years ago that should have 64-bit support over at https://logicalshift.io/zoom/Zoom-20150906.zip

Nope. Doesn’t.

Hope this helps:

Process:               Zoom [74730]
Path:                  /Applications/Zoom.app/Contents/MacOS/Zoom
Identifier:            uk.org.logicalshift.zoom
Version:               1.1.6
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Zoom [74730]
User ID:               501

Date/Time:             2019-09-30 18:27:38.811 +0200
OS Version:            Mac OS X 10.15 (19A573a)
Report Version:        12
Anonymous UUID:        E5B2099B-F23C-9786-069B-036353A99801

Sleep/Wake UUID:       E84ABF64-A912-4CA9-9FF5-1416F209717C

Time Awake Since Boot: 190000 seconds
Time Since Wake:       1000 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes:       0x0000000000000001, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Illegal instruction: 4
Termination Reason:    Namespace SIGNAL, Code 0x4
Terminating Process:   exc handler [74730]

Application Specific Information:
◊ûˇ
BUG IN CLIENT OF LIBPLATFORM: Trying to recursively lock an os_unfair_lock

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_platform.dylib      	0x00007fff730e343c _os_unfair_lock_recursive_abort + 23
1   libsystem_platform.dylib      	0x00007fff730deceb _os_unfair_lock_lock_slow + 256
2   com.apple.AppKit              	0x00007fff42580ad5 _NXFreeImageCache + 48
3   com.apple.AppKit              	0x00007fff4216aef2 -[NSCachedImageRep _copyNSCGImageRep] + 937
4   com.apple.AppKit              	0x00007fff4216b020 -[NSCachedImageRep CGImageForProposedRect:context:hints:] + 42
5   com.apple.AppKit              	0x00007fff41de3a6c __74-[NSImageRep drawInRect:fromRect:operation:fraction:respectFlipped:hints:]_block_invoke + 910
6   com.apple.AppKit              	0x00007fff41de358e -[NSImageRep drawInRect:fromRect:operation:fraction:respectFlipped:hints:] + 946
7   com.apple.AppKit              	0x00007fff422b8da6 __71-[NSImage drawInRect:fromRect:operation:fraction:respectFlipped:hints:]_block_invoke.1343 + 693
8   com.apple.AppKit              	0x00007fff41d46f0c -[NSImage _usingBestRepresentationForRect:context:hints:body:] + 145
9   com.apple.AppKit              	0x00007fff41de26d5 -[NSImage drawInRect:fromRect:operation:fraction:respectFlipped:hints:] + 1343
10  uk.org.logicalshift.zoom      	0x000000010001beef 0x100000000 + 114415
11  com.apple.AppKit              	0x00007fff41dad548 _NSViewDrawRect + 139
12  com.apple.AppKit              	0x00007fff41d9c901 -[NSView _drawRect:clip:] + 1103
13  com.apple.AppKit              	0x00007fff41d9ae1c -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 2143
14  com.apple.AppKit              	0x00007fff41d9b36c -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 3503
15  com.apple.AppKit              	0x00007fff41d9b36c -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 3503
16  com.apple.AppKit              	0x00007fff41d9b36c -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 3503
17  com.apple.AppKit              	0x00007fff41d9b36c -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 3503
18  com.apple.AppKit              	0x00007fff41d9b36c -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 3503
19  com.apple.AppKit              	0x00007fff41d9b36c -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 3503
20  com.apple.AppKit              	0x00007fff41d9850c -[NSView _oldDisplayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 2126
21  com.apple.AppKit              	0x00007fff41d946da -[NSView displayIfNeeded] + 755
22  com.apple.AppKit              	0x00007fff41d918e6 -[NSWindow displayIfNeeded] + 261
23  com.apple.AppKit              	0x00007fff41d43ef2 -[NSWindow _setColorSpace:sendNotification:displayIfChanged:] + 406
24  com.apple.AppKit              	0x00007fff41d3f82a -[NSWindow _commonAwake] + 2067
25  com.apple.AppKit              	0x00007fff41dd0a93 NSWindowWakeDeferredIfNeeded + 94
26  com.apple.AppKit              	0x00007fff41dd0958 -[NSWindow(NSFullScreen) _resolveAutomaticEnterFullScreenFlags] + 22
27  com.apple.AppKit              	0x00007fff41dd090e -[NSWindow makeKeyAndOrderFront:] + 27
28  uk.org.logicalshift.zoom      	0x00000001000031a1 0x100000000 + 12705
29  com.apple.AppKit              	0x00007fff41ca6461 -[NSApplication _doOpenUntitled] + 429
30  com.apple.AppKit              	0x00007fff41ca5faf __58-[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:]_block_invoke + 232
31  com.apple.AppKit              	0x00007fff41ca5d39 __90-[NSDocumentController(NSInternal) _autoreopenDocumentsFromRecords:withCompletionHandler:]_block_invoke + 52
32  com.apple.AppKit              	0x00007fff41ca5c83 -[NSDocumentController(NSInternal) _autoreopenDocumentsFromRecords:withCompletionHandler:] + 328
33  com.apple.AppKit              	0x00007fff41ca5b13 __97-[NSDocumentController(NSInternal) _autoreopenDocumentsIgnoringExpendable:withCompletionHandler:]_block_invoke_3 + 95
34  com.apple.AppKit              	0x00007fff41ca56b9 -[NSDocumentController(NSInternal) _autoreopenDocumentsIgnoringExpendable:withCompletionHandler:] + 590
35  com.apple.AppKit              	0x00007fff41ca4f93 -[NSApplication _reopenWindowsAsNecessaryIncludingRestorableState:completionHandler:] + 249
36  com.apple.AppKit              	0x00007fff41ca4d89 -[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] + 536
37  com.apple.AppKit              	0x00007fff41ca49e9 -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 688
38  com.apple.Foundation          	0x00007fff46e0a9c2 -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 308
39  com.apple.Foundation          	0x00007fff46e0a82c _NSAppleEventManagerGenericHandler + 98
40  com.apple.AE                  	0x00007fff45b303a2 0x7fff45b27000 + 37794
41  com.apple.AE                  	0x00007fff45b2fac9 0x7fff45b27000 + 35529
42  com.apple.AE                  	0x00007fff45b2f997 aeProcessAppleEvent + 449
43  com.apple.HIToolbox           	0x00007fff433f7268 AEProcessAppleEvent + 54
44  com.apple.AppKit              	0x00007fff41ca101c _DPSNextEvent + 1670
45  com.apple.AppKit              	0x00007fff41c9fae4 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
46  com.apple.AppKit              	0x00007fff41c9a284 -[NSApplication run] + 658
47  com.apple.AppKit              	0x00007fff41c8c12d NSApplicationMain + 777
48  uk.org.logicalshift.zoom      	0x00000001000018c4 start + 52

Thomas-Ganter avatar Sep 30 '19 16:09 Thomas-Ganter

Any news on this? I tried compiling the code but it fails due to not being able to find code in the babel project that was installed in the directory above the source code for zoom. Installing the babel transpiler does not help.

cocranfill avatar Nov 10 '19 21:11 cocranfill

I think the source code for babel that can be retrieved from http://babel.ifarchive.org still works with the current version of Zoom: the version I have is 0.2b from 2006.

I've got it compiling and it seems to be working (still on Mojave here) but the Glulx plugin isn't working at the moment: it's the cause of the crashes I think - when compiled with a more modern library it returns a nil value for the principal class: the errors aren't that helpful but it looks like something is linking both the client and the view (which then fails to load as the communication classes are defined in both libraries)

Logicalshift avatar Nov 10 '19 23:11 Logicalshift

Okay. That version of babel works. When setting a breakpoint in the init method of ZoomAppDelegate.m, I get the following dialogs:

For security reasons, updates to Zoom need to be served over HTTPS and/or signed with an EdDSA key. See https://sparkle-project.org/documentation/ for more information.

In looking at the pList, I see that SUFeedURL is http, not https, and the URL does not exist on logicalshift.co.uk; I'm assuming it would only exist if an update were available. Same with ZoomPluginFeedTestURL.

When accessing ZoomPluginFeedURL, though, the following error appears:

This page contains the following errors: error on line 3 at column 1: Extra content at the end of the document Below is a rendering of the page up to the first error.

cocranfill avatar Nov 11 '19 16:11 cocranfill

Has anyone successfully compiled in Catalina?

dylanbromby avatar Feb 25 '20 04:02 dylanbromby

Yes. I submitted my code changes that enabled me to get Zoom compiled under Catalina.

Chad Cranfill

On Mon, Feb 24, 2020 at 10:13 PM Dylan Bromby [email protected] wrote:

Has anyone successfully compiled in Catalina?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Logicalshift/zoom/issues/13?email_source=notifications&email_token=ACEEYQMSRW67VX2UOKE2HADRESLF3A5CNFSM4IVOYKVKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM2PSEA#issuecomment-590674192, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACEEYQJ3HE5TIGJQJVZRC3LRESLF3ANCNFSM4IVOYKVA .

cocranfill avatar Feb 25 '20 05:02 cocranfill

@cocranfill There's only one branch in the project and no open PRs. And I don't see any closed PRs authored by you -- are these changes in the main branch?

dylanbromby avatar Feb 25 '20 20:02 dylanbromby

Let me check. If not, I’ll resubmit.

Chad Cranfill

On Tue, Feb 25, 2020 at 2:13 PM Dylan Bromby [email protected] wrote:

@cocranfill https://github.com/cocranfill There's only one branch in the project and no open PRs. And I don't see any closed PRs authored by you -- are these changes in the main branch?

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/Logicalshift/zoom/issues/13?email_source=notifications&email_token=ACEEYQKBOOK7XVRIDHAAQDTREV3WHA5CNFSM4IVOYKVKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM5KQBQ#issuecomment-591046662, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACEEYQLFJAVU6DIEIJUHYZLREV3WHANCNFSM4IVOYKVA .

cocranfill avatar Feb 25 '20 20:02 cocranfill

It's building for me (it seems there are some circular dependencies that upset the latest version of XCode: I've made some tweaks that might fix this). Zoom's definitely a bit tricky to build as it's a rather old project: the ZoomServer target in particular is of a kind that can only be created in Project Builder!

Not sure what's going on with Catalina at the moment: it's crashing with a null dereference without generating any useful log messages or stack traces. This also happened on Mojave and was to do with the dynamic loading of the various libraries (though it was actually fixable there): see 8e8f0933e5fecf5d1914ae4c4889be5fc74d46bf - I don't think it's getting that far now, but the nature of crash makes it rather hard to debug.

Logicalshift avatar Feb 25 '20 22:02 Logicalshift

(Just for extra fun: the similar bug in Mojave disrupts the debuggers ability to reliably set breakpoints, presumably due to the crash occurring while loading executable code)

Logicalshift avatar Feb 25 '20 22:02 Logicalshift

Let me check. If not, I’ll resubmit. Chad Cranfill

I can't see a PR or branch, nor a fork under your account. @cocranfill

david-mears-2 avatar May 25 '20 21:05 david-mears-2

In the meantime, I've made some progress and the latest version will actually run - somewhat badly and only with the Z-Machine interpreter.

There's a bunch of graphical glitches with the iFiction window to be worked through. The old plugin code seems to break something on Catalina and was responsible for the debugger failing, so it's been replaced by a no-op - I think the right thing to do there is to load everything directly and ditch the dynamic loading. There's another graphical glitch in the main game window: no editing cursor.

The crash was due to an invalid operation in an image drawing instruction: it's in an animation so non-critical and I've commented it out for now, not sure if it'll be noticeable if it's just left that way.

Logicalshift avatar May 25 '20 22:05 Logicalshift

@Logicalshift when you say running -- albeit badly -- do you mean on Catalina?

dylanbromby avatar May 26 '20 21:05 dylanbromby

Yes - the current latest version is starting up for me in Catalina: I managed to track down the crash on startup to a (slightly bizarre) crash while rendering an image, which I fixed by just not rendering that image. The problem with debugging turned out to be something to do with the plugin loading system, so I disabled that too.

There's a bunch of calls to obsolete APIs and some warnings about invalid JPEG2000 data that makes no sense at all (I don't think there are any JPEG2000 images in the package), and disabling the plugins means that only the Z-Machine is working, but it's definitely starting up successfully now.

Logicalshift avatar May 26 '20 21:05 Logicalshift

@Logicalshift I'm def not a pro, but just tried building the Zoom target in the latest Xcode to no avail. What's your build env?

dylanbromby avatar May 26 '20 21:05 dylanbromby

Plain XCode: I've just moved to a new Mac so that should be all that's required, but I'm working from a source tree that I know builds correctly, and part of Zoom's age shows in it having a slightly sensitive build process.

I haven't tried building straight from a fresh clone of the repo for a while: let's see what needs to be done:

  • target needs to be Zoom
  • you need to check out CocoaGlk into zoom/depends. You can get a version using git submodule init and git submodule update but it's a bit old
  • CocoaGlk itself has glulxe as a submodule so you might need to
  • you need a copy of babel in a folder next to your clone (ie, if you have zoom cloned into src/zoom, the babel source needs to be in src/babel. You can get the babel source code from http://babel.ifarchive.org/program.html
  • if you don't have an active Apple Developer account you may need to disable code signing on the project
  • there's some ordering issue with ZoomServer that means you might need to try building it twice as it tries to use a file before it's generated (ie, literally just try again if you get an error in ZoomServer's build)

Agh, that's a lot: if you start with a folder with the babel source unzipped into it, the following commands in a terminal should make things work:

git clone https://github.com/Logicalshift/zoom.git
cd zoom/depends
git clone https://github.com/Logicalshift/CocoaGlk.git
cd CocoaGlk
git submodule init
git submodule update

So you end up with a folder structure like this:

babel/
zoom/
zoom/depends/CocoaGlk
zoom/depends/CocoaGlk/depends/glulxe

(Life as it was before package managers...)

Logicalshift avatar May 26 '20 21:05 Logicalshift

I submitted my PR. Sorry for the delay.

cocranfill avatar May 26 '20 22:05 cocranfill

@Logicalshift You're a champ Andrew -- thanks for your commitment to this project. I'll fiddle with this as time permits over the next couple days but I don't know how much value I can add. I spent a ridiculous amount of time playing Infocom games in Jr. High & HS; I'm excited at the prospect of seeing Zoom run again.

dylanbromby avatar May 26 '20 22:05 dylanbromby

Following the steps above did not lead to a successful compiliation on Catalina. Is there any chance a release for Catalina will be made? Does anyone have a compilied version that runs on Catalina?

mbrettweigel avatar Oct 05 '20 03:10 mbrettweigel

Is there any update on this at all, please? Can anyone point to a compiled version that will run on Catalina?

alhuber1502 avatar Jan 05 '21 09:01 alhuber1502

Is there any update on this at all, please? Can anyone point to a compiled version that will run on Catalina?

You might try this link: https://github.com/cocranfill It was mentioned above, buried in a comment/reply.

mbrettweigel avatar Jan 05 '21 20:01 mbrettweigel

When I open it on 10.15.7, I get: “Zoom” is damaged and can’t be opened. You should move it to the Bin.

alhuber1502 avatar Jan 05 '21 22:01 alhuber1502

Try this: https://logicalshift.io/zoom/Zoom-20210105.zip - I've only just got it built and I've only tested Z-Code so far, and the only extra interpreter included is for Glulx (and the preferences window is still broken). Should have support for Apple Silicon too.

I've had another go at building it: I think because Zoom is rather old (hm, 21 years), bits are getting deprecated every time Apple makes a new XCode release so there were a bunch more things to reconfigure. I've only got Big Sur to test on, but I think this should be OK on Catalina.

Logicalshift avatar Jan 05 '21 22:01 Logicalshift