Merge pull request #2022 from mischief/docker-deps

docker 1.11 deps w/ cross-compilation fixes
This commit is contained in:
Nick Owens 2016-06-22 13:07:15 -07:00 committed by GitHub
commit 08b59ce39d
10 changed files with 508 additions and 0 deletions

View File

@ -0,0 +1,5 @@
DIST containerd-0.2.0.tar.gz 635248 SHA256 1462e0c233763800b91ac2a670d82994ba1988560928e153f751fb1c0a6608c0 SHA512 381c0a21733fb79e90364649b46cbdadbc32d07245bd7a320465f6619ee5895e9552b7cc4393cb8d409295a7b867b7e461c079715cf1938e6313d4b888d81518 WHIRLPOOL d4e70a8be832227be671c13b77242a790cdf8645ff294c31d72e8cf01de2b30b9d78c691a156624adb004de42af6f133cb88b46aff37a33bc94d72bf87a0ee8a
EBUILD containerd-0.2.0.ebuild 872 SHA256 3489ed392df85fb20d79c7642b5d8ffc4e27bee998bbff94924cd096b45b4ff8 SHA512 2be6d72181de2b17a63f193215a55ae7e4641428ed701720e1eeb4f52d77d3fcc709660c3bdf0315ac3cf29b5bdd39c4eb8d90e3672167dcd28ce9947c0a8462 WHIRLPOOL af8a90feff38580e190f24659d52f85da2f3d77589a82cf771a8aed91e2c9600d05311e1f30badadc1561884256f7465ba201b3613d510a2cb888909289b2558
EBUILD containerd-9999.ebuild 873 SHA256 37689bdf98b0c26caf73768b628fb5b247c99ac936fc71b9515518fbeaec0ee8 SHA512 a9dcb7eeb0929717572f181143135f35c316b9a2111d2e84c1b0e3de58fb3cdb5be4b1d838a4496c6baa00bcf0d11e55848d6c6faf3c3e4b5d22762423c582d2 WHIRLPOOL 4ce7ccf1c2beee6f489012fa5bfcbf9f0700a680d964be2561438b2a7dd5c506dd020507c7ab3b8728e92f0e40afd044f8838b41111585f32f7c8f8745bfc41c
MISC ChangeLog 907 SHA256 e4c5c82016826389ac30d0f6c6abbd21d68ee4305bf5081c4042c935128d077a SHA512 5fa4260862c25b7e89050f0f89e4a4cdbce7e633c7ec99fa68ef7cd9c87d3f1bf9627da0bf2217a42b3e9d36009093db7e037b45d136c128915b3d11e13b5ff6 WHIRLPOOL 3a3cbf24e9ffe67575d95b9113ffbec4208eaa9a0f274d6adc87c92b6b278ea167f7139b49406b4b66e5c4e0e2d600f1d23ae9fe0a388d40c29ffeaa0e2d0d6e
MISC metadata.xml 806 SHA256 0e405066fe37fcb61860b427329725ad643f44ca8c51ce3155155f9804364e9e SHA512 2fdec9a5625e9c7339988704a60f1e4dc337d05cd510199a3228402f8e4b67b685afee44c87b035895791312e269d84e1821f7b1b2ebcc2f011d036bf7eeb9de WHIRLPOOL 8dc5aea92a5fcc73dd4f6bfcd2d4ece9ee27770000c66ad0fadfe3c78dac0c8261fb9016b8a0abf76a58c8236cd7a25c117356df86e38a8ec09dffdb6eeb64d1

View File

