Gentoo Archives: gentoo-commits

From: "Alex Brandt (alunduil)" <alunduil@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in app-emulation/docker: metadata.xml docker-1.7.0.ebuild ChangeLog
Date: Sat, 04 Jul 2015 23:18:51
Message-Id: 20150704231839.CF5EA743@oystercatcher.gentoo.org
1 alunduil 15/07/04 23:18:39
2
3 Modified: metadata.xml ChangeLog
4 Added: docker-1.7.0.ebuild
5 Log:
6 add version 1.7.0
7
8 * from tianon's docker-overlay
9 * fixes bug #553708
10
11 (Portage version: 2.2.20/cvs/Linux x86_64, signed Manifest commit with key 11A8217C!)
12
13 Revision Changes Path
14 1.12 app-emulation/docker/metadata.xml
15
16 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-emulation/docker/metadata.xml?rev=1.12&view=markup
17 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-emulation/docker/metadata.xml?rev=1.12&content-type=text/plain
18 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-emulation/docker/metadata.xml?r1=1.11&r2=1.12
19
20 Index: metadata.xml
21 ===================================================================
22 RCS file: /var/cvsroot/gentoo-x86/app-emulation/docker/metadata.xml,v
23 retrieving revision 1.11
24 retrieving revision 1.12
25 diff -u -r1.11 -r1.12
26 --- metadata.xml 4 Jul 2015 23:10:51 -0000 1.11
27 +++ metadata.xml 4 Jul 2015 23:18:39 -0000 1.12
28 @@ -26,6 +26,9 @@
29 Enables dependencies for the "aufs" graph driver, including
30 necessary kernel flags.
31 </flag>
32 + <flag name="apparmor">
33 + Enable AppArmor support.
34 + </flag>
35 <flag name="btrfs">
36 Enables dependencies for the "btrfs" graph driver, including
37 necessary kernel flags.
38 @@ -37,6 +40,10 @@
39 Enables dependencies for the "devicemapper" graph driver, including
40 necessary kernel flags.
41 </flag>
42 + <flag name="experimental">
43 + Enable features labelled by upstream to be of "experimental"
44 + quality and not yet ready for general consumption.
45 + </flag>
46 <flag name="overlay">
47 Enables dependencies for the "overlay" graph driver, including
48 necessary kernel flags.
49
50
51
52 1.52 app-emulation/docker/ChangeLog
53
54 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-emulation/docker/ChangeLog?rev=1.52&view=markup
55 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-emulation/docker/ChangeLog?rev=1.52&content-type=text/plain
56 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-emulation/docker/ChangeLog?r1=1.51&r2=1.52
57
58 Index: ChangeLog
59 ===================================================================
60 RCS file: /var/cvsroot/gentoo-x86/app-emulation/docker/ChangeLog,v
61 retrieving revision 1.51
62 retrieving revision 1.52
63 diff -u -r1.51 -r1.52
64 --- ChangeLog 4 Jul 2015 23:14:50 -0000 1.51
65 +++ ChangeLog 4 Jul 2015 23:18:39 -0000 1.52
66 @@ -1,6 +1,12 @@
67 # ChangeLog for app-emulation/docker
68 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
69 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/docker/ChangeLog,v 1.51 2015/07/04 23:14:50 alunduil Exp $
70 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/docker/ChangeLog,v 1.52 2015/07/04 23:18:39 alunduil Exp $
71 +
72 +*docker-1.7.0 (04 Jul 2015)
73 +
74 + 04 Jul 2015; Alex Brandt <alunduil@g.o> +docker-1.7.0.ebuild,
75 + files/docker-r2.confd, files/docker.initd, metadata.xml:
76 + add version 1.7.0 * from tianon's docker-overlay * fixes bug #553708
77
78 *docker-1.6.2 (04 Jul 2015)
79
80
81
82
83 1.1 app-emulation/docker/docker-1.7.0.ebuild
84
85 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-emulation/docker/docker-1.7.0.ebuild?rev=1.1&view=markup
86 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-emulation/docker/docker-1.7.0.ebuild?rev=1.1&content-type=text/plain
87
88 Index: docker-1.7.0.ebuild
89 ===================================================================
90 # Copyright 1999-2015 Gentoo Foundation
91 # Distributed under the terms of the GNU General Public License v2
92 # $Header: /var/cvsroot/gentoo-x86/app-emulation/docker/docker-1.7.0.ebuild,v 1.1 2015/07/04 23:18:39 alunduil Exp $
93
94 EAPI=5
95
96 DESCRIPTION="Docker complements kernel namespacing with a high-level API which operates at the process level"
97 HOMEPAGE="https://www.docker.com"
98
99 GITHUB_URI="github.com/docker/docker"
100
101 if [[ ${PV} == *9999 ]]; then
102 SRC_URI=""
103 EGIT_REPO_URI="git://${GITHUB_URI}.git"
104 inherit git-2
105 else
106 MY_PV="${PV/_/-}"
107 MY_P="${PN}-${MY_PV}"
108 SRC_URI="https://${GITHUB_URI}/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
109 S="${WORKDIR}/${MY_P}"
110 DOCKER_GITCOMMIT="0baf609"
111 KEYWORDS="~amd64"
112 [ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!"
113 fi
114
115 inherit bash-completion-r1 linux-info multilib systemd udev user
116
117 LICENSE="Apache-2.0"
118 SLOT="0"
119 IUSE="apparmor aufs btrfs +contrib +device-mapper doc experimental lxc overlay vim-syntax zsh-completion"
120
121 # https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
122 CDEPEND="
123 >=dev-db/sqlite-3.7.9:3
124 device-mapper? (
125 >=sys-fs/lvm2-2.02.89[thin]
126 )
127 "
128
129 DEPEND="
130 ${CDEPEND}
131 >=dev-lang/go-1.4
132 btrfs? (
133 >=sys-fs/btrfs-progs-3.8
134 )
135 "
136
137 # https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#runtime-dependencies
138 # https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#optional-dependencies
139 RDEPEND="
140 ${CDEPEND}
141
142 !app-emulation/docker-bin
143 >=net-firewall/iptables-1.4
144 sys-process/procps
145 >=dev-vcs/git-1.7
146 >=app-arch/xz-utils-4.9
147
148 lxc? (
149 >=app-emulation/lxc-1.0.7
150 )
151 aufs? (
152 || (
153 sys-fs/aufs3
154 sys-fs/aufs4
155 sys-kernel/aufs-sources
156 )
157 )
158
159 apparmor? (
160 sys-libs/libapparmor[static-libs]
161 )
162 "
163
164 RESTRICT="installsources strip"
165
166 # see "contrib/check-config.sh" from upstream's sources
167 CONFIG_CHECK="
168 NAMESPACES NET_NS PID_NS IPC_NS UTS_NS
169 DEVPTS_MULTIPLE_INSTANCES
170 CGROUPS CGROUP_CPUACCT CGROUP_DEVICE CGROUP_FREEZER CGROUP_SCHED CPUSETS
171 MACVLAN VETH BRIDGE
172 NF_NAT_IPV4 IP_NF_FILTER IP_NF_TARGET_MASQUERADE
173 NETFILTER_XT_MATCH_ADDRTYPE NETFILTER_XT_MATCH_CONNTRACK
174 NF_NAT NF_NAT_NEEDED
175
176 POSIX_MQUEUE
177
178 ~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
179 ~RESOURCE_COUNTERS
180 ~CGROUP_PERF
181 ~CFS_BANDWIDTH
182 "
183
184 ERROR_MEMCG_SWAP="CONFIG_MEMCG_SWAP: is required if you wish to limit swap usage of containers"
185 ERROR_RESOURCE_COUNTERS="CONFIG_RESOURCE_COUNTERS: is optional for container statistics gathering"
186 ERROR_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering"
187 ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering"
188
189 pkg_setup() {
190 if kernel_is lt 3 10; then
191 eerror ""
192 eerror "Using Docker with kernels older than 3.10 is unstable and unsupported."
193 eerror " - http://docs.docker.com/installation/binaries/#check-kernel-dependencies"
194 die 'Kernel is too old - need 3.10 or above'
195 fi
196
197 # for where these kernel versions come from, see:
198 # https://www.google.com/search?q=945b2b2d259d1a4364a2799e80e8ff32f8c6ee6f+site%3Akernel.org%2Fpub%2Flinux%2Fkernel+file%3AChangeLog*
199 if ! {
200 kernel_is ge 3 16 \
201 || { kernel_is 3 15 && kernel_is ge 3 15 5; } \
202 || { kernel_is 3 14 && kernel_is ge 3 14 12; } \
203 || { kernel_is 3 12 && kernel_is ge 3 12 25; }
204 }; then
205 ewarn ""
206 ewarn "There is a serious Docker-related kernel panic that has been fixed in 3.16+"
207 ewarn " (and was backported to 3.15.5+, 3.14.12+, and 3.12.25+)"
208 ewarn ""
209 ewarn "See also https://github.com/docker/docker/issues/2960"
210 fi
211
212 if use aufs; then
213 CONFIG_CHECK+="
214 ~AUFS_FS
215 ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
216 "
217 # TODO there must be a way to detect "sys-kernel/aufs-sources" so we don't warn "sys-fs/aufs3" users about this
218 # an even better solution would be to check if the current kernel sources include CONFIG_AUFS_FS as an option, but that sounds hairy and error-prone
219 ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used"
220 fi
221
222 if use btrfs; then
223 CONFIG_CHECK+="
224 ~BTRFS_FS
225 "
226 fi
227
228 if use device-mapper; then
229 CONFIG_CHECK+="
230 ~BLK_DEV_DM ~DM_THIN_PROVISIONING ~EXT4_FS ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
231 "
232 fi
233
234 if use overlay; then
235 CONFIG_CHECK+="
236 ~OVERLAY_FS ~EXT4_FS_SECURITY ~EXT4_FS_POSIX_ACL
237 "
238 fi
239
240 linux-info_pkg_setup
241 }
242
243 src_prepare() {
244 # allow user patches (use sparingly - upstream won't support them)
245 epatch_user
246 }
247
248 src_compile() {
249 # if we treat them right, Docker's build scripts will set up a
250 # reasonable GOPATH for us
251 export AUTO_GOPATH=1
252
253 # setup CFLAGS and LDFLAGS for separate build target
254 # see https://github.com/tianon/docker-overlay/pull/10
255 export CGO_CFLAGS="-I${ROOT}/usr/include"
256 export CGO_LDFLAGS="-L${ROOT}/usr/$(get_libdir)"
257
258 # if we're building from a zip, we need the GITCOMMIT value
259 [ "$DOCKER_GITCOMMIT" ] && export DOCKER_GITCOMMIT
260
261 if gcc-specs-pie; then
262 sed -i "s/EXTLDFLAGS_STATIC='/EXTLDFLAGS_STATIC='-fno-PIC /" hack/make.sh || die
263 grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
264
265 sed -i "s/LDFLAGS_STATIC_DOCKER='/LDFLAGS_STATIC_DOCKER='-extldflags -fno-PIC /" hack/make/dynbinary || die
266 grep -q -- '-fno-PIC' hack/make/dynbinary || die 'hardened sed failed'
267 fi
268
269 # let's set up some optional features :)
270 export DOCKER_BUILDTAGS=''
271 for gd in aufs btrfs device-mapper overlay; do
272 if ! use $gd; then
273 DOCKER_BUILDTAGS+=" exclude_graphdriver_${gd//-/}"
274 fi
275 done
276
277 if use apparmor; then
278 DOCKER_BUILDTAGS+=' apparmor'
279 fi
280
281 # https://github.com/docker/docker/pull/13338
282 if use experimental; then
283 export DOCKER_EXPERIMENTAL=1
284 else
285 unset DOCKER_EXPERIMENTAL
286 fi
287
288 # time to build!
289 ./hack/make.sh dynbinary || die 'dynbinary failed'
290
291 # TODO get go-md2man and then include the man pages using man/md2man-all.sh
292 }
293
294 src_install() {
295 VERSION=$(cat VERSION)
296 newbin bundles/$VERSION/dynbinary/docker-$VERSION docker
297 exeinto /usr/libexec/docker
298 newexe bundles/$VERSION/dynbinary/dockerinit-$VERSION dockerinit
299
300 newinitd contrib/init/openrc/docker.initd docker
301 newconfd contrib/init/openrc/docker.confd docker
302
303 systemd_dounit contrib/init/systemd/docker.{service,socket}
304
305 udev_dorules contrib/udev/*.rules
306
307 dodoc AUTHORS CONTRIBUTING.md CHANGELOG.md NOTICE README.md
308 if use doc; then
309 # TODO doman man/man*/*
310
311 docompress -x /usr/share/doc/${PF}/md
312 docinto md
313 dodoc -r docs/*
314 fi
315
316 dobashcomp contrib/completion/bash/*
317
318 if use zsh-completion; then
319 insinto /usr/share/zsh/site-functions
320 doins contrib/completion/zsh/*
321 fi
322
323 if use vim-syntax; then
324 insinto /usr/share/vim/vimfiles
325 doins -r contrib/syntax/vim/ftdetect
326 doins -r contrib/syntax/vim/syntax
327 fi
328
329 if use contrib; then
330 mkdir -p "${D}/usr/share/${PN}/contrib"
331 cp -R contrib/* "${D}/usr/share/${PN}/contrib"
332 fi
333 }
334
335 pkg_postinst() {
336 udev_reload
337
338 elog ""
339 elog "To use Docker, the Docker daemon must be running as root. To automatically"
340 elog "start the Docker daemon at boot, add Docker to the default runlevel:"
341 elog " rc-update add docker default"
342 elog "Similarly for systemd:"
343 elog " systemctl enable docker.service"
344 elog ""
345
346 # create docker group if the code checking for it in /etc/group exists
347 enewgroup docker
348
349 elog "To use Docker as a non-root user, add yourself to the 'docker' group:"
350 elog " usermod -aG docker youruser"
351 elog ""
352 }