diff --git a/docker.spec b/docker.spec index 0b7d0d158ab449dda9bf65588184d338468e5176..a028e5567fe2f12504b8dd84d4276c26f08ffa83 100644 --- a/docker.spec +++ b/docker.spec @@ -1,6 +1,6 @@ Name: docker-engine Version: 18.09.0 -Release: 320 +Release: 321 Epoch: 2 Summary: The open-source application container engine Group: Tools/Docker @@ -13,6 +13,10 @@ Source3: git-commit Source4: series.conf Source5: VERSION-vendor Source6: gen-commit.sh +%ifarch loongarch64 +Source7: net.tar.gz +Source8: sys.tar.gz +%endif URL: https://mobyproject.org @@ -67,6 +71,12 @@ export DOCKER_GITCOMMIT=$(cat git-commit | head -c 7) export AUTO_GOPATH=1 export DOCKER_BUILDTAGS="pkcs11 seccomp selinux" cd ${WORKDIR}/components/engine +%ifarch loongarch64 +rm -rf vendor/golang.org/x/sys +rm -rf vendor/golang.org/x/net +tar -xf %{SOURCE7} -C vendor/golang.org/x/ +tar -xf %{SOURCE8} -C vendor/golang.org/x/ +%endif ./hack/make.sh dynbinary # buid docker cli @@ -75,6 +85,12 @@ mkdir -p .gopath/src/github.com/docker export GOPATH=`pwd`/.gopath ln -sf `pwd` .gopath/src/github.com/docker/cli ln -sf ${WORKDIR}/components/engine .gopath/src/github.com/docker/docker +%ifarch loongarch64 +rm -rf vendor/golang.org/x/sys +rm -rf vendor/golang.org/x/net +tar -xf %{SOURCE7} -C vendor/golang.org/x/ +tar -xf %{SOURCE8} -C vendor/golang.org/x/ +%endif cd .gopath/src/github.com/docker/cli make dynbinary @@ -213,6 +229,12 @@ fi %endif %changelog +* Thu Mar 16 2023 zhaozhen - 2:18.09.0-321 +- Type:feature +- CVE:NA +- SUG:NA +- DESC:add loongarch64 support for docker + * Wed Mar 15 2023 zhongjiawei - 18.09.0-320 - Type:bugfix - CVE:NA diff --git a/net.tar.gz b/net.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a7d55c8c3b4d309fb47d1e9e8ca1f809e178fa97 Binary files /dev/null and b/net.tar.gz differ diff --git a/patch/0240-add-loong64-support-for-etcd.patch b/patch/0240-add-loong64-support-for-etcd.patch new file mode 100644 index 0000000000000000000000000000000000000000..43ffbe8a7700923308eb16b7454cb68176004331 --- /dev/null +++ b/patch/0240-add-loong64-support-for-etcd.patch @@ -0,0 +1,31 @@ +From 8617d4d44d055b19301a815ec070479d9e8e00ff Mon Sep 17 00:00:00 2001 +From: zhaozhen +Date: Fri, 6 Jan 2023 01:20:46 +0000 +Subject: [PATCH] add loong64 support for etcd + +--- + .../engine/vendor/go.etcd.io/bbolt/bolt_loong64.go | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + create mode 100644 components/engine/vendor/go.etcd.io/bbolt/bolt_loong64.go + +diff --git a/components/engine/vendor/go.etcd.io/bbolt/bolt_loong64.go b/components/engine/vendor/go.etcd.io/bbolt/bolt_loong64.go +new file mode 100644 +index 00000000..aa8de7b1 +--- /dev/null ++++ b/components/engine/vendor/go.etcd.io/bbolt/bolt_loong64.go +@@ -0,0 +1,12 @@ ++// +build loong64 ++ ++package bbolt ++ ++// maxMapSize represents the largest mmap size supported by Bolt. ++const maxMapSize = 0x8000000000 // 512GB ++ ++// maxAllocSize is the size used when creating array pointers. ++const maxAllocSize = 0x7FFFFFFF ++ ++// Are unaligned load/stores broken on this arch? ++var brokenUnaligned = false +-- +2.33.0 + diff --git a/patch/0241-add-loong64-support-for-netns.patch b/patch/0241-add-loong64-support-for-netns.patch new file mode 100644 index 0000000000000000000000000000000000000000..8acbfee71ac7ef7a0c1b52baec7f69f395e06eed --- /dev/null +++ b/patch/0241-add-loong64-support-for-netns.patch @@ -0,0 +1,26 @@ +From d7e314f23e670513780f513c0bc95cff18d4bb05 Mon Sep 17 00:00:00 2001 +From: zhaozhen +Date: Fri, 6 Jan 2023 01:41:35 +0000 +Subject: [PATCH] add loong64 support for netns + +--- + .../github.com/vishvananda/netns/netns_linux_loong64.go | 7 +++++++ + 1 file changed, 7 insertions(+) + create mode 100644 components/engine/vendor/github.com/vishvananda/netns/netns_linux_loong64.go + +diff --git a/components/engine/vendor/github.com/vishvananda/netns/netns_linux_loong64.go b/components/engine/vendor/github.com/vishvananda/netns/netns_linux_loong64.go +new file mode 100644 +index 00000000..111209ae +--- /dev/null ++++ b/components/engine/vendor/github.com/vishvananda/netns/netns_linux_loong64.go +@@ -0,0 +1,7 @@ ++// +build linux,loong64 ++ ++package netns ++ ++const ( ++ SYS_SETNS = 268 ++) +-- +2.33.0 + diff --git a/patch/0242-add-loong64-support-for-sysx.patch b/patch/0242-add-loong64-support-for-sysx.patch new file mode 100644 index 0000000000000000000000000000000000000000..9a364d45a0725d543c0d40be35e42c264f7bd64f --- /dev/null +++ b/patch/0242-add-loong64-support-for-sysx.patch @@ -0,0 +1,130 @@ +From 0e857e82b631413f818407ff97cd76698b08e9ae Mon Sep 17 00:00:00 2001 +From: zhaozhen +Date: Fri, 6 Jan 2023 02:01:20 +0000 +Subject: [PATCH] add loong64 support for sysx + +--- + .../continuity/sysx/xattr_linux_loong64.go | 111 ++++++++++++++++++ + 1 file changed, 111 insertions(+) + create mode 100644 components/cli/vendor/github.com/containerd/continuity/sysx/xattr_linux_loong64.go + +diff --git a/components/cli/vendor/github.com/containerd/continuity/sysx/xattr_linux_loong64.go b/components/cli/vendor/github.com/containerd/continuity/sysx/xattr_linux_loong64.go +new file mode 100644 +index 00000000..dec46faa +--- /dev/null ++++ b/components/cli/vendor/github.com/containerd/continuity/sysx/xattr_linux_loong64.go +@@ -0,0 +1,111 @@ ++// mksyscall.pl xattr_linux.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++package sysx ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func llistxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = syscall.BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := syscall.Syscall(syscall.SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ use(unsafe.Pointer(_p0)) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func lremovexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = syscall.BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = syscall.BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := syscall.Syscall(syscall.SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ use(unsafe.Pointer(_p0)) ++ use(unsafe.Pointer(_p1)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func lsetxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = syscall.BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = syscall.BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := syscall.Syscall6(syscall.SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ use(unsafe.Pointer(_p0)) ++ use(unsafe.Pointer(_p1)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func lgetxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = syscall.BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = syscall.BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := syscall.Syscall6(syscall.SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ use(unsafe.Pointer(_p0)) ++ use(unsafe.Pointer(_p1)) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +-- +2.33.0 + diff --git a/series.conf b/series.conf index ccd4c949fe3db4943988c281d76aff9eaeadc0f7..e31ec5dadc840c782f13a0a5673628f05681f9f2 100644 --- a/series.conf +++ b/series.conf @@ -237,4 +237,7 @@ patch/0236-docker-set-freezer.state-to-Thawed-to-increase-freez.patch patch/0237-docker-stats-fix-panic.patch patch/0238-docker-fix-container-missing-after-restarting-docker.patch patch/0239-docker-try-http-for-docker-manifest-insecure.patch +patch/0240-add-loong64-support-for-etcd.patch +patch/0241-add-loong64-support-for-netns.patch +patch/0242-add-loong64-support-for-sysx.patch #end diff --git a/sys.tar.gz b/sys.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a9c1bcba0e8f71b858def78eeb03534dac4a53bd Binary files /dev/null and b/sys.tar.gz differ