Hello community, here is the log from the commit of package docker for openSUSE:Factory checked in at 2018-09-05 13:46:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/docker (Old) and /work/SRC/openSUSE:Factory/.docker.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "docker" Wed Sep 5 13:46:40 2018 rev:80 rq:632984 version:18.06.1_ce Changes: -------- --- /work/SRC/openSUSE:Factory/docker/docker.changes 2018-08-03 12:29:15.766857516 +0200 +++ /work/SRC/openSUSE:Factory/.docker.new/docker.changes 2018-09-05 13:46:43.130072804 +0200 @@ -1,0 +2,73 @@ +Tue Sep 4 08:32:43 UTC 2018 - rbr...@suse.com + +- ExcludeArch i586 for entire docker-kubic flavour + +------------------------------------------------------------------- +Tue Sep 4 07:32:47 UTC 2018 - rbr...@suse.com + +- ExcludeArch i586 for docker-kubic-kubeadm-criconfig subpackage + +------------------------------------------------------------------- +Fri Aug 24 08:17:41 UTC 2018 - asa...@suse.com + +- Add patch to make package reproducible, which is a backport of + https://github.com/docker/cli/pull/1306. boo#1047218 + + bsc1047218-0001-man-obey-SOURCE_DATE_EPOCH-when-generating-man-pages.patch + +------------------------------------------------------------------- +Wed Aug 22 09:54:57 UTC 2018 - asa...@suse.com + +- Upgrade to docker-ce v18.06.1-ce. Upstream changelog: + https://github.com/docker/docker-ce/releases/tag/v18.06.1-ce bsc#1102522 +- Remove patches that were merged upstream: + - bsc1102522-0001-18.06-disable-containerd-CRI-plugin.patch + +------------------------------------------------------------------- +Tue Aug 21 09:50:01 UTC 2018 - asa...@suse.com + +- Add a backport of https://github.com/docker/engine/pull/29 for the 18.06.0-ce + upgrade. This is a potential security issue (the CRI plugin was enabled by + default, which listens on a TCP port bound to 0.0.0.0) that will be fixed + upstream in the 18.06.1-ce upgrade. bsc#1102522 + + bsc1102522-0001-18.06-disable-containerd-CRI-plugin.patch + +------------------------------------------------------------------- +Tue Aug 21 09:39:57 UTC 2018 - rbr...@suse.com + +- Kubic: Make crio default, docker as alternative runtime + (boo#1104821) +- Provide kubernetes CRI config with docker-kubic-kubeadm-criconfig + subpackage + +------------------------------------------------------------------- +Thu Aug 16 02:00:31 UTC 2018 - asa...@suse.com + +- Merge -kubic packages back into the main Virtualization:containers packages. + This is done using _multibuild to add a "kubic" flavour, which is then used + to conditionally compile patches and other kubic-specific features. + bsc#1105000 +- Rework docker-rpmlintrc with the new _multibuild setup. + +------------------------------------------------------------------- +Wed Aug 1 09:40:59 UTC 2018 - asa...@suse.com + +- Enable seccomp support on SLE12, since libseccomp is now a new enough vintage + to work with Docker and containerd. fate#325877 + +------------------------------------------------------------------- +Tue Jul 31 09:48:16 UTC 2018 - asa...@suse.com + +- Upgrade to docker-ce v18.06.0-ce. bsc#1102522 +- Remove systemd-service dependency on containerd, which is now being started + by dockerd to align with upstream defaults. +- Removed the following patches as they are merged upstream: + - bsc1021227-0001-pkg-devmapper-dynamically-load-dm_task_deferred_remo.patch + - bsc1055676-0001-daemon-oci-obey-CL_UNPRIVILEGED-for-user-namespaced-.patch +- Rebased the following patches: + * bsc1073877-0001-apparmor-allow-receiving-of-signals-from-docker-kill.patch + * bsc1073877-0002-apparmor-clobber-docker-default-profile-on-start.patch + * bsc1100727-0001-build-add-buildmode-pie.patch + * secrets-0001-daemon-allow-directory-creation-in-run-secrets.patch + * secrets-0002-SUSE-implement-SUSE-container-secrets.patch + +------------------------------------------------------------------- @@ -18,5 +90,0 @@ -Wed Jun 13 10:19:23 UTC 2018 - dcass...@suse.com - -- Make use of %license macro - -------------------------------------------------------------------- @@ -29,0 +98,5 @@ +Tue Jun 5 08:41:07 UTC 2018 - dcass...@suse.com + +- Make use of %license macro + +------------------------------------------------------------------- @@ -44,0 +118,12 @@ +Wed May 16 10:12:56 UTC 2018 - jmassaguer...@suse.com + +- Review Obsoletes to fix bsc#1080978 + +------------------------------------------------------------------- +Thu Apr 12 12:49:25 UTC 2018 - fcaste...@suse.com + +- Put docker under the podruntime slice. This the recommended + deployment to allow fine resource control on Kubernetes. + bsc#1086185 + +------------------------------------------------------------------- @@ -69,0 +155,7 @@ +Thu Mar 8 13:14:54 UTC 2018 - vrothb...@suse.com + +- Fix private-registry-0001-Add-private-registry-mirror-support.patch to + deal corretly with TLS configs of 3rd party registries. + fix bsc#1084533 + +------------------------------------------------------------------- @@ -77,0 +170 @@ + * private-registry-0001-Add-private-registry-mirror-support.patch @@ -79,0 +173,30 @@ + +------------------------------------------------------------------- +Mon Feb 12 10:52:33 UTC 2018 - rbr...@suse.com + +- Add ${version} to equivalent non-kubic package provides + +------------------------------------------------------------------- +Thu Feb 8 12:34:51 UTC 2018 - rbr...@suse.com + +- Add Provides for equivalent non-kubic packages + +------------------------------------------------------------------- +Tue Jan 30 12:27:44 UTC 2018 - vrothb...@suse.com + +- Disable all tests for docker/client and docker/pkg/discovery. The unit tests + of those packages broke reproducibly the builds in IBS. + +------------------------------------------------------------------- +Mon Jan 29 14:39:02 UTC 2018 - vrothb...@suse.com + +- Disable flaky tests github.com/docker/docker/pkg/discovery/kv. + +------------------------------------------------------------------- +Fri Jan 26 07:15:53 UTC 2018 - vrothb...@suse.com + +- Add patch to support mirroring of private/non-upstream registries. As soon as + the upstream PR (https://github.com/moby/moby/pull/34319) is merged, this + patch will be replaced by the backported one from upstream. + + private-registry-0001-Add-private-registry-mirror-support.patch + fix bsc#1074971 Old: ---- bsc1021227-0001-pkg-devmapper-dynamically-load-dm_task_deferred_remo.patch bsc1055676-0001-daemon-oci-obey-CL_UNPRIVILEGED-for-user-namespaced-.patch docker-17.09.1_ce.tar.xz New: ---- _multibuild bsc1047218-0001-man-obey-SOURCE_DATE_EPOCH-when-generating-man-pages.patch docker-18.06.1_ce.tar.xz docker-kubic-service.conf kubelet.env private-registry-0001-Add-private-registry-mirror-support.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ docker.spec ++++++ --- /var/tmp/diff_new_pack.kP6hxQ/_old 2018-09-05 13:46:44.246074675 +0200 +++ /var/tmp/diff_new_pack.kP6hxQ/_new 2018-09-05 13:46:44.246074675 +0200 @@ -26,32 +26,46 @@ %define _fillupdir /var/adm/fillup-templates %endif +# Handle _multibuild magic. +%define flavour @BUILD_FLAVOR@%{nil} + +# We split the Name: into "realname" and "name_suffix". +%define realname docker +%if "%flavour" == "" +%define name_suffix %{nil} +%else +%define name_suffix -%{flavour} +%endif + # Used when generating the "build" information for Docker version. The value of # git_commit_epoch is unused here (we use SOURCE_DATE_EPOCH, which rpm # 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 f4ffd2511ce9 -%define git_commit_epoch 1508606827 +%define git_version e68fc7a215d7 +%define git_commit_epoch 1534871791 # 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 06b9cb35161009dcb7123345749fef02f7cea8e0 -%define required_dockerrunc 3f2f8b84a77f73d38244dd690525642a72156c64 -%define required_libnetwork 7b2b1feb1de4817d522cc372af149ff48d25028e +%define required_containerd 468a545b9edcd5932818eb9de8e72413e616e86e +%define required_dockerrunc 69663f0bd4b60df09991c08812a60108003fa340 +%define required_libnetwork 3ac297bc7fd0afec9051bbb47024c9bc1d75bf5b -Name: docker -Version: 17.09.1_ce +Name: %{realname}%{name_suffix} +Version: 18.06.1_ce Release: 0 Summary: The Linux container runtime License: Apache-2.0 Group: System/Management Url: http://www.docker.io # TODO(VR): check those SOURCE files below -Source: %{name}-%{version}.tar.xz +Source: %{realname}-%{version}.tar.xz Source1: docker.service +# bsc#1086185 -- but we only apply this on Kubic. +Source2: docker-kubic-service.conf Source3: 80-docker.rules Source4: sysconfig.docker +Source5: kubelet.env Source6: docker-rpmlintrc Source7: README_SUSE.md Source8: docker-audit.rules @@ -62,16 +76,17 @@ # branch in http://github.com/suse/docker.mirror. Patch200: secrets-0001-daemon-allow-directory-creation-in-run-secrets.patch Patch201: secrets-0002-SUSE-implement-SUSE-container-secrets.patch -# SUSE-BACKPORT: Backport of https://github.com/moby/moby/pull/35205. bsc#1055676 -Patch400: bsc1055676-0001-daemon-oci-obey-CL_UNPRIVILEGED-for-user-namespaced-.patch -# SUSE-BACKPORT: Backport of https://github.com/moby/moby/pull/35518. bsc#1021227 bsc#1029320 bsc#1058173 -Patch401: bsc1021227-0001-pkg-devmapper-dynamically-load-dm_task_deferred_remo.patch # SUSE-BACKPORT: Backport of https://github.com/moby/moby/pull/36822. bsc#1073877 -Patch402: bsc1073877-0001-apparmor-allow-receiving-of-signals-from-docker-kill.patch +Patch400: bsc1073877-0001-apparmor-allow-receiving-of-signals-from-docker-kill.patch # SUSE-BACKPORT: Backport of https://github.com/moby/moby/pull/37353. bsc#1099277 -Patch403: bsc1073877-0002-apparmor-clobber-docker-default-profile-on-start.patch +Patch401: bsc1073877-0002-apparmor-clobber-docker-default-profile-on-start.patch # SUSE-BACKPORT: Backport of https://github.com/docker/cli/pull/1242. bsc#1100727 -Patch404: bsc1100727-0001-build-add-buildmode-pie.patch +Patch402: bsc1100727-0001-build-add-buildmode-pie.patch +# SUSE-BACKPORT: Backport of https://github.com/docker/cli/pull/1306. boo#1047218 +Patch403: bsc1047218-0001-man-obey-SOURCE_DATE_EPOCH-when-generating-man-pages.patch +# SUSE-FEATURE: Add support to mirror inofficial/private registries +# (https://github.com/moby/moby/pull/34319) +Patch500: private-registry-0001-Add-private-registry-mirror-support.patch BuildRequires: audit BuildRequires: bash-completion BuildRequires: ca-certificates @@ -79,21 +94,7 @@ BuildRequires: glibc-devel-static BuildRequires: libapparmor-devel BuildRequires: libbtrfs-devel >= 3.8 -# enable libseccomp for sle >= sle12sp2 -%if 0%{?sle_version} >= 120200 -%define with_libseccomp 1 -%endif -# enable libseccomp for leap >= 42.2 -%if 0%{?leap_version} >= 420200 -%define with_libseccomp 1 -%endif -# enable libseccomp for Factory -%if 0%{?suse_version} > 1320 -%define with_libseccomp 1 -%endif -%if 0%{?with_libseccomp} -BuildRequires: libseccomp-devel -%endif +BuildRequires: libseccomp-devel >= 2.2 BuildRequires: libtool BuildRequires: procps BuildRequires: sqlite3-devel @@ -104,14 +105,14 @@ # 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-git = %{required_libnetwork} +Requires: docker-libnetwork%{name_suffix}-git = %{required_libnetwork} 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-git = %{required_containerd} -Requires: docker-runc-git = %{required_dockerrunc} +Requires: containerd%{name_suffix}-git = %{required_containerd} +Requires: docker-runc%{name_suffix}-git = %{required_dockerrunc} # Needed for --init support. We don't use "tini", we use our own implementation # which handles edge-cases better. Requires: catatonit @@ -134,11 +135,26 @@ # different storage-driver than devicemapper Recommends: lvm2 >= 2.2.89 Conflicts: lxc < 1.0 -BuildRoot: %{_tmppath}/%{name}-%{version}-build ExcludeArch: s390 ppc -# Make sure we build with go 1.8 +# Make sure we build with go 1.10 BuildRequires: go-go-md2man -BuildRequires: golang(API) = 1.8 +BuildRequires: golang(API) = 1.10 +# 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 +# -kubic packages. Hopfully it can be removed one day. +%if "%flavour" == "kubic" +# Obsolete old packege without the -kubic suffix +Obsoletes: %{realname} = 1.12.6 +Obsoletes: %{realname}_1_12_6 +# Conflict with non-kubic package, and provide equivalent +Conflicts: %{realname} +Provides: %{realname} = %{version} +# Kubernetes requires cri-runtime, which should be provided only by the -kubic flavour of this package +Provides: cri-runtime +# No i586 Kubernetes, so docker-kubic must not be built for i586 also +ExcludeArch: i586 +%endif %description Docker complements LXC with a high-level API which operates at the process @@ -153,8 +169,19 @@ Summary: Bash Completion for %{name} Group: System/Management Requires: %{name} = %{version} -Supplements: packageand(docker:bash-completion) +Supplements: packageand(%{name}:bash-completion) BuildArch: noarch +# 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 +# -kubic packages. Hopfully it can be removed one day. +%if "%flavour" == "kubic" +# Obsolete old packege without the -kubic suffix +Obsoletes: %{realname}-bash-completion = 1.12.6 +# Conflict with non-kubic package, and provide equivalent +Conflicts: %{realname}-bash-completion > 1.12.6 +Provides: %{realname}-bash-completion = %{version} +%endif %description bash-completion Bash command line completion support for %{name}. @@ -163,8 +190,19 @@ Summary: Zsh Completion for %{name} Group: System/Management Requires: %{name} = %{version} -Supplements: packageand(docker:zsh) +Supplements: packageand(%{name}:zsh) BuildArch: noarch +# 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 +# -kubic packages. Hopfully it can be removed one day. +%if "%flavour" == "kubic" +# Obsolete old packege without the -kubic suffix +Obsoletes: %{realname}-zsh-completion = 1.12.6 +# Conflict with non-kubic package, and provide equivalent +Conflicts: %{realname}-zsh-completion > 1.12.6 +Provides: %{realname}-zsh-completion = %{version} +%endif %description zsh-completion Zsh command line completion support for %{name}. @@ -183,12 +221,37 @@ Requires: procps Requires: sqlite3-devel Requires: golang(API) = 1.8 +# 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 +# -kubic packages. Hopfully it can be removed one day. +%if "%flavour" == "kubic" +# Obsolete old packege without the -kubic suffix +Obsoletes: %{realname}-test = 1.12.6 +# Conflict with non-kubic package, and provide equivalent +Conflicts: %{realname}-test > 1.12.6 +Provides: %{realname}-test = %{version} +%endif %description test Test package for docker. It contains the source code and the tests. +%if "%flavour" == "kubic" +%package kubeadm-criconfig +Summary: docker container runtime configuration for kubeadm +Group: System/Management +Requires: kubernetes-kubeadm +Requires(post): %fillup_prereq +Supplements: docker-kubic +Provides: kubernetes-kubeadm-criconfig +Conflicts: cri-o-kubeadm-criconfig + +%description kubeadm-criconfig +docker container runtime configuration for kubeadm +%endif + %prep -%setup -q +%setup -q -n %{realname}-%{version} %if 0%{?is_opensuse} # nothing %else @@ -196,25 +259,24 @@ %patch200 -p1 %patch201 -p1 %endif -# bsc#1055676 +# bsc#1073877 %patch400 -p1 -# bsc#1021227 bsc#1029320 bsc#1058173 +# bsc#1099277 %patch401 -p1 -# bsc#1073877 +# bsc#1100727 %patch402 -p1 -# bsc#1099277 +# boo#1047218 %patch403 -p1 -# bsc#1100727 -%patch404 -p1 +%if "%flavour" == "kubic" +# PATCH-SUSE: Mirror patch. +%patch500 -p1 +%endif cp %{SOURCE7} . cp %{SOURCE9} . %build -BUILDTAGS="exclude_graphdriver_aufs apparmor selinux pkcs11" -%if 0%{?with_libseccomp} -BUILDTAGS="seccomp $BUILDTAGS" -%endif +BUILDTAGS="exclude_graphdriver_aufs apparmor selinux seccomp pkcs11" %if 0%{?sle_version} == 120000 # Provided by patch406, to allow us to build with older distros but still # have deferred removal support at runtime. We only use this when building @@ -279,9 +341,9 @@ # of the upstream vendoring scripts. This is done on-build to make sure that # someone doing an update didn't miss anything. cd components/engine -grep 'RUNC_COMMIT=%{required_dockerrunc}' hack/dockerfile/binaries-commits -grep 'CONTAINERD_COMMIT=%{required_containerd}' hack/dockerfile/binaries-commits -grep 'LIBNETWORK_COMMIT=%{required_libnetwork}' hack/dockerfile/binaries-commits +grep 'RUNC_COMMIT=%{required_dockerrunc}' hack/dockerfile/install/runc.installer +grep 'CONTAINERD_COMMIT=%{required_containerd}' hack/dockerfile/install/containerd.installer +grep 'LIBNETWORK_COMMIT=%{required_libnetwork}' hack/dockerfile/install/proxy.installer %install install -d %{buildroot}%{go_contribdir} @@ -293,8 +355,8 @@ %{buildroot}%{_sysconfdir}/init.d \ %{buildroot}%{_sbindir} -install -D -m0644 components/cli/contrib/completion/bash/docker "%{buildroot}%{_sysconfdir}/bash_completion.d/%{name}" -install -D -m0644 components/cli/contrib/completion/zsh/_docker "%{buildroot}%{_sysconfdir}/zsh_completion.d/%{name}" +install -D -m0644 components/cli/contrib/completion/bash/docker "%{buildroot}%{_sysconfdir}/bash_completion.d/%{realname}" +install -D -m0644 components/cli/contrib/completion/zsh/_docker "%{buildroot}%{_sysconfdir}/zsh_completion.d/%{realname}" # copy all for the test package install -d %{buildroot}%{_prefix}/src/docker/ cp -a components/engine/. %{buildroot}%{_prefix}/src/docker/engine @@ -303,17 +365,20 @@ # # systemd service # -install -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service +install -D -m0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{realname}.service +%if "%flavour" == "kubic" +install -D -m0644 %{SOURCE2} %{buildroot}%{_unitdir}/%{realname}.service.d/90-kubic.conf +%endif ln -sf service %{buildroot}%{_sbindir}/rcdocker # # udev rules that prevents dolphin to show all docker devices and slows down # upstream report https://bugs.kde.org/show_bug.cgi?id=329930 # -install -D -m 0644 %{SOURCE3} %{buildroot}%{_udevrulesdir}/80-%{name}.rules +install -D -m 0644 %{SOURCE3} %{buildroot}%{_udevrulesdir}/80-%{realname}.rules # audit rules -install -D -m 0640 %{SOURCE8} %{buildroot}%{_sysconfdir}/audit/rules.d/%{name}.rules +install -D -m 0640 %{SOURCE8} %{buildroot}%{_sysconfdir}/audit/rules.d/%{realname}.rules # sysconfig file install -D -m 644 %{SOURCE4} %{buildroot}%{_fillupdir}/sysconfig.docker @@ -326,21 +391,42 @@ install -d %{buildroot}%{_mandir}/man8 install -p -m 644 components/cli/man/man8/*.8 %{buildroot}%{_mandir}/man8 +%if "%flavour" == "kubic" +# place kubelet.env in fillupdir (for kubeadm-criconfig) +install -D -m 0644 %{SOURCE5} %{buildroot}%{_fillupdir}/sysconfig.kubelet +%endif + %fdupes %{buildroot} %pre getent group docker >/dev/null || groupadd -r docker -%service_add_pre %{name}.service +%service_add_pre %{realname}.service %post -%service_add_post %{name}.service +%service_add_post %{realname}.service %{fillup_only -n docker} +# NOTE: This is a pretty hacky way of getting around the fact we've removed +# containerd.service and now everything is spawned underneath Docker. In +# order to force containerd.service to be stopped on the upgrade we need +# to trick the systemd macros into thinking that this is an "uninstall". +# Hopefully we can remove this soon. +( + FIRST_ARG=0 + %service_del_preun containerd.service containerd.socket + %service_del_postun containerd.service containerd.socket +) + +%if "%flavour" == "kubic" +%post kubeadm-criconfig +%fillup_only -n kubelet +%endif + %preun -%service_del_preun %{name}.service +%service_del_preun %{realname}.service %postun -%service_del_postun %{name}.service +%service_del_postun %{realname}.service %files %defattr(-,root,root) @@ -349,9 +435,13 @@ %{_bindir}/docker %{_bindir}/dockerd %{_sbindir}/rcdocker -%{_unitdir}/%{name}.service -%config %{_sysconfdir}/audit/rules.d/%{name}.rules -%{_udevrulesdir}/80-%{name}.rules +%{_unitdir}/%{realname}.service +%if "%flavour" == "kubic" +%dir %{_unitdir}/%{realname}.service.d/ +%{_unitdir}/%{realname}.service.d/90-kubic.conf +%endif +%config %{_sysconfdir}/audit/rules.d/%{realname}.rules +%{_udevrulesdir}/80-%{realname}.rules %{_fillupdir}/sysconfig.docker %dir %{_localstatedir}/lib/docker/ %{_mandir}/man1/docker-*.1%{ext_man} @@ -361,11 +451,11 @@ %files bash-completion %defattr(-,root,root) -%config %{_sysconfdir}/bash_completion.d/%{name} +%config %{_sysconfdir}/bash_completion.d/%{realname} %files zsh-completion %defattr(-,root,root) -%config %{_sysconfdir}/zsh_completion.d/%{name} +%config %{_sysconfdir}/zsh_completion.d/%{realname} %files test %defattr(-,root,root) @@ -379,4 +469,10 @@ %exclude %{_prefix}/src/docker/engine/contrib/init/sysvinit-redhat %exclude %{_prefix}/src/docker/engine/contrib/init/upstart +%if "%flavour" == "kubic" +%files kubeadm-criconfig +%defattr(-,root,root) +%{_fillupdir}/sysconfig.kubelet +%endif + %changelog ++++++ _multibuild ++++++ <multibuild> <package>kubic</package> </multibuild> ++++++ _service ++++++ --- /var/tmp/diff_new_pack.kP6hxQ/_old 2018-09-05 13:46:44.322074802 +0200 +++ /var/tmp/diff_new_pack.kP6hxQ/_new 2018-09-05 13:46:44.326074810 +0200 @@ -3,8 +3,8 @@ <param name="url">https://github.com/docker/docker-ce.git</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="versionformat">17.09.1_ce</param> - <param name="revision">v17.09.1-ce</param> + <param name="versionformat">18.06.1_ce</param> + <param name="revision">v18.06.1-ce</param> <param name="filename">docker</param> </service> <service name="recompress" mode="disabled"> ++++++ bsc1047218-0001-man-obey-SOURCE_DATE_EPOCH-when-generating-man-pages.patch ++++++ >From d84d2f13c475bf5ff0ce7b080b759b0239d5d345 Mon Sep 17 00:00:00 2001 From: Aleksa Sarai <asa...@suse.de> Date: Thu, 23 Aug 2018 19:53:55 +1000 Subject: [PATCH] man: obey SOURCE_DATE_EPOCH when generating man pages Previously our man pages included the current time each time they were generated. This causes an issue for reproducible builds, since each re-build of a package that includes the man pages will have different times listed in the man pages. To fix this, add support for SOURCE_DATE_EPOCH (which is a standardised packaging environment variable, designed to be used specifically for this purpose[1]). spf13/cobra doesn't support this natively yet (though I will push a patch for that as well), but it's simpler to fix it directly in docker/cli. [1]: https://reproducible-builds.org/specs/source-date-epoch/ SUSE-Bugs: boo#1047218 Signed-off-by: Aleksa Sarai <asa...@suse.de> --- components/cli/man/generate.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/components/cli/man/generate.go b/components/cli/man/generate.go index 4197558a2225..4a3e98fb22c1 100644 --- a/components/cli/man/generate.go +++ b/components/cli/man/generate.go @@ -6,6 +6,8 @@ import ( "log" "os" "path/filepath" + "strconv" + "time" "github.com/docker/cli/cli/command" "github.com/docker/cli/cli/command/commands" @@ -24,6 +26,17 @@ func generateManPages(opts *options) error { Source: "Docker Community", } + // If SOURCE_DATE_EPOCH is set, in order to allow reproducible package + // builds, we explicitly set the build time to SOURCE_DATE_EPOCH. + if epoch := os.Getenv("SOURCE_DATE_EPOCH"); epoch != "" { + unixEpoch, err := strconv.ParseInt(epoch, 10, 64) + if err != nil { + return fmt.Errorf("invalid SOURCE_DATE_EPOCH: %v", err) + } + now := time.Unix(unixEpoch, 0) + header.Date = &now + } + stdin, stdout, stderr := term.StdStreams() dockerCli := command.NewDockerCli(stdin, stdout, stderr, false) cmd := &cobra.Command{Use: "docker"} -- 2.18.0 ++++++ bsc1073877-0001-apparmor-allow-receiving-of-signals-from-docker-kill.patch ++++++ --- /var/tmp/diff_new_pack.kP6hxQ/_old 2018-09-05 13:46:44.338074830 +0200 +++ /var/tmp/diff_new_pack.kP6hxQ/_new 2018-09-05 13:46:44.338074830 +0200 @@ -1,4 +1,4 @@ -From 2cc9da975798847cd0a37d1571d8a0f1d72b522d Mon Sep 17 00:00:00 2001 +From 3464bd58d266b0640774952e825558044ffc64e2 Mon Sep 17 00:00:00 2001 From: Aleksa Sarai <asa...@suse.de> Date: Sun, 8 Apr 2018 20:21:30 +1000 Subject: [PATCH 1/2] apparmor: allow receiving of signals from 'docker kill' @@ -15,7 +15,7 @@ 1 file changed, 6 insertions(+) diff --git a/components/engine/profiles/apparmor/template.go b/components/engine/profiles/apparmor/template.go -index c5ea4584de6b..082638e85903 100644 +index c00a3f70e993..772c4a4873f6 100644 --- a/components/engine/profiles/apparmor/template.go +++ b/components/engine/profiles/apparmor/template.go @@ -17,6 +17,12 @@ profile {{.Name}} flags=(attach_disconnected,mediate_deleted) { @@ -32,5 +32,5 @@ deny @{PROC}/* w, # deny write for all files directly in /proc (not in a subdir) # deny write to files not in /proc/<number>/** or /proc/sys/** -- -2.17.1 +2.18.0 ++++++ bsc1073877-0002-apparmor-clobber-docker-default-profile-on-start.patch ++++++ --- /var/tmp/diff_new_pack.kP6hxQ/_old 2018-09-05 13:46:44.346074843 +0200 +++ /var/tmp/diff_new_pack.kP6hxQ/_new 2018-09-05 13:46:44.346074843 +0200 @@ -1,4 +1,4 @@ -From 8edc54753ab5ea9294c55ec32b49c9eb7cdf3892 Mon Sep 17 00:00:00 2001 +From 0954810e947abf0b4e5d8f6c78598c5d66b43952 Mon Sep 17 00:00:00 2001 From: Aleksa Sarai <asa...@suse.de> Date: Fri, 29 Jun 2018 17:59:30 +1000 Subject: [PATCH 2/2] apparmor: clobber docker-default profile on start @@ -21,7 +21,7 @@ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/components/engine/daemon/apparmor_default.go b/components/engine/daemon/apparmor_default.go -index 2a418b25c241..c3e271ee4774 100644 +index 461f5c7f96b2..8f21c5c0c566 100644 --- a/components/engine/daemon/apparmor_default.go +++ b/components/engine/daemon/apparmor_default.go @@ -14,6 +14,15 @@ const ( @@ -53,12 +53,12 @@ return nil } diff --git a/components/engine/daemon/apparmor_default_unsupported.go b/components/engine/daemon/apparmor_default_unsupported.go -index cd2dd9702ef2..17584063c711 100644 +index 51f9c526b350..97d7758442ee 100644 --- a/components/engine/daemon/apparmor_default_unsupported.go +++ b/components/engine/daemon/apparmor_default_unsupported.go @@ -2,6 +2,10 @@ - package daemon + package daemon // import "github.com/docker/docker/daemon" +func clobberDefaultAppArmorProfile() error { + return nil @@ -68,10 +68,10 @@ return nil } diff --git a/components/engine/daemon/daemon.go b/components/engine/daemon/daemon.go -index a11a1f8691cc..6f8846b19f57 100644 +index 5e5f586ae085..6ca6a7aaa268 100644 --- a/components/engine/daemon/daemon.go +++ b/components/engine/daemon/daemon.go -@@ -594,7 +594,9 @@ func NewDaemon(config *config.Config, registryService registry.Service, containe +@@ -660,7 +660,9 @@ func NewDaemon(config *config.Config, registryService registry.Service, containe logrus.Warnf("Failed to configure golang's threads limit: %v", err) } @@ -83,5 +83,5 @@ } -- -2.17.1 +2.18.0 ++++++ bsc1100727-0001-build-add-buildmode-pie.patch ++++++ --- /var/tmp/diff_new_pack.kP6hxQ/_old 2018-09-05 13:46:44.354074857 +0200 +++ /var/tmp/diff_new_pack.kP6hxQ/_new 2018-09-05 13:46:44.354074857 +0200 @@ -1,4 +1,4 @@ -From d39172ffc6b245f02da1898793ccaef20bb6858a Mon Sep 17 00:00:00 2001 +From 547870ff2904a75fa3e0ee96fa264d53a81d4c01 Mon Sep 17 00:00:00 2001 From: Aleksa Sarai <asa...@suse.de> Date: Mon, 30 Jul 2018 19:34:01 +1000 Subject: [PATCH] build: add -buildmode=pie @@ -7,6 +7,7 @@ security benefits and can help with flaky builds on POWER architectures). +SUSE-Bugs: bsc#1100727 Signed-off-by: Aleksa Sarai <asa...@suse.de> --- components/cli/scripts/build/dynbinary | 2 +- ++++++ docker-17.09.1_ce.tar.xz -> docker-18.06.1_ce.tar.xz ++++++ /work/SRC/openSUSE:Factory/docker/docker-17.09.1_ce.tar.xz /work/SRC/openSUSE:Factory/.docker.new/docker-18.06.1_ce.tar.xz differ: char 25, line 1 ++++++ docker-kubic-service.conf ++++++ [Service] # Put docker under the podruntime slice. This the recommended # deployment to allow fine resource control on Kubernetes. Slice=podruntime.slice ++++++ docker-rpmlintrc ++++++ --- /var/tmp/diff_new_pack.kP6hxQ/_old 2018-09-05 13:46:44.414074957 +0200 +++ /var/tmp/diff_new_pack.kP6hxQ/_new 2018-09-05 13:46:44.414074957 +0200 @@ -1,7 +1,9 @@ -addFilter ("^docker.x86_64: W: statically-linked-binary /usr/lib64/docker/dockerinit") -addFilter ("^docker-bash-completion.noarch: W: sourced-script-with-shebang /etc/bash_completion.d/docker bash") -addFilter ("^docker.x86_64: W: statically-linked-binary /usr/lib/docker/dockerinit") -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.*") +# This is intentional, since we use _multibuild for the flavours. +addFilter ("^docker-kubic.src: W: invalid-spec-name") + +# The #! comes from upstream. +addFilter ("^docker(-kubic)?-bash-completion.noarch: W: sourced-script-with-shebang /etc/bash_completion.d/docker bash") +addFilter ("^docker(-kubic)?-zsh-completion.noarch: W: sourced-script-with-shebang /etc/zsh_completion.d/docker zsh") + +# -test is something that is used internally and isn't actually shipped -- it's a pseduo-source package. +addFilter ("^docker(-kubic)?-test.*") ++++++ docker.service ++++++ --- /var/tmp/diff_new_pack.kP6hxQ/_old 2018-09-05 13:46:44.442075004 +0200 +++ /var/tmp/diff_new_pack.kP6hxQ/_new 2018-09-05 13:46:44.442075004 +0200 @@ -1,8 +1,7 @@ [Unit] Description=Docker Application Container Engine Documentation=http://docs.docker.com -After=network.target containerd.socket containerd.service lvm2-monitor.service SuSEfirewall2.service -Requires=containerd.socket containerd.service +After=network.target lvm2-monitor.service SuSEfirewall2.service [Service] EnvironmentFile=/etc/sysconfig/docker @@ -11,7 +10,7 @@ # enabled by default because enabling socket activation means that on boot your # containers won't start until someone tries to administer the Docker daemon. Type=notify -ExecStart=/usr/bin/dockerd --containerd /run/containerd/containerd.sock --add-runtime oci=/usr/sbin/docker-runc $DOCKER_NETWORK_OPTIONS $DOCKER_OPTS +ExecStart=/usr/bin/dockerd --add-runtime oci=/usr/sbin/docker-runc $DOCKER_NETWORK_OPTIONS $DOCKER_OPTS ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead ++++++ kubelet.env ++++++ KUBELET_EXTRA_ARGS="--cni-bin-dir=/usr/lib/cni" ++++++ private-registry-0001-Add-private-registry-mirror-support.patch ++++++ ++++ 1163 lines (skipped) ++++++ secrets-0001-daemon-allow-directory-creation-in-run-secrets.patch ++++++ --- /var/tmp/diff_new_pack.kP6hxQ/_old 2018-09-05 13:46:44.486075078 +0200 +++ /var/tmp/diff_new_pack.kP6hxQ/_new 2018-09-05 13:46:44.486075078 +0200 @@ -1,4 +1,4 @@ -From c607825b73e5f850b3804a10e9f3c8684cb29d16 Mon Sep 17 00:00:00 2001 +From 95a40e4f18c80cce91f16c6dff08e13642de54da Mon Sep 17 00:00:00 2001 From: Aleksa Sarai <asa...@suse.de> Date: Wed, 8 Mar 2017 12:41:54 +1100 Subject: [PATCH 1/2] daemon: allow directory creation in /run/secrets @@ -14,26 +14,26 @@ 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/components/engine/daemon/container_operations_unix.go b/components/engine/daemon/container_operations_unix.go -index 954c194ea836..3ef1e0262edc 100644 +index bc7ee452332b..d34129dfd80b 100644 --- a/components/engine/daemon/container_operations_unix.go +++ b/components/engine/daemon/container_operations_unix.go @@ -3,6 +3,7 @@ - package daemon + package daemon // import "github.com/docker/docker/daemon" import ( + "bytes" "context" "fmt" "io/ioutil" -@@ -13,6 +14,7 @@ import ( - +@@ -14,6 +15,7 @@ import ( "github.com/docker/docker/container" "github.com/docker/docker/daemon/links" + "github.com/docker/docker/errdefs" + "github.com/docker/docker/pkg/archive" "github.com/docker/docker/pkg/idtools" "github.com/docker/docker/pkg/mount" "github.com/docker/docker/pkg/stringid" -@@ -216,9 +218,6 @@ func (daemon *Daemon) setupSecretDir(c *container.Container) (setupErr error) { +@@ -206,9 +208,6 @@ func (daemon *Daemon) setupSecretDir(c *container.Container) (setupErr error) { if err != nil { return errors.Wrap(err, "unable to get secret from secret store") } @@ -43,7 +43,7 @@ uid, err := strconv.Atoi(s.File.UID) if err != nil { -@@ -229,6 +228,25 @@ func (daemon *Daemon) setupSecretDir(c *container.Container) (setupErr error) { +@@ -219,6 +218,25 @@ func (daemon *Daemon) setupSecretDir(c *container.Container) (setupErr error) { return err } @@ -70,5 +70,5 @@ return errors.Wrap(err, "error setting ownership for secret") } -- -2.17.0 +2.18.0 ++++++ secrets-0002-SUSE-implement-SUSE-container-secrets.patch ++++++ --- /var/tmp/diff_new_pack.kP6hxQ/_old 2018-09-05 13:46:44.494075091 +0200 +++ /var/tmp/diff_new_pack.kP6hxQ/_new 2018-09-05 13:46:44.494075091 +0200 @@ -1,4 +1,4 @@ -From a7533a3084e925eb478148ef30bec0d1f1b81ae3 Mon Sep 17 00:00:00 2001 +From f178392f98b42bf36ff8d8c6a23c8caab9ac10f7 Mon Sep 17 00:00:00 2001 From: Aleksa Sarai <asa...@suse.de> Date: Wed, 8 Mar 2017 11:43:29 +1100 Subject: [PATCH 2/2] SUSE: implement SUSE container secrets @@ -10,36 +10,36 @@ SUSE-SPECIFIC, AND UPSTREAM DOES NOT APPROVE OF THIS CONCEPT BECAUSE IT MAKES BUILDS NOT ENTIRELY REPRODUCIBLE. -SUSE-Bugs: bsc#1065609 bsc#1057743 bsc#1055676 bsc#1030702 +SUSE-Bugs: bsc#1057743 bsc#1055676 bsc#1030702 Signed-off-by: Aleksa Sarai <asa...@suse.de> --- components/engine/daemon/start.go | 5 + - components/engine/daemon/suse_secrets.go | 399 +++++++++++++++++++++++ - 2 files changed, 404 insertions(+) + components/engine/daemon/suse_secrets.go | 396 +++++++++++++++++++++++ + 2 files changed, 401 insertions(+) create mode 100644 components/engine/daemon/suse_secrets.go diff --git a/components/engine/daemon/start.go b/components/engine/daemon/start.go -index 55438cf2c45f..7dfa6cd1d055 100644 +index c00bd9ceb22b..aa705888df39 100644 --- a/components/engine/daemon/start.go +++ b/components/engine/daemon/start.go -@@ -147,6 +147,11 @@ func (daemon *Daemon) containerStart(container *container.Container, checkpoint +@@ -151,6 +151,11 @@ func (daemon *Daemon) containerStart(container *container.Container, checkpoint return err } + // SUSE:secrets -- inject the SUSE secret store + if err := daemon.injectSuseSecretStore(container); err != nil { -+ return err ++ return errdefs.System(err) + } + spec, err := daemon.createSpec(container) if err != nil { - return systemError{err} + return errdefs.System(err) diff --git a/components/engine/daemon/suse_secrets.go b/components/engine/daemon/suse_secrets.go new file mode 100644 -index 000000000000..00e485368b47 +index 000000000000..817cd5561023 --- /dev/null +++ b/components/engine/daemon/suse_secrets.go -@@ -0,0 +1,399 @@ +@@ -0,0 +1,396 @@ +/* + * suse-secrets: patch for Docker to implement SUSE secrets + * Copyright (C) 2017 SUSE LLC. @@ -143,10 +143,6 @@ + var suseFiles []*SuseFakeFile + + path := filepath.Join(prefix, dir) -+ if _, err := os.Lstat(path); err != nil && os.IsNotExist(err) { -+ // If the path doesn't exist at all we don't inject anything. -+ return nil, nil -+ } + fi, err := os.Stat(path) + if err != nil { + // Ignore dangling symlinks. @@ -263,10 +259,6 @@ +// readFile returns a secret given a file under a given prefix. +func readFile(prefix, file string) ([]*SuseFakeFile, error) { + path := filepath.Join(prefix, file) -+ if _, err := os.Lstat(path); err != nil && os.IsNotExist(err) { -+ // If the path doesn't exist at all we don't inject anything. -+ return nil, nil -+ } + fi, err := os.Stat(path) + if err != nil { + // Ignore dangling symlinks. @@ -430,7 +422,12 @@ + // to the mount list. This causes clashes because of duplicate namespaces. + // If we see an existing mount that will clash with the in-built secrets + // mount we assume it's our fault. -+ for _, intendedMount := range c.SecretMounts() { ++ intendedMounts, err := c.SecretMounts() ++ if err != nil { ++ logrus.Warnf("SUSE:secrets :: fetching old secret mounts: %v", err) ++ return err ++ } ++ for _, intendedMount := range intendedMounts { + mountPath := intendedMount.Destination + if volume, ok := c.MountPoints[mountPath]; ok { + logrus.Debugf("SUSE:secrets :: removing pre-existing %q mount: %#v", mountPath, volume) @@ -440,5 +437,5 @@ + return nil +} -- -2.17.0 +2.18.0