blob: 9461cdb385f6bea0fa9b78ae4f4cf060d2105256 [file] [log] [blame]
Serge Bazanskif369cfa2020-05-22 18:36:42 +02001// Copyright 2020 The Monogon Project Authors.
2//
3// SPDX-License-Identifier: Apache-2.0
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16
Serge Bazanski4b1e37c2021-09-28 12:49:15 +020017package fietsje
18
19// deps_containerd.go contains all dependencies required by containerd/runc.
Serge Bazanskif369cfa2020-05-22 18:36:42 +020020
21func depsContainerd(p *planner) {
22 p.collectOverride(
Serge Bazanskif12bedf2021-01-15 16:58:50 +010023 "github.com/containerd/containerd", "v1.4.3",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020024 buildTags("no_zfs", "no_aufs", "no_devicemapper", "no_btrfs"),
25 disabledProtoBuild,
Serge Bazanskif369cfa2020-05-22 18:36:42 +020026 ).use(
27 "github.com/BurntSushi/toml",
28 "github.com/Microsoft/go-winio",
29 "github.com/beorn7/perks",
30 "github.com/cespare/xxhash/v2",
31 "github.com/cilium/ebpf",
32 "github.com/containerd/btrfs",
33 "github.com/containerd/console",
34 "github.com/containerd/continuity",
35 "github.com/containerd/fifo",
36 "github.com/containerd/go-cni",
37 "github.com/containerd/go-runc",
Lorenz Brunb876fc32020-07-14 13:54:01 +020038 "github.com/containerd/imgcrypt",
39 "github.com/containers/ocicrypt",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020040 "github.com/containerd/typeurl",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020041 "github.com/coreos/go-systemd/v22",
Lorenz Brunb876fc32020-07-14 13:54:01 +020042 "github.com/cpuguy83/go-md2man/v2",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020043 "github.com/davecgh/go-spew",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020044 "github.com/docker/docker",
45 "github.com/docker/go-events",
46 "github.com/docker/go-metrics",
47 "github.com/docker/go-units",
48 "github.com/docker/spdystream",
49 "github.com/emicklei/go-restful",
Lorenz Brunb876fc32020-07-14 13:54:01 +020050 "github.com/fullsailor/pkcs7",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020051 "github.com/godbus/dbus/v5",
52 "github.com/gogo/protobuf",
Lorenz Brunb876fc32020-07-14 13:54:01 +020053 "github.com/go-logr/logr",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020054 "github.com/google/gofuzz",
55 "github.com/google/uuid",
56 "github.com/hashicorp/errwrap",
57 "github.com/hashicorp/go-multierror",
58 "github.com/hashicorp/golang-lru",
59 "github.com/imdario/mergo",
60 "github.com/json-iterator/go",
61 "github.com/konsorten/go-windows-terminal-sequences",
62 "github.com/matttproud/golang_protobuf_extensions",
63 "github.com/modern-go/concurrent",
64 "github.com/modern-go/reflect2",
65 "github.com/opencontainers/go-digest",
66 "github.com/opencontainers/image-spec",
67 "github.com/opencontainers/runc",
68 "github.com/opencontainers/runtime-spec",
69 "github.com/pkg/errors",
70 "github.com/prometheus/client_golang",
71 "github.com/prometheus/client_model",
72 "github.com/prometheus/common",
73 "github.com/prometheus/procfs",
Lorenz Brunb876fc32020-07-14 13:54:01 +020074 "github.com/russross/blackfriday/v2",
Serge Bazanskid9ed6562021-01-07 16:06:44 +010075 "github.com/shurcooL/sanitized_anchor_name",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020076 "github.com/sirupsen/logrus",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020077 "github.com/syndtr/gocapability",
78 "github.com/tchap/go-patricia",
79 "github.com/urfave/cli",
80 "go.etcd.io/bbolt",
81 "go.opencensus.io",
82 "golang.org/x/crypto",
83 "golang.org/x/oauth2",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020084 "google.golang.org/genproto",
85 "gopkg.in/inf.v0",
86 "gopkg.in/yaml.v2",
Lorenz Brunb876fc32020-07-14 13:54:01 +020087 "k8s.io/klog/v2",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020088 "sigs.k8s.io/yaml",
Lorenz Brunc2e3b1b2021-11-11 11:06:41 +010089 ).with(useImportAliasNaming).use(
90 "golang.org/x/sync",
Lorenz Brun74e8e5c2021-01-26 14:00:50 +010091 ).with(disabledProtoBuild, patches("containerd-netns-statedir.patch")).use(
92 "github.com/containerd/cri",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020093 ).with(disabledProtoBuild).use(
94 "github.com/Microsoft/hcsshim",
95 "github.com/containerd/cgroups",
Lorenz Brun74e8e5c2021-01-26 14:00:50 +010096
Serge Bazanskif369cfa2020-05-22 18:36:42 +020097 "github.com/gogo/googleapis",
98 ).with(buildTags("selinux")).use(
99 "github.com/opencontainers/selinux",
Serge Bazanskif12bedf2021-01-15 16:58:50 +0100100 "github.com/willf/bitset",
101 ).with(patches(
102 "ttrpc-hacks.patch",
103 )).use(
104 "github.com/containerd/ttrpc",
Lorenz Brun74e8e5c2021-01-26 14:00:50 +0100105 ).with(patches(
106 "cni-fix-cachepath.patch",
107 )).use("github.com/containernetworking/cni").replace(
Serge Bazanskif12bedf2021-01-15 16:58:50 +0100108 // ttrpc is broken by go protobuf v2, this is a tentative PR that's
109 // not yet merged by upstream.
110 // See: https://github.com/containerd/ttrpc/pull/67
111 //
Serge Bazanski216fe7b2021-05-21 18:36:16 +0200112 // It also contains our own fix that builds up on the above and allows services to
113 // return the original status error library values. This is required for ttrpc to
114 // actually work from runsc and for results to be correctly interpreted by
115 // containerd. See:
116 // https://github.com/monogon-dev/ttrpc/commit/222b428f008e3ecb11cfff12e3fd92e3143a2f01
Serge Bazanskif12bedf2021-01-15 16:58:50 +0100117 //
118 // Note: this is not a good fix, and has known issues, like not being
119 // able to return Details in gRPC status errors. However, with the
120 // limited usage within gvisor/containerd it works. In the future
121 // upstream will have to resolve this properly, eg. port ttrpc away
122 // from gogo, or fix gogo to work with the new protobuf APU.
123 "github.com/containerd/ttrpc",
124 "github.com/monogon-dev/ttrpc", "222b428f008e3ecb11cfff12e3fd92e3143a2f01",
125 )
126
Serge Bazanski216fe7b2021-05-21 18:36:16 +0200127 // This is depended on by github.com/containerd/containerd, but not mentioned in
128 // their vendor.conf. They seem to be moving off of vendoring to gomod, so this
129 // should be reverted on the next containerd bump (when fietsje will panic about
130 // vendor.conf missing).
Serge Bazanskif12bedf2021-01-15 16:58:50 +0100131 p.collectOverride(
132 "github.com/checkpoint-restore/go-criu/v4", "v4.1.0",
Serge Bazanskif369cfa2020-05-22 18:36:42 +0200133 )
134
135 // containernetworking/plugins
136 p.collectOverride(
137 "github.com/containernetworking/plugins", "v0.8.2",
Serge Bazanskif369cfa2020-05-22 18:36:42 +0200138 ).use(
139 "github.com/alexflint/go-filemutex",
140 "github.com/coreos/go-iptables",
141 "github.com/j-keck/arping",
142 "github.com/safchain/ethtool",
143 )
144}