aboutsummaryrefslogtreecommitdiffstats
path: root/community/docker/APKBUILD
blob: 370ad1a11ff851b6557c0a5550201d5053de6098 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# Maintainer: Eivind Uggedal <eivind@uggedal.com>
pkgname=docker
pkgver=1.13.0
_ver=${pkgver/_/-}
pkgrel=0
_gitcommit=v$_ver
pkgdesc="Pack, ship and run any application as a lightweight container"
url="http://www.docker.io/"
arch="all"
license="ASL 2.0"
depends="iptables git xz"
depends_dev=""
makedepends="go btrfs-progs-dev bash linux-headers coreutils libseccomp-dev"
options="!strip"
install="$pkgname.pre-install"

# $ grep COMMIT hack/dockerfile/binaries-commits
# TOMLV_COMMIT=9baf8a8a9f2ed20a8e54160840c492f937eeaf9a
# RUNC_COMMIT=2f7393a47307a16f8cee44a37b262e8b81021e3e
# CONTAINERD_COMMIT=03e5862ec0d8d3b3f750e19fca3ee367e13c090e
# TINI_COMMIT=949e6facb77383876aeff8a6944dde66b3089574
# LIBNETWORK_COMMIT=0f534354b813003a754606689722fe253101bc4e
# VNDR_COMMIT=f56bd4504b4fad07a357913687fb652ee54bb3b0

_runc_ver=2f7393a47307a16f8cee44a37b262e8b81021e3e
_containerd_ver=03e5862ec0d8d3b3f750e19fca3ee367e13c090e
_libnetwork_ver=0f534354b813003a754606689722fe253101bc4e

subpackages="
	$pkgname-bash-completion:bashcomp:noarch
	$pkgname-zsh-completion:zshcomp:noarch
	$pkgname-vim:vim:noarch
	"
source="
	$pkgname-$pkgver.tar.gz::https://github.com/docker/docker/archive/v$_ver.tar.gz
	runc-$_runc_ver.tar.gz::https://github.com/opencontainers/runc/archive/$_runc_ver.tar.gz
	containerd-$_containerd_ver.tar.gz::https://github.com/docker/containerd/archive/$_containerd_ver.tar.gz
	libnetwork-$_libnetwork_ver.tar.gz::https://github.com/docker/libnetwork/archive/$_libnetwork_ver.tar.gz

	docker-openrc-fixes.patch
	"

builddir="$srcdir"/$pkgname-$_ver
_buildtags="exclude_graphdriver_aufs exclude_graphdriver_devicemapper"
_runc_buildtags="seccomp"
_runc_builddir="$srcdir"/runc-$_runc_ver

_containerd_builddir="$srcdir"/containerd-$_containerd_ver
_libnetwork_builddir="$srcdir"/libnetwork-$_libnetwork_ver

_apply_patches() {
	local _dir="$1"
	local _prefix="$2"
	local i
	msg "applying patches for $_prefix"
	cd "$_dir"
	for i in $source; do
		case $i in
		${_prefix}-*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
		esac
	done
}

prepare() {
	_apply_patches "$builddir" docker || return 1
	_apply_patches "$_runc_builddir" runc || return 1
}

build() {
	cd "$_runc_builddir"


	cd "$builddir"

	export AUTO_GOPATH=1
	export DOCKER_GITCOMMIT=$_gitcommit
	export DOCKER_BUILDTAGS=$_buildtags
	unset CC # prevent possible ccache issues

	# containerd
	msg "building containerd"
	cd "$_containerd_builddir" || return 1
	mkdir -p src/github.com/docker/
	ln -s "$_containerd_builddir" src/github.com/docker/containerd
	GOPATH="$PWD" LDFLAGS="" make GIT_COMMIT="$_containerd_ver" || return 1

	# libnetwork (docker-proxy)
	msg "building docker-proxy"
	cd "$_libnetwork_builddir" || return 1
	mkdir -p src/github.com/docker/
	ln -s "$_libnetwork_builddir" src/github.com/docker/libnetwork
	GOPATH="$PWD" go build -v -ldflags="-linkmode=external" -o docker-proxy github.com/docker/libnetwork/cmd/proxy || return 1

	# runc
	msg "building runc"
	cd "$_runc_builddir" || return 1
	GOPATH="$PWD" make COMMIT="$_runc_ver" || return 1

	# docker
	msg "building docker"
	cd "$builddir"
	./hack/make.sh dynbinary
}

