diff options
author | baude <bbaude@redhat.com> | 2018-07-04 10:51:20 -0500 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-07-05 16:05:12 +0000 |
commit | cc6f0e85f994cab66fb63c4dd8b77b4332151748 (patch) | |
tree | 6b54655b66a8571945ccda1601533717c8375906 /libpod/oci.go | |
parent | 33870ea2c3a3aa4e2bd3da3d84b21820c75eaf23 (diff) | |
download | podman-cc6f0e85f994cab66fb63c4dd8b77b4332151748.tar.gz podman-cc6f0e85f994cab66fb63c4dd8b77b4332151748.tar.bz2 podman-cc6f0e85f994cab66fb63c4dd8b77b4332151748.zip |
more changes to compile darwin
this should represent the last major changes to get darwin to **compile**. again,
the purpose here is to get darwin to compile so that we can eventually implement a
ci task that would protect against regressions for darwin compilation.
i have left the manual darwin compilation largely static still and in fact now only
interject (manually) two build tags to assist with the build. trevor king has great
ideas on how to make this better and i will defer final implementation of those
to him.
Signed-off-by: baude <bbaude@redhat.com>
Closes: #1047
Approved by: rhatdan
Diffstat (limited to 'libpod/oci.go')
-rw-r--r-- | libpod/oci.go | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/libpod/oci.go b/libpod/oci.go index 20d533726..fcb36241b 100644 --- a/libpod/oci.go +++ b/libpod/oci.go @@ -11,11 +11,9 @@ import ( "runtime" "strconv" "strings" - "sync" "syscall" "time" - "github.com/containers/storage/pkg/idtools" "github.com/coreos/go-systemd/activation" spec "github.com/opencontainers/runtime-spec/specs-go" "github.com/opencontainers/selinux/go-selinux" @@ -110,15 +108,6 @@ func newOCIRuntime(name string, path string, conmonPath string, conmonEnv []stri return runtime, nil } -// newPipe creates a unix socket pair for communication -func newPipe() (parent *os.File, child *os.File, err error) { - fds, err := unix.Socketpair(unix.AF_LOCAL, unix.SOCK_STREAM|unix.SOCK_CLOEXEC, 0) - if err != nil { - return nil, nil, err - } - return os.NewFile(uintptr(fds[1]), "parent"), os.NewFile(uintptr(fds[0]), "child"), nil -} - // Create systemd unit name for cgroup scopes func createUnitName(prefix string, name string) string { return fmt.Sprintf("%s-%s.scope", prefix, name) @@ -187,56 +176,6 @@ func waitPidsStop(pids []int, timeout time.Duration) error { } } -// CreateContainer creates a container in the OCI runtime -// TODO terminal support for container -// Presently just ignoring conmon opts related to it -func (r *OCIRuntime) createContainer(ctr *Container, cgroupParent string) (err error) { - if ctr.state.UserNSRoot == "" { - // no need of an intermediate mount ns - return r.createOCIContainer(ctr, cgroupParent) - } - var wg sync.WaitGroup - wg.Add(1) - go func() { - defer wg.Done() - runtime.LockOSThread() - - fd, err := os.Open(fmt.Sprintf("/proc/%d/task/%d/ns/mnt", os.Getpid(), unix.Gettid())) - if err != nil { - return - } - defer fd.Close() - - // create a new mountns on the current thread - if err = unix.Unshare(unix.CLONE_NEWNS); err != nil { - return - } - defer unix.Setns(int(fd.Fd()), unix.CLONE_NEWNS) - - // don't spread our mounts around - err = unix.Mount("/", "/", "none", unix.MS_REC|unix.MS_SLAVE, "") - if err != nil { - return - } - err = unix.Mount(ctr.state.Mountpoint, ctr.state.RealMountpoint, "none", unix.MS_BIND, "") - if err != nil { - return - } - if err := idtools.MkdirAllAs(ctr.state.DestinationRunDir, 0700, ctr.RootUID(), ctr.RootGID()); err != nil { - return - } - - err = unix.Mount(ctr.state.RunDir, ctr.state.DestinationRunDir, "none", unix.MS_BIND, "") - if err != nil { - return - } - err = r.createOCIContainer(ctr, cgroupParent) - }() - wg.Wait() - - return err -} - func (r *OCIRuntime) createOCIContainer(ctr *Container, cgroupParent string) (err error) { var stderrBuf bytes.Buffer |