SPECS: Add Docker runtime and module dependencies#792
Conversation
|
Why not package the Moby (Docker) program as the main package, then you can package the modules as sub-packages? |
94d8977 to
f7db452
Compare
| BuildSystem: golangmodules | ||
| BuildOption(check): -vet=off |
There was a problem hiding this comment.
| BuildSystem: golangmodules | |
| BuildOption(check): -vet=off | |
| BuildSystem: golangmodules | |
| BuildOption(check): -vet=off |
| BuildSystem: golangmodules | ||
| BuildOption(check): -vet=off |
There was a problem hiding this comment.
| BuildSystem: golangmodules | |
| BuildOption(check): -vet=off | |
| BuildSystem: golangmodules | |
| BuildOption(check): -vet=off |
| BuildSystem: golangmodules | ||
| BuildOption(check): -vet=off |
There was a problem hiding this comment.
| BuildSystem: golangmodules | |
| BuildOption(check): -vet=off | |
| BuildSystem: golangmodules | |
| BuildOption(check): -vet=off |
| # SPDX-License-Identifier: MulanPSL-2.0 | ||
|
|
||
| %define _name errdefs | ||
| %define go_import_path github.com/containerd/errdefs/pkg |
There was a problem hiding this comment.
Why noe package github.com/containerd/errdefs?
| %define _name containerd-api | ||
| %define go_import_path github.com/containerd/containerd/api | ||
|
|
||
| Name: go-github-containerd-containerd-api |
| # require extra host storage stacks. This follows upstream's packager guidance. | ||
| %define docker_buildtags exclude_graphdriver_btrfs exclude_graphdriver_zfs | ||
|
|
||
| Name: docker |
There was a problem hiding this comment.
Use the name moby, and Provides: docker = %{version}-%{release}.
| # BuildSystem: golang has already populated GOPATH before this custom section. | ||
| # Drop upstream's vendored copies there so the build uses distribution modules. |
There was a problem hiding this comment.
This sentence is so ChatGPT. Rewrite in plain English instead.
| %{__make} -j1 VERSION=v%{version} REVISION=%{commit_id} \ | ||
| BUILDTAGS="%{containerd_buildtags}" \ | ||
| bin/containerd bin/containerd-shim \ | ||
| bin/containerd-shim-runc-v1 bin/containerd-shim-runc-v2 |
There was a problem hiding this comment.
Why don't we just make binaries? Also, why -j1?
| %go_common | ||
| cd %{_builddir}/go/src/%{go_import_path} | ||
| export CGO_ENABLED=1 | ||
| export GOTOOLCHAIN=local | ||
| # Test the internal dependency closure of the binaries shipped by this build. | ||
| # Disable vet only: Go 1.26 rejects two legacy printf formats before tests run. | ||
| packages=$(go list -tags "%{containerd_buildtags}" -deps \ | ||
| ./cmd/containerd ./cmd/containerd-shim \ | ||
| ./cmd/containerd-shim-runc-v1 ./cmd/containerd-shim-runc-v2 | \ | ||
| grep '^github.com/containerd/containerd\(/\|$\)') | ||
| go test -vet=off -tags "%{containerd_buildtags}" $packages |
There was a problem hiding this comment.
I don't think it's necessary to do these kinds of tests...
| %define api_version 1.54.2 | ||
| %define api_dir moby-api-v%{api_version} | ||
| %define client_import_path github.com/moby/moby/client | ||
| %define client_version 0.4.1 |
There was a problem hiding this comment.
Where to check these versions? Please add necessary comments.
| export CGO_ENABLED=1 | ||
| export GOTOOLCHAIN=local | ||
| export VERSION=%{docker_version} | ||
| export DOCKER_GITCOMMIT=3ef3c07c883be49a2e8097bcf6d2952fce1d70eb |
There was a problem hiding this comment.
Where to get this data? Maybe try to macro this w/ comments.
3986588 to
1f7217f
Compare
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Signed-off-by: cl2t <yihong.or@isrc.iscas.ac.cn>
Summary
Add Docker 28.5.2 as the main package from the Moby source tree, together with containerd 1.7.28 and the Go dependency closure needed for a non-vendored containerd build.
dockerd,docker-proxy, systemd units, a real sysusers configuration, and thetiniintegration.go-github-moby-moby-apiandgo-github-moby-moby-clientsubpackages. Their virtual Provides match the modules pinned by Prometheus v3.12.0.ctr, and related unused dependencies are excluded.github.com/containerd/errdefs/pkgv0.3.0 and updategithub.com/containerd/typeurl/v2to v2.2.0 for the Moby client dependency closure.libsystemddevelopment/runtime dependency and disabling incompatible vet checks without hiding compilation errors.Related Issue
Validation
pre-commitpasses for all 29 changed files, and non-patch diff checks are clean.home:cl_2:pr792-fix-puremainsucceeds for all 26 source packages on both x86_64 and riscv64.dockerd --versionanddocker-proxy --versionreport 28.5.2 on both architectures.go(github.com/moby/moby/api) = 1.54.2andgo(github.com/moby/moby/client) = 0.4.1; their declared dependencies resolve in the pure-main project.dockerdanddocker-proxycommand-package tests, then compiles every packaged Moby API/client library package against distribution dependencies.containerd/errdefs/pkgpass their upstream Go tests locally; Prometheus'discovery/mobytests pass with the pinned modules.Checklist
Assisted-by: Codex:GPT-5