package() {
	cd "$builddir"
	local ver=$(cat VERSION)

	install -Dm755 bundles/$ver/dynbinary-client/docker-$ver \
		"$pkgdir"/usr/bin/docker || return 1

	install -Dm755 bundles/$ver/dynbinary-daemon/dockerd-$ver \
		"$pkgdir"/usr/bin/dockerd || return 1

	install -Dm755 "$_libnetwork_builddir"/docker-proxy \
		"$pkgdir"/usr/bin/docker-proxy || return 1

	install -Dm755 "$_runc_builddir"/runc \
		"$pkgdir"/usr/bin/docker-runc || return 1

	install -Dm755 "$_containerd_builddir"/bin/containerd \
		"$pkgdir"/usr/bin/docker-containerd || return 1

	install -Dm755 "$_containerd_builddir"/bin/containerd-shim \
		"$pkgdir"/usr/bin/docker-containerd-shim || return 1

	install -Dm755 "$_containerd_builddir"/bin/ctr \
		"$pkgdir"/usr/bin/docker-containerd-ctr || return 1

	install -Dm755 bundles/$ver/dynbinary/dockerinit-$ver \
		"$pkgdir"/usr/lib/docker/dockerinit
	install -Dm755 contrib/init/openrc/docker.initd \
		"$pkgdir"/etc/init.d/docker
	install -Dm644 contrib/init/openrc/docker.confd \
		"$pkgdir"/etc/conf.d/docker
}

bashcomp() {
	pkgdesc="Bash completion for Docker"
	depends=""
	install_if="$pkgname=$pkgver-r$pkgrel bash-completion"

	install -Dm644 "$builddir"/contrib/completion/bash/$pkgname \
		"$subpkgdir"/usr/share/bash-completion/completions/$pkgname
}

zshcomp() {
	pkgdesc="Zsh completion for $pkgname"
	depends=""
	install_if="$pkgname=$pkgver-r$pkgrel zsh"

	install -Dm644 "$builddir"/contrib/completion/zsh/_$pkgname \
		"$subpkgdir"/usr/share/zsh/site-functions/_$pkgname || return 1
}

vim() {
	depends=""
	pkgdesc="Vim syntax for Docker"

	local f=
	for f in ftdetect/dockerfile.vim syntax/dockerfile.vim; do
		install -Dm644 "$builddir"/contrib/syntax/vim/$f \
			"$subpkgdir"/usr/share/vim/vimfiles/$f
	done
}

md5sums="23d3875ac67d5b67dd1918c45ba98537  docker-1.13.0.tar.gz
ab5b858b721b2fc8b581645eb35e3634  runc-2f7393a47307a16f8cee44a37b262e8b81021e3e.tar.gz
72e9315bde0c17f14d8a2fff8e0d2423  containerd-03e5862ec0d8d3b3f750e19fca3ee367e13c090e.tar.gz
7cfbfe76355aae3577c77a6a4b2c92db  libnetwork-0f534354b813003a754606689722fe253101bc4e.tar.gz
a30850bae713fe1e6c54cccb3ab386e8  docker-openrc-fixes.patch"
sha256sums="845cc9a7a48ed1cc60f062882285358a1c2a845b74c5d1d859606a28e4a47d3e  docker-1.13.0.tar.gz
75a702bfe4c3748246921d800c7ab7f9cabf27f69a3b64a2af66becb87d6acf7  runc-2f7393a47307a16f8cee44a37b262e8b81021e3e.tar.gz
4abef872caf1f927f1f99af5b303c53acbb2fecfd9b30887fdaa540df192f47e  containerd-03e5862ec0d8d3b3f750e19fca3ee367e13c090e.tar.gz
823f6601361b02ae6a00bfc416b0286629dbf794d36fb65ba1d88eaa379f397b  libnetwork-0f534354b813003a754606689722fe253101bc4e.tar.gz
1023d0e8683add5d29f1bf296810486e825c3cf774056b15049158c9dc134e04  docker-openrc-fixes.patch"
sha512sums="c5531f0c4bfeb541a4bf9b324830afaa27edb99f34990bdfa588843baa169edb1c2d545452ee8074a1ac322e7788952eb369db884c015e29763247e1e023172c  docker-1.13.0.tar.gz
2c2c925a1274eaef16d54881bfaa3e535956b67dd10eed87096ae9e7576234ff3598d37e635d3ce88c10fa9d102e79300bd48b69b972b6082f7acbfe2d4e90ea  runc-2f7393a47307a16f8cee44a37b262e8b81021e3e.tar.gz
7c320a8f8fc12ae74ccda00d0f2f45f66d7592b5d209a62553cff3463a6006d8ad0275e0ae4ef07879455a32767f1d33f8f0f34392d28be4e6c217eee0f36ca3  containerd-03e5862ec0d8d3b3f750e19fca3ee367e13c090e.tar.gz
754cf6489968f3a83392c52b9445f71e8d5faca96e23ffc3ee2c6e8644bf065b64c7497395cf8fac9cc083ce9c7668260e319d01a8f10613e67db2d8254f6b06  libnetwork-0f534354b813003a754606689722fe253101bc4e.tar.gz
8296b1bc88ef3dec4f9038c4e0bf83120ac5870860f6662eac9f9f8850ea8b7596bcd2b47932551e804ae8b6f6f26ad3bc4ce6d49600cc8eaf0a3016c15a9ccf  docker-openrc-fixes.patch"