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 - jmassaguer...@suse.com
+
+- fix go_arches definition: use global instead of define, otherwise
+  it fails to build 
+
+-------------------------------------------------------------------
+Wed Sep 14 09:41:57 UTC 2016 - asa...@suse.com
+
+- Add dockerd(8) man page.
+
+-------------------------------------------------------------------
+Fri Sep  9 12:42:24 UTC 2016 - th...@suse.de
+
+- add missing patch to changelog
+
+-------------------------------------------------------------------
+Wed Sep  7 16:33:59 UTC 2016 - th...@suse.de
+
+- fix integration test case
+- add integration-cli-fix-TestInfoEnsureSucceeds.patch
+
+-------------------------------------------------------------------
+Tue Sep  6 13:28:38 UTC 2016 - th...@suse.de
+
+- update rpmlintrc
+
+-------------------------------------------------------------------
+Fri Sep  2 12:02:23 UTC 2016 - th...@suse.de
+
+- make test timeout configurable
+
+-------------------------------------------------------------------
+Fri Sep  2 10:25:27 UTC 2016 - asa...@suse.com
+
+- 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 - jmassaguer...@suse.com
+
+- Fix build for ppc64le: use static libgo for dockerd and docker-proxy
+  as in docker build.
+
+-------------------------------------------------------------------
+Mon Aug 29 12:11:21 UTC 2016 - jmassaguer...@suse.com
+
+- 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 - cbrau...@suse.de
+
+- Add asau...@suse.com's test.sh test script.
+- Add integration test binary in docker.spec file. This is work done by
+  asau...@suse.com.
+
+-------------------------------------------------------------------
+Fri Aug 26 10:43:38 UTC 2016 - asa...@suse.com
+
+- Package docker-proxy (which was split out of the docker binary in 1.12).
+  boo#995620
+
+-------------------------------------------------------------------
+Fri Aug 26 10:00:36 UTC 2016 - jmassaguer...@suse.com
+
+- 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 - asa...@suse.com
+
+- 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 - jmassaguer...@suse.com
+
+- 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 - jmassaguer...@suse.com
+
+- 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 - jmassaguer...@suse.com
+
+- 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 - cbrau...@suse.com
+
+- 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 - tboer...@suse.com
+
+- 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 <th...@suse.de>
Date: Wed, 7 Sep 2016 10:54:09 +0200
Subject: [PATCH] integration-cli: fix TestInfoEnsureSucceeds

Signed-off-by: Thomas Hipp <th...@suse.de>
---
 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

Reply via email to