sandboxing: add subprocess abstraction
To support Building applications while running from inside the sandbox, we need to allow breaking out of the sandbox for such tooling. For example, we want to run the build tooling for flatpaks from the host system (since we wont have sufficient privileges inside the sandbox). This abstracts our use of GSubprocess so that we can have multiple implementations. Sadly, since GSubprocess is not an interface, we cannot simply create an alternate implementation. There are two implementations of the abstraction. IdeSimpleSubprocess is just a wrapper around GSubprocess (since our API is almost identical). Additionally, we have IdeHostProcess which is a process that runs within the host system, via the --allow=devel support in flatpak. Also required --talk-name=org.freedesktop.Flatpak.
Showing with 2989 additions and 153 deletions