Browse code

Merge pull request #26920 from tophj-ibm/add-1404-make-debs

ppc64le: add files for supporting 14.04 'make debs'

Alexander Morozov authored on 2016/09/27 23:54:57
Showing 3 changed files
... ...
@@ -50,17 +50,40 @@ for version in "${versions[@]}"; do
50 50
 		dh-apparmor # for apparmor debhelper
51 51
 		dh-systemd # for systemd debhelper integration
52 52
 		git # for "git commit" info in "docker -v"
53
-		golang-go # ppc64le needs go to bootstrap go
54 53
 		libapparmor-dev # for "sys/apparmor.h"
55 54
 		libdevmapper-dev # for "libdevmapper.h"
56 55
 		libltdl-dev # for pkcs11 "ltdl.h"
57
-		libseccomp-dev  # for "seccomp.h" & "libseccomp.so"
58 56
 		libsqlite3-dev # for "sqlite3.h"
59
-		libsystemd-dev
60 57
 		pkg-config # for detecting things like libsystemd-journal dynamically
61 58
 	)
62
-	
59
+
60
+	# trusty uses a different go package name then xenial and newer, so track that for later
61
+	goPackage=
62
+	case "$suite" in
63
+		trusty) 
64
+			# ppc64le doesn't have go binaries, so install go to bootstrap go
65
+			# trusty doesn't have a ppc64le golang-go package
66
+			packages+=( golang-1.6 )
67
+			goPackage='golang-1.6'
68
+
69
+			packages+=( libsystemd-journal-dev )
70
+			;;
71
+		*)
72
+			# libseccomp isn't available until ubuntu xenial and is required for "seccomp.h" & "libseccomp.so"
73
+			packages+=( golang-go )
74
+			goPackage='golang-go'
75
+
76
+			packages+=( libseccomp-dev )
77
+			packages+=( libsystemd-dev )
78
+			;;
79
+	esac
80
+
81
+	# buildtags
63 82
 	case "$suite" in
83
+		# trusty has no seccomp package
84
+		trusty)
85
+			runcBuildTags="apparmor selinux"
86
+		;;
64 87
 		# ppc64le support was backported into libseccomp 2.2.3-2,
65 88
 		# so enable seccomp by default
66 89
 		*)
... ...
@@ -89,7 +112,7 @@ for version in "${versions[@]}"; do
89 89
 	echo '	&& tar -C /usr/local -xzf golang.tar.gz \' >> "$version/Dockerfile"
90 90
 	echo '	&& rm golang.tar.gz \' >> "$version/Dockerfile"
91 91
 	echo '	&& cd /usr/local/go/src && ./make.bash 2>&1 \' >> "$version/Dockerfile"
92
-	echo '	&& apt-get purge -y golang-go && apt-get autoremove -y' >> "$version/Dockerfile"
92
+	echo "	&& apt-get purge -y $goPackage && apt-get autoremove -y" >> "$version/Dockerfile"
93 93
 	echo >> "$version/Dockerfile"
94 94
 
95 95
 	echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
96 96
new file mode 100644
... ...
@@ -0,0 +1,24 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/ppc64le/generate.sh"!
2
+#
3
+
4
+FROM ppc64le/ubuntu:trusty
5
+
6
+RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev libsqlite3-dev pkg-config golang-1.6 libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
7
+
8
+ENV GO_VERSION 1.7.1
9
+ENV GO_DOWNLOAD_URL https://golang.org/dl/go${GO_VERSION}.src.tar.gz
10
+ENV GOROOT_BOOTSTRAP /usr/lib/go-1.6
11
+
12
+RUN curl -fsSL "$GO_DOWNLOAD_URL" -o golang.tar.gz \
13
+	&& tar -C /usr/local -xzf golang.tar.gz \
14
+	&& rm golang.tar.gz \
15
+	&& cd /usr/local/go/src && ./make.bash 2>&1 \
16
+	&& apt-get purge -y golang-1.6 && apt-get autoremove -y
17
+
18
+ENV PATH $PATH:/usr/local/go/bin
19
+
20
+ENV AUTO_GOPATH 1
21
+
22
+ENV DOCKER_BUILDTAGS apparmor pkcs11 selinux
23
+ENV RUNC_BUILDTAGS apparmor selinux
... ...
@@ -4,7 +4,7 @@
4 4
 
5 5
 FROM ppc64le/ubuntu:xenial
6 6
 
7
-RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git golang-go libapparmor-dev libdevmapper-dev libltdl-dev libseccomp-dev libsqlite3-dev libsystemd-dev pkg-config --no-install-recommends && rm -rf /var/lib/apt/lists/*
7
+RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev libsqlite3-dev pkg-config golang-go libseccomp-dev libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
8 8
 
9 9
 # Install Go
10 10
 # ppc64le doesn't have official go binaries, so use the version of go installed from the image