mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	make docker compile on freebsd
Signed-off-by: Alexey Guskov <lexag@mail.ru>
This commit is contained in:
		
							parent
							
								
									2cd058ce4f
								
							
						
					
					
						commit
						26c03d561a
					
				
					 25 changed files with 154 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// +build linux
 | 
			
		||||
// +build freebsd linux
 | 
			
		||||
 | 
			
		||||
package server
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// +build linux
 | 
			
		||||
// +build freebsd linux
 | 
			
		||||
 | 
			
		||||
package builder
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
// +build linux freebsd
 | 
			
		||||
 | 
			
		||||
package daemon
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// +build !windows
 | 
			
		||||
// +build linux freebsd
 | 
			
		||||
 | 
			
		||||
package daemon
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// +build exclude_graphdriver_aufs,linux
 | 
			
		||||
// +build exclude_graphdriver_aufs,linux freebsd
 | 
			
		||||
 | 
			
		||||
package daemon
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// +build !exclude_graphdriver_zfs,linux
 | 
			
		||||
// +build !exclude_graphdriver_zfs,linux !exclude_graphdriver_zfs,freebsd
 | 
			
		||||
 | 
			
		||||
package daemon
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										9
									
								
								daemon/exec_freebsd.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								daemon/exec_freebsd.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
// +build freebsd
 | 
			
		||||
 | 
			
		||||
package daemon
 | 
			
		||||
 | 
			
		||||
// checkExecSupport returns an error if the exec driver does not support exec,
 | 
			
		||||
// or nil if it is supported.
 | 
			
		||||
