From 81a350b801f2b0d8dd3e5a61e29e7e97ffe21dae 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 --- system/stat_solaris.go | 17 +++++++++++++++++ system/stat_unsupported.go | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 system/stat_solaris.go diff --git a/system/stat_solaris.go b/system/stat_solaris.go new file mode 100644 index 0000000..b01d08a --- /dev/null +++ b/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/system/stat_unsupported.go b/system/stat_unsupported.go index 381ea82..c6075d4 100644 --- a/system/stat_unsupported.go +++ b/system/stat_unsupported.go @@ -1,4 +1,4 @@ -// +build !linux,!windows,!freebsd +// +build !linux,!windows,!freebsd,!solaris package system