chilcote / outset

Automatically process packages, profiles, and scripts during boot, login, or on demand.
572 stars 58 forks source link

Outset 3 and Python 3 #70

Closed jelockwood closed 4 years ago

jelockwood commented 4 years ago

I thought Apple's guidance for the future use of Python etc. was that an app that requires it in future should bundle it with the app?

If you were to do this you might be able to construct your launchdaemon to run your bundled python by specifying the direct path to it thereby avoiding path variable issues and of course python version issues. __ Completely off-topic but I am beginning to think Apple's increasing policy of simply removing many components from macOS is not helping to improve security - quite the contrary and is at best abrogating responsibility and worst shear laziness. The simplistic argument is that if component A is not there it cannot be an attack vector. However as many but not all Apple customers will still need these components (like users of Outset) and will end up installing their own copy of e.g. Python either deliberately and knowingly or unknowingly as part of a package they will end up with potentially multiple copies that much more likely will never get updated and might be from dubious sources thereby increasing the potential security risks. The forthcoming extermination of Kernel Extensions at least makes more sense although is likely in the short to medium term to cause vastly more problems. (This is going to be far more of impact than the previous 'Kextpocalypse' and 'Kextpocalypse 2'.)

chilcote commented 4 years ago

I don't have the time or inclination to maintain a full install of python just for this script. Since it works with what you can install from python.org (i.e. there is no pyobjc components, nor anything else that requires a custom python), I don't see the need. I would encourage someone who has a workflow in mind to write that up in the wiki and point people to examples of how to create a bundle (like https://github.com/gregneagle/relocatable-python).