diff --git a/_service b/_service
index a143f0b..d07ad3d 100644
--- a/_service
+++ b/_service
@@ -3,8 +3,8 @@
https://github.com/docker/docker-ce.git
git
.git
- 19.03.11_ce_%h
- v19.03.11
+ 19.03.12_ce_%h
+ v19.03.12
docker
diff --git a/bsc1172377-0001-unexport-testcase.Cleanup-to-fix-Go-1.14.patch b/bsc1172377-0001-unexport-testcase.Cleanup-to-fix-Go-1.14.patch
deleted file mode 100644
index d386cd2..0000000
--- a/bsc1172377-0001-unexport-testcase.Cleanup-to-fix-Go-1.14.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 90511b7f36b8243baf47e140d7a974db7874e660 Mon Sep 17 00:00:00 2001
-From: Aleksa Sarai
-Date: Wed, 3 Jun 2020 20:38:14 +1000
-Subject: [PATCH] unexport testcase.Cleanup to fix Go 1.14
-
-Backport of https://github.com/gotestyourself/gotest.tools/pull/169.
-
-SUSE-Bugs: bsc#1172377
-Signed-off-by: Aleksa Sarai
----
- components/engine/vendor/gotest.tools/x/subtest/context.go | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/components/engine/vendor/gotest.tools/x/subtest/context.go b/components/engine/vendor/gotest.tools/x/subtest/context.go
-index 878bdebf14d8..bcf13eed54ba 100644
---- a/components/engine/vendor/gotest.tools/x/subtest/context.go
-+++ b/components/engine/vendor/gotest.tools/x/subtest/context.go
-@@ -27,9 +27,9 @@ func (tc *testcase) Ctx() context.Context {
- return tc.ctx
- }
-
--// Cleanup runs all cleanup functions. Functions are run in the opposite order
-+// cleanup runs all cleanup functions. Functions are run in the opposite order
- // in which they were added. Cleanup is called automatically before Run exits.
--func (tc *testcase) Cleanup() {
-+func (tc *testcase) cleanup() {
- for _, f := range tc.cleanupFuncs {
- // Defer all cleanup functions so they all run even if one calls
- // t.FailNow() or panics. Deferring them also runs them in reverse order.
-@@ -59,7 +59,7 @@ type parallel interface {
- func Run(t *testing.T, name string, subtest func(t TestContext)) bool {
- return t.Run(name, func(t *testing.T) {
- tc := &testcase{TB: t}
-- defer tc.Cleanup()
-+ defer tc.cleanup()
- subtest(tc)
- })
- }
---
-2.26.2
-
diff --git a/docker-19.03.11_ce_42e35e61f352.tar.xz b/docker-19.03.11_ce_42e35e61f352.tar.xz
deleted file mode 100644
index 2832338..0000000
--- a/docker-19.03.11_ce_42e35e61f352.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d39dea75d6807992e212b64c79644430730e4f4600bb7c5366932451a792ac40
-size 10222200
diff --git a/docker-19.03.12_ce_48a66213fe17.tar.xz b/docker-19.03.12_ce_48a66213fe17.tar.xz
new file mode 100644
index 0000000..fc86839
--- /dev/null
+++ b/docker-19.03.12_ce_48a66213fe17.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:041fcb5d4f283a0de7b058b979441380869e680d065748fd72abfbeeedfd73cc
+size 10252156
diff --git a/docker.changes b/docker.changes
index 7188bcd..b356325 100644
--- a/docker.changes
+++ b/docker.changes
@@ -1,3 +1,15 @@
+-------------------------------------------------------------------
+Thu Jun 25 21:54:46 UTC 2020 - Aleksa Sarai
+
+- Update to Docker 19.03.12-ce. See upstream changelog in the packaged
+ /usr/share/doc/packages/docker/CHANGELOG.md.
+- Use Go 1.13 instead of Go 1.14 because Go 1.14 can cause all sorts of
+ spurrious errors due to Go returning -EINTR from I/O syscalls much more often
+ (due to Go 1.14's pre-emptive goroutine support).
+ - bsc1172377-0001-unexport-testcase.Cleanup-to-fix-Go-1.14.patch
+- Add BuildRequires for all -git dependencies so that we catch missing
+ dependencies much more quickly.
+
-------------------------------------------------------------------
Tue Jun 2 08:37:06 UTC 2020 - Aleksa Sarai
diff --git a/docker.spec b/docker.spec
index d55a9b5..55248bf 100644
--- a/docker.spec
+++ b/docker.spec
@@ -42,17 +42,17 @@
# helpfully injects into our build environment from the changelog). If you want
# to generate a new git_commit_epoch, use this:
# $ date --date="$(git show --format=fuller --date=iso $COMMIT_ID | grep -oP '(?<=^CommitDate: ).*')" '+%s'
-%define git_version 42e35e61f352
-%define git_commit_epoch 1591001995
+%define git_version 48a66213fe17
+%define git_commit_epoch 1592522265
# These are the git commits required. We verify them against the source to make
# sure we didn't miss anything important when doing upgrades.
%define required_containerd 7ad184331fa3e55e52b890ea95e65ba581ae3429
%define required_dockerrunc dc9208a3303feef5b3839f4323d9beb36df0a9dd
-%define required_libnetwork 153d0769a1181bf591a9637fd487a541ec7db1e6
+%define required_libnetwork 026aabaa659832804b01754aaadd2c0f420c68b6
Name: %{realname}%{name_suffix}
-Version: 19.03.11_ce
+Version: 19.03.12_ce
Release: 0
Summary: The Moby-project Linux container runtime
License: Apache-2.0
@@ -83,8 +83,6 @@ Patch300: packaging-0001-revert-Remove-docker-prefix-for-containerd-and-ru
Patch401: bsc1073877-0001-apparmor-clobber-docker-default-profile-on-start.patch
# SUSE-BACKPORT: Backport of https://github.com/docker/docker/pull/39121. bsc#1122469
Patch402: bsc1122469-0001-apparmor-allow-readby-and-tracedby.patch
-# FIX-UPSTREAM: Backport of https://github.com/gotestyourself/gotest.tools/pull/169. bsc#1172377
-Patch410: bsc1172377-0001-unexport-testcase.Cleanup-to-fix-Go-1.14.patch
# SUSE-FEATURE: Add support to mirror inofficial/private registries
# (https://github.com/docker/docker/pull/34319)
Patch500: private-registry-0001-Add-private-registry-mirror-support.patch
@@ -106,14 +104,17 @@ Requires: ca-certificates-mozilla
# Required in order for networking to work. fix_bsc_1057743 is a work-around
# for some old packaging issues (where rpm would delete a binary that was
# installed by docker-libnetwork). See bsc#1057743 for more details.
-Requires: docker-libnetwork%{name_suffix}-git = %{required_libnetwork}
+BuildRequires: docker-libnetwork%{name_suffix}-git = %{required_libnetwork}
+%requires_eq docker-libnetwork%{name_suffix}-git
Requires: fix_bsc_1057743
# Containerd and runC are required as they are the only currently supported
# execdrivers of Docker. NOTE: The version pinning here matches upstream's
# vendor.conf to ensure that we don't use a slightly incompatible version of
# runC or containerd (which would be bad).
-Requires: containerd%{name_suffix}-git = %{required_containerd}
-Requires: docker-runc%{name_suffix}-git = %{required_dockerrunc}
+BuildRequires: containerd%{name_suffix}-git = %{required_containerd}
+%requires_eq containerd%{name_suffix}-git
+BuildRequires: docker-runc%{name_suffix}-git = %{required_dockerrunc}
+%requires_eq docker-runc%{name_suffix}-git
# Needed for --init support. We don't use "tini", we use our own implementation
# which handles edge-cases better.
Requires: catatonit
@@ -138,7 +139,9 @@ Recommends: git-core >= 1.7
Conflicts: lxc < 1.0
ExcludeArch: s390 ppc
BuildRequires: go-go-md2man
-BuildRequires: golang(API) >= 1.13
+# We cannot use Go 1.14 because it breaks io.Copy (among other things) by
+# returning -EINTR from I/O syscalls much more often.
+BuildRequires: go1.13
# KUBIC-SPECIFIC: This was required when upgrading from the original kubic
# packaging, when everything was renamed to -kubic. It also is
# used to ensure that nothing complains too much when using
@@ -265,8 +268,6 @@ docker container runtime configuration for kubeadm
%patch401 -p1
# bsc#1122469
%patch402 -p1
-# bsc#1172377
-%patch410 -p1
%if "%flavour" == "kubic"
# PATCH-SUSE: Mirror patch.
%patch500 -p1