diff --git a/_service b/_service
index 236259a..0568593 100644
--- a/_service
+++ b/_service
@@ -3,8 +3,8 @@
https://github.com/docker/docker.git
git
.git
- 1.11.2
- v1.11.2
+ 1.12.0
+ v1.12.0
docker-*.tar
diff --git a/bnc964673-boltdb-metadata-recovery.patch b/bnc964673-boltdb-metadata-recovery.patch
deleted file mode 100644
index 15a4fc3..0000000
--- a/bnc964673-boltdb-metadata-recovery.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 8f0e47cee034cdc08ca515d98a6733130908fc26 Mon Sep 17 00:00:00 2001
-From: Aleksa Sarai
-Date: Mon, 16 May 2016 23:53:46 +1000
-Subject: [PATCH] db: fix recovery from unsynced metadata
-
-Bolt stores the two latest transactions' metadata, but previously did
-not recover from validation failures in the latest by using the second
-latest. Fix this by correctly handling validation failures in db.go, as
-well as returning the metadata with highest txid which is also valid in
-DB.meta().
-
-Signed-off-by: Aleksa Sarai
----
- vendor/src/github.com/boltdb/bolt/db.go | 49 +++++++++++++++++++++++++--------
- 1 file changed, 38 insertions(+), 11 deletions(-)
-
-diff --git a/vendor/src/github.com/boltdb/bolt/db.go b/vendor/src/github.com/boltdb/bolt/db.go
-index 501d36aac24a..f713485ffab6 100644
---- a/vendor/src/github.com/boltdb/bolt/db.go
-+++ b/vendor/src/github.com/boltdb/bolt/db.go
-@@ -200,9 +200,15 @@ func Open(path string, mode os.FileMode, options *Options) (*DB, error) {
- if _, err := db.file.ReadAt(buf[:], 0); err == nil {
- m := db.pageInBuffer(buf[:], 0).meta()
- if err := m.validate(); err != nil {
-- return nil, err
-+ // If we can't read the page size, we can assume it's the same
-+ // as the OS -- since that's how the page size was chosen in the
-+ // first place.
-+ // XXX: Does this cause issues with opening a database on a
-+ // different OS than the one it was created on?
-+ db.pageSize = os.Getpagesize()
-+ } else {
-+ db.pageSize = int(m.pageSize)
- }
-- db.pageSize = int(m.pageSize)
- }
- }
-
-@@ -262,12 +268,13 @@ func (db *DB) mmap(minsz int) error {
- db.meta0 = db.page(0).meta()
- db.meta1 = db.page(1).meta()
-
-- // Validate the meta pages.
-- if err := db.meta0.validate(); err != nil {
-- return err
-- }
-- if err := db.meta1.validate(); err != nil {
-- return err
-+ // Validate the meta pages. We only return an error if both meta pages fail
-+ // validation, since meta0 failing validation means that it wasn't saved
-+ // properly -- but we can recover using meta1. And vice-versa.
-+ err0 := db.meta0.validate()
-+ err1 := db.meta1.validate()
-+ if err0 != nil && err1 != nil {
-+ return fmt.Errorf("meta0(%v) meta1(%v)", err0, err1)
- }
-
- return nil
-@@ -778,10 +785,30 @@ func (db *DB) pageInBuffer(b []byte, id pgid) *page {
-
- // meta retrieves the current meta page reference.
- func (db *DB) meta() *meta {
-- if db.meta0.txid > db.meta1.txid {
-- return db.meta0
-+ // We have to return the meta with the highest txid which doesn't fail
-+ // validation. Otherwise, we can cause errors when in fact the database is
-+ // in a consistent state. metaA is the one with the higher txid.
-+ metaA := db.meta0
-+ metaB := db.meta1
-+ if db.meta1.txid > db.meta0.txid {
-+ metaA = db.meta1
-+ metaB = db.meta0
- }
-- return db.meta1
-+
-+ errA := metaA.validate()
-+ errB := metaB.validate()
-+
-+ if errA == nil {
-+ return metaA
-+ }
-+
-+ if errB == nil {
-+ return metaB
-+ }
-+
-+ // This should never be reached, because both meta1 and meta0 were validated
-+ // on mmap() and we do fsync() on every write.
-+ panic("both meta0 and meta1 could not be validated in DB.meta()!")
- }
-
- // allocate returns a contiguous block of memory starting at a given page.
---
-2.8.2
-
diff --git a/disable-pprof-trace.patch b/disable-pprof-trace.patch
new file mode 100644
index 0000000..bae3c91
--- /dev/null
+++ b/disable-pprof-trace.patch
@@ -0,0 +1,14 @@
+diff --git a/api/server/profiler.go b/api/server/profiler.go
+index 8bf8384..c062f2d 100644
+--- a/api/server/profiler.go
++++ b/api/server/profiler.go
+@@ -18,7 +18,8 @@ func profilerSetup(mainRouter *mux.Router) {
+ r.HandleFunc("/pprof/cmdline", pprof.Cmdline)
+ r.HandleFunc("/pprof/profile", pprof.Profile)
+ r.HandleFunc("/pprof/symbol", pprof.Symbol)
+- r.HandleFunc("/pprof/trace", pprof.Trace)
++ // pprof.Trace is not available in go <= 1.4
++ // r.HandleFunc("/pprof/trace", pprof.Trace)
+ r.HandleFunc("/pprof/block", pprof.Handler("block").ServeHTTP)
+ r.HandleFunc("/pprof/heap", pprof.Handler("heap").ServeHTTP)
+ r.HandleFunc("/pprof/goroutine", pprof.Handler("goroutine").ServeHTTP)
diff --git a/docker-1.11.2.tar.xz b/docker-1.11.2.tar.xz
deleted file mode 100644
index 62254d4..0000000
--- a/docker-1.11.2.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:279ade8e90c40e4a9b10fe570313aef0672b9ee3858d6ce78295ee448775db34
-size 8797368
diff --git a/docker-1.12.0.tar.xz b/docker-1.12.0.tar.xz
new file mode 100644
index 0000000..f6ecc82
--- /dev/null
+++ b/docker-1.12.0.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ce78b3e58c579151d52f60d49ab42509210649a6fe2ad3d1d12befe7921d38c6
+size 10734304
diff --git a/docker-mount-secrets.patch b/docker-mount-secrets.patch
index ecda337..552a437 100644
--- a/docker-mount-secrets.patch
+++ b/docker-mount-secrets.patch
@@ -21,10 +21,10 @@ Signed-off-by: Aleksa Sarai
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 @@ Index: docker-1.11.0/container/container_unix.go
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 @@ Index: docker-1.11.0/container/container_unix.go
// 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 @@ Index: docker-1.11.0/daemon/container_operations_unix.go
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 @@ Index: docker-1.11.0/daemon/daemon_unix.go
"/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 @@ Index: docker-1.11.0/daemon/start.go
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 @@ Index: docker-1.11.0/daemon/suse_secrets.go
+
+ return secrets, nil
+}
+--
+2.8.1
+
diff --git a/docker.changes b/docker.changes
index fa4b21e..04eb803 100644
--- a/docker.changes
+++ b/docker.changes
@@ -1,3 +1,38 @@
+-------------------------------------------------------------------
+Tue Aug 23 11:35:09 UTC 2016 - jmassaguerpla@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 - cbrauner@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 - tboerger@suse.com
+
+- Fixed binary split, install both required binaries correctly
+
-------------------------------------------------------------------
Tue Aug 16 09:39:11 UTC 2016 - asarai@suse.com
diff --git a/docker.service b/docker.service
index d01eadc..4a89c42 100644
--- a/docker.service
+++ b/docker.service
@@ -6,20 +6,11 @@ Requires=docker.socket containerd.socket
[Service]
EnvironmentFile=/etc/sysconfig/docker
-ExecStart=/usr/bin/docker daemon -H fd:// --containerd /run/containerd/containerd.sock $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
+ExecStart=/usr/bin/dockerd -H fd:// --containerd /run/containerd/containerd.sock $DOCKER_NETWORK_OPTIONS $DOCKER_OPTS
+LimitNOFILE=1048576
+LimitNPROC=1048576
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.
[Install]
WantedBy=multi-user.target
+
diff --git a/docker.spec b/docker.spec
index 5ec186a..1a1a96e 100644
--- a/docker.spec
+++ b/docker.spec
@@ -21,9 +21,9 @@
%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 go_arches %ix86 x86_64 aarch64 ppc64le
+%define docker_version 1.12.0
%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 +31,7 @@
# 1.10.1
%global last_migration_version 1.10.1
Name: docker
-Version: 1.11.2
+Version: 1.12.0
Release: 0
Summary: The Linux container runtime
License: Apache-2.0
@@ -45,15 +45,12 @@ Source6: docker-rpmlintrc
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
+# Fixes for architecture-specific issues (gcc-go).
+Patch100: gcc-go-patches.patch
+Patch101: netlink_gcc_go.patch
+Patch102: netlink_netns_powerpc.patch
+Patch103: disable-pprof-trace.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
BuildRequires: audit
BuildRequires: bash-completion
BuildRequires: device-mapper-devel >= 1.2.68
@@ -71,8 +68,8 @@ Requires: ca-certificates-mozilla
# 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 +95,7 @@ Source5: docker_systemd_lt_214.socket
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
@@ -150,7 +147,7 @@ BuildArch: noarch
%ifarch %{go_arches}
Requires: go >= 1.4
%else
-Requires: gcc5-go >= 5.0
+Requires: gcc6-go >= 6.1
%endif
%description test
@@ -164,12 +161,11 @@ Test package for docker. It contains the source code and the tests.
%patch200 -p1
%endif
%ifnarch %{go_arches}
+%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
%endif
-# bnc#964673
-%patch302 -p1
cp %{SOURCE7} .
%build
@@ -177,7 +173,7 @@ cp %{SOURCE7} .
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
@@ -200,16 +196,84 @@ man/md2man-all.sh
# 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
%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
%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}"
@@ -297,6 +361,7 @@ fi
%defattr(-,root,root)
%doc README.md LICENSE README_SUSE.md
%{_bindir}/docker
+%{_bindir}/dockerd
%{_sbindir}/rcdocker
%{_libexecdir}/docker/
%{_unitdir}/%{name}.service
diff --git a/gcc-go-patches.patch b/gcc-go-patches.patch
index b063c9e..94f8069 100644
--- a/gcc-go-patches.patch
+++ b/gcc-go-patches.patch
@@ -1,24 +1,33 @@
diff --git a/hack/make/gccgo b/hack/make/gccgo
-index 878c814..84b7f69 100644
+index 93e064a..20eb8dc 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 \
+@@ -21,7 +21,7 @@ go build -compiler=gccgo \
+ -g
+ $EXTLDFLAGS_STATIC
+ -Wl,--no-export-dynamic
+- -ldl
++ -ldl -lsystemd
+ -pthread
+ " \
+ ./cmd/dockerd
+@@ -37,9 +37,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/docker
diff --git a/sysconfig.docker b/sysconfig.docker
index 5b3b0fb..f089e52 100644
--- a/sysconfig.docker
+++ b/sysconfig.docker
@@ -6,5 +6,3 @@
## ServiceRestart : docker
#
DOCKER_OPTS=""
-
-DOCKER_NETWORK_OPTIONS=""