Thanks for reaching out, Doug! And thanks for your great work.
On Tue, Aug 9, 2022 at 5:31 PM Doug Rabson <dfr(a)rabson.org> wrote:
 Over the last few months, I have been working on porting the
 
github.com/containers tool stack to FreeBSD, using the FreeBSD jail
 subsystem for isolation. This builds on Samuel Karp's earlier work on runj,
 which is a jail-based OCI runtime.
 Since buildah v1.27.0 contains working FreeBSD support for building
 container images and it looks like this will be vendored into podman quite
 soon, I would like to get the much larger set of changes for podman on
 FreeBSD into review somehow.
 The complete set of FreeBSD changes is much too large for a single PR, so
 I'm going to try to take this one file at a time. My plan is approximately:
    1. Add enough stubs to libpod to make it compile on FreeBSD (without
    working at all)
    2. Pick a file from libpod/*_freebsd.go, ideally with the smallest set
    of cross dependencies and make a PR which adds the freebsd file and in a
    small stack of commits, factors out as much as possible of the shared code
    between linux and freebsd.
    3. Work through review as normal until the PR can be merged.
    4. Go to step 2 unless I'm done.
 Does this seem reasonable? It's going to take a while - my working branch
 has 21 freebsd files with varying degrees of complexity.
 
I would love to see Podman run on FreeBSD.  But there are a number of
issues I want to discuss beforehand:
   - *Who owns and maintains the FreeBSD code?*  All current Podman
   maintainers are Linux people and I don't think there are free cycles to dig
   into FreeBSD.  If it's only a single person maintaining the FreeBSD code it
   could be a threat to sustainability.  Code must be maintained and evolved.
   Bugs need to be fixed.  Same applies to CI systems and tests.
   - Related to the point above: *How can we prevent the FreeBSD support
   from blocking Linux development?*  There is a risk that changes (e.g.,
   new features) to Linux containers may require changes to the FreeBSD code.
   I want to keep that to an absolute minimum, so we probably need to add
   abstractions in the form of interfaces at some places.
   - *How can we test? *I have no experience in FreeBSD but assume there is
   a way to run VMs with it and plug them into CI.  Many tests won't run on
   FreeBSD, so we may need a simplified FreeBSD-specified testsuite.
None of the points above must necessarily be blockers but I want to have a
common understanding and set expectations (e.g., the FreeBSD support could
very well be marked experimental).  I am mostly afraid that it could be a
constant burden on Linux development and hence be expensive for the entire
project.
Kind regards,
 Valentin
 Doug.
 _______________________________________________
 Podman mailing list -- podman(a)lists.podman.io
 To unsubscribe send an email to podman-leave(a)lists.podman.io