WIP: win32 proof of concept
A proof of concept of BuildStream running on Windows, without a sandbox.
This isn't intended to be merged, it's more an exploration of the major challenges to be overcome for it to work.
A mailing list post will follow to start the conversation about major changes required.
Doing this properly is expected to be a large undertaking.
A summary of commit titles, organised by topic:
- General Win32 support:
psutil for disk_usageImportElement - fix separatorsjob: signals / win32job: replace add_child_handler with threadplatform: os.uname and resource_platform/win32: add support for win32use cmd.exe instead of shdon't set owner of files
- Support 'spawn' method, since there's no 'fork' on Windows.
can't use job result yetuse multiprocessing.Managerno Plugin._lookup, class instance plugin mapno _is_main_process- Pickling things over to the new process:
Plugin - disable picklingElement, Source _meta_kindFetchQueue - not needed?{ArtifactPush,Build}Queue - not needed?Job, ElementJob, Element, Sourceoptionpool: make picklablePluginContext, ElementFactory, SourceFactoryContext: no _message_handler_{artifact,source}cache: __getstate__ no elements
-
bst-job-replay: make it easier to debug job processes, by "replaying" their invocation outside of BuildStream. - SandboxNone - an implementation without sandboxing to get things rolling
use initial SandboxNonepass-through env for now