From c12dbb8c82457a58e209302bf9752aec64234404 Mon Sep 17 00:00:00 2001 From: James Nugent Date: Wed, 30 Dec 2015 18:18:30 -0500 Subject: [PATCH] Fix downstream client API build errors on Solaris The client API at fsouza/go-dockerclient has dependencies on packages in the docker/docker repository which currently do not build on Solaris. In particular, stat_unsupported.go makes use of the Mtimespec field of the syscall.Stat_t struct, which is not present on Solaris, and a number of Unix-specific packages do not list Solaris in their compile targets. This commit adds enough support to be able to build fsouza/go-dockerclient on SmartOS using Go 1.5.1 without affecting other platforms. Signed-off-by: James Nugent --- pkg/system/stat_solaris.go | 17 +++++++++++++++++ pkg/system/stat_unsupported.go | 2 +- volume/volume_unix.go | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 pkg/system/stat_solaris.go diff --git a/pkg/system/stat_solaris.go b/pkg/system/stat_solaris.go new file mode 100644 index 0000000000..b01d08acfe --- /dev/null +++ b/pkg/system/stat_solaris.go @@ -0,0 +1,17 @@ +// +build solaris + +package system + +import ( + "syscall" +) + +// fromStatT creates a system.StatT type from a syscall.Stat_t type +func fromStatT(s *syscall.Stat_t) (*StatT, error) { + return &StatT{size: s.Size, + mode: uint32(s.Mode), + uid: s.Uid, + gid: s.Gid, + rdev: uint64(s.Rdev), + mtim: s.Mtim}, nil +} diff --git a/pkg/system/stat_unsupported.go b/pkg/system/stat_unsupported.go index 381ea82116..c6075d4ff2 100644 --- a/pkg/system/stat_unsupported.go +++ b/pkg/system/stat_unsupported.go @@ -1,4 +1,4 @@ -// +build !linux,!windows,!freebsd +// +build !linux,!windows,!freebsd,!solaris package system diff --git a/volume/volume_unix.go b/volume/volume_unix.go index fdc336e66b..ddf278f07f 100644 --- a/volume/volume_unix.go +++ b/volume/volume_unix.go @@ -1,4 +1,4 @@ -// +build linux freebsd darwin +// +build linux freebsd darwin solaris package volume