@ -0,0 +1,58 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
EGO_PN="github.com/docker/${PN}"
COREOS_GO_PACKAGE="${EGO_PN}"
if [[ ${PV} == *9999 ]]; then
inherit golang-vcs
else
MY_PV="${PV/_/-}"
EGIT_COMMIT="v${MY_PV}"
SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
KEYWORDS="amd64 arm64"
inherit golang-vcs-snapshot
fi
inherit coreos-go
DESCRIPTION="A daemon to control runC"
HOMEPAGE="https://containerd.tools"
LICENSE="Apache-2.0"
SLOT="0"
IUSE="+seccomp"
DEPEND=""
RDEPEND="app-emulation/runc
seccomp? ( sys-libs/libseccomp )"
S=${WORKDIR}/${P}/src/${EGO_PN}
PATCHES=(
"${FILESDIR}"/0001-Use-flag-for-aarch64-EpollCreate1.patch
"${FILESDIR}"/0002-archutils-epoll_aarch64-fix-C-formatting.patch
"${FILESDIR}"/0003-archutils-fix-build-on-aarch64.patch
"${FILESDIR}"/0004-Correct-build-flag-for-arm64.patch
)
src_prepare() {
epatch "${PATCHES[@]}"
}
src_compile() {
export GOARCH=$(go_get_arch)
export CGO_ENABLED=1
export CC=$(tc-getCC)
export CXX=$(tc-getCXX)
local options=( $(usex seccomp "seccomp") )
export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor
LDFLAGS= emake GIT_COMMIT="$EGIT_COMMIT" BUILDTAGS="${options[@]}"
}
src_install() {
dobin bin/containerd* bin/ctr
}

View File

