aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--community/docker/APKBUILD18
-rw-r--r--community/docker/configurable_buildmode.patch12
-rw-r--r--community/docker/netns-mips64-fork.patch433
-rw-r--r--community/docker/stat-struct-fixes-mips64.patch13
4 files changed, 473 insertions, 3 deletions
diff --git a/community/docker/APKBUILD b/community/docker/APKBUILD
index 642c527d7a5..4660ca4de44 100644
--- a/community/docker/APKBUILD
+++ b/community/docker/APKBUILD
@@ -7,7 +7,7 @@ _gitcommit=9d988398e765e4b97f27f93c4d04b272ac64c9c7 # https://github.com/docker/
pkgrel=0
pkgdesc="Pack, ship and run any application as a lightweight container"
url="https://www.docker.io/"
-arch="all !mips !mips64" # blocked by containerd
+arch="all"
license="Apache-2.0"
depends="docker-engine docker-cli"
makedepends="go go-md2man btrfs-progs-dev bash linux-headers coreutils lvm2-dev libtool
@@ -45,6 +45,9 @@ source="
cobra-$_cobra_ver.tar.gz::https://github.com/spf13/cobra/archive/v$_cobra_ver.tar.gz
docker.initd
docker.confd
+ netns-mips64-fork.patch
+ stat-struct-fixes-mips64.patch
+ configurable_buildmode.patch
"
builddir="$srcdir"/docker-ce-$pkgver
@@ -54,6 +57,12 @@ _buildtags="seccomp"
_libnetwork_builddir="$srcdir"/libnetwork-$_libnetwork_ver
+case "$CARCH" in
+ mips64*) _buildmode=exe ;;
+ riscv64) _buildmode=exe ;;
+ *) _buildmode=pie ;;
+esac
+
build() {
export AUTO_GOPATH=1
export GITCOMMIT=$_gitcommit # for cli
@@ -85,7 +94,7 @@ build() {
cd "$_cli_builddir"
mkdir -p "$GOPATH"/src/github.com/docker/
ln -s "$_cli_builddir" "$GOPATH"/src/github.com/docker/cli
- LDFLAGS="" make VERSION="$pkgver" dynbinary
+ LDFLAGS="" make VERSION="$pkgver" BUILDMODE=$_buildmode dynbinary
# docker man
msg "building docker man pages"
@@ -197,4 +206,7 @@ sha512sums="00ea7963f03fdc00c4df905ff8aebe6945e5d8aa391a31328fcab5ecd87b2a4c98b8
02b159ae14bbd6f313b3cd7f0227d93e9ad6b0322d6a7ca5687b0a4f2ecdd4546e7a8b6a73b20c88cb9690cd970e8cafa8e97dbd534aec8d7bafd0598e08f916 libnetwork-b9bcf0c3fba9ef8897c9676c5b70ba0345b84b17.tar.gz
c38db9432a168f913b41a1e1b11d84bedfade82ff70791be9d343a6cc86b8a05b18bae344d67ebd8bae4c98662db7ac664a9dc86fa9b9ad4aa5c96cbf0178efb cobra-0.0.3.tar.gz
db771b9142a7cb0c3e84cc5e2dfd10c4fb11422e6b488d3518eab5f631d39471c0c2b6c64714daf48869e0e3ad8052c69edc5bbfe065611b68d304198fff61a5 docker.initd
-f25523f43376ccef71a49618e556e0a16db3acad29eb09fe86c4e572562bdea0bc1eabab00159278835ad9d7c007f2cd10b2ed31f7213b0d9074582dc80a976f docker.confd"
+f25523f43376ccef71a49618e556e0a16db3acad29eb09fe86c4e572562bdea0bc1eabab00159278835ad9d7c007f2cd10b2ed31f7213b0d9074582dc80a976f docker.confd
+2bdc5c226b7ebefe93bbe6b2900c259de43ee1fb49ac527966942b262e72f4ca441fecc7406c6c737f5c9694fc0141ba5e779bc7d269c8e644553efd89862b01 netns-mips64-fork.patch
+89b047fe8379d230572fba120ea8d5784a26467d9239558e77e29a8c1b4bd78d55d12c8fe5969dafd981a551c8c2b640b747fe3c4d89adc438c4a7911ea94aa0 stat-struct-fixes-mips64.patch
+04100dbeb03009beb0f4bdff5f7af481c5668c8e8d2f952603c78a51cb7551b671c980a321b058d2c570cea07e7213b1dab359dedb6907215eff33b7e5181887 configurable_buildmode.patch"
diff --git a/community/docker/configurable_buildmode.patch b/community/docker/configurable_buildmode.patch
new file mode 100644
index 00000000000..bc902ba4c26
--- /dev/null
+++ b/community/docker/configurable_buildmode.patch
@@ -0,0 +1,12 @@
+diff --git a/components/cli/scripts/build/dynbinary b/components/cli/scripts/build/dynbinary
+index 4feb7e7..46d910b 100755
+--- a/components/cli/scripts/build/dynbinary
++++ b/components/cli/scripts/build/dynbinary
+@@ -9,6 +9,6 @@ source ./scripts/build/.variables
+
+ echo "Building dynamically linked $TARGET"
+ export CGO_ENABLED=1
+-go build -o "${TARGET}" -tags pkcs11 --ldflags "${LDFLAGS}" -buildmode=pie "${SOURCE}"
++go build -o "${TARGET}" -tags pkcs11 --ldflags "${LDFLAGS}" -buildmode=${BUILDMODE:=pie} "${SOURCE}"
+
+ ln -sf "$(basename "${TARGET}")" build/docker
diff --git a/community/docker/netns-mips64-fork.patch b/community/docker/netns-mips64-fork.patch
new file mode 100644
index 00000000000..8703beb681e
--- /dev/null
+++ b/community/docker/netns-mips64-fork.patch
@@ -0,0 +1,433 @@
+diff --git a/components/cli/vendor/github.com/docker/docker/vendor.conf b/components/cli/vendor/github.com/docker/docker/vendor.conf
+index 6b4df60..581eb63 100644
+--- a/components/cli/vendor/github.com/docker/docker/vendor.conf
++++ b/components/cli/vendor/github.com/docker/docker/vendor.conf
+@@ -50,7 +50,7 @@ github.com/hashicorp/go-sockaddr 6d291a969b86c4b633730bfc6b8b
+ github.com/hashicorp/go-multierror fcdddc395df1ddf4247c69bd436e84cfa0733f7e
+ github.com/hashicorp/serf 598c54895cc5a7b1a24a398d635e8c0ea0959870
+ github.com/docker/libkv 458977154600b9f23984d9f4b82e79570b5ae12b
+-github.com/vishvananda/netns 604eaf189ee867d8c147fafc28def2394e878d25
++github.com/jwh/netns efc5872c2d476c2ff4e40ce79497146e9af02bab
+ github.com/vishvananda/netlink b2de5d10e38ecce8607e6b438b6d174f389a004e
+
+ # When updating, consider updating TOMLV_COMMIT in hack/dockerfile/install/tomlv.installer accordingly
+diff --git a/components/cli/vendor/github.com/moby/buildkit/go.mod b/components/cli/vendor/github.com/moby/buildkit/go.mod
+index 0d238c7..41af3ed 100644
+--- a/components/cli/vendor/github.com/moby/buildkit/go.mod
++++ b/components/cli/vendor/github.com/moby/buildkit/go.mod
+@@ -59,7 +59,7 @@ require (
+ github.com/uber/jaeger-lib v1.2.1 // indirect
+ github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5
+ github.com/vishvananda/netlink v1.0.0 // indirect
+- github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc // indirect
++ github.com/jwh/netns v0.0.0-20180720170159-13995c7128cc // indirect
+ go.etcd.io/bbolt v1.3.2
+ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
+ golang.org/x/net v0.0.0-20190311183353-d8887717615a
+diff --git a/components/engine/vendor.conf b/components/engine/vendor.conf
+index 8d1b34d..1cf4256 100644
+--- a/components/engine/vendor.conf
++++ b/components/engine/vendor.conf
+@@ -50,7 +50,7 @@ github.com/hashicorp/go-sockaddr c7188e74f6acae5a989bdc959aa7
+ github.com/hashicorp/go-multierror 886a7fbe3eb1c874d46f623bfa70af45f425b3d1 # v1.0.0
+ github.com/hashicorp/serf 598c54895cc5a7b1a24a398d635e8c0ea0959870
+ github.com/docker/libkv 458977154600b9f23984d9f4b82e79570b5ae12b
+-github.com/vishvananda/netns 7109fa855b0ff1ebef7fbd2f6aa613e8db7cfbc0
++github.com/jwh/netns efc5872c2d476c2ff4e40ce79497146e9af02bab
+ github.com/vishvananda/netlink a2ad57a690f3caf3015351d2d6e1c0b95c349752
+
+ # When updating, consider updating TOMLV_COMMIT in hack/dockerfile/install/tomlv.installer accordingly
+diff --git a/components/engine/vendor/github.com/docker/libnetwork/drivers/overlay/ov_network.go b/components/engine/vendor/github.com/docker/libnetwork/drivers/overlay/ov_network.go
+index 4009df8..05473db 100644
+--- a/components/engine/vendor/github.com/docker/libnetwork/drivers/overlay/ov_network.go
++++ b/components/engine/vendor/github.com/docker/libnetwork/drivers/overlay/ov_network.go
+@@ -25,7 +25,7 @@ import (
+ "github.com/sirupsen/logrus"
+ "github.com/vishvananda/netlink"
+ "github.com/vishvananda/netlink/nl"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ "golang.org/x/sys/unix"
+ )
+
+diff --git a/components/engine/vendor/github.com/docker/libnetwork/drivers/overlay/ov_utils.go b/components/engine/vendor/github.com/docker/libnetwork/drivers/overlay/ov_utils.go
+index 7338ea9..f020016 100644
+--- a/components/engine/vendor/github.com/docker/libnetwork/drivers/overlay/ov_utils.go
++++ b/components/engine/vendor/github.com/docker/libnetwork/drivers/overlay/ov_utils.go
+@@ -11,7 +11,7 @@ import (
+ "github.com/docker/libnetwork/osl"
+ "github.com/sirupsen/logrus"
+ "github.com/vishvananda/netlink"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ )
+
+ var soTimeout = ns.NetlinkSocketsTimeout
+diff --git a/components/engine/vendor/github.com/docker/libnetwork/ipvs/ipvs.go b/components/engine/vendor/github.com/docker/libnetwork/ipvs/ipvs.go
+index 61b6f0a..46d635f 100644
+--- a/components/engine/vendor/github.com/docker/libnetwork/ipvs/ipvs.go
++++ b/components/engine/vendor/github.com/docker/libnetwork/ipvs/ipvs.go
+@@ -8,7 +8,7 @@ import (
+ "time"
+
+ "github.com/vishvananda/netlink/nl"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ "golang.org/x/sys/unix"
+ )
+
+diff --git a/components/engine/vendor/github.com/docker/libnetwork/ipvs/netlink.go b/components/engine/vendor/github.com/docker/libnetwork/ipvs/netlink.go
+index 7673659..950046c 100644
+--- a/components/engine/vendor/github.com/docker/libnetwork/ipvs/netlink.go
++++ b/components/engine/vendor/github.com/docker/libnetwork/ipvs/netlink.go
+@@ -17,7 +17,7 @@ import (
+
+ "github.com/sirupsen/logrus"
+ "github.com/vishvananda/netlink/nl"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ )
+
+ // For Quick Reference IPVS related netlink message is described at the end of this file.
+diff --git a/components/engine/vendor/github.com/docker/libnetwork/ns/init_linux.go b/components/engine/vendor/github.com/docker/libnetwork/ns/init_linux.go
+index 1d08a02..e3c7ff3 100644
+--- a/components/engine/vendor/github.com/docker/libnetwork/ns/init_linux.go
++++ b/components/engine/vendor/github.com/docker/libnetwork/ns/init_linux.go
+@@ -11,7 +11,7 @@ import (
+
+ "github.com/sirupsen/logrus"
+ "github.com/vishvananda/netlink"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ )
+
+ var (
+diff --git a/components/engine/vendor/github.com/docker/libnetwork/osl/interface_linux.go b/components/engine/vendor/github.com/docker/libnetwork/osl/interface_linux.go
+index 4f8ff3d..11d79b0 100644
+--- a/components/engine/vendor/github.com/docker/libnetwork/osl/interface_linux.go
++++ b/components/engine/vendor/github.com/docker/libnetwork/osl/interface_linux.go
+@@ -12,7 +12,7 @@ import (
+ "github.com/docker/libnetwork/types"
+ "github.com/sirupsen/logrus"
+ "github.com/vishvananda/netlink"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ )
+
+ // IfaceOption is a function option type to set interface options
+diff --git a/components/engine/vendor/github.com/docker/libnetwork/osl/namespace_linux.go b/components/engine/vendor/github.com/docker/libnetwork/osl/namespace_linux.go
+index ed44311..cfa675b 100644
+--- a/components/engine/vendor/github.com/docker/libnetwork/osl/namespace_linux.go
++++ b/components/engine/vendor/github.com/docker/libnetwork/osl/namespace_linux.go
+@@ -20,7 +20,7 @@ import (
+ "github.com/docker/libnetwork/types"
+ "github.com/sirupsen/logrus"
+ "github.com/vishvananda/netlink"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ )
+
+ const defaultPrefix = "/var/run/docker"
+diff --git a/components/engine/vendor/github.com/docker/libnetwork/resolver_unix.go b/components/engine/vendor/github.com/docker/libnetwork/resolver_unix.go
+index f4e4ad6..d27a64d 100644
+--- a/components/engine/vendor/github.com/docker/libnetwork/resolver_unix.go
++++ b/components/engine/vendor/github.com/docker/libnetwork/resolver_unix.go
+@@ -12,7 +12,7 @@ import (
+ "github.com/docker/docker/pkg/reexec"
+ "github.com/docker/libnetwork/iptables"
+ "github.com/sirupsen/logrus"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ )
+
+ func init() {
+diff --git a/components/engine/vendor/github.com/docker/libnetwork/service_linux.go b/components/engine/vendor/github.com/docker/libnetwork/service_linux.go
+index 451f760..7dcbddf 100644
+--- a/components/engine/vendor/github.com/docker/libnetwork/service_linux.go
++++ b/components/engine/vendor/github.com/docker/libnetwork/service_linux.go
+@@ -22,7 +22,7 @@ import (
+ "github.com/ishidawataru/sctp"
+ "github.com/sirupsen/logrus"
+ "github.com/vishvananda/netlink/nl"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ )
+
+ func init() {
+diff --git a/components/engine/vendor/github.com/docker/libnetwork/vendor.conf b/components/engine/vendor/github.com/docker/libnetwork/vendor.conf
+index 78b8379..a125199 100644
+--- a/components/engine/vendor/github.com/docker/libnetwork/vendor.conf
++++ b/components/engine/vendor/github.com/docker/libnetwork/vendor.conf
+@@ -43,7 +43,7 @@ github.com/samuel/go-zookeeper d0e0d8e11f318e000a8cc434616d69e329edc374
+ github.com/sirupsen/logrus f006c2ac4710855cf0f916dd6b77acf6b048dc6e # v1.0.3
+ github.com/ugorji/go b4c50a2b199d93b13dc15e78929cfb23bfdf21ab # v1.1.1
+ github.com/vishvananda/netlink a2ad57a690f3caf3015351d2d6e1c0b95c349752 # v1.0.0
+-github.com/vishvananda/netns 7109fa855b0ff1ebef7fbd2f6aa613e8db7cfbc0
++github.com/jwh/netns efc5872c2d476c2ff4e40ce79497146e9af02bab
+ golang.org/x/crypto b7391e95e576cacdcdd422573063bc057239113d
+ golang.org/x/net a680a1efc54dd51c040b3b5ce4939ea3cf2ea0d1
+ golang.org/x/sys d455e41777fca6e8a5a79e34a14b8368bc11d9ba
+diff --git a/components/engine/vendor/github.com/vishvananda/netns/LICENSE b/components/engine/vendor/github.com/jwh/netns/LICENSE
+similarity index 100%
+rename from components/engine/vendor/github.com/vishvananda/netns/LICENSE
+rename to components/engine/vendor/github.com/jwh/netns/LICENSE
+diff --git a/components/engine/vendor/github.com/vishvananda/netns/README.md b/components/engine/vendor/github.com/jwh/netns/README.md
+similarity index 88%
+rename from components/engine/vendor/github.com/vishvananda/netns/README.md
+rename to components/engine/vendor/github.com/jwh/netns/README.md
+index 6b45cfb..61e3ee4 100644
+--- a/components/engine/vendor/github.com/vishvananda/netns/README.md
++++ b/components/engine/vendor/github.com/jwh/netns/README.md
+@@ -8,11 +8,11 @@ privileges, so in most cases this code needs to be run as root.
+
+ You can use go get command:
+
+- go get github.com/vishvananda/netns
++ go get github.com/jwh/netns
+
+ Testing (requires root):
+
+- sudo -E go test github.com/vishvananda/netns
++ sudo -E go test github.com/jwh/netns
+
+ ## Example ##
+
+@@ -23,7 +23,7 @@ import (
+ "fmt"
+ "net"
+ "runtime"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ )
+
+ func main() {
+diff --git a/components/engine/vendor/github.com/jwh/netns/go.mod b/components/engine/vendor/github.com/jwh/netns/go.mod
+new file mode 100644
+index 0000000..d6aabc4
+--- /dev/null
++++ b/components/engine/vendor/github.com/jwh/netns/go.mod
+@@ -0,0 +1,3 @@
++module github.com/jwh/netns
++
++go 1.12
+diff --git a/components/engine/vendor/github.com/jwh/netns/go.sum b/components/engine/vendor/github.com/jwh/netns/go.sum
+new file mode 100644
+index 0000000..e69de29
+diff --git a/components/engine/vendor/github.com/vishvananda/netns/netns.go b/components/engine/vendor/github.com/jwh/netns/netns.go
+similarity index 100%
+rename from components/engine/vendor/github.com/vishvananda/netns/netns.go
+rename to components/engine/vendor/github.com/jwh/netns/netns.go
+diff --git a/components/engine/vendor/github.com/vishvananda/netns/netns_linux.go b/components/engine/vendor/github.com/jwh/netns/netns_linux.go
+similarity index 98%
+rename from components/engine/vendor/github.com/vishvananda/netns/netns_linux.go
+rename to components/engine/vendor/github.com/jwh/netns/netns_linux.go
+index b1e3b07..66b5c1c 100644
+--- a/components/engine/vendor/github.com/vishvananda/netns/netns_linux.go
++++ b/components/engine/vendor/github.com/jwh/netns/netns_linux.go
+@@ -19,9 +19,10 @@ var SYS_SETNS = map[string]uintptr{
+ "amd64": 308,
+ "arm64": 268,
+ "arm": 375,
+- "mips": 4344,
+- "mipsle": 4344,
+- "mips64le": 4344,
++ "mips": 5303,
++ "mipsle": 5303,
++ "mips64": 5303,
++ "mips64le": 5303,
+ "ppc64": 350,
+ "ppc64le": 350,
+ "riscv64": 268,
+diff --git a/components/engine/vendor/github.com/jwh/netns/netns_test.go b/components/engine/vendor/github.com/jwh/netns/netns_test.go
+new file mode 100644
+index 0000000..e51981c
+--- /dev/null
++++ b/components/engine/vendor/github.com/jwh/netns/netns_test.go
+@@ -0,0 +1,66 @@
++package netns
++
++import (
++ "runtime"
++ "sync"
++ "testing"
++)
++
++func TestGetNewSetDelete(t *testing.T) {
++ runtime.LockOSThread()
++ defer runtime.UnlockOSThread()
++
++ origns, err := Get()
++ if err != nil {
++ t.Fatal(err)
++ }
++ newns, err := New()
++ if err != nil {
++ t.Fatal(err)
++ }
++ if origns.Equal(newns) {
++ t.Fatal("New ns failed")
++ }
++ if err := Set(origns); err != nil {
++ t.Fatal(err)
++ }
++ newns.Close()
++ if newns.IsOpen() {
++ t.Fatal("newns still open after close", newns)
++ }
++ ns, err := Get()
++ if err != nil {
++ t.Fatal(err)
++ }
++ if !ns.Equal(origns) {
++ t.Fatal("Reset ns failed", origns, newns, ns)
++ }
++}
++
++func TestNone(t *testing.T) {
++ ns := None()
++ if ns.IsOpen() {
++ t.Fatal("None ns is open", ns)
++ }
++}
++
++func TestThreaded(t *testing.T) {
++ ncpu := runtime.GOMAXPROCS(-1)
++ if ncpu < 2 {
++ t.Skip("-cpu=2 or larger required")
++ }
++
++ // Lock this thread simply to ensure other threads get used.
++ runtime.LockOSThread()
++ defer runtime.UnlockOSThread()
++
++ wg := &sync.WaitGroup{}
++ for i := 0; i < ncpu; i++ {
++ wg.Add(1)
++ go func() {
++ defer wg.Done()
++ TestGetNewSetDelete(t)
++ }()
++ }
++ wg.Wait()
++}
+diff --git a/components/engine/vendor/github.com/vishvananda/netns/netns_unspecified.go b/components/engine/vendor/github.com/jwh/netns/netns_unspecified.go
+similarity index 100%
+rename from components/engine/vendor/github.com/vishvananda/netns/netns_unspecified.go
+rename to components/engine/vendor/github.com/jwh/netns/netns_unspecified.go
+diff --git a/components/engine/vendor/github.com/moby/buildkit/go.mod b/components/engine/vendor/github.com/moby/buildkit/go.mod
+index cf1c7d6..c501e9d 100644
+--- a/components/engine/vendor/github.com/moby/buildkit/go.mod
++++ b/components/engine/vendor/github.com/moby/buildkit/go.mod
+@@ -60,7 +60,7 @@ require (
+ github.com/uber/jaeger-lib v1.2.1 // indirect
+ github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5
+ github.com/vishvananda/netlink v1.0.0 // indirect
+- github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc // indirect
++ github.com/jwh/netns v0.0.0-20180720170159-13995c7128cc // indirect
+ go.etcd.io/bbolt v1.3.2
+ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
+ golang.org/x/net v0.0.0-20190311183353-d8887717615a
+diff --git a/components/engine/vendor/github.com/vishvananda/netlink/README.md b/components/engine/vendor/github.com/vishvananda/netlink/README.md
+index a88e2f4..863594a 100644
+--- a/components/engine/vendor/github.com/vishvananda/netlink/README.md
++++ b/components/engine/vendor/github.com/vishvananda/netlink/README.md
+@@ -24,7 +24,7 @@ You can use go get command:
+
+ Testing dependencies:
+
+- go get github.com/vishvananda/netns
++ go get github.com/jwh/netns
+
+ Testing (requires root):
+
+diff --git a/components/engine/vendor/github.com/vishvananda/netlink/addr_linux.go b/components/engine/vendor/github.com/vishvananda/netlink/addr_linux.go
+index d59c328..757b58b 100644
+--- a/components/engine/vendor/github.com/vishvananda/netlink/addr_linux.go
++++ b/components/engine/vendor/github.com/vishvananda/netlink/addr_linux.go
+@@ -7,7 +7,7 @@ import (
+ "syscall"
+
+ "github.com/vishvananda/netlink/nl"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ "golang.org/x/sys/unix"
+ )
+
+diff --git a/components/engine/vendor/github.com/vishvananda/netlink/handle_linux.go b/components/engine/vendor/github.com/vishvananda/netlink/handle_linux.go
+index 9f6d7fe..1485a95 100644
+--- a/components/engine/vendor/github.com/vishvananda/netlink/handle_linux.go
++++ b/components/engine/vendor/github.com/vishvananda/netlink/handle_linux.go
+@@ -5,7 +5,7 @@ import (
+ "time"
+
+ "github.com/vishvananda/netlink/nl"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ "golang.org/x/sys/unix"
+ )
+
+diff --git a/components/engine/vendor/github.com/vishvananda/netlink/handle_unspecified.go b/components/engine/vendor/github.com/vishvananda/netlink/handle_unspecified.go
+index 915b765..8fc0363 100644
+--- a/components/engine/vendor/github.com/vishvananda/netlink/handle_unspecified.go
++++ b/components/engine/vendor/github.com/vishvananda/netlink/handle_unspecified.go
+@@ -6,7 +6,7 @@ import (
+ "net"
+ "time"
+
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ )
+
+ type Handle struct{}
+diff --git a/components/engine/vendor/github.com/vishvananda/netlink/link_linux.go b/components/engine/vendor/github.com/vishvananda/netlink/link_linux.go
+index 540191e..da86410 100644
+--- a/components/engine/vendor/github.com/vishvananda/netlink/link_linux.go
++++ b/components/engine/vendor/github.com/vishvananda/netlink/link_linux.go
+@@ -10,7 +10,7 @@ import (
+ "unsafe"
+
+ "github.com/vishvananda/netlink/nl"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ "golang.org/x/sys/unix"
+ )
+
+diff --git a/components/engine/vendor/github.com/vishvananda/netlink/nl/nl_linux.go b/components/engine/vendor/github.com/vishvananda/netlink/nl/nl_linux.go
+index bc8e82c..f2ffeb1 100644
+--- a/components/engine/vendor/github.com/vishvananda/netlink/nl/nl_linux.go
++++ b/components/engine/vendor/github.com/vishvananda/netlink/nl/nl_linux.go
+@@ -12,7 +12,7 @@ import (
+ "syscall"
+ "unsafe"
+
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ "golang.org/x/sys/unix"
+ )
+
+diff --git a/components/engine/vendor/github.com/vishvananda/netlink/route_linux.go b/components/engine/vendor/github.com/vishvananda/netlink/route_linux.go
+index 3f85671..177002f 100644
+--- a/components/engine/vendor/github.com/vishvananda/netlink/route_linux.go
++++ b/components/engine/vendor/github.com/vishvananda/netlink/route_linux.go
+@@ -7,7 +7,7 @@ import (
+ "syscall"
+
+ "github.com/vishvananda/netlink/nl"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ "golang.org/x/sys/unix"
+ )
+
+diff --git a/components/engine/vendor/github.com/vishvananda/netlink/xfrm_monitor_linux.go b/components/engine/vendor/github.com/vishvananda/netlink/xfrm_monitor_linux.go
+index efe72dd..42ae754 100644
+--- a/components/engine/vendor/github.com/vishvananda/netlink/xfrm_monitor_linux.go
++++ b/components/engine/vendor/github.com/vishvananda/netlink/xfrm_monitor_linux.go
+@@ -4,7 +4,7 @@ import (
+ "fmt"
+
+ "github.com/vishvananda/netlink/nl"
+- "github.com/vishvananda/netns"
++ "github.com/jwh/netns"
+ "golang.org/x/sys/unix"
+ )
+
diff --git a/community/docker/stat-struct-fixes-mips64.patch b/community/docker/stat-struct-fixes-mips64.patch
new file mode 100644
index 00000000000..f9f7f4fd49d
--- /dev/null
+++ b/community/docker/stat-struct-fixes-mips64.patch
@@ -0,0 +1,13 @@
+diff --git a/docker-ce-19.03.8/components/cli/vendor/github.com/docker/docker/pkg/system/stat_linux.go b/docker-ce-19.03.8/components/cli/vendor/github.com/docker/docker/pkg/system/stat_linux.go
+index 98c9eb1..8a090a5 100644
+--- a/components/cli/vendor/github.com/docker/docker/pkg/system/stat_linux.go
++++ b/components/cli/vendor/github.com/docker/docker/pkg/system/stat_linux.go
+@@ -8,7 +8,7 @@ func fromStatT(s *syscall.Stat_t) (*StatT, error) {
+ mode: s.Mode,
+ uid: s.Uid,
+ gid: s.Gid,
+- rdev: s.Rdev,
++ rdev: uint64(s.Rdev),
+ mtim: s.Mtim}, nil
+ }
+