func checkExecSupport(drivername string) error {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								daemon/execdriver/execdrivers/execdrivers_freebsd.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								daemon/execdriver/execdrivers/execdrivers_freebsd.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
// +build freebsd
 | 
			
		||||
 | 
			
		||||
package execdrivers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"github.com/docker/docker/daemon/execdriver"
 | 
			
		||||
	"github.com/docker/docker/pkg/sysinfo"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// NewDriver returns a new execdriver.Driver from the given name configured with the provided options.
 | 
			
		||||
func NewDriver(name string, options []string, root, libPath, initPath string, sysInfo *sysinfo.SysInfo) (execdriver.Driver, error) {
 | 
			
		||||
	switch name {
 | 
			
		||||
	case "jail":
 | 
			
		||||
		return nil, fmt.Errorf("jail driver not yet supported on FreeBSD")
 | 
			
		||||
	}
 | 
			
		||||
	return nil, fmt.Errorf("unknown exec driver %s", name)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								daemon/graphdriver/driver_freebsd.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								daemon/graphdriver/driver_freebsd.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
package graphdriver
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	// Slice of drivers that should be used in an order
 | 
			
		||||
	priority = []string{
 | 
			
		||||
		"zfs",
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// +build !linux,!windows
 | 
			
		||||
// +build !linux,!windows,!freebsd
 | 
			
		||||
 | 
			
		||||
package graphdriver
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// +build linux
 | 
			
		||||
// +build linux freebsd
 | 
			
		||||
 | 
			
		||||
package zfs
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										14
									
								
								daemon/stats_freebsd.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								daemon/stats_freebsd.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
package daemon
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/docker/docker/api/types"
 | 
			
		||||
	"github.com/opencontainers/runc/libcontainer"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// convertStatsToAPITypes converts the libcontainer.Stats to the api specific
 | 
			
		||||
// structs.  This is done to preserve API compatibility and versioning.
 | 
			
		||||
func convertStatsToAPITypes(ls *libcontainer.Stats) *types.Stats {
 | 
			
		||||
	// TODO FreeBSD. Refactor accordingly to fill in stats.
 | 
			
		||||
	s := &types.Stats{}
 | 
			
		||||
	return s
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										9
									
								
								daemon/utils_freebsd.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								daemon/utils_freebsd.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
package daemon
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/docker/docker/runconfig"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func mergeLxcConfIntoOptions(hostConfig *runconfig.HostConfig) ([]string, error) {
 | 
			
		||||
	return nil, nil
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								docker/daemon_linux.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								docker/daemon_linux.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
// +build daemon
 | 
			
		||||
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	_ "github.com/docker/docker/daemon/execdriver/lxc"
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			@ -11,7 +11,6 @@ import (
 | 
			
		|||
	"github.com/docker/docker/daemon"
 | 
			
		||||
	"github.com/docker/docker/pkg/system"
 | 
			
		||||
 | 
			
		||||
	_ "github.com/docker/docker/daemon/execdriver/lxc"
 | 
			
		||||
	_ "github.com/docker/docker/daemon/execdriver/native"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// +build linux
 | 
			
		||||
// +build linux freebsd
 | 
			
		||||
 | 
			
		||||
package directory
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								pkg/parsers/operatingsystem/operatingsystem_freebsd.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								pkg/parsers/operatingsystem/operatingsystem_freebsd.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
package operatingsystem
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// GetOperatingSystem gets the name of the current operating system.
 | 
			
		||||
func GetOperatingSystem() (string, error) {
 | 
			
		||||
	// TODO: Implement OS detection
 | 
			
		||||
	return "", errors.New("Cannot detect OS version")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsContainerized returns true if we are running inside a container.
 | 
			
		||||
// No-op on FreeBSD, always returns false.
 | 
			
		||||
func IsContainerized() (bool, error) {
 | 
			
		||||
	// TODO: Implement jail detection
 | 
			
		||||
	return false, errors.New("Cannot detect if we are in container")
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								pkg/reexec/command_freebsd.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								pkg/reexec/command_freebsd.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
// +build freebsd
 | 
			
		||||
 | 
			
		||||
package reexec
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"os/exec"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Self returns the path to the current process's binary.
 | 
			
		||||
// Uses os.Args[0].
 | 
			
		||||
func Self() string {
 | 
			
		||||
	return naiveSelf()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Command returns *exec.Cmd which have Path as current binary.
 | 
			
		||||
// For example if current binary is "docker" at "/usr/bin/", then cmd.Path will
 | 
			
		||||
// be set to "/usr/bin/docker".
 | 
			
		||||
func Command(args ...string) *exec.Cmd {
 | 
			
		||||
	return &exec.Cmd{
 | 
			
		||||
		Path: Self(),
 | 
			
		||||
		Args: args,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// +build !linux,!windows
 | 
			
		||||
// +build !linux,!windows,!freebsd
 | 
			
		||||
 | 
			
		||||
package reexec
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// +build linux
 | 
			
		||||
// +build linux freebsd
 | 
			
		||||
 | 
			
		||||
package sockets
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7
									
								
								pkg/sysinfo/sysinfo_freebsd.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								pkg/sysinfo/sysinfo_freebsd.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
package sysinfo
 | 
			
		||||
 | 
			
		||||
// TODO FreeBSD
 | 
			
		||||
func New(quiet bool) *SysInfo {
 | 
			
		||||
	sysInfo := &SysInfo{}
 | 
			
		||||
	return sysInfo
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										27
									
								
								pkg/system/stat_freebsd.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								pkg/system/stat_freebsd.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
package system
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"syscall"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// fromStatT converts a syscall.Stat_t type to a system.Stat_t type
 | 
			
		||||
func fromStatT(s *syscall.Stat_t) (*Stat_t, error) {
 | 
			
		||||
	return &Stat_t{size: s.Size,
 | 
			
		||||
		mode: uint32(s.Mode),
 | 
			
		||||
		uid:  s.Uid,
 | 
			
		||||
		gid:  s.Gid,
 | 
			
		||||
		rdev: uint64(s.Rdev),
 | 
			
		||||
		mtim: s.Mtimespec}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Stat takes a path to a file and returns
 | 
			
		||||
// a system.Stat_t type pertaining to that file.
 | 
			
		||||
//
 | 
			
		||||
// Throws an error if the file does not exist
 | 
			
		||||
func Stat(path string) (*Stat_t, error) {
 | 
			
		||||
	s := &syscall.Stat_t{}
 | 
			
		||||
	if err := syscall.Stat(path, s); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return fromStatT(s)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
// +build !linux,!windows
 | 
			
		||||
// +build !linux,!windows,!freebsd
 | 
			
		||||
 | 
			
		||||
package system
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue