summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net/concourse-fly/files/patch-src_github.com_concourse_go-archive_tarfs_mknod.go8
-rw-r--r--net/concourse-fly/files/patch-src_github.com_concourse_go-archive_tarfs_mknod__freebsd.go31
2 files changed, 39 insertions, 0 deletions
diff --git a/net/concourse-fly/files/patch-src_github.com_concourse_go-archive_tarfs_mknod.go b/net/concourse-fly/files/patch-src_github.com_concourse_go-archive_tarfs_mknod.go
new file mode 100644
index 000000000000..23cb03ccf828
--- /dev/null
+++ b/net/concourse-fly/files/patch-src_github.com_concourse_go-archive_tarfs_mknod.go
@@ -0,0 +1,8 @@
+--- src/github.com/concourse/go-archive/tarfs/mknod.go.orig 2019-03-04 10:29:20 UTC
++++ src/github.com/concourse/go-archive/tarfs/mknod.go
+@@ -1,4 +1,4 @@
+-// +build !windows
++// +build !windows,!freebsd
+
+ package tarfs
+
diff --git a/net/concourse-fly/files/patch-src_github.com_concourse_go-archive_tarfs_mknod__freebsd.go b/net/concourse-fly/files/patch-src_github.com_concourse_go-archive_tarfs_mknod__freebsd.go
new file mode 100644
index 000000000000..cf017c2a4ce3
--- /dev/null
+++ b/net/concourse-fly/files/patch-src_github.com_concourse_go-archive_tarfs_mknod__freebsd.go
@@ -0,0 +1,31 @@
+--- src/github.com/concourse/go-archive/tarfs/mknod_freebsd.go.orig 2019-03-13 13:08:01 UTC
++++ src/github.com/concourse/go-archive/tarfs/mknod_freebsd.go
+@@ -0,0 +1,28 @@
++// +build freebsd
++
++package tarfs
++
++import (
++ "archive/tar"
++ "syscall"
++
++ "golang.org/x/sys/unix"
++)
++
++func mknodEntry(hdr *tar.Header, path string) error {
++ mode := uint32(hdr.Mode & 07777)
++ switch hdr.Typeflag {
++ case tar.TypeBlock:
++ mode |= unix.S_IFBLK
++ case tar.TypeChar:
++ mode |= unix.S_IFCHR
++ case tar.TypeFifo:
++ mode |= unix.S_IFIFO
++ }
++
++ return syscall.Mknod(path, mode, uint64(mkdev(hdr.Devmajor, hdr.Devminor)))
++}
++
++func mkdev(major, minor int64) uint32 {
++ return uint32(((minor & 0xfff00) << 12) | ((major & 0xfff) << 8) | (minor & 0xff))
++}