hiran wrote: ↑Mon Aug 21, 2023 8:48 pm
Well, maybe it reduces to simply forking another process.
I've taken my time to reply because I wanted this response to have a more thoughtful and serious tone that my previous replies have been.
This exercise, and the idea behind this thread, was supposed to be something simple that can operate on the back of other updates I'll be pushing to trunk soon. The opportunity was there, and so I thought it was worth pursuing. I was certainly not considering a much larger piece of work to be the prequisite for implementing something like this. But let's have a look at what the implications of that change would be.
The difficulty in implementing the ability to launch system processes on three separate OSes goes beyond the actual mechanics of the code changes themselves. One of the benefits of our current platform is that it has no ability to launch anything (via core code or JS), and will only write to save game files or the GNUstepDefaults file. This means, from a security point of view, that Oolite is quite benign. It has few (if any) vectors that can be exploited for nefarious purposes.
By opening up a means by which processes can be launched greatly increases the security concerns for the app. But perhaps we could address those concerns, mitigate the risks in some way? How would you do that?
Well, the first thing you'd have to do it update all the linked DLL libraries to the most up-to-date and secure versions available. That would have to be the first step, because it would be the only way to ensure that all known security issues have been dealt with. Trying to back-port the massive list of security fixes onto our set of DLL's would be even worse. And as part of the dev team, re-implementing and re-linking all the DLL's is not a task we can take on. We just don't have the bandwidth to make it happen. Plus, doing so would likely break a lot of existing code (core and in OXP's).
And while there might be flow-on benefits for doing that work, there would need to be a really compelling reason why. Adding some context-sensitive help doesn't clear that bar. It's a "nice to have" only.
So, as part of the dev team, I'm saying that I don't want to add this ability to Oolite. I would need a lot of convinving, and there would need to be a massive increase in active members of the dev team, along with some rather critical Mac developers.
Just so it's clear - I'm not opposed to progress, and making improvements in the game. I want to make Oolite into the best version of itself it can be. I want to see the player-base grow. I want to see more players like arquebus doing YT videos of their gametime. And I don't want to pour cold water on your ideas. I think your enthusiasm is wonderful, and what you are achieving with OoliteStarter is great -- it will become a wonderful resource for players in future. But we won't be adding features at the expense of security.