Oolite Mac OS X – Trunk nightly builds

Discussion and announcements regarding the Mac port… er, original version of Oolite.

Moderators: another_commander, winston

User avatar
Cholmondely
Wiki Wizard
Wiki Wizard
Posts: 2868
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of Her Most Britannic Majesty (currently plague-ridden)
Contact:

Re: Oolite Mac OS X – Trunk nightly builds

Post by Cholmondely »

hiran wrote: Tue Jan 18, 2022 8:18 pm
Cholmondely wrote: Tue Jan 18, 2022 5:57 pm
hiran wrote: Mon Jan 17, 2022 8:32 am

Please download and run the game. I'd be very much interested how far you get.
If you write down what you perceive that should be good enough for someone to take it further.
What should I be downloading?
Please check https://github.com/HiranChaudhuri/oolite/releases
If you like, get in Jitsi and we can experience it together...
I'm jittering...
Denizen of the Dark and Dismal Deserts of Digebiti.

Milo wrote Dancing the Gavotte

Oolite BB Topic icons guide
User avatar
Cholmondely
Wiki Wizard
Wiki Wizard
Posts: 2868
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of Her Most Britannic Majesty (currently plague-ridden)
Contact:

Re: Oolite Mac OS X – Trunk nightly builds

Post by Cholmondely »

hiran wrote: Mon Jan 17, 2022 6:30 am
Commander_X wrote: Sun Jan 16, 2022 11:36 pm
hiran wrote: Sun Jan 16, 2022 8:48 pm [...]
Besides that are you able to check the content of the release? Can you install it? Can you start it? Does it crash?
I am not very familiar with the content of a Mac release. I noticed, though, as above, that what you've got in the "good" zip file, matches what I've got when I ran with copy'n'paste the yaml action.

