Hello community, here is the log from the commit of package docker for openSUSE:Factory checked in at 2016-09-21 18:49:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/docker (Old) and /work/SRC/openSUSE:Factory/.docker.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "docker" Changes: -------- --- /work/SRC/openSUSE:Factory/docker/docker.changes 2016-08-17 12:06:02.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.docker.new/docker.changes 2016-09-21 18:49:53.000000000 +0200 @@ -1,0 +2,125 @@ +Mon Sep 19 11:56:15 UTC 2016 - [email protected] + +- fix go_arches definition: use global instead of define, otherwise + it fails to build + +------------------------------------------------------------------- +Wed Sep 14 09:41:57 UTC 2016 - [email protected] + +- Add dockerd(8) man page. + +------------------------------------------------------------------- +Fri Sep 9 12:42:24 UTC 2016 - [email protected] + +- add missing patch to changelog + +------------------------------------------------------------------- +Wed Sep 7 16:33:59 UTC 2016 - [email protected] + +- fix integration test case +- add integration-cli-fix-TestInfoEnsureSucceeds.patch + +------------------------------------------------------------------- +Tue Sep 6 13:28:38 UTC 2016 - [email protected] + +- update rpmlintrc + +------------------------------------------------------------------- +Fri Sep 2 12:02:23 UTC 2016 - [email protected] + +- make test timeout configurable + +------------------------------------------------------------------- +Fri Sep 2 10:25:27 UTC 2016 - [email protected] + +- Remove noarch from docker-test, which was causing lots of fun issues when + trying to run them. + +------------------------------------------------------------------- +Tue Aug 30 09:07:19 UTC 2016 - [email protected] + +- Fix build for ppc64le: use static libgo for dockerd and docker-proxy + as in docker build. + +------------------------------------------------------------------- +Mon Aug 29 12:11:21 UTC 2016 - [email protected] + +- Update docker to 1.12.1 (bsc#996015) + + see changelog in https://github.com/docker/docker/releases/tag/v1.12.1 + +------------------------------------------------------------------- +Fri Aug 26 12:02:35 UTC 2016 - [email protected] + +- Add [email protected]'s test.sh test script. +- Add integration test binary in docker.spec file. This is work done by + [email protected]. + +------------------------------------------------------------------- +Fri Aug 26 10:43:38 UTC 2016 - [email protected] + +- Package docker-proxy (which was split out of the docker binary in 1.12). + boo#995620 + +------------------------------------------------------------------- +Fri Aug 26 10:00:36 UTC 2016 - [email protected] + +- fix bsc#995102 - Docker "migrator" prevents installing "docker", + if docker 1.9 was installed before but there were no images + +------------------------------------------------------------------- +Fri Aug 26 08:49:15 UTC 2016 - [email protected] + +- Update docker.service file with several changes. + * Reapply fix for bsc#983015 (Limit*=infinity). + * Specify an "OCI" runtime for our runc package explicitly. bsc#978260 + +------------------------------------------------------------------- +Thu Aug 25 14:02:04 UTC 2016 - [email protected] + +- remove disable-pprof-trace.patch: We can remove this patch because + we use go 1.6, either gcc6-go or gc-go. This patch was for gcc5-go + +------------------------------------------------------------------- +Wed Aug 24 12:31:23 UTC 2016 - [email protected] + +- add go_arches in project configuration: this way, we can use the + same spec file but decide in the project configuration if to + use gc-go or gcc-go for some archs. + +------------------------------------------------------------------- +Tue Aug 23 11:35:09 UTC 2016 - [email protected] + +- use gcc6-go instead of gcc5-go (bsc#988408) +- build ppc64le with gc-go because this version builds with gc-go 1.6 +- remove bnc964673-boltdb-metadata-recovery.patch because it has already + been merged + +------------------------------------------------------------------- +Tue Aug 23 11:34:09 UTC 2016 - [email protected] + +- update to v1.12.0 (bsc#995058) + see detailed changelog at + https://github.com/docker/docker/releases/tag/v1.12.0 +- disable test that fail in obs build context +- only run unit tests on architectures that provide the go list and go test + tools +- disable dockerd, parser, integration test, and devicemapper related tests + on versions below SLE12 and openSUSE_13.2 +- bump test timeout to 10m (for aarch64) +- run unit tests during the build +- Adapt docker.service file. +- adapt install sections for gccgo builds: gccgo build are not built in separate + folders for client and daemon. They both reside in dyngccgo. +- gcc-go-patch: link against systemd when compiling the daemon. +- Add disable-pprof-trace.patch + pprof.Trace() is not available in go version <= 1.4 which we use to build SLES + packages. This patch comments out the pprof.Trace() section. +- update gcc-go-patch and docker-mount-secrets.patch + +------------------------------------------------------------------- +Tue Aug 23 11:34:09 UTC 2016 - [email protected] + +- Fixed binary split, install both required binaries correctly + +------------------------------------------------------------------- Old: ---- bnc964673-boltdb-metadata-recovery.patch docker-1.11.2.tar.xz New: ---- docker-1.12.1.tar.xz integration-cli-fix-TestInfoEnsureSucceeds.patch tests.sh ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ docker.spec ++++++ --- /var/tmp/diff_new_pack.2SOCpZ/_old 2016-09-21 18:49:55.000000000 +0200 +++ /var/tmp/diff_new_pack.2SOCpZ/_new 2016-09-21 18:49:55.000000000 +0200 @@ -17,13 +17,27 @@ # nodebuginfo +# Check if go_arches is defined in the project configuration +# Otherwise, define it here +# In order to define it in the project configuration, see +# +# https://en.opensuse.org/openSUSE:Build%20Service%20prjconf#Macros +# +# The Macros tag is the one that defines the go_arches variable to be used +# in the spec file. +# The "define" one is to help the specfile parser of the buildservice +# to see what packages are being built. You also want to define it here +# for keeping things consistent. + +%{!?go_arches: %global go_arches %ix86 x86_64 aarch64 ppc64le} + %global docker_store %{_localstatedir}/lib/docker %global docker_migration_testfile %{docker_store}/.suse-image-migration-v1to2-complete %global docker_migration_warnfile %{docker_store}/docker-update-message.txt %define docker_graph %{docker_store}/graph -%define git_version 9e83765 -%define go_arches %ix86 x86_64 aarch64 -%define version_unconverted 1.11.2 +%define git_version 8eab29e +%define version_unconverted 1.12.1 +%define docker_version 1.12.1 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true # When upgrading to a new version requires the service not to be restarted # Due to a long migration process update last_migration_version to the new version @@ -31,7 +45,7 @@ # 1.10.1 %global last_migration_version 1.10.1 Name: docker -Version: 1.11.2 +Version: 1.12.1 Release: 0 Summary: The Linux container runtime License: Apache-2.0 @@ -45,15 +59,13 @@ Source7: README_SUSE.md Source8: docker-audit.rules Source9: docker-update-message.txt -# Required to overcome some limitations of gcc-go: https://groups.google.com/forum/#!msg/golang-nuts/SlGCPYkjxo4/4DjcjXRCqAkJ -Patch101: gcc-go-patches.patch -Patch102: netlink_gcc_go.patch -Patch103: netlink_netns_powerpc.patch +Source10: tests.sh +# Fixes for architecture-specific issues (gcc-go). +Patch100: gcc-go-patches.patch +Patch101: netlink_gcc_go.patch +Patch102: netlink_netns_powerpc.patch Patch200: docker-mount-secrets.patch -# This fixes bnc#964673. This fix is in boltdb upstream, but has yet to be -# merged into Docker (in a vendor commit). This patch was cherry-picked from -# bolt#555. -Patch302: bnc964673-boltdb-metadata-recovery.patch +Patch300: integration-cli-fix-TestInfoEnsureSucceeds.patch BuildRequires: audit BuildRequires: bash-completion BuildRequires: device-mapper-devel >= 1.2.68 @@ -71,8 +83,8 @@ # execdrivers of Docker. NOTE: The version pinning here matches upstream's # Dockerfile to ensure that we don't use a slightly incompatible version of # runC or containerd (which would be bad). -Requires: containerd = 0.2.2 -Requires: runc = 0.1.1 +Requires: containerd = 0.2.3 +Requires: runc = 0.1.1+gitcc29e3d # Provides mkfs.ext4 - used by Docker when devicemapper storage driver is used Requires: e2fsprogs Requires: git-core >= 1.7 @@ -98,7 +110,7 @@ BuildRequires: go >= 1.5 BuildRequires: go-go-md2man %else -BuildRequires: gcc5-go >= 5.0 +BuildRequires: gcc6-go >= 6.1 %endif %if 0%{?is_opensuse} ExcludeArch: s390x @@ -146,11 +158,10 @@ Requires: libbtrfs-devel >= 3.8 Requires: procps Requires: sqlite3-devel -BuildArch: noarch %ifarch %{go_arches} Requires: go >= 1.4 %else -Requires: gcc5-go >= 5.0 +Requires: gcc6-go >= 6.1 %endif %description test @@ -164,20 +175,20 @@ %patch200 -p1 %endif %ifnarch %{go_arches} +%patch100 -p1 %patch101 -p1 %patch102 -p1 -%patch103 -p1 %endif -# bnc#964673 -%patch302 -p1 +%patch300 -p1 cp %{SOURCE7} . +cp %{SOURCE10} . %build %ifnarch %{go_arches} tmphack=/tmp/dirty-hack [ -e $tmphack ] && rm -rf $tmphack mkdir $tmphack -ln -s %{_bindir}/go-5 $tmphack/go +ln -s %{_bindir}/go-6 $tmphack/go export PATH=$tmphack:$PATH %endif @@ -196,26 +207,111 @@ ./hack/make.sh dyngccgo %endif +# build the tests binary +GOPATH=$(pwd)/vendor:$(pwd)/.gopath/ go test \ + -tags "$DOCKER_BUILDTAGS daemon autogen" \ + -c github.com/docker/docker/integration-cli -o tests.main + # remove other than systemd # otherwise the resulting package will have extra requires rm -rf hack/make/.build-deb +%ifarch %go_arches +%check +. ./docker_build_env + +# go test will look in github.com/docker/docker/vendor for vendored packages but +# Docker keeps them in github.com/docker/docker/vendor/src. Let's do it like +# Docker does it and append github.com/docker/docker/vendor to the GOPATH so the +# packages are found by go test. +export GOPATH=$HOME/go/src/github.com/docker/docker/vendor:$GOPATH + +# Create or dir if it doesn't exist already +mkdir -p $HOME/go/src/github.com/docker + +# Remove any existing symlinks. +rm -rf $HOME/go/src/github.com/docker/* + +# go list -e ... doesn't seem to work with symlinks so do a full copy instead. +cp -avr %{buildroot}/usr/src/%{name} $HOME/go/src/github.com/docker/docker + +cd $HOME/go/src/github.com/docker/docker + +# Note that these commands do not allow %%elseif. +# For versions equal to or below SLE12 && openSUSE_13.2 libdevmapper.h is not +# recent enough to define dm_task_deferred_remove(). (This is not true of +# SLE12_SP1 but we cannot distinguish it with this macro.) +EXCLUDE_TAGS= +%if 0%{?suse_version} <= 1320 + EXCLUDE_TAGS="libdm_no_deferred_remove $EXCLUDE_TAGS" +%endif + +# The command is taken from hack/make/test-unit and various test runs. +# Everything that follows github.com/docker/pkg/integration-cli are packages +# containing tests that cannot run in an obs build context. +PKG_LIST=$(go list -e \ + -f '{{if ne .Name "github.com/docker/docker"}} {{.ImportPath}} + {{end}}' \ + -tags $EXCLUDE_TAGS \ + -a "${BUILDFLAGS[@]}" ... \ + | grep 'github.com/docker/docker' \ + | grep -v 'github.com/docker/docker/vendor' \ + | grep -v 'github.com/docker/docker/integration-cli' \ + | grep -v 'github.com/docker/docker/pkg/archive$' \ + | grep -v 'github.com/docker/docker/pkg/chrootarchive$' \ + | grep -v 'github.com/docker/docker/pkg/gitutils$' \ + | grep -v 'github.com/docker/docker/pkg/idtools$' \ + | grep -v 'github.com/docker/docker/pkg/jsonlog$' \ + | grep -v 'github.com/docker/docker/pkg/mount$' \ + | grep -v 'github.com/docker/docker/pkg/sysinfo$' \ + | grep -v 'github.com/docker/docker/registry$' \ + | grep -v 'github.com/docker/docker/volume/local$' \ + | grep -v 'github.com/docker/docker/builder$' \ + | grep -v 'github.com/docker/docker/daemon$' \ + | grep -v 'github.com/docker/docker/daemon/graphdriver/btrfs$' \ + | grep -v 'github.com/docker/docker/daemon/graphdriver/devmapper$' \ + | grep -v 'github.com/docker/docker/daemon/graphdriver/vfs$' \ + | grep -v 'github.com/docker/docker/builder/dockerfile$' \ + | grep -v 'github.com/docker/docker/cmd/dockerd$' \ + | grep -v 'github.com/docker/docker/builder/dockerfile/parser$' \ + | grep -v 'github.com/docker/docker/man$' \ + | grep -v 'github.com/docker/docker/pkg/integration$') + +go test -cover -ldflags -w -tags $EXCLUDE_TAGS -a -test.timeout=10m $PKG_LIST +%endif + %install install -d %{buildroot}%{go_contribdir} install -d %{buildroot}%{_bindir} %ifarch %{go_arches} -install -D -m755 bundles/%{version}/dynbinary/%{name}-%{version} %{buildroot}/%{_bindir}/%{name} +install -D -m755 bundles/latest/dynbinary-client/%{name} %{buildroot}/%{_bindir}/%{name} +install -D -m755 bundles/latest/dynbinary-daemon/%{name}d %{buildroot}/%{_bindir}/%{name}d +install -D -m755 bundles/latest/dynbinary-daemon/%{name}-proxy %{buildroot}/%{_bindir}/%{name}-proxy %else -install -D -m755 bundles/%{version}/dyngccgo/%{name}-%{version} %{buildroot}/%{_bindir}/%{name} +install -D -m755 bundles/latest/dyngccgo/%{name} %{buildroot}/%{_bindir}/%{name} +install -D -m755 bundles/latest/dyngccgo/%{name}d %{buildroot}/%{_bindir}/%{name}d +install -D -m755 bundles/latest/dyngccgo/%{name}-proxy %{buildroot}/%{_bindir}/%{name}-proxy %endif install -d %{buildroot}/%{_prefix}/lib/docker -install -Dd -m 0755 %{buildroot}%{_sbindir} +install -Dd -m 0755 \ + %{buildroot}%{_sysconfdir}/init.d \ + %{buildroot}%{_sbindir} install -D -m0644 contrib/completion/bash/docker "%{buildroot}%{_sysconfdir}/bash_completion.d/%{name}" install -D -m0644 contrib/completion/zsh/_docker "%{buildroot}%{_sysconfdir}/zsh_completion.d/%{name}" # copy all for the test package install -d %{buildroot}%{_prefix}/src/docker/ cp -av . %{buildroot}%{_prefix}/src/docker/ +cp -av contrib %{buildroot}%{_prefix}/src/docker/ +cp -av hack %{buildroot}%{_prefix}/src/docker/ +cp -av integration-cli %{buildroot}%{_prefix}/src/docker/ +cp -av VERSION Dockerfile %{buildroot}%{_prefix}/src/docker/ +cp -av tests.main tests.sh %{buildroot}%{_prefix}/src/docker/hack/ + +# clean some things we don't need in the test package +(cd %{buildroot}%{_prefix}/src/docker/contrib && rm -rf builder completion desktop-integration init mkimage* syntax vagrant-docker) +(cd %{buildroot}%{_prefix}/src/docker/hack && rm -rf Jenkins dind generate-authors.sh install.sh make.sh release.sh vendor.sh .vendor-helpers.sh) +(cd %{buildroot}%{_prefix}/src/docker/integration-cli && rm -rf *.go) # # systemd service @@ -242,6 +338,8 @@ install -p -m 644 man/man1/*.1 %{buildroot}%{_mandir}/man1 install -d %{buildroot}%{_mandir}/man5 install -p -m 644 man/man5/Dockerfile.5 %{buildroot}%{_mandir}/man5 +install -d %{buildroot}%{_mandir}/man8 +install -p -m 644 man/man8/*.8 %{buildroot}%{_mandir}/man8 %endif install -D -m 0644 %{SOURCE9} %{buildroot}%{docker_migration_warnfile} @@ -257,7 +355,7 @@ # will stick around if it has been migrated -- which is why we need the # MIGRATION_TESTFILE check). # 4. Check that there are images in the graph/ directory. -if [[ -d "%{docker_store}" && -n "$(find "%{docker_store}" -maxdepth 1 -type d 2>/dev/null | grep -Ev '_tmp|^%{docker_store}$')" ]]; then +if [[ -d "%{docker_store}" && -n "$(find "%{docker_graph}" -maxdepth 1 -type d 2>/dev/null | grep -Ev '_tmp|^%{docker_graph}$')" ]]; then # Check if currently installed version of docker is old enough to need migration. CURRENT_DOCKER_VERSION=$(docker -v | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/') # This variable will contain the current docker version if migration is needed otherwise it will contain the upgrade point. @@ -297,6 +395,8 @@ %defattr(-,root,root) %doc README.md LICENSE README_SUSE.md %{_bindir}/docker +%{_bindir}/dockerd +%{_bindir}/docker-proxy %{_sbindir}/rcdocker %{_libexecdir}/docker/ %{_unitdir}/%{name}.service @@ -309,6 +409,7 @@ %{_mandir}/man1/docker-*.1%{ext_man} %{_mandir}/man1/docker.1%{ext_man} %{_mandir}/man5/Dockerfile.5%{ext_man} +%{_mandir}/man8/dockerd.8%{ext_man} %endif %files bash-completion ++++++ _service ++++++ --- /var/tmp/diff_new_pack.2SOCpZ/_old 2016-09-21 18:49:55.000000000 +0200 +++ /var/tmp/diff_new_pack.2SOCpZ/_new 2016-09-21 18:49:55.000000000 +0200 @@ -3,8 +3,8 @@ <param name="url">https://github.com/docker/docker.git</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="versionformat">1.11.2</param> - <param name="revision">v1.11.2</param> + <param name="versionformat">1.12.1</param> + <param name="revision">v1.12.1</param> </service> <service name="recompress" mode="disabled"> <param name="file">docker-*.tar</param> ++++++ docker-1.11.2.tar.xz -> docker-1.12.1.tar.xz ++++++ /work/SRC/openSUSE:Factory/docker/docker-1.11.2.tar.xz /work/SRC/openSUSE:Factory/.docker.new/docker-1.12.1.tar.xz differ: char 25, line 1 ++++++ docker-mount-secrets.patch ++++++ --- /var/tmp/diff_new_pack.2SOCpZ/_old 2016-09-21 18:49:55.000000000 +0200 +++ /var/tmp/diff_new_pack.2SOCpZ/_new 2016-09-21 18:49:55.000000000 +0200 @@ -21,10 +21,10 @@ 6 files changed, 314 insertions(+), 2 deletions(-) create mode 100644 daemon/suse_secrets.go -Index: docker-1.11.0/container/container_unix.go -=================================================================== ---- docker-1.11.0.orig/container/container_unix.go -+++ docker-1.11.0/container/container_unix.go +diff --git a/container/container_unix.go b/container/container_unix.go +index 8273bdb..d86d783 100644 +--- a/container/container_unix.go ++++ b/container/container_unix.go @@ -34,6 +34,8 @@ type Container struct { HostsPath string ShmPath string @@ -34,7 +34,7 @@ SeccompProfile string NoNewPrivileges bool } -@@ -243,6 +245,67 @@ func (container *Container) IpcMounts() +@@ -243,6 +245,67 @@ func (container *Container) IpcMounts() []Mount { return mounts } @@ -102,11 +102,11 @@ // UpdateContainer updates configuration of a container. func (container *Container) UpdateContainer(hostConfig *containertypes.HostConfig) error { container.Lock() -Index: docker-1.11.0/daemon/container_operations_unix.go -=================================================================== ---- docker-1.11.0.orig/daemon/container_operations_unix.go -+++ docker-1.11.0/daemon/container_operations_unix.go -@@ -182,6 +182,56 @@ func (daemon *Daemon) getIpcContainer(co +diff --git a/daemon/container_operations_unix.go b/daemon/container_operations_unix.go +index c8a0b93..036c65a 100644 +--- a/daemon/container_operations_unix.go ++++ b/daemon/container_operations_unix.go +@@ -168,6 +168,56 @@ func (daemon *Daemon) getIpcContainer(container *container.Container) (*containe return c, nil } @@ -163,11 +163,11 @@ func (daemon *Daemon) setupIpcDirs(c *container.Container) error { var err error -Index: docker-1.11.0/daemon/daemon_unix.go -=================================================================== ---- docker-1.11.0.orig/daemon/daemon_unix.go -+++ docker-1.11.0/daemon/daemon_unix.go -@@ -786,8 +786,10 @@ func initBridgeDriver(controller libnetw +diff --git a/daemon/daemon_unix.go b/daemon/daemon_unix.go +index 9e231c5..1138c9a 100644 +--- a/daemon/daemon_unix.go ++++ b/daemon/daemon_unix.go +@@ -795,8 +795,10 @@ func initBridgeDriver(controller libnetwork.NetworkController, config *Config) e // the container from unwanted side-effects on the rw layer. func setupInitLayer(initLayer string, rootUID, rootGID int) error { for pth, typ := range map[string]string{ @@ -180,35 +180,35 @@ "/proc": "dir", "/sys": "dir", "/.dockerenv": "file", -Index: docker-1.11.0/daemon/oci_linux.go -=================================================================== ---- docker-1.11.0.orig/daemon/oci_linux.go -+++ docker-1.11.0/daemon/oci_linux.go -@@ -634,12 +634,19 @@ func (daemon *Daemon) createSpec(c *cont +diff --git a/daemon/oci_linux.go b/daemon/oci_linux.go +index e238640..0d8bb47 100644 +--- a/daemon/oci_linux.go ++++ b/daemon/oci_linux.go +@@ -655,6 +655,10 @@ func (daemon *Daemon) createSpec(c *container.Container) (*libcontainerd.Spec, e + if err := daemon.setupIpcDirs(c); err != nil { return nil, err } - + // SUSE:secrets :: We need to set up the container-specific secrets tmpfs here. + if err := daemon.setupSuseSecrets(c); err != nil { + return nil, err + } -+ - mounts, err := daemon.setupMounts(c) + + ms, err := daemon.setupMounts(c) if err != nil { - return nil, err +@@ -662,6 +666,8 @@ func (daemon *Daemon) createSpec(c *container.Container) (*libcontainerd.Spec, e } - mounts = append(mounts, c.IpcMounts()...) - mounts = append(mounts, c.TmpfsMounts()...) + ms = append(ms, c.IpcMounts()...) + ms = append(ms, c.TmpfsMounts()...) + // SUSE:secrets :: We add the mounts to the OCI config which containerd then uses. -+ mounts = append(mounts, c.SuseSecretMounts()...) - if err := setMounts(daemon, &s, c, mounts); err != nil { ++ ms = append(ms, c.SuseSecretMounts()...) + sort.Sort(mounts(ms)) + if err := setMounts(daemon, &s, c, ms); err != nil { return nil, fmt.Errorf("linux mounts: %v", err) - } -Index: docker-1.11.0/daemon/start.go -=================================================================== ---- docker-1.11.0.orig/daemon/start.go -+++ docker-1.11.0/daemon/start.go -@@ -164,6 +164,12 @@ func (daemon *Daemon) Cleanup(container +diff --git a/daemon/start.go b/daemon/start.go +index 4862969..6d3b56e 100644 +--- a/daemon/start.go ++++ b/daemon/start.go +@@ -164,6 +164,12 @@ func (daemon *Daemon) Cleanup(container *container.Container) { container.UnmountIpcMounts(detachMounted) @@ -221,10 +221,11 @@ if err := daemon.conditionalUnmountOnCleanup(container); err != nil { // FIXME: remove once reference counting for graphdrivers has been refactored // Ensure that all the mounts are gone -Index: docker-1.11.0/daemon/suse_secrets.go -=================================================================== +diff --git a/daemon/suse_secrets.go b/daemon/suse_secrets.go +new file mode 100644 +index 0000000..417a1a9 --- /dev/null -+++ docker-1.11.0/daemon/suse_secrets.go ++++ b/daemon/suse_secrets.go @@ -0,0 +1,184 @@ +package daemon + @@ -410,3 +411,6 @@ + + return secrets, nil +} +-- +2.8.1 + ++++++ docker-rpmlintrc ++++++ --- /var/tmp/diff_new_pack.2SOCpZ/_old 2016-09-21 18:49:55.000000000 +0200 +++ /var/tmp/diff_new_pack.2SOCpZ/_new 2016-09-21 18:49:55.000000000 +0200 @@ -4,5 +4,4 @@ addFilter ("^docker.x86_64: W: unstripped-binary-or-object /usr/lib/docker/dockerinit") addFilter ("^docker.x86_64: W: no-manual-page-for-binary docker") addFilter ("^docker.x86_64: W: no-manual-page-for-binary nsinit") -addFilter ("^docker-test.noarch: W:.*") -addFilter ("^docker-test.noarch: E:.*") +addFilter ("^docker-test.*") ++++++ docker.service ++++++ --- /var/tmp/diff_new_pack.2SOCpZ/_old 2016-09-21 18:49:55.000000000 +0200 +++ /var/tmp/diff_new_pack.2SOCpZ/_new 2016-09-21 18:49:55.000000000 +0200 @@ -6,20 +6,35 @@ [Service] EnvironmentFile=/etc/sysconfig/docker -ExecStart=/usr/bin/docker daemon -H fd:// --containerd /run/containerd/containerd.sock $DOCKER_NETWORK_OPTIONS $DOCKER_OPTS + +# Quick rundown of options, so we can keep track of them. Upstream's +# service file only contains -H. +# +# * -H tells Docker that it's running as a socket-activated service. +# * --containerd tells Docker to not manage the running of containerd. +# * --add-runtime and --default-runtime tell Docker to not try to use +# its "bundled" runC version (which is not shipped by us) but rather use +# the runC version provided as by the runc package. +ExecStart=/usr/bin/dockerd -H fd:// --containerd /run/containerd/containerd.sock --add-runtime oci=/usr/sbin/runc --default-runtime oci $DOCKER_NETWORK_OPTIONS $DOCKER_OPTS ExecReload=/bin/kill -s HUP $MAINPID + # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity + # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this property. #TasksMax=infinity + # Set delegate yes so that systemd does not reset the cgroups of docker containers # Only systemd 218 and above support this property. #Delegate=yes -# KillMode=process is not necessary because of how we set up containerd. + +# Tis is not necessary because of how we set up containerd. +#KillMode=process [Install] WantedBy=multi-user.target + ++++++ gcc-go-patches.patch ++++++ --- /var/tmp/diff_new_pack.2SOCpZ/_old 2016-09-21 18:49:55.000000000 +0200 +++ /var/tmp/diff_new_pack.2SOCpZ/_new 2016-09-21 18:49:55.000000000 +0200 @@ -1,24 +1,47 @@ diff --git a/hack/make/gccgo b/hack/make/gccgo -index 878c814..84b7f69 100644 +index 54c983e..1c11bbf 100644 --- a/hack/make/gccgo +++ b/hack/make/gccgo @@ -1,5 +1,5 @@ #!/bin/bash -set -e +set -ex - - BINARY_NAME="docker-$VERSION" + + BINARY_NAME="dockerd-$VERSION" BINARY_EXTENSION="$(binary_extension)" -@@ -16,9 +16,11 @@ go build -compiler=gccgo \ +@@ -22,9 +22,11 @@ go build -compiler=gccgo \ "${BUILDFLAGS[@]}" \ -gccgoflags " -g -+ -Wl,--add-needed -Wl,--no-as-needed ++ -Wl,--add-needed -Wl,--no-as-needed $EXTLDFLAGS_STATIC -+ -static-libgo ++ -static-libgo -Wl,--no-export-dynamic - -ldl + -ldl -lselinux -lsystemd -pthread " \ - ./docker + ./cmd/dockerd +@@ -37,7 +39,9 @@ go build -compiler=gccgo \ + "${BUILDFLAGS[@]}" \ + -gccgoflags " + -g ++ -Wl,--add-needed -Wl,--no-as-needed + $EXTLDFLAGS_STATIC ++ -static-libgo + -Wl,--no-export-dynamic + -ldl + -pthread +@@ -55,9 +59,11 @@ go build -compiler=gccgo \ + "${BUILDFLAGS[@]}" \ + -gccgoflags " + -g ++ -Wl,--add-needed -Wl,--no-as-needed + $EXTLDFLAGS_STATIC ++ -static-libgo + -Wl,--no-export-dynamic +- -ldl ++ -ldl -lselinux -lsystemd + -pthread + " \ + ./cmd/docker ++++++ integration-cli-fix-TestInfoEnsureSucceeds.patch ++++++ >From 0f0c0fcb5b956782385e25c7c6c625e6c79ac78f Mon Sep 17 00:00:00 2001 From: Thomas Hipp <[email protected]> Date: Wed, 7 Sep 2016 10:54:09 +0200 Subject: [PATCH] integration-cli: fix TestInfoEnsureSucceeds Signed-off-by: Thomas Hipp <[email protected]> --- integration-cli/docker_cli_info_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration-cli/docker_cli_info_test.go b/integration-cli/docker_cli_info_test.go index a48e69a..c265a36 100644 --- a/integration-cli/docker_cli_info_test.go +++ b/integration-cli/docker_cli_info_test.go @@ -36,7 +36,7 @@ func (s *DockerSuite) TestInfoEnsureSucceeds(c *check.C) { } if DaemonIsLinux.Condition() { - stringsToCheck = append(stringsToCheck, "Runtimes:", "Default Runtime: runc") + stringsToCheck = append(stringsToCheck, "Runtimes:", "Default Runtime: oci") } if utils.ExperimentalBuild() { -- 2.9.3 ++++++ sysconfig.docker ++++++ --- /var/tmp/diff_new_pack.2SOCpZ/_old 2016-09-21 18:49:55.000000000 +0200 +++ /var/tmp/diff_new_pack.2SOCpZ/_new 2016-09-21 18:49:55.000000000 +0200 @@ -6,5 +6,3 @@ ## ServiceRestart : docker # DOCKER_OPTS="" - -DOCKER_NETWORK_OPTIONS="" ++++++ tests.sh ++++++ #!/bin/bash # # Script for launching the Docker integration tests # #set -x SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DOCKER_DIR=/usr/src/docker SCRIPTS_DIR=$DOCKER_DIR/hack TESTS_EXE=$SCRIPTS_DIR/tests.main VERSION=$(cat $DOCKER_DIR/VERSION) # working dirs TESTS_DIR=/tmp/docker-int-tests BUNDLES_DIR=$TESTS_DIR/run/bundles FAKE_GOPATH=$TESTS_DIR/go # some test expect the containerd socket here CONTAINERD_SOCK=/run/containerd/containerd.sock EXPECTED_CONTAINERD_SOCK=/var/run/docker/libcontainerd/docker-containerd.sock # ... and some programs CONTAINERD_CTR=/usr/sbin/containerd-ctr EXPECTED_CONTAINERD_CTR=/usr/local/bin/docker-containerd-ctr CHECK_TIMEOUT="${CHECK_TIMEOUT:-5m}" TEST_TIMEOUT="${TEST_TIMEOUT:-60m}" TEST_ARGS="-check.vv -check.timeout=${CHECK_TIMEOUT} -test.timeout=${TEST_TIMEOUT}" TEST_SELECT= TEST_LOG=/tmp/docker-tests.log ENABLE_XUNIT=${ENABLE_XUNIT:-yes} # the sysconfig file for Docker SYSCFG_DOCKER=/etc/sysconfig/docker # some vars from the Dockerfile ENABLE_NOTARY=${ENABLE_NOTARY:-} ENABLE_REGISTRY=${ENABLE_REGISTRY:-} REGISTRY_COMMIT_SCHEMA1=ec87e9b6971d831f0eff752ddb54fb64693e51cd REGISTRY_COMMIT=47a064d4195a9b56133891bbb13620c3ac83a827 NOTARY_VERSION=v0.3.0 ################################################################################ log() { echo ">>> $@" ; } warn() { log "WARNING: $@" ; } error() { log "ERROR: $@" ; } abort() { log "FATAL: $@" ; exit 1 ; } usage() { echo "$USAGE" ; } abort_usage() { usage ; abort $@ ; } bundle() { local bundle="$1"; shift log "Making bundle: $(basename "$bundle") (in $DEST)" source "$SCRIPTS_DIR/make/$bundle" "$@" } set_opts() { OPT="$1" VALUE="$2" FILE=$3 perl -pi -e "s/^$OPT=.*$//g" $FILE echo "$OPT=\"$VALUE\"" >> $FILE } set_docker_opts() { set_opts "DOCKER_OPTS" "$DOCKER_OPTS" /etc/sysconfig/docker ; } set_containerd_opts() { set_opts "CONTAINERD_OPTS" "$CONTAINERD_OPTS" /etc/sysconfig/containerd ; } fix_expected() { EXPECTED=$1 EXISTING=$2 exp_base=$(basename $EXPECTED) exp_dir=$(dirname $EXPECTED) [ -d $exp_dir ] || mkdir -p $exp_dir rm -f $exp_dir/$exp_base (cd $exp_dir && ln -sf $EXISTING $exp_base) } save_backup() { for x in $@ ; do if [ ! -f $x ] ; then touch $x.nbak elif [ -f $x.bak ] ; then warn "$x.bak already exists: no backup will be done" else cp -f $x $x.bak fi done } restore_backup() { for x in $@ ; do if [ -f $x.nbak ] ; then rm -f $x.nbak else if [ -f $x.bak ] ; then mv -f $x.bak $x fi fi done } require_go() { go version >/dev/null 2>&1 ; } require_git() { git version >/dev/null 2>&1 ; } ################################################################################ [ -x $TESTS_EXE ] || abort "integration tests executable not found at $TESTS_EXE" [ $EUID -eq 0 ] || abort "this script must be run as root" [ -n "$VERSION" ] || abort "could not obtain version" [ -e $CONTAINERD_SOCK ] || abort "containerd socket not found at $CONTAINERD_SOCK" [ -x $CONTAINERD_CTR ] || abort "containerd-ctr not found at $CONTAINERD_CTR" if [ $# -gt 0 ] ; then # run only some specific tests TEST_SELECT="-check.f=$(echo $@ | tr ' ' '|')" fi # We want this to fail if the bundles already exist and cannot be removed. # This is to avoid mixing bundles from different versions of the code. mkdir -p $BUNDLES_DIR if [ -e "$BUNDLES_DIR/$VERSION" ] && [ -z "$KEEPBUNDLE" ]; then log "$BUNDLES_DIR/$VERSION already exists. Removing." rm -fr "$BUNDLES_DIR/$VERSION" && mkdir "$BUNDLES_DIR/$VERSION" || exit 1 echo fi DEST="$BUNDLES_DIR/$VERSION/" mkdir -p "$DEST" export DEST=$(realpath $DEST) # create a fake go path rm -rf $FAKE_GOPATH mkdir -p $FAKE_GOPATH/src/github.com/docker (cd $FAKE_GOPATH/src/github.com/docker && ln -sf $DOCKER_DIR docker) if [ -n "$ENABLE_REGISTRY" ] ; then # build the Docker registry if [ ! -x /usr/local/bin/registry-v2 ] ; then log "Building registry (commit:$REGISTRY_COMMIT)" require_git || abort "git is not installed" require_go || abort "the Go compiler is not installed" export GOPATH="$(mktemp -d)" git clone https://github.com/docker/distribution.git "$GOPATH/src/github.com/docker/distribution" (cd "$GOPATH/src/github.com/docker/distribution" && git checkout -q "$REGISTRY_COMMIT") GOPATH="$GOPATH/src/github.com/docker/distribution/Godeps/_workspace:$GOPATH" \ go build -o /usr/local/bin/registry-v2 github.com/docker/distribution/cmd/registry (cd "$GOPATH/src/github.com/docker/distribution" && git checkout -q "$REGISTRY_COMMIT_SCHEMA1") GOPATH="$GOPATH/src/github.com/docker/distribution/Godeps/_workspace:$GOPATH" \ go build -o /usr/local/bin/registry-v2-schema1 github.com/docker/distribution/cmd/registry chmod 755 /usr/local/bin/registry-v2 [ -x /usr/local/bin/registry-v2 ] || abort "registry-v2 could not be built" rm -rf "$GOPATH" export -n GOPATH fi fi if [ -n "$ENABLE_NOTARY" ] ; then # build the Docker notary if [ ! -x /usr/local/bin/notary-server ] ; then export GO15VENDOREXPERIMENT=1 export GOPATH="$(mktemp -d)" require_git || abort "git is not installed" require_go || abort "the Go compiler is not installed" log "Building notary (version:$NOTARY_VERSION)" git clone https://github.com/docker/notary.git "$GOPATH/src/github.com/docker/notary" (cd "$GOPATH/src/github.com/docker/notary" && git checkout -q "$NOTARY_VERSION") GOPATH="$GOPATH/src/github.com/docker/notary/vendor:$GOPATH" \ go build -o /usr/local/bin/notary-server github.com/docker/notary/cmd/notary-server GOPATH="$GOPATH/src/github.com/docker/notary/vendor:$GOPATH" \ go build -o /usr/local/bin/notary github.com/docker/notary/cmd/notary chmod 755 /usr/local/bin/notary-server [ -x /usr/local/bin/notary-server ] || abort "notary could not be built" export -n GO15VENDOREXPERIMENT rm -rf "$GOPATH" export -n GOPATH fi fi if [ -n "$ENABLE_XUNIT" ] ; then if [ ! -x /usr/local/bin/go2xunit ] ; then echo >&2 "Installing go2xunit." require_go || abort "the Go compiler is not installed" export GOPATH="$(mktemp -d)" go get -d github.com/tebeka/go2xunit cd $GOPATH/src/github.com/tebeka/go2xunit && go build -o /usr/local/bin/go2xunit . chmod 755 /usr/local/bin/go2xunit [ -x /usr/local/bin/go2xunit ] || abort "go2xunit could not be built" rm -rf "$GOPATH" export -n GOPATH fi fi # tests require this user and group /usr/sbin/groupadd -r docker >/dev/null 2>&1 || /bin/true /usr/sbin/useradd --create-home --gid docker unprivilegeduser >/dev/null 2>&1 || /bin/true # prepare some expected dirs, files, etc... fix_expected $TESTS_DIR/contrib $DOCKER_DIR/contrib fix_expected $DEST/fixtures $DOCKER_DIR/integration-cli/fixtures fix_expected $EXPECTED_CONTAINERD_SOCK $CONTAINERD_SOCK fix_expected $EXPECTED_CONTAINERD_CTR $CONTAINERD_CTR export DOCKER_TEST_HOST="tcp://127.0.0.1:2375" export PATH=/usr/local/bin:$PATH export TZ=utc export GOPATH="$FAKE_GOPATH" export DOCKER_GRAPHDRIVER="${DOCKER_GRAPHDRIVER:-vfs}" export DOCKER_USERLANDPROXY="${DOCKER_USERLANDPROXY:-true}" #export DOCKER_REMAP_ROOT=default # example usage: DOCKER_STORAGE_OPTS="dm.basesize=20G,dm.loopdatasize=200G" storage_params="" if [ -n "$DOCKER_STORAGE_OPTS" ]; then IFS=',' for i in ${DOCKER_STORAGE_OPTS}; do storage_params="--storage-opt $i $storage_params" done unset IFS fi # example usage: DOCKER_STORAGE_OPTS="dm.basesize=20G,dm.loopdatasize=200G" extra_params="" # deal with remapping save_backup /etc/subuid /etc/subgid echo "dockremap:500000:65536" > /etc/subuid echo "dockremap:500000:65536" > /etc/subgid groupadd dockremap >/dev/null 2>&1 || /bin/true useradd -g dockremap dockremap >/dev/null 2>&1 || /bin/true # make sure Docker is stopped, set our config file and then start again save_backup $SYSCFG_DOCKER cat <<SYSCFG_DOCKER_EOF > $SYSCFG_DOCKER DOCKER_OPTS="--log-level=debug \ --pidfile=$DEST/docker.pid \ -H tcp://127.0.0.1:2375 \ --storage-driver=$DOCKER_GRAPHDRIVER \ --userland-proxy=$DOCKER_USERLANDPROXY" DOCKER_NETWORK_OPTIONS="" SYSCFG_DOCKER_EOF systemctl reload-or-restart docker.service cleanup() { log "Restoring the Docker service..." restore_backup $SYSCFG_DOCKER systemctl reload-or-restart docker.service log "Removing extra files and restoring backups..." restore_backup /etc/subuid /etc/subgid rm -f $TESTS_DIR/contrib \ $DEST/fixtures \ $EXPECTED_CONTAINERD_SOCK \ $EXPECTED_CONTAINERD_CTR } trap cleanup EXIT cd $DOCKER_DIR log "Preparing the environment..." bundle .integration-daemon-start bundle .integration-daemon-setup log "Running integration tests..." export DOCKER_HOST=$DOCKER_TEST_HOST cd $DEST && $TESTS_EXE $TEST_ARGS $TEST_SELECT | tee $TEST_LOG || /bin/true if [ -n "$ENABLE_XUNIT" ] ; then log "Generating xunit logs..." go2xunit -fail -gocheck -input $TEST_LOG -output $TEST_LOG.xml fi export -n DOCKER_HOST bundle .integration-daemon-stop