@ -0,0 +1,45 @@
From e419be223f415008f313e95d6d19f20398bdec9b Mon Sep 17 00:00:00 2001
From: Qiang Huang <h.huangqiang@huawei.com>
Date: Mon, 11 Apr 2016 15:01:36 +0800
Subject: [PATCH] Use flag for aarch64 EpollCreate1
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
---
archutils/epoll_aarch64.go | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/archutils/epoll_aarch64.go b/archutils/epoll_aarch64.go
index b0ea48c..3984ac4 100644
--- a/archutils/epoll_aarch64.go
+++ b/archutils/epoll_aarch64.go
@@ -5,15 +5,15 @@ package archutils
// #include <sys/epoll.h>
/*
int EpollCreate1(int flag) {
- return epoll_create1(0);
+ return epoll_create1(flag);
}
-int EpollCtl(int efd, int op,int sfd, int Events, int Fd) {
+int EpollCtl(int efd, int op, int sfd, int Events, int Fd) {
struct epoll_event event;
event.events = Events;
event.data.fd = Fd;
- return epoll_ctl(efd,op,sfd,&event);
+ return epoll_ctl(efd, op, sfd, &event);
}
typedef struct Event{
@@ -41,7 +41,7 @@ import (
)
func EpollCreate1(flag int) (int, error) {
- fd := int(C.EpollCreate1(0))
+ fd := int(C.EpollCreate1(C.int(flag)))
if fd < 0 {
return fd, fmt.Errorf("failed to create epoll, errno is %d", fd)
}
--
2.8.3

View File

@ -0,0 +1,80 @@
From 1e617aaab4942faf8a354c7239f061300637e5b8 Mon Sep 17 00:00:00 2001
From: Aleksa Sarai <asarai@suse.de>
Date: Wed, 13 Apr 2016 16:08:28 +1000
Subject: [PATCH 2/2] archutils: epoll_aarch64: fix C formatting
Use proper C formatting to make the cgo code much easier to read. Also
remove the pointless typedef.
Signed-off-by: Aleksa Sarai <asarai@suse.de>
---
archutils/epoll_aarch64.go | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/archutils/epoll_aarch64.go b/archutils/epoll_aarch64.go
index 3984ac4..73cd8ed 100644
--- a/archutils/epoll_aarch64.go
+++ b/archutils/epoll_aarch64.go
@@ -5,31 +5,31 @@ package archutils
// #include <sys/epoll.h>
/*
int EpollCreate1(int flag) {
- return epoll_create1(flag);
+ return epoll_create1(flag);
}
-int EpollCtl(int efd, int op, int sfd, int Events, int Fd) {
- struct epoll_event event;
- event.events = Events;
- event.data.fd = Fd;
+int EpollCtl(int efd, int op,int sfd, int events, int fd) {
+ struct epoll_event event;
+ event.events = events;
+ event.data.fd = fd;
- return epoll_ctl(efd, op, sfd, &event);
+ return epoll_ctl(efd, op, sfd, &event);
}
-typedef struct Event{
- uint32_t events;
- int fd;
+struct event_t {
+ uint32_t events;
+ int fd;
};
struct epoll_event events[128];
-int run_epoll_wait(int fd, struct Event *event) {
- int n, i;
- n = epoll_wait(fd, events, 128, -1);
- for (i = 0; i < n; i++) {
- event[i].events = events[i].events;
- event[i].fd = events[i].data.fd;
- }
- return n;
+int run_epoll_wait(int fd, struct event_t *event) {
+ int n, i;
+ n = epoll_wait(fd, events, 128, -1);
+ for (i = 0; i < n; i++) {
+ event[i].events = events[i].events;
+ event[i].fd = events[i].data.fd;
+ }
+ return n;
}
*/
import "C"
@@ -57,8 +57,8 @@ func EpollCtl(epfd int, op int, fd int, event *syscall.EpollEvent) error {
}
func EpollWait(epfd int, events []syscall.EpollEvent, msec int) (int, error) {
- var c_events [128]C.struct_Event
- n := int(C.run_epoll_wait(C.int(epfd), (*C.struct_Event)(unsafe.Pointer(&c_events))))
+ var c_events [128]C.struct_event_t
+ n := int(C.run_epoll_wait(C.int(epfd), (*C.struct_event_t)(unsafe.Pointer(&c_events))))
if n < 0 {
return int(n), fmt.Errorf("Failed to wait epoll")
}
--
2.8.3

View File

@ -0,0 +1,39 @@
From 7c572f16734b69134b17c5f6c563d6d6a595e606 Mon Sep 17 00:00:00 2001
From: Aleksa Sarai <asarai@suse.de>
Date: Wed, 13 Apr 2016 19:29:20 +1000
Subject: [PATCH 3/3] archutils: fix build on aarch64
Due to an invalid architecture name (arm64), containerd could not build
on aarch64 machines. Fix this by using the correct name of the
architecture for conditional building.
Signed-off-by: Aleksa Sarai <asarai@suse.de>
---
archutils/epoll.go | 3 ++-
archutils/epoll_aarch64.go | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/archutils/epoll.go b/archutils/epoll.go
index 6922b52..6bb6047 100644
--- a/archutils/epoll.go
+++ b/archutils/epoll.go
@@ -1,4 +1,5 @@
-//+build !arm64,linux
+// +build linux,!aarch64
+
package archutils
import (
diff --git a/archutils/epoll_aarch64.go b/archutils/epoll_aarch64.go
index 73cd8ed..3d63147 100644
--- a/archutils/epoll_aarch64.go
+++ b/archutils/epoll_aarch64.go
@@ -1,4 +1,4 @@
-// +build arm64,linux
+// +build linux,aarch64
package archutils
--
2.8.3

View File

@ -0,0 +1,183 @@
From 313db3df26b12293e7d99eab0647f5222f195648 Mon Sep 17 00:00:00 2001
From: Qiang Huang <h.huangqiang@huawei.com>
Date: Fri, 29 Apr 2016 11:42:41 +0000
Subject: [PATCH 4/4] Correct build flag for arm64
On arm64, the default build flag is the same as the one from
`go env` which is arm64. So we should use arm64 instead of
aarch64 for both build flag and file name.
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
---
archutils/epoll.go | 2 +-
archutils/epoll_aarch64.go | 70 ----------------------------------------------
archutils/epoll_arm64.go | 70 ++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 71 insertions(+), 71 deletions(-)
delete mode 100644 archutils/epoll_aarch64.go
create mode 100644 archutils/epoll_arm64.go
diff --git a/archutils/epoll.go b/archutils/epoll.go
index 6bb6047..c8ade64 100644
--- a/archutils/epoll.go
+++ b/archutils/epoll.go
@@ -1,4 +1,4 @@
-// +build linux,!aarch64
+// +build linux,!arm64
package archutils
diff --git a/archutils/epoll_aarch64.go b/archutils/epoll_aarch64.go
deleted file mode 100644
index 3d63147..0000000
--- a/archutils/epoll_aarch64.go
+++ /dev/null
@@ -1,70 +0,0 @@
-// +build linux,aarch64
-
-package archutils
-
-// #include <sys/epoll.h>
-/*
-int EpollCreate1(int flag) {
- return epoll_create1(flag);
-}
-
-int EpollCtl(int efd, int op,int sfd, int events, int fd) {
- struct epoll_event event;
- event.events = events;
- event.data.fd = fd;
-
- return epoll_ctl(efd, op, sfd, &event);
-}
-
-struct event_t {
- uint32_t events;
- int fd;
-};
-
-struct epoll_event events[128];
-int run_epoll_wait(int fd, struct event_t *event) {
- int n, i;
- n = epoll_wait(fd, events, 128, -1);
- for (i = 0; i < n; i++) {
- event[i].events = events[i].events;
- event[i].fd = events[i].data.fd;
- }
- return n;
-}
-*/
-import "C"
-
-import (
- "fmt"
- "syscall"
- "unsafe"
-)
-
-func EpollCreate1(flag int) (int, error) {
- fd := int(C.EpollCreate1(C.int(flag)))
- if fd < 0 {
- return fd, fmt.Errorf("failed to create epoll, errno is %d", fd)
- }
- return fd, nil
-}
-
-func EpollCtl(epfd int, op int, fd int, event *syscall.EpollEvent) error {
- errno := C.EpollCtl(C.int(epfd), C.int(syscall.EPOLL_CTL_ADD), C.int(fd), C.int(event.Events), C.int(event.Fd))
- if errno < 0 {
- return fmt.Errorf("Failed to ctl epoll")
- }
- return nil
-}
-
-func EpollWait(epfd int, events []syscall.EpollEvent, msec int) (int, error) {
- var c_events [128]C.struct_event_t
- n := int(C.run_epoll_wait(C.int(epfd), (*C.struct_event_t)(unsafe.Pointer(&c_events))))
- if n < 0 {
- return int(n), fmt.Errorf("Failed to wait epoll")
- }
- for i := 0; i < n; i++ {
- events[i].Fd = int32(c_events[i].fd)
- events[i].Events = uint32(c_events[i].events)
- }
- return int(n), nil
-}
diff --git a/archutils/epoll_arm64.go b/archutils/epoll_arm64.go
new file mode 100644
index 0000000..00abc68
--- /dev/null
+++ b/archutils/epoll_arm64.go
@@ -0,0 +1,70 @@
+// +build linux,arm64
+
+package archutils
+
+// #include <sys/epoll.h>
+/*
+int EpollCreate1(int flag) {
+ return epoll_create1(flag);
+}
+
+int EpollCtl(int efd, int op,int sfd, int events, int fd) {
+ struct epoll_event event;
+ event.events = events;
+ event.data.fd = fd;
+
+ return epoll_ctl(efd, op, sfd, &event);
+}
+
+struct event_t {
+ uint32_t events;
+ int fd;
+};
+
+struct epoll_event events[128];
+int run_epoll_wait(int fd, struct event_t *event) {
+ int n, i;
+ n = epoll_wait(fd, events, 128, -1);
+ for (i = 0; i < n; i++) {
+ event[i].events = events[i].events;
+ event[i].fd = events[i].data.fd;
+ }
+ return n;
+}
+*/
+import "C"
+
+import (
+ "fmt"
+ "syscall"
+ "unsafe"
+)
+
+func EpollCreate1(flag int) (int, error) {
+ fd := int(C.EpollCreate1(C.int(flag)))
+ if fd < 0 {
+ return fd, fmt.Errorf("failed to create epoll, errno is %d", fd)
+ }
+ return fd, nil
+}
+
+func EpollCtl(epfd int, op int, fd int, event *syscall.EpollEvent) error {
+ errno := C.EpollCtl(C.int(epfd), C.int(syscall.EPOLL_CTL_ADD), C.int(fd), C.int(event.Events), C.int(event.Fd))
+ if errno < 0 {
+ return fmt.Errorf("Failed to ctl epoll")
+ }
+ return nil
+}
+
+func EpollWait(epfd int, events []syscall.EpollEvent, msec int) (int, error) {
+ var c_events [128]C.struct_event_t
+ n := int(C.run_epoll_wait(C.int(epfd), (*C.struct_event_t)(unsafe.Pointer(&c_events))))
+ if n < 0 {
+ return int(n), fmt.Errorf("Failed to wait epoll")
+ }
+ for i := 0; i < n; i++ {
+ events[i].Fd = int32(c_events[i].fd)
+ events[i].Events = uint32(c_events[i].events)
+ }
+ return int(n), nil
+}
--
2.8.3

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<longdescription>
Containerd is a daemon with an API and a command line client, to manage
containers on one machine. It uses runC to run containers according to
the OCI specification. Containerd has advanced features such as seccomp
and user namespace support as well as checkpoint and restore for cloning
and live migration of containers.
</longdescription>
<maintainer type="person">
<email>admwiggin@gmail.com</email>
<name>Tianon</name>
</maintainer>
<maintainer type="person">
<email>xarthisius@gentoo.org</email>
<name>Kacper Kowalik</name>
</maintainer>
<upstream>
<remote-id type="github">docker/containerd</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1 @@
DIST runc-0.1.0.tar.gz 496358 SHA256 681d6d89541ae2e06757f999a242a1f97bbcb1ad6e10f4cdee287ec4a9d2bff9 SHA512 8a9ff02b0161eda0a730194b0fbf7ad76e8f379992e74061ef49302da3492fd0c53f06db9153ded4d934d67bbf6f4291d6154254f1b924ef73c97c44cd14ffcf WHIRLPOOL 81f488a4f1e23e8704a9fa8404965b2f12f74a875ba8e67dc15de93f43b075dc538cd0d89c7a1187cb74ac6320317b5985855945fb8bf8f749d6736df47b844a

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<longdescription lang="en">
runc is a CLI tool for spawning and running containers according
to the OCF (Open Container Format) specification.
</longdescription>
<maintainer type="person">
<email>cardoe@gentoo.org</email>
<name>Doug Goldstein</name>
</maintainer>
<use>
<flag name="apparmor">
Enable AppArmor support.
</flag>
</use>
<upstream>
<remote-id type="github">opencontainers/runc</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,55 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
GITHUB_URI="github.com/opencontainers/runc"
COREOS_GO_PACKAGE="${GITHUB_URI}"
inherit eutils multilib coreos-go
DESCRIPTION="runc container cli tools"
HOMEPAGE="http://runc.io"
if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="git://${GITHUB_URI}.git"
inherit git-r3
else
SRC_URI="https://${GITHUB_URI}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="amd64 arm64"
fi
LICENSE="Apache-2.0"
SLOT="0"
IUSE="+seccomp"
DEPEND=">=dev-lang/go-1.4:="
RDEPEND="seccomp? ( sys-libs/libseccomp )"
src_compile() {
# fix up cross-compiling variables
export GOARCH=$(go_get_arch)
export CGO_ENABLED=1
export CC=$(tc-getCC)
export CXX=$(tc-getCXX)
# Taken from app-emulation/docker-1.7.0-r1
export CGO_CFLAGS="-I${ROOT}/usr/include"
export CGO_LDFLAGS="-L${ROOT}/usr/$(get_libdir)"
# Setup GOPATH so things build
rm -rf .gopath
mkdir -p .gopath/src/"$(dirname "${GITHUB_URI}")"
ln -sf ../../../.. .gopath/src/"${GITHUB_URI}"
export GOPATH="${PWD}/.gopath:${PWD}/vendor"
# build up optional flags
local options=( $(usex seccomp "seccomp") )
emake BUILDTAGS="${options[@]}"
}
src_install() {
dobin runc
}