Docker to 1.2.0, with patch only to daemon for arch check.

This commit is contained in:
Jason Plum 2014-09-07 21:49:53 -04:00
parent c930bd621f
commit f5a9cd5c82
5 changed files with 32 additions and 196 deletions

View file

@ -1,25 +0,0 @@
From aac5df4ecbb56c741afb63e2ca5d7ca42b59a736 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Wed, 7 May 2014 15:42:38 -0600
Subject: [PATCH 1/3] ARM as allowed architecture
---
docker/docker.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docker/docker.go b/docker/docker.go
index 26ccd24..19de4a0 100644
--- a/docker/docker.go
+++ b/docker/docker.go
@@ -251,7 +251,7 @@ func showVersion() {
func checkKernelAndArch() error {
// Check for unsupported architectures
- if runtime.GOARCH != "amd64" {
+ if runtime.GOARCH != "amd64" && runtime.GOARCH != "arm" {
return fmt.Errorf("The docker runtime currently only supports amd64 (not %s). This will change in the future. Aborting.", runtime.GOARCH)
}
// Check for unsupported kernel versions
--
1.9.0

View file

@ -0,0 +1,13 @@
--- a/daemon/daemon.go 2014-08-28 21:22:18.805001026 -0400
+++ b/daemon/daemon.go 2014-08-28 21:23:52.030001071 -0400
@@ -1095,10 +1095,6 @@ func (daemon *Daemon) ImageGetCached(img
}
func checkKernelAndArch() error {
- // Check for unsupported architectures
- if runtime.GOARCH != "amd64" {
- return fmt.Errorf("The Docker runtime currently only supports amd64 (not %s). This will change in the future. Aborting.", runtime.GOARCH)
- }
// Check for unsupported kernel versions
// FIXME: it would be cleaner to not test for specific versions, but rather
// test for specific functionalities.

View file

@ -1,29 +0,0 @@
From 88fd97ad84730327a5f56dc70af6b71547090c2c Mon Sep 17 00:00:00 2001
From: Vladimir Pouzanov <farcaller@gmail.com>
Date: Wed, 18 Jun 2014 21:16:41 +0100
Subject: [PATCH] Fix btrfs detection on ARM
---
daemon/graphdriver/driver.go | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/daemon/graphdriver/driver.go b/daemon/graphdriver/driver.go
index 4536489..bd9e6df 100644
--- a/daemon/graphdriver/driver.go
+++ b/daemon/graphdriver/driver.go
@@ -10,10 +10,10 @@ import (
"github.com/dotcloud/docker/pkg/mount"
)
-type FsMagic uint64
+type FsMagic int32
const (
- FsMagicBtrfs = FsMagic(0x9123683E)
+ FsMagicBtrfs = FsMagic(-1859950530)
FsMagicAufs = FsMagic(0x61756673)
)
--
1.8.5.2

View file

@ -1,116 +0,0 @@
From 663b9649d37a2d0f2bdae4134ba55ed36e97ba3f Mon Sep 17 00:00:00 2001
From: Vladimir Pouzanov <farcaller@gmail.com>
Date: Wed, 18 Jun 2014 21:07:31 +0100
Subject: [PATCH] setBridgeMacAddress ARM support
---
pkg/netlink/netlink_linux.go | 19 -------------------
pkg/netlink/setbridgemacaddress_amd64.go | 27 +++++++++++++++++++++++++++
pkg/netlink/setbridgemacaddress_arm.go | 27 +++++++++++++++++++++++++++
3 files changed, 54 insertions(+), 19 deletions(-)
create mode 100644 pkg/netlink/setbridgemacaddress_amd64.go
create mode 100644 pkg/netlink/setbridgemacaddress_arm.go
diff --git a/pkg/netlink/netlink_linux.go b/pkg/netlink/netlink_linux.go
index 14e30aa..12aee4d 100644
--- a/pkg/netlink/netlink_linux.go
+++ b/pkg/netlink/netlink_linux.go
@@ -5,7 +5,6 @@ package netlink
import (
"encoding/binary"
"fmt"
- "math/rand"
"net"
"sync/atomic"
"syscall"
@@ -944,21 +943,3 @@ func AddToBridge(iface, master *net.Interface) error {
return nil
}
-
-func setBridgeMacAddress(s int, name string) error {
- ifr := ifreqHwaddr{}
- ifr.IfruHwaddr.Family = syscall.ARPHRD_ETHER
- copy(ifr.IfrnName[:], name)
-
- for i := 0; i < 6; i++ {
- ifr.IfruHwaddr.Data[i] = int8(rand.Intn(255))
- }
-
- ifr.IfruHwaddr.Data[0] &^= 0x1 // clear multicast bit
- ifr.IfruHwaddr.Data[0] |= 0x2 // set local assignment bit (IEEE802)
-
- if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(s), syscall.SIOCSIFHWADDR, uintptr(unsafe.Pointer(&ifr))); err != 0 {
- return err
- }
- return nil
-}
diff --git a/pkg/netlink/setbridgemacaddress_amd64.go b/pkg/netlink/setbridgemacaddress_amd64.go
new file mode 100644
index 0000000..dea7e1a
--- /dev/null
+++ b/pkg/netlink/setbridgemacaddress_amd64.go
@@ -0,0 +1,27 @@
+// +build amd64
+
+package netlink
+
+import (
+ "math/rand"
+ "syscall"
+ "unsafe"
+)
+
+func setBridgeMacAddress(s int, name string) error {
+ ifr := ifreqHwaddr{}
+ ifr.IfruHwaddr.Family = syscall.ARPHRD_ETHER
+ copy(ifr.IfrnName[:], name)
+
+ for i := 0; i < 6; i++ {
+ ifr.IfruHwaddr.Data[i] = int8(rand.Intn(255))
+ }
+
+ ifr.IfruHwaddr.Data[0] &^= 0x1 // clear multicast bit
+ ifr.IfruHwaddr.Data[0] |= 0x2 // set local assignment bit (IEEE802)
+
+ if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(s), syscall.SIOCSIFHWADDR, uintptr(unsafe.Pointer(&ifr))); err != 0 {
+ return err
+ }
+ return nil
+}
diff --git a/pkg/netlink/setbridgemacaddress_arm.go b/pkg/netlink/setbridgemacaddress_arm.go
new file mode 100644
index 0000000..f5e116e
--- /dev/null
+++ b/pkg/netlink/setbridgemacaddress_arm.go
@@ -0,0 +1,27 @@
+// +build arm
+
+package netlink
+
+import (
+ "math/rand"
+ "syscall"
+ "unsafe"
+)
+
+func setBridgeMacAddress(s int, name string) error {
+ ifr := ifreqHwaddr{}
+ ifr.IfruHwaddr.Family = syscall.ARPHRD_ETHER
+ copy(ifr.IfrnName[:], name)
+
+ for i := 0; i < 6; i++ {
+ ifr.IfruHwaddr.Data[i] = uint8(rand.Intn(128))
+ }
+
+ ifr.IfruHwaddr.Data[0] &^= 0x1 // clear multicast bit
+ ifr.IfruHwaddr.Data[0] |= 0x2 // set local assignment bit (IEEE802)
+
+ if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(s), syscall.SIOCSIFHWADDR, uintptr(unsafe.Pointer(&ifr))); err != 0 {
+ return err
+ }
+ return nil
+}
--
1.8.5.2

View file

@ -1,11 +1,8 @@
# $Id$
# Maintainer: Sebastien "Seblu" Luttringer
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - ARM patches, adjustments
# Maintainer: Sébastien "Seblu" Luttringer
pkgname=docker
pkgver=1.0.0
pkgver=1.2.0
pkgrel=1
epoch=1
pkgdesc='Pack, ship and run any application as a lightweight container'
@ -19,28 +16,14 @@ optdepends=('btrfs-progs: btrfs backend support'
# don't strip binaries! A sha1 is used to check binary consistency.
options=('!strip')
install=$pkgname.install
source=("git+https://github.com/dotcloud/docker.git#tag=v$pkgver"
'0001-ARM-as-allowed-architecture.patch'
'0002-Fix-btrfs-detection-on-ARM.patch'
'0003-setBridgeMacAddress-ARM-support.patch')
source=("git+https://github.com/docker/docker.git#tag=v$pkgver"
"0001-daemon-no-arch-check.patch")
md5sums=('SKIP'
'c003084f4cf0f754c868662a8bae95e8'
'3ca24a8fe8567a153fad4f9ab31286ae'
'1f74fb11f1b10868dbc55ddb6d437125')
prepare() {
cd "docker"
patch -p1 -i ../0001-ARM-as-allowed-architecture.patch
patch -p1 -i ../0002-Fix-btrfs-detection-on-ARM.patch
find . -name '*.go' | xargs sed --in-place= -e 's/\/\/ +build amd64/\/\/ +build arm/'
find . -name '*.go' | xargs sed --in-place= -e 's/\/\/ +build !linux !amd64/\/\/ +build !linux !arm/'
find . -name '*.go' | xargs sed --in-place= -e 's/\/\/ +build linux,amd64/\/\/ +build linux,arm/'
# This patch is applicable after the seds.
patch -p1 -i ../0003-setBridgeMacAddress-ARM-support.patch
}
'6746a788096a02829666c67bece899d5')
build() {
cd docker
patch -p1 < $srcdir/0001-daemon-no-arch-check.patch
export AUTO_GOPATH=1
./hack/make.sh dynbinary
}
@ -56,8 +39,18 @@ package() {
install -Dm755 "bundles/$pkgver/dynbinary/docker-$pkgver" "$pkgdir/usr/bin/docker"
install -Dm755 "bundles/$pkgver/dynbinary/dockerinit-$pkgver" "$pkgdir/usr/lib/docker/dockerinit"
# completion
install -Dm644 "contrib/completion/bash/docker" "$pkgdir/usr/share/bash-completion/completions/docker"
install -Dm644 "contrib/completion/zsh/_docker" "$pkgdir/usr/share/zsh/site-functions/_docker"
install -Dm644 'contrib/completion/bash/docker' "$pkgdir/usr/share/bash-completion/completions/docker"
install -Dm644 'contrib/completion/zsh/_docker' "$pkgdir/usr/share/zsh/site-functions/_docker"
# systemd
install -Dm644 "contrib/init/systemd/docker.service" "$pkgdir/usr/lib/systemd/system/docker.service"
install -Dm644 'contrib/init/systemd/docker.service' \
"$pkgdir/usr/lib/systemd/system/docker.service"
install -Dm644 'contrib/init/systemd/docker.socket' \
"$pkgdir/usr/lib/systemd/system/docker.socket"
# vim syntax
install -Dm644 'contrib/syntax/vim/syntax/dockerfile.vim' \
"$pkgdir/usr/share/vim/vimfiles/syntax/dockerfile.vim"
install -Dm644 'contrib/syntax/vim/ftdetect/dockerfile.vim' \
"$pkgdir/usr/share/vim/vimfiles/ftdetect/dockerfile.vim"
}
# vim:set ts=2 sw=2 et: