Hello community,

here is the log from the commit of package docker for openSUSE:Factory checked 
in at 2015-09-17 09:20:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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    2015-08-23 
17:37:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.docker.new/docker.changes       2015-09-17 
09:20:36.000000000 +0200
@@ -1,0 +2,24 @@
+Thu Sep 10 22:33:01 UTC 2015 - jmassaguer...@suse.com
+
+- Update docker to 1.8.2 version
+
+  see detailed changelog in
+
+  https://github.com/docker/docker/releases/tag/v1.8.2 
+
+- devicemapper: fix zero-sized field access 
+  Fix issue #15279: does not build with Go 1.5 tip
+  Due to golang/go@7904946
+  the devices field is dropped.
+
+  This solution works on go1.4 and go1.5
+
+  See more in https://github.com/docker/docker/pull/15404
+  
+  This fix was not included in v1.8.2. See previous link
+  on why.
+
+  fix_15279.patch: contains the patch for issue#15279
+
+
+-------------------------------------------------------------------

Old:
----
  docker-1.8.1.tar.bz2

New:
----
  docker-1.8.2.tar.gz
  fix_15279.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ docker.spec ++++++
--- /var/tmp/diff_new_pack.rYjn3d/_old  2015-09-17 09:20:37.000000000 +0200
+++ /var/tmp/diff_new_pack.rYjn3d/_new  2015-09-17 09:20:37.000000000 +0200
@@ -16,16 +16,16 @@
 #
 
 
-%define git_version 786b29d
+%define git_version 0a8c2e3
 %define go_arches %ix86 x86_64
 Name:           docker
-Version:        1.8.1
+Version:        1.8.2
 Release:        0
 Summary:        The Linux container runtime
 License:        Apache-2.0
 Group:          System/Management
 Url:            http://www.docker.io
-Source:         %{name}-%{version}.tar.bz2
+Source:         %{name}-%{version}.tar.gz
 Source1:        docker.service
 Source3:        80-docker.rules
 Source4:        sysconfig.docker
@@ -43,6 +43,7 @@
 Patch0:         fix-docker-init.patch
 # PATCH-FIX-OPENSUSE libcontainer-apparmor-fixes.patch -- mount rules aren't 
supported in our apparmor
 Patch1:         libcontainer-apparmor-fixes.patch
+Patch2:         fix_15279.patch
 # Required to overcome some limitations of gcc-go: 
https://groups.google.com/forum/#!msg/golang-nuts/SlGCPYkjxo4/4DjcjXRCqAkJ
 # Right now docker passes the sha1sum of the dockerinit binary to the docker 
binary at build time
 # We cannot do that, right now a quick and really dirty way to get it running 
is
@@ -141,6 +142,7 @@
 %setup -q -n docker-%{version}
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
 %ifnarch %go_arches
 %patch100 -p1
 %patch101 -p0

++++++ fix_15279.patch ++++++
diff -Naur a/daemon/graphdriver/devmapper/deviceset.go 
b/daemon/graphdriver/devmapper/deviceset.go
--- a/daemon/graphdriver/devmapper/deviceset.go 2015-09-10 20:43:43.000000000 
+0200
+++ b/daemon/graphdriver/devmapper/deviceset.go 2015-09-11 00:27:54.818876198 
+0200
@@ -1482,12 +1482,16 @@
        if err != nil {
                return err
        }
-       if d, err := devicemapper.GetDeps(devname); err == nil {
-               // Access to more Debug output
-               logrus.Debugf("[devmapper] devicemapper.GetDeps() %s: %#v", 
devname, d)
+
+       if devinfo.Exists == 0 {
+               return nil
+       }
+       if err := devicemapper.RemoveDevice(devname); err != nil {
+               return err
        }
-       if devinfo.Exists != 0 {
-               return devicemapper.RemoveDevice(devname)
+
+       if d, err := devicemapper.GetDeps(devname); err == nil {
+               logrus.Warnf("[devmapper] device %s still has %d active 
dependents", devname, d.Count)
        }
 
        return nil
diff -Naur a/pkg/devicemapper/devmapper_wrapper.go 
b/pkg/devicemapper/devmapper_wrapper.go
--- a/pkg/devicemapper/devmapper_wrapper.go     2015-09-10 20:43:43.000000000 
+0200
+++ b/pkg/devicemapper/devmapper_wrapper.go     2015-09-11 00:27:54.819876198 
+0200
@@ -38,7 +38,10 @@
 */
 import "C"
 
-import "unsafe"
+import (
+       "reflect"
+       "unsafe"
+)
 
 type (
        CDmTask C.struct_dm_task
@@ -184,12 +187,21 @@
        if Cdeps == nil {
                return nil
        }
+
+       // golang issue: https://github.com/golang/go/issues/11925
+       hdr := reflect.SliceHeader{
+               Data: uintptr(unsafe.Pointer(uintptr(unsafe.Pointer(Cdeps)) + 
unsafe.Sizeof(*Cdeps))),
+               Len:  int(Cdeps.count),
+               Cap:  int(Cdeps.count),
+       }
+       devices := *(*[]C.uint64_t)(unsafe.Pointer(&hdr))
+
        deps := &Deps{
                Count:  uint32(Cdeps.count),
                Filler: uint32(Cdeps.filler),
        }
-       for _, device := range Cdeps.device {
-               deps.Device = append(deps.Device, (uint64)(device))
+       for _, device := range devices {
+               deps.Device = append(deps.Device, uint64(device))
        }
        return deps
 }

Reply via email to