forked from pool/docker
- Build docker on PPC and S390x using gcc-go provided by gcc5
* added sysconfig.docker.ppc64le: make docker daemon start on ppc64le despite some iptables issues. To be removed soon * ignore-dockerinit-checksum.patch: applied only when building with gcc-go. Required to workaround a limitation of gcc-go * gcc-go-build-static-libgo.patch: used only when building with gcc-go, link libgo statically into docker itself. OBS-URL: https://build.opensuse.org/package/show/Virtualization:containers/docker?expand=0&rev=9
This commit is contained in:
parent
bc3232817c
commit
5a40d680c1
@ -1,3 +1,14 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jun 5 15:23:47 UTC 2015 - fcastelli@suse.com
|
||||||
|
|
||||||
|
- Build docker on PPC and S390x using gcc-go provided by gcc5
|
||||||
|
* added sysconfig.docker.ppc64le: make docker daemon start on ppc64le
|
||||||
|
despite some iptables issues. To be removed soon
|
||||||
|
* ignore-dockerinit-checksum.patch: applied only when building with
|
||||||
|
gcc-go. Required to workaround a limitation of gcc-go
|
||||||
|
* gcc-go-build-static-libgo.patch: used only when building with gcc-go,
|
||||||
|
link libgo statically into docker itself.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed May 27 10:02:51 UTC 2015 - dmacvicar@suse.de
|
Wed May 27 10:02:51 UTC 2015 - dmacvicar@suse.de
|
||||||
|
|
||||||
|
27
docker.spec
27
docker.spec
@ -37,13 +37,25 @@ Source5: docker_systemd_lt_214.socket
|
|||||||
|
|
||||||
Source6: docker-rpmlintrc
|
Source6: docker-rpmlintrc
|
||||||
Source7: README_SUSE.md
|
Source7: README_SUSE.md
|
||||||
|
# TODO: remove once we figure out what is wrong with iptables on ppc64le
|
||||||
|
Source100: sysconfig.docker.ppc64le
|
||||||
Patch0: 0002-Stripped-dockerinit-binary.patch
|
Patch0: 0002-Stripped-dockerinit-binary.patch
|
||||||
# PATCH-FIX-OPENSUSE libcontainer-apparmor-fixes.patch -- mount rules aren't supported in our apparmor
|
# PATCH-FIX-OPENSUSE libcontainer-apparmor-fixes.patch -- mount rules aren't supported in our apparmor
|
||||||
Patch1: libcontainer-apparmor-fixes.patch
|
Patch1: libcontainer-apparmor-fixes.patch
|
||||||
|
# Required to overcome some limitations of gcc-go: https://groups.google.com/forum/#!msg/golang-nuts/SlGCPYkjxo4/4DjcjXRCqAkJ
|
||||||
|
# Right now docker passes the sha1sum of the dockerinit binary to the docker binary at build time
|
||||||
|
# We cannot do that, right now a quick and really dirty way to get it running is
|
||||||
|
# to simply disable this check
|
||||||
|
Patch100: ignore-dockerinit-checksum.patch
|
||||||
|
Patch101: gcc-go-build-static-libgo.patch
|
||||||
BuildRequires: bash-completion
|
BuildRequires: bash-completion
|
||||||
BuildRequires: device-mapper-devel >= 1.2.68
|
BuildRequires: device-mapper-devel >= 1.2.68
|
||||||
BuildRequires: glibc-devel-static
|
BuildRequires: glibc-devel-static
|
||||||
|
%ifarch ppc ppc64 s390x ppc64p7 ppc64l
|
||||||
|
BuildRequires: gcc5-go >= 5.0
|
||||||
|
%else
|
||||||
BuildRequires: go >= 1.3
|
BuildRequires: go >= 1.3
|
||||||
|
%endif
|
||||||
BuildRequires: go-go-md2man
|
BuildRequires: go-go-md2man
|
||||||
BuildRequires: libapparmor-devel
|
BuildRequires: libapparmor-devel
|
||||||
BuildRequires: libbtrfs-devel >= 3.8
|
BuildRequires: libbtrfs-devel >= 3.8
|
||||||
@ -67,7 +79,6 @@ Requires: xz >= 4.9
|
|||||||
Conflicts: lxc < 1.0
|
Conflicts: lxc < 1.0
|
||||||
PreReq: %fillup_prereq
|
PreReq: %fillup_prereq
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
ExclusiveArch: armv7hl x86_64
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Docker complements LXC with a high-level API which operates at the process
|
Docker complements LXC with a high-level API which operates at the process
|
||||||
@ -102,9 +113,19 @@ Zsh command line completion support for %{name}.
|
|||||||
%setup -q -n docker
|
%setup -q -n docker
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
%ifarch ppc ppc64 s390x ppc64p7 ppc64l
|
||||||
|
%patch100 -p1
|
||||||
|
%patch101 -p1
|
||||||
|
%endif
|
||||||
cp %{SOURCE7} .
|
cp %{SOURCE7} .
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
%ifarch ppc ppc64 s390x ppc64p7 ppc64l
|
||||||
|
mkdir /tmp/dirty-hack
|
||||||
|
ln -s /usr/bin/go-5 /tmp/dirty-hack/go
|
||||||
|
export PATH=/tmp/dirty-hack:$PATH
|
||||||
|
%endif
|
||||||
|
|
||||||
export AUTO_GOPATH=1
|
export AUTO_GOPATH=1
|
||||||
export DOCKER_BUILDTAGS="exclude_graphdriver_aufs apparmor selinux"
|
export DOCKER_BUILDTAGS="exclude_graphdriver_aufs apparmor selinux"
|
||||||
export DOCKER_GITCOMMIT=%{git_version}
|
export DOCKER_GITCOMMIT=%{git_version}
|
||||||
@ -139,7 +160,11 @@ ln -sf /sbin/service $RPM_BUILD_ROOT/usr/sbin/rcdocker
|
|||||||
install -D -m 0644 %SOURCE3 %{buildroot}%{_prefix}/lib/udev/rules.d/80-%{name}.rules
|
install -D -m 0644 %SOURCE3 %{buildroot}%{_prefix}/lib/udev/rules.d/80-%{name}.rules
|
||||||
|
|
||||||
# sysconfig file
|
# sysconfig file
|
||||||
|
%ifarch ppc64le
|
||||||
|
install -D -m 644 %SOURCE100 %{buildroot}/var/adm/fillup-templates/sysconfig.docker
|
||||||
|
%else
|
||||||
install -D -m 644 %SOURCE4 %{buildroot}/var/adm/fillup-templates/sysconfig.docker
|
install -D -m 644 %SOURCE4 %{buildroot}/var/adm/fillup-templates/sysconfig.docker
|
||||||
|
%endif
|
||||||
|
|
||||||
# install manpages
|
# install manpages
|
||||||
install -d %{buildroot}%{_mandir}/man1
|
install -d %{buildroot}%{_mandir}/man1
|
||||||
|
24
gcc-go-build-static-libgo.patch
Normal file
24
gcc-go-build-static-libgo.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Index: docker/project/make/.dockerinit
|
||||||
|
===================================================================
|
||||||
|
--- docker.orig/project/make/.dockerinit
|
||||||
|
+++ docker/project/make/.dockerinit
|
||||||
|
@@ -3,6 +3,7 @@ set -e
|
||||||
|
|
||||||
|
# dockerinit still needs to be a static binary, even if docker is dynamic
|
||||||
|
go build \
|
||||||
|
+ -gccgoflags="-static-libgo" \
|
||||||
|
-o "$DEST/dockerinit-$VERSION" \
|
||||||
|
"${BUILDFLAGS[@]}" \
|
||||||
|
-ldflags "
|
||||||
|
Index: docker/project/make/binary
|
||||||
|
===================================================================
|
||||||
|
--- docker.orig/project/make/binary
|
||||||
|
+++ docker/project/make/binary
|
||||||
|
@@ -12,6 +12,7 @@ if [[ "$(uname -s)" == CYGWIN* ]]; then
|
||||||
|
fi
|
||||||
|
|
||||||
|
go build \
|
||||||
|
+ -gccgoflags="-static-libgo" \
|
||||||
|
-o "$DEST/$BINARY_FULLNAME" \
|
||||||
|
"${BUILDFLAGS[@]}" \
|
||||||
|
-ldflags "
|
13
ignore-dockerinit-checksum.patch
Normal file
13
ignore-dockerinit-checksum.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: docker/utils/utils.go
|
||||||
|
===================================================================
|
||||||
|
--- docker.orig/utils/utils.go
|
||||||
|
+++ docker/utils/utils.go
|
||||||
|
@@ -111,7 +111,7 @@ func isValidDockerInitPath(target string
|
||||||
|
}
|
||||||
|
return os.SameFile(targetFileInfo, selfPathFileInfo)
|
||||||
|
}
|
||||||
|
- return dockerversion.INITSHA1 != "" && dockerInitSha1(target) == dockerversion.INITSHA1
|
||||||
|
+ return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Figure out the path of our dockerinit (which may be SelfPath())
|
10
sysconfig.docker.ppc64le
Normal file
10
sysconfig.docker.ppc64le
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
|
||||||
|
## Path : System/Management
|
||||||
|
## Description : Extra cli switches for docker daemon
|
||||||
|
## Type : string
|
||||||
|
## Default : ""
|
||||||
|
## ServiceRestart : docker
|
||||||
|
#
|
||||||
|
|
||||||
|
# TODO: remove it once we fix the real issue
|
||||||
|
DOCKER_OPTS=" -iptables=false "
|
Loading…
Reference in New Issue
Block a user