On Mon, Jan 6, 2020 at 11:31 AM Arnaud Rebillout
<arnaud.rebill...@collabora.com> wrote:
>
>    Hi Shengjing,
>
>
>  > I think nowadays the docker upstream has much improvement on the
> dependencies versions.
>
> there are two things that prevent the docker.io package to depend on the
> containerd package.
>
>
> ---- 1st issue: versions ----
>
> On the branch `19.03`, docker vendors containerd as such:
>
>    github.com/containerd/containerd 7c1e88399ec0b0b077121d9d5ad97e647b11c870
> https://github.com/containerd/containerd/commit/7c1e88399ec0b0b077121d9d5ad97e647b11c870
>
>
> which is somewhere on the master branch (date: 08-05-2019), and after
> the tag v1.2.0.
>
> On the branch `master`, docker vendors containers as such:
>
>    github.com/containerd/containerd acdcf13d5eaf0dfe0eaeabe7194a82535549bc2b
> https://github.com/containerd/containerd/commit/acdcf13d5eaf0dfe0eaeabe7194a82535549bc2b
>
> which is somewhere on the master branch (date: 14-10-2019), and after
> the tag v1.3.0.
>
> Docker never tried to settled on a tag of containerd, and I see that to
> this date it's still true: docker will just vendor whatever containerd
> commit from the master branch.
>
> For Debian packaging it's obviously an issue, because you will package a
> specific tag of containerd, and then it's likely docker won't build
> against it, and we'll have to do some desperate patching to make the
> pieces fit together (last time I looked into it, the patching involved
> was not trivial).
>

Oh, there's still some mess.

I think I can work with upstream (at least) to use containerd
release/1.3 branch for next release.

But I think generally upstream has managed to use released containerd
version, at least in their deb/rpm repo.
(IIRC they have built containerd separately last year or so.)
https://download.docker.com/linux/debian/dists/buster/pool/stable/amd64/
You can see containerd-1.2.10 things.

>
> ---- 2nd issue: circular dependencies ----
>
> I'm not sure how much it's still true, but the last time I looked into
> it, there was some non-trivial circular dependencies between both
> packages, making it impractical, or impossible, to package both separately.
>
> Do you know if containerd still build depends on Docker these days? If
> so, how much of docker codebase is pulled in?
>
>

containerd(without cri) don't import github.com/docker/docker.
But containerd-cri needs some functions from docker repo.
But you can build containerd with no_cri tag(I think this should be
used when building docker, next release).

In the src:containerd/experimental, I kept docker/docker in vendor to
avoid circular problem.
https://salsa.debian.org/go-team/packages/containerd/tree/master/vendor/github.com/docker

-- 
Shengjing Zhu

Reply via email to