reprozip
reprozip copied to clipboard
OS X support
We would like to add OS X support (even if just from a tracking perspective). Are there on ongoing efforts in this direction?
(duplicates #34)
There is no work yet on OS X support. The ptrace facility we use on Linux is not available on OS X, so the tracing part would have to be adapted.
It can probably be built on dtrace, which is a similar system call tracing facility that is available on OS X. I do not know (yet) how that would work, but either we can do that in real time (following events via some sort of API) or get a log of the process tree (via the dtrace(1) utility?). All that remains is translating the events we care about (those which read or write files) into our trace database format. Then the rest should work with minor adaptation.
Let me know if you want to work on this and what I can do to help!
Also note that there might be legal issues involved when distributing packages (or virtual machines to reproduce packages on), but I don't believe anything in the tracing software is illegal.
@remram44 - our goals are a little different. can we capture sufficient information for someone to play back in a similar environment or a different environment. we don't need to be exact. so for us being able to capture, analyze, and augment the config.yml file is more important than eidetic playback.
a colleague had created this injectable library: https://github.com/vladistan/ProvTrace/tree/master/Mac
also for our needs we would be ok with sudo privileges for tracing.
so the plan is not to be a general purpose replacement but a partial replacement with caveats rather than not having any option.
@satra OS X support is definitely in our todo list, but not a priority right now, in particular because we focus on "almost exact" reproducibility, and as @remram44 mentioned, there might be legal issues involved, etc.
From what you said, you focus more on provenance capture than actually replay, is that correct? If you would like to add OS X support for capturing the provenance, that would be great -- this would be a great addition! Let us know if you want to further discuss these ideas.
a colleague had created this injectable library: https://github.com/vladistan/ProvTrace/tree/master/Mac
An injectable library might be good enough, but for the kind of provenance we want, dtrace might be easier. It looks like getting system call events is very easy (cf /usr/bin/filebyproc.d: one-line...), filtering it and parsing it into our trace.sqlite3 should be doable.