Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSX daily builds crash on startup #11999

Open
DonLakeFlyer opened this issue Oct 12, 2024 · 13 comments
Open

OSX daily builds crash on startup #11999

DonLakeFlyer opened this issue Oct 12, 2024 · 13 comments
Assignees

Comments

@DonLakeFlyer
Copy link
Contributor

Install latest OSX daily build from web site. Boot and it will crash on startup:

Termination Reason:    Namespace DYLD, Code 1 Library missing
Library not loaded: @rpath/libexiv2.28.dylib
Referenced from: <4E27540A-BD22-3B17-8130-ECD2F52D9E22> /Applications/QGroundControl Daily.app/Contents/MacOS/QGroundControl
Reason: tried: '/Library/Frameworks/GStreamer.framework/Versions/Current/lib/pkgconfig/../../lib/libexiv2.28.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/GStreamer.framework/Versions/Current/lib/pkgconfig/../../lib/libexiv2.28.dylib' (no such file), '/Applications/QGroundControl Daily.app/Contents/Frameworks/libexiv2.28.dylib' (no such file), '/Library/Frameworks/GStreamer.framework/Versions/Current/lib/pkgconfig/../../lib/libexiv2.28.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/GStreamer.framework/Versions/Current/lib/pkgconfig/../../lib/libexiv2.28.dylib' (no such file), '/Applications/QGroundControl Daily.app/Contents/Frameworks/libexiv2.28.dylib' (no such file)
(terminated at launch; ignore backtrace)
@DonLakeFlyer
Copy link
Contributor Author

DonLakeFlyer commented Oct 12, 2024

Tried building master without gstreamer and that doesn't seem to work any more:

CMake Error at /usr/local/Cellar/cmake/3.29.2/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
[cmake]   Could NOT find GStreamer (missing: GStreamer_Core_FOUND
[cmake]   GStreamer_Base_FOUND GStreamer_Video_FOUND GStreamer_Gl_FOUND Allocators
[cmake]

Used to be that build would detect no gstreamer framework installed and build a version automatically without it.

@DonLakeFlyer
Copy link
Contributor Author

I tried going to the dev guide for building to see what the new rules are but that doesn't seem to be current. This "Video Streaming/Gstreamer: - see Video Streaming." just goes to a 404 now.

Not sure what the current state of affairs is with respect to gstreamer installs.

@HTRamsey
Copy link
Collaborator

HTRamsey commented Oct 12, 2024

@DonLakeFlyer these errors all mention exiv2. Maybe I should revert to before using that. Could you also try a built from before exiv2?

@HTRamsey
Copy link
Collaborator

HTRamsey commented Oct 12, 2024

Actually nevermind it gets built as a shared lib then doesn't get copied over when deployed, #12005 should fix that. Also in regards to gstreamer, yeah I guess currently you would have to disable build with gstreamer in the options. I can get it to just build without gstreamer, but I also feel like they should have to disable building with gstreamer to acknowledge it won't have it, rather than just be surprised because they didn't read the configure output log.

@DonLakeFlyer
Copy link
Contributor Author

Ah, I saw it poking around in the gstreamer framework! That it was that.

but I also feel like they should have to disable building with gstreamer to acknowledge it won't have it, rather than just be surprised because they didn't read the configure output log.

Make sense. Can you update the dev guide with respect to how you are supposed to build with/without gstreamer?

@HTRamsey
Copy link
Collaborator

Is this resolved now with the static lib thing?

@DonLakeFlyer
Copy link
Contributor Author

DonLakeFlyer commented Oct 14, 2024

Tried daily again. Crashing in a different way:

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000

Termination Reason:    Namespace DYLD, Code 1 Library missing
Library not loaded: @rpath/libavcodec.59.18.100.dylib
Referenced from: <6B366159-8F7A-39AE-A6C9-B2404185194D> /Applications/QGroundControl Daily.app/Contents/MacOS/QGroundControl
Reason: tried: '/Library/Frameworks/GStreamer.framework/Versions/Current/lib/pkgconfig/../../lib/libavcodec.59.18.100.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/GStreamer.framework/Versions/Current/lib/pkgconfig/../../lib/libavcodec.59.18.100.dylib' (no such file), '/Applications/QGroundControl Daily.app/Contents/Frameworks/libavcodec.59.18.100.dylib' (no such file), '/Library/Frameworks/GStreamer.framework/Versions/Current/lib/pkgconfig/../../lib/libavcodec.59.18.100.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/GStreamer.framework/Versions/Current/lib/pkgconfig/../../lib/libavcodec.59.18.100.dylib' (no such file), '/Applications/QGroundControl Daily.app/Contents/Frameworks/libavcodec.59.18.100.dylib' (no such file)
(terminated at launch; ignore backtrace)

@HTRamsey
Copy link
Collaborator

Oof, okay. apparently something else not being copied over. I'll check it out tonight

@HTRamsey
Copy link
Collaborator

Can you try an artifact from #11971? I think that should fix this

@DonLakeFlyer
Copy link
Contributor Author

Whack-a-mole :)

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000

Termination Reason:    Namespace DYLD, Code 1 Library missing
Library not loaded: @rpath/libgstcoreelements.dylib
Referenced from: <F33C7B3E-18F8-3E0A-AC9F-70A6E41A4A77> /Applications/QGroundControl Daily.app/Contents/MacOS/QGroundControl
Reason: tried: '/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/pkgconfig/../../lib/libgstcoreelements.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/pkgconfig/../../lib/libgstcoreelements.dylib' (no such file), '/Applications/QGroundControl Daily.app/Contents/Frameworks/libgstcoreelements.dylib' (no such file), '/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/pkgconfig/../../lib/libgstcoreelements.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/pkgconfig/../../lib/libgstcoreelements.dylib' (no such file), '/Applications/QGroundControl Daily.app/Contents/Frameworks/libgstcoreelements.dylib' (no such file)
(terminated at launch; ignore backtrace)

@HTRamsey
Copy link
Collaborator

So the frustrating part is setting the gstreamer environment variables based on whether you are just running a build or are running from an installation, because for the first case you want to pull from the system's gstreamer and in the second case you want to pull from the app's included gstreamer. Basically if you have it set up to work one way, it won't work the other way. Note the ifdef QGC_INSTALL_RELEASE here. For an appimage on linux, you can define these environment variables in a custom script that gets run at the start of the appimage. However for MacOS and DMG's, I have no idea how to approach this

@DonLakeFlyer
Copy link
Contributor Author

Can't you just go back to sort of what the old qmake build did: CONFIG += installer would do the right stuff as opposed to being done on all release builds. Not very "cmake'ish" I know but simple way to make it work wouldn't it?

@HTRamsey
Copy link
Collaborator

Yeah, just trying to keep it as automated and simple as possible. I'm hoping I solved this in master now, apparently you can set environment variables in the plist file so that's a potential solution as well. I really just need to get a MacOS system from ebay or something so it's easier for me to test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants