One important note for non-technical readers: *porting* shotcut to OpenBSD meant fixing *three bugs* in the ported software:
- mlt (the framework shotcut is based on) uses mutexes extensively, but does NOT initialize them completely *even though the mutex default type is unspecified by posix - mlt uses locales in threaded context, trying its best to protect usage with mutexes, but *this doesn't work for us*, setlocale is NOT safe for MT usage. - shotcut had a use-after-free (misuse of s.toUtf8().constData(), which creates a temporary which is *invalid* after the current statement. Turns out the bug is *everywhere* but shows up *consistently* on OpenBSD thanks to otto@'s malloc. I would stress that ALL THESE ARE BUGS that are independent of OpenBSD, but that OpenBSD is such a "hostile" environment for bugs that you have NO CHOICE but fix the issues if you want software to run.