Installing is as simple as unzipping a file, and unzip I could (and got the unzipped contents out of Apple's quarantine).

It also starts and crashes as before, right after showing the splash screen.
That confirms the build has the same flaws as yours. We'll have to find out what exactly is missing, but if that error does not provide any better information we need developer support.
Commander_X wrote: Sun Jan 16, 2022 11:36 pm It seems that removing the volatile is the right "fix" for the js compilation. From what I could read (at least for gcc) "out of function" asm code is always compiled as volatile (regardless of having the directive set or not). It seems clang enforces the "preferred" syntax (I'd expect clang to also compile as volatile the asm code, they advertise to be quite close to gcc conventions, but be more strict on the syntax -- therefore the "meaningless" in the error message).

There might be that some of the "UTF8String" calls are not properly guarded against null values for their argument, and this hits back bad on more recent versions of macOS.
As much as I understood the 'volatile' was meaningless. That means it's presence does not change anything in the compiled output. While older compilers accepted the keyword without warning, gcc after 8.3 will fail. Removing that keyword is the only valid response to that. Although it was not meaningless on all twenty-something occurrences but just four. I removed the offending 4.

Are you familiar with debugging code? As you have the IDE, could you try to step through the Oolite startup to pinpoint where exactly and what kind of exception is thrown? Any data we get will help.
Downloaded the new nightly from https://github.com/HiranChaudhuri/oolit ... tag/latest (the test release.zip version).

After unzipping, it would not open, and instead of the usual quarantine message, I got a message that the file was damaged.

The Apple "Console" application showed the following:

Code: Select all

default	21:44:16.174741+0000	loginwindow	-[PersistentAppsSupport applicationReady:] | App: Oolite, ready, updating active tracking timer
default	21:44:16.174849+0000	loginwindow	-[ApplicationManager checkInAppContext:eventData:] | ApplicationManager: Checked in app : Oolite
default	21:44:16.231710+0000	runningboardd	Finished acquiring assertion 482-173-106868 (target:executable<Oolite(501)>)
default	21:44:16.231940+0000	runningboardd	Invalidating assertion 482-173-106867 (target:executable<Oolite(501)>) from originator 173
default	21:44:16.827033+0000	Dock	Failed to set up extra plugin. /Users/accountname/Desktop/TestRelease/Oolite.app Plugin in quarantine
default	21:44:17.136598+0000	dmd	Received xpc stream event (distributed notification matching) with name: com.apple.LaunchServices.applicationRegistered user info: {
    bundleIDs =     (
        "org.aegidian.oolite"
    );
    isPlaceholder = 0;
}
default	21:44:20.056411+0000	runningboardd	[executable<Oolite(501)>:18396] Death sentinel fired!
default	21:44:20.055850+0000	kernel	Security policy would not allow process: 18396, /Users/accountname/Desktop/TestRelease/Oolite.app/Contents/MacOS/Oolite
default	21:44:20.098577+0000	loginwindow	-[PersistentAppsSupport applicationQuit:] | for app:Oolite, _appTrackingState = 2
default	21:44:20.098628+0000	loginwindow	-[PersistentAppsSupport applicationQuit:] | App: Oolite, quit, updating active tracking timer
default	21:44:20.096420+0000	runningboardd	Invalidating assertion 482-173-106868 (target:executable<Oolite(501)>) from originator 173
default	21:44:20.162240+0000	runningboardd	Removing process: [executable<Oolite(501)>:18396]
default	21:44:20.163441+0000	runningboardd	Removing assertions for terminated process: [executable<Oolite(501)>:18396]
error	21:44:20.227130+0000	runningboardd	RBSStateCapture remove item called for untracked item 482-173-106868 (target:executable<Oolite(501)>)
Denizen of the Dark and Dismal Deserts of Digebiti.

Milo wrote Dancing the Gavotte

Oolite BB Topic icons guide
User avatar
Cholmondely
Wiki Wizard
Wiki Wizard
Posts: 2868
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of Her Most Britannic Majesty (currently plague-ridden)
Contact:

Re: Oolite Mac OS X – Trunk nightly builds

Post by Cholmondely »

Hiran showed me how to take Oolite out of Quarantine using Terminal.

On opening the dequarantined Oolite nightly, I got the following error report: An exception of type NSInvalidAQrgumentException occurred...

The new problem showed this on the latest.log

Code: Select all

Opening log for Oolite version 1.91 (x86-64 test release) under Mac OS X Version 10.15.3 (Build 19D2064) at 2022-01-18 22:02:10 +0000.
Machine type: MacBookAir9,1, 8192 MiB memory, 2 (4 logical) x x86 (family 0x38435547) @ 1100 MHz.
Build options: OpenAL, new planets, JavaScript console support, Debug plug-in support, OXP verifier, localization tools, debug GraphViz support, JavaScript profiling.

Note that the contents of the log file can be adjusted by editing logcontrol.plist.

22:02:11.164 [dataCache.rebuild] -[OOCacheManager(Private) loadCache] (OOCacheManager.m:353): Data cache version (1.90) does not match Oolite version (1.91), rebuilding cache.
22:02:11.372 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/Managed AddOns/oolite.oxp.drew.Tianve1.3.oxp has no manifest.plist
22:02:12.484 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/TargetTracker v0.2.oxp has no manifest.plist
22:02:12.486 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Submersible_Nebulae.oxp has no manifest.plist
22:02:12.496 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Riredi-v1.0.0-2014-01-12.oxp has no manifest.plist
22:02:12.500 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Final Capital.oxp has no manifest.plist
22:02:12.515 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/adcks_navy_destroyer_1.0.oxp has no manifest.plist
22:02:12.519 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Missionaries.oxp has no manifest.plist
22:02:12.524 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/oolite.oxp.murgh.Lave.oxp has no manifest.plist
22:02:12.529 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Variable Jump Drive v0.3.oxp has no manifest.plist
22:02:12.531 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/sunskimmers.oxp has no manifest.plist
22:02:12.535 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/ulysses31-odyssey.oxp has no manifest.plist
22:02:12.540 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/LongRangeScanner v0.3.oxp has no manifest.plist
22:02:12.546 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Diso.oxp has no manifest.plist
22:02:12.551 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/galactic_navy_facelift_1.4.oxp has no manifest.plist
22:02:12.580 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Oo-Haul.oxp has no manifest.plist
22:02:12.591 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Cargo_wrecks_teaser 1.7.2.oxp has no manifest.plist
22:02:12.600 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/monument.oxp has no manifest.plist
22:02:12.603 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/oolite.oxp.Griff_IceAsteroidTest.oxp has no manifest.plist
22:02:12.607 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Shady Deepspace Ships1.21.oxp has no manifest.plist
22:02:12.617 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Galactic_Navy 5.4.3.oxp has no manifest.plist
22:02:12.626 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Quantum Drive v0.3.oxp has no manifest.plist
22:02:12.630 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/DarkSoul_Nebulae.oxp has no manifest.plist
22:02:12.633 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/transhab.oxp has no manifest.plist
22:02:12.641 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Hotrods.oxp has no manifest.plist
22:02:12.652 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/MandotechIndStationV1.4.tweaked.oxp has no manifest.plist
22:02:12.659 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/oolite.oxp.murgh.wpb.oxp has no manifest.plist
22:02:12.665 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/piratetraps.oxp has no manifest.plist
22:02:12.672 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/Galcop_trade_outpost.oxp has no manifest.plist
22:02:12.692 [oxp-standards.error] OOStandardsInternal (OODebugStandards.m:92): OXP /Users/accountname/Library/Application Support/Oolite/AddOns/globestation2.0 2009.oxp has no manifest.plist

22:02:14.641 [joystick.error.init] -[OOMacJoystickManager init] (OOMacJoystickManager.m:80): Cannot open HID manager; joystick support will not function.

22:02:14.641 [startup.exception] -[GameController reportUnhandledStartupException:] (GameController.m:924): ***** Unhandled exception during startup: NSInvalidArgumentException (*** +[NSString stringWithUTF8String:]: NULL cString).
This was with my joystick plugged in...

Edited to add the following:

I'd run it just previously without the joystick and got this:

Code: Select all

Opening log for Oolite version 1.91 (x86-64 test release) under Mac OS X Version 10.15.3 (Build 19D2064) at 2022-01-18 21:54:24 +0000.
Machine type: MacBookAir9,1, 8192 MiB memory, 2 (4 logical) x x86 (family 0x38435547) @ 1100 MHz.
Build options: OpenAL, new planets, JavaScript console support, Debug plug-in support, OXP verifier, localization tools, debug GraphViz support, JavaScript profiling.

Note that the contents of the log file can be adjusted by editing logcontrol.plist.

21:54:24.665 [dataCache.rebuild] -[OOCacheManager(Private) loadCache] (OOCacheManager.m:353): Data cache version (1.90) does not match Oolite version (1.91), rebuilding cache.

     ... gubbins about malevolent and maleficent .oxp's as above ...

21:54:27.056 [joystick.error.init] -[OOMacJoystickManager init] (OOMacJoystickManager.m:80): Cannot open HID manager; joystick support will not function.

21:54:27.057 [startup.exception] -[GameController reportUnhandledStartupException:] (GameController.m:924): ***** Unhandled exception during startup: NSInvalidArgumentException (*** +[NSString stringWithUTF8String:]: NULL cString).
Last edited by Cholmondely on Tue Jan 18, 2022 11:00 pm, edited 1 time in total.
Denizen of the Dark and Dismal Deserts of Digebiti.

Milo wrote Dancing the Gavotte

Oolite BB Topic icons guide
hiran
---- E L I T E ----
---- E L I T E ----
Posts: 853
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Oolite Mac OS X – Trunk nightly builds

Post by hiran »

Cholmondely wrote: Tue Jan 18, 2022 10:15 pm Note that the contents of the log file can be adjusted by editing logcontrol.plist.

Code: Select all

22:02:14.641 [joystick.error.init] -[OOMacJoystickManager init] (OOMacJoystickManager.m:80): Cannot open HID manager; joystick support will not function.
22:02:14.641 [startup.exception] -[GameController reportUnhandledStartupException:] (GameController.m:924): ***** Unhandled exception during startup: NSInvalidArgumentException (*** +[NSString stringWithUTF8String:]: NULL cString).
This was with my joystick plugged in...
These two lines are a strong hint something went wrong with joystick access - even if there is none connected.
I drilled it down to this source code:

Code: Select all

		hidManager = IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDOptionsTypeNone);
		IOHIDManagerSetDeviceMatching(hidManager, NULL);
		
		IOHIDManagerRegisterDeviceMatchingCallback(hidManager, HandleDeviceMatchingCallback, self);
		IOHIDManagerRegisterDeviceRemovalCallback(hidManager, HandleDeviceRemovalCallback, self);
		
		IOHIDManagerScheduleWithRunLoop(hidManager, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
		IOReturn iores = IOHIDManagerOpen(hidManager, kIOHIDOptionsTypeNone);
		if (iores != kIOReturnSuccess)
		{
			OOLog(@"joystick.error.init", @"Cannot open HID manager; joystick support will not function.");
		}
Somehow it smells like a consequence of us just ignoring the warnings about deprecated function calls. Need to match this with the warnings during another build.
I have not failed. I've just found 10,000 ways that won't work. [Thomas Edison]
Commander_X
---- E L I T E ----
---- E L I T E ----
Posts: 561
Joined: Sat Aug 09, 2014 4:16 pm

Re: Oolite Mac OS X – Trunk nightly builds

Post by Commander_X »

I'd guess the joystick/HID part is of secondary importance (it might be that some permissions for Oolite to access/allow access from local hardware might be needed).
What I think is of more interest is that neither Cholmondely's log nor mine show any OpenGL information to start with.
This is what I've got on the VM in the log when running the working (1.90) version of the game:

Code: Select all

12:18:45.170 [rendering.opengl.version]: OpenGL renderer version: 2.1.0 ("2.1 APPLE-18.1.1"). Vendor: "Apple Inc.". Renderer: "Apple Software Renderer".
12:18:45.170 [rendering.opengl.extensions]: OpenGL extensions (133):
GL_EXT_texture_compression_dxt1, GL_EXT_rescale_normal, GL_EXT_transform_feedback, GL_EXT_blend_func_separate, GL_EXT_framebuffer_sRGB, GL_ATI_texture_env_combine3, GL_ARB_draw_elements_base_vertex, GL_EXT_debug_label, GL_EXT_geometry_shader4, GL_EXT_secondary_color, GL_EXT_separate_specular_color, GL_EXT_shadow_funcs, GL_NV_texgen_reflection, GL_NV_blend_square, GL_ARB_texture_compression_rgtc, GL_EXT_stencil_wrap, GL_ARB_texture_env_crossbar, GL_EXT_framebuffer_blit, GL_EXT_bindable_uniform, GL_ATI_separate_stencil, GL_APPLE_vertex_point_size, GL_EXT_texture_rectangle, GL_APPLE_specular_vector, GL_EXT_packed_depth_stencil, GL_EXT_blend_color, GL_ARB_fragment_program_shadow, GL_EXT_texture_env_add, GL_ARB_imaging, GL_EXT_provoking_vertex, GL_EXT_texture_array, GL_ARB_texture_env_combine, GL_ARB_point_sprite, GL_ARB_multisample, GL_EXT_framebuffer_object, GL_ARB_framebuffer_sRGB, GL_EXT_texture_lod_bias, GL_APPLE_pixel_buffer, GL_ARB_vertex_program, GL_EXT_bgra, GL_APPLE_fence, GL_APPLE_ycbcr_422, GL_EXT_timer_query, GL_EXT_vertex_array_bgra, GL_ARB_depth_clamp, GL_IBM_rasterpos_clip, GL_ARB_pixel_buffer_object, GL_SGIS_generate_mipmap, GL_EXT_framebuffer_multisample_blit_scaled, GL_ARB_shader_texture_lod, GL_ARB_texture_float, GL_ARB_texture_rectangle, GL_ARB_vertex_shader, GL_NV_texture_barrier, GL_ARB_provoking_vertex, GL_ARB_texture_env_add, GL_ARB_texture_env_dot3, GL_APPLE_rgb_422, GL_NV_depth_clamp, GL_ARB_texture_mirrored_repeat, GL_ARB_texture_cube_map, GL_APPLE_element_array, GL_ATI_texture_float, GL_ARB_window_pos, GL_ARB_sync, GL_ARB_vertex_buffer_object, GL_APPLE_texture_range, GL_ATI_texture_compression_3dc, GL_EXT_stencil_two_side, GL_ARB_texture_compression, GL_ARB_instanced_arrays, GL_EXT_blend_minmax, GL_ARB_texture_border_clamp, GL_EXT_draw_buffers2, GL_ARB_shading_language_100, GL_EXT_blend_equation_separate, GL_ARB_vertex_blend, GL_EXT_blend_subtract, GL_EXT_packed_float, GL_APPLE_aux_depth_stencil, GL_APPLE_row_bytes, GL_NV_conditional_render, GL_NV_light_max_exponent, GL_EXT_abgr, GL_EXT_texture_filter_anisotropic, GL_ARB_vertex_array_bgra, GL_ARB_draw_buffers, GL_ARB_transpose_matrix, GL_ARB_color_buffer_float, GL_EXT_gpu_program_parameters, GL_APPLE_client_storage, GL_ARB_texture_non_power_of_two, GL_ARB_multitexture, GL_EXT_gpu_shader4, GL_APPLE_flush_render, GL_ARB_framebuffer_object, GL_APPLE_vertex_program_evaluators, GL_APPLE_transform_hint, GL_EXT_texture_compression_s3tc, GL_APPLE_flush_buffer_range, GL_EXT_texture_integer, GL_SGIS_texture_edge_clamp, GL_EXT_texture_mirror_clamp, GL_ARB_occlusion_query, GL_ARB_fragment_shader, GL_ARB_texture_rg, GL_NV_fog_distance, GL_ARB_fragment_program, GL_ARB_seamless_cube_map, GL_ARB_shader_objects, GL_EXT_draw_range_elements, GL_APPLE_vertex_array_object, GL_ARB_depth_texture, GL_EXT_texture_sRGB, GL_ARB_half_float_vertex, GL_APPLE_vertex_array_range, GL_ARB_shadow, GL_EXT_multi_draw_arrays, GL_ARB_half_float_pixel, GL_APPLE_packed_pixels, GL_ARB_point_parameters, GL_EXT_debug_marker, GL_EXT_texture_sRGB_decode, GL_EXT_clip_volume_hint, GL_EXT_depth_bounds_test, GL_SGIS_texture_lod, GL_EXT_fog_coord, GL_EXT_texture_shared_exponent, GL_ATI_texture_mirror_once, GL_ARB_shadow_ambient, GL_EXT_framebuffer_multisample, GL_APPLE_float_pixels, GL_ARB_depth_buffer_float, GL_ARB_draw_instanced
12:18:45.182 [rendering.opengl.shader.support]: Shaders are supported.
I compiled and tried to run a debug version, and these should be the more interesting things I've got from it:
- the first error (and the stack trace):

Code: Select all

2022-01-19 14:52:40.782796-0500 Oolite[2642:11945] [General] ERROR: Setting <MyOpenGLView 0x7fc82d976c00> as the first responder for window <OOPrimaryWindow 0x7fc82a412c20>, but it is in a different window (<NSWindow 0x7fc82c20b360>)! This would eventually crash when the view is freed. The first responder will be set to nil.
(
	0   AppKit                              0x00007fff22ea05e1 -[NSWindow _validateFirstResponder:] + 449
	1   AppKit                              0x00007fff22ea03dc -[NSWindow _setFirstResponder:] + 31
	2   AppKit                              0x00007fff22fc4779 -[NSWindow _realMakeFirstResponder:] + 308
	3   AppKit                              0x00007fff22fd9a63 -[NSWindow _selectFirstKeyView] + 758
	4   AppKit                              0x00007fff22fd9097 -[NSWindow _setUpFirstResponder] + 189
	5   AppKit                              0x00007fff22fd643f -[NSWindow _doWindowWillBeVisibleAsSheet:] + 153
	6   AppKit                              0x00007fff22fd438f -[NSWindow _reallyDoOrderWindowAboveOrBelow:relativeTo:findKey:forCounter:force:isModal:] + 1319
	7   AppKit                              0x00007fff22fd3b10 -[NSWindow _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 135
	8   AppKit                              0x00007fff22fd2b07 -[NSWindow _doOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 289
	9   AppKit                              0x00007fff22fd2984 -[NSWindow orderWindow:relativeTo:] + 155
	10  AppKit                              0x00007fff22e6894f -[NSIBObjectData nibInstantiateWithOwner:options:topLevelObjects:] + 2033
	11  AppKit                              0x00007fff22e5cda8 loadNib + 392
	12  AppKit                              0x00007fff22e5c5f3 +[NSBundle(NSNibLoading) _loadNibFile:nameTable:options:withZone:ownerBundle:] + 1268
	13  AppKit                              0x00007fff22e5c00a -[NSBundle(NSNibLoading) loadNibNamed:owner:topLevelObjects:] + 201
	14  AppKit                              0x00007fff22e5bde8 +[NSBundle(NSNibLoading) loadNibNamed:owner:] + 394
	15  AppKit                              0x00007fff22e4e972 NSApplicationMain + 566
	16  Oolite                              0x00000001048cc627 main + 39
	17  libdyld.dylib                       0x00007fff2067cf3d start + 1
)
- following two lines which I think explain the joystick error (not error here, as the VM is not presented with one):

Code: Select all

2022-01-19 14:52:40.980413-0500 Oolite[2642:11945] [default] 0x1000002a0: TCC deny IOHIDDeviceOpen
2022-01-19 14:52:40.981287-0500 Oolite[2642:11945] [default] 0x1000002b6: TCC deny IOHIDDeviceOpen
- the last part that leads to think that for Mac OS 10.9+ the whole OpenGL needs to be "derived" from Metal:

Code: Select all

2022-01-19 14:52:41.432315-0500 Oolite[2642:11945] Metal API Validation Enabled
2022-01-19 14:52:41.432728-0500 Oolite[2642:11945] +[MTLIOAccelDevice registerDevices]: Zero Metal services found
2022-01-19 14:52:41.436021-0500 Oolite[2642:11945] [api] No Metal renderer available.
2022-01-19 14:52:41.513899-0500 Oolite[2642:11945] [render] Unable to create basic Accelerated OpenGL renderer.
2022-01-19 14:52:41.514135-0500 Oolite[2642:11945] [render] Unable to create basic Accelerated OpenGL renderer.
Although I've got "TCC deny IOHIDDeviceOpen" messages, they were not logged, so I don't think they are a culprit.
I am not sure to what extent the first and the last errors are related.
EDIT:
On a second thought, it could also be that the "TCC deny" message I've got is because Oolite couldn't actually open the "graphics card" of my VM (for one reason or another).
hiran
---- E L I T E ----
---- E L I T E ----
Posts: 853
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Oolite Mac OS X – Trunk nightly builds

Post by hiran »

Thank you for that elaborate analysis. I'm afraid this part is getting over my head.
Not having a joystick should actually be fine. But then the error message somehow stems from that part...

OS related a lot of things changed. Oolite didn't. Yes it could be the renderer, it could also be that first responder you found. What is a first responder? The splash screen?

What I saw is that Oolite shows the splash screen, then it shows the alert box before terminating. Somehow it would have to release the splash screen at some point in time, about the time when the main window should pop up. The main window did not show. But the alert box. I guess until then the application was still in a controlled state, not yet crashed as the warning about the first responder indicated.

Still all issues that need to be thoroughly looked at....
Commander_X wrote: Wed Jan 19, 2022 8:45 pm On a second thought, it could also be that the "TCC deny" message I've got is because Oolite couldn't actually open the "graphics card" of my VM (for one reason or another).
Oolite runs in Ubuntu 20 inside VirtualBox, hosted both on MacOS and Ubuntu. It is equipped with a standard VMSVGA graphics adapter and there were no issues - but do not expect performance. If you are interested, check out the VirtualBox appliance available as torrent. What Hypervisor is hosting your VM, and how is the guest configured?
I have not failed. I've just found 10,000 ways that won't work. [Thomas Edison]
User avatar
Cholmondely
Wiki Wizard
Wiki Wizard
Posts: 2868
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of Her Most Britannic Majesty (currently plague-ridden)
Contact:

Re: Oolite Mac OS X – Trunk nightly builds

Post by Cholmondely »

Should I mention that I have Joystick issues? Thrustmaster TM4 seems to work just fine once you do the secret button routine (but Murgh had issues here). However, CH Combat Stick & Throttle Pro give McOolite the galloping heeby-jeebies. Just McOolite. No problems with Windows Oolite. No problems with Enjoyable on the Mac.

But with McOolite the throttle seems to get confused with the joystick and the configuration pages end up comatose unable to react to anything going on (CH joystick on its tod is fine, I've yet to try the same for the throttle). The CH equipment is over two decades old and is supposed to work fine with the AppleMac. But not with Oolite for Mac, sadly.
Denizen of the Dark and Dismal Deserts of Digebiti.

Milo wrote Dancing the Gavotte

Oolite BB Topic icons guide
Commander_X
---- E L I T E ----
---- E L I T E ----
Posts: 561
Joined: Sat Aug 09, 2014 4:16 pm

Re: Oolite Mac OS X – Trunk nightly builds

Post by Commander_X »

Some more things I was able to identify.

The initial error (about the first responder) is issued when the Oolite.xib (or its compiled version ?!) is loaded.
When I opened that file in Xcode, some errors came out due with "Auto Layout before OS X 10.7"; it also "converted itself to the "newer format". I fixed the errors by selecting "Autoresizing Mask" for the layout in the size inspector. There was also a warning regarding a missing GameController outlet in MyOpenGLView, which I added in MyOpenGLView.h (by prefixing the declaration of the GameController with "IBOutlet").
The error is still triggered, though.

The "TCC deny" error, comes indeed from the joystick initialization attempt.

The error about OpenGL (which raises the exception as well) comes from the call on line 188 in OOOpenGLExtensionManager.m:

Code: Select all

	NSString *extensionsStr = [NSString stringWithUTF8String:(char *)glGetString(GL_EXTENSIONS)];
I guess this is the first real OpenGL call the game is making.

It might be worth noticing that before to the "first responder" error in the debug trace, there are also the following:

Code: Select all

[Metadata] unable to get a dev_t for store 1795162192.
SecTaskLoadEntitlements failed error=22 cs_flags=20, pid=2642
SecTaskCopyDebugDescription: Oolite[2642]/0#-1 LF=0
SecTaskLoadEntitlements failed error=22 cs_flags=20, pid=2642
SecTaskCopyDebugDescription: Oolite[2642]/0#-1 LF=0
ApplePersistenceIgnoreState: Existing state will not be touched. New state will be written to /var/folders/5b/gyp7cj8x1gl10hg1w8cjv_540000gn/T/org.aegidian.oolite.savedState
hiran
---- E L I T E ----
---- E L I T E ----
Posts: 853
Joined: Fri Mar 26, 2021 1:39 pm
Location: a parallel world I created for myself. Some call it a singularity...

Re: Oolite Mac OS X – Trunk nightly builds

Post by hiran »

To recap, we now know
  • The joystick code needs to be reviewed
  • OpenGL calls need to be moved to Metal (or checked for compatibility mode)
  • 'save state' may relate to game settings or savegames. So that code also needs a review.
The list is growing unfortunately...
I have not failed. I've just found 10,000 ways that won't work. [Thomas Edison]
User avatar
Cholmondely
Wiki Wizard
Wiki Wizard
Posts: 2868
Joined: Tue Jul 07, 2020 11:00 am
Location: The Delightful Domains of Her Most Britannic Majesty (currently plague-ridden)
Contact:

Re: Oolite Mac OS X – Trunk nightly builds

Post by Cholmondely »

hiran wrote: Thu Jan 20, 2022 6:38 am To recap, we now know
  • The joystick code needs to be reviewed
  • OpenGL calls need to be moved to Metal (or checked for compatibility mode)
  • 'save state' may relate to game settings or savegames. So that code also needs a review.
The list is growing unfortunately...
Hiran,

I'm sure you've seen this... but just in case you haven't:

These are the changes required to build with Xcode 10, which will bring back nightly builds. It also updates various project files, breaking compatibility with older versions of Xcode.


Done as a PR because merging this will drop support for Mac OS X 10.6 (the 2009–2010 version).

Jen Ayton 2019
Denizen of the Dark and Dismal Deserts of Digebiti.

Milo wrote Dancing the Gavotte

Oolite BB Topic icons guide
Commander_X
---- E L I T E ----
---- E L I T E ----
Posts: 561
Joined: Sat Aug 09, 2014 4:16 pm

Re: Oolite Mac OS X – Trunk nightly builds

Post by Commander_X »

Cholmondely wrote: Sat Jan 22, 2022 9:19 pm [...] I'm sure you've seen this... but just in case you haven't:
[...]
Will answer first on this: from what I can tell, Jens' changes didn't address the first thing that breaks -- the "ERROR" with the first responder.
That error occurs when Oolite.xib file (sort of, the UI for the whole application) is loaded. The OpenGL library is supposed to be initialized there, and that's why the call for extensions fails later.
There will be some effort necessary to figure out how should the previous definition be _properly_ migrated to the new version of Xcode (e.g., just by fixing the initial errors, a lot of things get discarded; the underlying XML file is oversimplified, when compared with what was initially in).
Post Reply