Date   

Re: [hardknott][PATCH] containerd: fix CVE-2021-3121

Martin Jansa
 

This seems to introduce:
ERROR: containerd-opencontainers-v1.4.3+gitAUTOINC+33d90b72d1-r0 do_patch: Fuzz detected:

Applying patch CVE-2021-3121.patch
patching file src/import/api/events/container.pb.go
patching file src/import/api/events/content.pb.go
patching file src/import/api/events/image.pb.go
patching file src/import/api/events/namespace.pb.go
patching file src/import/api/events/snapshot.pb.go
patching file src/import/api/events/task.pb.go
patching file src/import/api/services/containers/v1/containers.pb.go
patching file src/import/api/services/content/v1/content.pb.go
patching file src/import/api/services/diff/v1/diff.pb.go
patching file src/import/api/services/events/v1/events.pb.go
patching file src/import/api/services/images/v1/images.pb.go
patching file src/import/api/services/introspection/v1/introspection.pb.go
patching file src/import/api/services/leases/v1/leases.pb.go
patching file src/import/api/services/namespaces/v1/namespace.pb.go
patching file src/import/api/services/snapshots/v1/snapshots.pb.go
patching file src/import/api/services/tasks/v1/tasks.pb.go
Hunk #1 succeeded at 9 with fuzz 2.
patching file src/import/api/services/ttrpc/events/v1/events.pb.go
patching file src/import/api/services/version/v1/version.pb.go
patching file src/import/api/types/descriptor.pb.go
patching file src/import/api/types/metrics.pb.go
patching file src/import/api/types/mount.pb.go
patching file src/import/api/types/platform.pb.go
patching file src/import/api/types/task/task.pb.go
patching file src/import/runtime/linux/runctypes/runc.pb.go
patching file src/import/runtime/v1/shim/v1/shim.pb.go
patching file src/import/runtime/v2/runc/options/oci.pb.go
patching file src/import/runtime/v2/task/shim.pb.go
Hunk #1 succeeded at 10 with fuzz 1.
patching file src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
patching file src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go
patching file src/import/vendor/github.com/gogo/protobuf/types/any.pb.go
patching file src/import/vendor/github.com/gogo/protobuf/types/api.pb.go
patching file src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go
patching file src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go
patching file src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
patching file src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go
patching file src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go
patching file src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
patching file src/import/vendor/github.com/gogo/protobuf/types/type.pb.go
patching file src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go


The context lines in the patches can be updated with devtool:

    devtool modify containerd-opencontainers
    devtool finish --force-patch-refresh containerd-opencontainers <layer_path>

Don't forget to review changes done by devtool!

ERROR: containerd-opencontainers-v1.4.3+gitAUTOINC+33d90b72d1-r0 do_patch: QA Issue: Patch log indicates that patches do not apply cleanly. [patch-fuzz]

will send a fix shortly unless you're already cooking one.

On Tue, Apr 20, 2021 at 11:01 PM Bruce Ashfield <bruce.ashfield@...> wrote:

In message: [meta-virtualization][hardknott][PATCH] containerd: fix CVE-2021-3121
on 20/04/2021 Trevor Gamblin wrote:

> The master branch contains an uprev for containerd that includes the
> fix, so backport the patch separately for hardknott.
>
> Tested by pulling a hello-world image with podman to
> core-image-full-cmdline, with the following added to local.conf:
>
> DISTRO_FEATURES_append = " systemd seccomp"
> VIRTUAL-RUNTIME_init_manager = "systemd"
> DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
> VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
> NETWORK_MANAGER = "systemd"
> IMAGE_ROOTFS_EXTRA_SPACE = "8192000"
> PREFERRED_PROVIDER_virtual/containerd = "containerd-opencontainers"
> IMAGE_INSTALL_append = " podman virtual/containerd"

Thanks for the fix! I've queued it for hardknott.

Bruce

>
> Signed-off-by: Trevor Gamblin <trevor.gamblin@...>
> ---
>  .../containerd-opencontainers_git.bb          |    1 +
>  .../containerd/files/CVE-2021-3121.patch      | 4035 +++++++++++++++++
>  2 files changed, 4036 insertions(+)
>  create mode 100644 recipes-containers/containerd/files/CVE-2021-3121.patch
>
> diff --git a/recipes-containers/containerd/containerd-opencontainers_git.bb b/recipes-containers/containerd/containerd-opencontainers_git.bb
> index efa3626..9d33676 100644
> --- a/recipes-containers/containerd/containerd-opencontainers_git.bb
> +++ b/recipes-containers/containerd/containerd-opencontainers_git.bb
> @@ -9,6 +9,7 @@ SRCREV = "33d90b72d1e44987118ac111d4f7a108d412099b"
>  SRC_URI = "git://github.com/containerd/containerd;branch=release/1.4 \
>             file://0001-build-use-oe-provided-GO-and-flags.patch \
>             file://0001-Add-build-option-GODEBUG-1.patch \
> +           file://CVE-2021-3121.patch \
>            "

>  # Apache-2.0 for containerd
> diff --git a/recipes-containers/containerd/files/CVE-2021-3121.patch b/recipes-containers/containerd/files/CVE-2021-3121.patch
> new file mode 100644
> index 0000000..1a2c0f4
> --- /dev/null
> +++ b/recipes-containers/containerd/files/CVE-2021-3121.patch
> @@ -0,0 +1,4035 @@
> +From 9bd7f1043ce566d4600a8c61cd45bc99b2b17e36 Mon Sep 17 00:00:00 2001
> +From: Trevor Gamblin <trevor.gamblin@...>
> +Date: Tue, 20 Apr 2021 11:21:08 -0400
> +Subject: [PATCH] CVE-2021-3121
> +
> +Backports the fix at https://github.com/containerd/containerd/commit/1423e919,
> +but with extra refactors for pulled in from later versions to make the
> +fix apply correctly.
> +
> +Upstream-Status: Backport
> +CVE: CVE-2021-3121
> +
> +Signed-off-by: Trevor Gamblin <trevor.gamblin@...>
> +---
> + src/import/api/events/container.pb.go                    |  22 +-
> + src/import/api/events/content.pb.go                      |   5 +-
> + src/import/api/events/image.pb.go                        |  19 +-
> + src/import/api/events/namespace.pb.go                    |  19 +-
> + src/import/api/events/snapshot.pb.go                     |  15 +-
> + src/import/api/events/task.pb.go                         |  55 +-
> + src/import/api/services/containers/v1/containers.pb.go   |  64 +--
> + src/import/api/services/content/v1/content.pb.go         |  94 +---
> + src/import/api/services/diff/v1/diff.pb.go               |  24 +-
> + src/import/api/services/events/v1/events.pb.go           |  20 +-
> + src/import/api/services/images/v1/images.pb.go           |  52 +-
> + src/import/.../introspection/v1/introspection.pb.go      |  22 +-
> + src/import/api/services/leases/v1/leases.pb.go           |  59 +--
> + src/import/api/services/namespaces/v1/namespace.pb.go    |  52 +-
> + src/import/api/services/snapshots/v1/snapshots.pb.go     |  98 +---
> + src/import/api/services/tasks/v1/tasks.pb.go             | 484 +++++++++++-------
> + src/import/api/services/ttrpc/events/v1/events.pb.go     |  10 +-
> + src/import/api/services/version/v1/version.pb.go         |   5 +-
> + src/import/api/types/descriptor.pb.go                    |   7 +-
> + src/import/api/types/metrics.pb.go                       |   5 +-
> + src/import/api/types/mount.pb.go                         |   5 +-
> + src/import/api/types/platform.pb.go                      |   5 +-
> + src/import/api/types/task/task.pb.go                     |  10 +-
> + src/import/runtime/linux/runctypes/runc.pb.go            |  20 +-
> + src/import/runtime/v1/shim/v1/shim.pb.go                 | 100 +---
> + src/import/runtime/v2/runc/options/oci.pb.go             |  15 +-
> + src/import/runtime/v2/task/shim.pb.go                    | 470 ++++++++++-------
> + src/import/.../protobuf/plugin/unmarshal/unmarshal.go    |  16 +-
> + src/import/.../gogo/protobuf/proto/text_parser.go        |   2 +-
> + src/import/.../github.com/gogo/protobuf/types/any.pb.go  |   5 +-
> + src/import/.../github.com/gogo/protobuf/types/api.pb.go  |  15 +-
> + src/import/.../gogo/protobuf/types/duration.pb.go        |   5 +-
> + src/import/.../gogo/protobuf/types/empty.pb.go           |   5 +-
> + src/import/.../gogo/protobuf/types/field_mask.pb.go      |   5 +-
> + src/import/.../gogo/protobuf/types/source_context.pb.go  |   5 +-
> + src/import/.../gogo/protobuf/types/struct.pb.go          |  17 +-
> + src/import/.../gogo/protobuf/types/timestamp.pb.go       |   5 +-
> + src/import/.../github.com/gogo/protobuf/types/type.pb.go |  25 +-
> + src/import/.../gogo/protobuf/types/wrappers.pb.go        |  45 +-
> + 39 files changed, 773 insertions(+), 1133 deletions(-)
> +
> +diff --git a/src/import/api/events/container.pb.go b/src/import/api/events/container.pb.go
> +index 0c1e0a939..fe002e073 100644
> +--- a/src/import/api/events/container.pb.go
> ++++ b/src/import/api/events/container.pb.go
> +@@ -835,10 +835,7 @@ func (m *ContainerCreate) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainer
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainer
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -957,10 +954,7 @@ func (m *ContainerCreate_Runtime) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainer
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainer
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1185,7 +1179,7 @@ func (m *ContainerUpdate) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthContainer
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -1234,10 +1228,7 @@ func (m *ContainerUpdate) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainer
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainer
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1320,10 +1311,7 @@ func (m *ContainerDelete) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainer
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainer
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/events/content.pb.go b/src/import/api/events/content.pb.go
> +index 959ea72d8..0a7ec9325 100644
> +--- a/src/import/api/events/content.pb.go
> ++++ b/src/import/api/events/content.pb.go
> +@@ -257,10 +257,7 @@ func (m *ContentDelete) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/events/image.pb.go b/src/import/api/events/image.pb.go
> +index 13f60b017..747026945 100644
> +--- a/src/import/api/events/image.pb.go
> ++++ b/src/import/api/events/image.pb.go
> +@@ -697,7 +697,7 @@ func (m *ImageCreate) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthImage
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -714,10 +714,7 @@ func (m *ImageCreate) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImage
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImage
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -910,7 +907,7 @@ func (m *ImageUpdate) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthImage
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -927,10 +924,7 @@ func (m *ImageUpdate) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImage
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImage
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1013,10 +1007,7 @@ func (m *ImageDelete) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImage
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImage
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/events/namespace.pb.go b/src/import/api/events/namespace.pb.go
> +index 37c3b78cf..d406a987e 100644
> +--- a/src/import/api/events/namespace.pb.go
> ++++ b/src/import/api/events/namespace.pb.go
> +@@ -697,7 +697,7 @@ func (m *NamespaceCreate) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthNamespace
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -714,10 +714,7 @@ func (m *NamespaceCreate) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -910,7 +907,7 @@ func (m *NamespaceUpdate) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthNamespace
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -927,10 +924,7 @@ func (m *NamespaceUpdate) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1013,10 +1007,7 @@ func (m *NamespaceDelete) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/events/snapshot.pb.go b/src/import/api/events/snapshot.pb.go
> +index 539297004..bec25c3a7 100644
> +--- a/src/import/api/events/snapshot.pb.go
> ++++ b/src/import/api/events/snapshot.pb.go
> +@@ -548,10 +548,7 @@ func (m *SnapshotPrepare) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshot
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshot
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -666,10 +663,7 @@ func (m *SnapshotCommit) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshot
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshot
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -752,10 +746,7 @@ func (m *SnapshotRemove) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshot
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshot
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/events/task.pb.go b/src/import/api/events/task.pb.go
> +index 0f16695e3..f8f3a3f3d 100644
> +--- a/src/import/api/events/task.pb.go
> ++++ b/src/import/api/events/task.pb.go
> +@@ -1905,10 +1905,7 @@ func (m *TaskCreate) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2010,10 +2007,7 @@ func (m *TaskStart) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2199,10 +2193,7 @@ func (m *TaskDelete) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2369,10 +2360,7 @@ func (m *TaskIO) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2558,10 +2546,7 @@ func (m *TaskExit) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2644,10 +2629,7 @@ func (m *TaskOOM) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2762,10 +2744,7 @@ func (m *TaskExecAdded) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2899,10 +2878,7 @@ func (m *TaskExecStarted) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2985,10 +2961,7 @@ func (m *TaskPaused) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3071,10 +3044,7 @@ func (m *TaskResumed) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3189,10 +3159,7 @@ func (m *TaskCheckpointed) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/containers/v1/containers.pb.go b/src/import/api/services/containers/v1/containers.pb.go
> +index d951b2683..af56c7de2 100644
> +--- a/src/import/api/services/containers/v1/containers.pb.go
> ++++ b/src/import/api/services/containers/v1/containers.pb.go
> +@@ -2106,7 +2106,7 @@ func (m *Container) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthContainers
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -2469,7 +2469,7 @@ func (m *Container) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthContainers
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -2486,10 +2486,7 @@ func (m *Container) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2608,10 +2605,7 @@ func (m *Container_Runtime) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2694,10 +2688,7 @@ func (m *GetContainerRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2781,10 +2772,7 @@ func (m *GetContainerResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2867,10 +2855,7 @@ func (m *ListContainersRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2955,10 +2940,7 @@ func (m *ListContainersResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3042,10 +3024,7 @@ func (m *CreateContainerRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3129,10 +3108,7 @@ func (m *CreateContainerResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3252,10 +3228,7 @@ func (m *UpdateContainerRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3339,10 +3312,7 @@ func (m *UpdateContainerResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3425,10 +3395,7 @@ func (m *DeleteContainerRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3515,10 +3482,7 @@ func (m *ListContainerMessage) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContainers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContainers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/content/v1/content.pb.go b/src/import/api/services/content/v1/content.pb.go
> +index 1cf0aaa91..97c7d4a92 100644
> +--- a/src/import/api/services/content/v1/content.pb.go
> ++++ b/src/import/api/services/content/v1/content.pb.go
> +@@ -3280,7 +3280,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthContent
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -3297,10 +3297,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3383,10 +3380,7 @@ func (m *InfoRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3470,10 +3464,7 @@ func (m *InfoResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3593,10 +3584,7 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3680,10 +3668,7 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3766,10 +3751,7 @@ func (m *ListContentRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3854,10 +3836,7 @@ func (m *ListContentResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3940,10 +3919,7 @@ func (m *DeleteContentRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4064,10 +4040,7 @@ func (m *ReadContentRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4171,10 +4144,7 @@ func (m *ReadContentResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4393,10 +4363,7 @@ func (m *Status) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4479,10 +4446,7 @@ func (m *StatusRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4569,10 +4533,7 @@ func (m *StatusResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4655,10 +4616,7 @@ func (m *ListStatusesRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4743,10 +4701,7 @@ func (m *ListStatusesResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5062,7 +5017,7 @@ func (m *WriteContentRequest) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthContent
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -5079,10 +5034,7 @@ func (m *WriteContentRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5288,10 +5240,7 @@ func (m *WriteContentResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5374,10 +5323,7 @@ func (m *AbortRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthContent
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthContent
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/diff/v1/diff.pb.go b/src/import/api/services/diff/v1/diff.pb.go
> +index 48379234d..b1450ceb8 100644
> +--- a/src/import/api/services/diff/v1/diff.pb.go
> ++++ b/src/import/api/services/diff/v1/diff.pb.go
> +@@ -1063,7 +1063,7 @@ func (m *ApplyRequest) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthDiff
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -1080,10 +1080,7 @@ func (m *ApplyRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthDiff
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthDiff
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1170,10 +1167,7 @@ func (m *ApplyResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthDiff
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthDiff
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1466,7 +1460,7 @@ func (m *DiffRequest) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthDiff
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -1483,10 +1477,7 @@ func (m *DiffRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthDiff
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthDiff
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1573,10 +1564,7 @@ func (m *DiffResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthDiff
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthDiff
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/events/v1/events.pb.go b/src/import/api/services/events/v1/events.pb.go
> +index a1674f862..4373f3bf2 100644
> +--- a/src/import/api/services/events/v1/events.pb.go
> ++++ b/src/import/api/services/events/v1/events.pb.go
> +@@ -916,10 +916,7 @@ func (m *PublishRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthEvents
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthEvents
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1006,10 +1003,7 @@ func (m *ForwardRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthEvents
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthEvents
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1092,10 +1086,7 @@ func (m *SubscribeRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthEvents
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthEvents
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1279,10 +1270,7 @@ func (m *Envelope) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthEvents
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthEvents
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/images/v1/images.pb.go b/src/import/api/services/images/v1/images.pb.go
> +index db912b68b..de08cc083 100644
> +--- a/src/import/api/services/images/v1/images.pb.go
> ++++ b/src/import/api/services/images/v1/images.pb.go
> +@@ -1707,7 +1707,7 @@ func (m *Image) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthImages
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -1823,10 +1823,7 @@ func (m *Image) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImages
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImages
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1909,10 +1906,7 @@ func (m *GetImageRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImages
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImages
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1999,10 +1993,7 @@ func (m *GetImageResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImages
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImages
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2086,10 +2077,7 @@ func (m *CreateImageRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImages
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImages
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2173,10 +2161,7 @@ func (m *CreateImageResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImages
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImages
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2296,10 +2281,7 @@ func (m *UpdateImageRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImages
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImages
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2383,10 +2365,7 @@ func (m *UpdateImageResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImages
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImages
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2469,10 +2448,7 @@ func (m *ListImagesRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImages
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImages
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2557,10 +2533,7 @@ func (m *ListImagesResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImages
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImages
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2663,10 +2636,7 @@ func (m *DeleteImageRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthImages
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthImages
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/introspection/v1/introspection.pb.go b/src/import/api/services/introspection/v1/introspection.pb.go
> +index b9f912b09..d23c8b61a 100644
> +--- a/src/import/api/services/introspection/v1/introspection.pb.go
> ++++ b/src/import/api/services/introspection/v1/introspection.pb.go
> +@@ -1098,7 +1098,7 @@ func (m *Plugin) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthIntrospection
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -1183,10 +1183,7 @@ func (m *Plugin) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthIntrospection
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthIntrospection
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1269,10 +1266,7 @@ func (m *PluginsRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthIntrospection
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthIntrospection
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1357,10 +1351,7 @@ func (m *PluginsResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthIntrospection
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthIntrospection
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1443,10 +1434,7 @@ func (m *ServerResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthIntrospection
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthIntrospection
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/leases/v1/leases.pb.go b/src/import/api/services/leases/v1/leases.pb.go
> +index 4dbac3e09..5e7cab71f 100644
> +--- a/src/import/api/services/leases/v1/leases.pb.go
> ++++ b/src/import/api/services/leases/v1/leases.pb.go
> +@@ -1906,7 +1906,7 @@ func (m *Lease) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthLeases
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -1923,10 +1923,7 @@ func (m *Lease) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthLeases
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthLeases
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2119,7 +2116,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthLeases
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -2136,10 +2133,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthLeases
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthLeases
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2226,10 +2220,7 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthLeases
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthLeases
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2332,10 +2323,7 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthLeases
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthLeases
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2418,10 +2406,7 @@ func (m *ListRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthLeases
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthLeases
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2506,10 +2491,7 @@ func (m *ListResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthLeases
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthLeases
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2624,10 +2606,7 @@ func (m *Resource) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthLeases
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthLeases
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2743,10 +2722,7 @@ func (m *AddResourceRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthLeases
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthLeases
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2862,10 +2838,7 @@ func (m *DeleteResourceRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthLeases
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthLeases
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2948,10 +2921,7 @@ func (m *ListResourcesRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthLeases
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthLeases
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3036,10 +3006,7 @@ func (m *ListResourcesResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthLeases
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthLeases
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/namespaces/v1/namespace.pb.go b/src/import/api/services/namespaces/v1/namespace.pb.go
> +index 0d1d650ba..76f9e1172 100644
> +--- a/src/import/api/services/namespaces/v1/namespace.pb.go
> ++++ b/src/import/api/services/namespaces/v1/namespace.pb.go
> +@@ -1609,7 +1609,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthNamespace
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -1626,10 +1626,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1712,10 +1709,7 @@ func (m *GetNamespaceRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1799,10 +1793,7 @@ func (m *GetNamespaceResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1885,10 +1876,7 @@ func (m *ListNamespacesRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1973,10 +1961,7 @@ func (m *ListNamespacesResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2060,10 +2045,7 @@ func (m *CreateNamespaceRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2147,10 +2129,7 @@ func (m *CreateNamespaceResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2270,10 +2249,7 @@ func (m *UpdateNamespaceRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2357,10 +2333,7 @@ func (m *UpdateNamespaceResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2443,10 +2416,7 @@ func (m *DeleteNamespaceRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthNamespace
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthNamespace
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/snapshots/v1/snapshots.pb.go b/src/import/api/services/snapshots/v1/snapshots.pb.go
> +index 1877afded..046c97b01 100644
> +--- a/src/import/api/services/snapshots/v1/snapshots.pb.go
> ++++ b/src/import/api/services/snapshots/v1/snapshots.pb.go
> +@@ -3140,7 +3140,7 @@ func (m *PrepareSnapshotRequest) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthSnapshots
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -3157,10 +3157,7 @@ func (m *PrepareSnapshotRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3245,10 +3242,7 @@ func (m *PrepareSnapshotResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3505,7 +3499,7 @@ func (m *ViewSnapshotRequest) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthSnapshots
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -3522,10 +3516,7 @@ func (m *ViewSnapshotRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3610,10 +3601,7 @@ func (m *ViewSnapshotResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3728,10 +3716,7 @@ func (m *MountsRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3816,10 +3801,7 @@ func (m *MountsResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3934,10 +3916,7 @@ func (m *RemoveSnapshotRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4194,7 +4173,7 @@ func (m *CommitSnapshotRequest) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthSnapshots
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -4211,10 +4190,7 @@ func (m *CommitSnapshotRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4329,10 +4305,7 @@ func (m *StatSnapshotRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4642,7 +4615,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthSnapshots
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -4659,10 +4632,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4746,10 +4716,7 @@ func (m *StatSnapshotResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4901,10 +4868,7 @@ func (m *UpdateSnapshotRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4988,10 +4952,7 @@ func (m *UpdateSnapshotResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5106,10 +5067,7 @@ func (m *ListSnapshotsRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5194,10 +5152,7 @@ func (m *ListSnapshotsResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5312,10 +5267,7 @@ func (m *UsageRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5404,10 +5356,7 @@ func (m *UsageResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5490,10 +5439,7 @@ func (m *CleanupRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSnapshots
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSnapshots
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/tasks/v1/tasks.pb.go b/src/import/api/services/tasks/v1/tasks.pb.go
> +index 5ac5af11b..4904e6508 100644
> +--- a/src/import/api/services/tasks/v1/tasks.pb.go
> ++++ b/src/import/api/services/tasks/v1/tasks.pb.go
> +@@ -9,6 +9,7 @@ import (
> +     types "github.com/containerd/containerd/api/types"
> +     task "github.com/containerd/containerd/src/import/api/types/task"
> +     proto "github.com/gogo/protobuf/proto"
> ++    github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
> +     github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
> +     types1 "github.com/gogo/protobuf/types"
> +     github_com_opencontainers_go_digest "github.com/opencontainers/go-digest"
> +@@ -934,11 +935,12 @@ func (m *CheckpointTaskResponse) XXX_DiscardUnknown() {
> + var xxx_messageInfo_CheckpointTaskResponse proto.InternalMessageInfo
> +
> + type UpdateTaskRequest struct {
> +-    ContainerID          string      `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
> +-    Resources            *types1.Any `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
> +-    XXX_NoUnkeyedLiteral struct{}    `json:"-"`
> +-    XXX_unrecognized     []byte      `json:"-"`
> +-    XXX_sizecache        int32       `json:"-"`
> ++    ContainerID          string            `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
> ++    Resources            *types1.Any       `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
> ++    Annotations          map[string]string `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
> ++    XXX_NoUnkeyedLiteral struct{}          `json:"-"`
> ++    XXX_unrecognized     []byte            `json:"-"`
> ++    XXX_sizecache        int32             `json:"-"`
> + }
> +
> + func (m *UpdateTaskRequest) Reset()      { *m = UpdateTaskRequest{} }
> +@@ -1155,6 +1157,7 @@ func init() {
> +     proto.RegisterType((*CheckpointTaskRequest)(nil), "containerd.services.tasks.v1.CheckpointTaskRequest")
> +     proto.RegisterType((*CheckpointTaskResponse)(nil), "containerd.services.tasks.v1.CheckpointTaskResponse")
> +     proto.RegisterType((*UpdateTaskRequest)(nil), "containerd.services.tasks.v1.UpdateTaskRequest")
> ++    proto.RegisterMapType((map[string]string)(nil), "containerd.services.tasks.v1.UpdateTaskRequest.AnnotationsEntry")
> +     proto.RegisterType((*MetricsRequest)(nil), "containerd.services.tasks.v1.MetricsRequest")
> +     proto.RegisterType((*MetricsResponse)(nil), "containerd.services.tasks.v1.MetricsResponse")
> +     proto.RegisterType((*WaitRequest)(nil), "containerd.services.tasks.v1.WaitRequest")
> +@@ -1166,90 +1169,93 @@ func init() {
> + }
> +
> + var fileDescriptor_310e7127b8a26f14 = []byte{
> +-    // 1318 bytes of a gzipped FileDescriptorProto
> +-    0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4b, 0x6f, 0x1b, 0x45,
> +-    0x1c, 0xef, 0xfa, 0xed, 0xbf, 0x93, 0x36, 0x59, 0xd2, 0x60, 0x96, 0x2a, 0x0e, 0xcb, 0xc5, 0x04,
> +-    0xba, 0x4b, 0x5d, 0x54, 0x21, 0x5a, 0x21, 0x35, 0x0f, 0x22, 0x0b, 0xaa, 0xa6, 0xdb, 0x02, 0x55,
> +-    0x25, 0x14, 0xb6, 0xbb, 0x13, 0x67, 0x14, 0x7b, 0x67, 0xbb, 0x33, 0x4e, 0x1b, 0x38, 0xc0, 0x47,
> +-    0xe8, 0x95, 0x0b, 0x9f, 0x27, 0x47, 0x8e, 0x08, 0x55, 0x81, 0xfa, 0x5b, 0x70, 0x43, 0xf3, 0xd8,
> +-    0xcd, 0xc6, 0x8e, 0xbd, 0x4e, 0xd3, 0x70, 0x69, 0x67, 0x66, 0xff, 0xaf, 0xf9, 0xcd, 0xff, 0xf1,
> +-    0x73, 0x60, 0xb5, 0x83, 0xd9, 0x6e, 0xff, 0xa9, 0xe5, 0x91, 0x9e, 0xed, 0x91, 0x80, 0xb9, 0x38,
> +-    0x40, 0x91, 0x9f, 0x5e, 0xba, 0x21, 0xb6, 0x29, 0x8a, 0xf6, 0xb1, 0x87, 0xa8, 0xcd, 0x5c, 0xba,
> +-    0x47, 0xed, 0xfd, 0x1b, 0x72, 0x61, 0x85, 0x11, 0x61, 0x44, 0xbf, 0x76, 0x2c, 0x6d, 0xc5, 0x92,
> +-    0x96, 0x14, 0xd8, 0xbf, 0x61, 0xbc, 0xdf, 0x21, 0xa4, 0xd3, 0x45, 0xb6, 0x90, 0x7d, 0xda, 0xdf,
> +-    0xb1, 0x51, 0x2f, 0x64, 0x07, 0x52, 0xd5, 0x78, 0x6f, 0xf8, 0xa3, 0x1b, 0xc4, 0x9f, 0x16, 0x3a,
> +-    0xa4, 0x43, 0xc4, 0xd2, 0xe6, 0x2b, 0x75, 0x7a, 0x6b, 0xaa, 0x78, 0xd9, 0x41, 0x88, 0xa8, 0xdd,
> +-    0x23, 0xfd, 0x80, 0x29, 0xbd, 0xcf, 0xcf, 0xa2, 0x87, 0x58, 0x84, 0x3d, 0x75, 0x3b, 0xe3, 0xf6,
> +-    0x19, 0x34, 0x7d, 0x44, 0xbd, 0x08, 0x87, 0x8c, 0x44, 0x4a, 0xf9, 0x8b, 0x33, 0x28, 0x73, 0xc4,
> +-    0xc4, 0x3f, 0x4a, 0xb7, 0x31, 0x8c, 0x0d, 0xc3, 0x3d, 0x44, 0x99, 0xdb, 0x0b, 0xa5, 0x80, 0x79,
> +-    0x98, 0x83, 0xf9, 0xb5, 0x08, 0xb9, 0x0c, 0x3d, 0x72, 0xe9, 0x9e, 0x83, 0x9e, 0xf5, 0x11, 0x65,
> +-    0x7a, 0x0b, 0x66, 0x12, 0xf3, 0xdb, 0xd8, 0xaf, 0x6b, 0xcb, 0x5a, 0xb3, 0xba, 0x7a, 0x65, 0x70,
> +-    0xd4, 0xa8, 0xad, 0xc5, 0xe7, 0xed, 0x75, 0xa7, 0x96, 0x08, 0xb5, 0x7d, 0xdd, 0x86, 0x52, 0x44,
> +-    0x08, 0xdb, 0xa1, 0xf5, 0xfc, 0x72, 0xbe, 0x59, 0x6b, 0xbd, 0x6b, 0xa5, 0x9e, 0x54, 0x44, 0x67,
> +-    0xdd, 0xe3, 0x60, 0x3a, 0x4a, 0x4c, 0x5f, 0x80, 0x22, 0x65, 0x3e, 0x0e, 0xea, 0x05, 0x6e, 0xdd,
> +-    0x91, 0x1b, 0x7d, 0x11, 0x4a, 0x94, 0xf9, 0xa4, 0xcf, 0xea, 0x45, 0x71, 0xac, 0x76, 0xea, 0x1c,
> +-    0x45, 0x51, 0xbd, 0x94, 0x9c, 0xa3, 0x28, 0xd2, 0x0d, 0xa8, 0x30, 0x14, 0xf5, 0x70, 0xe0, 0x76,
> +-    0xeb, 0xe5, 0x65, 0xad, 0x59, 0x71, 0x92, 0xbd, 0x7e, 0x07, 0xc0, 0xdb, 0x45, 0xde, 0x5e, 0x48,
> +-    0x70, 0xc0, 0xea, 0x95, 0x65, 0xad, 0x59, 0x6b, 0x5d, 0x1b, 0x0d, 0x6b, 0x3d, 0x41, 0xdc, 0x49,
> +-    0xc9, 0xeb, 0x16, 0x94, 0x49, 0xc8, 0x30, 0x09, 0x68, 0xbd, 0x2a, 0x54, 0x17, 0x2c, 0x89, 0xa6,
> +-    0x15, 0xa3, 0x69, 0xdd, 0x0d, 0x0e, 0x9c, 0x58, 0xc8, 0x7c, 0x02, 0x7a, 0x1a, 0x49, 0x1a, 0x92,
> +-    0x80, 0xa2, 0x37, 0x82, 0x72, 0x0e, 0xf2, 0x21, 0xf6, 0xeb, 0xb9, 0x65, 0xad, 0x39, 0xeb, 0xf0,
> +-    0xa5, 0xd9, 0x81, 0x99, 0x87, 0xcc, 0x8d, 0xd8, 0x79, 0x1e, 0xe8, 0x43, 0x28, 0xa3, 0x17, 0xc8,
> +-    0xdb, 0x56, 0x96, 0xab, 0xab, 0x30, 0x38, 0x6a, 0x94, 0x36, 0x5e, 0x20, 0xaf, 0xbd, 0xee, 0x94,
> +-    0xf8, 0xa7, 0xb6, 0x6f, 0x7e, 0x00, 0xb3, 0xca, 0x91, 0x8a, 0x5f, 0xc5, 0xa2, 0x1d, 0xc7, 0xb2,
> +-    0x09, 0xf3, 0xeb, 0xa8, 0x8b, 0xce, 0x9d, 0x31, 0xe6, 0xef, 0x1a, 0x5c, 0x96, 0x96, 0x12, 0x6f,
> +-    0x8b, 0x90, 0x4b, 0x94, 0x4b, 0x83, 0xa3, 0x46, 0xae, 0xbd, 0xee, 0xe4, 0xf0, 0x29, 0x88, 0xe8,
> +-    0x0d, 0xa8, 0xa1, 0x17, 0x98, 0x6d, 0x53, 0xe6, 0xb2, 0x3e, 0xcf, 0x39, 0xfe, 0x05, 0xf8, 0xd1,
> +-    0x43, 0x71, 0xa2, 0xdf, 0x85, 0x2a, 0xdf, 0x21, 0x7f, 0xdb, 0x65, 0x22, 0xc5, 0x6a, 0x2d, 0x63,
> +-    0xe4, 0x01, 0x1f, 0xc5, 0xe5, 0xb0, 0x5a, 0x39, 0x3c, 0x6a, 0x5c, 0x7a, 0xf9, 0x77, 0x43, 0x73,
> +-    0x2a, 0x52, 0xed, 0x2e, 0x33, 0x09, 0x2c, 0xc8, 0xf8, 0xb6, 0x22, 0xe2, 0x21, 0x4a, 0x2f, 0x1c,
> +-    0x7d, 0x04, 0xb0, 0x89, 0x2e, 0xfe, 0x91, 0x37, 0xa0, 0x26, 0xdc, 0x28, 0xd0, 0x6f, 0x41, 0x39,
> +-    0x94, 0x17, 0x14, 0x2e, 0x86, 0x6a, 0x64, 0xff, 0x86, 0x2a, 0x93, 0x18, 0x84, 0x58, 0xd8, 0x5c,
> +-    0x81, 0xb9, 0x6f, 0x30, 0x65, 0x3c, 0x0d, 0x12, 0x68, 0x16, 0xa1, 0xb4, 0x83, 0xbb, 0x0c, 0x45,
> +-    0x32, 0x5a, 0x47, 0xed, 0x78, 0xd2, 0xa4, 0x64, 0x93, 0xda, 0x28, 0x8a, 0x16, 0x5f, 0xd7, 0x44,
> +-    0xc7, 0x98, 0xec, 0x56, 0x8a, 0x9a, 0x2f, 0x35, 0xa8, 0x7d, 0x8d, 0xbb, 0xdd, 0x8b, 0x06, 0x49,
> +-    0x34, 0x1c, 0xdc, 0xe1, 0x6d, 0x45, 0xe6, 0x96, 0xda, 0xf1, 0x54, 0x74, 0xbb, 0x5d, 0x91, 0x51,
> +-    0x15, 0x87, 0x2f, 0xcd, 0x7f, 0x35, 0xd0, 0xb9, 0xf2, 0x5b, 0xc8, 0x92, 0xa4, 0x27, 0xe6, 0x4e,
> +-    0xef, 0x89, 0xf9, 0x31, 0x3d, 0xb1, 0x30, 0xb6, 0x27, 0x16, 0x87, 0x7a, 0x62, 0x13, 0x0a, 0x34,
> +-    0x44, 0x9e, 0xe8, 0xa2, 0xe3, 0x5a, 0x9a, 0x90, 0x48, 0xa3, 0x54, 0x1e, 0x9b, 0x4a, 0x57, 0xe1,
> +-    0x9d, 0x13, 0x57, 0x97, 0x2f, 0x6b, 0xfe, 0xa6, 0xc1, 0x9c, 0x83, 0x28, 0xfe, 0x09, 0x6d, 0xb1,
> +-    0x83, 0x0b, 0x7f, 0xaa, 0x05, 0x28, 0x3e, 0xc7, 0x3e, 0xdb, 0x55, 0x2f, 0x25, 0x37, 0x1c, 0x9d,
> +-    0x5d, 0x84, 0x3b, 0xbb, 0xb2, 0xfa, 0x67, 0x1d, 0xb5, 0x33, 0x7f, 0x81, 0xcb, 0x6b, 0x5d, 0x42,
> +-    0x51, 0xfb, 0xfe, 0xff, 0x11, 0x98, 0x7c, 0xce, 0xbc, 0x78, 0x05, 0xb9, 0x31, 0xbf, 0x82, 0xb9,
> +-    0x2d, 0xb7, 0x4f, 0xcf, 0xdd, 0x3f, 0x37, 0x61, 0xde, 0x41, 0xb4, 0xdf, 0x3b, 0xb7, 0xa1, 0x0d,
> +-    0xb8, 0xc2, 0x8b, 0x73, 0x0b, 0xfb, 0xe7, 0x49, 0x5e, 0xd3, 0x91, 0xfd, 0x40, 0x9a, 0x51, 0x25,
> +-    0xfe, 0x25, 0x54, 0x55, 0xbb, 0x40, 0x71, 0x99, 0x2f, 0x4f, 0x2a, 0xf3, 0x76, 0xb0, 0x43, 0x9c,
> +-    0x63, 0x15, 0xf3, 0x95, 0x06, 0x57, 0xd7, 0x92, 0x99, 0x7c, 0x5e, 0x8e, 0xb2, 0x0d, 0xf3, 0xa1,
> +-    0x1b, 0xa1, 0x80, 0x6d, 0xa7, 0x78, 0x81, 0x7c, 0xbe, 0x16, 0xef, 0xff, 0x7f, 0x1d, 0x35, 0x56,
> +-    0x52, 0x6c, 0x8b, 0x84, 0x28, 0x48, 0xd4, 0xa9, 0xdd, 0x21, 0xd7, 0x7d, 0xdc, 0x41, 0x94, 0x59,
> +-    0xeb, 0xe2, 0x3f, 0x67, 0x4e, 0x1a, 0x5b, 0x3b, 0x95, 0x33, 0xe4, 0xa7, 0xe1, 0x0c, 0x8f, 0x61,
> +-    0x71, 0xf8, 0x76, 0x09, 0x70, 0xb5, 0x63, 0x26, 0x78, 0x6a, 0x87, 0x1c, 0x21, 0x2f, 0x69, 0x05,
> +-    0xf3, 0x67, 0x98, 0xff, 0x36, 0xf4, 0xdf, 0x02, 0xaf, 0x6b, 0x41, 0x35, 0x42, 0x94, 0xf4, 0x23,
> +-    0x0f, 0x51, 0x81, 0xd5, 0xb8, 0x4b, 0x1d, 0x8b, 0x99, 0x2b, 0x70, 0xf9, 0x9e, 0x24, 0xc0, 0xb1,
> +-    0xe7, 0x3a, 0x94, 0xe5, 0x24, 0x90, 0x57, 0xa9, 0x3a, 0xf1, 0x96, 0x27, 0x5f, 0x22, 0x9b, 0xcc,
> +-    0x85, 0xb2, 0xe2, 0xcf, 0xea, 0xde, 0xf5, 0x53, 0xb8, 0xa4, 0x10, 0x70, 0x62, 0x41, 0x73, 0x07,
> +-    0x6a, 0xdf, 0xbb, 0xf8, 0xe2, 0x67, 0x67, 0x04, 0x33, 0xd2, 0x8f, 0x8a, 0x75, 0x88, 0x87, 0x68,
> +-    0x93, 0x79, 0x48, 0xee, 0x4d, 0x78, 0x48, 0xeb, 0xd5, 0x0c, 0x14, 0xc5, 0xe4, 0xd4, 0xf7, 0xa0,
> +-    0x24, 0x39, 0xa6, 0x6e, 0x5b, 0x93, 0x7e, 0x31, 0x59, 0x23, 0x9c, 0xde, 0xf8, 0x74, 0x7a, 0x05,
> +-    0x75, 0xb5, 0x1f, 0xa1, 0x28, 0xb8, 0xa0, 0xbe, 0x32, 0x59, 0x35, 0xcd, 0x4c, 0x8d, 0x8f, 0xa7,
> +-    0x92, 0x55, 0x1e, 0x3a, 0x50, 0x92, 0x04, 0x2b, 0xeb, 0x3a, 0x23, 0x84, 0xd3, 0xf8, 0x64, 0x1a,
> +-    0x85, 0xc4, 0xd1, 0x33, 0x98, 0x3d, 0xc1, 0xe4, 0xf4, 0xd6, 0x34, 0xea, 0x27, 0x07, 0xfa, 0x19,
> +-    0x5d, 0x3e, 0x81, 0xfc, 0x26, 0x62, 0x7a, 0x73, 0xb2, 0xd2, 0x31, 0xdd, 0x33, 0x3e, 0x9a, 0x42,
> +-    0x32, 0xc1, 0xad, 0xc0, 0x3b, 0xad, 0x6e, 0x4d, 0x56, 0x19, 0x66, 0x67, 0x86, 0x3d, 0xb5, 0xbc,
> +-    0x72, 0xd4, 0x86, 0x02, 0x27, 0x5b, 0x7a, 0x46, 0x6c, 0x29, 0x42, 0x66, 0x2c, 0x8e, 0x24, 0xf7,
> +-    0x06, 0xff, 0xb1, 0xae, 0x6f, 0x41, 0x81, 0x97, 0x92, 0x9e, 0x91, 0x87, 0xa3, 0x44, 0x6a, 0xac,
> +-    0xc5, 0x87, 0x50, 0x4d, 0x38, 0x46, 0x16, 0x14, 0xc3, 0x64, 0x64, 0xac, 0xd1, 0xfb, 0x50, 0x56,
> +-    0xec, 0x40, 0xcf, 0x78, 0xef, 0x93, 0x24, 0x62, 0x82, 0xc1, 0xa2, 0x98, 0xf6, 0x59, 0x11, 0x0e,
> +-    0x53, 0x82, 0xb1, 0x06, 0x1f, 0x40, 0x49, 0x8e, 0xfd, 0xac, 0xa2, 0x19, 0x21, 0x07, 0x63, 0x4d,
> +-    0x62, 0xa8, 0xc4, 0x93, 0x5b, 0xbf, 0x9e, 0x9d, 0x23, 0x29, 0xa2, 0x60, 0x58, 0xd3, 0x8a, 0xab,
> +-    0x8c, 0x7a, 0x0e, 0x90, 0x9a, 0x97, 0x37, 0x33, 0x20, 0x3e, 0x6d, 0xf2, 0x1b, 0x9f, 0x9d, 0x4d,
> +-    0x49, 0x39, 0x7e, 0x00, 0x25, 0x39, 0x10, 0xb3, 0x60, 0x1b, 0x19, 0x9b, 0x63, 0x61, 0xdb, 0x81,
> +-    0xb2, 0x1a, 0x5d, 0x59, 0xb9, 0x72, 0x72, 0x1a, 0x1a, 0xd7, 0xa7, 0x94, 0x56, 0xa1, 0xff, 0x00,
> +-    0x05, 0x3e, 0x73, 0xb2, 0xaa, 0x30, 0x35, 0xff, 0x8c, 0x95, 0x69, 0x44, 0xa5, 0xf9, 0xd5, 0xef,
> +-    0x0e, 0x5f, 0x2f, 0x5d, 0xfa, 0xf3, 0xf5, 0xd2, 0xa5, 0x5f, 0x07, 0x4b, 0xda, 0xe1, 0x60, 0x49,
> +-    0xfb, 0x63, 0xb0, 0xa4, 0xfd, 0x33, 0x58, 0xd2, 0x9e, 0xdc, 0x79, 0xb3, 0xbf, 0xec, 0xdd, 0x16,
> +-    0x8b, 0xc7, 0xb9, 0xa7, 0x25, 0x01, 0xd8, 0xcd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x85, 0xa2,
> +-    0x4f, 0xd1, 0x22, 0x14, 0x00, 0x00,
> ++    // 1376 bytes of a gzipped FileDescriptorProto
> ++    0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x5b, 0x6f, 0x1b, 0x45,
> ++    0x14, 0xee, 0xfa, 0xee, 0xe3, 0xa4, 0x4d, 0x96, 0x34, 0x98, 0xa5, 0x8a, 0xc3, 0xf2, 0x62, 0x02,
> ++    0x5d, 0x53, 0x17, 0x55, 0x55, 0x5b, 0x55, 0xe4, 0x46, 0x64, 0x41, 0xd5, 0x74, 0x5b, 0xa0, 0xaa,
> ++    0x84, 0xc2, 0xc6, 0x3b, 0x71, 0x46, 0xb1, 0x77, 0xb6, 0x3b, 0xe3, 0xb4, 0xe6, 0x05, 0x7e, 0x42,
> ++    0x5f, 0x79, 0x81, 0xbf, 0x93, 0x47, 0x1e, 0x11, 0xaa, 0x02, 0xf5, 0xbf, 0xe0, 0x0d, 0xcd, 0x65,
> ++    0xd7, 0x1b, 0x3b, 0xf6, 0x3a, 0x4d, 0xc3, 0x4b, 0x32, 0x33, 0x7b, 0xce, 0x99, 0x33, 0xdf, 0xb9,
> ++    0x7d, 0x09, 0xac, 0xb5, 0x30, 0xdb, 0xef, 0xee, 0x5a, 0x4d, 0xd2, 0xa9, 0x35, 0x89, 0xc7, 0x1c,
> ++    0xec, 0xa1, 0xc0, 0x8d, 0x2f, 0x1d, 0x1f, 0xd7, 0x28, 0x0a, 0x0e, 0x71, 0x13, 0xd1, 0x1a, 0x73,
> ++    0xe8, 0x01, 0xad, 0x1d, 0xde, 0x90, 0x0b, 0xcb, 0x0f, 0x08, 0x23, 0xfa, 0xb5, 0x81, 0xb4, 0x15,
> ++    0x4a, 0x5a, 0x52, 0xe0, 0xf0, 0x86, 0xf1, 0x61, 0x8b, 0x90, 0x56, 0x1b, 0xd5, 0x84, 0xec, 0x6e,
> ++    0x77, 0xaf, 0x86, 0x3a, 0x3e, 0xeb, 0x49, 0x55, 0xe3, 0x83, 0xe1, 0x8f, 0x8e, 0x17, 0x7e, 0x5a,
> ++    0x68, 0x91, 0x16, 0x11, 0xcb, 0x1a, 0x5f, 0xa9, 0xd3, 0x5b, 0x53, 0xf9, 0xcb, 0x7a, 0x3e, 0xa2,
> ++    0xb5, 0x0e, 0xe9, 0x7a, 0x4c, 0xe9, 0xdd, 0x3e, 0x8b, 0x1e, 0x62, 0x01, 0x6e, 0xaa, 0xd7, 0x19,
> ++    0x77, 0xcf, 0xa0, 0xe9, 0x22, 0xda, 0x0c, 0xb0, 0xcf, 0x48, 0xa0, 0x94, 0xef, 0x9c, 0x41, 0x99,
> ++    0x23, 0x26, 0x7e, 0x28, 0xdd, 0xca, 0x30, 0x36, 0x0c, 0x77, 0x10, 0x65, 0x4e, 0xc7, 0x97, 0x02,
> ++    0xe6, 0x51, 0x0a, 0xe6, 0xd7, 0x03, 0xe4, 0x30, 0xf4, 0xc4, 0xa1, 0x07, 0x36, 0x7a, 0xde, 0x45,
> ++    0x94, 0xe9, 0x75, 0x98, 0x89, 0xcc, 0xef, 0x60, 0xb7, 0xac, 0x2d, 0x6b, 0xd5, 0xe2, 0xda, 0x95,
> ++    0xfe, 0x71, 0xa5, 0xb4, 0x1e, 0x9e, 0x37, 0x36, 0xec, 0x52, 0x24, 0xd4, 0x70, 0xf5, 0x1a, 0xe4,
> ++    0x02, 0x42, 0xd8, 0x1e, 0x2d, 0xa7, 0x97, 0xd3, 0xd5, 0x52, 0xfd, 0x7d, 0x2b, 0x16, 0x52, 0xe1,
> ++    0x9d, 0xf5, 0x80, 0x83, 0x69, 0x2b, 0x31, 0x7d, 0x01, 0xb2, 0x94, 0xb9, 0xd8, 0x2b, 0x67, 0xb8,
> ++    0x75, 0x5b, 0x6e, 0xf4, 0x45, 0xc8, 0x51, 0xe6, 0x92, 0x2e, 0x2b, 0x67, 0xc5, 0xb1, 0xda, 0xa9,
> ++    0x73, 0x14, 0x04, 0xe5, 0x5c, 0x74, 0x8e, 0x82, 0x40, 0x37, 0xa0, 0xc0, 0x50, 0xd0, 0xc1, 0x9e,
> ++    0xd3, 0x2e, 0xe7, 0x97, 0xb5, 0x6a, 0xc1, 0x8e, 0xf6, 0xfa, 0x3d, 0x80, 0xe6, 0x3e, 0x6a, 0x1e,
> ++    0xf8, 0x04, 0x7b, 0xac, 0x5c, 0x58, 0xd6, 0xaa, 0xa5, 0xfa, 0xb5, 0x51, 0xb7, 0x36, 0x22, 0xc4,
> ++    0xed, 0x98, 0xbc, 0x6e, 0x41, 0x9e, 0xf8, 0x0c, 0x13, 0x8f, 0x96, 0x8b, 0x42, 0x75, 0xc1, 0x92,
> ++    0x68, 0x5a, 0x21, 0x9a, 0xd6, 0xaa, 0xd7, 0xb3, 0x43, 0x21, 0xf3, 0x19, 0xe8, 0x71, 0x24, 0xa9,
> ++    0x4f, 0x3c, 0x8a, 0xde, 0x0a, 0xca, 0x39, 0x48, 0xfb, 0xd8, 0x2d, 0xa7, 0x96, 0xb5, 0xea, 0xac,
> ++    0xcd, 0x97, 0x66, 0x0b, 0x66, 0x1e, 0x33, 0x27, 0x60, 0xe7, 0x09, 0xd0, 0xc7, 0x90, 0x47, 0x2f,
> ++    0x51, 0x73, 0x47, 0x59, 0x2e, 0xae, 0x41, 0xff, 0xb8, 0x92, 0xdb, 0x7c, 0x89, 0x9a, 0x8d, 0x0d,
> ++    0x3b, 0xc7, 0x3f, 0x35, 0x5c, 0xf3, 0x23, 0x98, 0x55, 0x17, 0x29, 0xff, 0x95, 0x2f, 0xda, 0xc0,
> ++    0x97, 0x2d, 0x98, 0xdf, 0x40, 0x6d, 0x74, 0xee, 0x8c, 0x31, 0x7f, 0xd3, 0xe0, 0xb2, 0xb4, 0x14,
> ++    0xdd, 0xb6, 0x08, 0xa9, 0x48, 0x39, 0xd7, 0x3f, 0xae, 0xa4, 0x1a, 0x1b, 0x76, 0x0a, 0x9f, 0x82,
> ++    0x88, 0x5e, 0x81, 0x12, 0x7a, 0x89, 0xd9, 0x0e, 0x65, 0x0e, 0xeb, 0xf2, 0x9c, 0xe3, 0x5f, 0x80,
> ++    0x1f, 0x3d, 0x16, 0x27, 0xfa, 0x2a, 0x14, 0xf9, 0x0e, 0xb9, 0x3b, 0x0e, 0x13, 0x29, 0x56, 0xaa,
> ++    0x1b, 0x23, 0x01, 0x7c, 0x12, 0x96, 0xc3, 0x5a, 0xe1, 0xe8, 0xb8, 0x72, 0xe9, 0xd5, 0xdf, 0x15,
> ++    0xcd, 0x2e, 0x48, 0xb5, 0x55, 0x66, 0x12, 0x58, 0x90, 0xfe, 0x6d, 0x07, 0xa4, 0x89, 0x28, 0xbd,
> ++    0x70, 0xf4, 0x11, 0xc0, 0x16, 0xba, 0xf8, 0x20, 0x6f, 0x42, 0x49, 0x5c, 0xa3, 0x40, 0xbf, 0x05,
> ++    0x79, 0x5f, 0x3e, 0x50, 0x5c, 0x31, 0x54, 0x23, 0x87, 0x37, 0x54, 0x99, 0x84, 0x20, 0x84, 0xc2,
> ++    0xe6, 0x0a, 0xcc, 0x7d, 0x83, 0x29, 0xe3, 0x69, 0x10, 0x41, 0xb3, 0x08, 0xb9, 0x3d, 0xdc, 0x66,
> ++    0x28, 0x90, 0xde, 0xda, 0x6a, 0xc7, 0x93, 0x26, 0x26, 0x1b, 0xd5, 0x46, 0x56, 0xb4, 0xf8, 0xb2,
> ++    0x26, 0x3a, 0xc6, 0xe4, 0x6b, 0xa5, 0xa8, 0xf9, 0x4a, 0x83, 0xd2, 0xd7, 0xb8, 0xdd, 0xbe, 0x68,
> ++    0x90, 0x44, 0xc3, 0xc1, 0x2d, 0xde, 0x56, 0x64, 0x6e, 0xa9, 0x1d, 0x4f, 0x45, 0xa7, 0xdd, 0x16,
> ++    0x19, 0x55, 0xb0, 0xf9, 0xd2, 0xfc, 0x57, 0x03, 0x9d, 0x2b, 0xbf, 0x83, 0x2c, 0x89, 0x7a, 0x62,
> ++    0xea, 0xf4, 0x9e, 0x98, 0x1e, 0xd3, 0x13, 0x33, 0x63, 0x7b, 0x62, 0x76, 0xa8, 0x27, 0x56, 0x21,
> ++    0x43, 0x7d, 0xd4, 0x14, 0x5d, 0x74, 0x5c, 0x4b, 0x13, 0x12, 0x71, 0x94, 0xf2, 0x63, 0x53, 0xe9,
> ++    0x2a, 0xbc, 0x77, 0xe2, 0xe9, 0x32, 0xb2, 0xe6, 0xaf, 0x1a, 0xcc, 0xd9, 0x88, 0xe2, 0x9f, 0xd0,
> ++    0x36, 0xeb, 0x5d, 0x78, 0xa8, 0x16, 0x20, 0xfb, 0x02, 0xbb, 0x6c, 0x5f, 0x45, 0x4a, 0x6e, 0x38,
> ++    0x3a, 0xfb, 0x08, 0xb7, 0xf6, 0x65, 0xf5, 0xcf, 0xda, 0x6a, 0x67, 0xfe, 0x0c, 0x97, 0xd7, 0xdb,
> ++    0x84, 0xa2, 0xc6, 0xc3, 0xff, 0xc3, 0x31, 0x19, 0xce, 0xb4, 0x88, 0x82, 0xdc, 0x98, 0x5f, 0xc1,
> ++    0xdc, 0xb6, 0xd3, 0xa5, 0xe7, 0xee, 0x9f, 0x5b, 0x30, 0x6f, 0x23, 0xda, 0xed, 0x9c, 0xdb, 0xd0,
> ++    0x26, 0x5c, 0xe1, 0xc5, 0xb9, 0x8d, 0xdd, 0xf3, 0x24, 0xaf, 0x69, 0xcb, 0x7e, 0x20, 0xcd, 0xa8,
> ++    0x12, 0xbf, 0x0f, 0x45, 0xd5, 0x2e, 0x50, 0x58, 0xe6, 0xcb, 0x93, 0xca, 0xbc, 0xe1, 0xed, 0x11,
> ++    0x7b, 0xa0, 0x62, 0xbe, 0xd6, 0xe0, 0xea, 0x7a, 0x34, 0x93, 0xcf, 0xcb, 0x51, 0x76, 0x60, 0xde,
> ++    0x77, 0x02, 0xe4, 0xb1, 0x9d, 0x18, 0x2f, 0x90, 0xe1, 0xab, 0xf3, 0xfe, 0xff, 0xd7, 0x71, 0x65,
> ++    0x25, 0xc6, 0xb6, 0x88, 0x8f, 0xbc, 0x48, 0x9d, 0xd6, 0x5a, 0xe4, 0xba, 0x8b, 0x5b, 0x88, 0x32,
> ++    0x6b, 0x43, 0xfc, 0xb2, 0xe7, 0xa4, 0xb1, 0xf5, 0x53, 0x39, 0x43, 0x7a, 0x1a, 0xce, 0xf0, 0x14,
> ++    0x16, 0x87, 0x5f, 0x17, 0x01, 0x57, 0x1a, 0x30, 0xc1, 0x53, 0x3b, 0xe4, 0x08, 0x79, 0x89, 0x2b,
> ++    0x98, 0xbf, 0xa7, 0x60, 0xfe, 0x5b, 0xdf, 0x7d, 0x07, 0xc4, 0xae, 0x0e, 0xc5, 0x00, 0x51, 0xd2,
> ++    0x0d, 0x9a, 0x88, 0x0a, 0xb0, 0xc6, 0xbd, 0x6a, 0x20, 0xa6, 0xef, 0x42, 0xc9, 0xf1, 0x3c, 0xc2,
> ++    0x9c, 0x10, 0x0b, 0xee, 0xfd, 0x97, 0xd6, 0x24, 0x92, 0x6f, 0x8d, 0x78, 0x6b, 0xad, 0x0e, 0x4c,
> ++    0x6c, 0x7a, 0x2c, 0xe8, 0xd9, 0x71, 0xa3, 0xc6, 0x7d, 0x98, 0x1b, 0x16, 0xe0, 0xcd, 0xf9, 0x00,
> ++    0xf5, 0xd4, 0xec, 0xe1, 0x4b, 0x5e, 0x82, 0x87, 0x4e, 0xbb, 0x8b, 0xc2, 0x8e, 0x2a, 0x36, 0x77,
> ++    0x52, 0xb7, 0x35, 0x73, 0x05, 0x2e, 0x3f, 0x90, 0x2c, 0x3d, 0x44, 0xa7, 0x0c, 0x79, 0x39, 0xae,
> ++    0x24, 0xde, 0x45, 0x3b, 0xdc, 0xf2, 0x0a, 0x89, 0x64, 0xa3, 0xe1, 0x95, 0x57, 0x24, 0x5f, 0x05,
> ++    0xa7, 0x7c, 0x0a, 0xe1, 0x15, 0x02, 0x76, 0x28, 0x68, 0xee, 0x41, 0xe9, 0x7b, 0x07, 0x5f, 0xfc,
> ++    0x80, 0x0f, 0x60, 0x46, 0xde, 0xa3, 0x7c, 0x1d, 0x22, 0x4b, 0xda, 0x64, 0xb2, 0x94, 0x7a, 0x1b,
> ++    0xb2, 0x54, 0x7f, 0x3d, 0x03, 0x59, 0x31, 0xde, 0xf5, 0x03, 0xc8, 0x49, 0x22, 0xac, 0xd7, 0x26,
> ++    0x47, 0x7c, 0xe4, 0x0f, 0x0f, 0xe3, 0xf3, 0xe9, 0x15, 0xd4, 0xd3, 0x7e, 0x84, 0xac, 0x20, 0xac,
> ++    0xfa, 0xca, 0x64, 0xd5, 0x38, 0x7d, 0x36, 0x3e, 0x9d, 0x4a, 0x56, 0xdd, 0xd0, 0x82, 0x9c, 0x64,
> ++    0x81, 0x49, 0xcf, 0x19, 0x61, 0xc5, 0xc6, 0x67, 0xd3, 0x28, 0x44, 0x17, 0x3d, 0x87, 0xd9, 0x13,
> ++    0x74, 0x53, 0xaf, 0x4f, 0xa3, 0x7e, 0x92, 0x75, 0x9c, 0xf1, 0xca, 0x67, 0x90, 0xde, 0x42, 0x4c,
> ++    0xaf, 0x4e, 0x56, 0x1a, 0x70, 0x52, 0xe3, 0x93, 0x29, 0x24, 0x23, 0xdc, 0x32, 0x7c, 0x1c, 0xe8,
> ++    0xd6, 0x64, 0x95, 0x61, 0x0a, 0x69, 0xd4, 0xa6, 0x96, 0x57, 0x17, 0x35, 0x20, 0xc3, 0x19, 0xa1,
> ++    0x9e, 0xe0, 0x5b, 0x8c, 0x35, 0x1a, 0x8b, 0x23, 0xc9, 0xbd, 0xd9, 0xf1, 0x59, 0x4f, 0xdf, 0x86,
> ++    0x0c, 0x2f, 0x25, 0x3d, 0x21, 0x0f, 0x47, 0xd9, 0xde, 0x58, 0x8b, 0x8f, 0xa1, 0x18, 0x11, 0xa1,
> ++    0x24, 0x28, 0x86, 0x19, 0xd3, 0x58, 0xa3, 0x0f, 0x21, 0xaf, 0x28, 0x8c, 0x9e, 0x10, 0xef, 0x93,
> ++    0x4c, 0x67, 0x82, 0xc1, 0xac, 0xa0, 0x24, 0x49, 0x1e, 0x0e, 0xf3, 0x96, 0xb1, 0x06, 0x1f, 0x41,
> ++    0x4e, 0x72, 0x93, 0xa4, 0xa2, 0x19, 0x61, 0x30, 0x63, 0x4d, 0x62, 0x28, 0x84, 0xf4, 0x42, 0xbf,
> ++    0x9e, 0x9c, 0x23, 0x31, 0x36, 0x63, 0x58, 0xd3, 0x8a, 0xab, 0x8c, 0x7a, 0x01, 0x10, 0x1b, 0xea,
> ++    0x37, 0x13, 0x20, 0x3e, 0x8d, 0x9e, 0x18, 0x5f, 0x9c, 0x4d, 0x49, 0x5d, 0xfc, 0x08, 0x72, 0x72,
> ++    0x0c, 0x26, 0xc1, 0x36, 0x32, 0x2c, 0xc7, 0xc2, 0xb6, 0x07, 0x79, 0x35, 0xba, 0x92, 0x72, 0xe5,
> ++    0xe4, 0x34, 0x34, 0xae, 0x4f, 0x29, 0xad, 0x5c, 0xff, 0x01, 0x32, 0x7c, 0xe6, 0x24, 0x55, 0x61,
> ++    0x6c, 0xfe, 0x19, 0x2b, 0xd3, 0x88, 0x4a, 0xf3, 0x6b, 0xdf, 0x1d, 0xbd, 0x59, 0xba, 0xf4, 0xe7,
> ++    0x9b, 0xa5, 0x4b, 0xbf, 0xf4, 0x97, 0xb4, 0xa3, 0xfe, 0x92, 0xf6, 0x47, 0x7f, 0x49, 0xfb, 0xa7,
> ++    0xbf, 0xa4, 0x3d, 0xbb, 0xf7, 0x76, 0xff, 0x7e, 0xbc, 0x2b, 0x16, 0x4f, 0x53, 0xbb, 0x39, 0x01,
> ++    0xd8, 0xcd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x55, 0xbf, 0x54, 0xc7, 0x14, 0x00, 0x00,
> + }
> +
> + // Reference imports to suppress errors if they are not otherwise used.
> +@@ -2943,6 +2949,25 @@ func (m *UpdateTaskRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
> +             i -= len(m.XXX_unrecognized)
> +             copy(dAtA[i:], m.XXX_unrecognized)
> +     }
> ++    if len(m.Annotations) > 0 {
> ++            for k := range m.Annotations {
> ++                    v := m.Annotations[k]
> ++                    baseI := i
> ++                    i -= len(v)
> ++                    copy(dAtA[i:], v)
> ++                    i = encodeVarintTasks(dAtA, i, uint64(len(v)))
> ++                    i--
> ++                    dAtA[i] = 0x12
> ++                    i -= len(k)
> ++                    copy(dAtA[i:], k)
> ++                    i = encodeVarintTasks(dAtA, i, uint64(len(k)))
> ++                    i--
> ++                    dAtA[i] = 0xa
> ++                    i = encodeVarintTasks(dAtA, i, uint64(baseI-i))
> ++                    i--
> ++                    dAtA[i] = 0x1a
> ++            }
> ++    }
> +     if m.Resources != nil {
> +             {
> +                     size, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])
> +@@ -3611,6 +3636,14 @@ func (m *UpdateTaskRequest) Size() (n int) {
> +             l = m.Resources.Size()
> +             n += 1 + l + sovTasks(uint64(l))
> +     }
> ++    if len(m.Annotations) > 0 {
> ++            for k, v := range m.Annotations {
> ++                    _ = k
> ++                    _ = v
> ++                    mapEntrySize := 1 + len(k) + sovTasks(uint64(len(k))) + 1 + len(v) + sovTasks(uint64(len(v)))
> ++                    n += mapEntrySize + 1 + sovTasks(uint64(mapEntrySize))
> ++            }
> ++    }
> +     if m.XXX_unrecognized != nil {
> +             n += len(m.XXX_unrecognized)
> +     }
> +@@ -3991,9 +4024,20 @@ func (this *UpdateTaskRequest) String() string {
> +     if this == nil {
> +             return "nil"
> +     }
> ++    keysForAnnotations := make([]string, 0, len(this.Annotations))
> ++    for k, _ := range this.Annotations {
> ++            keysForAnnotations = append(keysForAnnotations, k)
> ++    }
> ++    github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)
> ++    mapStringForAnnotations := "map[string]string{"
> ++    for _, k := range keysForAnnotations {
> ++            mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k])
> ++    }
> ++    mapStringForAnnotations += "}"
> +     s := strings.Join([]string{`&UpdateTaskRequest{`,
> +             `ContainerID:` + fmt.Sprintf("%v", this.ContainerID) + `,`,
> +             `Resources:` + strings.Replace(fmt.Sprintf("%v", this.Resources), "Any", "types1.Any", 1) + `,`,
> ++            `Annotations:` + mapStringForAnnotations + `,`,
> +             `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
> +             `}`,
> +     }, "")
> +@@ -4347,10 +4391,7 @@ func (m *CreateTaskRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4452,10 +4493,7 @@ func (m *CreateTaskResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4570,10 +4608,7 @@ func (m *StartRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4643,10 +4678,7 @@ func (m *StartResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4729,10 +4761,7 @@ func (m *DeleteTaskRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4886,10 +4915,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5004,10 +5030,7 @@ func (m *DeleteProcessRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5122,10 +5145,7 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5212,10 +5232,7 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5298,10 +5315,7 @@ func (m *ListTasksRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5386,10 +5400,7 @@ func (m *ListTasksResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5543,10 +5554,7 @@ func (m *KillRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5813,10 +5821,7 @@ func (m *ExecProcessRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5867,10 +5872,7 @@ func (m *ExecProcessResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6023,10 +6025,7 @@ func (m *ResizePtyRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6161,10 +6160,7 @@ func (m *CloseIORequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6247,10 +6243,7 @@ func (m *PauseTaskRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6333,10 +6326,7 @@ func (m *ResumeTaskRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6419,10 +6409,7 @@ func (m *ListPidsRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6507,10 +6494,7 @@ func (m *ListPidsResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6661,10 +6645,7 @@ func (m *CheckpointTaskRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6749,10 +6730,7 @@ func (m *CheckpointTaskResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6865,16 +6843,140 @@ func (m *UpdateTaskRequest) Unmarshal(dAtA []byte) error {
> +                             return err
> +                     }
> +                     iNdEx = postIndex
> ++            case 3:
> ++                    if wireType != 2 {
> ++                            return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType)
> ++                    }
> ++                    var msglen int
> ++                    for shift := uint(0); ; shift += 7 {
> ++                            if shift >= 64 {
> ++                                    return ErrIntOverflowTasks
> ++                            }
> ++                            if iNdEx >= l {
> ++                                    return io.ErrUnexpectedEOF
> ++                            }
> ++                            b := dAtA[iNdEx]
> ++                            iNdEx++
> ++                            msglen |= int(b&0x7F) << shift
> ++                            if b < 0x80 {
> ++                                    break
> ++                            }
> ++                    }
> ++                    if msglen < 0 {
> ++                            return ErrInvalidLengthTasks
> ++                    }
> ++                    postIndex := iNdEx + msglen
> ++                    if postIndex < 0 {
> ++                            return ErrInvalidLengthTasks
> ++                    }
> ++                    if postIndex > l {
> ++                            return io.ErrUnexpectedEOF
> ++                    }
> ++                    if m.Annotations == nil {
> ++                            m.Annotations = make(map[string]string)
> ++                    }
> ++                    var mapkey string
> ++                    var mapvalue string
> ++                    for iNdEx < postIndex {
> ++                            entryPreIndex := iNdEx
> ++                            var wire uint64
> ++                            for shift := uint(0); ; shift += 7 {
> ++                                    if shift >= 64 {
> ++                                            return ErrIntOverflowTasks
> ++                                    }
> ++                                    if iNdEx >= l {
> ++                                            return io.ErrUnexpectedEOF
> ++                                    }
> ++                                    b := dAtA[iNdEx]
> ++                                    iNdEx++
> ++                                    wire |= uint64(b&0x7F) << shift
> ++                                    if b < 0x80 {
> ++                                            break
> ++                                    }
> ++                            }
> ++                            fieldNum := int32(wire >> 3)
> ++                            if fieldNum == 1 {
> ++                                    var stringLenmapkey uint64
> ++                                    for shift := uint(0); ; shift += 7 {
> ++                                            if shift >= 64 {
> ++                                                    return ErrIntOverflowTasks
> ++                                            }
> ++                                            if iNdEx >= l {
> ++                                                    return io.ErrUnexpectedEOF
> ++                                            }
> ++                                            b := dAtA[iNdEx]
> ++                                            iNdEx++
> ++                                            stringLenmapkey |= uint64(b&0x7F) << shift
> ++                                            if b < 0x80 {
> ++                                                    break
> ++                                            }
> ++                                    }
> ++                                    intStringLenmapkey := int(stringLenmapkey)
> ++                                    if intStringLenmapkey < 0 {
> ++                                            return ErrInvalidLengthTasks
> ++                                    }
> ++                                    postStringIndexmapkey := iNdEx + intStringLenmapkey
> ++                                    if postStringIndexmapkey < 0 {
> ++                                            return ErrInvalidLengthTasks
> ++                                    }
> ++                                    if postStringIndexmapkey > l {
> ++                                            return io.ErrUnexpectedEOF
> ++                                    }
> ++                                    mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
> ++                                    iNdEx = postStringIndexmapkey
> ++                            } else if fieldNum == 2 {
> ++                                    var stringLenmapvalue uint64
> ++                                    for shift := uint(0); ; shift += 7 {
> ++                                            if shift >= 64 {
> ++                                                    return ErrIntOverflowTasks
> ++                                            }
> ++                                            if iNdEx >= l {
> ++                                                    return io.ErrUnexpectedEOF
> ++                                            }
> ++                                            b := dAtA[iNdEx]
> ++                                            iNdEx++
> ++                                            stringLenmapvalue |= uint64(b&0x7F) << shift
> ++                                            if b < 0x80 {
> ++                                                    break
> ++                                            }
> ++                                    }
> ++                                    intStringLenmapvalue := int(stringLenmapvalue)
> ++                                    if intStringLenmapvalue < 0 {
> ++                                            return ErrInvalidLengthTasks
> ++                                    }
> ++                                    postStringIndexmapvalue := iNdEx + intStringLenmapvalue
> ++                                    if postStringIndexmapvalue < 0 {
> ++                                            return ErrInvalidLengthTasks
> ++                                    }
> ++                                    if postStringIndexmapvalue > l {
> ++                                            return io.ErrUnexpectedEOF
> ++                                    }
> ++                                    mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
> ++                                    iNdEx = postStringIndexmapvalue
> ++                            } else {
> ++                                    iNdEx = entryPreIndex
> ++                                    skippy, err := skipTasks(dAtA[iNdEx:])
> ++                                    if err != nil {
> ++                                            return err
> ++                                    }
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> ++                                            return ErrInvalidLengthTasks
> ++                                    }
> ++                                    if (iNdEx + skippy) > postIndex {
> ++                                            return io.ErrUnexpectedEOF
> ++                                    }
> ++                                    iNdEx += skippy
> ++                            }
> ++                    }
> ++                    m.Annotations[mapkey] = mapvalue
> ++                    iNdEx = postIndex
> +             default:
> +                     iNdEx = preIndex
> +                     skippy, err := skipTasks(dAtA[iNdEx:])
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6957,10 +7059,7 @@ func (m *MetricsRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -7045,10 +7144,7 @@ func (m *MetricsResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -7163,10 +7259,7 @@ func (m *WaitRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -7269,10 +7362,7 @@ func (m *WaitResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTasks
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTasks
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/ttrpc/events/v1/events.pb.go b/src/import/api/services/ttrpc/events/v1/events.pb.go
> +index 0e61351d5..b1f275bf0 100644
> +--- a/src/import/api/services/ttrpc/events/v1/events.pb.go
> ++++ b/src/import/api/services/ttrpc/events/v1/events.pb.go
> +@@ -474,10 +474,7 @@ func (m *ForwardRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthEvents
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthEvents
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -661,10 +658,7 @@ func (m *Envelope) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthEvents
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthEvents
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/version/v1/version.pb.go b/src/import/api/services/version/v1/version.pb.go
> +index 81b8c3395..b742c6ae6 100644
> +--- a/src/import/api/services/version/v1/version.pb.go
> ++++ b/src/import/api/services/version/v1/version.pb.go
> +@@ -374,10 +374,7 @@ func (m *VersionResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthVersion
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthVersion
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/types/descriptor.pb.go b/src/import/api/types/descriptor.pb.go
> +index 437d41f23..fe71dbf43 100644
> +--- a/src/import/api/types/descriptor.pb.go
> ++++ b/src/import/api/types/descriptor.pb.go
> +@@ -479,7 +479,7 @@ func (m *Descriptor) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthDescriptor
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -496,10 +496,7 @@ func (m *Descriptor) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthDescriptor
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthDescriptor
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/types/metrics.pb.go b/src/import/api/types/metrics.pb.go
> +index 89a8d9cd6..75773e442 100644
> +--- a/src/import/api/types/metrics.pb.go
> ++++ b/src/import/api/types/metrics.pb.go
> +@@ -348,10 +348,7 @@ func (m *Metric) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthMetrics
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthMetrics
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/types/mount.pb.go b/src/import/api/types/mount.pb.go
> +index 6872e4120..d0a0bee76 100644
> +--- a/src/import/api/types/mount.pb.go
> ++++ b/src/import/api/types/mount.pb.go
> +@@ -392,10 +392,7 @@ func (m *Mount) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthMount
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthMount
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/types/platform.pb.go b/src/import/api/types/platform.pb.go
> +index c03d8b077..a0f78c8a7 100644
> +--- a/src/import/api/types/platform.pb.go
> ++++ b/src/import/api/types/platform.pb.go
> +@@ -333,10 +333,7 @@ func (m *Platform) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthPlatform
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthPlatform
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/types/task/task.pb.go b/src/import/api/types/task/task.pb.go
> +index ae824ff45..f511bbd05 100644
> +--- a/src/import/api/types/task/task.pb.go
> ++++ b/src/import/api/types/task/task.pb.go
> +@@ -772,10 +772,7 @@ func (m *Process) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -881,10 +878,7 @@ func (m *ProcessInfo) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/runtime/linux/runctypes/runc.pb.go b/src/import/runtime/linux/runctypes/runc.pb.go
> +index 26306e594..46d31ff59 100644
> +--- a/src/import/runtime/linux/runctypes/runc.pb.go
> ++++ b/src/import/runtime/linux/runctypes/runc.pb.go
> +@@ -978,10 +978,7 @@ func (m *RuncOptions) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthRunc
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthRunc
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1350,10 +1347,7 @@ func (m *CreateOptions) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthRunc
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthRunc
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1632,10 +1626,7 @@ func (m *CheckpointOptions) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthRunc
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthRunc
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1718,10 +1709,7 @@ func (m *ProcessDetails) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthRunc
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthRunc
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/runtime/v1/shim/v1/shim.pb.go b/src/import/runtime/v1/shim/v1/shim.pb.go
> +index 27f334966..dbc82599d 100644
> +--- a/src/import/runtime/v1/shim/v1/shim.pb.go
> ++++ b/src/import/runtime/v1/shim/v1/shim.pb.go
> +@@ -3262,10 +3262,7 @@ func (m *CreateTaskRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3335,10 +3332,7 @@ func (m *CreateTaskResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3460,10 +3454,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3546,10 +3537,7 @@ func (m *DeleteProcessRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3784,10 +3772,7 @@ func (m *ExecProcessRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3838,10 +3823,7 @@ func (m *ExecProcessResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3962,10 +3944,7 @@ func (m *ResizePtyRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4048,10 +4027,7 @@ func (m *StateRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4372,10 +4348,7 @@ func (m *StateResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4497,10 +4470,7 @@ func (m *KillRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4603,10 +4573,7 @@ func (m *CloseIORequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4689,10 +4656,7 @@ func (m *ListPidsRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4777,10 +4741,7 @@ func (m *ListPidsResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4899,10 +4860,7 @@ func (m *CheckpointTaskRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4972,10 +4930,7 @@ func (m *ShimInfoResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5062,10 +5017,7 @@ func (m *UpdateTaskRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5148,10 +5100,7 @@ func (m *StartRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5253,10 +5202,7 @@ func (m *StartResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5339,10 +5285,7 @@ func (m *WaitRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5445,10 +5388,7 @@ func (m *WaitResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/runtime/v2/runc/options/oci.pb.go b/src/import/runtime/v2/runc/options/oci.pb.go
> +index f298452b6..c9c44742a 100644
> +--- a/src/import/runtime/v2/runc/options/oci.pb.go
> ++++ b/src/import/runtime/v2/runc/options/oci.pb.go
> +@@ -994,10 +994,7 @@ func (m *Options) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthOci
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthOci
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1276,10 +1273,7 @@ func (m *CheckpointOptions) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthOci
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthOci
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1362,10 +1356,7 @@ func (m *ProcessDetails) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthOci
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthOci
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/runtime/v2/task/shim.pb.go b/src/import/runtime/v2/task/shim.pb.go
> +index 3cf11d8e3..6366f9c57 100644
> +--- a/src/import/runtime/v2/task/shim.pb.go
> ++++ b/src/import/runtime/v2/task/shim.pb.go
> +@@ -10,6 +10,7 @@ import (
> +     task "github.com/containerd/containerd/src/import/api/types/task"
> +     github_com_containerd_ttrpc "github.com/containerd/ttrpc"
> +     proto "github.com/gogo/protobuf/proto"
> ++    github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
> +     github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
> +     types1 "github.com/gogo/protobuf/types"
> +     io "io"
> +@@ -617,11 +618,12 @@ func (m *CheckpointTaskRequest) XXX_DiscardUnknown() {
> + var xxx_messageInfo_CheckpointTaskRequest proto.InternalMessageInfo
> +
> + type UpdateTaskRequest struct {
> +-    ID                   string      `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
> +-    Resources            *types1.Any `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
> +-    XXX_NoUnkeyedLiteral struct{}    `json:"-"`
> +-    XXX_unrecognized     []byte      `json:"-"`
> +-    XXX_sizecache        int32       `json:"-"`
> ++    ID                   string            `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
> ++    Resources            *types1.Any       `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
> ++    Annotations          map[string]string `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
> ++    XXX_NoUnkeyedLiteral struct{}          `json:"-"`
> ++    XXX_unrecognized     []byte            `json:"-"`
> ++    XXX_sizecache        int32             `json:"-"`
> + }
> +
> + func (m *UpdateTaskRequest) Reset()      { *m = UpdateTaskRequest{} }
> +@@ -1107,6 +1109,7 @@ func init() {
> +     proto.RegisterType((*PidsResponse)(nil), "containerd.task.v2.PidsResponse")
> +     proto.RegisterType((*CheckpointTaskRequest)(nil), "containerd.task.v2.CheckpointTaskRequest")
> +     proto.RegisterType((*UpdateTaskRequest)(nil), "containerd.task.v2.UpdateTaskRequest")
> ++    proto.RegisterMapType((map[string]string)(nil), "containerd.task.v2.UpdateTaskRequest.AnnotationsEntry")
> +     proto.RegisterType((*StartRequest)(nil), "containerd.task.v2.StartRequest")
> +     proto.RegisterType((*StartResponse)(nil), "containerd.task.v2.StartResponse")
> +     proto.RegisterType((*WaitRequest)(nil), "containerd.task.v2.WaitRequest")
> +@@ -1125,85 +1128,89 @@ func init() {
> + }
> +
> + var fileDescriptor_9202ee34bc3ad8ca = []byte{
> +-    // 1246 bytes of a gzipped FileDescriptorProto
> +-    0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x5d, 0x6f, 0x1b, 0x45,
> +-    0x17, 0xee, 0xfa, 0x63, 0x6d, 0x1f, 0xd7, 0x69, 0x3a, 0x6f, 0x9a, 0x77, 0xeb, 0x4a, 0xb6, 0xbb,
> +-    0xa5, 0xc1, 0x80, 0x64, 0x0b, 0x57, 0x70, 0x41, 0x24, 0x50, 0xbe, 0xa8, 0x4c, 0x0b, 0x89, 0xb6,
> +-    0x45, 0x45, 0xdc, 0x58, 0x1b, 0xef, 0xc4, 0x5e, 0xc5, 0xde, 0x59, 0x76, 0x66, 0xf3, 0x81, 0x84,
> +-    0xc4, 0x15, 0x17, 0x5c, 0xf1, 0xb3, 0x72, 0x89, 0xc4, 0x0d, 0x37, 0x04, 0xea, 0x7f, 0xc0, 0x3f,
> +-    0x40, 0xf3, 0xe1, 0x78, 0xed, 0xec, 0xda, 0x49, 0xe5, 0x9b, 0x68, 0xce, 0xce, 0x33, 0x67, 0xe6,
> +-    0x9c, 0x79, 0xce, 0x73, 0x26, 0x86, 0xcd, 0x9e, 0xcb, 0xfa, 0xe1, 0x61, 0xa3, 0x4b, 0x86, 0xcd,
> +-    0x2e, 0xf1, 0x98, 0xed, 0x7a, 0x38, 0x70, 0xa2, 0xc3, 0x20, 0xf4, 0x98, 0x3b, 0xc4, 0xcd, 0x93,
> +-    0x56, 0x93, 0xd9, 0xf4, 0xb8, 0x49, 0xfb, 0xee, 0xb0, 0xe1, 0x07, 0x84, 0x11, 0x84, 0x26, 0xb0,
> +-    0x06, 0x9f, 0x6b, 0x9c, 0xb4, 0xca, 0x0f, 0x7b, 0x84, 0xf4, 0x06, 0xb8, 0x29, 0x10, 0x87, 0xe1,
> +-    0x51, 0xd3, 0xf6, 0xce, 0x25, 0xbc, 0xfc, 0x68, 0x76, 0x0a, 0x0f, 0x7d, 0x36, 0x9e, 0x5c, 0xeb,
> +-    0x91, 0x1e, 0x11, 0xc3, 0x26, 0x1f, 0xa9, 0xaf, 0xd5, 0xd9, 0x25, 0xfc, 0x28, 0x94, 0xd9, 0x43,
> +-    0x5f, 0x01, 0x3e, 0x5d, 0x78, 0x7e, 0xdb, 0x77, 0x9b, 0xec, 0xdc, 0xc7, 0xb4, 0x39, 0x24, 0xa1,
> +-    0xc7, 0xd4, 0xba, 0xcf, 0x6e, 0xb1, 0x4e, 0x84, 0x2d, 0xe2, 0x13, 0x6b, 0xcd, 0x3f, 0x52, 0x70,
> +-    0x7f, 0x27, 0xc0, 0x36, 0xc3, 0xaf, 0x6d, 0x7a, 0x6c, 0xe1, 0x1f, 0x42, 0x4c, 0x19, 0x5a, 0x87,
> +-    0x94, 0xeb, 0x18, 0x5a, 0x4d, 0xab, 0x17, 0xb6, 0xf5, 0xd1, 0x65, 0x35, 0xd5, 0xde, 0xb5, 0x52,
> +-    0xae, 0x83, 0xd6, 0x41, 0x3f, 0x0c, 0x3d, 0x67, 0x80, 0x8d, 0x14, 0x9f, 0xb3, 0x94, 0x85, 0x9a,
> +-    0xa0, 0x07, 0x84, 0xb0, 0x23, 0x6a, 0xa4, 0x6b, 0xe9, 0x7a, 0xb1, 0xf5, 0xff, 0x46, 0x34, 0x9b,
> +-    0x7c, 0xe3, 0xc6, 0xd7, 0xfc, 0xc0, 0x96, 0x82, 0xa1, 0x32, 0xe4, 0x19, 0x0e, 0x86, 0xae, 0x67,
> +-    0x0f, 0x8c, 0x4c, 0x4d, 0xab, 0xe7, 0xad, 0x2b, 0x1b, 0xad, 0x41, 0x96, 0x32, 0xc7, 0xf5, 0x8c,
> +-    0xac, 0xd8, 0x43, 0x1a, 0x7c, 0x6b, 0xca, 0x1c, 0x12, 0x32, 0x43, 0x97, 0x5b, 0x4b, 0x4b, 0x7d,
> +-    0xc7, 0x41, 0x60, 0xe4, 0xae, 0xbe, 0xe3, 0x20, 0x40, 0x15, 0x80, 0x6e, 0x1f, 0x77, 0x8f, 0x7d,
> +-    0xe2, 0x7a, 0xcc, 0xc8, 0x8b, 0xb9, 0xc8, 0x17, 0xf4, 0x11, 0xdc, 0xf7, 0xed, 0x00, 0x7b, 0xac,
> +-    0x13, 0x81, 0x15, 0x04, 0x6c, 0x55, 0x4e, 0xec, 0x4c, 0xc0, 0x0d, 0xc8, 0x11, 0x9f, 0xb9, 0xc4,
> +-    0xa3, 0x06, 0xd4, 0xb4, 0x7a, 0xb1, 0xb5, 0xd6, 0x90, 0x97, 0xd9, 0x18, 0x5f, 0x66, 0x63, 0xcb,
> +-    0x3b, 0xb7, 0xc6, 0x20, 0x73, 0x03, 0x50, 0x34, 0xa9, 0xd4, 0x27, 0x1e, 0xc5, 0x68, 0x15, 0xd2,
> +-    0xbe, 0x4a, 0x6b, 0xc9, 0xe2, 0x43, 0xf3, 0x25, 0x94, 0x76, 0xf1, 0x00, 0x33, 0xbc, 0x28, 0xf1,
> +-    0x4f, 0x20, 0x87, 0xcf, 0x70, 0xb7, 0xe3, 0x3a, 0x32, 0xf3, 0xdb, 0x30, 0xba, 0xac, 0xea, 0x7b,
> +-    0x67, 0xb8, 0xdb, 0xde, 0xb5, 0x74, 0x3e, 0xd5, 0x76, 0xcc, 0x5f, 0x34, 0x58, 0x19, 0xbb, 0x4b,
> +-    0xda, 0x12, 0x55, 0xa1, 0x88, 0xcf, 0x5c, 0xd6, 0xa1, 0xcc, 0x66, 0x21, 0x15, 0xde, 0x4a, 0x16,
> +-    0xf0, 0x4f, 0xaf, 0xc4, 0x17, 0xb4, 0x05, 0x05, 0x6e, 0x61, 0xa7, 0x63, 0x33, 0x23, 0x2d, 0xa2,
> +-    0x2d, 0x5f, 0x8b, 0xf6, 0xf5, 0x98, 0xba, 0xdb, 0xf9, 0x8b, 0xcb, 0xea, 0x9d, 0xdf, 0xfe, 0xae,
> +-    0x6a, 0x56, 0x5e, 0x2e, 0xdb, 0x62, 0xe6, 0x5f, 0x1a, 0x20, 0x7e, 0xb6, 0x83, 0x80, 0x74, 0x31,
> +-    0xa5, 0xcb, 0x08, 0x6e, 0x8a, 0x31, 0xe9, 0x24, 0xc6, 0x64, 0xe2, 0x19, 0x93, 0x4d, 0x60, 0x8c,
> +-    0x3e, 0xc5, 0x98, 0x3a, 0x64, 0xa8, 0x8f, 0xbb, 0x82, 0x47, 0x49, 0x37, 0x2c, 0x10, 0xe6, 0x03,
> +-    0xf8, 0xdf, 0x54, 0x78, 0x32, 0xd9, 0xe6, 0x4f, 0xb0, 0x6a, 0x61, 0xea, 0xfe, 0x88, 0x0f, 0xd8,
> +-    0xf9, 0x52, 0x62, 0x5e, 0x83, 0xec, 0xa9, 0xeb, 0xb0, 0xbe, 0x08, 0xb8, 0x64, 0x49, 0x83, 0x9f,
> +-    0xbf, 0x8f, 0xdd, 0x5e, 0x9f, 0x89, 0x70, 0x4b, 0x96, 0xb2, 0xcc, 0x17, 0x70, 0x97, 0x5f, 0xe1,
> +-    0x72, 0xb8, 0xf4, 0x6f, 0x0a, 0x4a, 0xca, 0x9b, 0xa2, 0xd2, 0x6d, 0x35, 0x41, 0x51, 0x2f, 0x3d,
> +-    0xa1, 0xde, 0x33, 0x9e, 0x78, 0xc1, 0x3a, 0x7e, 0xf0, 0x95, 0xd6, 0xa3, 0xa8, 0x4a, 0x9c, 0x7c,
> +-    0xac, 0x84, 0x42, 0xd2, 0xd0, 0x52, 0xd0, 0x25, 0xa9, 0x41, 0x94, 0x3d, 0xf9, 0x19, 0xf6, 0xcc,
> +-    0x54, 0x44, 0x61, 0x7e, 0x45, 0xc0, 0xbb, 0x54, 0x44, 0x34, 0xe7, 0xc5, 0xc4, 0x9c, 0x33, 0x28,
> +-    0xbe, 0x70, 0x07, 0x83, 0xa5, 0x50, 0x87, 0x27, 0xc2, 0xed, 0x8d, 0x8b, 0xa5, 0x64, 0x29, 0x8b,
> +-    0xdf, 0x8a, 0x3d, 0x18, 0x6b, 0x2e, 0x1f, 0x9a, 0x5d, 0x58, 0xd9, 0x19, 0x10, 0x8a, 0xdb, 0xfb,
> +-    0xcb, 0xe2, 0xac, 0xbc, 0x2f, 0x59, 0xa4, 0xd2, 0x30, 0x9f, 0x42, 0xf1, 0xc0, 0x75, 0x16, 0x29,
> +-    0x81, 0xf9, 0x0d, 0xdc, 0x95, 0x30, 0xc5, 0xb9, 0xcf, 0xa1, 0xe0, 0xcb, 0x22, 0xc3, 0xd4, 0xd0,
> +-    0x44, 0x6b, 0xa9, 0xc5, 0x92, 0x46, 0x95, 0x62, 0xdb, 0x3b, 0x22, 0xd6, 0x64, 0x89, 0x49, 0xe1,
> +-    0xc1, 0x44, 0xc5, 0x6f, 0xd2, 0xe0, 0x10, 0x64, 0x7c, 0x9b, 0xf5, 0x15, 0x95, 0xc5, 0x38, 0x2a,
> +-    0xfe, 0xe9, 0x9b, 0x88, 0x7f, 0x07, 0xee, 0x7f, 0xeb, 0x3b, 0x37, 0xec, 0xa8, 0x2d, 0x28, 0x04,
> +-    0x98, 0x92, 0x30, 0xe8, 0x62, 0x29, 0xc6, 0x49, 0xee, 0x27, 0x30, 0x55, 0xe8, 0x01, 0x5b, 0x4a,
> +-    0xa1, 0x3f, 0x16, 0x75, 0xce, 0x9d, 0x25, 0x76, 0xa9, 0xaf, 0xa0, 0xf8, 0xc6, 0x76, 0x97, 0xb3,
> +-    0x5d, 0x00, 0x77, 0xa5, 0x2f, 0xb5, 0xdb, 0x4c, 0xf1, 0x69, 0xf3, 0x8b, 0x2f, 0xf5, 0x4e, 0xed,
> +-    0x68, 0x43, 0x0a, 0xe3, 0x42, 0xf6, 0x6d, 0x4a, 0xc9, 0x9b, 0xd0, 0xef, 0x43, 0xce, 0x65, 0x9b,
> +-    0xc9, 0x63, 0x25, 0x5d, 0x8c, 0x84, 0x98, 0x75, 0x58, 0xd9, 0x21, 0x9e, 0x87, 0xbb, 0x8b, 0xf2,
> +-    0x64, 0xda, 0x70, 0xef, 0x0a, 0xa9, 0x36, 0x7a, 0x08, 0x79, 0xfe, 0x14, 0xed, 0x4c, 0x12, 0x9f,
> +-    0xe3, 0xf6, 0x81, 0xeb, 0xf0, 0x29, 0xfe, 0x5c, 0x13, 0x53, 0xb2, 0x59, 0xe7, 0xb8, 0xcd, 0xa7,
> +-    0x0c, 0xc8, 0x9d, 0xe0, 0x80, 0xba, 0x44, 0x16, 0x5b, 0xc1, 0x1a, 0x9b, 0xe6, 0x26, 0xdc, 0x7b,
> +-    0xd5, 0x0f, 0x99, 0x43, 0x4e, 0xbd, 0x45, 0xb7, 0xb6, 0x0a, 0x69, 0x8f, 0x9c, 0x0a, 0xd7, 0x79,
> +-    0x8b, 0x0f, 0x79, 0xba, 0x0e, 0xec, 0x90, 0x2e, 0xea, 0x23, 0xe6, 0xfb, 0x50, 0xb2, 0x30, 0x0d,
> +-    0x87, 0x8b, 0x80, 0xad, 0x5f, 0x01, 0x32, 0xbc, 0x16, 0xd0, 0x4b, 0xc8, 0x8a, 0x9e, 0x82, 0xa6,
> +-    0x8a, 0x58, 0xbd, 0xb6, 0x1b, 0xd1, 0xe6, 0x55, 0x7e, 0x3c, 0x07, 0xa1, 0x92, 0xf6, 0x06, 0x74,
> +-    0xf9, 0xc8, 0x42, 0x4f, 0xe3, 0xc0, 0xd7, 0x5e, 0xb5, 0xe5, 0x8d, 0x45, 0x30, 0xe5, 0x58, 0x1e,
> +-    0x33, 0x60, 0x89, 0xc7, 0xbc, 0x2a, 0xbd, 0xc4, 0x63, 0x46, 0xea, 0x69, 0x1f, 0x74, 0xf9, 0x28,
> +-    0x43, 0xb1, 0xe0, 0xa9, 0xf7, 0x5f, 0xd9, 0x9c, 0x07, 0x51, 0x0e, 0xdb, 0x90, 0xe1, 0x22, 0x89,
> +-    0xaa, 0x71, 0xd8, 0x88, 0xca, 0x96, 0x6b, 0xc9, 0x00, 0xe5, 0x6a, 0x0b, 0xb2, 0xe2, 0xaa, 0xe3,
> +-    0x23, 0x8d, 0xb2, 0xa0, 0xbc, 0x7e, 0x8d, 0xfc, 0x7b, 0xfc, 0x3f, 0x1e, 0xb4, 0x03, 0xba, 0x64,
> +-    0x41, 0x7c, 0x78, 0x53, 0x0c, 0x49, 0x74, 0xb2, 0x0f, 0x10, 0x79, 0x6d, 0x7f, 0x10, 0x7b, 0x4f,
> +-    0x71, 0x3a, 0x9e, 0xe8, 0xf0, 0x0b, 0xc8, 0xf0, 0x56, 0x1a, 0x9f, 0xa3, 0x48, 0x93, 0x4d, 0x74,
> +-    0xf0, 0x25, 0x64, 0xb8, 0x72, 0xa1, 0x58, 0xce, 0x5c, 0x7f, 0xdb, 0x26, 0xfa, 0x69, 0x43, 0xe1,
> +-    0xea, 0x4d, 0x88, 0xde, 0x4b, 0xc8, 0xd0, 0xd4, 0x93, 0x31, 0xd1, 0xd5, 0x1e, 0xe4, 0x54, 0xa3,
> +-    0x46, 0xb1, 0x34, 0x99, 0xee, 0xe2, 0x89, 0x6e, 0x9e, 0x83, 0x2e, 0xdb, 0x53, 0x7c, 0xd9, 0x5c,
> +-    0x6b, 0x5d, 0x73, 0x42, 0xcb, 0x70, 0x29, 0x8f, 0xcf, 0x71, 0xa4, 0x61, 0xc4, 0xf3, 0x70, 0xaa,
> +-    0x0b, 0x28, 0x61, 0xa0, 0xc9, 0xc2, 0x40, 0x17, 0x0a, 0xc3, 0x84, 0xd5, 0x16, 0xe4, 0x94, 0xc0,
> +-    0x26, 0x24, 0x6a, 0x4a, 0xa7, 0xcb, 0x4f, 0xe6, 0x62, 0x94, 0xcf, 0xe7, 0x90, 0x1f, 0x2b, 0x2a,
> +-    0x8a, 0x5d, 0x30, 0xa3, 0xb7, 0x49, 0x59, 0xdb, 0xde, 0xbf, 0x78, 0x5b, 0xb9, 0xf3, 0xe7, 0xdb,
> +-    0xca, 0x9d, 0x9f, 0x47, 0x15, 0xed, 0x62, 0x54, 0xd1, 0x7e, 0x1f, 0x55, 0xb4, 0x7f, 0x46, 0x15,
> +-    0xed, 0xfb, 0x4f, 0x6e, 0xfb, 0xf3, 0xc5, 0x26, 0xff, 0xf3, 0x5d, 0xea, 0x50, 0x17, 0x5b, 0x3c,
> +-    0xfb, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x19, 0x17, 0x87, 0x57, 0x00, 0x11, 0x00, 0x00,
> ++    // 1306 bytes of a gzipped FileDescriptorProto
> ++    0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4d, 0x6f, 0xdb, 0x46,
> ++    0x13, 0x0e, 0xf5, 0x41, 0x49, 0xa3, 0xc8, 0x71, 0xf6, 0x75, 0xf2, 0x32, 0x0a, 0x20, 0x29, 0x4c,
> ++    0x93, 0xaa, 0x2d, 0x40, 0xa1, 0x0a, 0x1a, 0x14, 0x31, 0x90, 0xc2, 0x76, 0xdc, 0x40, 0x4d, 0x5a,
> ++    0x1b, 0x4c, 0x8a, 0x04, 0xbd, 0x18, 0xb4, 0xb8, 0x91, 0x08, 0x4b, 0x5c, 0x96, 0xbb, 0x74, 0xa2,
> ++    0x02, 0x05, 0x7a, 0xea, 0xa1, 0xa7, 0xfe, 0xac, 0x1c, 0x0b, 0xf4, 0xd2, 0x4b, 0xd3, 0x46, 0xff,
> ++    0xa0, 0xc7, 0xde, 0x8a, 0xfd, 0x90, 0x45, 0x49, 0xa4, 0x14, 0x07, 0xba, 0x18, 0x3b, 0xdc, 0x67,
> ++    0x67, 0x67, 0x67, 0x9f, 0x79, 0x66, 0x65, 0xd8, 0xee, 0x79, 0xac, 0x1f, 0x1d, 0x5b, 0x5d, 0x32,
> ++    0x6c, 0x75, 0x89, 0xcf, 0x1c, 0xcf, 0xc7, 0xa1, 0x1b, 0x1f, 0x86, 0x91, 0xcf, 0xbc, 0x21, 0x6e,
> ++    0x9d, 0xb6, 0x5b, 0xcc, 0xa1, 0x27, 0x2d, 0xda, 0xf7, 0x86, 0x56, 0x10, 0x12, 0x46, 0x10, 0x9a,
> ++    0xc2, 0x2c, 0x3e, 0x67, 0x9d, 0xb6, 0xab, 0xd7, 0x7a, 0x84, 0xf4, 0x06, 0xb8, 0x25, 0x10, 0xc7,
> ++    0xd1, 0x8b, 0x96, 0xe3, 0x8f, 0x24, 0xbc, 0x7a, 0x7d, 0x7e, 0x0a, 0x0f, 0x03, 0x36, 0x99, 0xdc,
> ++    0xea, 0x91, 0x1e, 0x11, 0xc3, 0x16, 0x1f, 0xa9, 0xaf, 0xf5, 0xf9, 0x25, 0x3c, 0x14, 0xca, 0x9c,
> ++    0x61, 0xa0, 0x00, 0x77, 0x57, 0xc6, 0xef, 0x04, 0x5e, 0x8b, 0x8d, 0x02, 0x4c, 0x5b, 0x43, 0x12,
> ++    0xf9, 0x4c, 0xad, 0xbb, 0x77, 0x8e, 0x75, 0xe2, 0xd8, 0xe2, 0x7c, 0x62, 0xad, 0xf9, 0x7b, 0x06,
> ++    0x2e, 0xef, 0x85, 0xd8, 0x61, 0xf8, 0xa9, 0x43, 0x4f, 0x6c, 0xfc, 0x7d, 0x84, 0x29, 0x43, 0x57,
> ++    0x21, 0xe3, 0xb9, 0x86, 0xd6, 0xd0, 0x9a, 0xa5, 0x5d, 0x7d, 0xfc, 0xa6, 0x9e, 0xe9, 0x3c, 0xb0,
> ++    0x33, 0x9e, 0x8b, 0xae, 0x82, 0x7e, 0x1c, 0xf9, 0xee, 0x00, 0x1b, 0x19, 0x3e, 0x67, 0x2b, 0x0b,
> ++    0xb5, 0x40, 0x0f, 0x09, 0x61, 0x2f, 0xa8, 0x91, 0x6d, 0x64, 0x9b, 0xe5, 0xf6, 0xff, 0xad, 0x78,
> ++    0x36, 0xf9, 0xc6, 0xd6, 0xd7, 0x3c, 0x60, 0x5b, 0xc1, 0x50, 0x15, 0x8a, 0x0c, 0x87, 0x43, 0xcf,
> ++    0x77, 0x06, 0x46, 0xae, 0xa1, 0x35, 0x8b, 0xf6, 0x99, 0x8d, 0xb6, 0x20, 0x4f, 0x99, 0xeb, 0xf9,
> ++    0x46, 0x5e, 0xec, 0x21, 0x0d, 0xbe, 0x35, 0x65, 0x2e, 0x89, 0x98, 0xa1, 0xcb, 0xad, 0xa5, 0xa5,
> ++    0xbe, 0xe3, 0x30, 0x34, 0x0a, 0x67, 0xdf, 0x71, 0x18, 0xa2, 0x1a, 0x40, 0xb7, 0x8f, 0xbb, 0x27,
> ++    0x01, 0xf1, 0x7c, 0x66, 0x14, 0xc5, 0x5c, 0xec, 0x0b, 0xfa, 0x04, 0x2e, 0x07, 0x4e, 0x88, 0x7d,
> ++    0x76, 0x14, 0x83, 0x95, 0x04, 0x6c, 0x53, 0x4e, 0xec, 0x4d, 0xc1, 0x16, 0x14, 0x48, 0xc0, 0x3c,
> ++    0xe2, 0x53, 0x03, 0x1a, 0x5a, 0xb3, 0xdc, 0xde, 0xb2, 0xe4, 0x65, 0x5a, 0x93, 0xcb, 0xb4, 0x76,
> ++    0xfc, 0x91, 0x3d, 0x01, 0x99, 0xb7, 0x01, 0xc5, 0x93, 0x4a, 0x03, 0xe2, 0x53, 0x8c, 0x36, 0x21,
> ++    0x1b, 0xa8, 0xb4, 0x56, 0x6c, 0x3e, 0x34, 0x1f, 0x43, 0xe5, 0x01, 0x1e, 0x60, 0x86, 0x57, 0x25,
> ++    0xfe, 0x26, 0x14, 0xf0, 0x2b, 0xdc, 0x3d, 0xf2, 0x5c, 0x99, 0xf9, 0x5d, 0x18, 0xbf, 0xa9, 0xeb,
> ++    0xfb, 0xaf, 0x70, 0xb7, 0xf3, 0xc0, 0xd6, 0xf9, 0x54, 0xc7, 0x35, 0x7f, 0xd6, 0x60, 0x63, 0xe2,
> ++    0x2e, 0x6d, 0x4b, 0x54, 0x87, 0x32, 0x7e, 0xe5, 0xb1, 0x23, 0xca, 0x1c, 0x16, 0x51, 0xe1, 0xad,
> ++    0x62, 0x03, 0xff, 0xf4, 0x44, 0x7c, 0x41, 0x3b, 0x50, 0xe2, 0x16, 0x76, 0x8f, 0x1c, 0x66, 0x64,
> ++    0xc5, 0x69, 0xab, 0x0b, 0xa7, 0x7d, 0x3a, 0xa1, 0xee, 0x6e, 0xf1, 0xf5, 0x9b, 0xfa, 0x85, 0x5f,
> ++    0xff, 0xaa, 0x6b, 0x76, 0x51, 0x2e, 0xdb, 0x61, 0xe6, 0x9f, 0x1a, 0x20, 0x1e, 0xdb, 0x61, 0x48,
> ++    0xba, 0x98, 0xd2, 0x75, 0x1c, 0x6e, 0x86, 0x31, 0xd9, 0x34, 0xc6, 0xe4, 0x92, 0x19, 0x93, 0x4f,
> ++    0x61, 0x8c, 0x3e, 0xc3, 0x98, 0x26, 0xe4, 0x68, 0x80, 0xbb, 0x82, 0x47, 0x69, 0x37, 0x2c, 0x10,
> ++    0xe6, 0x15, 0xf8, 0xdf, 0xcc, 0xf1, 0x64, 0xb2, 0xcd, 0x1f, 0x61, 0xd3, 0xc6, 0xd4, 0xfb, 0x01,
> ++    0x1f, 0xb2, 0xd1, 0x5a, 0xce, 0xbc, 0x05, 0xf9, 0x97, 0x9e, 0xcb, 0xfa, 0xe2, 0xc0, 0x15, 0x5b,
> ++    0x1a, 0x3c, 0xfe, 0x3e, 0xf6, 0x7a, 0x7d, 0x26, 0x8e, 0x5b, 0xb1, 0x95, 0x65, 0x3e, 0x82, 0x8b,
> ++    0xfc, 0x0a, 0xd7, 0xc3, 0xa5, 0x7f, 0x32, 0x50, 0x51, 0xde, 0x14, 0x95, 0xce, 0xab, 0x09, 0x8a,
> ++    0x7a, 0xd9, 0x29, 0xf5, 0xee, 0xf0, 0xc4, 0x0b, 0xd6, 0xf1, 0xc0, 0x37, 0xda, 0xd7, 0xe3, 0x2a,
> ++    0x71, 0xfa, 0xa9, 0x12, 0x0a, 0x49, 0x43, 0x5b, 0x41, 0xd7, 0xa4, 0x06, 0x71, 0xf6, 0x14, 0xe7,
> ++    0xd8, 0x33, 0x57, 0x11, 0xa5, 0xe5, 0x15, 0x01, 0xef, 0x53, 0x11, 0xf1, 0x9c, 0x97, 0x53, 0x73,
> ++    0xce, 0xa0, 0xfc, 0xc8, 0x1b, 0x0c, 0xd6, 0x42, 0x1d, 0x9e, 0x08, 0xaf, 0x37, 0x29, 0x96, 0x8a,
> ++    0xad, 0x2c, 0x7e, 0x2b, 0xce, 0x60, 0xa2, 0xb9, 0x7c, 0x68, 0x76, 0x61, 0x63, 0x6f, 0x40, 0x28,
> ++    0xee, 0x1c, 0xac, 0x8b, 0xb3, 0xf2, 0xbe, 0x64, 0x91, 0x4a, 0xc3, 0xbc, 0x05, 0xe5, 0x43, 0xcf,
> ++    0x5d, 0xa5, 0x04, 0xe6, 0x37, 0x70, 0x51, 0xc2, 0x14, 0xe7, 0xee, 0x43, 0x29, 0x90, 0x45, 0x86,
> ++    0xa9, 0xa1, 0x89, 0xd6, 0xd2, 0x48, 0x24, 0x8d, 0x2a, 0xc5, 0x8e, 0xff, 0x82, 0xd8, 0xd3, 0x25,
> ++    0x26, 0x85, 0x2b, 0x53, 0x15, 0x7f, 0x97, 0x06, 0x87, 0x20, 0x17, 0x38, 0xac, 0xaf, 0xa8, 0x2c,
> ++    0xc6, 0x71, 0xf1, 0xcf, 0xbe, 0x8b, 0xf8, 0xff, 0xab, 0xc1, 0xe5, 0x6f, 0x03, 0xf7, 0x1d, 0x5b,
> ++    0x6a, 0x1b, 0x4a, 0x21, 0xa6, 0x24, 0x0a, 0xbb, 0x58, 0xaa, 0x71, 0x9a, 0xff, 0x29, 0x0c, 0x3d,
> ++    0x87, 0xb2, 0xe3, 0xfb, 0x84, 0x39, 0x93, 0xa8, 0x78, 0x62, 0xee, 0x5a, 0x8b, 0x2f, 0x18, 0x6b,
> ++    0x21, 0x0e, 0x6b, 0x67, 0xba, 0x70, 0xdf, 0x67, 0xe1, 0xc8, 0x8e, 0xbb, 0xaa, 0xde, 0x87, 0xcd,
> ++    0x79, 0x00, 0xa7, 0xcc, 0x09, 0x1e, 0xc9, 0xd0, 0x6d, 0x3e, 0xe4, 0x77, 0x7c, 0xea, 0x0c, 0xa2,
> ++    0x49, 0xc5, 0x4b, 0xe3, 0x5e, 0xe6, 0x73, 0x4d, 0x69, 0x50, 0xc8, 0xd6, 0xa2, 0x41, 0x37, 0x84,
> ++    0x04, 0x71, 0x67, 0xa9, 0x0d, 0xf4, 0x2b, 0x28, 0x3f, 0x73, 0xbc, 0xf5, 0x6c, 0x17, 0xc2, 0x45,
> ++    0xe9, 0x4b, 0xed, 0x36, 0xa7, 0x0b, 0xda, 0x72, 0x5d, 0xc8, 0xbc, 0x57, 0xa7, 0xbc, 0x2d, 0x35,
> ++    0x7b, 0x65, 0x61, 0x6c, 0x4b, 0x35, 0x9e, 0x56, 0xc6, 0xc7, 0xbc, 0xcc, 0x1c, 0x26, 0xc3, 0x4a,
> ++    0xa3, 0x8c, 0x84, 0x98, 0x4d, 0xd8, 0xd8, 0x23, 0xbe, 0x8f, 0xbb, 0xab, 0xf2, 0x64, 0x3a, 0x70,
> ++    0xe9, 0x0c, 0xa9, 0x36, 0xba, 0x06, 0x45, 0xfe, 0x4a, 0x3e, 0x9a, 0x26, 0xbe, 0xc0, 0xed, 0x43,
> ++    0xcf, 0xe5, 0x53, 0x9c, 0x67, 0x62, 0x4a, 0xbe, 0x23, 0x0a, 0xdc, 0xe6, 0x53, 0x06, 0x14, 0x4e,
> ++    0x71, 0x48, 0x3d, 0x22, 0x75, 0xa0, 0x64, 0x4f, 0x4c, 0x73, 0x1b, 0x2e, 0x3d, 0xe9, 0x47, 0xcc,
> ++    0x25, 0x2f, 0xfd, 0x55, 0xb7, 0xb6, 0x09, 0x59, 0x9f, 0xbc, 0x14, 0xae, 0x8b, 0x36, 0x1f, 0xf2,
> ++    0x74, 0x1d, 0x3a, 0x11, 0x5d, 0xd5, 0xe2, 0xcc, 0x0f, 0xa1, 0x62, 0x63, 0x1a, 0x0d, 0x57, 0x01,
> ++    0xdb, 0xbf, 0x00, 0xe4, 0x78, 0x75, 0xa0, 0xc7, 0x90, 0x17, 0xed, 0x0e, 0x35, 0x92, 0xca, 0x28,
> ++    0xde, 0x57, 0xab, 0x37, 0x96, 0x20, 0x54, 0xd2, 0x9e, 0x81, 0x2e, 0xdf, 0x7f, 0xe8, 0x56, 0x12,
> ++    0x78, 0xe1, 0xc1, 0x5d, 0xbd, 0xbd, 0x0a, 0xa6, 0x1c, 0xcb, 0x30, 0x43, 0x96, 0x1a, 0xe6, 0x59,
> ++    0xe9, 0xa5, 0x86, 0x19, 0xab, 0xa7, 0x03, 0xd0, 0xe5, 0x7b, 0x11, 0x25, 0x82, 0x67, 0x9e, 0xa6,
> ++    0x55, 0x73, 0x19, 0x44, 0x39, 0xec, 0x40, 0x8e, 0xeb, 0x37, 0xaa, 0x27, 0x61, 0x63, 0x0d, 0xa0,
> ++    0xda, 0x48, 0x07, 0x28, 0x57, 0x3b, 0x90, 0x17, 0x57, 0x9d, 0x7c, 0xd2, 0x38, 0x0b, 0xaa, 0x57,
> ++    0x17, 0xc8, 0xbf, 0xcf, 0x7f, 0x8c, 0xa1, 0x3d, 0xd0, 0x25, 0x0b, 0x92, 0x8f, 0x37, 0xc3, 0x90,
> ++    0x54, 0x27, 0x07, 0x00, 0xb1, 0x1f, 0x02, 0x1f, 0x25, 0xde, 0x53, 0x52, 0x8b, 0x49, 0x75, 0xf8,
> ++    0x05, 0xe4, 0x78, 0x97, 0x4f, 0xce, 0x51, 0xac, 0xff, 0xa7, 0x3a, 0xf8, 0x12, 0x72, 0x5c, 0xb9,
> ++    0x50, 0x22, 0x67, 0x16, 0x9f, 0xdd, 0xa9, 0x7e, 0x3a, 0x50, 0x3a, 0x7b, 0xae, 0xa2, 0x0f, 0x52,
> ++    0x32, 0x34, 0xf3, 0x9a, 0x4d, 0x75, 0xb5, 0x0f, 0x05, 0xf5, 0x86, 0x40, 0x89, 0x34, 0x99, 0x7d,
> ++    0x60, 0xa4, 0xba, 0x79, 0x08, 0xba, 0x6c, 0x58, 0xc9, 0x65, 0xb3, 0xd0, 0xcc, 0x96, 0x1c, 0x2d,
> ++    0xc7, 0xa5, 0x3c, 0x39, 0xc7, 0xb1, 0x86, 0x91, 0xcc, 0xc3, 0x99, 0x2e, 0xa0, 0x84, 0x81, 0xa6,
> ++    0x0b, 0x03, 0x5d, 0x29, 0x0c, 0x53, 0x56, 0xdb, 0x50, 0x50, 0x02, 0x9b, 0x92, 0xa8, 0x19, 0x9d,
> ++    0xae, 0xde, 0x5c, 0x8a, 0x51, 0x3e, 0x1f, 0x42, 0x71, 0xa2, 0xa8, 0x28, 0x71, 0xc1, 0x9c, 0xde,
> ++    0xa6, 0x65, 0x6d, 0xf7, 0xe0, 0xf5, 0xdb, 0xda, 0x85, 0x3f, 0xde, 0xd6, 0x2e, 0xfc, 0x34, 0xae,
> ++    0x69, 0xaf, 0xc7, 0x35, 0xed, 0xb7, 0x71, 0x4d, 0xfb, 0x7b, 0x5c, 0xd3, 0xbe, 0xfb, 0xec, 0xbc,
> ++    0xff, 0x59, 0xd9, 0xe6, 0x7f, 0x9e, 0x67, 0x8e, 0x75, 0xb1, 0xc5, 0x9d, 0xff, 0x02, 0x00, 0x00,
> ++    0xff, 0xff, 0xd3, 0xbf, 0xc3, 0xa9, 0x9b, 0x11, 0x00, 0x00,
> + }
> +
> + func (m *CreateTaskRequest) Marshal() (dAtA []byte, err error) {
> +@@ -2000,6 +2007,25 @@ func (m *UpdateTaskRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
> +             i -= len(m.XXX_unrecognized)
> +             copy(dAtA[i:], m.XXX_unrecognized)
> +     }
> ++    if len(m.Annotations) > 0 {
> ++            for k := range m.Annotations {
> ++                    v := m.Annotations[k]
> ++                    baseI := i
> ++                    i -= len(v)
> ++                    copy(dAtA[i:], v)
> ++                    i = encodeVarintShim(dAtA, i, uint64(len(v)))
> ++                    i--
> ++                    dAtA[i] = 0x12
> ++                    i -= len(k)
> ++                    copy(dAtA[i:], k)
> ++                    i = encodeVarintShim(dAtA, i, uint64(len(k)))
> ++                    i--
> ++                    dAtA[i] = 0xa
> ++                    i = encodeVarintShim(dAtA, i, uint64(baseI-i))
> ++                    i--
> ++                    dAtA[i] = 0x1a
> ++            }
> ++    }
> +     if m.Resources != nil {
> +             {
> +                     size, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])
> +@@ -2826,6 +2852,14 @@ func (m *UpdateTaskRequest) Size() (n int) {
> +             l = m.Resources.Size()
> +             n += 1 + l + sovShim(uint64(l))
> +     }
> ++    if len(m.Annotations) > 0 {
> ++            for k, v := range m.Annotations {
> ++                    _ = k
> ++                    _ = v
> ++                    mapEntrySize := 1 + len(k) + sovShim(uint64(len(k))) + 1 + len(v) + sovShim(uint64(len(v)))
> ++                    n += mapEntrySize + 1 + sovShim(uint64(mapEntrySize))
> ++            }
> ++    }
> +     if m.XXX_unrecognized != nil {
> +             n += len(m.XXX_unrecognized)
> +     }
> +@@ -3237,9 +3271,20 @@ func (this *UpdateTaskRequest) String() string {
> +     if this == nil {
> +             return "nil"
> +     }
> ++    keysForAnnotations := make([]string, 0, len(this.Annotations))
> ++    for k, _ := range this.Annotations {
> ++            keysForAnnotations = append(keysForAnnotations, k)
> ++    }
> ++    github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)
> ++    mapStringForAnnotations := "map[string]string{"
> ++    for _, k := range keysForAnnotations {
> ++            mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k])
> ++    }
> ++    mapStringForAnnotations += "}"
> +     s := strings.Join([]string{`&UpdateTaskRequest{`,
> +             `ID:` + fmt.Sprintf("%v", this.ID) + `,`,
> +             `Resources:` + strings.Replace(fmt.Sprintf("%v", this.Resources), "Any", "types1.Any", 1) + `,`,
> ++            `Annotations:` + mapStringForAnnotations + `,`,
> +             `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
> +             `}`,
> +     }, "")
> +@@ -4019,10 +4064,7 @@ func (m *CreateTaskRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4092,10 +4134,7 @@ func (m *CreateTaskResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4210,10 +4249,7 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4335,10 +4371,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4605,10 +4638,7 @@ func (m *ExecProcessRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4659,10 +4689,7 @@ func (m *ExecProcessResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4815,10 +4842,7 @@ func (m *ResizePtyRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -4933,10 +4957,7 @@ func (m *StateRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5289,10 +5310,7 @@ func (m *StateResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5446,10 +5464,7 @@ func (m *KillRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5584,10 +5599,7 @@ func (m *CloseIORequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5670,10 +5682,7 @@ func (m *PidsRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5758,10 +5767,7 @@ func (m *PidsResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -5912,10 +5918,7 @@ func (m *CheckpointTaskRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6028,16 +6031,140 @@ func (m *UpdateTaskRequest) Unmarshal(dAtA []byte) error {
> +                             return err
> +                     }
> +                     iNdEx = postIndex
> ++            case 3:
> ++                    if wireType != 2 {
> ++                            return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType)
> ++                    }
> ++                    var msglen int
> ++                    for shift := uint(0); ; shift += 7 {
> ++                            if shift >= 64 {
> ++                                    return ErrIntOverflowShim
> ++                            }
> ++                            if iNdEx >= l {
> ++                                    return io.ErrUnexpectedEOF
> ++                            }
> ++                            b := dAtA[iNdEx]
> ++                            iNdEx++
> ++                            msglen |= int(b&0x7F) << shift
> ++                            if b < 0x80 {
> ++                                    break
> ++                            }
> ++                    }
> ++                    if msglen < 0 {
> ++                            return ErrInvalidLengthShim
> ++                    }
> ++                    postIndex := iNdEx + msglen
> ++                    if postIndex < 0 {
> ++                            return ErrInvalidLengthShim
> ++                    }
> ++                    if postIndex > l {
> ++                            return io.ErrUnexpectedEOF
> ++                    }
> ++                    if m.Annotations == nil {
> ++                            m.Annotations = make(map[string]string)
> ++                    }
> ++                    var mapkey string
> ++                    var mapvalue string
> ++                    for iNdEx < postIndex {
> ++                            entryPreIndex := iNdEx
> ++                            var wire uint64
> ++                            for shift := uint(0); ; shift += 7 {
> ++                                    if shift >= 64 {
> ++                                            return ErrIntOverflowShim
> ++                                    }
> ++                                    if iNdEx >= l {
> ++                                            return io.ErrUnexpectedEOF
> ++                                    }
> ++                                    b := dAtA[iNdEx]
> ++                                    iNdEx++
> ++                                    wire |= uint64(b&0x7F) << shift
> ++                                    if b < 0x80 {
> ++                                            break
> ++                                    }
> ++                            }
> ++                            fieldNum := int32(wire >> 3)
> ++                            if fieldNum == 1 {
> ++                                    var stringLenmapkey uint64
> ++                                    for shift := uint(0); ; shift += 7 {
> ++                                            if shift >= 64 {
> ++                                                    return ErrIntOverflowShim
> ++                                            }
> ++                                            if iNdEx >= l {
> ++                                                    return io.ErrUnexpectedEOF
> ++                                            }
> ++                                            b := dAtA[iNdEx]
> ++                                            iNdEx++
> ++                                            stringLenmapkey |= uint64(b&0x7F) << shift
> ++                                            if b < 0x80 {
> ++                                                    break
> ++                                            }
> ++                                    }
> ++                                    intStringLenmapkey := int(stringLenmapkey)
> ++                                    if intStringLenmapkey < 0 {
> ++                                            return ErrInvalidLengthShim
> ++                                    }
> ++                                    postStringIndexmapkey := iNdEx + intStringLenmapkey
> ++                                    if postStringIndexmapkey < 0 {
> ++                                            return ErrInvalidLengthShim
> ++                                    }
> ++                                    if postStringIndexmapkey > l {
> ++                                            return io.ErrUnexpectedEOF
> ++                                    }
> ++                                    mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
> ++                                    iNdEx = postStringIndexmapkey
> ++                            } else if fieldNum == 2 {
> ++                                    var stringLenmapvalue uint64
> ++                                    for shift := uint(0); ; shift += 7 {
> ++                                            if shift >= 64 {
> ++                                                    return ErrIntOverflowShim
> ++                                            }
> ++                                            if iNdEx >= l {
> ++                                                    return io.ErrUnexpectedEOF
> ++                                            }
> ++                                            b := dAtA[iNdEx]
> ++                                            iNdEx++
> ++                                            stringLenmapvalue |= uint64(b&0x7F) << shift
> ++                                            if b < 0x80 {
> ++                                                    break
> ++                                            }
> ++                                    }
> ++                                    intStringLenmapvalue := int(stringLenmapvalue)
> ++                                    if intStringLenmapvalue < 0 {
> ++                                            return ErrInvalidLengthShim
> ++                                    }
> ++                                    postStringIndexmapvalue := iNdEx + intStringLenmapvalue
> ++                                    if postStringIndexmapvalue < 0 {
> ++                                            return ErrInvalidLengthShim
> ++                                    }
> ++                                    if postStringIndexmapvalue > l {
> ++                                            return io.ErrUnexpectedEOF
> ++                                    }
> ++                                    mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
> ++                                    iNdEx = postStringIndexmapvalue
> ++                            } else {
> ++                                    iNdEx = entryPreIndex
> ++                                    skippy, err := skipShim(dAtA[iNdEx:])
> ++                                    if err != nil {
> ++                                            return err
> ++                                    }
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> ++                                            return ErrInvalidLengthShim
> ++                                    }
> ++                                    if (iNdEx + skippy) > postIndex {
> ++                                            return io.ErrUnexpectedEOF
> ++                                    }
> ++                                    iNdEx += skippy
> ++                            }
> ++                    }
> ++                    m.Annotations[mapkey] = mapvalue
> ++                    iNdEx = postIndex
> +             default:
> +                     iNdEx = preIndex
> +                     skippy, err := skipShim(dAtA[iNdEx:])
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6152,10 +6279,7 @@ func (m *StartRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6225,10 +6349,7 @@ func (m *StartResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6343,10 +6464,7 @@ func (m *WaitRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6449,10 +6567,7 @@ func (m *WaitResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6535,10 +6650,7 @@ func (m *StatsRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6625,10 +6737,7 @@ func (m *StatsResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6711,10 +6820,7 @@ func (m *ConnectRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6835,10 +6941,7 @@ func (m *ConnectResponse) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -6941,10 +7044,7 @@ func (m *ShutdownRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -7027,10 +7127,7 @@ func (m *PauseRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -7113,10 +7210,7 @@ func (m *ResumeRequest) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthShim
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthShim
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go b/src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
> +index 9a2374b56..fae67de4f 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
> +@@ -844,7 +844,7 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
> +                     p.P(`return err`)
> +                     p.Out()
> +                     p.P(`}`)
> +-                    p.P(`if skippy < 0 {`)
> ++                    p.P(`if (skippy < 0) || (iNdEx + skippy) < 0 {`)
> +                     p.In()
> +                     p.P(`return ErrInvalidLength`, p.localName)
> +                     p.Out()
> +@@ -1484,12 +1484,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
> +                     p.P(`return err`)
> +                     p.Out()
> +                     p.P(`}`)
> +-                    p.P(`if skippy < 0 {`)
> +-                    p.In()
> +-                    p.P(`return ErrInvalidLength`, p.localName)
> +-                    p.Out()
> +-                    p.P(`}`)
> +-                    p.P(`if (iNdEx + skippy) < 0 {`)
> ++                    p.P(`if (skippy < 0) || (iNdEx + skippy) < 0 {`)
> +                     p.In()
> +                     p.P(`return ErrInvalidLength`, p.localName)
> +                     p.Out()
> +@@ -1512,12 +1507,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
> +             p.P(`return err`)
> +             p.Out()
> +             p.P(`}`)
> +-            p.P(`if skippy < 0 {`)
> +-            p.In()
> +-            p.P(`return ErrInvalidLength`, p.localName)
> +-            p.Out()
> +-            p.P(`}`)
> +-            p.P(`if (iNdEx + skippy) < 0 {`)
> ++            p.P(`if (skippy < 0) || (iNdEx + skippy) < 0 {`)
> +             p.In()
> +             p.P(`return ErrInvalidLength`, p.localName)
> +             p.Out()
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go b/src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go
> +index 1ce0be2fa..f85c0cc81 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go
> +@@ -318,7 +318,7 @@ func unescape(s string) (ch string, tail string, err error) {
> +             if i > utf8.MaxRune {
> +                     return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss)
> +             }
> +-            return string(i), s, nil
> ++            return string(rune(i)), s, nil
> +     }
> +     return "", "", fmt.Errorf(`unknown escape \%c`, r)
> + }
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/any.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/any.pb.go
> +index 98e269d54..e3d4d9490 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/any.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/any.pb.go
> +@@ -592,10 +592,7 @@ func (m *Any) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthAny
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthAny
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/api.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/api.pb.go
> +index 58bf4b53b..83e886920 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/api.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/api.pb.go
> +@@ -1677,10 +1677,7 @@ func (m *Api) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthApi
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthApi
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -1920,10 +1917,7 @@ func (m *Method) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthApi
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthApi
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2038,10 +2032,7 @@ func (m *Mixin) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthApi
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthApi
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go
> +index 3959f0669..4deafcb1c 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go
> +@@ -415,10 +415,7 @@ func (m *Duration) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthDuration
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthDuration
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go
> +index 17e3aa558..9e94748b3 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go
> +@@ -360,10 +360,7 @@ func (m *Empty) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthEmpty
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthEmpty
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
> +index 7226b57f7..6ae346d92 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
> +@@ -636,10 +636,7 @@ func (m *FieldMask) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthFieldMask
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthFieldMask
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go
> +index 61045ce10..8e6ce71b2 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go
> +@@ -422,10 +422,7 @@ func (m *SourceContext) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthSourceContext
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthSourceContext
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go
> +index cea553eef..c0457312e 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go
> +@@ -1862,7 +1862,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
> +                                     if err != nil {
> +                                             return err
> +                                     }
> +-                                    if skippy < 0 {
> ++                                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                                             return ErrInvalidLengthStruct
> +                                     }
> +                                     if (iNdEx + skippy) > postIndex {
> +@@ -1879,10 +1879,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthStruct
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthStruct
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2087,10 +2084,7 @@ func (m *Value) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthStruct
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthStruct
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2175,10 +2169,7 @@ func (m *ListValue) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthStruct
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthStruct
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
> +index b81875267..45db7b3bb 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
> +@@ -437,10 +437,7 @@ func (m *Timestamp) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthTimestamp
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthTimestamp
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/type.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/type.pb.go
> +index 13b7ec02f..791427bb2 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/type.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/type.pb.go
> +@@ -2483,10 +2483,7 @@ func (m *Type) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthType
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthType
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2795,10 +2792,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthType
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthType
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3004,10 +2998,7 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthType
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthType
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3143,10 +3134,7 @@ func (m *EnumValue) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthType
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthType
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -3265,10 +3253,7 @@ func (m *Option) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthType
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthType
> +                     }
> +                     if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
> +index 8f1edb57d..8d415420a 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
> +@@ -2020,10 +2020,7 @@ func (m *DoubleValue) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthWrappers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthWrappers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2085,10 +2082,7 @@ func (m *FloatValue) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthWrappers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthWrappers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2158,10 +2152,7 @@ func (m *Int64Value) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthWrappers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthWrappers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2231,10 +2222,7 @@ func (m *UInt64Value) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthWrappers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthWrappers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2304,10 +2292,7 @@ func (m *Int32Value) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthWrappers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthWrappers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2377,10 +2362,7 @@ func (m *UInt32Value) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthWrappers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthWrappers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2451,10 +2433,7 @@ func (m *BoolValue) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthWrappers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthWrappers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2537,10 +2516,7 @@ func (m *StringValue) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthWrappers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthWrappers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +@@ -2625,10 +2601,7 @@ func (m *BytesValue) Unmarshal(dAtA []byte) error {
> +                     if err != nil {
> +                             return err
> +                     }
> +-                    if skippy < 0 {
> +-                            return ErrInvalidLengthWrappers
> +-                    }
> +-                    if (iNdEx + skippy) < 0 {
> ++                    if (skippy < 0) || (iNdEx+skippy) < 0 {
> +                             return ErrInvalidLengthWrappers
> +                     }
> +                     if (iNdEx + skippy) > l {
> +--
> +2.30.2
> +
> --
> 2.30.2
>

>
>
>





Re: [PATCH] ceph: Upgrade to 16.2.0

Saul Wold
 

Bruce

I am aware there is a 16.2.1 that was just published on the 19th, I wanted to get visibility to the base upgrade which I just completed while I work on the dot dot update.

Ceph-17 is the next major release, but has not be released yet.

Thanks

Sau!

On 4/22/21 12:32 PM, Saul Wold wrote:
This updates the Ceph version to 16.2.0 which required a couple
changes to base code via a rebased patch which also disabled the
sanity check due to it not working correctly, but the actual
compile worked. Also added a new patch to add soversion information
for the new libcephsqlite library so it would be packaged correctly
Signed-off-by: Saul Wold <saul.wold@...>
---
...h-fix-build-errors-for-cross-compile.patch | 119 ++++++++++++++----
...ite-Add-library-soversion-properties.patch | 31 +++++
recipes-extended/ceph/ceph_16.2.0.bb | 22 ++--
3 files changed, 138 insertions(+), 34 deletions(-)
create mode 100644 recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch
diff --git a/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch b/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch
index 7764a2b..00c7e5b 100644
--- a/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch
+++ b/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch
@@ -1,10 +1,15 @@
-From 04b53b669dbd75c9a90bf7f8ae2b47ff96176239 Mon Sep 17 00:00:00 2001
+From 2a3ccc8079040a7e783b8a9091618878e7cf0719 Mon Sep 17 00:00:00 2001
From: Dengke Du <dengke.du@...>
Date: Mon, 11 Mar 2019 09:14:09 +0800
Subject: [PATCH] ceph: fix build errors for cross compile
1. set the cross compile sysroot to find the rocksdb library
2. correct the install path for library in Distutils.cmake
+3. remove / disable the sanity_check(), for some reasong the
+ sanity check gets the wrong settings and will not link
+ correctly, but the actual build works correctly, this needs
+ more investigation later, earlier versions of the patch also
+ removed it but no comment on why. (sgw)
Upstream-Status: Inappropriate [oe specific]
@@ -14,16 +19,17 @@ Adjust context for v14.2.3
Signed-off-by: He Zhe <zhe.he@...>
Signed-off-by: Sakib Sajal <sakib.sajal@...>
+Signed-off-by: Saul Wold <saul.wold@...>
---
cmake/modules/Distutils.cmake | 25 +++++--------------------
cmake/modules/FindRocksDB.cmake | 4 ++--
src/compressor/zstd/CMakeLists.txt | 2 +-
- src/pybind/cephfs/setup.py | 1 -
- src/pybind/rados/setup.py | 1 -
- src/pybind/rbd/setup.py | 1 -
- src/pybind/rgw/setup.py | 1 -
- 7 files changed, 8 insertions(+), 27 deletions(-)
+ src/pybind/cephfs/setup.py | 18 +++++-------------
+ src/pybind/rados/setup.py | 11 ++---------
+ src/pybind/rbd/setup.py | 18 +++++-------------
+ src/pybind/rgw/setup.py | 18 +++++-------------
+ 7 files changed, 25 insertions(+), 71 deletions(-)
diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake
index ff01aaf81..18656c5a5 100644
@@ -105,50 +111,111 @@ index b53b0d944..4955711a9 100644
-G${CMAKE_GENERATOR}
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/libzstd
diff --git a/src/pybind/cephfs/setup.py b/src/pybind/cephfs/setup.py
-index c3d40df05..87cdeb473 100755
+index c3d40df05..24c26c3ed 100755
--- a/src/pybind/cephfs/setup.py
+++ b/src/pybind/cephfs/setup.py
-@@ -137,7 +137,6 @@ def check_sanity():
+@@ -137,19 +137,11 @@ def check_sanity():
finally:
shutil.rmtree(tmp_dir)
-
- if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
- ext_args = {}
- cython_constants = dict(BUILD_DOC=True)
+-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
+- ext_args = {}
+- cython_constants = dict(BUILD_DOC=True)
+- cythonize_args = dict(compile_time_env=cython_constants)
+-elif check_sanity():
+- ext_args = get_python_flags(['cephfs'])
+- cython_constants = dict(BUILD_DOC=False)
+- include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
+- cythonize_args = dict(compile_time_env=cython_constants,
+- include_path=include_path)
+-else:
+- sys.exit(1)
++ext_args = get_python_flags(['cephfs'])
++cython_constants = dict(BUILD_DOC=False)
++include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
++cythonize_args = dict(compile_time_env=cython_constants,
++ include_path=include_path)
+
+ cmdclass = {}
+ try:
diff --git a/src/pybind/rados/setup.py b/src/pybind/rados/setup.py
-index 0d1047825..feafb605d 100755
+index 0d1047825..cff85a063 100755
--- a/src/pybind/rados/setup.py
+++ b/src/pybind/rados/setup.py
-@@ -131,7 +131,6 @@ def check_sanity():
+@@ -131,15 +131,8 @@ def check_sanity():
finally:
shutil.rmtree(tmp_dir)
-
- if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
- ext_args = {}
- cython_constants = dict(BUILD_DOC=True)
+-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
+- ext_args = {}
+- cython_constants = dict(BUILD_DOC=True)
+-elif check_sanity():
+- ext_args = get_python_flags(['rados'])
+- cython_constants = dict(BUILD_DOC=False)
+-else:
+- sys.exit(1)
++ext_args = get_python_flags(['rados'])
++cython_constants = dict(BUILD_DOC=False)
+
+ cmdclass = {}
+ try:
diff --git a/src/pybind/rbd/setup.py b/src/pybind/rbd/setup.py
-index 73ea4555f..b9c6a78d2 100755
+index 73ea4555f..e7f57ddb5 100755
--- a/src/pybind/rbd/setup.py
+++ b/src/pybind/rbd/setup.py
-@@ -135,7 +135,6 @@ def check_sanity():
+@@ -135,19 +135,11 @@ def check_sanity():
finally:
shutil.rmtree(tmp_dir)
-
- if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
- ext_args = {}
- cython_constants = dict(BUILD_DOC=True)
+-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
+- ext_args = {}
+- cython_constants = dict(BUILD_DOC=True)
+- cythonize_args = dict(compile_time_env=cython_constants)
+-elif check_sanity():
+- ext_args = get_python_flags(['rados', 'rbd'])
+- cython_constants = dict(BUILD_DOC=False)
+- include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
+- cythonize_args = dict(compile_time_env=cython_constants,
+- include_path=include_path)
+-else:
+- sys.exit(1)
++ext_args = get_python_flags(['rados', 'rbd'])
++cython_constants = dict(BUILD_DOC=False)
++include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
++cythonize_args = dict(compile_time_env=cython_constants,
++ include_path=include_path)
+
+ cmdclass = {}
+ try:
diff --git a/src/pybind/rgw/setup.py b/src/pybind/rgw/setup.py
-index 663604e8f..695038c0e 100755
+index 663604e8f..489c9ba1f 100755
--- a/src/pybind/rgw/setup.py
+++ b/src/pybind/rgw/setup.py
-@@ -135,7 +135,6 @@ def check_sanity():
+@@ -135,19 +135,11 @@ def check_sanity():
finally:
shutil.rmtree(tmp_dir)
-
- if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
- ext_args = {}
- cython_constants = dict(BUILD_DOC=True)
+-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
+- ext_args = {}
+- cython_constants = dict(BUILD_DOC=True)
+- cythonize_args = dict(compile_time_env=cython_constants)
+-elif check_sanity():
+- ext_args = get_python_flags(['rados', 'rgw'])
+- cython_constants = dict(BUILD_DOC=False)
+- include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
+- cythonize_args = dict(compile_time_env=cython_constants,
+- include_path=include_path)
+-else:
+- sys.exit(1)
++ext_args = get_python_flags(['rados', 'rgw'])
++cython_constants = dict(BUILD_DOC=False)
++include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
++cythonize_args = dict(compile_time_env=cython_constants,
++ include_path=include_path)
+
+ cmdclass = {}
+ try:
diff --git a/recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch b/recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch
new file mode 100644
index 0000000..2c9cd11
--- /dev/null
+++ b/recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch
@@ -0,0 +1,31 @@
+From ce36ce7d1c0f954d1532a759f4d7b09d87287dac Mon Sep 17 00:00:00 2001
+From: Saul Wold <saul.wold@...>
+Date: Thu, 22 Apr 2021 08:05:57 -0700
+Subject: [PATCH] libcephsqlite: Add library soversion properties
+
+This additional properties are needed to ensure the library
+is installed with an soversion so that when the library is
+packaged it gets packaged corectly in the ceph package and
+ceph-dev package as the link.
+
+Upstream-Status: pending
+Signed-off-by: Saul Wold <saul.wold@...>
+---
+ src/CMakeLists.txt | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 37db48f86..8dc7bdb56 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -804,6 +804,10 @@ if(WITH_LIBCEPHSQLITE)
+ set(cephsqlite_srcs libcephsqlite.cc SimpleRADOSStriper.cc)
+ add_library(cephsqlite ${CEPH_SHARED} ${cephsqlite_srcs})
+ target_link_libraries(cephsqlite PRIVATE cls_lock_client librados ceph-common SQLite3::SQLite3 ${EXTRALIBS})
++ set_target_properties(cephsqlite PROPERTIES
++ OUTPUT_NAME cephsqlite
++ VERSION 1.0.0
++ SOVERSION 1)
+ install(TARGETS cephsqlite DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif(WITH_LIBCEPHSQLITE)
+
diff --git a/recipes-extended/ceph/ceph_16.2.0.bb b/recipes-extended/ceph/ceph_16.2.0.bb
index 806a03f..d55e602 100644
--- a/recipes-extended/ceph/ceph_16.2.0.bb
+++ b/recipes-extended/ceph/ceph_16.2.0.bb
@@ -58,7 +58,9 @@ LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=fbc093901857fcd118f065f900982c24
file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING;md5=d140fb1fedb53047f0d0830883e7af9f \
"
-inherit cmake python3native python3-dir systemd
+#inherit cmake setuptools3 systemd
+inherit cmake distutils3-base systemd
+
# Disable python pybind support for ceph temporary, when corss compiling pybind,
# pybind mix cmake and python setup environment, would case a lot of errors.
@@ -66,14 +68,9 @@ SRC_URI = "http://download.ceph.com/tarballs/ceph-${PV}.tar.gz \
file://0001-ceph-fix-build-errors-for-cross-compile.patch \
file://0001-fix-host-library-paths-were-used.patch \
file://ceph.conf \
+ file://0001-libcephsqlite-Add-library-soversion-properties.patch \
"
-#SRC_URI[md5sum] = "5a949b91199efe130bfe2e57f200eacd"
-#SRC_URI[sha256sum] = "ea7fa2be68b3570c5c3aa02774dca27de20b6f20a8498f65e5c4ef375a209ace"
-#SRC_URI[sha1sum] = "0503649d7c7d9268cb61b03bbe839106988f87d7"
-#SRC_URI[sha384sum] = "57208c126ea8e640c3979073fd64ce58606f17b4b7ed2e005b0792bdfd51b13391af325658d0f68f961f94175d93e891"
-#SRC_URI[sha512sum] = "1f55b0a13bf06df782831d0c9d5f8617c22442ab97fb186e6ccb08183e02bf1756caf8633fa6b1cf156c3fb7b1bdff90a60a1249adfad0b9450036e2329bf8ff"
-SRC_URI[sha256sum] = "dfeee542536607220dc2ca49f47c41127c8562dea234a886625e0f7ee1524904"
SRC_URI[sha1sum] = "f8cc85e4cc519d7e469a0c3c8327bd1675f0b287"
SRC_URI[sha384sum] = "29a75a733e5ae8039a5ad603558a9707e36b8c337419039ee97351cdbad57875fa57a365fcde29124cee72734608e245"
SRC_URI[sha512sum] = "aeb9a91c33221c64ea24603dc88cab346bf0abdf0d41ff85c2e1cf134130737ec1fab1246be0a2fa3af8a655ae1dabb69688855f229f54438e60cb8098175b8e"
@@ -149,6 +146,13 @@ do_install_append () {
mv ${D}${libexecdir}/ceph/ceph_common.sh ${D}${libdir}/ceph
# WITH_FUSE is set to OFF, remove ceph-fuse related units
rm ${D}${systemd_unitdir}/system/ceph-fuse.target ${D}${systemd_unitdir}/system/ceph-fuse@.service
+
+ for i in ${D}${bindir}/* ${D}${sbindir}/*; do
+ if [ -f "$i" ]; then
+ sed -i -e s:${PYTHON}:${USRBINPATH}/env\ ${DISTUTILS_PYTHON}:g $i
+ sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i
+ fi
+ done
}
do_install_append_class-target () {
@@ -173,7 +177,8 @@ FILES_${PN} += "\
${libdir}/rados-classes/*.so.* \
${libdir}/ceph/compressor/*.so \
${libdir}/rados-classes/*.so \
- ${libdir}/ceph/*.so \
+ ${libdir}/ceph/*.so \
+ ${libdir}/libcephsqlite.so \
"
FILES_${PN} += " \
@@ -190,6 +195,7 @@ RDEPENDS_${PN} += "\
python3-modules \
python3-prettytable \
${PN}-python \
+ gawk \
"
COMPATIBLE_HOST = "(x86_64).*"
PACKAGES += " \
--
Sau!


[PATCH] ceph: Upgrade to 16.2.0

Saul Wold
 

This updates the Ceph version to 16.2.0 which required a couple
changes to base code via a rebased patch which also disabled the
sanity check due to it not working correctly, but the actual
compile worked. Also added a new patch to add soversion information
for the new libcephsqlite library so it would be packaged correctly

Signed-off-by: Saul Wold <saul.wold@...>
---
...h-fix-build-errors-for-cross-compile.patch | 119 ++++++++++++++----
...ite-Add-library-soversion-properties.patch | 31 +++++
recipes-extended/ceph/ceph_16.2.0.bb | 22 ++--
3 files changed, 138 insertions(+), 34 deletions(-)
create mode 100644 recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch

diff --git a/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch b/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch
index 7764a2b..00c7e5b 100644
--- a/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch
+++ b/recipes-extended/ceph/ceph/0001-ceph-fix-build-errors-for-cross-compile.patch
@@ -1,10 +1,15 @@
-From 04b53b669dbd75c9a90bf7f8ae2b47ff96176239 Mon Sep 17 00:00:00 2001
+From 2a3ccc8079040a7e783b8a9091618878e7cf0719 Mon Sep 17 00:00:00 2001
From: Dengke Du <dengke.du@...>
Date: Mon, 11 Mar 2019 09:14:09 +0800
Subject: [PATCH] ceph: fix build errors for cross compile

1. set the cross compile sysroot to find the rocksdb library
2. correct the install path for library in Distutils.cmake
+3. remove / disable the sanity_check(), for some reasong the
+ sanity check gets the wrong settings and will not link
+ correctly, but the actual build works correctly, this needs
+ more investigation later, earlier versions of the patch also
+ removed it but no comment on why. (sgw)

Upstream-Status: Inappropriate [oe specific]

@@ -14,16 +19,17 @@ Adjust context for v14.2.3

Signed-off-by: He Zhe <zhe.he@...>
Signed-off-by: Sakib Sajal <sakib.sajal@...>
+Signed-off-by: Saul Wold <saul.wold@...>

---
cmake/modules/Distutils.cmake | 25 +++++--------------------
cmake/modules/FindRocksDB.cmake | 4 ++--
src/compressor/zstd/CMakeLists.txt | 2 +-
- src/pybind/cephfs/setup.py | 1 -
- src/pybind/rados/setup.py | 1 -
- src/pybind/rbd/setup.py | 1 -
- src/pybind/rgw/setup.py | 1 -
- 7 files changed, 8 insertions(+), 27 deletions(-)
+ src/pybind/cephfs/setup.py | 18 +++++-------------
+ src/pybind/rados/setup.py | 11 ++---------
+ src/pybind/rbd/setup.py | 18 +++++-------------
+ src/pybind/rgw/setup.py | 18 +++++-------------
+ 7 files changed, 25 insertions(+), 71 deletions(-)

diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake
index ff01aaf81..18656c5a5 100644
@@ -105,50 +111,111 @@ index b53b0d944..4955711a9 100644
-G${CMAKE_GENERATOR}
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/libzstd
diff --git a/src/pybind/cephfs/setup.py b/src/pybind/cephfs/setup.py
-index c3d40df05..87cdeb473 100755
+index c3d40df05..24c26c3ed 100755
--- a/src/pybind/cephfs/setup.py
+++ b/src/pybind/cephfs/setup.py
-@@ -137,7 +137,6 @@ def check_sanity():
+@@ -137,19 +137,11 @@ def check_sanity():
finally:
shutil.rmtree(tmp_dir)

-
- if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
- ext_args = {}
- cython_constants = dict(BUILD_DOC=True)
+-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
+- ext_args = {}
+- cython_constants = dict(BUILD_DOC=True)
+- cythonize_args = dict(compile_time_env=cython_constants)
+-elif check_sanity():
+- ext_args = get_python_flags(['cephfs'])
+- cython_constants = dict(BUILD_DOC=False)
+- include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
+- cythonize_args = dict(compile_time_env=cython_constants,
+- include_path=include_path)
+-else:
+- sys.exit(1)
++ext_args = get_python_flags(['cephfs'])
++cython_constants = dict(BUILD_DOC=False)
++include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
++cythonize_args = dict(compile_time_env=cython_constants,
++ include_path=include_path)
+
+ cmdclass = {}
+ try:
diff --git a/src/pybind/rados/setup.py b/src/pybind/rados/setup.py
-index 0d1047825..feafb605d 100755
+index 0d1047825..cff85a063 100755
--- a/src/pybind/rados/setup.py
+++ b/src/pybind/rados/setup.py
-@@ -131,7 +131,6 @@ def check_sanity():
+@@ -131,15 +131,8 @@ def check_sanity():
finally:
shutil.rmtree(tmp_dir)

-
- if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
- ext_args = {}
- cython_constants = dict(BUILD_DOC=True)
+-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
+- ext_args = {}
+- cython_constants = dict(BUILD_DOC=True)
+-elif check_sanity():
+- ext_args = get_python_flags(['rados'])
+- cython_constants = dict(BUILD_DOC=False)
+-else:
+- sys.exit(1)
++ext_args = get_python_flags(['rados'])
++cython_constants = dict(BUILD_DOC=False)
+
+ cmdclass = {}
+ try:
diff --git a/src/pybind/rbd/setup.py b/src/pybind/rbd/setup.py
-index 73ea4555f..b9c6a78d2 100755
+index 73ea4555f..e7f57ddb5 100755
--- a/src/pybind/rbd/setup.py
+++ b/src/pybind/rbd/setup.py
-@@ -135,7 +135,6 @@ def check_sanity():
+@@ -135,19 +135,11 @@ def check_sanity():
finally:
shutil.rmtree(tmp_dir)

-
- if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
- ext_args = {}
- cython_constants = dict(BUILD_DOC=True)
+-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
+- ext_args = {}
+- cython_constants = dict(BUILD_DOC=True)
+- cythonize_args = dict(compile_time_env=cython_constants)
+-elif check_sanity():
+- ext_args = get_python_flags(['rados', 'rbd'])
+- cython_constants = dict(BUILD_DOC=False)
+- include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
+- cythonize_args = dict(compile_time_env=cython_constants,
+- include_path=include_path)
+-else:
+- sys.exit(1)
++ext_args = get_python_flags(['rados', 'rbd'])
++cython_constants = dict(BUILD_DOC=False)
++include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
++cythonize_args = dict(compile_time_env=cython_constants,
++ include_path=include_path)
+
+ cmdclass = {}
+ try:
diff --git a/src/pybind/rgw/setup.py b/src/pybind/rgw/setup.py
-index 663604e8f..695038c0e 100755
+index 663604e8f..489c9ba1f 100755
--- a/src/pybind/rgw/setup.py
+++ b/src/pybind/rgw/setup.py
-@@ -135,7 +135,6 @@ def check_sanity():
+@@ -135,19 +135,11 @@ def check_sanity():
finally:
shutil.rmtree(tmp_dir)

-
- if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
- ext_args = {}
- cython_constants = dict(BUILD_DOC=True)
+-if 'BUILD_DOC' in os.environ or 'READTHEDOCS' in os.environ:
+- ext_args = {}
+- cython_constants = dict(BUILD_DOC=True)
+- cythonize_args = dict(compile_time_env=cython_constants)
+-elif check_sanity():
+- ext_args = get_python_flags(['rados', 'rgw'])
+- cython_constants = dict(BUILD_DOC=False)
+- include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
+- cythonize_args = dict(compile_time_env=cython_constants,
+- include_path=include_path)
+-else:
+- sys.exit(1)
++ext_args = get_python_flags(['rados', 'rgw'])
++cython_constants = dict(BUILD_DOC=False)
++include_path = [os.path.join(os.path.dirname(__file__), "..", "rados")]
++cythonize_args = dict(compile_time_env=cython_constants,
++ include_path=include_path)
+
+ cmdclass = {}
+ try:
diff --git a/recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch b/recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch
new file mode 100644
index 0000000..2c9cd11
--- /dev/null
+++ b/recipes-extended/ceph/ceph/0001-libcephsqlite-Add-library-soversion-properties.patch
@@ -0,0 +1,31 @@
+From ce36ce7d1c0f954d1532a759f4d7b09d87287dac Mon Sep 17 00:00:00 2001
+From: Saul Wold <saul.wold@...>
+Date: Thu, 22 Apr 2021 08:05:57 -0700
+Subject: [PATCH] libcephsqlite: Add library soversion properties
+
+This additional properties are needed to ensure the library
+is installed with an soversion so that when the library is
+packaged it gets packaged corectly in the ceph package and
+ceph-dev package as the link.
+
+Upstream-Status: pending
+Signed-off-by: Saul Wold <saul.wold@...>
+---
+ src/CMakeLists.txt | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 37db48f86..8dc7bdb56 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -804,6 +804,10 @@ if(WITH_LIBCEPHSQLITE)
+ set(cephsqlite_srcs libcephsqlite.cc SimpleRADOSStriper.cc)
+ add_library(cephsqlite ${CEPH_SHARED} ${cephsqlite_srcs})
+ target_link_libraries(cephsqlite PRIVATE cls_lock_client librados ceph-common SQLite3::SQLite3 ${EXTRALIBS})
++ set_target_properties(cephsqlite PROPERTIES
++ OUTPUT_NAME cephsqlite
++ VERSION 1.0.0
++ SOVERSION 1)
+ install(TARGETS cephsqlite DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif(WITH_LIBCEPHSQLITE)
+
diff --git a/recipes-extended/ceph/ceph_16.2.0.bb b/recipes-extended/ceph/ceph_16.2.0.bb
index 806a03f..d55e602 100644
--- a/recipes-extended/ceph/ceph_16.2.0.bb
+++ b/recipes-extended/ceph/ceph_16.2.0.bb
@@ -58,7 +58,9 @@ LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=fbc093901857fcd118f065f900982c24
file://COPYING-GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING;md5=d140fb1fedb53047f0d0830883e7af9f \
"
-inherit cmake python3native python3-dir systemd
+#inherit cmake setuptools3 systemd
+inherit cmake distutils3-base systemd
+
# Disable python pybind support for ceph temporary, when corss compiling pybind,
# pybind mix cmake and python setup environment, would case a lot of errors.

@@ -66,14 +68,9 @@ SRC_URI = "http://download.ceph.com/tarballs/ceph-${PV}.tar.gz \
file://0001-ceph-fix-build-errors-for-cross-compile.patch \
file://0001-fix-host-library-paths-were-used.patch \
file://ceph.conf \
+ file://0001-libcephsqlite-Add-library-soversion-properties.patch \
"

-#SRC_URI[md5sum] = "5a949b91199efe130bfe2e57f200eacd"
-#SRC_URI[sha256sum] = "ea7fa2be68b3570c5c3aa02774dca27de20b6f20a8498f65e5c4ef375a209ace"
-#SRC_URI[sha1sum] = "0503649d7c7d9268cb61b03bbe839106988f87d7"
-#SRC_URI[sha384sum] = "57208c126ea8e640c3979073fd64ce58606f17b4b7ed2e005b0792bdfd51b13391af325658d0f68f961f94175d93e891"
-#SRC_URI[sha512sum] = "1f55b0a13bf06df782831d0c9d5f8617c22442ab97fb186e6ccb08183e02bf1756caf8633fa6b1cf156c3fb7b1bdff90a60a1249adfad0b9450036e2329bf8ff"
-SRC_URI[sha256sum] = "dfeee542536607220dc2ca49f47c41127c8562dea234a886625e0f7ee1524904"
SRC_URI[sha1sum] = "f8cc85e4cc519d7e469a0c3c8327bd1675f0b287"
SRC_URI[sha384sum] = "29a75a733e5ae8039a5ad603558a9707e36b8c337419039ee97351cdbad57875fa57a365fcde29124cee72734608e245"
SRC_URI[sha512sum] = "aeb9a91c33221c64ea24603dc88cab346bf0abdf0d41ff85c2e1cf134130737ec1fab1246be0a2fa3af8a655ae1dabb69688855f229f54438e60cb8098175b8e"
@@ -149,6 +146,13 @@ do_install_append () {
mv ${D}${libexecdir}/ceph/ceph_common.sh ${D}${libdir}/ceph
# WITH_FUSE is set to OFF, remove ceph-fuse related units
rm ${D}${systemd_unitdir}/system/ceph-fuse.target ${D}${systemd_unitdir}/system/ceph-fuse@.service
+
+ for i in ${D}${bindir}/* ${D}${sbindir}/*; do
+ if [ -f "$i" ]; then
+ sed -i -e s:${PYTHON}:${USRBINPATH}/env\ ${DISTUTILS_PYTHON}:g $i
+ sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i
+ fi
+ done
}

do_install_append_class-target () {
@@ -173,7 +177,8 @@ FILES_${PN} += "\
${libdir}/rados-classes/*.so.* \
${libdir}/ceph/compressor/*.so \
${libdir}/rados-classes/*.so \
- ${libdir}/ceph/*.so \
+ ${libdir}/ceph/*.so \
+ ${libdir}/libcephsqlite.so \
"

FILES_${PN} += " \
@@ -190,6 +195,7 @@ RDEPENDS_${PN} += "\
python3-modules \
python3-prettytable \
${PN}-python \
+ gawk \
"
COMPATIBLE_HOST = "(x86_64).*"
PACKAGES += " \
--
2.25.1


Re: [PATCH v4] libvirt: uprev v6.3 -> v7.2

Bruce Ashfield
 

v4 worked, and is now merged to master.

Bruce

On Thu, Apr 22, 2021 at 9:49 AM Xu, Yanfei <yanfei.xu@...> wrote:

From: Yanfei Xu <yanfei.xu@...>

This upgrade spans 9 small release. The detailed realese logs could
refer to: https://gitlab.com/libvirt/libvirt/-/blob/master/NEWS.rst

Libvirt's buildsystem has changed to meson, So this upgrade drop some
obsolete patches applied to makefile.

I ran libvirt testcase and ovs testcase for this upgrade, the summary
as follow:

libvirt_test (keyword: ) test results:
*1 Run libvirt_test testing(do_test1) PASS
*2 Check result (virsh_local_capabilities) PASS
*3 Check result (virsh_local_domcapabilities) PASS
*4 Check result (virsh_local_freecell) PASS
*5 Check result (virsh_local_help) PASS
*6 Check result (virsh_local_hostname) PASS
*7 Check result (virsh_local_iface-begin) PASS
*8 Check result (virsh_local_iface-commit) PASS
*9 Check result (virsh_local_iface-list) PASS
*10 Check result (virsh_local_list) PASS
*11 Check result (virsh_local_maxvcpus) PASS
*12 Check result (virsh_local_net-list) PASS
*13 Check result (virsh_local_nodecpumap) PASS
*14 Check result (virsh_local_nodecpustats) PASS
*15 Check result (virsh_local_nodedev-list) PASS
*16 Check result (virsh_local_nodeinfo) PASS
*17 Check result (virsh_local_node-memory-tune) PASS
*18 Check result (virsh_local_nodememstats) PASS
*19 Check result (virsh_local_nwfilter-binding-list) PASS
*20 Check result (virsh_local_nwfilter-list) PASS
*21 Check result (virsh_local_pool-capabilities) PASS
*22 Check result (virsh_local_pool-list) PASS
*23 Check result (virsh_local_pwd) PASS
*24 Check result (virsh_local_secret-list) PASS
*25 Check result (virsh_local_sysinfo) PASS
*26 Check result (virsh_local_uri) PASS
*27 Check result (virsh_local_version) PASS

openvswitch_vm2vm (keyword: qemux86) test results:
*1 openvswitch_vm2vm testing(do_test1) PASS
*2 Check result (ovs_vm2vm_boot_guest1) PASS
*3 Check result (ovs_vm2vm_boot_guest2) PASS
*4 Check result (ovs_vm2vm_netperf_test) PASS
*5 Check result (ovs_vm2vm_destroy_guest1) PASS
*6 Check result (ovs_vm2vm_destroy_guest2) PASS
*7 check testcase call trace(do_check_call_trace) PASS

Signed-off-by: Yanfei Xu <yanfei.xu@...>
---
v1-->v2:
1.fix build failure caused by "getent".
2.fix apply failure.
3.drop ptest configurations in libvirt_7.2.0.bb
4.add test log in commit messages.
v2-->v3:
1.replace the option list with "--cross-file=" to specify the
binaries path.
v3-->v4:
1.fix apply failure
2.fix compiling error of libxl when enable 'xen' distro feature
3.add else statement to remove systemd dir when use sysvinit.

conf/layer.conf | 2 +
recipes-extended/libvirt/libvirt-python.inc | 4 +-
...drop-unnecessary-libgnu.la-reference.patch | 31 ---
.../libvirt/0001-to-fix-build-error.patch | 47 ----
...-search-for-rpc-rpc.h-in-the-sysroot.patch | 34 ---
.../libvirt/install-missing-file.patch | 50 -----
...read-safety-in-lxc-callback-handling.patch | 63 ------
...virt-use-pkg-config-to-locate-libcap.patch | 43 ----
.../libvirt/qemu-fix-crash-in-qemuOpen.patch | 39 ----
.../libvirt/libvirt/runptest.patch | 116 ----------
...t-net-rpc-to-virt-host-validate-when.patch | 91 --------
.../{libvirt_6.3.0.bb => libvirt_7.2.0.bb} | 205 +++++-------------
12 files changed, 59 insertions(+), 666 deletions(-)
delete mode 100644 recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
delete mode 100644 recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
delete mode 100644 recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
delete mode 100644 recipes-extended/libvirt/libvirt/install-missing-file.patch
delete mode 100644 recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
delete mode 100644 recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
delete mode 100644 recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
delete mode 100644 recipes-extended/libvirt/libvirt/runptest.patch
delete mode 100644 recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
rename recipes-extended/libvirt/{libvirt_6.3.0.bb => libvirt_7.2.0.bb} (61%)

diff --git a/conf/layer.conf b/conf/layer.conf
index f48ec25..0f0126b 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -67,3 +67,5 @@ K8S_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/k8s-versions.inc"
USER_CLASSES_append = " meta-virt-cfg"
USER_CLASSES_append = " meta-virt-k8s-cfg"
USER_CLASSES_append = " meta-virt-xen-cfg"
+
+HOSTTOOLS_NONFATAL += "getent"
diff --git a/recipes-extended/libvirt/libvirt-python.inc b/recipes-extended/libvirt/libvirt-python.inc
index bcd7657..0c661af 100644
--- a/recipes-extended/libvirt/libvirt-python.inc
+++ b/recipes-extended/libvirt/libvirt-python.inc
@@ -17,8 +17,8 @@ FILES_${PN}-python = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"

SRC_URI += "http://libvirt.org/sources/python/libvirt-python-${PV}.tar.gz;name=libvirt_python"

-SRC_URI[libvirt_python.md5sum] = "4cf898350ee9a47f94986d402c153bdb"
-SRC_URI[libvirt_python.sha256sum] = "c772421ecc144f098f4ab15db700c62db9b9e6e76b876217edcfd62e9ce02750"
+SRC_URI[libvirt_python.md5sum] = "19bf22414a43d358581b9259b52047a7"
+SRC_URI[libvirt_python.sha256sum] = "c0c3bac54c55622e17927b09cd9843869600d71842fb072c99491fe2608dcee7"

export LIBVIRT_API_PATH = "${S}/docs/libvirt-api.xml"
export LIBVIRT_CFLAGS = "-I${S}/include"
diff --git a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch b/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
deleted file mode 100644
index f02a5d6..0000000
--- a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 30a056069cb35804434fb036e51ae97f33c02025 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@...>
-Date: Sat, 7 Mar 2020 21:36:27 -0500
-Subject: [PATCH] build: drop unnecessary libgnu.la reference
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-
----
- tools/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 2a0a989..93fe283 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -168,7 +168,6 @@ virt_host_validate_LDADD = \
-
- if WITH_GNUTLS
- virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
-@@ -270,7 +269,6 @@ BUILT_SOURCES =
-
- if WITH_GNUTLS
- virsh_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
diff --git a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch b/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
deleted file mode 100644
index b0148e5..0000000
--- a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 3566bcacaa6408fb8f655d1749a20b2f30e0c765 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@...>
-Date: Fri, 31 Jul 2015 03:17:07 +0900
-Subject: [PATCH] to fix build error
-
-The error likes as following
-
-| Generating internals/command.html.tmp
-| /bin/sh: line 3: internals/command.html.tmp: No such file or directory
-| rm: Generating internals/locking.html.tmp
-| cannot remove `internals/command.html.tmp': No such file or directory
-| make[3]: *** [internals/command.html.tmp] Error 1
-| make[3]: *** Waiting for unfinished jobs....
-
-Signed-off-by: Lei Maohui <leimaohui@...>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@...>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- docs/Makefile.am | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/docs/Makefile.am b/docs/Makefile.am
-index ce3d296..2c8180f 100644
---- a/docs/Makefile.am
-+++ b/docs/Makefile.am
-@@ -366,7 +366,7 @@ EXTRA_DIST= \
- aclperms.htmlinc \
- $(schema_DATA)
-
--acl_generated = aclperms.htmlinc
-+acl.html:: $(srcdir)/aclperms.htmlinc
-
- aclperms.htmlinc: $(top_srcdir)/src/access/viraccessperm.h \
- $(top_srcdir)/scripts/genaclperms.py Makefile.am
-@@ -432,8 +432,7 @@ manpages/%.html.in: manpages/%.rst
- $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \
- $(RST2HTML) --strict $< > $@ || { rm $@ && exit 1; }
-
--%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \
-- $(acl_generated)
-+%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl
- $(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \
- genhtmlin=`echo $@ | sed -e 's/.tmp/.in/'`; \
- rst=`echo $@ | sed -e 's/.html.tmp/.rst/'`; \
diff --git a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch b/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
deleted file mode 100644
index 395d561..0000000
--- a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 79f5975db01af0599860ccca7ef44b0e27105a04 Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@...>
-Date: Thu, 10 May 2018 12:05:04 -0400
-Subject: [PATCH] configure.ac: search for rpc/rpc.h in the sysroot
-
-We want to avoid host contamination and use the sysroot as the base
-directory for our search so add the '=' the the '-I' when searching
-for libtirpc's rpc.h header.
-
-Upstream-Status: Inappropriate [old release]
-
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- m4/virt-xdr.m4 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/m4/virt-xdr.m4 b/m4/virt-xdr.m4
-index 8375415..12b51f7 100644
---- a/m4/virt-xdr.m4
-+++ b/m4/virt-xdr.m4
-@@ -30,10 +30,10 @@ AC_DEFUN([LIBVIRT_CHECK_XDR], [
- ])
- with_xdr="yes"
-
-- dnl Recent glibc requires -I/usr/include/tirpc for <rpc/rpc.h>
-+ dnl Recent glibc requires -I=/usr/include/tirpc for <rpc/rpc.h>
- old_CFLAGS=$CFLAGS
- AC_CACHE_CHECK([where to find <rpc/rpc.h>], [lv_cv_xdr_cflags], [
-- for add_CFLAGS in '' '-I/usr/include/tirpc' 'missing'; do
-+ for add_CFLAGS in '' '-I=/usr/include/tirpc' 'missing'; do
- if test x"$add_CFLAGS" = xmissing; then
- lv_cv_xdr_cflags=missing; break
- fi
diff --git a/recipes-extended/libvirt/libvirt/install-missing-file.patch b/recipes-extended/libvirt/libvirt/install-missing-file.patch
deleted file mode 100644
index 6aa36df..0000000
--- a/recipes-extended/libvirt/libvirt/install-missing-file.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From aa75f5136066d239d48a21373b3d96ee12378e8d Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Wed, 8 May 2019 17:24:17 +0800
-Subject: [PATCH] Install missing conf file
-
-openvzutilstest.conf file is needed by openvzutilstest test.
-
-Upstream-Status: Inapproriate
-
-Signed-off-by: Catalin Enache <catalin.enache@...>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@...>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- tests/Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 4a808dd..0c3e799 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -173,6 +173,7 @@ EXTRA_DIST = \
- $(NULL)
-
- test_helpers = commandhelper ssh
-+test_misc =
- test_programs = virshtest sockettest \
- virhostcputest virbuftest \
- commandtest seclabeltest \
-@@ -311,6 +312,7 @@ endif WITH_LXC
-
- if WITH_OPENVZ
- test_programs += openvzutilstest
-+test_misc += openvzutilstest.conf
- endif WITH_OPENVZ
-
- if WITH_ESX
-@@ -1551,7 +1553,7 @@ endif ! WITH_LINUX
-
- buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-
--PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+PTESTS = $(TESTS) $(test_helpers) $(test_misc) test-lib.sh virschematest
-
- install-ptest:
- list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
diff --git a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch b/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
deleted file mode 100644
index 558d5ef..0000000
--- a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From ad5d9cee87357f9f38f62583119606ef95ba10df Mon Sep 17 00:00:00 2001
-From: Bogdan Purcareata <bogdan.purcareata@...>
-Date: Fri, 24 May 2013 16:46:00 +0300
-Subject: [PATCH] Fix thread safety in LXC callback handling
-
-Signed-off-by: Bogdan Purcareata <bogdan.purcareata@...>
----
- src/lxc/lxc_process.c | 18 +++++++++++++++++-
- 1 file changed, 17 insertions(+), 1 deletion(-)
-
-diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
-index aaa81a7..0eadc67 100644
---- a/src/lxc/lxc_process.c
-+++ b/src/lxc/lxc_process.c
-@@ -609,8 +609,13 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- virLXCProtocolExitStatus status,
- virDomainObjPtr vm)
- {
-+ virLXCDriverPtr driver = lxc_driver;
- virLXCDomainObjPrivatePtr priv = vm->privateData;
-
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
- switch (status) {
- case VIR_LXC_PROTOCOL_EXIT_STATUS_SHUTDOWN:
- priv->stopReason = VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN;
-@@ -628,6 +633,8 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- }
- VIR_DEBUG("Domain shutoff reason %d (from status %d)",
- priv->stopReason, status);
-+
-+ virObjectUnlock(vm);
- }
-
- /* XXX a little evil */
-@@ -636,12 +643,21 @@ static void virLXCProcessMonitorInitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- pid_t initpid,
- virDomainObjPtr vm)
- {
-- virLXCDomainObjPrivatePtr priv = vm->privateData;
-+ virLXCDriverPtr driver = lxc_driver;
-+ virLXCDomainObjPrivatePtr priv;
-+
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
-+ priv = vm->privateData;
- priv->initpid = initpid;
- virDomainAuditInit(vm, initpid);
-
- if (virDomainSaveStatus(lxc_driver->caps, lxc_driver->stateDir, vm) < 0)
- VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name);
-+
-+ virObjectUnlock(vm);
- }
-
- static virLXCMonitorCallbacks monitorCallbacks = {
---
-1.7.11.7
-
diff --git a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch b/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
deleted file mode 100644
index 87b5591..0000000
--- a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 94bd514e1b6e602a48285db94e65050f8f0c2585 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@...>
-Date: Wed, 8 Apr 2015 13:03:03 -0400
-Subject: [PATCH] libvirt: use pkg-config to locate libcap
-
-libvirt wants to use pcap-config to locate the exisence and location
-of libpcap. oe-core stubs this script and replaces it with pkg-config,
-which can lead to the host pcap-config triggering and either breaking
-the build or introducing host contamination.
-
-To fix this issue, we patch configure to use 'pkg-config libcap' to
-locate the correct libraries.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-[MA: Update to apply agains v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- m4/virt-libpcap.m4 | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/m4/virt-libpcap.m4 b/m4/virt-libpcap.m4
-index 605c2fd..e0ab018 100644
---- a/m4/virt-libpcap.m4
-+++ b/m4/virt-libpcap.m4
-@@ -23,14 +23,14 @@ AC_DEFUN([LIBVIRT_ARG_LIBPCAP], [
-
- AC_DEFUN([LIBVIRT_CHECK_LIBPCAP], [
- LIBPCAP_REQUIRED="1.5.0"
-- LIBPCAP_CONFIG="pcap-config"
-+ LIBPCAP_CONFIG="pkg-config libpcap"
- LIBPCAP_CFLAGS=""
- LIBPCAP_LIBS=""
-
- if test "x$with_libpcap" != "xno"; then
- case $with_libpcap in
-- ''|yes|check) LIBPCAP_CONFIG="pcap-config" ;;
-- *) LIBPCAP_CONFIG="$with_libpcap/bin/pcap-config" ;;
-+ ''|yes|check) LIBPCAP_CONFIG="pkg-config libpcap" ;;
-+ *) LIBPCAP_CONFIG="$with_libpcap/bin/pkg-config libpcap" ;;
- esac
- AS_IF([test "x$LIBPCAP_CONFIG" != "x"], [
- AC_MSG_CHECKING(libpcap $LIBPCAP_CONFIG >= $LIBPCAP_REQUIRED )
diff --git a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch b/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
deleted file mode 100644
index 3cf9e83..0000000
--- a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 74bff2509080912ea8abf1de8fd95fa2412b659a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@...>
-Date: Thu, 11 Apr 2013 11:37:25 +0200
-Subject: [PATCH] qemu: fix crash in qemuOpen
-
-commit 74bff2509080912ea8abf1de8fd95fa2412b659a from upsteam
-git://libvirt.org/libvirt.git
-
-If the path part of connection URI is not present, cfg is used
-unitialized.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=950855
----
- src/qemu/qemu_driver.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
-index 2c0d7d1..0d41e39 100644
---- a/src/qemu/qemu_driver.c
-+++ b/src/qemu/qemu_driver.c
-@@ -1026,6 +1026,7 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-+ cfg = virQEMUDriverGetConfig(qemu_driver);
- if (conn->uri->path == NULL) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("no QEMU URI path given, try %s"),
-@@ -1033,7 +1034,6 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-- cfg = virQEMUDriverGetConfig(qemu_driver);
- if (cfg->privileged) {
- if (STRNEQ(conn->uri->path, "/system") &&
- STRNEQ(conn->uri->path, "/session")) {
---
-1.7.1
-
diff --git a/recipes-extended/libvirt/libvirt/runptest.patch b/recipes-extended/libvirt/libvirt/runptest.patch
deleted file mode 100644
index f6bc773..0000000
--- a/recipes-extended/libvirt/libvirt/runptest.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From d210838a4433dd254c1a11b08b804ebe9ff5f378 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Wed, 8 May 2019 10:20:47 +0800
-Subject: [PATCH] Add 'install-ptest' rule
-
-Change TESTS_ENVIRONMENT to allow running outside build dir.
-
-Upstream-status: Pending
-Signed-off-by: Mihaela Sendrea <mihaela.sendrea@...>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@...>
-[MA: Allow separate source and build dirs]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[ZH: add missing test_helper files]
-Signed-off-by: He Zhe <zhe.he@...>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- tests/Makefile.am | 68 +++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 60 insertions(+), 8 deletions(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index ada5b8f..4a808dd 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -28,11 +28,13 @@ AM_CPPFLAGS = \
-
- WARN_CFLAGS += $(RELAXED_FRAME_LIMIT_CFLAGS)
-
-+PTEST_DIR ?= $(libdir)/libvirt/ptest
-+
- AM_CFLAGS = \
-- -Dabs_builddir="\"$(abs_builddir)\"" \
-- -Dabs_top_builddir="\"$(abs_top_builddir)\"" \
-- -Dabs_srcdir="\"$(abs_srcdir)\"" \
-- -Dabs_top_srcdir="\"$(abs_top_srcdir)\"" \
-+ -Dabs_builddir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_builddir="\"$(PTEST_DIR)\"" \
-+ -Dabs_srcdir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_srcdir="\"$(PTEST_DIR)\"" \
- $(LIBXML_CFLAGS) \
- $(GLIB_CFLAGS) \
- $(LIBNL_CFLAGS) \
-@@ -474,10 +476,10 @@ TESTS = $(test_programs) \
-
- VIR_TEST_EXPENSIVE ?= $(VIR_TEST_EXPENSIVE_DEFAULT)
- TESTS_ENVIRONMENT = \
-- abs_top_builddir="$(abs_top_builddir)" \
-- abs_top_srcdir="$(abs_top_srcdir)" \
-- abs_builddir="$(abs_builddir)" \
-- abs_srcdir="$(abs_srcdir)" \
-+ abs_top_builddir="$(PTEST_DIR)" \
-+ abs_top_srcdir="$(PTEST_DIR)" \
-+ abs_builddir="$(PTEST_DIR)/tests" \
-+ abs_srcdir="$(PTEST_DIR)/tests" \
- LIBVIRT_AUTOSTART=0 \
- LC_ALL=C \
- VIR_TEST_EXPENSIVE=$(VIR_TEST_EXPENSIVE) \
-@@ -1547,4 +1549,54 @@ else ! WITH_LINUX
- EXTRA_DIST += virscsitest.c
- endif ! WITH_LINUX
-
-+buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-+
-+PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+
-+install-ptest:
-+ list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
-+ install -d $(DEST_DIR)/tools
-+ @(if [ -d ../tools/.libs ] ; then cd ../tools/.libs; fi; \
-+ install * $(DEST_DIR)/tools)
-+ install -d $(DEST_DIR)/src/network
-+ cp $(top_srcdir)/src/network/*.xml $(DEST_DIR)/src/network
-+ install -d $(DEST_DIR)/src/cpu_map
-+ cp $(top_srcdir)/src/cpu_map/*.xml $(DEST_DIR)/src/cpu_map
-+ install ../src/libvirt_iohelper $(DEST_DIR)/src
-+ install -D ../src/libvirtd $(DEST_DIR)/src/libvirtd
-+ install -d $(DEST_DIR)/src/remote
-+ install -D $(top_srcdir)/../build/src/remote/libvirtd.conf $(DEST_DIR)/src/remote/libvirtd.conf
-+ install -d $(DEST_DIR)/src/remote/.libs
-+ @(if [ -d ../src/remote/.libs ] ; then cd ../src/remote/.libs; fi; \
-+ install * $(DEST_DIR)/src/remote/.libs)
-+ install -d $(DEST_DIR)/src/.libs
-+ @(if [ -d ../src/.libs ] ; then cd ../src/.libs; fi; \
-+ install * $(DEST_DIR)/src/.libs)
-+ install -d $(DEST_DIR)/docs/schemas
-+ cp $(top_srcdir)/docs/schemas/*.rng $(DEST_DIR)/docs/schemas
-+ cp -r $(top_srcdir)/build-aux $(DEST_DIR)
-+ install -d $(DEST_DIR)/examples/xml
-+ cp -r $(top_srcdir)/examples/xml/test $(DEST_DIR)/examples/xml
-+ install -d $(DEST_DIR)/tests/.libs
-+ find . -type d -name "*xml2xml*" -exec cp -r {} $(DEST_DIR)/tests \;
-+ find . -type d -name "*data" -exec cp -r {} $(DEST_DIR)/tests \;
-+ @(for file in $(PTESTS); do \
-+ if [ -f .libs/$$file ]; then \
-+ install .libs/$$file $(DEST_DIR)/tests; \
-+ elif [ -f $(srcdir)/$$file ]; then \
-+ install $(srcdir)/$$file $(DEST_DIR)/tests; \
-+ else \
-+ install $(builddir)/$$file $(DEST_DIR)/tests; \
-+ fi; \
-+ done;)
-+ @(if [ -d .libs ]; then install .libs/*.so $(DEST_DIR)/tests/.libs; fi;)
-+ cp ../config.h $(DEST_DIR)
-+ cp Makefile $(DEST_DIR)/tests
-+ sed -i -e 's/^Makefile:/_Makefile:/' $(DEST_DIR)/tests/Makefile
-+ cp ../Makefile $(DEST_DIR)
-+ sed -i -e 's|^Makefile:|_Makefile:|' $(DEST_DIR)/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/tests/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/Makefile
-+ sed -i -e 's|^\(.*\.log:\) \(.*EXEEXT.*\)|\1|g' $(DEST_DIR)/tests/Makefile
-+
- CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
diff --git a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch b/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
deleted file mode 100644
index bb500fd..0000000
--- a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 7dc21edd851b260485b432c096f8e90f6fa07778 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Tue, 7 May 2019 15:26:32 +0800
-Subject: [PATCH] tools: add libvirt-net-rpc to virt-host-validate when TLS is
- enabled
-
-When gnu-tls is enabled for libvirt references to virNetTLSInit are
-generated in libvirt. Any binaries linking against libvirt, must also
-link against libvirt-net-rpc which provides the implementation.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@...>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[ddu: rebase to v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- examples/Makefile.am | 20 ++++++++++++++++++++
- tools/Makefile.am | 12 ++++++++++++
- 2 files changed, 32 insertions(+)
-
-diff --git a/examples/Makefile.am b/examples/Makefile.am
-index ad635bd..a94f41d 100644
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -74,6 +74,10 @@ LDADD = \
- $(top_builddir)/src/libvirt-admin.la \
- $(NULL)
-
-+if WITH_GNUTLS
-+LDADD += $(top_builddir)/src/libvirt-net-rpc.la
-+endif
-+
- noinst_PROGRAMS = \
- c/admin/client_close \
- c/admin/client_info \
-@@ -111,6 +115,22 @@ c_misc_openauth_SOURCES = c/misc/openauth.c
- examplesdir = $(docdir)/examples
-
- adminexamplesdir = $(examplesdir)/c/admin
-+
-+if WITH_GNUTLS
-+dominfo_info1_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+domsuspend_suspend_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+hellolibvirt_hellolibvirt_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+openauth_openauth_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+endif
-+
- adminexamples_DATA = $(ADMIN_EXAMPLES)
-
- domainexamplesdir = $(examplesdir)/c/domain
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 53df930..2a0a989 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -166,6 +166,12 @@ virt_host_validate_LDADD = \
- $(GLIB_LIBS) \
- $(NULL)
-
-+if WITH_GNUTLS
-+virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- virt_host_validate_CFLAGS = \
- $(AM_CFLAGS) \
- $(NULL)
-@@ -262,6 +268,12 @@ virt_admin_CFLAGS = \
- $(READLINE_CFLAGS)
- BUILT_SOURCES =
-
-+if WITH_GNUTLS
-+virsh_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- if WITH_WIN_ICON
- virsh_LDADD += virsh_win_icon.$(OBJEXT)
-
diff --git a/recipes-extended/libvirt/libvirt_6.3.0.bb b/recipes-extended/libvirt/libvirt_7.2.0.bb
similarity index 61%
rename from recipes-extended/libvirt/libvirt_6.3.0.bb
rename to recipes-extended/libvirt/libvirt_7.2.0.bb
index eeb1bf8..24748ef 100644
--- a/recipes-extended/libvirt/libvirt_6.3.0.bb
+++ b/recipes-extended/libvirt/libvirt_7.2.0.bb
@@ -1,7 +1,6 @@
DESCRIPTION = "A toolkit to interact with the virtualization capabilities of recent versions of Linux."
HOMEPAGE = "http://libvirt.org"
LICENSE = "LGPLv2.1+ & GPLv2+"
-LICENSE_${PN}-ptest = "GPLv2+ & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LESSER;md5=4b54a1fd55a448865a0b32d41598759d"
SECTION = "console/tools"
@@ -16,9 +15,7 @@ DEPENDS = "bridge-utils gnutls libxml2 lvm2 avahi parted curl libpcap util-linux
#
RDEPENDS_${PN} = "gettext-runtime"

-RDEPENDS_${PN}-ptest += "make gawk perl bash"
-
-RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd"
+RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd ebtables"
RDEPENDS_libvirt-libvirtd_append_x86-64 = " dmidecode"
RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"

@@ -26,88 +23,33 @@ RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"
RCONFLICTS_${PN}_libvirtd = "connman"

SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
- file://tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch \
file://libvirtd.sh \
file://libvirtd.conf \
file://dnsmasq.conf \
- file://runptest.patch \
- file://run-ptest \
- file://libvirt-use-pkg-config-to-locate-libcap.patch \
- file://0001-to-fix-build-error.patch \
- file://install-missing-file.patch \
- file://0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch \
- file://configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch \
- file://0001-build-drop-unnecessary-libgnu.la-reference.patch \
file://hook_support.py \
file://gnutls-helper.py \
"

-SRC_URI[libvirt.md5sum] = "1bd4435f77924f5ec9928b538daf4a02"
-SRC_URI[libvirt.sha256sum] = "74069438d34082336e99a88146349e21130552b96efc3b7c562f6878127996f5"
+SRC_URI[libvirt.md5sum] = "92044b629216e44adce63224970a54a3"
+SRC_URI[libvirt.sha256sum] = "01f459d0c7ba5009622a628dba1a026200e8f4a299fea783b936a71d7e0ed1d0"

-inherit autotools gettext update-rc.d pkgconfig ptest systemd useradd perlnative
+inherit meson gettext update-rc.d pkgconfig systemd useradd perlnative
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM_${PN} = "-r qemu; -r kvm"
USERADD_PARAM_${PN} = "-r -g qemu -G kvm qemu"

-# Override the default set in autotools.bbclass so that we will use relative pathnames
-# to our local m4 files. This prevents an "Argument list too long" error during configuration
-# if our project is in a directory with an absolute pathname of more than about 125 characters.
-#
-acpaths = "-I ./m4"
-
-CACHED_CONFIGUREVARS += "\
-ac_cv_path_XMLCATLOG=/usr/bin/xmlcatalog \
-ac_cv_path_AUGPARSE=/usr/bin/augparse \
-ac_cv_path_DMIDECODE=/usr/sbin/dmidecode \
-ac_cv_path_DNSMASQ=/usr/bin/dnsmasq \
-ac_cv_path_BRCTL=/usr/sbin/brctl \
-ac_cv_path_TC=/sbin/tc \
-ac_cv_path_UDEVADM=/sbin/udevadm \
-ac_cv_path_MODPROBE=/sbin/modprobe \
-ac_cv_path_IP_PATH=/bin/ip \
-ac_cv_path_IPTABLES_PATH=/usr/sbin/iptables \
-ac_cv_path_IP6TABLES_PATH=/usr/sbin/ip6tables \
-ac_cv_path_MOUNT=/bin/mount \
-ac_cv_path_UMOUNT=/bin/umount \
-ac_cv_path_MKFS=/usr/sbin/mkfs \
-ac_cv_path_SHOWMOUNT=/usr/sbin/showmount \
-ac_cv_path_PVCREATE=/usr/sbin/pvcreate \
-ac_cv_path_VGCREATE=/usr/sbin/vgcreate \
-ac_cv_path_LVCREATE=/usr/sbin/lvcreate \
-ac_cv_path_PVREMOVE=/usr/sbin/pvremove \
-ac_cv_path_VGREMOVE=/usr/sbin/vgremove \
-ac_cv_path_LVREMOVE=/usr/sbin/lvremove \
-ac_cv_path_LVCHANGE=/usr/sbin/lvchange \
-ac_cv_path_VGCHANGE=/usr/sbin/vgchange \
-ac_cv_path_VGSCAN=/usr/sbin/vgscan \
-ac_cv_path_PVS=/usr/sbin/pvs \
-ac_cv_path_VGS=/usr/sbin/vgs \
-ac_cv_path_LVS=/usr/sbin/lvs \
-ac_cv_path_PARTED=/usr/sbin/parted \
-ac_cv_path_DMSETUP=/usr/sbin/dmsetup"
-
-# Ensure that libvirt uses polkit rather than policykit, whether the host has
-# pkcheck installed or not, and ensure the path is correct per our config.
-CACHED_CONFIGUREVARS += "ac_cv_path_PKCHECK_PATH=${bindir}/pkcheck"
-
-# Some other possible paths we are not yet setting
-#ac_cv_path_RPCGEN=
-#ac_cv_path_XSLTPROC=
-#ac_cv_path_RADVD=
-#ac_cv_path_UDEVSETTLE=
-#ac_cv_path_EBTABLES_PATH=
-#ac_cv_path_PKG_CONFIG=
-#ac_cv_path_ac_pt_PKG_CONFIG
-#ac_cv_path_POLKIT_AUTH=
-#ac_cv_path_DTRACE=
-#ac_cv_path_ISCSIADM=
-#ac_cv_path_MSGFMT=
-#ac_cv_path_GMSGFMT=
-#ac_cv_path_XGETTEXT=
-#ac_cv_path_MSGMERGE=
-#ac_cv_path_SCRUB=
-#ac_cv_path_PYTHON=
+
+EXTRA_OEMESON += "--cross-file ${WORKDIR}/meson-${PN}.cross"
+do_write_config_append() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+iptables = '/usr/sbin/iptables'
+ip6tables = '/usr/sbin/ip6tables'
+dmidecode = '/usr/sbin/dmidecode'
+ebtables = '/sbin/ebtables'
+dnsmasq = '/usr/bin/dnsmasq'
+EOF
+}

ALLOW_EMPTY_${PN} = "1"

@@ -167,31 +109,12 @@ SYSTEMD_SERVICE_${PN}-libvirtd = " \
virtlockd.socket \
"

-
-PRIVATE_LIBS_${PN}-ptest = " \
- libvirt-lxc.so.0 \
- libvirt.so.0 \
- libvirt-qemu.so.0 \
- lockd.so \
- libvirt_driver_secret.so \
- libvirt_driver_nodedev.so \
- libvirt_driver_vbox.so \
- libvirt_driver_interface.so \
- libvirt_driver_uml.so \
- libvirt_driver_network.so \
- libvirt_driver_nwfilter.so \
- libvirt_driver_qemu.so \
- libvirt_driver_storage.so \
- libvirt_driver_lxc.so \
- "
-
# xen-minimal config
#PACKAGECONFIG ??= "xen libxl xen-inotify test remote libvirtd"

# full config
-PACKAGECONFIG ??= "qemu yajl openvz vmware vbox esx iproute2 lxc test \
- remote macvtap libvirtd netcf udev python ebtables \
- fuse iproute2 firewalld libpcap \
+PACKAGECONFIG ??= "gnutls qemu yajl openvz vmware vbox esx lxc test remote \
+ libvirtd netcf udev python fuse firewalld libpcap \
${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit libcap-ng', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'libxl', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'polkit', '', d)} \
@@ -208,37 +131,34 @@ PACKAGECONFIG_remove_armeb = "numactl"
# enable,disable,depends,rdepends
#
PACKAGECONFIG[gnutls] = ",,,gnutls-bin"
-PACKAGECONFIG[qemu] = "--with-qemu --with-qemu-user=qemu --with-qemu-group=qemu,--without-qemu,qemu,"
-PACKAGECONFIG[yajl] = "--with-yajl,--without-yajl,yajl,yajl"
-PACKAGECONFIG[libxl] = "--with-libxl=${STAGING_DIR_TARGET}/lib,--without-libxl,xen,"
-PACKAGECONFIG[openvz] = "--with-openvz,--without-openvz,,"
-PACKAGECONFIG[vmware] = "--with-vmware,--without-vmware,,"
-PACKAGECONFIG[vbox] = "--with-vbox,--without-vbox,,"
-PACKAGECONFIG[esx] = "--with-esx,--without-esx,,"
-PACKAGECONFIG[hyperv] = "--with-hyperv,--without-hyperv,,"
-PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit,polkit"
-PACKAGECONFIG[lxc] = "--with-lxc,--without-lxc, lxc,"
-PACKAGECONFIG[test] = "--with-test=yes,--with-test=no,,"
-PACKAGECONFIG[remote] = "--with-remote,--without-remote,,"
-PACKAGECONFIG[macvtap] = "--with-macvtap=yes,--with-macvtap=no,libnl,libnl"
-PACKAGECONFIG[libvirtd] = "--with-libvirtd,--without-libvirtd,,"
-PACKAGECONFIG[netcf] = "--with-netcf,--without-netcf,netcf,netcf"
-PACKAGECONFIG[dtrace] = "--with-dtrace,--without-dtrace,,"
-PACKAGECONFIG[udev] = "--with-udev --with-pciaccess,--without-udev,udev libpciaccess,"
-PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux,"
-PACKAGECONFIG[ebtables] = "ac_cv_path_EBTABLES_PATH=/sbin/ebtables,ac_cv_path_EBTABLES_PATH=,ebtables,ebtables"
+PACKAGECONFIG[qemu] = "-Ddriver_qemu=enabled -Dqemu_user=qemu -Dqemu_group=qemu,-Ddriver_qemu=disabled,qemu,"
+PACKAGECONFIG[yajl] = "-Dyajl=enabled,-Dyajl=disabled,yajl,yajl"
+PACKAGECONFIG[libxl] = "-Ddriver_libxl=enabled,-Ddriver_libxl=disabled,xen,"
+PACKAGECONFIG[openvz] = "-Ddriver_openvz=enabled,-Ddriver_openvz=disabled,,"
+PACKAGECONFIG[vmware] = "-Ddriver_vmware=enabled,-Ddriver_vmware=disabled,,"
+PACKAGECONFIG[vbox] = "-Ddriver_vbox=enabled,-Ddriver_vbox=disabled,,"
+PACKAGECONFIG[esx] = "-Ddriver_esx=enabled,-Ddriver_esx=disabled,,"
+PACKAGECONFIG[hyperv] = "-Ddriver_hyperv=enabled,-Ddriver_hyperv=disabled,,"
+PACKAGECONFIG[polkit] = "-Dpolkit=enabled,-Dpolkit=disabled,polkit,polkit"
+PACKAGECONFIG[lxc] = "-Ddriver_lxc=enabled,-Ddriver_lxc=disabled,lxc,"
+PACKAGECONFIG[test] = "-Ddriver_test=enabled,-Ddriver_test=disabled,,"
+PACKAGECONFIG[remote] = "-Ddriver_remote=enabled,-Ddriver_remote=disabled,,"
+PACKAGECONFIG[libvirtd] = "-Ddriver_libvirtd=enabled,-Ddriver_libvirtd=disabled,,"
+PACKAGECONFIG[netcf] = "-Dnetcf=enabled,-Dnetcf=disabled,netcf,netcf"
+PACKAGECONFIG[dtrace] = "-Ddtrace=enabled,-Ddtrace=disabled,,"
+PACKAGECONFIG[udev] = "-Dudev=enabled -Dpciaccess=enabled,-Dudev=disabled,udev libpciaccess,"
+PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux,"
PACKAGECONFIG[python] = ",,python3,"
-PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,cyrus-sasl"
-PACKAGECONFIG[iproute2] = "ac_cv_path_IP_PATH=/sbin/ip,ac_cv_path_IP_PATH=,iproute2,iproute2"
-PACKAGECONFIG[numactl] = "--with-numactl,--without-numactl,numactl,"
-PACKAGECONFIG[fuse] = "--with-fuse,--without-fuse,fuse,"
-PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit,"
-PACKAGECONFIG[libcap-ng] = "--with-capng,--without-capng,libcap-ng,"
-PACKAGECONFIG[wireshark] = "--with-wireshark-dissector,--without-wireshark-dissector,wireshark libwsutil,"
-PACKAGECONFIG[apparmor-profiles] = "--with-apparmor-profiles, --without-apparmor-profiles,"
-PACKAGECONFIG[firewalld] = "--with-firewalld, --without-firewalld,"
-PACKAGECONFIG[libpcap] = "--with-libpcap, --without-libpcap,libpcap,libpcap"
-PACKAGECONFIG[numad] = "--with-numad, --without-numad,"
+PACKAGECONFIG[sasl] = "-Dsasl=enabled,-Dsasl=disabled,cyrus-sasl,cyrus-sasl"
+PACKAGECONFIG[numactl] = "-Dnumactl=enabled,-Dnumactl=disabled,numactl,"
+PACKAGECONFIG[fuse] = "-Dfuse=enabled,-Dfuse=disabled,fuse,"
+PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit,"
+PACKAGECONFIG[libcap-ng] = "-Dcapng=enabled,-Dcapng=disabled,libcap-ng,"
+PACKAGECONFIG[wireshark] = "-Dwireshark_dissector=enabled,-Dwireshark_dissector=disabled,wireshark libwsutil,"
+PACKAGECONFIG[apparmor_profiles] = "-Dapparmor_profiles=true, -Dapparmor_profiles=false,"
+PACKAGECONFIG[firewalld] = "-Dfirewalld=enabled, -Dfirewalld=disabled,"
+PACKAGECONFIG[libpcap] = "-Dlibpcap=enabled, -Dlibpcap=disabled,libpcap,libpcap"
+PACKAGECONFIG[numad] = "-Dnumad=enabled, -Dnumad=disabled,"

# Enable the Python tool support
require libvirt-python.inc
@@ -255,7 +175,7 @@ do_compile() {

cd ${B}
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${B}/src:"
- oe_runmake all
+ ninja all
}

do_install_prepend() {
@@ -278,6 +198,8 @@ do_install_append() {
fi

if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ mkdir -p ${D}/lib
+ mv ${D}/usr/lib/systemd ${D}/lib
# This variable is used by libvirtd.service to start libvirtd in the right mode
sed -i '/#LIBVIRTD_ARGS="--listen"/a LIBVIRTD_ARGS="--listen --daemon"' ${D}/${sysconfdir}/sysconfig/libvirtd

@@ -285,6 +207,8 @@ do_install_append() {
sed -i -e 's/Type=notify/Type=forking/' \
-e '/Type=forking/a PIDFile=/run/libvirtd.pid' \
${D}/${systemd_unitdir}/system/libvirtd.service
+ else
+ rm -rf ${D}/usr/lib/systemd
fi

# The /run/libvirt directories created by the Makefile are
@@ -360,7 +284,7 @@ do_install_append() {
# connection via 127.0.0.1 is available out of box.
install -d ${D}/etc/pki/CA
install -d ${D}/etc/pki/libvirt/private
- install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
+ install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
install -m 0644 ${WORKDIR}/cakey.pem ${D}/${sysconfdir}/pki/libvirt/private/cakey.pem
install -m 0644 ${WORKDIR}/cacert.pem ${D}/${sysconfdir}/pki/CA/cacert.pem
install -m 0644 ${WORKDIR}/serverkey.pem ${D}/${sysconfdir}/pki/libvirt/private/serverkey.pem
@@ -376,10 +300,10 @@ do_install_append() {
chmod 4755 ${D}${bindir}/virt-login-shell
}

-EXTRA_OECONF += " \
- --with-init-script=systemd \
- --with-test-suite \
- --with-runstatedir=/run \
+EXTRA_OEMESON += " \
+ -Dinit_script=systemd \
+ -Drunstatedir=/run \
+ -Dtests=enabled \
"

# gcc9 end up mis-compiling qemuxml2argvtest.o with Og which then
@@ -387,25 +311,6 @@ EXTRA_OECONF += " \
SELECTED_OPTIMIZATION_remove_virtclass-multilib-lib32_mipsarch = "-Og"
SELECTED_OPTIMIZATION_append_virtclass-multilib-lib32_mipsarch = " -O2"

-EXTRA_OEMAKE = "BUILD_DIR=${B} DEST_DIR=${D}${PTEST_PATH} PTEST_DIR=${PTEST_PATH} SYSTEMD_UNIT_DIR=${systemd_system_unitdir}"
-
-PRIVATE_LIBS_${PN}-ptest_append = "libvirt-admin.so.0"
-
-do_compile_ptest() {
- oe_runmake -C tests buildtest-TESTS
-}
-
-do_install_ptest() {
- oe_runmake -C tests install-ptest
-
- find ${S}/tests -maxdepth 1 -type d -exec cp -r {} ${D}${PTEST_PATH}/tests/ \;
-
- # remove .la files for ptest, they aren't required and can trigger QA errors
- for i in `find ${D}${PTEST_PATH} -type f \( -name *.la -o -name *.o \)`; do
- rm -f $i
- done
-}
-
pkg_postinst_${PN}() {
if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
/etc/init.d/populate-volatile.sh update
--
2.27.0



--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


[PATCH v4] libvirt: uprev v6.3 -> v7.2

Xu, Yanfei
 

From: Yanfei Xu <yanfei.xu@...>

This upgrade spans 9 small release. The detailed realese logs could
refer to: https://gitlab.com/libvirt/libvirt/-/blob/master/NEWS.rst

Libvirt's buildsystem has changed to meson, So this upgrade drop some
obsolete patches applied to makefile.

I ran libvirt testcase and ovs testcase for this upgrade, the summary
as follow:

libvirt_test (keyword: ) test results:
*1 Run libvirt_test testing(do_test1) PASS
*2 Check result (virsh_local_capabilities) PASS
*3 Check result (virsh_local_domcapabilities) PASS
*4 Check result (virsh_local_freecell) PASS
*5 Check result (virsh_local_help) PASS
*6 Check result (virsh_local_hostname) PASS
*7 Check result (virsh_local_iface-begin) PASS
*8 Check result (virsh_local_iface-commit) PASS
*9 Check result (virsh_local_iface-list) PASS
*10 Check result (virsh_local_list) PASS
*11 Check result (virsh_local_maxvcpus) PASS
*12 Check result (virsh_local_net-list) PASS
*13 Check result (virsh_local_nodecpumap) PASS
*14 Check result (virsh_local_nodecpustats) PASS
*15 Check result (virsh_local_nodedev-list) PASS
*16 Check result (virsh_local_nodeinfo) PASS
*17 Check result (virsh_local_node-memory-tune) PASS
*18 Check result (virsh_local_nodememstats) PASS
*19 Check result (virsh_local_nwfilter-binding-list) PASS
*20 Check result (virsh_local_nwfilter-list) PASS
*21 Check result (virsh_local_pool-capabilities) PASS
*22 Check result (virsh_local_pool-list) PASS
*23 Check result (virsh_local_pwd) PASS
*24 Check result (virsh_local_secret-list) PASS
*25 Check result (virsh_local_sysinfo) PASS
*26 Check result (virsh_local_uri) PASS
*27 Check result (virsh_local_version) PASS

openvswitch_vm2vm (keyword: qemux86) test results:
*1 openvswitch_vm2vm testing(do_test1) PASS
*2 Check result (ovs_vm2vm_boot_guest1) PASS
*3 Check result (ovs_vm2vm_boot_guest2) PASS
*4 Check result (ovs_vm2vm_netperf_test) PASS
*5 Check result (ovs_vm2vm_destroy_guest1) PASS
*6 Check result (ovs_vm2vm_destroy_guest2) PASS
*7 check testcase call trace(do_check_call_trace) PASS

Signed-off-by: Yanfei Xu <yanfei.xu@...>
---
v1-->v2:
1.fix build failure caused by "getent".
2.fix apply failure.
3.drop ptest configurations in libvirt_7.2.0.bb
4.add test log in commit messages.
v2-->v3:
1.replace the option list with "--cross-file=" to specify the
binaries path.
v3-->v4:
1.fix apply failure
2.fix compiling error of libxl when enable 'xen' distro feature
3.add else statement to remove systemd dir when use sysvinit.

conf/layer.conf | 2 +
recipes-extended/libvirt/libvirt-python.inc | 4 +-
...drop-unnecessary-libgnu.la-reference.patch | 31 ---
.../libvirt/0001-to-fix-build-error.patch | 47 ----
...-search-for-rpc-rpc.h-in-the-sysroot.patch | 34 ---
.../libvirt/install-missing-file.patch | 50 -----
...read-safety-in-lxc-callback-handling.patch | 63 ------
...virt-use-pkg-config-to-locate-libcap.patch | 43 ----
.../libvirt/qemu-fix-crash-in-qemuOpen.patch | 39 ----
.../libvirt/libvirt/runptest.patch | 116 ----------
...t-net-rpc-to-virt-host-validate-when.patch | 91 --------
.../{libvirt_6.3.0.bb => libvirt_7.2.0.bb} | 205 +++++-------------
12 files changed, 59 insertions(+), 666 deletions(-)
delete mode 100644 recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
delete mode 100644 recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
delete mode 100644 recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
delete mode 100644 recipes-extended/libvirt/libvirt/install-missing-file.patch
delete mode 100644 recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
delete mode 100644 recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
delete mode 100644 recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
delete mode 100644 recipes-extended/libvirt/libvirt/runptest.patch
delete mode 100644 recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
rename recipes-extended/libvirt/{libvirt_6.3.0.bb => libvirt_7.2.0.bb} (61%)

diff --git a/conf/layer.conf b/conf/layer.conf
index f48ec25..0f0126b 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -67,3 +67,5 @@ K8S_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/k8s-versions.inc"
USER_CLASSES_append = " meta-virt-cfg"
USER_CLASSES_append = " meta-virt-k8s-cfg"
USER_CLASSES_append = " meta-virt-xen-cfg"
+
+HOSTTOOLS_NONFATAL += "getent"
diff --git a/recipes-extended/libvirt/libvirt-python.inc b/recipes-extended/libvirt/libvirt-python.inc
index bcd7657..0c661af 100644
--- a/recipes-extended/libvirt/libvirt-python.inc
+++ b/recipes-extended/libvirt/libvirt-python.inc
@@ -17,8 +17,8 @@ FILES_${PN}-python = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"

SRC_URI += "http://libvirt.org/sources/python/libvirt-python-${PV}.tar.gz;name=libvirt_python"

-SRC_URI[libvirt_python.md5sum] = "4cf898350ee9a47f94986d402c153bdb"
-SRC_URI[libvirt_python.sha256sum] = "c772421ecc144f098f4ab15db700c62db9b9e6e76b876217edcfd62e9ce02750"
+SRC_URI[libvirt_python.md5sum] = "19bf22414a43d358581b9259b52047a7"
+SRC_URI[libvirt_python.sha256sum] = "c0c3bac54c55622e17927b09cd9843869600d71842fb072c99491fe2608dcee7"

export LIBVIRT_API_PATH = "${S}/docs/libvirt-api.xml"
export LIBVIRT_CFLAGS = "-I${S}/include"
diff --git a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch b/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
deleted file mode 100644
index f02a5d6..0000000
--- a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 30a056069cb35804434fb036e51ae97f33c02025 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@...>
-Date: Sat, 7 Mar 2020 21:36:27 -0500
-Subject: [PATCH] build: drop unnecessary libgnu.la reference
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-
----
- tools/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 2a0a989..93fe283 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -168,7 +168,6 @@ virt_host_validate_LDADD = \
-
- if WITH_GNUTLS
- virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
-@@ -270,7 +269,6 @@ BUILT_SOURCES =
-
- if WITH_GNUTLS
- virsh_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
diff --git a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch b/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
deleted file mode 100644
index b0148e5..0000000
--- a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 3566bcacaa6408fb8f655d1749a20b2f30e0c765 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@...>
-Date: Fri, 31 Jul 2015 03:17:07 +0900
-Subject: [PATCH] to fix build error
-
-The error likes as following
-
-| Generating internals/command.html.tmp
-| /bin/sh: line 3: internals/command.html.tmp: No such file or directory
-| rm: Generating internals/locking.html.tmp
-| cannot remove `internals/command.html.tmp': No such file or directory
-| make[3]: *** [internals/command.html.tmp] Error 1
-| make[3]: *** Waiting for unfinished jobs....
-
-Signed-off-by: Lei Maohui <leimaohui@...>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@...>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- docs/Makefile.am | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/docs/Makefile.am b/docs/Makefile.am
-index ce3d296..2c8180f 100644
---- a/docs/Makefile.am
-+++ b/docs/Makefile.am
-@@ -366,7 +366,7 @@ EXTRA_DIST= \
- aclperms.htmlinc \
- $(schema_DATA)
-
--acl_generated = aclperms.htmlinc
-+acl.html:: $(srcdir)/aclperms.htmlinc
-
- aclperms.htmlinc: $(top_srcdir)/src/access/viraccessperm.h \
- $(top_srcdir)/scripts/genaclperms.py Makefile.am
-@@ -432,8 +432,7 @@ manpages/%.html.in: manpages/%.rst
- $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \
- $(RST2HTML) --strict $< > $@ || { rm $@ && exit 1; }
-
--%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \
-- $(acl_generated)
-+%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl
- $(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \
- genhtmlin=`echo $@ | sed -e 's/.tmp/.in/'`; \
- rst=`echo $@ | sed -e 's/.html.tmp/.rst/'`; \
diff --git a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch b/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
deleted file mode 100644
index 395d561..0000000
--- a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 79f5975db01af0599860ccca7ef44b0e27105a04 Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@...>
-Date: Thu, 10 May 2018 12:05:04 -0400
-Subject: [PATCH] configure.ac: search for rpc/rpc.h in the sysroot
-
-We want to avoid host contamination and use the sysroot as the base
-directory for our search so add the '=' the the '-I' when searching
-for libtirpc's rpc.h header.
-
-Upstream-Status: Inappropriate [old release]
-
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- m4/virt-xdr.m4 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/m4/virt-xdr.m4 b/m4/virt-xdr.m4
-index 8375415..12b51f7 100644
---- a/m4/virt-xdr.m4
-+++ b/m4/virt-xdr.m4
-@@ -30,10 +30,10 @@ AC_DEFUN([LIBVIRT_CHECK_XDR], [
- ])
- with_xdr="yes"
-
-- dnl Recent glibc requires -I/usr/include/tirpc for <rpc/rpc.h>
-+ dnl Recent glibc requires -I=/usr/include/tirpc for <rpc/rpc.h>
- old_CFLAGS=$CFLAGS
- AC_CACHE_CHECK([where to find <rpc/rpc.h>], [lv_cv_xdr_cflags], [
-- for add_CFLAGS in '' '-I/usr/include/tirpc' 'missing'; do
-+ for add_CFLAGS in '' '-I=/usr/include/tirpc' 'missing'; do
- if test x"$add_CFLAGS" = xmissing; then
- lv_cv_xdr_cflags=missing; break
- fi
diff --git a/recipes-extended/libvirt/libvirt/install-missing-file.patch b/recipes-extended/libvirt/libvirt/install-missing-file.patch
deleted file mode 100644
index 6aa36df..0000000
--- a/recipes-extended/libvirt/libvirt/install-missing-file.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From aa75f5136066d239d48a21373b3d96ee12378e8d Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Wed, 8 May 2019 17:24:17 +0800
-Subject: [PATCH] Install missing conf file
-
-openvzutilstest.conf file is needed by openvzutilstest test.
-
-Upstream-Status: Inapproriate
-
-Signed-off-by: Catalin Enache <catalin.enache@...>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@...>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- tests/Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 4a808dd..0c3e799 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -173,6 +173,7 @@ EXTRA_DIST = \
- $(NULL)
-
- test_helpers = commandhelper ssh
-+test_misc =
- test_programs = virshtest sockettest \
- virhostcputest virbuftest \
- commandtest seclabeltest \
-@@ -311,6 +312,7 @@ endif WITH_LXC
-
- if WITH_OPENVZ
- test_programs += openvzutilstest
-+test_misc += openvzutilstest.conf
- endif WITH_OPENVZ
-
- if WITH_ESX
-@@ -1551,7 +1553,7 @@ endif ! WITH_LINUX
-
- buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-
--PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+PTESTS = $(TESTS) $(test_helpers) $(test_misc) test-lib.sh virschematest
-
- install-ptest:
- list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
diff --git a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch b/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
deleted file mode 100644
index 558d5ef..0000000
--- a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From ad5d9cee87357f9f38f62583119606ef95ba10df Mon Sep 17 00:00:00 2001
-From: Bogdan Purcareata <bogdan.purcareata@...>
-Date: Fri, 24 May 2013 16:46:00 +0300
-Subject: [PATCH] Fix thread safety in LXC callback handling
-
-Signed-off-by: Bogdan Purcareata <bogdan.purcareata@...>
----
- src/lxc/lxc_process.c | 18 +++++++++++++++++-
- 1 file changed, 17 insertions(+), 1 deletion(-)
-
-diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
-index aaa81a7..0eadc67 100644
---- a/src/lxc/lxc_process.c
-+++ b/src/lxc/lxc_process.c
-@@ -609,8 +609,13 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- virLXCProtocolExitStatus status,
- virDomainObjPtr vm)
- {
-+ virLXCDriverPtr driver = lxc_driver;
- virLXCDomainObjPrivatePtr priv = vm->privateData;
-
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
- switch (status) {
- case VIR_LXC_PROTOCOL_EXIT_STATUS_SHUTDOWN:
- priv->stopReason = VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN;
-@@ -628,6 +633,8 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- }
- VIR_DEBUG("Domain shutoff reason %d (from status %d)",
- priv->stopReason, status);
-+
-+ virObjectUnlock(vm);
- }
-
- /* XXX a little evil */
-@@ -636,12 +643,21 @@ static void virLXCProcessMonitorInitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- pid_t initpid,
- virDomainObjPtr vm)
- {
-- virLXCDomainObjPrivatePtr priv = vm->privateData;
-+ virLXCDriverPtr driver = lxc_driver;
-+ virLXCDomainObjPrivatePtr priv;
-+
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
-+ priv = vm->privateData;
- priv->initpid = initpid;
- virDomainAuditInit(vm, initpid);
-
- if (virDomainSaveStatus(lxc_driver->caps, lxc_driver->stateDir, vm) < 0)
- VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name);
-+
-+ virObjectUnlock(vm);
- }
-
- static virLXCMonitorCallbacks monitorCallbacks = {
---
-1.7.11.7
-
diff --git a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch b/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
deleted file mode 100644
index 87b5591..0000000
--- a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 94bd514e1b6e602a48285db94e65050f8f0c2585 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@...>
-Date: Wed, 8 Apr 2015 13:03:03 -0400
-Subject: [PATCH] libvirt: use pkg-config to locate libcap
-
-libvirt wants to use pcap-config to locate the exisence and location
-of libpcap. oe-core stubs this script and replaces it with pkg-config,
-which can lead to the host pcap-config triggering and either breaking
-the build or introducing host contamination.
-
-To fix this issue, we patch configure to use 'pkg-config libcap' to
-locate the correct libraries.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-[MA: Update to apply agains v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- m4/virt-libpcap.m4 | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/m4/virt-libpcap.m4 b/m4/virt-libpcap.m4
-index 605c2fd..e0ab018 100644
---- a/m4/virt-libpcap.m4
-+++ b/m4/virt-libpcap.m4
-@@ -23,14 +23,14 @@ AC_DEFUN([LIBVIRT_ARG_LIBPCAP], [
-
- AC_DEFUN([LIBVIRT_CHECK_LIBPCAP], [
- LIBPCAP_REQUIRED="1.5.0"
-- LIBPCAP_CONFIG="pcap-config"
-+ LIBPCAP_CONFIG="pkg-config libpcap"
- LIBPCAP_CFLAGS=""
- LIBPCAP_LIBS=""
-
- if test "x$with_libpcap" != "xno"; then
- case $with_libpcap in
-- ''|yes|check) LIBPCAP_CONFIG="pcap-config" ;;
-- *) LIBPCAP_CONFIG="$with_libpcap/bin/pcap-config" ;;
-+ ''|yes|check) LIBPCAP_CONFIG="pkg-config libpcap" ;;
-+ *) LIBPCAP_CONFIG="$with_libpcap/bin/pkg-config libpcap" ;;
- esac
- AS_IF([test "x$LIBPCAP_CONFIG" != "x"], [
- AC_MSG_CHECKING(libpcap $LIBPCAP_CONFIG >= $LIBPCAP_REQUIRED )
diff --git a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch b/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
deleted file mode 100644
index 3cf9e83..0000000
--- a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 74bff2509080912ea8abf1de8fd95fa2412b659a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@...>
-Date: Thu, 11 Apr 2013 11:37:25 +0200
-Subject: [PATCH] qemu: fix crash in qemuOpen
-
-commit 74bff2509080912ea8abf1de8fd95fa2412b659a from upsteam
-git://libvirt.org/libvirt.git
-
-If the path part of connection URI is not present, cfg is used
-unitialized.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=950855
----
- src/qemu/qemu_driver.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
-index 2c0d7d1..0d41e39 100644
---- a/src/qemu/qemu_driver.c
-+++ b/src/qemu/qemu_driver.c
-@@ -1026,6 +1026,7 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-+ cfg = virQEMUDriverGetConfig(qemu_driver);
- if (conn->uri->path == NULL) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("no QEMU URI path given, try %s"),
-@@ -1033,7 +1034,6 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-- cfg = virQEMUDriverGetConfig(qemu_driver);
- if (cfg->privileged) {
- if (STRNEQ(conn->uri->path, "/system") &&
- STRNEQ(conn->uri->path, "/session")) {
---
-1.7.1
-
diff --git a/recipes-extended/libvirt/libvirt/runptest.patch b/recipes-extended/libvirt/libvirt/runptest.patch
deleted file mode 100644
index f6bc773..0000000
--- a/recipes-extended/libvirt/libvirt/runptest.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From d210838a4433dd254c1a11b08b804ebe9ff5f378 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Wed, 8 May 2019 10:20:47 +0800
-Subject: [PATCH] Add 'install-ptest' rule
-
-Change TESTS_ENVIRONMENT to allow running outside build dir.
-
-Upstream-status: Pending
-Signed-off-by: Mihaela Sendrea <mihaela.sendrea@...>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@...>
-[MA: Allow separate source and build dirs]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[ZH: add missing test_helper files]
-Signed-off-by: He Zhe <zhe.he@...>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- tests/Makefile.am | 68 +++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 60 insertions(+), 8 deletions(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index ada5b8f..4a808dd 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -28,11 +28,13 @@ AM_CPPFLAGS = \
-
- WARN_CFLAGS += $(RELAXED_FRAME_LIMIT_CFLAGS)
-
-+PTEST_DIR ?= $(libdir)/libvirt/ptest
-+
- AM_CFLAGS = \
-- -Dabs_builddir="\"$(abs_builddir)\"" \
-- -Dabs_top_builddir="\"$(abs_top_builddir)\"" \
-- -Dabs_srcdir="\"$(abs_srcdir)\"" \
-- -Dabs_top_srcdir="\"$(abs_top_srcdir)\"" \
-+ -Dabs_builddir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_builddir="\"$(PTEST_DIR)\"" \
-+ -Dabs_srcdir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_srcdir="\"$(PTEST_DIR)\"" \
- $(LIBXML_CFLAGS) \
- $(GLIB_CFLAGS) \
- $(LIBNL_CFLAGS) \
-@@ -474,10 +476,10 @@ TESTS = $(test_programs) \
-
- VIR_TEST_EXPENSIVE ?= $(VIR_TEST_EXPENSIVE_DEFAULT)
- TESTS_ENVIRONMENT = \
-- abs_top_builddir="$(abs_top_builddir)" \
-- abs_top_srcdir="$(abs_top_srcdir)" \
-- abs_builddir="$(abs_builddir)" \
-- abs_srcdir="$(abs_srcdir)" \
-+ abs_top_builddir="$(PTEST_DIR)" \
-+ abs_top_srcdir="$(PTEST_DIR)" \
-+ abs_builddir="$(PTEST_DIR)/tests" \
-+ abs_srcdir="$(PTEST_DIR)/tests" \
- LIBVIRT_AUTOSTART=0 \
- LC_ALL=C \
- VIR_TEST_EXPENSIVE=$(VIR_TEST_EXPENSIVE) \
-@@ -1547,4 +1549,54 @@ else ! WITH_LINUX
- EXTRA_DIST += virscsitest.c
- endif ! WITH_LINUX
-
-+buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-+
-+PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+
-+install-ptest:
-+ list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
-+ install -d $(DEST_DIR)/tools
-+ @(if [ -d ../tools/.libs ] ; then cd ../tools/.libs; fi; \
-+ install * $(DEST_DIR)/tools)
-+ install -d $(DEST_DIR)/src/network
-+ cp $(top_srcdir)/src/network/*.xml $(DEST_DIR)/src/network
-+ install -d $(DEST_DIR)/src/cpu_map
-+ cp $(top_srcdir)/src/cpu_map/*.xml $(DEST_DIR)/src/cpu_map
-+ install ../src/libvirt_iohelper $(DEST_DIR)/src
-+ install -D ../src/libvirtd $(DEST_DIR)/src/libvirtd
-+ install -d $(DEST_DIR)/src/remote
-+ install -D $(top_srcdir)/../build/src/remote/libvirtd.conf $(DEST_DIR)/src/remote/libvirtd.conf
-+ install -d $(DEST_DIR)/src/remote/.libs
-+ @(if [ -d ../src/remote/.libs ] ; then cd ../src/remote/.libs; fi; \
-+ install * $(DEST_DIR)/src/remote/.libs)
-+ install -d $(DEST_DIR)/src/.libs
-+ @(if [ -d ../src/.libs ] ; then cd ../src/.libs; fi; \
-+ install * $(DEST_DIR)/src/.libs)
-+ install -d $(DEST_DIR)/docs/schemas
-+ cp $(top_srcdir)/docs/schemas/*.rng $(DEST_DIR)/docs/schemas
-+ cp -r $(top_srcdir)/build-aux $(DEST_DIR)
-+ install -d $(DEST_DIR)/examples/xml
-+ cp -r $(top_srcdir)/examples/xml/test $(DEST_DIR)/examples/xml
-+ install -d $(DEST_DIR)/tests/.libs
-+ find . -type d -name "*xml2xml*" -exec cp -r {} $(DEST_DIR)/tests \;
-+ find . -type d -name "*data" -exec cp -r {} $(DEST_DIR)/tests \;
-+ @(for file in $(PTESTS); do \
-+ if [ -f .libs/$$file ]; then \
-+ install .libs/$$file $(DEST_DIR)/tests; \
-+ elif [ -f $(srcdir)/$$file ]; then \
-+ install $(srcdir)/$$file $(DEST_DIR)/tests; \
-+ else \
-+ install $(builddir)/$$file $(DEST_DIR)/tests; \
-+ fi; \
-+ done;)
-+ @(if [ -d .libs ]; then install .libs/*.so $(DEST_DIR)/tests/.libs; fi;)
-+ cp ../config.h $(DEST_DIR)
-+ cp Makefile $(DEST_DIR)/tests
-+ sed -i -e 's/^Makefile:/_Makefile:/' $(DEST_DIR)/tests/Makefile
-+ cp ../Makefile $(DEST_DIR)
-+ sed -i -e 's|^Makefile:|_Makefile:|' $(DEST_DIR)/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/tests/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/Makefile
-+ sed -i -e 's|^\(.*\.log:\) \(.*EXEEXT.*\)|\1|g' $(DEST_DIR)/tests/Makefile
-+
- CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
diff --git a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch b/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
deleted file mode 100644
index bb500fd..0000000
--- a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 7dc21edd851b260485b432c096f8e90f6fa07778 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Tue, 7 May 2019 15:26:32 +0800
-Subject: [PATCH] tools: add libvirt-net-rpc to virt-host-validate when TLS is
- enabled
-
-When gnu-tls is enabled for libvirt references to virNetTLSInit are
-generated in libvirt. Any binaries linking against libvirt, must also
-link against libvirt-net-rpc which provides the implementation.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@...>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[ddu: rebase to v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- examples/Makefile.am | 20 ++++++++++++++++++++
- tools/Makefile.am | 12 ++++++++++++
- 2 files changed, 32 insertions(+)
-
-diff --git a/examples/Makefile.am b/examples/Makefile.am
-index ad635bd..a94f41d 100644
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -74,6 +74,10 @@ LDADD = \
- $(top_builddir)/src/libvirt-admin.la \
- $(NULL)
-
-+if WITH_GNUTLS
-+LDADD += $(top_builddir)/src/libvirt-net-rpc.la
-+endif
-+
- noinst_PROGRAMS = \
- c/admin/client_close \
- c/admin/client_info \
-@@ -111,6 +115,22 @@ c_misc_openauth_SOURCES = c/misc/openauth.c
- examplesdir = $(docdir)/examples
-
- adminexamplesdir = $(examplesdir)/c/admin
-+
-+if WITH_GNUTLS
-+dominfo_info1_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+domsuspend_suspend_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+hellolibvirt_hellolibvirt_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+openauth_openauth_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+endif
-+
- adminexamples_DATA = $(ADMIN_EXAMPLES)
-
- domainexamplesdir = $(examplesdir)/c/domain
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 53df930..2a0a989 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -166,6 +166,12 @@ virt_host_validate_LDADD = \
- $(GLIB_LIBS) \
- $(NULL)
-
-+if WITH_GNUTLS
-+virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- virt_host_validate_CFLAGS = \
- $(AM_CFLAGS) \
- $(NULL)
-@@ -262,6 +268,12 @@ virt_admin_CFLAGS = \
- $(READLINE_CFLAGS)
- BUILT_SOURCES =
-
-+if WITH_GNUTLS
-+virsh_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- if WITH_WIN_ICON
- virsh_LDADD += virsh_win_icon.$(OBJEXT)
-
diff --git a/recipes-extended/libvirt/libvirt_6.3.0.bb b/recipes-extended/libvirt/libvirt_7.2.0.bb
similarity index 61%
rename from recipes-extended/libvirt/libvirt_6.3.0.bb
rename to recipes-extended/libvirt/libvirt_7.2.0.bb
index eeb1bf8..24748ef 100644
--- a/recipes-extended/libvirt/libvirt_6.3.0.bb
+++ b/recipes-extended/libvirt/libvirt_7.2.0.bb
@@ -1,7 +1,6 @@
DESCRIPTION = "A toolkit to interact with the virtualization capabilities of recent versions of Linux."
HOMEPAGE = "http://libvirt.org"
LICENSE = "LGPLv2.1+ & GPLv2+"
-LICENSE_${PN}-ptest = "GPLv2+ & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LESSER;md5=4b54a1fd55a448865a0b32d41598759d"
SECTION = "console/tools"
@@ -16,9 +15,7 @@ DEPENDS = "bridge-utils gnutls libxml2 lvm2 avahi parted curl libpcap util-linux
#
RDEPENDS_${PN} = "gettext-runtime"

-RDEPENDS_${PN}-ptest += "make gawk perl bash"
-
-RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd"
+RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd ebtables"
RDEPENDS_libvirt-libvirtd_append_x86-64 = " dmidecode"
RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"

@@ -26,88 +23,33 @@ RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"
RCONFLICTS_${PN}_libvirtd = "connman"

SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
- file://tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch \
file://libvirtd.sh \
file://libvirtd.conf \
file://dnsmasq.conf \
- file://runptest.patch \
- file://run-ptest \
- file://libvirt-use-pkg-config-to-locate-libcap.patch \
- file://0001-to-fix-build-error.patch \
- file://install-missing-file.patch \
- file://0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch \
- file://configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch \
- file://0001-build-drop-unnecessary-libgnu.la-reference.patch \
file://hook_support.py \
file://gnutls-helper.py \
"

-SRC_URI[libvirt.md5sum] = "1bd4435f77924f5ec9928b538daf4a02"
-SRC_URI[libvirt.sha256sum] = "74069438d34082336e99a88146349e21130552b96efc3b7c562f6878127996f5"
+SRC_URI[libvirt.md5sum] = "92044b629216e44adce63224970a54a3"
+SRC_URI[libvirt.sha256sum] = "01f459d0c7ba5009622a628dba1a026200e8f4a299fea783b936a71d7e0ed1d0"

-inherit autotools gettext update-rc.d pkgconfig ptest systemd useradd perlnative
+inherit meson gettext update-rc.d pkgconfig systemd useradd perlnative
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM_${PN} = "-r qemu; -r kvm"
USERADD_PARAM_${PN} = "-r -g qemu -G kvm qemu"

-# Override the default set in autotools.bbclass so that we will use relative pathnames
-# to our local m4 files. This prevents an "Argument list too long" error during configuration
-# if our project is in a directory with an absolute pathname of more than about 125 characters.
-#
-acpaths = "-I ./m4"
-
-CACHED_CONFIGUREVARS += "\
-ac_cv_path_XMLCATLOG=/usr/bin/xmlcatalog \
-ac_cv_path_AUGPARSE=/usr/bin/augparse \
-ac_cv_path_DMIDECODE=/usr/sbin/dmidecode \
-ac_cv_path_DNSMASQ=/usr/bin/dnsmasq \
-ac_cv_path_BRCTL=/usr/sbin/brctl \
-ac_cv_path_TC=/sbin/tc \
-ac_cv_path_UDEVADM=/sbin/udevadm \
-ac_cv_path_MODPROBE=/sbin/modprobe \
-ac_cv_path_IP_PATH=/bin/ip \
-ac_cv_path_IPTABLES_PATH=/usr/sbin/iptables \
-ac_cv_path_IP6TABLES_PATH=/usr/sbin/ip6tables \
-ac_cv_path_MOUNT=/bin/mount \
-ac_cv_path_UMOUNT=/bin/umount \
-ac_cv_path_MKFS=/usr/sbin/mkfs \
-ac_cv_path_SHOWMOUNT=/usr/sbin/showmount \
-ac_cv_path_PVCREATE=/usr/sbin/pvcreate \
-ac_cv_path_VGCREATE=/usr/sbin/vgcreate \
-ac_cv_path_LVCREATE=/usr/sbin/lvcreate \
-ac_cv_path_PVREMOVE=/usr/sbin/pvremove \
-ac_cv_path_VGREMOVE=/usr/sbin/vgremove \
-ac_cv_path_LVREMOVE=/usr/sbin/lvremove \
-ac_cv_path_LVCHANGE=/usr/sbin/lvchange \
-ac_cv_path_VGCHANGE=/usr/sbin/vgchange \
-ac_cv_path_VGSCAN=/usr/sbin/vgscan \
-ac_cv_path_PVS=/usr/sbin/pvs \
-ac_cv_path_VGS=/usr/sbin/vgs \
-ac_cv_path_LVS=/usr/sbin/lvs \
-ac_cv_path_PARTED=/usr/sbin/parted \
-ac_cv_path_DMSETUP=/usr/sbin/dmsetup"
-
-# Ensure that libvirt uses polkit rather than policykit, whether the host has
-# pkcheck installed or not, and ensure the path is correct per our config.
-CACHED_CONFIGUREVARS += "ac_cv_path_PKCHECK_PATH=${bindir}/pkcheck"
-
-# Some other possible paths we are not yet setting
-#ac_cv_path_RPCGEN=
-#ac_cv_path_XSLTPROC=
-#ac_cv_path_RADVD=
-#ac_cv_path_UDEVSETTLE=
-#ac_cv_path_EBTABLES_PATH=
-#ac_cv_path_PKG_CONFIG=
-#ac_cv_path_ac_pt_PKG_CONFIG
-#ac_cv_path_POLKIT_AUTH=
-#ac_cv_path_DTRACE=
-#ac_cv_path_ISCSIADM=
-#ac_cv_path_MSGFMT=
-#ac_cv_path_GMSGFMT=
-#ac_cv_path_XGETTEXT=
-#ac_cv_path_MSGMERGE=
-#ac_cv_path_SCRUB=
-#ac_cv_path_PYTHON=
+
+EXTRA_OEMESON += "--cross-file ${WORKDIR}/meson-${PN}.cross"
+do_write_config_append() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+iptables = '/usr/sbin/iptables'
+ip6tables = '/usr/sbin/ip6tables'
+dmidecode = '/usr/sbin/dmidecode'
+ebtables = '/sbin/ebtables'
+dnsmasq = '/usr/bin/dnsmasq'
+EOF
+}

ALLOW_EMPTY_${PN} = "1"

@@ -167,31 +109,12 @@ SYSTEMD_SERVICE_${PN}-libvirtd = " \
virtlockd.socket \
"

-
-PRIVATE_LIBS_${PN}-ptest = " \
- libvirt-lxc.so.0 \
- libvirt.so.0 \
- libvirt-qemu.so.0 \
- lockd.so \
- libvirt_driver_secret.so \
- libvirt_driver_nodedev.so \
- libvirt_driver_vbox.so \
- libvirt_driver_interface.so \
- libvirt_driver_uml.so \
- libvirt_driver_network.so \
- libvirt_driver_nwfilter.so \
- libvirt_driver_qemu.so \
- libvirt_driver_storage.so \
- libvirt_driver_lxc.so \
- "
-
# xen-minimal config
#PACKAGECONFIG ??= "xen libxl xen-inotify test remote libvirtd"

# full config
-PACKAGECONFIG ??= "qemu yajl openvz vmware vbox esx iproute2 lxc test \
- remote macvtap libvirtd netcf udev python ebtables \
- fuse iproute2 firewalld libpcap \
+PACKAGECONFIG ??= "gnutls qemu yajl openvz vmware vbox esx lxc test remote \
+ libvirtd netcf udev python fuse firewalld libpcap \
${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit libcap-ng', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'libxl', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'polkit', '', d)} \
@@ -208,37 +131,34 @@ PACKAGECONFIG_remove_armeb = "numactl"
# enable,disable,depends,rdepends
#
PACKAGECONFIG[gnutls] = ",,,gnutls-bin"
-PACKAGECONFIG[qemu] = "--with-qemu --with-qemu-user=qemu --with-qemu-group=qemu,--without-qemu,qemu,"
-PACKAGECONFIG[yajl] = "--with-yajl,--without-yajl,yajl,yajl"
-PACKAGECONFIG[libxl] = "--with-libxl=${STAGING_DIR_TARGET}/lib,--without-libxl,xen,"
-PACKAGECONFIG[openvz] = "--with-openvz,--without-openvz,,"
-PACKAGECONFIG[vmware] = "--with-vmware,--without-vmware,,"
-PACKAGECONFIG[vbox] = "--with-vbox,--without-vbox,,"
-PACKAGECONFIG[esx] = "--with-esx,--without-esx,,"
-PACKAGECONFIG[hyperv] = "--with-hyperv,--without-hyperv,,"
-PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit,polkit"
-PACKAGECONFIG[lxc] = "--with-lxc,--without-lxc, lxc,"
-PACKAGECONFIG[test] = "--with-test=yes,--with-test=no,,"
-PACKAGECONFIG[remote] = "--with-remote,--without-remote,,"
-PACKAGECONFIG[macvtap] = "--with-macvtap=yes,--with-macvtap=no,libnl,libnl"
-PACKAGECONFIG[libvirtd] = "--with-libvirtd,--without-libvirtd,,"
-PACKAGECONFIG[netcf] = "--with-netcf,--without-netcf,netcf,netcf"
-PACKAGECONFIG[dtrace] = "--with-dtrace,--without-dtrace,,"
-PACKAGECONFIG[udev] = "--with-udev --with-pciaccess,--without-udev,udev libpciaccess,"
-PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux,"
-PACKAGECONFIG[ebtables] = "ac_cv_path_EBTABLES_PATH=/sbin/ebtables,ac_cv_path_EBTABLES_PATH=,ebtables,ebtables"
+PACKAGECONFIG[qemu] = "-Ddriver_qemu=enabled -Dqemu_user=qemu -Dqemu_group=qemu,-Ddriver_qemu=disabled,qemu,"
+PACKAGECONFIG[yajl] = "-Dyajl=enabled,-Dyajl=disabled,yajl,yajl"
+PACKAGECONFIG[libxl] = "-Ddriver_libxl=enabled,-Ddriver_libxl=disabled,xen,"
+PACKAGECONFIG[openvz] = "-Ddriver_openvz=enabled,-Ddriver_openvz=disabled,,"
+PACKAGECONFIG[vmware] = "-Ddriver_vmware=enabled,-Ddriver_vmware=disabled,,"
+PACKAGECONFIG[vbox] = "-Ddriver_vbox=enabled,-Ddriver_vbox=disabled,,"
+PACKAGECONFIG[esx] = "-Ddriver_esx=enabled,-Ddriver_esx=disabled,,"
+PACKAGECONFIG[hyperv] = "-Ddriver_hyperv=enabled,-Ddriver_hyperv=disabled,,"
+PACKAGECONFIG[polkit] = "-Dpolkit=enabled,-Dpolkit=disabled,polkit,polkit"
+PACKAGECONFIG[lxc] = "-Ddriver_lxc=enabled,-Ddriver_lxc=disabled,lxc,"
+PACKAGECONFIG[test] = "-Ddriver_test=enabled,-Ddriver_test=disabled,,"
+PACKAGECONFIG[remote] = "-Ddriver_remote=enabled,-Ddriver_remote=disabled,,"
+PACKAGECONFIG[libvirtd] = "-Ddriver_libvirtd=enabled,-Ddriver_libvirtd=disabled,,"
+PACKAGECONFIG[netcf] = "-Dnetcf=enabled,-Dnetcf=disabled,netcf,netcf"
+PACKAGECONFIG[dtrace] = "-Ddtrace=enabled,-Ddtrace=disabled,,"
+PACKAGECONFIG[udev] = "-Dudev=enabled -Dpciaccess=enabled,-Dudev=disabled,udev libpciaccess,"
+PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux,"
PACKAGECONFIG[python] = ",,python3,"
-PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,cyrus-sasl"
-PACKAGECONFIG[iproute2] = "ac_cv_path_IP_PATH=/sbin/ip,ac_cv_path_IP_PATH=,iproute2,iproute2"
-PACKAGECONFIG[numactl] = "--with-numactl,--without-numactl,numactl,"
-PACKAGECONFIG[fuse] = "--with-fuse,--without-fuse,fuse,"
-PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit,"
-PACKAGECONFIG[libcap-ng] = "--with-capng,--without-capng,libcap-ng,"
-PACKAGECONFIG[wireshark] = "--with-wireshark-dissector,--without-wireshark-dissector,wireshark libwsutil,"
-PACKAGECONFIG[apparmor-profiles] = "--with-apparmor-profiles, --without-apparmor-profiles,"
-PACKAGECONFIG[firewalld] = "--with-firewalld, --without-firewalld,"
-PACKAGECONFIG[libpcap] = "--with-libpcap, --without-libpcap,libpcap,libpcap"
-PACKAGECONFIG[numad] = "--with-numad, --without-numad,"
+PACKAGECONFIG[sasl] = "-Dsasl=enabled,-Dsasl=disabled,cyrus-sasl,cyrus-sasl"
+PACKAGECONFIG[numactl] = "-Dnumactl=enabled,-Dnumactl=disabled,numactl,"
+PACKAGECONFIG[fuse] = "-Dfuse=enabled,-Dfuse=disabled,fuse,"
+PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit,"
+PACKAGECONFIG[libcap-ng] = "-Dcapng=enabled,-Dcapng=disabled,libcap-ng,"
+PACKAGECONFIG[wireshark] = "-Dwireshark_dissector=enabled,-Dwireshark_dissector=disabled,wireshark libwsutil,"
+PACKAGECONFIG[apparmor_profiles] = "-Dapparmor_profiles=true, -Dapparmor_profiles=false,"
+PACKAGECONFIG[firewalld] = "-Dfirewalld=enabled, -Dfirewalld=disabled,"
+PACKAGECONFIG[libpcap] = "-Dlibpcap=enabled, -Dlibpcap=disabled,libpcap,libpcap"
+PACKAGECONFIG[numad] = "-Dnumad=enabled, -Dnumad=disabled,"

# Enable the Python tool support
require libvirt-python.inc
@@ -255,7 +175,7 @@ do_compile() {

cd ${B}
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${B}/src:"
- oe_runmake all
+ ninja all
}

do_install_prepend() {
@@ -278,6 +198,8 @@ do_install_append() {
fi

if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ mkdir -p ${D}/lib
+ mv ${D}/usr/lib/systemd ${D}/lib
# This variable is used by libvirtd.service to start libvirtd in the right mode
sed -i '/#LIBVIRTD_ARGS="--listen"/a LIBVIRTD_ARGS="--listen --daemon"' ${D}/${sysconfdir}/sysconfig/libvirtd

@@ -285,6 +207,8 @@ do_install_append() {
sed -i -e 's/Type=notify/Type=forking/' \
-e '/Type=forking/a PIDFile=/run/libvirtd.pid' \
${D}/${systemd_unitdir}/system/libvirtd.service
+ else
+ rm -rf ${D}/usr/lib/systemd
fi

# The /run/libvirt directories created by the Makefile are
@@ -360,7 +284,7 @@ do_install_append() {
# connection via 127.0.0.1 is available out of box.
install -d ${D}/etc/pki/CA
install -d ${D}/etc/pki/libvirt/private
- install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
+ install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
install -m 0644 ${WORKDIR}/cakey.pem ${D}/${sysconfdir}/pki/libvirt/private/cakey.pem
install -m 0644 ${WORKDIR}/cacert.pem ${D}/${sysconfdir}/pki/CA/cacert.pem
install -m 0644 ${WORKDIR}/serverkey.pem ${D}/${sysconfdir}/pki/libvirt/private/serverkey.pem
@@ -376,10 +300,10 @@ do_install_append() {
chmod 4755 ${D}${bindir}/virt-login-shell
}

-EXTRA_OECONF += " \
- --with-init-script=systemd \
- --with-test-suite \
- --with-runstatedir=/run \
+EXTRA_OEMESON += " \
+ -Dinit_script=systemd \
+ -Drunstatedir=/run \
+ -Dtests=enabled \
"

# gcc9 end up mis-compiling qemuxml2argvtest.o with Og which then
@@ -387,25 +311,6 @@ EXTRA_OECONF += " \
SELECTED_OPTIMIZATION_remove_virtclass-multilib-lib32_mipsarch = "-Og"
SELECTED_OPTIMIZATION_append_virtclass-multilib-lib32_mipsarch = " -O2"

-EXTRA_OEMAKE = "BUILD_DIR=${B} DEST_DIR=${D}${PTEST_PATH} PTEST_DIR=${PTEST_PATH} SYSTEMD_UNIT_DIR=${systemd_system_unitdir}"
-
-PRIVATE_LIBS_${PN}-ptest_append = "libvirt-admin.so.0"
-
-do_compile_ptest() {
- oe_runmake -C tests buildtest-TESTS
-}
-
-do_install_ptest() {
- oe_runmake -C tests install-ptest
-
- find ${S}/tests -maxdepth 1 -type d -exec cp -r {} ${D}${PTEST_PATH}/tests/ \;
-
- # remove .la files for ptest, they aren't required and can trigger QA errors
- for i in `find ${D}${PTEST_PATH} -type f \( -name *.la -o -name *.o \)`; do
- rm -f $i
- done
-}
-
pkg_postinst_${PN}() {
if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
/etc/init.d/populate-volatile.sh update
--
2.27.0


Re: devtool modify docker failure

Bruce Ashfield
 

On Thu, Apr 22, 2021 at 6:53 AM <s.anandje1@...> wrote:

Hi,



I have made my yocto setup successfully.

The layers I have included is:

$ cat conf/bblayers.conf

${TOPDIR}/../poky/meta \

${TOPDIR}/../poky/meta-poky \

${TOPDIR}/../poky/meta-yocto-bsp \

${TOPDIR}/../layers/meta-openembedded/meta-filesystems \

${TOPDIR}/../layers/meta-openembedded/meta-networking \

/${TOPDIR}/../layers/meta-openembedded/meta-oe \

${TOPDIR}/../layers/meta-openembedded/meta-perl \

${TOPDIR}/../layers/meta-openembedded/meta-python \

${TOPDIR}/../layers/meta-virtualization \



I want to work on docker source code so I thought of fetching the source code from devtool.

But while I'm using devtool I'm facing an issue.



$ devtool modify --no-same-dir --extract docker-ce workspace/sources/docker

ERROR: Command Error: 'sh -c 'PATCHFILE="0001-libnetwork-use-GO-instead-of-go.patch" git -c user.name="OpenEmbedded" -c user.email="oe.patch@oe" commit -F /tmp/tmps5pr6pui --author="Bruce Ashfield <bruce.ashfield@...>" --date="Fri, 6 Apr 2018 23:58:22 -0400"'' exited with 0 Output:

On branch devtool

Changes not staged for commit:

(use "git add <file>..." to update what will be committed)

(use "git restore <file>..." to discard changes in working directory)

(commit or discard the untracked or modified content in submodules)

modified: libnetwork (modified content)



no changes added to commit (use "git add" and/or "git commit -a")

ERROR: Logfile of failure stored in: ${TOPDIR}/build/tmp/work/core2-64-poky-linux/docker-ce/19.03.8-ce+gitafacb8b7f0d8d4f9d2a8e8736e9c993e672b41f3-r0/devtooltmp-lnnatl98/temp/log.do_patch.27786



Is there any workaround to overcome this error?
You'd be better off asking on the oe-core mailing list. We don't do
anything specific in the docker recipe that is known to break devtool,
so it would be something generally wrong with devtool .. that and
you'll get a wider audience of potential devtool users.

I've never used devtool when working with sources, so I can't offer
any specific advice.

Cheers,

Bruce



Thanks & Regards

Anand




--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Re: devtool modify docker failure

@AnandJE
 

Hi,

 

I have made my yocto setup successfully.

The layers I have included is:

$ cat conf/bblayers.conf

  ${TOPDIR}/../poky/meta \

  ${TOPDIR}/../poky/meta-poky \

  ${TOPDIR}/../poky/meta-yocto-bsp \

  ${TOPDIR}/../layers/meta-openembedded/meta-filesystems \

  ${TOPDIR}/../layers/meta-openembedded/meta-networking \

  /${TOPDIR}/../layers/meta-openembedded/meta-oe \

  ${TOPDIR}/../layers/meta-openembedded/meta-perl \

  ${TOPDIR}/../layers/meta-openembedded/meta-python \

  ${TOPDIR}/../layers/meta-virtualization \

 

I want to work on docker source code so I thought of fetching the source code from devtool.

But while I'm using devtool I'm facing an issue.

 

$ devtool modify --no-same-dir --extract docker-ce workspace/sources/docker

ERROR: Command Error: 'sh -c 'PATCHFILE="0001-libnetwork-use-GO-instead-of-go.patch" git -c user.name="OpenEmbedded" -c user.email="oe.patch@oe" commit -F /tmp/tmps5pr6pui --author="Bruce Ashfield <bruce.ashfield@...>" --date="Fri, 6 Apr 2018 23:58:22 -0400"'' exited with 0  Output:

On branch devtool

Changes not staged for commit:

  (use "git add <file>..." to update what will be committed)

  (use "git restore <file>..." to discard changes in working directory)

  (commit or discard the untracked or modified content in submodules)

modified:   libnetwork (modified content)

 

no changes added to commit (use "git add" and/or "git commit -a")

ERROR: Logfile of failure stored in: ${TOPDIR}/build/tmp/work/core2-64-poky-linux/docker-ce/19.03.8-ce+gitafacb8b7f0d8d4f9d2a8e8736e9c993e672b41f3-r0/devtooltmp-lnnatl98/temp/log.do_patch.27786

 

Is there any workaround to overcome this error?

 

Thanks & Regards

Anand


Re: [PATCH v3] libvirt: uprev v6.3 -> v7.2

Bruce Ashfield
 

v3 looks better!

I did have it fail to apply to my master branch, so make sure that you are
on the tip of master (I pushed what I have to master-next for your reference).

I build with the 'xen' distro feature enabled when testing, and ran into this
error:

ERROR: libvirt-7.2.0-r0 do_configure: QA Issue: libvirt: configure was
passed unrecognised options: libxl [unknown-configure-option]
ERROR: libvirt-7.2.0-r0 do_configure: Fatal QA errors found, failing task.
ERROR: Logfile of failure stored in:
/opt/poky/build/tmp/work/core2-64-poky-linux/libvirt/7.2.0-r0/temp/log.do_configure.41162
ERROR: Task (/home/bruce/poky/meta-virtualization/recipes-extended/libvirt/libvirt_7.2.0.bb:do_configure)
failed with exit code '1'

Should be an easy enough fix, either the option has been dropped, or
renamed .. I didn't actually check which it was.

I'll wait for v4, before considering it for merge.

Bruce

On Wed, Apr 21, 2021 at 5:36 AM <yanfei.xu@...> wrote:

From: Yanfei Xu <yanfei.xu@...>

This upgrade spans 9 small release. The detailed realese logs could
refer to: https://gitlab.com/libvirt/libvirt/-/blob/master/NEWS.rst

Libvirt's buildsystem has changed to meson, So this upgrade drop some
obsolete patches applied to makefile.

I ran libvirt testcase and ovs testcase for this upgrade, the summary
as follow:

libvirt_test (keyword: ) test results:
*1 Run libvirt_test testing(do_test1) PASS
*2 Check result (virsh_local_capabilities) PASS
*3 Check result (virsh_local_domcapabilities) PASS
*4 Check result (virsh_local_freecell) PASS
*5 Check result (virsh_local_help) PASS
*6 Check result (virsh_local_hostname) PASS
*7 Check result (virsh_local_iface-begin) PASS
*8 Check result (virsh_local_iface-commit) PASS
*9 Check result (virsh_local_iface-list) PASS
*10 Check result (virsh_local_list) PASS
*11 Check result (virsh_local_maxvcpus) PASS
*12 Check result (virsh_local_net-list) PASS
*13 Check result (virsh_local_nodecpumap) PASS
*14 Check result (virsh_local_nodecpustats) PASS
*15 Check result (virsh_local_nodedev-list) PASS
*16 Check result (virsh_local_nodeinfo) PASS
*17 Check result (virsh_local_node-memory-tune) PASS
*18 Check result (virsh_local_nodememstats) PASS
*19 Check result (virsh_local_nwfilter-binding-list) PASS
*20 Check result (virsh_local_nwfilter-list) PASS
*21 Check result (virsh_local_pool-capabilities) PASS
*22 Check result (virsh_local_pool-list) PASS
*23 Check result (virsh_local_pwd) PASS
*24 Check result (virsh_local_secret-list) PASS
*25 Check result (virsh_local_sysinfo) PASS
*26 Check result (virsh_local_uri) PASS
*27 Check result (virsh_local_version) PASS

openvswitch_vm2vm (keyword: qemux86) test results:
*1 openvswitch_vm2vm testing(do_test1) PASS
*2 Check result (ovs_vm2vm_boot_guest1) PASS
*3 Check result (ovs_vm2vm_boot_guest2) PASS
*4 Check result (ovs_vm2vm_netperf_test) PASS
*5 Check result (ovs_vm2vm_destroy_guest1) PASS
*6 Check result (ovs_vm2vm_destroy_guest2) PASS
*7 check testcase call trace(do_check_call_trace) PASS

Signed-off-by: Yanfei Xu <yanfei.xu@...>
---
v1-->v2:
1.fix build failure caused by "getent".
2.fix apply failure.
3.drop ptest configurations in libvirt_7.2.0.bb
4.add test log in commit messages.

v2-->v3:
1.replace the option list with "--cross-file=" to specify the
binaries path.

conf/layer.conf | 2 +
recipes-extended/libvirt/libvirt-python.inc | 4 +-
...drop-unnecessary-libgnu.la-reference.patch | 31 ---
.../libvirt/0001-to-fix-build-error.patch | 47 ----
...-search-for-rpc-rpc.h-in-the-sysroot.patch | 34 ---
.../libvirt/install-missing-file.patch | 50 -----
...read-safety-in-lxc-callback-handling.patch | 63 ------
...virt-use-pkg-config-to-locate-libcap.patch | 43 ----
.../libvirt/qemu-fix-crash-in-qemuOpen.patch | 39 ----
.../libvirt/libvirt/runptest.patch | 116 ----------
...t-net-rpc-to-virt-host-validate-when.patch | 91 --------
.../{libvirt_6.3.0.bb => libvirt_7.2.0.bb} | 204 +++++-------------
12 files changed, 57 insertions(+), 667 deletions(-)
delete mode 100644 recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
delete mode 100644 recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
delete mode 100644 recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
delete mode 100644 recipes-extended/libvirt/libvirt/install-missing-file.patch
delete mode 100644 recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
delete mode 100644 recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
delete mode 100644 recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
delete mode 100644 recipes-extended/libvirt/libvirt/runptest.patch
delete mode 100644 recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
rename recipes-extended/libvirt/{libvirt_6.3.0.bb => libvirt_7.2.0.bb} (61%)

diff --git a/conf/layer.conf b/conf/layer.conf
index cfc735d8..894a4946 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -68,3 +68,5 @@ K8S_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/k8s-versions.inc"
USER_CLASSES_append = " meta-virt-cfg"
USER_CLASSES_append = " meta-virt-k8s-cfg"
USER_CLASSES_append = " meta-virt-xen-cfg"
+
+HOSTTOOLS_NONFATAL += "getent"
diff --git a/recipes-extended/libvirt/libvirt-python.inc b/recipes-extended/libvirt/libvirt-python.inc
index bcd76572..0c661af8 100644
--- a/recipes-extended/libvirt/libvirt-python.inc
+++ b/recipes-extended/libvirt/libvirt-python.inc
@@ -17,8 +17,8 @@ FILES_${PN}-python = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"

SRC_URI += "http://libvirt.org/sources/python/libvirt-python-${PV}.tar.gz;name=libvirt_python"

-SRC_URI[libvirt_python.md5sum] = "4cf898350ee9a47f94986d402c153bdb"
-SRC_URI[libvirt_python.sha256sum] = "c772421ecc144f098f4ab15db700c62db9b9e6e76b876217edcfd62e9ce02750"
+SRC_URI[libvirt_python.md5sum] = "19bf22414a43d358581b9259b52047a7"
+SRC_URI[libvirt_python.sha256sum] = "c0c3bac54c55622e17927b09cd9843869600d71842fb072c99491fe2608dcee7"

export LIBVIRT_API_PATH = "${S}/docs/libvirt-api.xml"
export LIBVIRT_CFLAGS = "-I${S}/include"
diff --git a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch b/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
deleted file mode 100644
index f02a5d64..00000000
--- a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 30a056069cb35804434fb036e51ae97f33c02025 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@...>
-Date: Sat, 7 Mar 2020 21:36:27 -0500
-Subject: [PATCH] build: drop unnecessary libgnu.la reference
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-
----
- tools/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 2a0a989..93fe283 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -168,7 +168,6 @@ virt_host_validate_LDADD = \
-
- if WITH_GNUTLS
- virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
-@@ -270,7 +269,6 @@ BUILT_SOURCES =
-
- if WITH_GNUTLS
- virsh_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
diff --git a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch b/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
deleted file mode 100644
index b0148e5c..00000000
--- a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 3566bcacaa6408fb8f655d1749a20b2f30e0c765 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@...>
-Date: Fri, 31 Jul 2015 03:17:07 +0900
-Subject: [PATCH] to fix build error
-
-The error likes as following
-
-| Generating internals/command.html.tmp
-| /bin/sh: line 3: internals/command.html.tmp: No such file or directory
-| rm: Generating internals/locking.html.tmp
-| cannot remove `internals/command.html.tmp': No such file or directory
-| make[3]: *** [internals/command.html.tmp] Error 1
-| make[3]: *** Waiting for unfinished jobs....
-
-Signed-off-by: Lei Maohui <leimaohui@...>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@...>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- docs/Makefile.am | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/docs/Makefile.am b/docs/Makefile.am
-index ce3d296..2c8180f 100644
---- a/docs/Makefile.am
-+++ b/docs/Makefile.am
-@@ -366,7 +366,7 @@ EXTRA_DIST= \
- aclperms.htmlinc \
- $(schema_DATA)
-
--acl_generated = aclperms.htmlinc
-+acl.html:: $(srcdir)/aclperms.htmlinc
-
- aclperms.htmlinc: $(top_srcdir)/src/access/viraccessperm.h \
- $(top_srcdir)/scripts/genaclperms.py Makefile.am
-@@ -432,8 +432,7 @@ manpages/%.html.in: manpages/%.rst
- $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \
- $(RST2HTML) --strict $< > $@ || { rm $@ && exit 1; }
-
--%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \
-- $(acl_generated)
-+%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl
- $(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \
- genhtmlin=`echo $@ | sed -e 's/.tmp/.in/'`; \
- rst=`echo $@ | sed -e 's/.html.tmp/.rst/'`; \
diff --git a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch b/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
deleted file mode 100644
index 395d5610..00000000
--- a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 79f5975db01af0599860ccca7ef44b0e27105a04 Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@...>
-Date: Thu, 10 May 2018 12:05:04 -0400
-Subject: [PATCH] configure.ac: search for rpc/rpc.h in the sysroot
-
-We want to avoid host contamination and use the sysroot as the base
-directory for our search so add the '=' the the '-I' when searching
-for libtirpc's rpc.h header.
-
-Upstream-Status: Inappropriate [old release]
-
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- m4/virt-xdr.m4 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/m4/virt-xdr.m4 b/m4/virt-xdr.m4
-index 8375415..12b51f7 100644
---- a/m4/virt-xdr.m4
-+++ b/m4/virt-xdr.m4
-@@ -30,10 +30,10 @@ AC_DEFUN([LIBVIRT_CHECK_XDR], [
- ])
- with_xdr="yes"
-
-- dnl Recent glibc requires -I/usr/include/tirpc for <rpc/rpc.h>
-+ dnl Recent glibc requires -I=/usr/include/tirpc for <rpc/rpc.h>
- old_CFLAGS=$CFLAGS
- AC_CACHE_CHECK([where to find <rpc/rpc.h>], [lv_cv_xdr_cflags], [
-- for add_CFLAGS in '' '-I/usr/include/tirpc' 'missing'; do
-+ for add_CFLAGS in '' '-I=/usr/include/tirpc' 'missing'; do
- if test x"$add_CFLAGS" = xmissing; then
- lv_cv_xdr_cflags=missing; break
- fi
diff --git a/recipes-extended/libvirt/libvirt/install-missing-file.patch b/recipes-extended/libvirt/libvirt/install-missing-file.patch
deleted file mode 100644
index 6aa36df8..00000000
--- a/recipes-extended/libvirt/libvirt/install-missing-file.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From aa75f5136066d239d48a21373b3d96ee12378e8d Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Wed, 8 May 2019 17:24:17 +0800
-Subject: [PATCH] Install missing conf file
-
-openvzutilstest.conf file is needed by openvzutilstest test.
-
-Upstream-Status: Inapproriate
-
-Signed-off-by: Catalin Enache <catalin.enache@...>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@...>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- tests/Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 4a808dd..0c3e799 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -173,6 +173,7 @@ EXTRA_DIST = \
- $(NULL)
-
- test_helpers = commandhelper ssh
-+test_misc =
- test_programs = virshtest sockettest \
- virhostcputest virbuftest \
- commandtest seclabeltest \
-@@ -311,6 +312,7 @@ endif WITH_LXC
-
- if WITH_OPENVZ
- test_programs += openvzutilstest
-+test_misc += openvzutilstest.conf
- endif WITH_OPENVZ
-
- if WITH_ESX
-@@ -1551,7 +1553,7 @@ endif ! WITH_LINUX
-
- buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-
--PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+PTESTS = $(TESTS) $(test_helpers) $(test_misc) test-lib.sh virschematest
-
- install-ptest:
- list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
diff --git a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch b/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
deleted file mode 100644
index 558d5ef6..00000000
--- a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From ad5d9cee87357f9f38f62583119606ef95ba10df Mon Sep 17 00:00:00 2001
-From: Bogdan Purcareata <bogdan.purcareata@...>
-Date: Fri, 24 May 2013 16:46:00 +0300
-Subject: [PATCH] Fix thread safety in LXC callback handling
-
-Signed-off-by: Bogdan Purcareata <bogdan.purcareata@...>
----
- src/lxc/lxc_process.c | 18 +++++++++++++++++-
- 1 file changed, 17 insertions(+), 1 deletion(-)
-
-diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
-index aaa81a7..0eadc67 100644
---- a/src/lxc/lxc_process.c
-+++ b/src/lxc/lxc_process.c
-@@ -609,8 +609,13 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- virLXCProtocolExitStatus status,
- virDomainObjPtr vm)
- {
-+ virLXCDriverPtr driver = lxc_driver;
- virLXCDomainObjPrivatePtr priv = vm->privateData;
-
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
- switch (status) {
- case VIR_LXC_PROTOCOL_EXIT_STATUS_SHUTDOWN:
- priv->stopReason = VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN;
-@@ -628,6 +633,8 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- }
- VIR_DEBUG("Domain shutoff reason %d (from status %d)",
- priv->stopReason, status);
-+
-+ virObjectUnlock(vm);
- }
-
- /* XXX a little evil */
-@@ -636,12 +643,21 @@ static void virLXCProcessMonitorInitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- pid_t initpid,
- virDomainObjPtr vm)
- {
-- virLXCDomainObjPrivatePtr priv = vm->privateData;
-+ virLXCDriverPtr driver = lxc_driver;
-+ virLXCDomainObjPrivatePtr priv;
-+
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
-+ priv = vm->privateData;
- priv->initpid = initpid;
- virDomainAuditInit(vm, initpid);
-
- if (virDomainSaveStatus(lxc_driver->caps, lxc_driver->stateDir, vm) < 0)
- VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name);
-+
-+ virObjectUnlock(vm);
- }
-
- static virLXCMonitorCallbacks monitorCallbacks = {
---
-1.7.11.7
-
diff --git a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch b/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
deleted file mode 100644
index 87b55915..00000000
--- a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 94bd514e1b6e602a48285db94e65050f8f0c2585 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@...>
-Date: Wed, 8 Apr 2015 13:03:03 -0400
-Subject: [PATCH] libvirt: use pkg-config to locate libcap
-
-libvirt wants to use pcap-config to locate the exisence and location
-of libpcap. oe-core stubs this script and replaces it with pkg-config,
-which can lead to the host pcap-config triggering and either breaking
-the build or introducing host contamination.
-
-To fix this issue, we patch configure to use 'pkg-config libcap' to
-locate the correct libraries.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-[MA: Update to apply agains v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- m4/virt-libpcap.m4 | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/m4/virt-libpcap.m4 b/m4/virt-libpcap.m4
-index 605c2fd..e0ab018 100644
---- a/m4/virt-libpcap.m4
-+++ b/m4/virt-libpcap.m4
-@@ -23,14 +23,14 @@ AC_DEFUN([LIBVIRT_ARG_LIBPCAP], [
-
- AC_DEFUN([LIBVIRT_CHECK_LIBPCAP], [
- LIBPCAP_REQUIRED="1.5.0"
-- LIBPCAP_CONFIG="pcap-config"
-+ LIBPCAP_CONFIG="pkg-config libpcap"
- LIBPCAP_CFLAGS=""
- LIBPCAP_LIBS=""
-
- if test "x$with_libpcap" != "xno"; then
- case $with_libpcap in
-- ''|yes|check) LIBPCAP_CONFIG="pcap-config" ;;
-- *) LIBPCAP_CONFIG="$with_libpcap/bin/pcap-config" ;;
-+ ''|yes|check) LIBPCAP_CONFIG="pkg-config libpcap" ;;
-+ *) LIBPCAP_CONFIG="$with_libpcap/bin/pkg-config libpcap" ;;
- esac
- AS_IF([test "x$LIBPCAP_CONFIG" != "x"], [
- AC_MSG_CHECKING(libpcap $LIBPCAP_CONFIG >= $LIBPCAP_REQUIRED )
diff --git a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch b/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
deleted file mode 100644
index 3cf9e839..00000000
--- a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 74bff2509080912ea8abf1de8fd95fa2412b659a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@...>
-Date: Thu, 11 Apr 2013 11:37:25 +0200
-Subject: [PATCH] qemu: fix crash in qemuOpen
-
-commit 74bff2509080912ea8abf1de8fd95fa2412b659a from upsteam
-git://libvirt.org/libvirt.git
-
-If the path part of connection URI is not present, cfg is used
-unitialized.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=950855
----
- src/qemu/qemu_driver.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
-index 2c0d7d1..0d41e39 100644
---- a/src/qemu/qemu_driver.c
-+++ b/src/qemu/qemu_driver.c
-@@ -1026,6 +1026,7 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-+ cfg = virQEMUDriverGetConfig(qemu_driver);
- if (conn->uri->path == NULL) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("no QEMU URI path given, try %s"),
-@@ -1033,7 +1034,6 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-- cfg = virQEMUDriverGetConfig(qemu_driver);
- if (cfg->privileged) {
- if (STRNEQ(conn->uri->path, "/system") &&
- STRNEQ(conn->uri->path, "/session")) {
---
-1.7.1
-
diff --git a/recipes-extended/libvirt/libvirt/runptest.patch b/recipes-extended/libvirt/libvirt/runptest.patch
deleted file mode 100644
index f6bc7736..00000000
--- a/recipes-extended/libvirt/libvirt/runptest.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From d210838a4433dd254c1a11b08b804ebe9ff5f378 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Wed, 8 May 2019 10:20:47 +0800
-Subject: [PATCH] Add 'install-ptest' rule
-
-Change TESTS_ENVIRONMENT to allow running outside build dir.
-
-Upstream-status: Pending
-Signed-off-by: Mihaela Sendrea <mihaela.sendrea@...>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@...>
-[MA: Allow separate source and build dirs]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[ZH: add missing test_helper files]
-Signed-off-by: He Zhe <zhe.he@...>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- tests/Makefile.am | 68 +++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 60 insertions(+), 8 deletions(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index ada5b8f..4a808dd 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -28,11 +28,13 @@ AM_CPPFLAGS = \
-
- WARN_CFLAGS += $(RELAXED_FRAME_LIMIT_CFLAGS)
-
-+PTEST_DIR ?= $(libdir)/libvirt/ptest
-+
- AM_CFLAGS = \
-- -Dabs_builddir="\"$(abs_builddir)\"" \
-- -Dabs_top_builddir="\"$(abs_top_builddir)\"" \
-- -Dabs_srcdir="\"$(abs_srcdir)\"" \
-- -Dabs_top_srcdir="\"$(abs_top_srcdir)\"" \
-+ -Dabs_builddir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_builddir="\"$(PTEST_DIR)\"" \
-+ -Dabs_srcdir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_srcdir="\"$(PTEST_DIR)\"" \
- $(LIBXML_CFLAGS) \
- $(GLIB_CFLAGS) \
- $(LIBNL_CFLAGS) \
-@@ -474,10 +476,10 @@ TESTS = $(test_programs) \
-
- VIR_TEST_EXPENSIVE ?= $(VIR_TEST_EXPENSIVE_DEFAULT)
- TESTS_ENVIRONMENT = \
-- abs_top_builddir="$(abs_top_builddir)" \
-- abs_top_srcdir="$(abs_top_srcdir)" \
-- abs_builddir="$(abs_builddir)" \
-- abs_srcdir="$(abs_srcdir)" \
-+ abs_top_builddir="$(PTEST_DIR)" \
-+ abs_top_srcdir="$(PTEST_DIR)" \
-+ abs_builddir="$(PTEST_DIR)/tests" \
-+ abs_srcdir="$(PTEST_DIR)/tests" \
- LIBVIRT_AUTOSTART=0 \
- LC_ALL=C \
- VIR_TEST_EXPENSIVE=$(VIR_TEST_EXPENSIVE) \
-@@ -1547,4 +1549,54 @@ else ! WITH_LINUX
- EXTRA_DIST += virscsitest.c
- endif ! WITH_LINUX
-
-+buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-+
-+PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+
-+install-ptest:
-+ list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
-+ install -d $(DEST_DIR)/tools
-+ @(if [ -d ../tools/.libs ] ; then cd ../tools/.libs; fi; \
-+ install * $(DEST_DIR)/tools)
-+ install -d $(DEST_DIR)/src/network
-+ cp $(top_srcdir)/src/network/*.xml $(DEST_DIR)/src/network
-+ install -d $(DEST_DIR)/src/cpu_map
-+ cp $(top_srcdir)/src/cpu_map/*.xml $(DEST_DIR)/src/cpu_map
-+ install ../src/libvirt_iohelper $(DEST_DIR)/src
-+ install -D ../src/libvirtd $(DEST_DIR)/src/libvirtd
-+ install -d $(DEST_DIR)/src/remote
-+ install -D $(top_srcdir)/../build/src/remote/libvirtd.conf $(DEST_DIR)/src/remote/libvirtd.conf
-+ install -d $(DEST_DIR)/src/remote/.libs
-+ @(if [ -d ../src/remote/.libs ] ; then cd ../src/remote/.libs; fi; \
-+ install * $(DEST_DIR)/src/remote/.libs)
-+ install -d $(DEST_DIR)/src/.libs
-+ @(if [ -d ../src/.libs ] ; then cd ../src/.libs; fi; \
-+ install * $(DEST_DIR)/src/.libs)
-+ install -d $(DEST_DIR)/docs/schemas
-+ cp $(top_srcdir)/docs/schemas/*.rng $(DEST_DIR)/docs/schemas
-+ cp -r $(top_srcdir)/build-aux $(DEST_DIR)
-+ install -d $(DEST_DIR)/examples/xml
-+ cp -r $(top_srcdir)/examples/xml/test $(DEST_DIR)/examples/xml
-+ install -d $(DEST_DIR)/tests/.libs
-+ find . -type d -name "*xml2xml*" -exec cp -r {} $(DEST_DIR)/tests \;
-+ find . -type d -name "*data" -exec cp -r {} $(DEST_DIR)/tests \;
-+ @(for file in $(PTESTS); do \
-+ if [ -f .libs/$$file ]; then \
-+ install .libs/$$file $(DEST_DIR)/tests; \
-+ elif [ -f $(srcdir)/$$file ]; then \
-+ install $(srcdir)/$$file $(DEST_DIR)/tests; \
-+ else \
-+ install $(builddir)/$$file $(DEST_DIR)/tests; \
-+ fi; \
-+ done;)
-+ @(if [ -d .libs ]; then install .libs/*.so $(DEST_DIR)/tests/.libs; fi;)
-+ cp ../config.h $(DEST_DIR)
-+ cp Makefile $(DEST_DIR)/tests
-+ sed -i -e 's/^Makefile:/_Makefile:/' $(DEST_DIR)/tests/Makefile
-+ cp ../Makefile $(DEST_DIR)
-+ sed -i -e 's|^Makefile:|_Makefile:|' $(DEST_DIR)/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/tests/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/Makefile
-+ sed -i -e 's|^\(.*\.log:\) \(.*EXEEXT.*\)|\1|g' $(DEST_DIR)/tests/Makefile
-+
- CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
diff --git a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch b/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
deleted file mode 100644
index bb500fde..00000000
--- a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 7dc21edd851b260485b432c096f8e90f6fa07778 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Tue, 7 May 2019 15:26:32 +0800
-Subject: [PATCH] tools: add libvirt-net-rpc to virt-host-validate when TLS is
- enabled
-
-When gnu-tls is enabled for libvirt references to virNetTLSInit are
-generated in libvirt. Any binaries linking against libvirt, must also
-link against libvirt-net-rpc which provides the implementation.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@...>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[ddu: rebase to v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- examples/Makefile.am | 20 ++++++++++++++++++++
- tools/Makefile.am | 12 ++++++++++++
- 2 files changed, 32 insertions(+)
-
-diff --git a/examples/Makefile.am b/examples/Makefile.am
-index ad635bd..a94f41d 100644
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -74,6 +74,10 @@ LDADD = \
- $(top_builddir)/src/libvirt-admin.la \
- $(NULL)
-
-+if WITH_GNUTLS
-+LDADD += $(top_builddir)/src/libvirt-net-rpc.la
-+endif
-+
- noinst_PROGRAMS = \
- c/admin/client_close \
- c/admin/client_info \
-@@ -111,6 +115,22 @@ c_misc_openauth_SOURCES = c/misc/openauth.c
- examplesdir = $(docdir)/examples
-
- adminexamplesdir = $(examplesdir)/c/admin
-+
-+if WITH_GNUTLS
-+dominfo_info1_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+domsuspend_suspend_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+hellolibvirt_hellolibvirt_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+openauth_openauth_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+endif
-+
- adminexamples_DATA = $(ADMIN_EXAMPLES)
-
- domainexamplesdir = $(examplesdir)/c/domain
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 53df930..2a0a989 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -166,6 +166,12 @@ virt_host_validate_LDADD = \
- $(GLIB_LIBS) \
- $(NULL)
-
-+if WITH_GNUTLS
-+virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- virt_host_validate_CFLAGS = \
- $(AM_CFLAGS) \
- $(NULL)
-@@ -262,6 +268,12 @@ virt_admin_CFLAGS = \
- $(READLINE_CFLAGS)
- BUILT_SOURCES =
-
-+if WITH_GNUTLS
-+virsh_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- if WITH_WIN_ICON
- virsh_LDADD += virsh_win_icon.$(OBJEXT)
-
diff --git a/recipes-extended/libvirt/libvirt_6.3.0.bb b/recipes-extended/libvirt/libvirt_7.2.0.bb
similarity index 61%
rename from recipes-extended/libvirt/libvirt_6.3.0.bb
rename to recipes-extended/libvirt/libvirt_7.2.0.bb
index 41abb06f..cdc7b6de 100644
--- a/recipes-extended/libvirt/libvirt_6.3.0.bb
+++ b/recipes-extended/libvirt/libvirt_7.2.0.bb
@@ -1,7 +1,6 @@
DESCRIPTION = "A toolkit to interact with the virtualization capabilities of recent versions of Linux."
HOMEPAGE = "http://libvirt.org"
LICENSE = "LGPLv2.1+ & GPLv2+"
-LICENSE_${PN}-ptest = "GPLv2+ & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LESSER;md5=4b54a1fd55a448865a0b32d41598759d"
SECTION = "console/tools"
@@ -16,9 +15,7 @@ DEPENDS = "bridge-utils gnutls libxml2 lvm2 avahi parted curl libpcap util-linux
#
RDEPENDS_${PN} = "gettext-runtime"

-RDEPENDS_${PN}-ptest += "make gawk perl bash"
-
-RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd"
+RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd ebtables"
RDEPENDS_libvirt-libvirtd_append_x86-64 = " dmidecode"
RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"

@@ -26,88 +23,33 @@ RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"
RCONFLICTS_${PN}_libvirtd = "connman"

SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
- file://tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch \
file://libvirtd.sh \
file://libvirtd.conf \
file://dnsmasq.conf \
- file://runptest.patch \
- file://run-ptest \
- file://libvirt-use-pkg-config-to-locate-libcap.patch \
- file://0001-to-fix-build-error.patch \
- file://install-missing-file.patch \
- file://0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch \
- file://configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch \
- file://0001-build-drop-unnecessary-libgnu.la-reference.patch \
file://hook_support.py \
file://gnutls-helper.py \
"

-SRC_URI[libvirt.md5sum] = "1bd4435f77924f5ec9928b538daf4a02"
-SRC_URI[libvirt.sha256sum] = "74069438d34082336e99a88146349e21130552b96efc3b7c562f6878127996f5"
+SRC_URI[libvirt.md5sum] = "92044b629216e44adce63224970a54a3"
+SRC_URI[libvirt.sha256sum] = "01f459d0c7ba5009622a628dba1a026200e8f4a299fea783b936a71d7e0ed1d0"

-inherit autotools gettext update-rc.d pkgconfig ptest systemd useradd perlnative
+inherit meson gettext update-rc.d pkgconfig systemd useradd perlnative
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM_${PN} = "-r qemu; -r kvm"
USERADD_PARAM_${PN} = "-r -g qemu -G kvm qemu"

-# Override the default set in autotools.bbclass so that we will use relative pathnames
-# to our local m4 files. This prevents an "Argument list too long" error during configuration
-# if our project is in a directory with an absolute pathname of more than about 125 characters.
-#
-acpaths = "-I ./m4"
-
-CACHED_CONFIGUREVARS += "\
-ac_cv_path_XMLCATLOG=/usr/bin/xmlcatalog \
-ac_cv_path_AUGPARSE=/usr/bin/augparse \
-ac_cv_path_DMIDECODE=/usr/sbin/dmidecode \
-ac_cv_path_DNSMASQ=/usr/bin/dnsmasq \
-ac_cv_path_BRCTL=/usr/sbin/brctl \
-ac_cv_path_TC=/sbin/tc \
-ac_cv_path_UDEVADM=/sbin/udevadm \
-ac_cv_path_MODPROBE=/sbin/modprobe \
-ac_cv_path_IP_PATH=/bin/ip \
-ac_cv_path_IPTABLES_PATH=/usr/sbin/iptables \
-ac_cv_path_IP6TABLES_PATH=/usr/sbin/ip6tables \
-ac_cv_path_MOUNT=/bin/mount \
-ac_cv_path_UMOUNT=/bin/umount \
-ac_cv_path_MKFS=/usr/sbin/mkfs \
-ac_cv_path_SHOWMOUNT=/usr/sbin/showmount \
-ac_cv_path_PVCREATE=/usr/sbin/pvcreate \
-ac_cv_path_VGCREATE=/usr/sbin/vgcreate \
-ac_cv_path_LVCREATE=/usr/sbin/lvcreate \
-ac_cv_path_PVREMOVE=/usr/sbin/pvremove \
-ac_cv_path_VGREMOVE=/usr/sbin/vgremove \
-ac_cv_path_LVREMOVE=/usr/sbin/lvremove \
-ac_cv_path_LVCHANGE=/usr/sbin/lvchange \
-ac_cv_path_VGCHANGE=/usr/sbin/vgchange \
-ac_cv_path_VGSCAN=/usr/sbin/vgscan \
-ac_cv_path_PVS=/usr/sbin/pvs \
-ac_cv_path_VGS=/usr/sbin/vgs \
-ac_cv_path_LVS=/usr/sbin/lvs \
-ac_cv_path_PARTED=/usr/sbin/parted \
-ac_cv_path_DMSETUP=/usr/sbin/dmsetup"
-
-# Ensure that libvirt uses polkit rather than policykit, whether the host has
-# pkcheck installed or not, and ensure the path is correct per our config.
-CACHED_CONFIGUREVARS += "ac_cv_path_PKCHECK_PATH=${bindir}/pkcheck"
-
-# Some other possible paths we are not yet setting
-#ac_cv_path_RPCGEN=
-#ac_cv_path_XSLTPROC=
-#ac_cv_path_RADVD=
-#ac_cv_path_UDEVSETTLE=
-#ac_cv_path_EBTABLES_PATH=
-#ac_cv_path_PKG_CONFIG=
-#ac_cv_path_ac_pt_PKG_CONFIG
-#ac_cv_path_POLKIT_AUTH=
-#ac_cv_path_DTRACE=
-#ac_cv_path_ISCSIADM=
-#ac_cv_path_MSGFMT=
-#ac_cv_path_GMSGFMT=
-#ac_cv_path_XGETTEXT=
-#ac_cv_path_MSGMERGE=
-#ac_cv_path_SCRUB=
-#ac_cv_path_PYTHON=
+
+EXTRA_OEMESON += "--cross-file ${WORKDIR}/meson-${PN}.cross"
+do_write_config_append() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+iptables = '/usr/sbin/iptables'
+ip6tables = '/usr/sbin/ip6tables'
+dmidecode = '/usr/sbin/dmidecode'
+ebtables = '/sbin/ebtables'
+dnsmasq = '/usr/bin/dnsmasq'
+EOF
+}

ALLOW_EMPTY_${PN} = "1"

@@ -166,32 +108,12 @@ SYSTEMD_SERVICE_${PN}-libvirtd = " \
libvirt-guests.service \
virtlockd.socket \
"
-
-
-PRIVATE_LIBS_${PN}-ptest = " \
- libvirt-lxc.so.0 \
- libvirt.so.0 \
- libvirt-qemu.so.0 \
- lockd.so \
- libvirt_driver_secret.so \
- libvirt_driver_nodedev.so \
- libvirt_driver_vbox.so \
- libvirt_driver_interface.so \
- libvirt_driver_uml.so \
- libvirt_driver_network.so \
- libvirt_driver_nwfilter.so \
- libvirt_driver_qemu.so \
- libvirt_driver_storage.so \
- libvirt_driver_lxc.so \
- "
-
# xen-minimal config
#PACKAGECONFIG ??= "xen libxl xen-inotify test remote libvirtd"

# full config
-PACKAGECONFIG ??= "gnutls qemu yajl openvz vmware vbox esx iproute2 lxc test \
- remote macvtap libvirtd netcf udev python ebtables \
- fuse iproute2 firewalld libpcap \
+PACKAGECONFIG ??= "gnutls qemu yajl openvz vmware vbox esx lxc test remote \
+ libvirtd netcf udev python fuse firewalld libpcap \
${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit libcap-ng', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'libxl', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'polkit', '', d)} \
@@ -208,37 +130,34 @@ PACKAGECONFIG_remove_armeb = "numactl"
# enable,disable,depends,rdepends
#
PACKAGECONFIG[gnutls] = ",,,gnutls-bin"
-PACKAGECONFIG[qemu] = "--with-qemu --with-qemu-user=qemu --with-qemu-group=qemu,--without-qemu,qemu,"
-PACKAGECONFIG[yajl] = "--with-yajl,--without-yajl,yajl,yajl"
-PACKAGECONFIG[libxl] = "--with-libxl=${STAGING_DIR_TARGET}/lib,--without-libxl,xen,"
-PACKAGECONFIG[openvz] = "--with-openvz,--without-openvz,,"
-PACKAGECONFIG[vmware] = "--with-vmware,--without-vmware,,"
-PACKAGECONFIG[vbox] = "--with-vbox,--without-vbox,,"
-PACKAGECONFIG[esx] = "--with-esx,--without-esx,,"
-PACKAGECONFIG[hyperv] = "--with-hyperv,--without-hyperv,,"
-PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit,polkit"
-PACKAGECONFIG[lxc] = "--with-lxc,--without-lxc, lxc,"
-PACKAGECONFIG[test] = "--with-test=yes,--with-test=no,,"
-PACKAGECONFIG[remote] = "--with-remote,--without-remote,,"
-PACKAGECONFIG[macvtap] = "--with-macvtap=yes,--with-macvtap=no,libnl,libnl"
-PACKAGECONFIG[libvirtd] = "--with-libvirtd,--without-libvirtd,,"
-PACKAGECONFIG[netcf] = "--with-netcf,--without-netcf,netcf,netcf"
-PACKAGECONFIG[dtrace] = "--with-dtrace,--without-dtrace,,"
-PACKAGECONFIG[udev] = "--with-udev --with-pciaccess,--without-udev,udev libpciaccess,"
-PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux,"
-PACKAGECONFIG[ebtables] = "ac_cv_path_EBTABLES_PATH=/sbin/ebtables,ac_cv_path_EBTABLES_PATH=,ebtables,ebtables"
+PACKAGECONFIG[qemu] = "-Ddriver_qemu=enabled -Dqemu_user=qemu -Dqemu_group=qemu,-Dqemu=disabled,qemu,"
+PACKAGECONFIG[yajl] = "-Dyajl=enabled,-Dyajl=disabled,yajl,yajl"
+PACKAGECONFIG[libxl] = "-Dlibxl=${STAGING_DIR_TARGET}/lib,,xen,"
+PACKAGECONFIG[openvz] = "-Ddriver_openvz=enabled,-Ddriver_openvz=disabled,,"
+PACKAGECONFIG[vmware] = "-Ddriver_vmware=enabled,-Ddriver_vmware=disabled,,"
+PACKAGECONFIG[vbox] = "-Ddriver_vbox=enabled,-Ddriver_vbox=disabled,,"
+PACKAGECONFIG[esx] = "-Ddriver_esx=enabled,-Ddriver_esx=disabled,,"
+PACKAGECONFIG[hyperv] = "-Ddriver_hyperv=enabled,-Ddriver_hyperv=disabled,,"
+PACKAGECONFIG[polkit] = "-Dpolkit=enabled,-Dpolkit=disabled,polkit,polkit"
+PACKAGECONFIG[lxc] = "-Ddriver_lxc=enabled,-Ddriver_lxc=disabled,lxc,"
+PACKAGECONFIG[test] = "-Ddriver_test=enabled,-Ddriver_test=disabled,,"
+PACKAGECONFIG[remote] = "-Ddriver_remote=enabled,-Ddriver_remote=disabled,,"
+PACKAGECONFIG[libvirtd] = "-Ddriver_libvirtd=enabled,-Ddriver_libvirtd=disabled,,"
+PACKAGECONFIG[netcf] = "-Dnetcf=enabled,-Dnetcf=disabled,netcf,netcf"
+PACKAGECONFIG[dtrace] = "-Ddtrace=enabled,-Ddtrace=disabled,,"
+PACKAGECONFIG[udev] = "-Dudev=enabled -Dpciaccess=enabled,-Dudev=disabled,udev libpciaccess,"
+PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux,"
PACKAGECONFIG[python] = ",,python3,"
-PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,cyrus-sasl"
-PACKAGECONFIG[iproute2] = "ac_cv_path_IP_PATH=/sbin/ip,ac_cv_path_IP_PATH=,iproute2,iproute2"
-PACKAGECONFIG[numactl] = "--with-numactl,--without-numactl,numactl,"
-PACKAGECONFIG[fuse] = "--with-fuse,--without-fuse,fuse,"
-PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit,"
-PACKAGECONFIG[libcap-ng] = "--with-capng,--without-capng,libcap-ng,"
-PACKAGECONFIG[wireshark] = "--with-wireshark-dissector,--without-wireshark-dissector,wireshark libwsutil,"
-PACKAGECONFIG[apparmor-profiles] = "--with-apparmor-profiles, --without-apparmor-profiles,"
-PACKAGECONFIG[firewalld] = "--with-firewalld, --without-firewalld,"
-PACKAGECONFIG[libpcap] = "--with-libpcap, --without-libpcap,libpcap,libpcap"
-PACKAGECONFIG[numad] = "--with-numad, --without-numad,"
+PACKAGECONFIG[sasl] = "-Dsasl=enabled,-Dsasl=disabled,cyrus-sasl,cyrus-sasl"
+PACKAGECONFIG[numactl] = "-Dnumactl=enabled,-Dnumactl=disabled,numactl,"
+PACKAGECONFIG[fuse] = "-Dfuse=enabled,-Dfuse=disabled,fuse,"
+PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit,"
+PACKAGECONFIG[libcap-ng] = "-Dcapng=enabled,-Dcapng=disabled,libcap-ng,"
+PACKAGECONFIG[wireshark] = "-Dwireshark_dissector=enabled,-Dwireshark_dissector=disabled,wireshark libwsutil,"
+PACKAGECONFIG[apparmor_profiles] = "-Dapparmor_profiles=true, -Dapparmor_profiles=false,"
+PACKAGECONFIG[firewalld] = "-Dfirewalld=enabled, -Dfirewalld=disabled,"
+PACKAGECONFIG[libpcap] = "-Dlibpcap=enabled, -Dlibpcap=disabled,libpcap,libpcap"
+PACKAGECONFIG[numad] = "-Dnumad=enabled, -Dnumad=disabled,"

# Enable the Python tool support
require libvirt-python.inc
@@ -255,7 +174,7 @@ do_compile() {

cd ${B}
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${B}/src:"
- oe_runmake all
+ ninja all
}

do_install_prepend() {
@@ -278,6 +197,8 @@ do_install_append() {
fi

if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ mkdir -p ${D}/lib
+ mv ${D}/usr/lib/systemd ${D}/lib
# This variable is used by libvirtd.service to start libvirtd in the right mode
sed -i '/#LIBVIRTD_ARGS="--listen"/a LIBVIRTD_ARGS="--listen --daemon"' ${D}/${sysconfdir}/sysconfig/libvirtd

@@ -360,7 +281,7 @@ do_install_append() {
# connection via 127.0.0.1 is available out of box.
install -d ${D}/etc/pki/CA
install -d ${D}/etc/pki/libvirt/private
- install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
+ install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
install -m 0644 ${WORKDIR}/cakey.pem ${D}/${sysconfdir}/pki/libvirt/private/cakey.pem
install -m 0644 ${WORKDIR}/cacert.pem ${D}/${sysconfdir}/pki/CA/cacert.pem
install -m 0644 ${WORKDIR}/serverkey.pem ${D}/${sysconfdir}/pki/libvirt/private/serverkey.pem
@@ -376,10 +297,10 @@ do_install_append() {
chmod 4755 ${D}${bindir}/virt-login-shell
}

-EXTRA_OECONF += " \
- --with-init-script=systemd \
- --with-test-suite \
- --with-runstatedir=/run \
+EXTRA_OEMESON += " \
+ -Dinit_script=systemd \
+ -Drunstatedir=/run \
+ -Dtests=enabled \
"

# gcc9 end up mis-compiling qemuxml2argvtest.o with Og which then
@@ -387,25 +308,6 @@ EXTRA_OECONF += " \
SELECTED_OPTIMIZATION_remove_virtclass-multilib-lib32_mipsarch = "-Og"
SELECTED_OPTIMIZATION_append_virtclass-multilib-lib32_mipsarch = " -O2"

-EXTRA_OEMAKE = "BUILD_DIR=${B} DEST_DIR=${D}${PTEST_PATH} PTEST_DIR=${PTEST_PATH} SYSTEMD_UNIT_DIR=${systemd_system_unitdir}"
-
-PRIVATE_LIBS_${PN}-ptest_append = "libvirt-admin.so.0"
-
-do_compile_ptest() {
- oe_runmake -C tests buildtest-TESTS
-}
-
-do_install_ptest() {
- oe_runmake -C tests install-ptest
-
- find ${S}/tests -maxdepth 1 -type d -exec cp -r {} ${D}${PTEST_PATH}/tests/ \;
-
- # remove .la files for ptest, they aren't required and can trigger QA errors
- for i in `find ${D}${PTEST_PATH} -type f \( -name *.la -o -name *.o \)`; do
- rm -f $i
- done
-}
-
pkg_postinst_${PN}() {
if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
/etc/init.d/populate-volatile.sh update
--
2.27.0
--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


[PATCH v3] libvirt: uprev v6.3 -> v7.2

Xu, Yanfei
 

From: Yanfei Xu <yanfei.xu@...>

This upgrade spans 9 small release. The detailed realese logs could
refer to: https://gitlab.com/libvirt/libvirt/-/blob/master/NEWS.rst

Libvirt's buildsystem has changed to meson, So this upgrade drop some
obsolete patches applied to makefile.

I ran libvirt testcase and ovs testcase for this upgrade, the summary
as follow:

libvirt_test (keyword: ) test results:
*1 Run libvirt_test testing(do_test1) PASS
*2 Check result (virsh_local_capabilities) PASS
*3 Check result (virsh_local_domcapabilities) PASS
*4 Check result (virsh_local_freecell) PASS
*5 Check result (virsh_local_help) PASS
*6 Check result (virsh_local_hostname) PASS
*7 Check result (virsh_local_iface-begin) PASS
*8 Check result (virsh_local_iface-commit) PASS
*9 Check result (virsh_local_iface-list) PASS
*10 Check result (virsh_local_list) PASS
*11 Check result (virsh_local_maxvcpus) PASS
*12 Check result (virsh_local_net-list) PASS
*13 Check result (virsh_local_nodecpumap) PASS
*14 Check result (virsh_local_nodecpustats) PASS
*15 Check result (virsh_local_nodedev-list) PASS
*16 Check result (virsh_local_nodeinfo) PASS
*17 Check result (virsh_local_node-memory-tune) PASS
*18 Check result (virsh_local_nodememstats) PASS
*19 Check result (virsh_local_nwfilter-binding-list) PASS
*20 Check result (virsh_local_nwfilter-list) PASS
*21 Check result (virsh_local_pool-capabilities) PASS
*22 Check result (virsh_local_pool-list) PASS
*23 Check result (virsh_local_pwd) PASS
*24 Check result (virsh_local_secret-list) PASS
*25 Check result (virsh_local_sysinfo) PASS
*26 Check result (virsh_local_uri) PASS
*27 Check result (virsh_local_version) PASS

openvswitch_vm2vm (keyword: qemux86) test results:
*1 openvswitch_vm2vm testing(do_test1) PASS
*2 Check result (ovs_vm2vm_boot_guest1) PASS
*3 Check result (ovs_vm2vm_boot_guest2) PASS
*4 Check result (ovs_vm2vm_netperf_test) PASS
*5 Check result (ovs_vm2vm_destroy_guest1) PASS
*6 Check result (ovs_vm2vm_destroy_guest2) PASS
*7 check testcase call trace(do_check_call_trace) PASS

Signed-off-by: Yanfei Xu <yanfei.xu@...>
---
v1-->v2:
1.fix build failure caused by "getent".
2.fix apply failure.
3.drop ptest configurations in libvirt_7.2.0.bb
4.add test log in commit messages.

v2-->v3:
1.replace the option list with "--cross-file=" to specify the
binaries path.

conf/layer.conf | 2 +
recipes-extended/libvirt/libvirt-python.inc | 4 +-
...drop-unnecessary-libgnu.la-reference.patch | 31 ---
.../libvirt/0001-to-fix-build-error.patch | 47 ----
...-search-for-rpc-rpc.h-in-the-sysroot.patch | 34 ---
.../libvirt/install-missing-file.patch | 50 -----
...read-safety-in-lxc-callback-handling.patch | 63 ------
...virt-use-pkg-config-to-locate-libcap.patch | 43 ----
.../libvirt/qemu-fix-crash-in-qemuOpen.patch | 39 ----
.../libvirt/libvirt/runptest.patch | 116 ----------
...t-net-rpc-to-virt-host-validate-when.patch | 91 --------
.../{libvirt_6.3.0.bb => libvirt_7.2.0.bb} | 204 +++++-------------
12 files changed, 57 insertions(+), 667 deletions(-)
delete mode 100644 recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
delete mode 100644 recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
delete mode 100644 recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
delete mode 100644 recipes-extended/libvirt/libvirt/install-missing-file.patch
delete mode 100644 recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
delete mode 100644 recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
delete mode 100644 recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
delete mode 100644 recipes-extended/libvirt/libvirt/runptest.patch
delete mode 100644 recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
rename recipes-extended/libvirt/{libvirt_6.3.0.bb => libvirt_7.2.0.bb} (61%)

diff --git a/conf/layer.conf b/conf/layer.conf
index cfc735d8..894a4946 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -68,3 +68,5 @@ K8S_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/k8s-versions.inc"
USER_CLASSES_append = " meta-virt-cfg"
USER_CLASSES_append = " meta-virt-k8s-cfg"
USER_CLASSES_append = " meta-virt-xen-cfg"
+
+HOSTTOOLS_NONFATAL += "getent"
diff --git a/recipes-extended/libvirt/libvirt-python.inc b/recipes-extended/libvirt/libvirt-python.inc
index bcd76572..0c661af8 100644
--- a/recipes-extended/libvirt/libvirt-python.inc
+++ b/recipes-extended/libvirt/libvirt-python.inc
@@ -17,8 +17,8 @@ FILES_${PN}-python = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"

SRC_URI += "http://libvirt.org/sources/python/libvirt-python-${PV}.tar.gz;name=libvirt_python"

-SRC_URI[libvirt_python.md5sum] = "4cf898350ee9a47f94986d402c153bdb"
-SRC_URI[libvirt_python.sha256sum] = "c772421ecc144f098f4ab15db700c62db9b9e6e76b876217edcfd62e9ce02750"
+SRC_URI[libvirt_python.md5sum] = "19bf22414a43d358581b9259b52047a7"
+SRC_URI[libvirt_python.sha256sum] = "c0c3bac54c55622e17927b09cd9843869600d71842fb072c99491fe2608dcee7"

export LIBVIRT_API_PATH = "${S}/docs/libvirt-api.xml"
export LIBVIRT_CFLAGS = "-I${S}/include"
diff --git a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch b/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
deleted file mode 100644
index f02a5d64..00000000
--- a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 30a056069cb35804434fb036e51ae97f33c02025 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@...>
-Date: Sat, 7 Mar 2020 21:36:27 -0500
-Subject: [PATCH] build: drop unnecessary libgnu.la reference
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-
----
- tools/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 2a0a989..93fe283 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -168,7 +168,6 @@ virt_host_validate_LDADD = \
-
- if WITH_GNUTLS
- virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
-@@ -270,7 +269,6 @@ BUILT_SOURCES =
-
- if WITH_GNUTLS
- virsh_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
diff --git a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch b/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
deleted file mode 100644
index b0148e5c..00000000
--- a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 3566bcacaa6408fb8f655d1749a20b2f30e0c765 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@...>
-Date: Fri, 31 Jul 2015 03:17:07 +0900
-Subject: [PATCH] to fix build error
-
-The error likes as following
-
-| Generating internals/command.html.tmp
-| /bin/sh: line 3: internals/command.html.tmp: No such file or directory
-| rm: Generating internals/locking.html.tmp
-| cannot remove `internals/command.html.tmp': No such file or directory
-| make[3]: *** [internals/command.html.tmp] Error 1
-| make[3]: *** Waiting for unfinished jobs....
-
-Signed-off-by: Lei Maohui <leimaohui@...>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@...>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- docs/Makefile.am | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/docs/Makefile.am b/docs/Makefile.am
-index ce3d296..2c8180f 100644
---- a/docs/Makefile.am
-+++ b/docs/Makefile.am
-@@ -366,7 +366,7 @@ EXTRA_DIST= \
- aclperms.htmlinc \
- $(schema_DATA)
-
--acl_generated = aclperms.htmlinc
-+acl.html:: $(srcdir)/aclperms.htmlinc
-
- aclperms.htmlinc: $(top_srcdir)/src/access/viraccessperm.h \
- $(top_srcdir)/scripts/genaclperms.py Makefile.am
-@@ -432,8 +432,7 @@ manpages/%.html.in: manpages/%.rst
- $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \
- $(RST2HTML) --strict $< > $@ || { rm $@ && exit 1; }
-
--%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \
-- $(acl_generated)
-+%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl
- $(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \
- genhtmlin=`echo $@ | sed -e 's/.tmp/.in/'`; \
- rst=`echo $@ | sed -e 's/.html.tmp/.rst/'`; \
diff --git a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch b/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
deleted file mode 100644
index 395d5610..00000000
--- a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 79f5975db01af0599860ccca7ef44b0e27105a04 Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@...>
-Date: Thu, 10 May 2018 12:05:04 -0400
-Subject: [PATCH] configure.ac: search for rpc/rpc.h in the sysroot
-
-We want to avoid host contamination and use the sysroot as the base
-directory for our search so add the '=' the the '-I' when searching
-for libtirpc's rpc.h header.
-
-Upstream-Status: Inappropriate [old release]
-
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- m4/virt-xdr.m4 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/m4/virt-xdr.m4 b/m4/virt-xdr.m4
-index 8375415..12b51f7 100644
---- a/m4/virt-xdr.m4
-+++ b/m4/virt-xdr.m4
-@@ -30,10 +30,10 @@ AC_DEFUN([LIBVIRT_CHECK_XDR], [
- ])
- with_xdr="yes"
-
-- dnl Recent glibc requires -I/usr/include/tirpc for <rpc/rpc.h>
-+ dnl Recent glibc requires -I=/usr/include/tirpc for <rpc/rpc.h>
- old_CFLAGS=$CFLAGS
- AC_CACHE_CHECK([where to find <rpc/rpc.h>], [lv_cv_xdr_cflags], [
-- for add_CFLAGS in '' '-I/usr/include/tirpc' 'missing'; do
-+ for add_CFLAGS in '' '-I=/usr/include/tirpc' 'missing'; do
- if test x"$add_CFLAGS" = xmissing; then
- lv_cv_xdr_cflags=missing; break
- fi
diff --git a/recipes-extended/libvirt/libvirt/install-missing-file.patch b/recipes-extended/libvirt/libvirt/install-missing-file.patch
deleted file mode 100644
index 6aa36df8..00000000
--- a/recipes-extended/libvirt/libvirt/install-missing-file.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From aa75f5136066d239d48a21373b3d96ee12378e8d Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Wed, 8 May 2019 17:24:17 +0800
-Subject: [PATCH] Install missing conf file
-
-openvzutilstest.conf file is needed by openvzutilstest test.
-
-Upstream-Status: Inapproriate
-
-Signed-off-by: Catalin Enache <catalin.enache@...>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@...>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- tests/Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 4a808dd..0c3e799 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -173,6 +173,7 @@ EXTRA_DIST = \
- $(NULL)
-
- test_helpers = commandhelper ssh
-+test_misc =
- test_programs = virshtest sockettest \
- virhostcputest virbuftest \
- commandtest seclabeltest \
-@@ -311,6 +312,7 @@ endif WITH_LXC
-
- if WITH_OPENVZ
- test_programs += openvzutilstest
-+test_misc += openvzutilstest.conf
- endif WITH_OPENVZ
-
- if WITH_ESX
-@@ -1551,7 +1553,7 @@ endif ! WITH_LINUX
-
- buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-
--PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+PTESTS = $(TESTS) $(test_helpers) $(test_misc) test-lib.sh virschematest
-
- install-ptest:
- list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
diff --git a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch b/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
deleted file mode 100644
index 558d5ef6..00000000
--- a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From ad5d9cee87357f9f38f62583119606ef95ba10df Mon Sep 17 00:00:00 2001
-From: Bogdan Purcareata <bogdan.purcareata@...>
-Date: Fri, 24 May 2013 16:46:00 +0300
-Subject: [PATCH] Fix thread safety in LXC callback handling
-
-Signed-off-by: Bogdan Purcareata <bogdan.purcareata@...>
----
- src/lxc/lxc_process.c | 18 +++++++++++++++++-
- 1 file changed, 17 insertions(+), 1 deletion(-)
-
-diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
-index aaa81a7..0eadc67 100644
---- a/src/lxc/lxc_process.c
-+++ b/src/lxc/lxc_process.c
-@@ -609,8 +609,13 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- virLXCProtocolExitStatus status,
- virDomainObjPtr vm)
- {
-+ virLXCDriverPtr driver = lxc_driver;
- virLXCDomainObjPrivatePtr priv = vm->privateData;
-
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
- switch (status) {
- case VIR_LXC_PROTOCOL_EXIT_STATUS_SHUTDOWN:
- priv->stopReason = VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN;
-@@ -628,6 +633,8 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- }
- VIR_DEBUG("Domain shutoff reason %d (from status %d)",
- priv->stopReason, status);
-+
-+ virObjectUnlock(vm);
- }
-
- /* XXX a little evil */
-@@ -636,12 +643,21 @@ static void virLXCProcessMonitorInitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- pid_t initpid,
- virDomainObjPtr vm)
- {
-- virLXCDomainObjPrivatePtr priv = vm->privateData;
-+ virLXCDriverPtr driver = lxc_driver;
-+ virLXCDomainObjPrivatePtr priv;
-+
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
-+ priv = vm->privateData;
- priv->initpid = initpid;
- virDomainAuditInit(vm, initpid);
-
- if (virDomainSaveStatus(lxc_driver->caps, lxc_driver->stateDir, vm) < 0)
- VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name);
-+
-+ virObjectUnlock(vm);
- }
-
- static virLXCMonitorCallbacks monitorCallbacks = {
---
-1.7.11.7
-
diff --git a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch b/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
deleted file mode 100644
index 87b55915..00000000
--- a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 94bd514e1b6e602a48285db94e65050f8f0c2585 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@...>
-Date: Wed, 8 Apr 2015 13:03:03 -0400
-Subject: [PATCH] libvirt: use pkg-config to locate libcap
-
-libvirt wants to use pcap-config to locate the exisence and location
-of libpcap. oe-core stubs this script and replaces it with pkg-config,
-which can lead to the host pcap-config triggering and either breaking
-the build or introducing host contamination.
-
-To fix this issue, we patch configure to use 'pkg-config libcap' to
-locate the correct libraries.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-[MA: Update to apply agains v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- m4/virt-libpcap.m4 | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/m4/virt-libpcap.m4 b/m4/virt-libpcap.m4
-index 605c2fd..e0ab018 100644
---- a/m4/virt-libpcap.m4
-+++ b/m4/virt-libpcap.m4
-@@ -23,14 +23,14 @@ AC_DEFUN([LIBVIRT_ARG_LIBPCAP], [
-
- AC_DEFUN([LIBVIRT_CHECK_LIBPCAP], [
- LIBPCAP_REQUIRED="1.5.0"
-- LIBPCAP_CONFIG="pcap-config"
-+ LIBPCAP_CONFIG="pkg-config libpcap"
- LIBPCAP_CFLAGS=""
- LIBPCAP_LIBS=""
-
- if test "x$with_libpcap" != "xno"; then
- case $with_libpcap in
-- ''|yes|check) LIBPCAP_CONFIG="pcap-config" ;;
-- *) LIBPCAP_CONFIG="$with_libpcap/bin/pcap-config" ;;
-+ ''|yes|check) LIBPCAP_CONFIG="pkg-config libpcap" ;;
-+ *) LIBPCAP_CONFIG="$with_libpcap/bin/pkg-config libpcap" ;;
- esac
- AS_IF([test "x$LIBPCAP_CONFIG" != "x"], [
- AC_MSG_CHECKING(libpcap $LIBPCAP_CONFIG >= $LIBPCAP_REQUIRED )
diff --git a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch b/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
deleted file mode 100644
index 3cf9e839..00000000
--- a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 74bff2509080912ea8abf1de8fd95fa2412b659a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@...>
-Date: Thu, 11 Apr 2013 11:37:25 +0200
-Subject: [PATCH] qemu: fix crash in qemuOpen
-
-commit 74bff2509080912ea8abf1de8fd95fa2412b659a from upsteam
-git://libvirt.org/libvirt.git
-
-If the path part of connection URI is not present, cfg is used
-unitialized.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=950855
----
- src/qemu/qemu_driver.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
-index 2c0d7d1..0d41e39 100644
---- a/src/qemu/qemu_driver.c
-+++ b/src/qemu/qemu_driver.c
-@@ -1026,6 +1026,7 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-+ cfg = virQEMUDriverGetConfig(qemu_driver);
- if (conn->uri->path == NULL) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("no QEMU URI path given, try %s"),
-@@ -1033,7 +1034,6 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-- cfg = virQEMUDriverGetConfig(qemu_driver);
- if (cfg->privileged) {
- if (STRNEQ(conn->uri->path, "/system") &&
- STRNEQ(conn->uri->path, "/session")) {
---
-1.7.1
-
diff --git a/recipes-extended/libvirt/libvirt/runptest.patch b/recipes-extended/libvirt/libvirt/runptest.patch
deleted file mode 100644
index f6bc7736..00000000
--- a/recipes-extended/libvirt/libvirt/runptest.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From d210838a4433dd254c1a11b08b804ebe9ff5f378 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Wed, 8 May 2019 10:20:47 +0800
-Subject: [PATCH] Add 'install-ptest' rule
-
-Change TESTS_ENVIRONMENT to allow running outside build dir.
-
-Upstream-status: Pending
-Signed-off-by: Mihaela Sendrea <mihaela.sendrea@...>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@...>
-[MA: Allow separate source and build dirs]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[ZH: add missing test_helper files]
-Signed-off-by: He Zhe <zhe.he@...>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- tests/Makefile.am | 68 +++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 60 insertions(+), 8 deletions(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index ada5b8f..4a808dd 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -28,11 +28,13 @@ AM_CPPFLAGS = \
-
- WARN_CFLAGS += $(RELAXED_FRAME_LIMIT_CFLAGS)
-
-+PTEST_DIR ?= $(libdir)/libvirt/ptest
-+
- AM_CFLAGS = \
-- -Dabs_builddir="\"$(abs_builddir)\"" \
-- -Dabs_top_builddir="\"$(abs_top_builddir)\"" \
-- -Dabs_srcdir="\"$(abs_srcdir)\"" \
-- -Dabs_top_srcdir="\"$(abs_top_srcdir)\"" \
-+ -Dabs_builddir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_builddir="\"$(PTEST_DIR)\"" \
-+ -Dabs_srcdir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_srcdir="\"$(PTEST_DIR)\"" \
- $(LIBXML_CFLAGS) \
- $(GLIB_CFLAGS) \
- $(LIBNL_CFLAGS) \
-@@ -474,10 +476,10 @@ TESTS = $(test_programs) \
-
- VIR_TEST_EXPENSIVE ?= $(VIR_TEST_EXPENSIVE_DEFAULT)
- TESTS_ENVIRONMENT = \
-- abs_top_builddir="$(abs_top_builddir)" \
-- abs_top_srcdir="$(abs_top_srcdir)" \
-- abs_builddir="$(abs_builddir)" \
-- abs_srcdir="$(abs_srcdir)" \
-+ abs_top_builddir="$(PTEST_DIR)" \
-+ abs_top_srcdir="$(PTEST_DIR)" \
-+ abs_builddir="$(PTEST_DIR)/tests" \
-+ abs_srcdir="$(PTEST_DIR)/tests" \
- LIBVIRT_AUTOSTART=0 \
- LC_ALL=C \
- VIR_TEST_EXPENSIVE=$(VIR_TEST_EXPENSIVE) \
-@@ -1547,4 +1549,54 @@ else ! WITH_LINUX
- EXTRA_DIST += virscsitest.c
- endif ! WITH_LINUX
-
-+buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-+
-+PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+
-+install-ptest:
-+ list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
-+ install -d $(DEST_DIR)/tools
-+ @(if [ -d ../tools/.libs ] ; then cd ../tools/.libs; fi; \
-+ install * $(DEST_DIR)/tools)
-+ install -d $(DEST_DIR)/src/network
-+ cp $(top_srcdir)/src/network/*.xml $(DEST_DIR)/src/network
-+ install -d $(DEST_DIR)/src/cpu_map
-+ cp $(top_srcdir)/src/cpu_map/*.xml $(DEST_DIR)/src/cpu_map
-+ install ../src/libvirt_iohelper $(DEST_DIR)/src
-+ install -D ../src/libvirtd $(DEST_DIR)/src/libvirtd
-+ install -d $(DEST_DIR)/src/remote
-+ install -D $(top_srcdir)/../build/src/remote/libvirtd.conf $(DEST_DIR)/src/remote/libvirtd.conf
-+ install -d $(DEST_DIR)/src/remote/.libs
-+ @(if [ -d ../src/remote/.libs ] ; then cd ../src/remote/.libs; fi; \
-+ install * $(DEST_DIR)/src/remote/.libs)
-+ install -d $(DEST_DIR)/src/.libs
-+ @(if [ -d ../src/.libs ] ; then cd ../src/.libs; fi; \
-+ install * $(DEST_DIR)/src/.libs)
-+ install -d $(DEST_DIR)/docs/schemas
-+ cp $(top_srcdir)/docs/schemas/*.rng $(DEST_DIR)/docs/schemas
-+ cp -r $(top_srcdir)/build-aux $(DEST_DIR)
-+ install -d $(DEST_DIR)/examples/xml
-+ cp -r $(top_srcdir)/examples/xml/test $(DEST_DIR)/examples/xml
-+ install -d $(DEST_DIR)/tests/.libs
-+ find . -type d -name "*xml2xml*" -exec cp -r {} $(DEST_DIR)/tests \;
-+ find . -type d -name "*data" -exec cp -r {} $(DEST_DIR)/tests \;
-+ @(for file in $(PTESTS); do \
-+ if [ -f .libs/$$file ]; then \
-+ install .libs/$$file $(DEST_DIR)/tests; \
-+ elif [ -f $(srcdir)/$$file ]; then \
-+ install $(srcdir)/$$file $(DEST_DIR)/tests; \
-+ else \
-+ install $(builddir)/$$file $(DEST_DIR)/tests; \
-+ fi; \
-+ done;)
-+ @(if [ -d .libs ]; then install .libs/*.so $(DEST_DIR)/tests/.libs; fi;)
-+ cp ../config.h $(DEST_DIR)
-+ cp Makefile $(DEST_DIR)/tests
-+ sed -i -e 's/^Makefile:/_Makefile:/' $(DEST_DIR)/tests/Makefile
-+ cp ../Makefile $(DEST_DIR)
-+ sed -i -e 's|^Makefile:|_Makefile:|' $(DEST_DIR)/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/tests/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/Makefile
-+ sed -i -e 's|^\(.*\.log:\) \(.*EXEEXT.*\)|\1|g' $(DEST_DIR)/tests/Makefile
-+
- CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
diff --git a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch b/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
deleted file mode 100644
index bb500fde..00000000
--- a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 7dc21edd851b260485b432c096f8e90f6fa07778 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Tue, 7 May 2019 15:26:32 +0800
-Subject: [PATCH] tools: add libvirt-net-rpc to virt-host-validate when TLS is
- enabled
-
-When gnu-tls is enabled for libvirt references to virNetTLSInit are
-generated in libvirt. Any binaries linking against libvirt, must also
-link against libvirt-net-rpc which provides the implementation.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@...>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[ddu: rebase to v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- examples/Makefile.am | 20 ++++++++++++++++++++
- tools/Makefile.am | 12 ++++++++++++
- 2 files changed, 32 insertions(+)
-
-diff --git a/examples/Makefile.am b/examples/Makefile.am
-index ad635bd..a94f41d 100644
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -74,6 +74,10 @@ LDADD = \
- $(top_builddir)/src/libvirt-admin.la \
- $(NULL)
-
-+if WITH_GNUTLS
-+LDADD += $(top_builddir)/src/libvirt-net-rpc.la
-+endif
-+
- noinst_PROGRAMS = \
- c/admin/client_close \
- c/admin/client_info \
-@@ -111,6 +115,22 @@ c_misc_openauth_SOURCES = c/misc/openauth.c
- examplesdir = $(docdir)/examples
-
- adminexamplesdir = $(examplesdir)/c/admin
-+
-+if WITH_GNUTLS
-+dominfo_info1_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+domsuspend_suspend_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+hellolibvirt_hellolibvirt_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+openauth_openauth_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+endif
-+
- adminexamples_DATA = $(ADMIN_EXAMPLES)
-
- domainexamplesdir = $(examplesdir)/c/domain
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 53df930..2a0a989 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -166,6 +166,12 @@ virt_host_validate_LDADD = \
- $(GLIB_LIBS) \
- $(NULL)
-
-+if WITH_GNUTLS
-+virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- virt_host_validate_CFLAGS = \
- $(AM_CFLAGS) \
- $(NULL)
-@@ -262,6 +268,12 @@ virt_admin_CFLAGS = \
- $(READLINE_CFLAGS)
- BUILT_SOURCES =
-
-+if WITH_GNUTLS
-+virsh_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- if WITH_WIN_ICON
- virsh_LDADD += virsh_win_icon.$(OBJEXT)
-
diff --git a/recipes-extended/libvirt/libvirt_6.3.0.bb b/recipes-extended/libvirt/libvirt_7.2.0.bb
similarity index 61%
rename from recipes-extended/libvirt/libvirt_6.3.0.bb
rename to recipes-extended/libvirt/libvirt_7.2.0.bb
index 41abb06f..cdc7b6de 100644
--- a/recipes-extended/libvirt/libvirt_6.3.0.bb
+++ b/recipes-extended/libvirt/libvirt_7.2.0.bb
@@ -1,7 +1,6 @@
DESCRIPTION = "A toolkit to interact with the virtualization capabilities of recent versions of Linux."
HOMEPAGE = "http://libvirt.org"
LICENSE = "LGPLv2.1+ & GPLv2+"
-LICENSE_${PN}-ptest = "GPLv2+ & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LESSER;md5=4b54a1fd55a448865a0b32d41598759d"
SECTION = "console/tools"
@@ -16,9 +15,7 @@ DEPENDS = "bridge-utils gnutls libxml2 lvm2 avahi parted curl libpcap util-linux
#
RDEPENDS_${PN} = "gettext-runtime"

-RDEPENDS_${PN}-ptest += "make gawk perl bash"
-
-RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd"
+RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd ebtables"
RDEPENDS_libvirt-libvirtd_append_x86-64 = " dmidecode"
RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"

@@ -26,88 +23,33 @@ RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"
RCONFLICTS_${PN}_libvirtd = "connman"

SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
- file://tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch \
file://libvirtd.sh \
file://libvirtd.conf \
file://dnsmasq.conf \
- file://runptest.patch \
- file://run-ptest \
- file://libvirt-use-pkg-config-to-locate-libcap.patch \
- file://0001-to-fix-build-error.patch \
- file://install-missing-file.patch \
- file://0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch \
- file://configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch \
- file://0001-build-drop-unnecessary-libgnu.la-reference.patch \
file://hook_support.py \
file://gnutls-helper.py \
"

-SRC_URI[libvirt.md5sum] = "1bd4435f77924f5ec9928b538daf4a02"
-SRC_URI[libvirt.sha256sum] = "74069438d34082336e99a88146349e21130552b96efc3b7c562f6878127996f5"
+SRC_URI[libvirt.md5sum] = "92044b629216e44adce63224970a54a3"
+SRC_URI[libvirt.sha256sum] = "01f459d0c7ba5009622a628dba1a026200e8f4a299fea783b936a71d7e0ed1d0"

-inherit autotools gettext update-rc.d pkgconfig ptest systemd useradd perlnative
+inherit meson gettext update-rc.d pkgconfig systemd useradd perlnative
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM_${PN} = "-r qemu; -r kvm"
USERADD_PARAM_${PN} = "-r -g qemu -G kvm qemu"

-# Override the default set in autotools.bbclass so that we will use relative pathnames
-# to our local m4 files. This prevents an "Argument list too long" error during configuration
-# if our project is in a directory with an absolute pathname of more than about 125 characters.
-#
-acpaths = "-I ./m4"
-
-CACHED_CONFIGUREVARS += "\
-ac_cv_path_XMLCATLOG=/usr/bin/xmlcatalog \
-ac_cv_path_AUGPARSE=/usr/bin/augparse \
-ac_cv_path_DMIDECODE=/usr/sbin/dmidecode \
-ac_cv_path_DNSMASQ=/usr/bin/dnsmasq \
-ac_cv_path_BRCTL=/usr/sbin/brctl \
-ac_cv_path_TC=/sbin/tc \
-ac_cv_path_UDEVADM=/sbin/udevadm \
-ac_cv_path_MODPROBE=/sbin/modprobe \
-ac_cv_path_IP_PATH=/bin/ip \
-ac_cv_path_IPTABLES_PATH=/usr/sbin/iptables \
-ac_cv_path_IP6TABLES_PATH=/usr/sbin/ip6tables \
-ac_cv_path_MOUNT=/bin/mount \
-ac_cv_path_UMOUNT=/bin/umount \
-ac_cv_path_MKFS=/usr/sbin/mkfs \
-ac_cv_path_SHOWMOUNT=/usr/sbin/showmount \
-ac_cv_path_PVCREATE=/usr/sbin/pvcreate \
-ac_cv_path_VGCREATE=/usr/sbin/vgcreate \
-ac_cv_path_LVCREATE=/usr/sbin/lvcreate \
-ac_cv_path_PVREMOVE=/usr/sbin/pvremove \
-ac_cv_path_VGREMOVE=/usr/sbin/vgremove \
-ac_cv_path_LVREMOVE=/usr/sbin/lvremove \
-ac_cv_path_LVCHANGE=/usr/sbin/lvchange \
-ac_cv_path_VGCHANGE=/usr/sbin/vgchange \
-ac_cv_path_VGSCAN=/usr/sbin/vgscan \
-ac_cv_path_PVS=/usr/sbin/pvs \
-ac_cv_path_VGS=/usr/sbin/vgs \
-ac_cv_path_LVS=/usr/sbin/lvs \
-ac_cv_path_PARTED=/usr/sbin/parted \
-ac_cv_path_DMSETUP=/usr/sbin/dmsetup"
-
-# Ensure that libvirt uses polkit rather than policykit, whether the host has
-# pkcheck installed or not, and ensure the path is correct per our config.
-CACHED_CONFIGUREVARS += "ac_cv_path_PKCHECK_PATH=${bindir}/pkcheck"
-
-# Some other possible paths we are not yet setting
-#ac_cv_path_RPCGEN=
-#ac_cv_path_XSLTPROC=
-#ac_cv_path_RADVD=
-#ac_cv_path_UDEVSETTLE=
-#ac_cv_path_EBTABLES_PATH=
-#ac_cv_path_PKG_CONFIG=
-#ac_cv_path_ac_pt_PKG_CONFIG
-#ac_cv_path_POLKIT_AUTH=
-#ac_cv_path_DTRACE=
-#ac_cv_path_ISCSIADM=
-#ac_cv_path_MSGFMT=
-#ac_cv_path_GMSGFMT=
-#ac_cv_path_XGETTEXT=
-#ac_cv_path_MSGMERGE=
-#ac_cv_path_SCRUB=
-#ac_cv_path_PYTHON=
+
+EXTRA_OEMESON += "--cross-file ${WORKDIR}/meson-${PN}.cross"
+do_write_config_append() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+iptables = '/usr/sbin/iptables'
+ip6tables = '/usr/sbin/ip6tables'
+dmidecode = '/usr/sbin/dmidecode'
+ebtables = '/sbin/ebtables'
+dnsmasq = '/usr/bin/dnsmasq'
+EOF
+}

ALLOW_EMPTY_${PN} = "1"

@@ -166,32 +108,12 @@ SYSTEMD_SERVICE_${PN}-libvirtd = " \
libvirt-guests.service \
virtlockd.socket \
"
-
-
-PRIVATE_LIBS_${PN}-ptest = " \
- libvirt-lxc.so.0 \
- libvirt.so.0 \
- libvirt-qemu.so.0 \
- lockd.so \
- libvirt_driver_secret.so \
- libvirt_driver_nodedev.so \
- libvirt_driver_vbox.so \
- libvirt_driver_interface.so \
- libvirt_driver_uml.so \
- libvirt_driver_network.so \
- libvirt_driver_nwfilter.so \
- libvirt_driver_qemu.so \
- libvirt_driver_storage.so \
- libvirt_driver_lxc.so \
- "
-
# xen-minimal config
#PACKAGECONFIG ??= "xen libxl xen-inotify test remote libvirtd"

# full config
-PACKAGECONFIG ??= "gnutls qemu yajl openvz vmware vbox esx iproute2 lxc test \
- remote macvtap libvirtd netcf udev python ebtables \
- fuse iproute2 firewalld libpcap \
+PACKAGECONFIG ??= "gnutls qemu yajl openvz vmware vbox esx lxc test remote \
+ libvirtd netcf udev python fuse firewalld libpcap \
${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit libcap-ng', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'libxl', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'polkit', '', d)} \
@@ -208,37 +130,34 @@ PACKAGECONFIG_remove_armeb = "numactl"
# enable,disable,depends,rdepends
#
PACKAGECONFIG[gnutls] = ",,,gnutls-bin"
-PACKAGECONFIG[qemu] = "--with-qemu --with-qemu-user=qemu --with-qemu-group=qemu,--without-qemu,qemu,"
-PACKAGECONFIG[yajl] = "--with-yajl,--without-yajl,yajl,yajl"
-PACKAGECONFIG[libxl] = "--with-libxl=${STAGING_DIR_TARGET}/lib,--without-libxl,xen,"
-PACKAGECONFIG[openvz] = "--with-openvz,--without-openvz,,"
-PACKAGECONFIG[vmware] = "--with-vmware,--without-vmware,,"
-PACKAGECONFIG[vbox] = "--with-vbox,--without-vbox,,"
-PACKAGECONFIG[esx] = "--with-esx,--without-esx,,"
-PACKAGECONFIG[hyperv] = "--with-hyperv,--without-hyperv,,"
-PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit,polkit"
-PACKAGECONFIG[lxc] = "--with-lxc,--without-lxc, lxc,"
-PACKAGECONFIG[test] = "--with-test=yes,--with-test=no,,"
-PACKAGECONFIG[remote] = "--with-remote,--without-remote,,"
-PACKAGECONFIG[macvtap] = "--with-macvtap=yes,--with-macvtap=no,libnl,libnl"
-PACKAGECONFIG[libvirtd] = "--with-libvirtd,--without-libvirtd,,"
-PACKAGECONFIG[netcf] = "--with-netcf,--without-netcf,netcf,netcf"
-PACKAGECONFIG[dtrace] = "--with-dtrace,--without-dtrace,,"
-PACKAGECONFIG[udev] = "--with-udev --with-pciaccess,--without-udev,udev libpciaccess,"
-PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux,"
-PACKAGECONFIG[ebtables] = "ac_cv_path_EBTABLES_PATH=/sbin/ebtables,ac_cv_path_EBTABLES_PATH=,ebtables,ebtables"
+PACKAGECONFIG[qemu] = "-Ddriver_qemu=enabled -Dqemu_user=qemu -Dqemu_group=qemu,-Dqemu=disabled,qemu,"
+PACKAGECONFIG[yajl] = "-Dyajl=enabled,-Dyajl=disabled,yajl,yajl"
+PACKAGECONFIG[libxl] = "-Dlibxl=${STAGING_DIR_TARGET}/lib,,xen,"
+PACKAGECONFIG[openvz] = "-Ddriver_openvz=enabled,-Ddriver_openvz=disabled,,"
+PACKAGECONFIG[vmware] = "-Ddriver_vmware=enabled,-Ddriver_vmware=disabled,,"
+PACKAGECONFIG[vbox] = "-Ddriver_vbox=enabled,-Ddriver_vbox=disabled,,"
+PACKAGECONFIG[esx] = "-Ddriver_esx=enabled,-Ddriver_esx=disabled,,"
+PACKAGECONFIG[hyperv] = "-Ddriver_hyperv=enabled,-Ddriver_hyperv=disabled,,"
+PACKAGECONFIG[polkit] = "-Dpolkit=enabled,-Dpolkit=disabled,polkit,polkit"
+PACKAGECONFIG[lxc] = "-Ddriver_lxc=enabled,-Ddriver_lxc=disabled,lxc,"
+PACKAGECONFIG[test] = "-Ddriver_test=enabled,-Ddriver_test=disabled,,"
+PACKAGECONFIG[remote] = "-Ddriver_remote=enabled,-Ddriver_remote=disabled,,"
+PACKAGECONFIG[libvirtd] = "-Ddriver_libvirtd=enabled,-Ddriver_libvirtd=disabled,,"
+PACKAGECONFIG[netcf] = "-Dnetcf=enabled,-Dnetcf=disabled,netcf,netcf"
+PACKAGECONFIG[dtrace] = "-Ddtrace=enabled,-Ddtrace=disabled,,"
+PACKAGECONFIG[udev] = "-Dudev=enabled -Dpciaccess=enabled,-Dudev=disabled,udev libpciaccess,"
+PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux,"
PACKAGECONFIG[python] = ",,python3,"
-PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,cyrus-sasl"
-PACKAGECONFIG[iproute2] = "ac_cv_path_IP_PATH=/sbin/ip,ac_cv_path_IP_PATH=,iproute2,iproute2"
-PACKAGECONFIG[numactl] = "--with-numactl,--without-numactl,numactl,"
-PACKAGECONFIG[fuse] = "--with-fuse,--without-fuse,fuse,"
-PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit,"
-PACKAGECONFIG[libcap-ng] = "--with-capng,--without-capng,libcap-ng,"
-PACKAGECONFIG[wireshark] = "--with-wireshark-dissector,--without-wireshark-dissector,wireshark libwsutil,"
-PACKAGECONFIG[apparmor-profiles] = "--with-apparmor-profiles, --without-apparmor-profiles,"
-PACKAGECONFIG[firewalld] = "--with-firewalld, --without-firewalld,"
-PACKAGECONFIG[libpcap] = "--with-libpcap, --without-libpcap,libpcap,libpcap"
-PACKAGECONFIG[numad] = "--with-numad, --without-numad,"
+PACKAGECONFIG[sasl] = "-Dsasl=enabled,-Dsasl=disabled,cyrus-sasl,cyrus-sasl"
+PACKAGECONFIG[numactl] = "-Dnumactl=enabled,-Dnumactl=disabled,numactl,"
+PACKAGECONFIG[fuse] = "-Dfuse=enabled,-Dfuse=disabled,fuse,"
+PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit,"
+PACKAGECONFIG[libcap-ng] = "-Dcapng=enabled,-Dcapng=disabled,libcap-ng,"
+PACKAGECONFIG[wireshark] = "-Dwireshark_dissector=enabled,-Dwireshark_dissector=disabled,wireshark libwsutil,"
+PACKAGECONFIG[apparmor_profiles] = "-Dapparmor_profiles=true, -Dapparmor_profiles=false,"
+PACKAGECONFIG[firewalld] = "-Dfirewalld=enabled, -Dfirewalld=disabled,"
+PACKAGECONFIG[libpcap] = "-Dlibpcap=enabled, -Dlibpcap=disabled,libpcap,libpcap"
+PACKAGECONFIG[numad] = "-Dnumad=enabled, -Dnumad=disabled,"

# Enable the Python tool support
require libvirt-python.inc
@@ -255,7 +174,7 @@ do_compile() {

cd ${B}
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${B}/src:"
- oe_runmake all
+ ninja all
}

do_install_prepend() {
@@ -278,6 +197,8 @@ do_install_append() {
fi

if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ mkdir -p ${D}/lib
+ mv ${D}/usr/lib/systemd ${D}/lib
# This variable is used by libvirtd.service to start libvirtd in the right mode
sed -i '/#LIBVIRTD_ARGS="--listen"/a LIBVIRTD_ARGS="--listen --daemon"' ${D}/${sysconfdir}/sysconfig/libvirtd

@@ -360,7 +281,7 @@ do_install_append() {
# connection via 127.0.0.1 is available out of box.
install -d ${D}/etc/pki/CA
install -d ${D}/etc/pki/libvirt/private
- install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
+ install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
install -m 0644 ${WORKDIR}/cakey.pem ${D}/${sysconfdir}/pki/libvirt/private/cakey.pem
install -m 0644 ${WORKDIR}/cacert.pem ${D}/${sysconfdir}/pki/CA/cacert.pem
install -m 0644 ${WORKDIR}/serverkey.pem ${D}/${sysconfdir}/pki/libvirt/private/serverkey.pem
@@ -376,10 +297,10 @@ do_install_append() {
chmod 4755 ${D}${bindir}/virt-login-shell
}

-EXTRA_OECONF += " \
- --with-init-script=systemd \
- --with-test-suite \
- --with-runstatedir=/run \
+EXTRA_OEMESON += " \
+ -Dinit_script=systemd \
+ -Drunstatedir=/run \
+ -Dtests=enabled \
"

# gcc9 end up mis-compiling qemuxml2argvtest.o with Og which then
@@ -387,25 +308,6 @@ EXTRA_OECONF += " \
SELECTED_OPTIMIZATION_remove_virtclass-multilib-lib32_mipsarch = "-Og"
SELECTED_OPTIMIZATION_append_virtclass-multilib-lib32_mipsarch = " -O2"

-EXTRA_OEMAKE = "BUILD_DIR=${B} DEST_DIR=${D}${PTEST_PATH} PTEST_DIR=${PTEST_PATH} SYSTEMD_UNIT_DIR=${systemd_system_unitdir}"
-
-PRIVATE_LIBS_${PN}-ptest_append = "libvirt-admin.so.0"
-
-do_compile_ptest() {
- oe_runmake -C tests buildtest-TESTS
-}
-
-do_install_ptest() {
- oe_runmake -C tests install-ptest
-
- find ${S}/tests -maxdepth 1 -type d -exec cp -r {} ${D}${PTEST_PATH}/tests/ \;
-
- # remove .la files for ptest, they aren't required and can trigger QA errors
- for i in `find ${D}${PTEST_PATH} -type f \( -name *.la -o -name *.o \)`; do
- rm -f $i
- done
-}
-
pkg_postinst_${PN}() {
if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
/etc/init.d/populate-volatile.sh update
--
2.27.0


Re: [PATCH 3/3] xtf: update SRCREV and remove multilib dependency

Bertrand Marquis
 

Hi,

On 20 Apr 2021, at 00:08, Christopher Clark via lists.yoctoproject.org <christopher.w.clark=gmail.com@...> wrote:

The latest Xen Test Framework has removed the gcc-multilib dependency.

Signed-off-by: Christopher Clark <christopher.w.clark@...>
XTF is compiling properly in a project without multilib for x86_64.

Reviewed-by: Bertrand Marquis <bertrand.marquis@...>

Cheers
Bertrand

---
recipes-extended/xen/xtf_git.bb | 21 ++-------------------
1 file changed, 2 insertions(+), 19 deletions(-)

diff --git a/recipes-extended/xen/xtf_git.bb b/recipes-extended/xen/xtf_git.bb
index db08643..3580324 100644
--- a/recipes-extended/xen/xtf_git.bb
+++ b/recipes-extended/xen/xtf_git.bb
@@ -6,7 +6,7 @@ LICENSE = "BSD-2-Clause"
# https://static.sched.com/hosted_files/xendeveloperanddesignsummit2017/79/xtf.pdf

SRC_URI = "git://xenbits.xen.org/xtf"
-SRCREV = "8ab15139728a8efd3ebbb60beb16a958a6a93fa1"
+SRCREV = "b0bc49846c154b79243f39d461a4515804bcaf53"

COMPATIBLE_HOST = '(x86_64.*).*-linux'

@@ -18,23 +18,6 @@ S = "${WORKDIR}/git"

inherit python3native

-# To build 32-bit binaries some files from 32-bit glibc are needed.
-# To enable multilib, please add the following to your local.conf -:
-#
-# require conf/multilib.conf
-# MULTILIBS = "multilib:lib32"
-# DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
-
-# Use this multilib prefix for x86 32-bit to match local.conf:
-MLPREFIX32 = "lib32-"
-# Add the multilib 32-bit glibc to DEPENDS only when necessary:
-# The DEPENDS on a multilib 32-bit glibc is only added when target is x86-64
-# This x86-64 override is never intended for native use, so clear that.
-GLIBC32 = ""
-GLIBC32_x86-64 = "${MLPREFIX32}glibc"
-GLIBC32_class-native = ""
-DEPENDS += "${GLIBC32}"
-
PACKAGES = "${PN}"

FILES_${PN} = " \
@@ -47,7 +30,7 @@ RDEPENDS_${PN} = " \
"

do_compile() {
- oe_runmake CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS} -I${RECIPE_SYSROOT}/../${MLPREFIX32}recipe-sysroot/usr/include" \
+ oe_runmake CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" \
CPP="${CPP}" \
OBJCOPY="${OBJCOPY}" \
PYTHON="${PYTHON}"
--
2.25.1




Re: [PATCH 2/3] xen-tools: remove multilib build requirement for x86-64

Bertrand Marquis
 

Hi,

On 20 Apr 2021, at 00:08, Christopher Clark <christopher.w.clark@...> wrote:

Xen 4.15 added support for standalone x86-64 hvmloader build and
previous commit provided Xen 4.14 backports.

Signed-off-by: Christopher Clark <christopher.w.clark@...>
Reviewed-by: Bertrand Marquis <bertrand.marquis@...>

Cheers
Bertrand

---
recipes-extended/xen/xen-tools.inc | 37 ------------------------------
1 file changed, 37 deletions(-)

diff --git a/recipes-extended/xen/xen-tools.inc b/recipes-extended/xen/xen-tools.inc
index 722c503..3560e79 100644
--- a/recipes-extended/xen/xen-tools.inc
+++ b/recipes-extended/xen/xen-tools.inc
@@ -6,29 +6,6 @@ COMPATIBLE_HOST = 'i686-.*-linux|(x86_64.*).*-linux|aarch64.*-linux|arm-.*-linux
inherit setuptools3 update-rc.d systemd deploy
require xen-blktap.inc

-# To build hvmloader, which is needed on x86-64 targets when 'hvm' is enabled
-# in PACKAGECONFIG, to support running HVM-mode guest VMs, some files from
-# 32-bit glibc are needed.
-# Add the multilib 32-bit glibc to DEPENDS only when necessary.
-#
-# To enable multilib, please add the following to your local.conf -:
-#
-# require conf/multilib.conf
-# MULTILIBS = "multilib:lib32"
-# DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
-
-# Use this multilib prefix for x86 32-bit to match local.conf:
-MLPREFIX32 = "lib32-"
-
-# The DEPENDS on a multilib 32-bit glibc is only added when target is x86-64
-# and 'hvm' is enabled in PACKAGECONFIG.
-# This x86-64 override is never intended for native use, so clear that.
-GLIBC32 = ""
-GLIBC32_x86-64 = \
- "${@bb.utils.contains('PACKAGECONFIG', 'hvm', '${MLPREFIX32}glibc', '', d)}"
-GLIBC32_class-native = ""
-DEPENDS += "${GLIBC32}"
-
RDEPENDS_${PN} = "\
bash perl xz \
${PN}-console \
@@ -736,16 +713,6 @@ SYSTEMD_SERVICE_${PN}-xencommons = " \
"
SYSTEMD_SERVICE_${PN}-xendomains = "xendomains.service"

-# To build hvmloader, which is needed on x86-64 targets when 'hvm' is enabled
-# in PACKAGECONFIG, additional CFLAGS are needed to set the 32-bit sysroot.
-RECIPE_SYSROOT32 = "${WORKDIR}/${MLPREFIX32}recipe-sysroot"
-ADD_SYSROOT32_CFLAGS = ""
-ADD_SYSROOT32_CFLAGS_x86-64 = \
- "${@bb.utils.contains('PACKAGECONFIG', 'hvm', \
- 'CFLAGS += "--sysroot=${RECIPE_SYSROOT32}"', '', d)}"
-# This x86-64 override is never intended for native use, so clear that.
-ADD_SYSROOT32_CFLAGS_class-native = ""
-
EXTRA_OECONF += " \
--with-systemd=${systemd_unitdir}/system \
--with-systemd-modules-load=${systemd_unitdir}/modules-load.d \
@@ -756,10 +723,6 @@ EXTRA_OECONF += " \

do_configure() {
do_configure_common
-
- if [ -n '${ADD_SYSROOT32_CFLAGS}' ] ; then
- echo '${ADD_SYSROOT32_CFLAGS}' >>"${S}/tools/firmware/Rules.mk"
- fi
}

do_compile() {
--
2.25.1


Re: [PATCH 1/3] xen-tools: add patches for 4.14 to enable dropping multilib build

Bertrand Marquis
 

Hi Christopher,

On 20 Apr 2021, at 00:08, Christopher Clark via lists.yoctoproject.org <christopher.w.clark=gmail.com@...> wrote:

Backport Xen patches to enable hvmloader to be built without needing
32-bit glibc.

Signed-off-by: Christopher Clark <christopher.w.clark@...>
This is really awesome, the multilib thing was really painful and it is nice to have a solution.

I reviewed and checked compilation of all versions of xen available for arm32, arm64 and x86_64 (without multilib activated) using you complete serie.

Reviewed-by: Bertrand Marquis <bertrand.marquis@...>

Cheers
Bertrand

---
...-stand-alone-set-of-headers-Xen-4.14.patch | 178 ++++++++++++++++++
...d-firmware-as-ffreestanding-Xen-4.14.patch | 83 ++++++++
recipes-extended/xen/xen-tools_4.14.bb | 2 +
3 files changed, 263 insertions(+)
create mode 100644 recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch
create mode 100644 recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch

diff --git a/recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch b/recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch
new file mode 100644
index 0000000..7b062b7
--- /dev/null
+++ b/recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch
@@ -0,0 +1,178 @@
+From 73b13705af7c3bb8fdf11932eb68788d090a443f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@...>
+Date: Thu, 4 Mar 2021 16:49:00 +0100
+Subject: [PATCH] firmware: provide a stand alone set of headers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The current build of the firmware relies on having 32bit compatible
+headers installed in order to build some of the 32bit firmware.
+Usually this can be solved by using the -ffreestanding compiler option
+which drops the usage of the system headers in favor of a private set
+of freestanding headers provided by the compiler itself that are not
+tied to libc.
+
+However such option is broken at least in the gcc compiler provided in
+Alpine Linux, as the system include path (ie: /usr/include) takes
+precedence over the gcc private include path:
+
+#include <...> search starts here:
+ /usr/include
+ /usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/include
+
+And the headers in /usr/include are exclusively 64bit.
+
+Since -ffreestanding is currently broken on at least that distro, and
+for resilience against future compilers also having the option broken
+provide a set of stand alone 32bit headers required for the firmware
+build.
+
+Signed-off-by: Roger Pau Monné <roger.pau@...>
+Reviewed-by: Jan Beulich <jbeulich@...>
+Release-Acked-by: Ian Jackson <iwj@...>
+Applied to Xen 4.14 by: Christopher Clark <christopher.w.clark@...>
+---
+ tools/firmware/Rules.mk | 13 +++++++
+ tools/firmware/include/stdarg.h | 10 +++++
+ tools/firmware/include/stdbool.h | 9 +++++
+ tools/firmware/include/stddef.h | 10 +++++
+ tools/firmware/include/stdint.h | 39 +++++++++++++++++++
+ tools/firmware/rombios/32bit/rombios_compat.h | 4 +-
+ 6 files changed, 82 insertions(+), 3 deletions(-)
+ create mode 100644 tools/firmware/include/stdarg.h
+ create mode 100644 tools/firmware/include/stdbool.h
+ create mode 100644 tools/firmware/include/stddef.h
+ create mode 100644 tools/firmware/include/stdint.h
+
+diff --git a/tools/firmware/include/stdarg.h b/tools/firmware/include/stdarg.h
+new file mode 100644
+index 0000000000..c5e3761cd2
+--- /dev/null
++++ b/tools/firmware/include/stdarg.h
+@@ -0,0 +1,10 @@
++#ifndef _STDARG_H_
++#define _STDARG_H_
++
++typedef __builtin_va_list va_list;
++#define va_copy(dest, src) __builtin_va_copy(dest, src)
++#define va_start(ap, last) __builtin_va_start(ap, last)
++#define va_end(ap) __builtin_va_end(ap)
++#define va_arg __builtin_va_arg
++
++#endif
+diff --git a/tools/firmware/include/stdbool.h b/tools/firmware/include/stdbool.h
+new file mode 100644
+index 0000000000..0cf76b106c
+--- /dev/null
++++ b/tools/firmware/include/stdbool.h
+@@ -0,0 +1,9 @@
++#ifndef _STDBOOL_H_
++#define _STDBOOL_H_
++
++#define bool _Bool
++#define true 1
++#define false 0
++#define __bool_true_false_are_defined 1
++
++#endif
+diff --git a/tools/firmware/include/stddef.h b/tools/firmware/include/stddef.h
+new file mode 100644
+index 0000000000..c7f974608a
+--- /dev/null
++++ b/tools/firmware/include/stddef.h
+@@ -0,0 +1,10 @@
++#ifndef _STDDEF_H_
++#define _STDDEF_H_
++
++typedef __SIZE_TYPE__ size_t;
++
++#define NULL ((void*)0)
++
++#define offsetof(t, m) __builtin_offsetof(t, m)
++
++#endif
+diff --git a/tools/firmware/include/stdint.h b/tools/firmware/include/stdint.h
+new file mode 100644
+index 0000000000..16a0b6de19
+--- /dev/null
++++ b/tools/firmware/include/stdint.h
+@@ -0,0 +1,39 @@
++#ifndef _STDINT_H_
++#define _STDINT_H_
++
++#if defined(__LP64__) || defined(__P64__)
++#error "32bit only header"
++#endif
++
++typedef unsigned char uint8_t;
++typedef signed char int8_t;
++
++typedef unsigned short uint16_t;
++typedef signed short int16_t;
++
++typedef unsigned int uint32_t;
++typedef signed int int32_t;
++
++typedef unsigned long long uint64_t;
++typedef signed long long int64_t;
++
++#define INT8_MIN (-0x7f-1)
++#define INT16_MIN (-0x7fff-1)
++#define INT32_MIN (-0x7fffffff-1)
++#define INT64_MIN (-0x7fffffffffffffffll-1)
++
++#define INT8_MAX 0x7f
++#define INT16_MAX 0x7fff
++#define INT32_MAX 0x7fffffff
++#define INT64_MAX 0x7fffffffffffffffll
++
++#define UINT8_MAX 0xff
++#define UINT16_MAX 0xffff
++#define UINT32_MAX 0xffffffffu
++#define UINT64_MAX 0xffffffffffffffffull
++
++typedef uint32_t uintptr_t;
++
++#define UINTPTR_MAX UINT32_MAX
++
++#endif
+diff --git a/tools/firmware/rombios/32bit/rombios_compat.h b/tools/firmware/rombios/32bit/rombios_compat.h
+index 3fe7d67721..8ba4c17ffd 100644
+--- a/tools/firmware/rombios/32bit/rombios_compat.h
++++ b/tools/firmware/rombios/32bit/rombios_compat.h
+@@ -8,9 +8,7 @@
+
+ #define ADDR_FROM_SEG_OFF(seg, off) (void *)((((uint32_t)(seg)) << 4) + (off))
+
+-typedef unsigned char uint8_t;
+-typedef unsigned short int uint16_t;
+-typedef unsigned int uint32_t;
++#include <stdint.h>
+
+ typedef uint8_t Bit8u;
+ typedef uint16_t Bit16u;
+diff --git a/tools/firmware/Rules.mk b/tools/firmware/Rules.mk
+index 26bbddccd4..cb388b7011 100644
+--- a/tools/firmware/Rules.mk
++++ b/tools/firmware/Rules.mk
+@@ -17,3 +17,16 @@ $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
+
+ # Extra CFLAGS suitable for an embedded type of environment.
+ CFLAGS += -fno-builtin -msoft-float
++
++# Use our own set of stand alone headers to build firmware.
++#
++# Ideally using -ffreestanding should be enough, but that relies on the
++# compiler having the right order for include paths (ie: compiler private
++# headers before system ones) or the libc headers having proper arch-agnostic
++# freestanding support. This is not the case in Alpine at least which searches
++# system headers before compiler ones and has arch-specific libc headers. This
++# has been reported upstream:
++# https://gitlab.alpinelinux.org/alpine/aports/-/issues/12477
++# In the meantime (and for resilience against broken systems) use our own set
++# of headers that provide what's needed for the firmware build.
++CFLAGS += -nostdinc -I$(XEN_ROOT)/tools/firmware/include
+--
+2.25.1
+
diff --git a/recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch b/recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch
new file mode 100644
index 0000000..001b196
--- /dev/null
+++ b/recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch
@@ -0,0 +1,83 @@
+From 0eae016b6e3dce69e3fb86aca5c4f221591a2f12 Mon Sep 17 00:00:00 2001
+From: Andrew Cooper <andrew.cooper3@...>
+Date: Thu, 25 Feb 2021 19:15:08 +0000
+Subject: [PATCH] tools/firmware: Build firmware as -ffreestanding
+
+firmware should always have been -ffreestanding, as it doesn't execute in the
+host environment. -ffreestanding implies -fno-builtin, so replace the option.
+
+inttypes.h isn't a freestanding header, but the 32bitbios_support.c only wants
+the stdint.h types so switch to the more appropriate include.
+
+This removes the build time dependency on a 32bit libc just to compile the
+hvmloader and friends.
+
+Update README and the TravisCI configuration.
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@...>
+Reviewed-by: Jan Beulich <jbeulich@...>
+Reviewed-by: Ian Jackson <iwj@...>
+Release-Acked-by: Ian Jackson <iwj@...>
+Applied to m-v Xen 4.14 series: Christopher Clark <christopher.w.clark@...>
+---
+ .travis.yml | 1 -
+ README | 3 ---
+ tools/firmware/Rules.mk | 2 +-
+ tools/firmware/hvmloader/32bitbios_support.c | 2 +-
+ 4 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 15ca9e9047..2362475f7a 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -58,7 +58,6 @@ addons:
+ - acpica-tools
+ - bin86
+ - bcc
+- - libc6-dev-i386
+ - libnl-3-dev
+ - ocaml-nox
+ - libfindlib-ocaml-dev
+diff --git a/README b/README
+index 6e15242ae1..8c99c30986 100644
+--- a/README
++++ b/README
+@@ -62,9 +62,6 @@ provided by your OS distributor:
+ * GNU bison and GNU flex
+ * GNU gettext
+ * ACPI ASL compiler (iasl)
+- * Libc multiarch package (e.g. libc6-dev-i386 / glibc-devel.i686).
+- Required when building on a 64-bit platform to build
+- 32-bit components which are enabled on a default build.
+
+ In addition to the above there are a number of optional build
+ prerequisites. Omitting these will cause the related features to be
+diff --git a/tools/firmware/Rules.mk b/tools/firmware/Rules.mk
+index cb388b7011..9f78a7dec9 100644
+--- a/tools/firmware/Rules.mk
++++ b/tools/firmware/Rules.mk
+@@ -16,7 +16,7 @@ CFLAGS += -Werror
+ $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
+
+ # Extra CFLAGS suitable for an embedded type of environment.
+-CFLAGS += -fno-builtin -msoft-float
++CFLAGS += -ffreestanding -msoft-float
+
+ # Use our own set of stand alone headers to build firmware.
+ #
+diff --git a/tools/firmware/hvmloader/32bitbios_support.c b/tools/firmware/hvmloader/32bitbios_support.c
+index 114135022e..ef681d4f57 100644
+--- a/tools/firmware/hvmloader/32bitbios_support.c
++++ b/tools/firmware/hvmloader/32bitbios_support.c
+@@ -20,7 +20,7 @@
+ * this program; If not, see <http://www.gnu.org/licenses/>.
+ */
+
+-#include <inttypes.h>
++#include <stdint.h>
+ #include <elf.h>
+ #ifdef __sun__
+ #include <sys/machelf.h>
+--
+2.25.1
+
diff --git a/recipes-extended/xen/xen-tools_4.14.bb b/recipes-extended/xen/xen-tools_4.14.bb
index a79b41d..10982a2 100644
--- a/recipes-extended/xen/xen-tools_4.14.bb
+++ b/recipes-extended/xen/xen-tools_4.14.bb
@@ -6,6 +6,8 @@ XEN_BRANCH ?= "stable-${XEN_REL}"
SRC_URI = " \
git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
file://0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch \
+ file://0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch \
+ file://0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch \
"

LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
--
2.25.1




Re: [PATCH v2] libvirt: uprev v6.3 -> v7.2

Xu, Yanfei
 

On 4/21/21 5:18 AM, Bruce Ashfield wrote:
[Please note: This e-mail is from an EXTERNAL e-mail address]
On Sun, Apr 18, 2021 at 11:37 PM Xu, Yanfei <yanfei.xu@...> wrote:

From: Yanfei Xu <yanfei.xu@...>

This upgrade spans 9 small release. The detailed realese logs could
refer to: https://gitlab.com/libvirt/libvirt/-/blob/master/NEWS.rst

Libvirt's buildsystem has changed to meson, So this upgrade drop some
obsolete patches applied to makefile.

Due to libvirt's meson currently doesn't support to explicit the runtime
binariy path. I made a patch which is
0001-meson-add-options-to-explicit-binaries-path.patch for solving the
problem.
I asked for some advice on this during a yocto weekly call today, and
Ross had some feedback (so I've added him here)
I'll try and summarize what we talked about, but I'm sure I'll mess it
up .. which is why I added Ross.
I was looking at https://mesonbuild.com/Cross-compilation.html to try
and understand a bit more.
Anyway, the advice was to pass native=True/False depending on
whether or not it is a build or runtime binary to find. I didn't see the
exact syntax on that page I referenced, but hopefully that makes sense
to you (I also didn't see it in the patch). I did see a few things in the
qemu recipe and the bbclass, but not that exact syntax.
Ross also mentioned the ability to use a file to list the binaries, versus
needing the option list. I did find references that.
i.e:
[binaries]
addr2line = /path/to/addr2line
And then we pass something like: --cross-file=<the file with options>
I see that in the bbclass and other recipes.
Had you already tried that (and I missed it) ? Or do those seem like
viable options to simplify the patch even more ?
Bruce
You didn't miss anything, and the approach which you suggest works for me and is easier to use. Will use it in v3!

Thanks,
Yanfei


I ran libvirt testcase and ovs testcase for this upgrade, the summary
as follow:

libvirt_test (keyword: ) test results:
*1 Run libvirt_test testing(do_test1) PASS
*2 Check result (virsh_local_capabilities) PASS
*3 Check result (virsh_local_domcapabilities) PASS
*4 Check result (virsh_local_freecell) PASS
*5 Check result (virsh_local_help) PASS
*6 Check result (virsh_local_hostname) PASS
*7 Check result (virsh_local_iface-begin) PASS
*8 Check result (virsh_local_iface-commit) PASS
*9 Check result (virsh_local_iface-list) PASS
*10 Check result (virsh_local_list) PASS
*11 Check result (virsh_local_maxvcpus) PASS
*12 Check result (virsh_local_net-list) PASS
*13 Check result (virsh_local_nodecpumap) PASS
*14 Check result (virsh_local_nodecpustats) PASS
*15 Check result (virsh_local_nodedev-list) PASS
*16 Check result (virsh_local_nodeinfo) PASS
*17 Check result (virsh_local_node-memory-tune) PASS
*18 Check result (virsh_local_nodememstats) PASS
*19 Check result (virsh_local_nwfilter-binding-list) PASS
*20 Check result (virsh_local_nwfilter-list) PASS
*21 Check result (virsh_local_pool-capabilities) PASS
*22 Check result (virsh_local_pool-list) PASS
*23 Check result (virsh_local_pwd) PASS
*24 Check result (virsh_local_secret-list) PASS
*25 Check result (virsh_local_sysinfo) PASS
*26 Check result (virsh_local_uri) PASS
*27 Check result (virsh_local_version) PASS

openvswitch_vm2vm (keyword: qemux86) test results:
*1 openvswitch_vm2vm testing(do_test1) PASS
*2 Check result (ovs_vm2vm_boot_guest1) PASS
*3 Check result (ovs_vm2vm_boot_guest2) PASS
*4 Check result (ovs_vm2vm_netperf_test) PASS
*5 Check result (ovs_vm2vm_destroy_guest1) PASS
*6 Check result (ovs_vm2vm_destroy_guest2) PASS
*7 check testcase call trace(do_check_call_trace) PASS

Signed-off-by: Yanfei Xu <yanfei.xu@...>
---
v1-->v2:
1.fix build failure caused by "getent".
2.fix apply failure.
3.drop ptest configurations in libvirt_7.2.0.bb
4.add test log in commit messages.

conf/layer.conf | 2 +
recipes-extended/libvirt/libvirt-python.inc | 4 +-
...drop-unnecessary-libgnu.la-reference.patch | 31 ---
...dd-options-to-explicit-binaries-path.patch | 86 ++++++++
.../libvirt/0001-to-fix-build-error.patch | 47 ----
...-search-for-rpc-rpc.h-in-the-sysroot.patch | 34 ---
.../libvirt/install-missing-file.patch | 50 -----
...read-safety-in-lxc-callback-handling.patch | 63 ------
...virt-use-pkg-config-to-locate-libcap.patch | 43 ----
.../libvirt/qemu-fix-crash-in-qemuOpen.patch | 39 ----
.../libvirt/libvirt/runptest.patch | 116 ----------
...t-net-rpc-to-virt-host-validate-when.patch | 91 --------
.../{libvirt_6.3.0.bb => libvirt_7.2.0.bb} | 200 +++++-------------
13 files changed, 141 insertions(+), 665 deletions(-)
delete mode 100644 recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
create mode 100644 recipes-extended/libvirt/libvirt/0001-meson-add-options-to-explicit-binaries-path.patch
delete mode 100644 recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
delete mode 100644 recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
delete mode 100644 recipes-extended/libvirt/libvirt/install-missing-file.patch
delete mode 100644 recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
delete mode 100644 recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
delete mode 100644 recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
delete mode 100644 recipes-extended/libvirt/libvirt/runptest.patch
delete mode 100644 recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
rename recipes-extended/libvirt/{libvirt_6.3.0.bb => libvirt_7.2.0.bb} (62%)

diff --git a/conf/layer.conf b/conf/layer.conf
index f48ec25..0f0126b 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -67,3 +67,5 @@ K8S_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/k8s-versions.inc"
USER_CLASSES_append = " meta-virt-cfg"
USER_CLASSES_append = " meta-virt-k8s-cfg"
USER_CLASSES_append = " meta-virt-xen-cfg"
+
+HOSTTOOLS_NONFATAL += "getent"
diff --git a/recipes-extended/libvirt/libvirt-python.inc b/recipes-extended/libvirt/libvirt-python.inc
index bcd7657..0c661af 100644
--- a/recipes-extended/libvirt/libvirt-python.inc
+++ b/recipes-extended/libvirt/libvirt-python.inc
@@ -17,8 +17,8 @@ FILES_${PN}-python = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"

SRC_URI += "http://libvirt.org/sources/python/libvirt-python-${PV}.tar.gz;name=libvirt_python"

-SRC_URI[libvirt_python.md5sum] = "4cf898350ee9a47f94986d402c153bdb"
-SRC_URI[libvirt_python.sha256sum] = "c772421ecc144f098f4ab15db700c62db9b9e6e76b876217edcfd62e9ce02750"
+SRC_URI[libvirt_python.md5sum] = "19bf22414a43d358581b9259b52047a7"
+SRC_URI[libvirt_python.sha256sum] = "c0c3bac54c55622e17927b09cd9843869600d71842fb072c99491fe2608dcee7"

export LIBVIRT_API_PATH = "${S}/docs/libvirt-api.xml"
export LIBVIRT_CFLAGS = "-I${S}/include"
diff --git a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch b/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
deleted file mode 100644
index f02a5d6..0000000
--- a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 30a056069cb35804434fb036e51ae97f33c02025 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@...>
-Date: Sat, 7 Mar 2020 21:36:27 -0500
-Subject: [PATCH] build: drop unnecessary libgnu.la reference
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-
----
- tools/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 2a0a989..93fe283 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -168,7 +168,6 @@ virt_host_validate_LDADD = \
-
- if WITH_GNUTLS
- virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
-@@ -270,7 +269,6 @@ BUILT_SOURCES =
-
- if WITH_GNUTLS
- virsh_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
diff --git a/recipes-extended/libvirt/libvirt/0001-meson-add-options-to-explicit-binaries-path.patch b/recipes-extended/libvirt/libvirt/0001-meson-add-options-to-explicit-binaries-path.patch
new file mode 100644
index 0000000..4c545d4
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt/0001-meson-add-options-to-explicit-binaries-path.patch
@@ -0,0 +1,86 @@
+From 2e061ccf093063267277893cd5cacc9e7188c629 Mon Sep 17 00:00:00 2001
+From: Yanfei Xu <yanfei.xu@...>
+Date: Thu, 25 Mar 2021 16:24:04 +0800
+Subject: [PATCH] meson: add options to explicit binaries path
+
+In cross compile evironment, path of binaries is possiblely different
+between target and host. Let's add options to explicit binaries path
+to solve this problem.
+
+Upstream-Status: Pending
+
+Signed-off-by: Yanfei Xu <yanfei.xu@...>
+---
+ meson.build | 18 ++++++++++++------
+ meson_options.txt | 23 +++++++++++++++++++++++
+ 2 files changed, 35 insertions(+), 6 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 369548f127..6c93be8e4b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -943,18 +943,24 @@ optional_programs = [
+ 'udevadm',
+ ]
+
++# if -Dxxx-path option is found, use that. Otherwise, check in $PATH,
++# /usr/sbin, /sbin, and fall back to the default from middle column.
+ foreach name : optional_programs
+- prog = find_program(name, required: false, dirs: libvirt_sbin_path)
+ varname = name.underscorify()
+- if prog.found()
+- prog_path = prog.path()
++ prog_path = get_option(name + '-path')
++ if prog_path != ''
++ message('Using @1@ for @0@'.format(name, prog_path))
+ else
+- prog_path = name
++ prog = find_program(name, required: false, dirs: libvirt_sbin_path)
++ if prog.found()
++ prog_path = prog.path()
++ else
++ prog_path = name
++ endif
++ set_variable('@0@_prog'.format(varname), prog)
+ endif
+-
+ conf.set_quoted(varname.to_upper(), prog_path)
+ conf.set_quoted('@0@_PATH'.format(varname.to_upper()), prog_path)
+- set_variable('@0@_prog'.format(varname), prog)
+ endforeach
+
+
+diff --git a/meson_options.txt b/meson_options.txt
+index e5d79c2b6b..f06f46c7bb 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -102,3 +102,26 @@ option('numad', type: 'feature', value: 'auto', description: 'use numad to manag
+ option('pm_utils', type: 'feature', value: 'auto', description: 'use pm-utils for power management')
+ option('sysctl_config', type: 'feature', value: 'auto', description: 'Whether to install sysctl configs')
+ option('tls_priority', type: 'string', value: 'NORMAL', description: 'set the default TLS session priority string')
++
++
++option('addr2line-path', type : 'string', description : 'path to addr2line')
++option('augparse-path', type : 'string', description : 'path to augparse')
++option('dmidecode-path', type : 'string', description : 'path to dmidecode')
++option('dnsmasq-path', type : 'string', description : 'path to dnsmasq')
++option('ebtables-path', type : 'string', description : 'path to ebtables')
++option('flake8-path', type : 'string', description : 'path to flake8')
++option('ip-path', type : 'string', description : 'path to ip')
++option('ip6tables-path', type : 'string', description : 'path to ip6tables')
++option('iptables-path', type : 'string', description : 'path to iptables')
++option('iscsiadm-path', type : 'string', description : 'path to iscsiadm')
++option('mdevctl-path', type : 'string', description : 'path to mdevctl')
++option('mm-ctl-path', type : 'string', description : 'path to mm-ctl')
++option('modprobe-path', type : 'string', description : 'path to modprobe')
++option('ovs-vsctl-path', type : 'string', description : 'path to ovs-vsctl')
++option('pdwtags-path', type : 'string', description : 'path to pdwtags')
++option('radvd-path', type : 'string', description : 'path to radvd')
++option('rmmod-path', type : 'string', description : 'path to rmmod')
++option('scrub-path', type : 'string', description : 'path to scrub')
++option('tc-path', type : 'string', description : 'path to tc')
++option('udevadm-path', type : 'string', description : 'path to udevadm')
++
+--
+2.27.0
+
diff --git a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch b/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
deleted file mode 100644
index b0148e5..0000000
--- a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 3566bcacaa6408fb8f655d1749a20b2f30e0c765 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@...>
-Date: Fri, 31 Jul 2015 03:17:07 +0900
-Subject: [PATCH] to fix build error
-
-The error likes as following
-
-| Generating internals/command.html.tmp
-| /bin/sh: line 3: internals/command.html.tmp: No such file or directory
-| rm: Generating internals/locking.html.tmp
-| cannot remove `internals/command.html.tmp': No such file or directory
-| make[3]: *** [internals/command.html.tmp] Error 1
-| make[3]: *** Waiting for unfinished jobs....
-
-Signed-off-by: Lei Maohui <leimaohui@...>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@...>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- docs/Makefile.am | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/docs/Makefile.am b/docs/Makefile.am
-index ce3d296..2c8180f 100644
---- a/docs/Makefile.am
-+++ b/docs/Makefile.am
-@@ -366,7 +366,7 @@ EXTRA_DIST= \
- aclperms.htmlinc \
- $(schema_DATA)
-
--acl_generated = aclperms.htmlinc
-+acl.html:: $(srcdir)/aclperms.htmlinc
-
- aclperms.htmlinc: $(top_srcdir)/src/access/viraccessperm.h \
- $(top_srcdir)/scripts/genaclperms.py Makefile.am
-@@ -432,8 +432,7 @@ manpages/%.html.in: manpages/%.rst
- $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \
- $(RST2HTML) --strict $< > $@ || { rm $@ && exit 1; }
-
--%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \
-- $(acl_generated)
-+%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl
- $(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \
- genhtmlin=`echo $@ | sed -e 's/.tmp/.in/'`; \
- rst=`echo $@ | sed -e 's/.html.tmp/.rst/'`; \
diff --git a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch b/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
deleted file mode 100644
index 395d561..0000000
--- a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 79f5975db01af0599860ccca7ef44b0e27105a04 Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@...>
-Date: Thu, 10 May 2018 12:05:04 -0400
-Subject: [PATCH] configure.ac: search for rpc/rpc.h in the sysroot
-
-We want to avoid host contamination and use the sysroot as the base
-directory for our search so add the '=' the the '-I' when searching
-for libtirpc's rpc.h header.
-
-Upstream-Status: Inappropriate [old release]
-
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- m4/virt-xdr.m4 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/m4/virt-xdr.m4 b/m4/virt-xdr.m4
-index 8375415..12b51f7 100644
---- a/m4/virt-xdr.m4
-+++ b/m4/virt-xdr.m4
-@@ -30,10 +30,10 @@ AC_DEFUN([LIBVIRT_CHECK_XDR], [
- ])
- with_xdr="yes"
-
-- dnl Recent glibc requires -I/usr/include/tirpc for <rpc/rpc.h>
-+ dnl Recent glibc requires -I=/usr/include/tirpc for <rpc/rpc.h>
- old_CFLAGS=$CFLAGS
- AC_CACHE_CHECK([where to find <rpc/rpc.h>], [lv_cv_xdr_cflags], [
-- for add_CFLAGS in '' '-I/usr/include/tirpc' 'missing'; do
-+ for add_CFLAGS in '' '-I=/usr/include/tirpc' 'missing'; do
- if test x"$add_CFLAGS" = xmissing; then
- lv_cv_xdr_cflags=missing; break
- fi
diff --git a/recipes-extended/libvirt/libvirt/install-missing-file.patch b/recipes-extended/libvirt/libvirt/install-missing-file.patch
deleted file mode 100644
index 6aa36df..0000000
--- a/recipes-extended/libvirt/libvirt/install-missing-file.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From aa75f5136066d239d48a21373b3d96ee12378e8d Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Wed, 8 May 2019 17:24:17 +0800
-Subject: [PATCH] Install missing conf file
-
-openvzutilstest.conf file is needed by openvzutilstest test.
-
-Upstream-Status: Inapproriate
-
-Signed-off-by: Catalin Enache <catalin.enache@...>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@...>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- tests/Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 4a808dd..0c3e799 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -173,6 +173,7 @@ EXTRA_DIST = \
- $(NULL)
-
- test_helpers = commandhelper ssh
-+test_misc =
- test_programs = virshtest sockettest \
- virhostcputest virbuftest \
- commandtest seclabeltest \
-@@ -311,6 +312,7 @@ endif WITH_LXC
-
- if WITH_OPENVZ
- test_programs += openvzutilstest
-+test_misc += openvzutilstest.conf
- endif WITH_OPENVZ
-
- if WITH_ESX
-@@ -1551,7 +1553,7 @@ endif ! WITH_LINUX
-
- buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-
--PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+PTESTS = $(TESTS) $(test_helpers) $(test_misc) test-lib.sh virschematest
-
- install-ptest:
- list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
diff --git a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch b/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
deleted file mode 100644
index 558d5ef..0000000
--- a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From ad5d9cee87357f9f38f62583119606ef95ba10df Mon Sep 17 00:00:00 2001
-From: Bogdan Purcareata <bogdan.purcareata@...>
-Date: Fri, 24 May 2013 16:46:00 +0300
-Subject: [PATCH] Fix thread safety in LXC callback handling
-
-Signed-off-by: Bogdan Purcareata <bogdan.purcareata@...>
----
- src/lxc/lxc_process.c | 18 +++++++++++++++++-
- 1 file changed, 17 insertions(+), 1 deletion(-)
-
-diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
-index aaa81a7..0eadc67 100644
---- a/src/lxc/lxc_process.c
-+++ b/src/lxc/lxc_process.c
-@@ -609,8 +609,13 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- virLXCProtocolExitStatus status,
- virDomainObjPtr vm)
- {
-+ virLXCDriverPtr driver = lxc_driver;
- virLXCDomainObjPrivatePtr priv = vm->privateData;
-
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
- switch (status) {
- case VIR_LXC_PROTOCOL_EXIT_STATUS_SHUTDOWN:
- priv->stopReason = VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN;
-@@ -628,6 +633,8 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- }
- VIR_DEBUG("Domain shutoff reason %d (from status %d)",
- priv->stopReason, status);
-+
-+ virObjectUnlock(vm);
- }
-
- /* XXX a little evil */
-@@ -636,12 +643,21 @@ static void virLXCProcessMonitorInitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- pid_t initpid,
- virDomainObjPtr vm)
- {
-- virLXCDomainObjPrivatePtr priv = vm->privateData;
-+ virLXCDriverPtr driver = lxc_driver;
-+ virLXCDomainObjPrivatePtr priv;
-+
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
-+ priv = vm->privateData;
- priv->initpid = initpid;
- virDomainAuditInit(vm, initpid);
-
- if (virDomainSaveStatus(lxc_driver->caps, lxc_driver->stateDir, vm) < 0)
- VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name);
-+
-+ virObjectUnlock(vm);
- }
-
- static virLXCMonitorCallbacks monitorCallbacks = {
---
-1.7.11.7
-
diff --git a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch b/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
deleted file mode 100644
index 87b5591..0000000
--- a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 94bd514e1b6e602a48285db94e65050f8f0c2585 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@...>
-Date: Wed, 8 Apr 2015 13:03:03 -0400
-Subject: [PATCH] libvirt: use pkg-config to locate libcap
-
-libvirt wants to use pcap-config to locate the exisence and location
-of libpcap. oe-core stubs this script and replaces it with pkg-config,
-which can lead to the host pcap-config triggering and either breaking
-the build or introducing host contamination.
-
-To fix this issue, we patch configure to use 'pkg-config libcap' to
-locate the correct libraries.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-[MA: Update to apply agains v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- m4/virt-libpcap.m4 | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/m4/virt-libpcap.m4 b/m4/virt-libpcap.m4
-index 605c2fd..e0ab018 100644
---- a/m4/virt-libpcap.m4
-+++ b/m4/virt-libpcap.m4
-@@ -23,14 +23,14 @@ AC_DEFUN([LIBVIRT_ARG_LIBPCAP], [
-
- AC_DEFUN([LIBVIRT_CHECK_LIBPCAP], [
- LIBPCAP_REQUIRED="1.5.0"
-- LIBPCAP_CONFIG="pcap-config"
-+ LIBPCAP_CONFIG="pkg-config libpcap"
- LIBPCAP_CFLAGS=""
- LIBPCAP_LIBS=""
-
- if test "x$with_libpcap" != "xno"; then
- case $with_libpcap in
-- ''|yes|check) LIBPCAP_CONFIG="pcap-config" ;;
-- *) LIBPCAP_CONFIG="$with_libpcap/bin/pcap-config" ;;
-+ ''|yes|check) LIBPCAP_CONFIG="pkg-config libpcap" ;;
-+ *) LIBPCAP_CONFIG="$with_libpcap/bin/pkg-config libpcap" ;;
- esac
- AS_IF([test "x$LIBPCAP_CONFIG" != "x"], [
- AC_MSG_CHECKING(libpcap $LIBPCAP_CONFIG >= $LIBPCAP_REQUIRED )
diff --git a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch b/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
deleted file mode 100644
index 3cf9e83..0000000
--- a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 74bff2509080912ea8abf1de8fd95fa2412b659a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@...>
-Date: Thu, 11 Apr 2013 11:37:25 +0200
-Subject: [PATCH] qemu: fix crash in qemuOpen
-
-commit 74bff2509080912ea8abf1de8fd95fa2412b659a from upsteam
-git://libvirt.org/libvirt.git
-
-If the path part of connection URI is not present, cfg is used
-unitialized.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=950855
----
- src/qemu/qemu_driver.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
-index 2c0d7d1..0d41e39 100644
---- a/src/qemu/qemu_driver.c
-+++ b/src/qemu/qemu_driver.c
-@@ -1026,6 +1026,7 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-+ cfg = virQEMUDriverGetConfig(qemu_driver);
- if (conn->uri->path == NULL) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("no QEMU URI path given, try %s"),
-@@ -1033,7 +1034,6 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-- cfg = virQEMUDriverGetConfig(qemu_driver);
- if (cfg->privileged) {
- if (STRNEQ(conn->uri->path, "/system") &&
- STRNEQ(conn->uri->path, "/session")) {
---
-1.7.1
-
diff --git a/recipes-extended/libvirt/libvirt/runptest.patch b/recipes-extended/libvirt/libvirt/runptest.patch
deleted file mode 100644
index f6bc773..0000000
--- a/recipes-extended/libvirt/libvirt/runptest.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From d210838a4433dd254c1a11b08b804ebe9ff5f378 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Wed, 8 May 2019 10:20:47 +0800
-Subject: [PATCH] Add 'install-ptest' rule
-
-Change TESTS_ENVIRONMENT to allow running outside build dir.
-
-Upstream-status: Pending
-Signed-off-by: Mihaela Sendrea <mihaela.sendrea@...>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@...>
-[MA: Allow separate source and build dirs]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[ZH: add missing test_helper files]
-Signed-off-by: He Zhe <zhe.he@...>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- tests/Makefile.am | 68 +++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 60 insertions(+), 8 deletions(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index ada5b8f..4a808dd 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -28,11 +28,13 @@ AM_CPPFLAGS = \
-
- WARN_CFLAGS += $(RELAXED_FRAME_LIMIT_CFLAGS)
-
-+PTEST_DIR ?= $(libdir)/libvirt/ptest
-+
- AM_CFLAGS = \
-- -Dabs_builddir="\"$(abs_builddir)\"" \
-- -Dabs_top_builddir="\"$(abs_top_builddir)\"" \
-- -Dabs_srcdir="\"$(abs_srcdir)\"" \
-- -Dabs_top_srcdir="\"$(abs_top_srcdir)\"" \
-+ -Dabs_builddir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_builddir="\"$(PTEST_DIR)\"" \
-+ -Dabs_srcdir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_srcdir="\"$(PTEST_DIR)\"" \
- $(LIBXML_CFLAGS) \
- $(GLIB_CFLAGS) \
- $(LIBNL_CFLAGS) \
-@@ -474,10 +476,10 @@ TESTS = $(test_programs) \
-
- VIR_TEST_EXPENSIVE ?= $(VIR_TEST_EXPENSIVE_DEFAULT)
- TESTS_ENVIRONMENT = \
-- abs_top_builddir="$(abs_top_builddir)" \
-- abs_top_srcdir="$(abs_top_srcdir)" \
-- abs_builddir="$(abs_builddir)" \
-- abs_srcdir="$(abs_srcdir)" \
-+ abs_top_builddir="$(PTEST_DIR)" \
-+ abs_top_srcdir="$(PTEST_DIR)" \
-+ abs_builddir="$(PTEST_DIR)/tests" \
-+ abs_srcdir="$(PTEST_DIR)/tests" \
- LIBVIRT_AUTOSTART=0 \
- LC_ALL=C \
- VIR_TEST_EXPENSIVE=$(VIR_TEST_EXPENSIVE) \
-@@ -1547,4 +1549,54 @@ else ! WITH_LINUX
- EXTRA_DIST += virscsitest.c
- endif ! WITH_LINUX
-
-+buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-+
-+PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+
-+install-ptest:
-+ list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
-+ install -d $(DEST_DIR)/tools
-+ @(if [ -d ../tools/.libs ] ; then cd ../tools/.libs; fi; \
-+ install * $(DEST_DIR)/tools)
-+ install -d $(DEST_DIR)/src/network
-+ cp $(top_srcdir)/src/network/*.xml $(DEST_DIR)/src/network
-+ install -d $(DEST_DIR)/src/cpu_map
-+ cp $(top_srcdir)/src/cpu_map/*.xml $(DEST_DIR)/src/cpu_map
-+ install ../src/libvirt_iohelper $(DEST_DIR)/src
-+ install -D ../src/libvirtd $(DEST_DIR)/src/libvirtd
-+ install -d $(DEST_DIR)/src/remote
-+ install -D $(top_srcdir)/../build/src/remote/libvirtd.conf $(DEST_DIR)/src/remote/libvirtd.conf
-+ install -d $(DEST_DIR)/src/remote/.libs
-+ @(if [ -d ../src/remote/.libs ] ; then cd ../src/remote/.libs; fi; \
-+ install * $(DEST_DIR)/src/remote/.libs)
-+ install -d $(DEST_DIR)/src/.libs
-+ @(if [ -d ../src/.libs ] ; then cd ../src/.libs; fi; \
-+ install * $(DEST_DIR)/src/.libs)
-+ install -d $(DEST_DIR)/docs/schemas
-+ cp $(top_srcdir)/docs/schemas/*.rng $(DEST_DIR)/docs/schemas
-+ cp -r $(top_srcdir)/build-aux $(DEST_DIR)
-+ install -d $(DEST_DIR)/examples/xml
-+ cp -r $(top_srcdir)/examples/xml/test $(DEST_DIR)/examples/xml
-+ install -d $(DEST_DIR)/tests/.libs
-+ find . -type d -name "*xml2xml*" -exec cp -r {} $(DEST_DIR)/tests \;
-+ find . -type d -name "*data" -exec cp -r {} $(DEST_DIR)/tests \;
-+ @(for file in $(PTESTS); do \
-+ if [ -f .libs/$$file ]; then \
-+ install .libs/$$file $(DEST_DIR)/tests; \
-+ elif [ -f $(srcdir)/$$file ]; then \
-+ install $(srcdir)/$$file $(DEST_DIR)/tests; \
-+ else \
-+ install $(builddir)/$$file $(DEST_DIR)/tests; \
-+ fi; \
-+ done;)
-+ @(if [ -d .libs ]; then install .libs/*.so $(DEST_DIR)/tests/.libs; fi;)
-+ cp ../config.h $(DEST_DIR)
-+ cp Makefile $(DEST_DIR)/tests
-+ sed -i -e 's/^Makefile:/_Makefile:/' $(DEST_DIR)/tests/Makefile
-+ cp ../Makefile $(DEST_DIR)
-+ sed -i -e 's|^Makefile:|_Makefile:|' $(DEST_DIR)/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/tests/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/Makefile
-+ sed -i -e 's|^\(.*\.log:\) \(.*EXEEXT.*\)|\1|g' $(DEST_DIR)/tests/Makefile
-+
- CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
diff --git a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch b/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
deleted file mode 100644
index bb500fd..0000000
--- a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 7dc21edd851b260485b432c096f8e90f6fa07778 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Tue, 7 May 2019 15:26:32 +0800
-Subject: [PATCH] tools: add libvirt-net-rpc to virt-host-validate when TLS is
- enabled
-
-When gnu-tls is enabled for libvirt references to virNetTLSInit are
-generated in libvirt. Any binaries linking against libvirt, must also
-link against libvirt-net-rpc which provides the implementation.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@...>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[ddu: rebase to v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- examples/Makefile.am | 20 ++++++++++++++++++++
- tools/Makefile.am | 12 ++++++++++++
- 2 files changed, 32 insertions(+)
-
-diff --git a/examples/Makefile.am b/examples/Makefile.am
-index ad635bd..a94f41d 100644
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -74,6 +74,10 @@ LDADD = \
- $(top_builddir)/src/libvirt-admin.la \
- $(NULL)
-
-+if WITH_GNUTLS
-+LDADD += $(top_builddir)/src/libvirt-net-rpc.la
-+endif
-+
- noinst_PROGRAMS = \
- c/admin/client_close \
- c/admin/client_info \
-@@ -111,6 +115,22 @@ c_misc_openauth_SOURCES = c/misc/openauth.c
- examplesdir = $(docdir)/examples
-
- adminexamplesdir = $(examplesdir)/c/admin
-+
-+if WITH_GNUTLS
-+dominfo_info1_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+domsuspend_suspend_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+hellolibvirt_hellolibvirt_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+openauth_openauth_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+endif
-+
- adminexamples_DATA = $(ADMIN_EXAMPLES)
-
- domainexamplesdir = $(examplesdir)/c/domain
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 53df930..2a0a989 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -166,6 +166,12 @@ virt_host_validate_LDADD = \
- $(GLIB_LIBS) \
- $(NULL)
-
-+if WITH_GNUTLS
-+virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- virt_host_validate_CFLAGS = \
- $(AM_CFLAGS) \
- $(NULL)
-@@ -262,6 +268,12 @@ virt_admin_CFLAGS = \
- $(READLINE_CFLAGS)
- BUILT_SOURCES =
-
-+if WITH_GNUTLS
-+virsh_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- if WITH_WIN_ICON
- virsh_LDADD += virsh_win_icon.$(OBJEXT)
-
diff --git a/recipes-extended/libvirt/libvirt_6.3.0.bb b/recipes-extended/libvirt/libvirt_7.2.0.bb
similarity index 62%
rename from recipes-extended/libvirt/libvirt_6.3.0.bb
rename to recipes-extended/libvirt/libvirt_7.2.0.bb
index 41abb06..1093e9b 100644
--- a/recipes-extended/libvirt/libvirt_6.3.0.bb
+++ b/recipes-extended/libvirt/libvirt_7.2.0.bb
@@ -1,7 +1,6 @@
DESCRIPTION = "A toolkit to interact with the virtualization capabilities of recent versions of Linux."
HOMEPAGE = "http://libvirt.org"
LICENSE = "LGPLv2.1+ & GPLv2+"
-LICENSE_${PN}-ptest = "GPLv2+ & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LESSER;md5=4b54a1fd55a448865a0b32d41598759d"
SECTION = "console/tools"
@@ -16,9 +15,7 @@ DEPENDS = "bridge-utils gnutls libxml2 lvm2 avahi parted curl libpcap util-linux
#
RDEPENDS_${PN} = "gettext-runtime"

-RDEPENDS_${PN}-ptest += "make gawk perl bash"
-
-RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd"
+RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd ebtables"
RDEPENDS_libvirt-libvirtd_append_x86-64 = " dmidecode"
RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"

@@ -26,88 +23,30 @@ RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"
RCONFLICTS_${PN}_libvirtd = "connman"

SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
- file://tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch \
file://libvirtd.sh \
file://libvirtd.conf \
file://dnsmasq.conf \
- file://runptest.patch \
- file://run-ptest \
- file://libvirt-use-pkg-config-to-locate-libcap.patch \
- file://0001-to-fix-build-error.patch \
- file://install-missing-file.patch \
- file://0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch \
- file://configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch \
- file://0001-build-drop-unnecessary-libgnu.la-reference.patch \
file://hook_support.py \
file://gnutls-helper.py \
+ file://0001-meson-add-options-to-explicit-binaries-path.patch \
"

-SRC_URI[libvirt.md5sum] = "1bd4435f77924f5ec9928b538daf4a02"
-SRC_URI[libvirt.sha256sum] = "74069438d34082336e99a88146349e21130552b96efc3b7c562f6878127996f5"
+SRC_URI[libvirt.md5sum] = "92044b629216e44adce63224970a54a3"
+SRC_URI[libvirt.sha256sum] = "01f459d0c7ba5009622a628dba1a026200e8f4a299fea783b936a71d7e0ed1d0"

-inherit autotools gettext update-rc.d pkgconfig ptest systemd useradd perlnative
+inherit meson gettext update-rc.d pkgconfig systemd useradd perlnative
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM_${PN} = "-r qemu; -r kvm"
USERADD_PARAM_${PN} = "-r -g qemu -G kvm qemu"

-# Override the default set in autotools.bbclass so that we will use relative pathnames
-# to our local m4 files. This prevents an "Argument list too long" error during configuration
-# if our project is in a directory with an absolute pathname of more than about 125 characters.
-#
-acpaths = "-I ./m4"
-
-CACHED_CONFIGUREVARS += "\
-ac_cv_path_XMLCATLOG=/usr/bin/xmlcatalog \
-ac_cv_path_AUGPARSE=/usr/bin/augparse \
-ac_cv_path_DMIDECODE=/usr/sbin/dmidecode \
-ac_cv_path_DNSMASQ=/usr/bin/dnsmasq \
-ac_cv_path_BRCTL=/usr/sbin/brctl \
-ac_cv_path_TC=/sbin/tc \
-ac_cv_path_UDEVADM=/sbin/udevadm \
-ac_cv_path_MODPROBE=/sbin/modprobe \
-ac_cv_path_IP_PATH=/bin/ip \
-ac_cv_path_IPTABLES_PATH=/usr/sbin/iptables \
-ac_cv_path_IP6TABLES_PATH=/usr/sbin/ip6tables \
-ac_cv_path_MOUNT=/bin/mount \
-ac_cv_path_UMOUNT=/bin/umount \
-ac_cv_path_MKFS=/usr/sbin/mkfs \
-ac_cv_path_SHOWMOUNT=/usr/sbin/showmount \
-ac_cv_path_PVCREATE=/usr/sbin/pvcreate \
-ac_cv_path_VGCREATE=/usr/sbin/vgcreate \
-ac_cv_path_LVCREATE=/usr/sbin/lvcreate \
-ac_cv_path_PVREMOVE=/usr/sbin/pvremove \
-ac_cv_path_VGREMOVE=/usr/sbin/vgremove \
-ac_cv_path_LVREMOVE=/usr/sbin/lvremove \
-ac_cv_path_LVCHANGE=/usr/sbin/lvchange \
-ac_cv_path_VGCHANGE=/usr/sbin/vgchange \
-ac_cv_path_VGSCAN=/usr/sbin/vgscan \
-ac_cv_path_PVS=/usr/sbin/pvs \
-ac_cv_path_VGS=/usr/sbin/vgs \
-ac_cv_path_LVS=/usr/sbin/lvs \
-ac_cv_path_PARTED=/usr/sbin/parted \
-ac_cv_path_DMSETUP=/usr/sbin/dmsetup"
-
-# Ensure that libvirt uses polkit rather than policykit, whether the host has
-# pkcheck installed or not, and ensure the path is correct per our config.
-CACHED_CONFIGUREVARS += "ac_cv_path_PKCHECK_PATH=${bindir}/pkcheck"
-
-# Some other possible paths we are not yet setting
-#ac_cv_path_RPCGEN=
-#ac_cv_path_XSLTPROC=
-#ac_cv_path_RADVD=
-#ac_cv_path_UDEVSETTLE=
-#ac_cv_path_EBTABLES_PATH=
-#ac_cv_path_PKG_CONFIG=
-#ac_cv_path_ac_pt_PKG_CONFIG
-#ac_cv_path_POLKIT_AUTH=
-#ac_cv_path_DTRACE=
-#ac_cv_path_ISCSIADM=
-#ac_cv_path_MSGFMT=
-#ac_cv_path_GMSGFMT=
-#ac_cv_path_XGETTEXT=
-#ac_cv_path_MSGMERGE=
-#ac_cv_path_SCRUB=
-#ac_cv_path_PYTHON=
+
+EXTRA_OEMESON += " \
+ -Dip6tables-path=/usr/sbin/ip6tables \
+ -Ddmidecode-path=/usr/sbin/dmidecode \
+ -Ddnsmasq-path=/usr/bin/dnsmasq \
+ -Diptables-path=/usr/sbin/iptables \
+ -Debtables-path=/sbin/ebtables \
+ "

ALLOW_EMPTY_${PN} = "1"

@@ -166,32 +105,13 @@ SYSTEMD_SERVICE_${PN}-libvirtd = " \
libvirt-guests.service \
virtlockd.socket \
"
-
-
-PRIVATE_LIBS_${PN}-ptest = " \
- libvirt-lxc.so.0 \
- libvirt.so.0 \
- libvirt-qemu.so.0 \
- lockd.so \
- libvirt_driver_secret.so \
- libvirt_driver_nodedev.so \
- libvirt_driver_vbox.so \
- libvirt_driver_interface.so \
- libvirt_driver_uml.so \
- libvirt_driver_network.so \
- libvirt_driver_nwfilter.so \
- libvirt_driver_qemu.so \
- libvirt_driver_storage.so \
- libvirt_driver_lxc.so \
- "
-
# xen-minimal config
#PACKAGECONFIG ??= "xen libxl xen-inotify test remote libvirtd"

# full config
-PACKAGECONFIG ??= "gnutls qemu yajl openvz vmware vbox esx iproute2 lxc test \
- remote macvtap libvirtd netcf udev python ebtables \
- fuse iproute2 firewalld libpcap \
+PACKAGECONFIG ??= "gnutls qemu yajl openvz vmware vbox esx lxc test \
+ remote libvirtd netcf udev python \
+ fuse firewalld libpcap \
${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit libcap-ng', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'libxl', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'polkit', '', d)} \
@@ -208,37 +128,34 @@ PACKAGECONFIG_remove_armeb = "numactl"
# enable,disable,depends,rdepends
#
PACKAGECONFIG[gnutls] = ",,,gnutls-bin"
-PACKAGECONFIG[qemu] = "--with-qemu --with-qemu-user=qemu --with-qemu-group=qemu,--without-qemu,qemu,"
-PACKAGECONFIG[yajl] = "--with-yajl,--without-yajl,yajl,yajl"
-PACKAGECONFIG[libxl] = "--with-libxl=${STAGING_DIR_TARGET}/lib,--without-libxl,xen,"
-PACKAGECONFIG[openvz] = "--with-openvz,--without-openvz,,"
-PACKAGECONFIG[vmware] = "--with-vmware,--without-vmware,,"
-PACKAGECONFIG[vbox] = "--with-vbox,--without-vbox,,"
-PACKAGECONFIG[esx] = "--with-esx,--without-esx,,"
-PACKAGECONFIG[hyperv] = "--with-hyperv,--without-hyperv,,"
-PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit,polkit"
-PACKAGECONFIG[lxc] = "--with-lxc,--without-lxc, lxc,"
-PACKAGECONFIG[test] = "--with-test=yes,--with-test=no,,"
-PACKAGECONFIG[remote] = "--with-remote,--without-remote,,"
-PACKAGECONFIG[macvtap] = "--with-macvtap=yes,--with-macvtap=no,libnl,libnl"
-PACKAGECONFIG[libvirtd] = "--with-libvirtd,--without-libvirtd,,"
-PACKAGECONFIG[netcf] = "--with-netcf,--without-netcf,netcf,netcf"
-PACKAGECONFIG[dtrace] = "--with-dtrace,--without-dtrace,,"
-PACKAGECONFIG[udev] = "--with-udev --with-pciaccess,--without-udev,udev libpciaccess,"
-PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux,"
-PACKAGECONFIG[ebtables] = "ac_cv_path_EBTABLES_PATH=/sbin/ebtables,ac_cv_path_EBTABLES_PATH=,ebtables,ebtables"
+PACKAGECONFIG[qemu] = "-Ddriver_qemu=enabled -Dqemu_user=qemu -Dqemu_group=qemu,-Dqemu=disabled,qemu,"
+PACKAGECONFIG[yajl] = "-Dyajl=enabled,-Dyajl=disabled,yajl,yajl"
+PACKAGECONFIG[libxl] = "-Dlibxl=${STAGING_DIR_TARGET}/lib,,xen,"
+PACKAGECONFIG[openvz] = "-Ddriver_openvz=enabled,-Ddriver_openvz=disabled,,"
+PACKAGECONFIG[vmware] = "-Ddriver_vmware=enabled,-Ddriver_vmware=disabled,,"
+PACKAGECONFIG[vbox] = "-Ddriver_vbox=enabled,-Ddriver_vbox=disabled,,"
+PACKAGECONFIG[esx] = "-Ddriver_esx=enabled,-Ddriver_esx=disabled,,"
+PACKAGECONFIG[hyperv] = "-Ddriver_hyperv=enabled,-Ddriver_hyperv=disabled,,"
+PACKAGECONFIG[polkit] = "-Dpolkit=enabled,-Dpolkit=disabled,polkit,polkit"
+PACKAGECONFIG[lxc] = "-Ddriver_lxc=enabled,-Ddriver_lxc=disabled,lxc,"
+PACKAGECONFIG[test] = "-Ddriver_test=enabled,-Ddriver_test=disabled,,"
+PACKAGECONFIG[remote] = "-Ddriver_remote=enabled,-Ddriver_remote=disabled,,"
+PACKAGECONFIG[libvirtd] = "-Ddriver_libvirtd=enabled,-Ddriver_libvirtd=disabled,,"
+PACKAGECONFIG[netcf] = "-Dnetcf=enabled,-Dnetcf=disabled,netcf,netcf"
+PACKAGECONFIG[dtrace] = "-Ddtrace=enabled,-Ddtrace=disabled,,"
+PACKAGECONFIG[udev] = "-Dudev=enabled -Dpciaccess=enabled,-Dudev=disabled,udev libpciaccess,"
+PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux,"
PACKAGECONFIG[python] = ",,python3,"
-PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,cyrus-sasl"
-PACKAGECONFIG[iproute2] = "ac_cv_path_IP_PATH=/sbin/ip,ac_cv_path_IP_PATH=,iproute2,iproute2"
-PACKAGECONFIG[numactl] = "--with-numactl,--without-numactl,numactl,"
-PACKAGECONFIG[fuse] = "--with-fuse,--without-fuse,fuse,"
-PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit,"
-PACKAGECONFIG[libcap-ng] = "--with-capng,--without-capng,libcap-ng,"
-PACKAGECONFIG[wireshark] = "--with-wireshark-dissector,--without-wireshark-dissector,wireshark libwsutil,"
-PACKAGECONFIG[apparmor-profiles] = "--with-apparmor-profiles, --without-apparmor-profiles,"
-PACKAGECONFIG[firewalld] = "--with-firewalld, --without-firewalld,"
-PACKAGECONFIG[libpcap] = "--with-libpcap, --without-libpcap,libpcap,libpcap"
-PACKAGECONFIG[numad] = "--with-numad, --without-numad,"
+PACKAGECONFIG[sasl] = "-Dsasl=enabled,-Dsasl=disabled,cyrus-sasl,cyrus-sasl"
+PACKAGECONFIG[numactl] = "-Dnumactl=enabled,-Dnumactl=disabled,numactl,"
+PACKAGECONFIG[fuse] = "-Dfuse=enabled,-Dfuse=disabled,fuse,"
+PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit,"
+PACKAGECONFIG[libcap-ng] = "-Dcapng=enabled,-Dcapng=disabled,libcap-ng,"
+PACKAGECONFIG[wireshark] = "-Dwireshark_dissector=enabled,-Dwireshark_dissector=disabled,wireshark libwsutil,"
+PACKAGECONFIG[apparmor_profiles] = "-Dapparmor_profiles=true, -Dapparmor_profiles=false,"
+PACKAGECONFIG[firewalld] = "-Dfirewalld=enabled, -Dfirewalld=disabled,"
+PACKAGECONFIG[libpcap] = "-Dlibpcap=enabled, -Dlibpcap=disabled,libpcap,libpcap"
+PACKAGECONFIG[numad] = "-Dnumad=enabled, -Dnumad=disabled,"

# Enable the Python tool support
require libvirt-python.inc
@@ -255,7 +172,7 @@ do_compile() {

cd ${B}
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${B}/src:"
- oe_runmake all
+ ninja all
}

do_install_prepend() {
@@ -278,6 +195,8 @@ do_install_append() {
fi

if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ mkdir -p ${D}/lib
+ mv ${D}/usr/lib/systemd ${D}/lib
# This variable is used by libvirtd.service to start libvirtd in the right mode
sed -i '/#LIBVIRTD_ARGS="--listen"/a LIBVIRTD_ARGS="--listen --daemon"' ${D}/${sysconfdir}/sysconfig/libvirtd

@@ -360,7 +279,7 @@ do_install_append() {
# connection via 127.0.0.1 is available out of box.
install -d ${D}/etc/pki/CA
install -d ${D}/etc/pki/libvirt/private
- install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
+ install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
install -m 0644 ${WORKDIR}/cakey.pem ${D}/${sysconfdir}/pki/libvirt/private/cakey.pem
install -m 0644 ${WORKDIR}/cacert.pem ${D}/${sysconfdir}/pki/CA/cacert.pem
install -m 0644 ${WORKDIR}/serverkey.pem ${D}/${sysconfdir}/pki/libvirt/private/serverkey.pem
@@ -376,10 +295,10 @@ do_install_append() {
chmod 4755 ${D}${bindir}/virt-login-shell
}

-EXTRA_OECONF += " \
- --with-init-script=systemd \
- --with-test-suite \
- --with-runstatedir=/run \
+EXTRA_OEMESON += " \
+ -Dinit_script=systemd \
+ -Drunstatedir=/run \
+ -Dtests=enabled \
"

# gcc9 end up mis-compiling qemuxml2argvtest.o with Og which then
@@ -389,23 +308,6 @@ SELECTED_OPTIMIZATION_append_virtclass-multilib-lib32_mipsarch = " -O2"

EXTRA_OEMAKE = "BUILD_DIR=${B} DEST_DIR=${D}${PTEST_PATH} PTEST_DIR=${PTEST_PATH} SYSTEMD_UNIT_DIR=${systemd_system_unitdir}"

-PRIVATE_LIBS_${PN}-ptest_append = "libvirt-admin.so.0"
-
-do_compile_ptest() {
- oe_runmake -C tests buildtest-TESTS
-}
-
-do_install_ptest() {
- oe_runmake -C tests install-ptest
-
- find ${S}/tests -maxdepth 1 -type d -exec cp -r {} ${D}${PTEST_PATH}/tests/ \;
-
- # remove .la files for ptest, they aren't required and can trigger QA errors
- for i in `find ${D}${PTEST_PATH} -type f \( -name *.la -o -name *.o \)`; do
- rm -f $i
- done
-}
-
pkg_postinst_${PN}() {
if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
/etc/init.d/populate-volatile.sh update
--
2.27.0


--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Re: [PATCH 1/3] xen-tools: add patches for 4.14 to enable dropping multilib build

Christopher Clark
 

On Apr 20, 2021, at 2:00 PM, Bruce Ashfield <bruce.ashfield@...> wrote:

These look good to me.

I've queued them on master .. were you also interested in
getting them into hardknott ?
Yes, I am. I’d appreciate any test reports too.

Christopher


Bruce

In message: [meta-virtualization][PATCH 1/3] xen-tools: add patches for 4.14 to enable dropping multilib build
on 19/04/2021 Christopher Clark wrote:

Backport Xen patches to enable hvmloader to be built without needing
32-bit glibc.

Signed-off-by: Christopher Clark <christopher.w.clark@...>
---
...-stand-alone-set-of-headers-Xen-4.14.patch | 178 ++++++++++++++++++
...d-firmware-as-ffreestanding-Xen-4.14.patch | 83 ++++++++
recipes-extended/xen/xen-tools_4.14.bb | 2 +
3 files changed, 263 insertions(+)
create mode 100644 recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch
create mode 100644 recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch

diff --git a/recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch b/recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch
new file mode 100644
index 0000000..7b062b7
--- /dev/null
+++ b/recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch
@@ -0,0 +1,178 @@
+From 73b13705af7c3bb8fdf11932eb68788d090a443f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@...>
+Date: Thu, 4 Mar 2021 16:49:00 +0100
+Subject: [PATCH] firmware: provide a stand alone set of headers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The current build of the firmware relies on having 32bit compatible
+headers installed in order to build some of the 32bit firmware.
+Usually this can be solved by using the -ffreestanding compiler option
+which drops the usage of the system headers in favor of a private set
+of freestanding headers provided by the compiler itself that are not
+tied to libc.
+
+However such option is broken at least in the gcc compiler provided in
+Alpine Linux, as the system include path (ie: /usr/include) takes
+precedence over the gcc private include path:
+
+#include <...> search starts here:
+ /usr/include
+ /usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/include
+
+And the headers in /usr/include are exclusively 64bit.
+
+Since -ffreestanding is currently broken on at least that distro, and
+for resilience against future compilers also having the option broken
+provide a set of stand alone 32bit headers required for the firmware
+build.
+
+Signed-off-by: Roger Pau Monné <roger.pau@...>
+Reviewed-by: Jan Beulich <jbeulich@...>
+Release-Acked-by: Ian Jackson <iwj@...>
+Applied to Xen 4.14 by: Christopher Clark <christopher.w.clark@...>
+---
+ tools/firmware/Rules.mk | 13 +++++++
+ tools/firmware/include/stdarg.h | 10 +++++
+ tools/firmware/include/stdbool.h | 9 +++++
+ tools/firmware/include/stddef.h | 10 +++++
+ tools/firmware/include/stdint.h | 39 +++++++++++++++++++
+ tools/firmware/rombios/32bit/rombios_compat.h | 4 +-
+ 6 files changed, 82 insertions(+), 3 deletions(-)
+ create mode 100644 tools/firmware/include/stdarg.h
+ create mode 100644 tools/firmware/include/stdbool.h
+ create mode 100644 tools/firmware/include/stddef.h
+ create mode 100644 tools/firmware/include/stdint.h
+
+diff --git a/tools/firmware/include/stdarg.h b/tools/firmware/include/stdarg.h
+new file mode 100644
+index 0000000000..c5e3761cd2
+--- /dev/null
++++ b/tools/firmware/include/stdarg.h
+@@ -0,0 +1,10 @@
++#ifndef _STDARG_H_
++#define _STDARG_H_
++
++typedef __builtin_va_list va_list;
++#define va_copy(dest, src) __builtin_va_copy(dest, src)
++#define va_start(ap, last) __builtin_va_start(ap, last)
++#define va_end(ap) __builtin_va_end(ap)
++#define va_arg __builtin_va_arg
++
++#endif
+diff --git a/tools/firmware/include/stdbool.h b/tools/firmware/include/stdbool.h
+new file mode 100644
+index 0000000000..0cf76b106c
+--- /dev/null
++++ b/tools/firmware/include/stdbool.h
+@@ -0,0 +1,9 @@
++#ifndef _STDBOOL_H_
++#define _STDBOOL_H_
++
++#define bool _Bool
++#define true 1
++#define false 0
++#define __bool_true_false_are_defined 1
++
++#endif
+diff --git a/tools/firmware/include/stddef.h b/tools/firmware/include/stddef.h
+new file mode 100644
+index 0000000000..c7f974608a
+--- /dev/null
++++ b/tools/firmware/include/stddef.h
+@@ -0,0 +1,10 @@
++#ifndef _STDDEF_H_
++#define _STDDEF_H_
++
++typedef __SIZE_TYPE__ size_t;
++
++#define NULL ((void*)0)
++
++#define offsetof(t, m) __builtin_offsetof(t, m)
++
++#endif
+diff --git a/tools/firmware/include/stdint.h b/tools/firmware/include/stdint.h
+new file mode 100644
+index 0000000000..16a0b6de19
+--- /dev/null
++++ b/tools/firmware/include/stdint.h
+@@ -0,0 +1,39 @@
++#ifndef _STDINT_H_
++#define _STDINT_H_
++
++#if defined(__LP64__) || defined(__P64__)
++#error "32bit only header"
++#endif
++
++typedef unsigned char uint8_t;
++typedef signed char int8_t;
++
++typedef unsigned short uint16_t;
++typedef signed short int16_t;
++
++typedef unsigned int uint32_t;
++typedef signed int int32_t;
++
++typedef unsigned long long uint64_t;
++typedef signed long long int64_t;
++
++#define INT8_MIN (-0x7f-1)
++#define INT16_MIN (-0x7fff-1)
++#define INT32_MIN (-0x7fffffff-1)
++#define INT64_MIN (-0x7fffffffffffffffll-1)
++
++#define INT8_MAX 0x7f
++#define INT16_MAX 0x7fff
++#define INT32_MAX 0x7fffffff
++#define INT64_MAX 0x7fffffffffffffffll
++
++#define UINT8_MAX 0xff
++#define UINT16_MAX 0xffff
++#define UINT32_MAX 0xffffffffu
++#define UINT64_MAX 0xffffffffffffffffull
++
++typedef uint32_t uintptr_t;
++
++#define UINTPTR_MAX UINT32_MAX
++
++#endif
+diff --git a/tools/firmware/rombios/32bit/rombios_compat.h b/tools/firmware/rombios/32bit/rombios_compat.h
+index 3fe7d67721..8ba4c17ffd 100644
+--- a/tools/firmware/rombios/32bit/rombios_compat.h
++++ b/tools/firmware/rombios/32bit/rombios_compat.h
+@@ -8,9 +8,7 @@
+
+ #define ADDR_FROM_SEG_OFF(seg, off) (void *)((((uint32_t)(seg)) << 4) + (off))
+
+-typedef unsigned char uint8_t;
+-typedef unsigned short int uint16_t;
+-typedef unsigned int uint32_t;
++#include <stdint.h>
+
+ typedef uint8_t Bit8u;
+ typedef uint16_t Bit16u;
+diff --git a/tools/firmware/Rules.mk b/tools/firmware/Rules.mk
+index 26bbddccd4..cb388b7011 100644
+--- a/tools/firmware/Rules.mk
++++ b/tools/firmware/Rules.mk
+@@ -17,3 +17,16 @@ $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
+
+ # Extra CFLAGS suitable for an embedded type of environment.
+ CFLAGS += -fno-builtin -msoft-float
++
++# Use our own set of stand alone headers to build firmware.
++#
++# Ideally using -ffreestanding should be enough, but that relies on the
++# compiler having the right order for include paths (ie: compiler private
++# headers before system ones) or the libc headers having proper arch-agnostic
++# freestanding support. This is not the case in Alpine at least which searches
++# system headers before compiler ones and has arch-specific libc headers. This
++# has been reported upstream:
++# https://gitlab.alpinelinux.org/alpine/aports/-/issues/12477
++# In the meantime (and for resilience against broken systems) use our own set
++# of headers that provide what's needed for the firmware build.
++CFLAGS += -nostdinc -I$(XEN_ROOT)/tools/firmware/include
+--
+2.25.1
+
diff --git a/recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch b/recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch
new file mode 100644
index 0000000..001b196
--- /dev/null
+++ b/recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch
@@ -0,0 +1,83 @@
+From 0eae016b6e3dce69e3fb86aca5c4f221591a2f12 Mon Sep 17 00:00:00 2001
+From: Andrew Cooper <andrew.cooper3@...>
+Date: Thu, 25 Feb 2021 19:15:08 +0000
+Subject: [PATCH] tools/firmware: Build firmware as -ffreestanding
+
+firmware should always have been -ffreestanding, as it doesn't execute in the
+host environment. -ffreestanding implies -fno-builtin, so replace the option.
+
+inttypes.h isn't a freestanding header, but the 32bitbios_support.c only wants
+the stdint.h types so switch to the more appropriate include.
+
+This removes the build time dependency on a 32bit libc just to compile the
+hvmloader and friends.
+
+Update README and the TravisCI configuration.
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@...>
+Reviewed-by: Jan Beulich <jbeulich@...>
+Reviewed-by: Ian Jackson <iwj@...>
+Release-Acked-by: Ian Jackson <iwj@...>
+Applied to m-v Xen 4.14 series: Christopher Clark <christopher.w.clark@...>
+---
+ .travis.yml | 1 -
+ README | 3 ---
+ tools/firmware/Rules.mk | 2 +-
+ tools/firmware/hvmloader/32bitbios_support.c | 2 +-
+ 4 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 15ca9e9047..2362475f7a 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -58,7 +58,6 @@ addons:
+ - acpica-tools
+ - bin86
+ - bcc
+- - libc6-dev-i386
+ - libnl-3-dev
+ - ocaml-nox
+ - libfindlib-ocaml-dev
+diff --git a/README b/README
+index 6e15242ae1..8c99c30986 100644
+--- a/README
++++ b/README
+@@ -62,9 +62,6 @@ provided by your OS distributor:
+ * GNU bison and GNU flex
+ * GNU gettext
+ * ACPI ASL compiler (iasl)
+- * Libc multiarch package (e.g. libc6-dev-i386 / glibc-devel.i686).
+- Required when building on a 64-bit platform to build
+- 32-bit components which are enabled on a default build.
+
+ In addition to the above there are a number of optional build
+ prerequisites. Omitting these will cause the related features to be
+diff --git a/tools/firmware/Rules.mk b/tools/firmware/Rules.mk
+index cb388b7011..9f78a7dec9 100644
+--- a/tools/firmware/Rules.mk
++++ b/tools/firmware/Rules.mk
+@@ -16,7 +16,7 @@ CFLAGS += -Werror
+ $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
+
+ # Extra CFLAGS suitable for an embedded type of environment.
+-CFLAGS += -fno-builtin -msoft-float
++CFLAGS += -ffreestanding -msoft-float
+
+ # Use our own set of stand alone headers to build firmware.
+ #
+diff --git a/tools/firmware/hvmloader/32bitbios_support.c b/tools/firmware/hvmloader/32bitbios_support.c
+index 114135022e..ef681d4f57 100644
+--- a/tools/firmware/hvmloader/32bitbios_support.c
++++ b/tools/firmware/hvmloader/32bitbios_support.c
+@@ -20,7 +20,7 @@
+ * this program; If not, see <http://www.gnu.org/licenses/>.
+ */
+
+-#include <inttypes.h>
++#include <stdint.h>
+ #include <elf.h>
+ #ifdef __sun__
+ #include <sys/machelf.h>
+--
+2.25.1
+
diff --git a/recipes-extended/xen/xen-tools_4.14.bb b/recipes-extended/xen/xen-tools_4.14.bb
index a79b41d..10982a2 100644
--- a/recipes-extended/xen/xen-tools_4.14.bb
+++ b/recipes-extended/xen/xen-tools_4.14.bb
@@ -6,6 +6,8 @@ XEN_BRANCH ?= "stable-${XEN_REL}"
SRC_URI = " \
git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
file://0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch \
+ file://0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch \
+ file://0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch \
"

LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
--
2.25.1


Re: [PATCH v2] libvirt: uprev v6.3 -> v7.2

Bruce Ashfield
 

On Sun, Apr 18, 2021 at 11:37 PM Xu, Yanfei <yanfei.xu@...> wrote:

From: Yanfei Xu <yanfei.xu@...>

This upgrade spans 9 small release. The detailed realese logs could
refer to: https://gitlab.com/libvirt/libvirt/-/blob/master/NEWS.rst

Libvirt's buildsystem has changed to meson, So this upgrade drop some
obsolete patches applied to makefile.

Due to libvirt's meson currently doesn't support to explicit the runtime
binariy path. I made a patch which is
0001-meson-add-options-to-explicit-binaries-path.patch for solving the
problem.
I asked for some advice on this during a yocto weekly call today, and
Ross had some feedback (so I've added him here)

I'll try and summarize what we talked about, but I'm sure I'll mess it
up .. which is why I added Ross.

I was looking at https://mesonbuild.com/Cross-compilation.html to try
and understand a bit more.

Anyway, the advice was to pass native=True/False depending on
whether or not it is a build or runtime binary to find. I didn't see the
exact syntax on that page I referenced, but hopefully that makes sense
to you (I also didn't see it in the patch). I did see a few things in the
qemu recipe and the bbclass, but not that exact syntax.

Ross also mentioned the ability to use a file to list the binaries, versus
needing the option list. I did find references that.

i.e:
[binaries]
addr2line = /path/to/addr2line

And then we pass something like: --cross-file=<the file with options>

I see that in the bbclass and other recipes.

Had you already tried that (and I missed it) ? Or do those seem like
viable options to simplify the patch even more ?

Bruce



I ran libvirt testcase and ovs testcase for this upgrade, the summary
as follow:

libvirt_test (keyword: ) test results:
*1 Run libvirt_test testing(do_test1) PASS
*2 Check result (virsh_local_capabilities) PASS
*3 Check result (virsh_local_domcapabilities) PASS
*4 Check result (virsh_local_freecell) PASS
*5 Check result (virsh_local_help) PASS
*6 Check result (virsh_local_hostname) PASS
*7 Check result (virsh_local_iface-begin) PASS
*8 Check result (virsh_local_iface-commit) PASS
*9 Check result (virsh_local_iface-list) PASS
*10 Check result (virsh_local_list) PASS
*11 Check result (virsh_local_maxvcpus) PASS
*12 Check result (virsh_local_net-list) PASS
*13 Check result (virsh_local_nodecpumap) PASS
*14 Check result (virsh_local_nodecpustats) PASS
*15 Check result (virsh_local_nodedev-list) PASS
*16 Check result (virsh_local_nodeinfo) PASS
*17 Check result (virsh_local_node-memory-tune) PASS
*18 Check result (virsh_local_nodememstats) PASS
*19 Check result (virsh_local_nwfilter-binding-list) PASS
*20 Check result (virsh_local_nwfilter-list) PASS
*21 Check result (virsh_local_pool-capabilities) PASS
*22 Check result (virsh_local_pool-list) PASS
*23 Check result (virsh_local_pwd) PASS
*24 Check result (virsh_local_secret-list) PASS
*25 Check result (virsh_local_sysinfo) PASS
*26 Check result (virsh_local_uri) PASS
*27 Check result (virsh_local_version) PASS

openvswitch_vm2vm (keyword: qemux86) test results:
*1 openvswitch_vm2vm testing(do_test1) PASS
*2 Check result (ovs_vm2vm_boot_guest1) PASS
*3 Check result (ovs_vm2vm_boot_guest2) PASS
*4 Check result (ovs_vm2vm_netperf_test) PASS
*5 Check result (ovs_vm2vm_destroy_guest1) PASS
*6 Check result (ovs_vm2vm_destroy_guest2) PASS
*7 check testcase call trace(do_check_call_trace) PASS

Signed-off-by: Yanfei Xu <yanfei.xu@...>
---
v1-->v2:
1.fix build failure caused by "getent".
2.fix apply failure.
3.drop ptest configurations in libvirt_7.2.0.bb
4.add test log in commit messages.

conf/layer.conf | 2 +
recipes-extended/libvirt/libvirt-python.inc | 4 +-
...drop-unnecessary-libgnu.la-reference.patch | 31 ---
...dd-options-to-explicit-binaries-path.patch | 86 ++++++++
.../libvirt/0001-to-fix-build-error.patch | 47 ----
...-search-for-rpc-rpc.h-in-the-sysroot.patch | 34 ---
.../libvirt/install-missing-file.patch | 50 -----
...read-safety-in-lxc-callback-handling.patch | 63 ------
...virt-use-pkg-config-to-locate-libcap.patch | 43 ----
.../libvirt/qemu-fix-crash-in-qemuOpen.patch | 39 ----
.../libvirt/libvirt/runptest.patch | 116 ----------
...t-net-rpc-to-virt-host-validate-when.patch | 91 --------
.../{libvirt_6.3.0.bb => libvirt_7.2.0.bb} | 200 +++++-------------
13 files changed, 141 insertions(+), 665 deletions(-)
delete mode 100644 recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
create mode 100644 recipes-extended/libvirt/libvirt/0001-meson-add-options-to-explicit-binaries-path.patch
delete mode 100644 recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
delete mode 100644 recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
delete mode 100644 recipes-extended/libvirt/libvirt/install-missing-file.patch
delete mode 100644 recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
delete mode 100644 recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
delete mode 100644 recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
delete mode 100644 recipes-extended/libvirt/libvirt/runptest.patch
delete mode 100644 recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
rename recipes-extended/libvirt/{libvirt_6.3.0.bb => libvirt_7.2.0.bb} (62%)

diff --git a/conf/layer.conf b/conf/layer.conf
index f48ec25..0f0126b 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -67,3 +67,5 @@ K8S_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/k8s-versions.inc"
USER_CLASSES_append = " meta-virt-cfg"
USER_CLASSES_append = " meta-virt-k8s-cfg"
USER_CLASSES_append = " meta-virt-xen-cfg"
+
+HOSTTOOLS_NONFATAL += "getent"
diff --git a/recipes-extended/libvirt/libvirt-python.inc b/recipes-extended/libvirt/libvirt-python.inc
index bcd7657..0c661af 100644
--- a/recipes-extended/libvirt/libvirt-python.inc
+++ b/recipes-extended/libvirt/libvirt-python.inc
@@ -17,8 +17,8 @@ FILES_${PN}-python = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"

SRC_URI += "http://libvirt.org/sources/python/libvirt-python-${PV}.tar.gz;name=libvirt_python"

-SRC_URI[libvirt_python.md5sum] = "4cf898350ee9a47f94986d402c153bdb"
-SRC_URI[libvirt_python.sha256sum] = "c772421ecc144f098f4ab15db700c62db9b9e6e76b876217edcfd62e9ce02750"
+SRC_URI[libvirt_python.md5sum] = "19bf22414a43d358581b9259b52047a7"
+SRC_URI[libvirt_python.sha256sum] = "c0c3bac54c55622e17927b09cd9843869600d71842fb072c99491fe2608dcee7"

export LIBVIRT_API_PATH = "${S}/docs/libvirt-api.xml"
export LIBVIRT_CFLAGS = "-I${S}/include"
diff --git a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch b/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
deleted file mode 100644
index f02a5d6..0000000
--- a/recipes-extended/libvirt/libvirt/0001-build-drop-unnecessary-libgnu.la-reference.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 30a056069cb35804434fb036e51ae97f33c02025 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@...>
-Date: Sat, 7 Mar 2020 21:36:27 -0500
-Subject: [PATCH] build: drop unnecessary libgnu.la reference
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-
----
- tools/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 2a0a989..93fe283 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -168,7 +168,6 @@ virt_host_validate_LDADD = \
-
- if WITH_GNUTLS
- virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
-@@ -270,7 +269,6 @@ BUILT_SOURCES =
-
- if WITH_GNUTLS
- virsh_LDADD += ../src/libvirt-net-rpc.la \
-- ../gnulib/lib/libgnu.la \
- $(NULL)
- endif
-
diff --git a/recipes-extended/libvirt/libvirt/0001-meson-add-options-to-explicit-binaries-path.patch b/recipes-extended/libvirt/libvirt/0001-meson-add-options-to-explicit-binaries-path.patch
new file mode 100644
index 0000000..4c545d4
--- /dev/null
+++ b/recipes-extended/libvirt/libvirt/0001-meson-add-options-to-explicit-binaries-path.patch
@@ -0,0 +1,86 @@
+From 2e061ccf093063267277893cd5cacc9e7188c629 Mon Sep 17 00:00:00 2001
+From: Yanfei Xu <yanfei.xu@...>
+Date: Thu, 25 Mar 2021 16:24:04 +0800
+Subject: [PATCH] meson: add options to explicit binaries path
+
+In cross compile evironment, path of binaries is possiblely different
+between target and host. Let's add options to explicit binaries path
+to solve this problem.
+
+Upstream-Status: Pending
+
+Signed-off-by: Yanfei Xu <yanfei.xu@...>
+---
+ meson.build | 18 ++++++++++++------
+ meson_options.txt | 23 +++++++++++++++++++++++
+ 2 files changed, 35 insertions(+), 6 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 369548f127..6c93be8e4b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -943,18 +943,24 @@ optional_programs = [
+ 'udevadm',
+ ]
+
++# if -Dxxx-path option is found, use that. Otherwise, check in $PATH,
++# /usr/sbin, /sbin, and fall back to the default from middle column.
+ foreach name : optional_programs
+- prog = find_program(name, required: false, dirs: libvirt_sbin_path)
+ varname = name.underscorify()
+- if prog.found()
+- prog_path = prog.path()
++ prog_path = get_option(name + '-path')
++ if prog_path != ''
++ message('Using @1@ for @0@'.format(name, prog_path))
+ else
+- prog_path = name
++ prog = find_program(name, required: false, dirs: libvirt_sbin_path)
++ if prog.found()
++ prog_path = prog.path()
++ else
++ prog_path = name
++ endif
++ set_variable('@0@_prog'.format(varname), prog)
+ endif
+-
+ conf.set_quoted(varname.to_upper(), prog_path)
+ conf.set_quoted('@0@_PATH'.format(varname.to_upper()), prog_path)
+- set_variable('@0@_prog'.format(varname), prog)
+ endforeach
+
+
+diff --git a/meson_options.txt b/meson_options.txt
+index e5d79c2b6b..f06f46c7bb 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -102,3 +102,26 @@ option('numad', type: 'feature', value: 'auto', description: 'use numad to manag
+ option('pm_utils', type: 'feature', value: 'auto', description: 'use pm-utils for power management')
+ option('sysctl_config', type: 'feature', value: 'auto', description: 'Whether to install sysctl configs')
+ option('tls_priority', type: 'string', value: 'NORMAL', description: 'set the default TLS session priority string')
++
++
++option('addr2line-path', type : 'string', description : 'path to addr2line')
++option('augparse-path', type : 'string', description : 'path to augparse')
++option('dmidecode-path', type : 'string', description : 'path to dmidecode')
++option('dnsmasq-path', type : 'string', description : 'path to dnsmasq')
++option('ebtables-path', type : 'string', description : 'path to ebtables')
++option('flake8-path', type : 'string', description : 'path to flake8')
++option('ip-path', type : 'string', description : 'path to ip')
++option('ip6tables-path', type : 'string', description : 'path to ip6tables')
++option('iptables-path', type : 'string', description : 'path to iptables')
++option('iscsiadm-path', type : 'string', description : 'path to iscsiadm')
++option('mdevctl-path', type : 'string', description : 'path to mdevctl')
++option('mm-ctl-path', type : 'string', description : 'path to mm-ctl')
++option('modprobe-path', type : 'string', description : 'path to modprobe')
++option('ovs-vsctl-path', type : 'string', description : 'path to ovs-vsctl')
++option('pdwtags-path', type : 'string', description : 'path to pdwtags')
++option('radvd-path', type : 'string', description : 'path to radvd')
++option('rmmod-path', type : 'string', description : 'path to rmmod')
++option('scrub-path', type : 'string', description : 'path to scrub')
++option('tc-path', type : 'string', description : 'path to tc')
++option('udevadm-path', type : 'string', description : 'path to udevadm')
++
+--
+2.27.0
+
diff --git a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch b/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
deleted file mode 100644
index b0148e5..0000000
--- a/recipes-extended/libvirt/libvirt/0001-to-fix-build-error.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 3566bcacaa6408fb8f655d1749a20b2f30e0c765 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@...>
-Date: Fri, 31 Jul 2015 03:17:07 +0900
-Subject: [PATCH] to fix build error
-
-The error likes as following
-
-| Generating internals/command.html.tmp
-| /bin/sh: line 3: internals/command.html.tmp: No such file or directory
-| rm: Generating internals/locking.html.tmp
-| cannot remove `internals/command.html.tmp': No such file or directory
-| make[3]: *** [internals/command.html.tmp] Error 1
-| make[3]: *** Waiting for unfinished jobs....
-
-Signed-off-by: Lei Maohui <leimaohui@...>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@...>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- docs/Makefile.am | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/docs/Makefile.am b/docs/Makefile.am
-index ce3d296..2c8180f 100644
---- a/docs/Makefile.am
-+++ b/docs/Makefile.am
-@@ -366,7 +366,7 @@ EXTRA_DIST= \
- aclperms.htmlinc \
- $(schema_DATA)
-
--acl_generated = aclperms.htmlinc
-+acl.html:: $(srcdir)/aclperms.htmlinc
-
- aclperms.htmlinc: $(top_srcdir)/src/access/viraccessperm.h \
- $(top_srcdir)/scripts/genaclperms.py Makefile.am
-@@ -432,8 +432,7 @@ manpages/%.html.in: manpages/%.rst
- $(AM_V_GEN)$(MKDIR_P) `dirname $@` && \
- $(RST2HTML) --strict $< > $@ || { rm $@ && exit 1; }
-
--%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl \
-- $(acl_generated)
-+%.html.tmp: %.html.in site.xsl subsite.xsl page.xsl
- $(AM_V_GEN)name=`echo $@ | sed -e 's/.tmp//'`; \
- genhtmlin=`echo $@ | sed -e 's/.tmp/.in/'`; \
- rst=`echo $@ | sed -e 's/.html.tmp/.rst/'`; \
diff --git a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch b/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
deleted file mode 100644
index 395d561..0000000
--- a/recipes-extended/libvirt/libvirt/configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 79f5975db01af0599860ccca7ef44b0e27105a04 Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@...>
-Date: Thu, 10 May 2018 12:05:04 -0400
-Subject: [PATCH] configure.ac: search for rpc/rpc.h in the sysroot
-
-We want to avoid host contamination and use the sysroot as the base
-directory for our search so add the '=' the the '-I' when searching
-for libtirpc's rpc.h header.
-
-Upstream-Status: Inappropriate [old release]
-
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- m4/virt-xdr.m4 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/m4/virt-xdr.m4 b/m4/virt-xdr.m4
-index 8375415..12b51f7 100644
---- a/m4/virt-xdr.m4
-+++ b/m4/virt-xdr.m4
-@@ -30,10 +30,10 @@ AC_DEFUN([LIBVIRT_CHECK_XDR], [
- ])
- with_xdr="yes"
-
-- dnl Recent glibc requires -I/usr/include/tirpc for <rpc/rpc.h>
-+ dnl Recent glibc requires -I=/usr/include/tirpc for <rpc/rpc.h>
- old_CFLAGS=$CFLAGS
- AC_CACHE_CHECK([where to find <rpc/rpc.h>], [lv_cv_xdr_cflags], [
-- for add_CFLAGS in '' '-I/usr/include/tirpc' 'missing'; do
-+ for add_CFLAGS in '' '-I=/usr/include/tirpc' 'missing'; do
- if test x"$add_CFLAGS" = xmissing; then
- lv_cv_xdr_cflags=missing; break
- fi
diff --git a/recipes-extended/libvirt/libvirt/install-missing-file.patch b/recipes-extended/libvirt/libvirt/install-missing-file.patch
deleted file mode 100644
index 6aa36df..0000000
--- a/recipes-extended/libvirt/libvirt/install-missing-file.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From aa75f5136066d239d48a21373b3d96ee12378e8d Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Wed, 8 May 2019 17:24:17 +0800
-Subject: [PATCH] Install missing conf file
-
-openvzutilstest.conf file is needed by openvzutilstest test.
-
-Upstream-Status: Inapproriate
-
-Signed-off-by: Catalin Enache <catalin.enache@...>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@...>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- tests/Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 4a808dd..0c3e799 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -173,6 +173,7 @@ EXTRA_DIST = \
- $(NULL)
-
- test_helpers = commandhelper ssh
-+test_misc =
- test_programs = virshtest sockettest \
- virhostcputest virbuftest \
- commandtest seclabeltest \
-@@ -311,6 +312,7 @@ endif WITH_LXC
-
- if WITH_OPENVZ
- test_programs += openvzutilstest
-+test_misc += openvzutilstest.conf
- endif WITH_OPENVZ
-
- if WITH_ESX
-@@ -1551,7 +1553,7 @@ endif ! WITH_LINUX
-
- buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-
--PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+PTESTS = $(TESTS) $(test_helpers) $(test_misc) test-lib.sh virschematest
-
- install-ptest:
- list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
diff --git a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch b/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
deleted file mode 100644
index 558d5ef..0000000
--- a/recipes-extended/libvirt/libvirt/libvirt-1.0.3-fix-thread-safety-in-lxc-callback-handling.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From ad5d9cee87357f9f38f62583119606ef95ba10df Mon Sep 17 00:00:00 2001
-From: Bogdan Purcareata <bogdan.purcareata@...>
-Date: Fri, 24 May 2013 16:46:00 +0300
-Subject: [PATCH] Fix thread safety in LXC callback handling
-
-Signed-off-by: Bogdan Purcareata <bogdan.purcareata@...>
----
- src/lxc/lxc_process.c | 18 +++++++++++++++++-
- 1 file changed, 17 insertions(+), 1 deletion(-)
-
-diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
-index aaa81a7..0eadc67 100644
---- a/src/lxc/lxc_process.c
-+++ b/src/lxc/lxc_process.c
-@@ -609,8 +609,13 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- virLXCProtocolExitStatus status,
- virDomainObjPtr vm)
- {
-+ virLXCDriverPtr driver = lxc_driver;
- virLXCDomainObjPrivatePtr priv = vm->privateData;
-
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
- switch (status) {
- case VIR_LXC_PROTOCOL_EXIT_STATUS_SHUTDOWN:
- priv->stopReason = VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN;
-@@ -628,6 +633,8 @@ static void virLXCProcessMonitorExitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- }
- VIR_DEBUG("Domain shutoff reason %d (from status %d)",
- priv->stopReason, status);
-+
-+ virObjectUnlock(vm);
- }
-
- /* XXX a little evil */
-@@ -636,12 +643,21 @@ static void virLXCProcessMonitorInitNotify(virLXCMonitorPtr mon ATTRIBUTE_UNUSED
- pid_t initpid,
- virDomainObjPtr vm)
- {
-- virLXCDomainObjPrivatePtr priv = vm->privateData;
-+ virLXCDriverPtr driver = lxc_driver;
-+ virLXCDomainObjPrivatePtr priv;
-+
-+ lxcDriverLock(driver);
-+ virObjectLock(vm);
-+ lxcDriverUnlock(driver);
-+
-+ priv = vm->privateData;
- priv->initpid = initpid;
- virDomainAuditInit(vm, initpid);
-
- if (virDomainSaveStatus(lxc_driver->caps, lxc_driver->stateDir, vm) < 0)
- VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name);
-+
-+ virObjectUnlock(vm);
- }
-
- static virLXCMonitorCallbacks monitorCallbacks = {
---
-1.7.11.7
-
diff --git a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch b/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
deleted file mode 100644
index 87b5591..0000000
--- a/recipes-extended/libvirt/libvirt/libvirt-use-pkg-config-to-locate-libcap.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 94bd514e1b6e602a48285db94e65050f8f0c2585 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@...>
-Date: Wed, 8 Apr 2015 13:03:03 -0400
-Subject: [PATCH] libvirt: use pkg-config to locate libcap
-
-libvirt wants to use pcap-config to locate the exisence and location
-of libpcap. oe-core stubs this script and replaces it with pkg-config,
-which can lead to the host pcap-config triggering and either breaking
-the build or introducing host contamination.
-
-To fix this issue, we patch configure to use 'pkg-config libcap' to
-locate the correct libraries.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-[MA: Update to apply agains v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-
----
- m4/virt-libpcap.m4 | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/m4/virt-libpcap.m4 b/m4/virt-libpcap.m4
-index 605c2fd..e0ab018 100644
---- a/m4/virt-libpcap.m4
-+++ b/m4/virt-libpcap.m4
-@@ -23,14 +23,14 @@ AC_DEFUN([LIBVIRT_ARG_LIBPCAP], [
-
- AC_DEFUN([LIBVIRT_CHECK_LIBPCAP], [
- LIBPCAP_REQUIRED="1.5.0"
-- LIBPCAP_CONFIG="pcap-config"
-+ LIBPCAP_CONFIG="pkg-config libpcap"
- LIBPCAP_CFLAGS=""
- LIBPCAP_LIBS=""
-
- if test "x$with_libpcap" != "xno"; then
- case $with_libpcap in
-- ''|yes|check) LIBPCAP_CONFIG="pcap-config" ;;
-- *) LIBPCAP_CONFIG="$with_libpcap/bin/pcap-config" ;;
-+ ''|yes|check) LIBPCAP_CONFIG="pkg-config libpcap" ;;
-+ *) LIBPCAP_CONFIG="$with_libpcap/bin/pkg-config libpcap" ;;
- esac
- AS_IF([test "x$LIBPCAP_CONFIG" != "x"], [
- AC_MSG_CHECKING(libpcap $LIBPCAP_CONFIG >= $LIBPCAP_REQUIRED )
diff --git a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch b/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
deleted file mode 100644
index 3cf9e83..0000000
--- a/recipes-extended/libvirt/libvirt/qemu-fix-crash-in-qemuOpen.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 74bff2509080912ea8abf1de8fd95fa2412b659a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@...>
-Date: Thu, 11 Apr 2013 11:37:25 +0200
-Subject: [PATCH] qemu: fix crash in qemuOpen
-
-commit 74bff2509080912ea8abf1de8fd95fa2412b659a from upsteam
-git://libvirt.org/libvirt.git
-
-If the path part of connection URI is not present, cfg is used
-unitialized.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=950855
----
- src/qemu/qemu_driver.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
-index 2c0d7d1..0d41e39 100644
---- a/src/qemu/qemu_driver.c
-+++ b/src/qemu/qemu_driver.c
-@@ -1026,6 +1026,7 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-+ cfg = virQEMUDriverGetConfig(qemu_driver);
- if (conn->uri->path == NULL) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("no QEMU URI path given, try %s"),
-@@ -1033,7 +1034,6 @@ static virDrvOpenStatus qemuOpen(virConnectPtr conn,
- goto cleanup;
- }
-
-- cfg = virQEMUDriverGetConfig(qemu_driver);
- if (cfg->privileged) {
- if (STRNEQ(conn->uri->path, "/system") &&
- STRNEQ(conn->uri->path, "/session")) {
---
-1.7.1
-
diff --git a/recipes-extended/libvirt/libvirt/runptest.patch b/recipes-extended/libvirt/libvirt/runptest.patch
deleted file mode 100644
index f6bc773..0000000
--- a/recipes-extended/libvirt/libvirt/runptest.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From d210838a4433dd254c1a11b08b804ebe9ff5f378 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Wed, 8 May 2019 10:20:47 +0800
-Subject: [PATCH] Add 'install-ptest' rule
-
-Change TESTS_ENVIRONMENT to allow running outside build dir.
-
-Upstream-status: Pending
-Signed-off-by: Mihaela Sendrea <mihaela.sendrea@...>
-[KK: Update context for 1.3.5.]
-Signed-off-by: Kai Kang <kai.kang@...>
-[MA: Allow separate source and build dirs]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[ZH: add missing test_helper files]
-Signed-off-by: He Zhe <zhe.he@...>
-[MA: Update context for v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[DDU: Update context for v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- tests/Makefile.am | 68 +++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 60 insertions(+), 8 deletions(-)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index ada5b8f..4a808dd 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -28,11 +28,13 @@ AM_CPPFLAGS = \
-
- WARN_CFLAGS += $(RELAXED_FRAME_LIMIT_CFLAGS)
-
-+PTEST_DIR ?= $(libdir)/libvirt/ptest
-+
- AM_CFLAGS = \
-- -Dabs_builddir="\"$(abs_builddir)\"" \
-- -Dabs_top_builddir="\"$(abs_top_builddir)\"" \
-- -Dabs_srcdir="\"$(abs_srcdir)\"" \
-- -Dabs_top_srcdir="\"$(abs_top_srcdir)\"" \
-+ -Dabs_builddir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_builddir="\"$(PTEST_DIR)\"" \
-+ -Dabs_srcdir="\"$(PTEST_DIR)/tests\"" \
-+ -Dabs_top_srcdir="\"$(PTEST_DIR)\"" \
- $(LIBXML_CFLAGS) \
- $(GLIB_CFLAGS) \
- $(LIBNL_CFLAGS) \
-@@ -474,10 +476,10 @@ TESTS = $(test_programs) \
-
- VIR_TEST_EXPENSIVE ?= $(VIR_TEST_EXPENSIVE_DEFAULT)
- TESTS_ENVIRONMENT = \
-- abs_top_builddir="$(abs_top_builddir)" \
-- abs_top_srcdir="$(abs_top_srcdir)" \
-- abs_builddir="$(abs_builddir)" \
-- abs_srcdir="$(abs_srcdir)" \
-+ abs_top_builddir="$(PTEST_DIR)" \
-+ abs_top_srcdir="$(PTEST_DIR)" \
-+ abs_builddir="$(PTEST_DIR)/tests" \
-+ abs_srcdir="$(PTEST_DIR)/tests" \
- LIBVIRT_AUTOSTART=0 \
- LC_ALL=C \
- VIR_TEST_EXPENSIVE=$(VIR_TEST_EXPENSIVE) \
-@@ -1547,4 +1549,54 @@ else ! WITH_LINUX
- EXTRA_DIST += virscsitest.c
- endif ! WITH_LINUX
-
-+buildtest-TESTS: $(TESTS) $(test_libraries) $(test_helpers)
-+
-+PTESTS = $(TESTS) $(test_helpers) test-lib.sh virschematest
-+
-+install-ptest:
-+ list='$(TESTS) $(test_helpers) test-lib.sh virschematest'
-+ install -d $(DEST_DIR)/tools
-+ @(if [ -d ../tools/.libs ] ; then cd ../tools/.libs; fi; \
-+ install * $(DEST_DIR)/tools)
-+ install -d $(DEST_DIR)/src/network
-+ cp $(top_srcdir)/src/network/*.xml $(DEST_DIR)/src/network
-+ install -d $(DEST_DIR)/src/cpu_map
-+ cp $(top_srcdir)/src/cpu_map/*.xml $(DEST_DIR)/src/cpu_map
-+ install ../src/libvirt_iohelper $(DEST_DIR)/src
-+ install -D ../src/libvirtd $(DEST_DIR)/src/libvirtd
-+ install -d $(DEST_DIR)/src/remote
-+ install -D $(top_srcdir)/../build/src/remote/libvirtd.conf $(DEST_DIR)/src/remote/libvirtd.conf
-+ install -d $(DEST_DIR)/src/remote/.libs
-+ @(if [ -d ../src/remote/.libs ] ; then cd ../src/remote/.libs; fi; \
-+ install * $(DEST_DIR)/src/remote/.libs)
-+ install -d $(DEST_DIR)/src/.libs
-+ @(if [ -d ../src/.libs ] ; then cd ../src/.libs; fi; \
-+ install * $(DEST_DIR)/src/.libs)
-+ install -d $(DEST_DIR)/docs/schemas
-+ cp $(top_srcdir)/docs/schemas/*.rng $(DEST_DIR)/docs/schemas
-+ cp -r $(top_srcdir)/build-aux $(DEST_DIR)
-+ install -d $(DEST_DIR)/examples/xml
-+ cp -r $(top_srcdir)/examples/xml/test $(DEST_DIR)/examples/xml
-+ install -d $(DEST_DIR)/tests/.libs
-+ find . -type d -name "*xml2xml*" -exec cp -r {} $(DEST_DIR)/tests \;
-+ find . -type d -name "*data" -exec cp -r {} $(DEST_DIR)/tests \;
-+ @(for file in $(PTESTS); do \
-+ if [ -f .libs/$$file ]; then \
-+ install .libs/$$file $(DEST_DIR)/tests; \
-+ elif [ -f $(srcdir)/$$file ]; then \
-+ install $(srcdir)/$$file $(DEST_DIR)/tests; \
-+ else \
-+ install $(builddir)/$$file $(DEST_DIR)/tests; \
-+ fi; \
-+ done;)
-+ @(if [ -d .libs ]; then install .libs/*.so $(DEST_DIR)/tests/.libs; fi;)
-+ cp ../config.h $(DEST_DIR)
-+ cp Makefile $(DEST_DIR)/tests
-+ sed -i -e 's/^Makefile:/_Makefile:/' $(DEST_DIR)/tests/Makefile
-+ cp ../Makefile $(DEST_DIR)
-+ sed -i -e 's|^Makefile:|_Makefile:|' $(DEST_DIR)/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/tests/Makefile
-+ sed -i -e 's|$(BUILD_DIR)|$(PTEST_DIR)|g' $(DEST_DIR)/Makefile
-+ sed -i -e 's|^\(.*\.log:\) \(.*EXEEXT.*\)|\1|g' $(DEST_DIR)/tests/Makefile
-+
- CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda
diff --git a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch b/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
deleted file mode 100644
index bb500fd..0000000
--- a/recipes-extended/libvirt/libvirt/tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 7dc21edd851b260485b432c096f8e90f6fa07778 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@...>
-Date: Tue, 7 May 2019 15:26:32 +0800
-Subject: [PATCH] tools: add libvirt-net-rpc to virt-host-validate when TLS is
- enabled
-
-When gnu-tls is enabled for libvirt references to virNetTLSInit are
-generated in libvirt. Any binaries linking against libvirt, must also
-link against libvirt-net-rpc which provides the implementation.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@...>
-[ywei: rebased to libvirt-1.3.2]
-Signed-off-by: Yunguo Wei <yunguo.wei@...>
-[MA: rebase to v4.3.0]
-Signed-off-by: Mark Asselstine <mark.asselstine@...>
-[ddu: rebase to v5.3.0]
-Signed-off-by: Dengke Du <dengke.du@...>
-
----
- examples/Makefile.am | 20 ++++++++++++++++++++
- tools/Makefile.am | 12 ++++++++++++
- 2 files changed, 32 insertions(+)
-
-diff --git a/examples/Makefile.am b/examples/Makefile.am
-index ad635bd..a94f41d 100644
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -74,6 +74,10 @@ LDADD = \
- $(top_builddir)/src/libvirt-admin.la \
- $(NULL)
-
-+if WITH_GNUTLS
-+LDADD += $(top_builddir)/src/libvirt-net-rpc.la
-+endif
-+
- noinst_PROGRAMS = \
- c/admin/client_close \
- c/admin/client_info \
-@@ -111,6 +115,22 @@ c_misc_openauth_SOURCES = c/misc/openauth.c
- examplesdir = $(docdir)/examples
-
- adminexamplesdir = $(examplesdir)/c/admin
-+
-+if WITH_GNUTLS
-+dominfo_info1_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+domsuspend_suspend_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+hellolibvirt_hellolibvirt_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+openauth_openauth_LDADD = $(top_builddir)/src/libvirt-net-rpc.la \
-+ $(LDADD) \
-+ $(NULL)
-+endif
-+
- adminexamples_DATA = $(ADMIN_EXAMPLES)
-
- domainexamplesdir = $(examplesdir)/c/domain
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 53df930..2a0a989 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -166,6 +166,12 @@ virt_host_validate_LDADD = \
- $(GLIB_LIBS) \
- $(NULL)
-
-+if WITH_GNUTLS
-+virt_host_validate_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- virt_host_validate_CFLAGS = \
- $(AM_CFLAGS) \
- $(NULL)
-@@ -262,6 +268,12 @@ virt_admin_CFLAGS = \
- $(READLINE_CFLAGS)
- BUILT_SOURCES =
-
-+if WITH_GNUTLS
-+virsh_LDADD += ../src/libvirt-net-rpc.la \
-+ ../gnulib/lib/libgnu.la \
-+ $(NULL)
-+endif
-+
- if WITH_WIN_ICON
- virsh_LDADD += virsh_win_icon.$(OBJEXT)
-
diff --git a/recipes-extended/libvirt/libvirt_6.3.0.bb b/recipes-extended/libvirt/libvirt_7.2.0.bb
similarity index 62%
rename from recipes-extended/libvirt/libvirt_6.3.0.bb
rename to recipes-extended/libvirt/libvirt_7.2.0.bb
index 41abb06..1093e9b 100644
--- a/recipes-extended/libvirt/libvirt_6.3.0.bb
+++ b/recipes-extended/libvirt/libvirt_7.2.0.bb
@@ -1,7 +1,6 @@
DESCRIPTION = "A toolkit to interact with the virtualization capabilities of recent versions of Linux."
HOMEPAGE = "http://libvirt.org"
LICENSE = "LGPLv2.1+ & GPLv2+"
-LICENSE_${PN}-ptest = "GPLv2+ & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LESSER;md5=4b54a1fd55a448865a0b32d41598759d"
SECTION = "console/tools"
@@ -16,9 +15,7 @@ DEPENDS = "bridge-utils gnutls libxml2 lvm2 avahi parted curl libpcap util-linux
#
RDEPENDS_${PN} = "gettext-runtime"

-RDEPENDS_${PN}-ptest += "make gawk perl bash"
-
-RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd"
+RDEPENDS_libvirt-libvirtd += "bridge-utils iptables pm-utils dnsmasq netcat-openbsd ebtables"
RDEPENDS_libvirt-libvirtd_append_x86-64 = " dmidecode"
RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"

@@ -26,88 +23,30 @@ RDEPENDS_libvirt-libvirtd_append_x86 = " dmidecode"
RCONFLICTS_${PN}_libvirtd = "connman"

SRC_URI = "http://libvirt.org/sources/libvirt-${PV}.tar.xz;name=libvirt \
- file://tools-add-libvirt-net-rpc-to-virt-host-validate-when.patch \
file://libvirtd.sh \
file://libvirtd.conf \
file://dnsmasq.conf \
- file://runptest.patch \
- file://run-ptest \
- file://libvirt-use-pkg-config-to-locate-libcap.patch \
- file://0001-to-fix-build-error.patch \
- file://install-missing-file.patch \
- file://0001-ptest-Remove-Windows-1252-check-from-esxutilstest.patch \
- file://configure.ac-search-for-rpc-rpc.h-in-the-sysroot.patch \
- file://0001-build-drop-unnecessary-libgnu.la-reference.patch \
file://hook_support.py \
file://gnutls-helper.py \
+ file://0001-meson-add-options-to-explicit-binaries-path.patch \
"

-SRC_URI[libvirt.md5sum] = "1bd4435f77924f5ec9928b538daf4a02"
-SRC_URI[libvirt.sha256sum] = "74069438d34082336e99a88146349e21130552b96efc3b7c562f6878127996f5"
+SRC_URI[libvirt.md5sum] = "92044b629216e44adce63224970a54a3"
+SRC_URI[libvirt.sha256sum] = "01f459d0c7ba5009622a628dba1a026200e8f4a299fea783b936a71d7e0ed1d0"

-inherit autotools gettext update-rc.d pkgconfig ptest systemd useradd perlnative
+inherit meson gettext update-rc.d pkgconfig systemd useradd perlnative
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM_${PN} = "-r qemu; -r kvm"
USERADD_PARAM_${PN} = "-r -g qemu -G kvm qemu"

-# Override the default set in autotools.bbclass so that we will use relative pathnames
-# to our local m4 files. This prevents an "Argument list too long" error during configuration
-# if our project is in a directory with an absolute pathname of more than about 125 characters.
-#
-acpaths = "-I ./m4"
-
-CACHED_CONFIGUREVARS += "\
-ac_cv_path_XMLCATLOG=/usr/bin/xmlcatalog \
-ac_cv_path_AUGPARSE=/usr/bin/augparse \
-ac_cv_path_DMIDECODE=/usr/sbin/dmidecode \
-ac_cv_path_DNSMASQ=/usr/bin/dnsmasq \
-ac_cv_path_BRCTL=/usr/sbin/brctl \
-ac_cv_path_TC=/sbin/tc \
-ac_cv_path_UDEVADM=/sbin/udevadm \
-ac_cv_path_MODPROBE=/sbin/modprobe \
-ac_cv_path_IP_PATH=/bin/ip \
-ac_cv_path_IPTABLES_PATH=/usr/sbin/iptables \
-ac_cv_path_IP6TABLES_PATH=/usr/sbin/ip6tables \
-ac_cv_path_MOUNT=/bin/mount \
-ac_cv_path_UMOUNT=/bin/umount \
-ac_cv_path_MKFS=/usr/sbin/mkfs \
-ac_cv_path_SHOWMOUNT=/usr/sbin/showmount \
-ac_cv_path_PVCREATE=/usr/sbin/pvcreate \
-ac_cv_path_VGCREATE=/usr/sbin/vgcreate \
-ac_cv_path_LVCREATE=/usr/sbin/lvcreate \
-ac_cv_path_PVREMOVE=/usr/sbin/pvremove \
-ac_cv_path_VGREMOVE=/usr/sbin/vgremove \
-ac_cv_path_LVREMOVE=/usr/sbin/lvremove \
-ac_cv_path_LVCHANGE=/usr/sbin/lvchange \
-ac_cv_path_VGCHANGE=/usr/sbin/vgchange \
-ac_cv_path_VGSCAN=/usr/sbin/vgscan \
-ac_cv_path_PVS=/usr/sbin/pvs \
-ac_cv_path_VGS=/usr/sbin/vgs \
-ac_cv_path_LVS=/usr/sbin/lvs \
-ac_cv_path_PARTED=/usr/sbin/parted \
-ac_cv_path_DMSETUP=/usr/sbin/dmsetup"
-
-# Ensure that libvirt uses polkit rather than policykit, whether the host has
-# pkcheck installed or not, and ensure the path is correct per our config.
-CACHED_CONFIGUREVARS += "ac_cv_path_PKCHECK_PATH=${bindir}/pkcheck"
-
-# Some other possible paths we are not yet setting
-#ac_cv_path_RPCGEN=
-#ac_cv_path_XSLTPROC=
-#ac_cv_path_RADVD=
-#ac_cv_path_UDEVSETTLE=
-#ac_cv_path_EBTABLES_PATH=
-#ac_cv_path_PKG_CONFIG=
-#ac_cv_path_ac_pt_PKG_CONFIG
-#ac_cv_path_POLKIT_AUTH=
-#ac_cv_path_DTRACE=
-#ac_cv_path_ISCSIADM=
-#ac_cv_path_MSGFMT=
-#ac_cv_path_GMSGFMT=
-#ac_cv_path_XGETTEXT=
-#ac_cv_path_MSGMERGE=
-#ac_cv_path_SCRUB=
-#ac_cv_path_PYTHON=
+
+EXTRA_OEMESON += " \
+ -Dip6tables-path=/usr/sbin/ip6tables \
+ -Ddmidecode-path=/usr/sbin/dmidecode \
+ -Ddnsmasq-path=/usr/bin/dnsmasq \
+ -Diptables-path=/usr/sbin/iptables \
+ -Debtables-path=/sbin/ebtables \
+ "

ALLOW_EMPTY_${PN} = "1"

@@ -166,32 +105,13 @@ SYSTEMD_SERVICE_${PN}-libvirtd = " \
libvirt-guests.service \
virtlockd.socket \
"
-
-
-PRIVATE_LIBS_${PN}-ptest = " \
- libvirt-lxc.so.0 \
- libvirt.so.0 \
- libvirt-qemu.so.0 \
- lockd.so \
- libvirt_driver_secret.so \
- libvirt_driver_nodedev.so \
- libvirt_driver_vbox.so \
- libvirt_driver_interface.so \
- libvirt_driver_uml.so \
- libvirt_driver_network.so \
- libvirt_driver_nwfilter.so \
- libvirt_driver_qemu.so \
- libvirt_driver_storage.so \
- libvirt_driver_lxc.so \
- "
-
# xen-minimal config
#PACKAGECONFIG ??= "xen libxl xen-inotify test remote libvirtd"

# full config
-PACKAGECONFIG ??= "gnutls qemu yajl openvz vmware vbox esx iproute2 lxc test \
- remote macvtap libvirtd netcf udev python ebtables \
- fuse iproute2 firewalld libpcap \
+PACKAGECONFIG ??= "gnutls qemu yajl openvz vmware vbox esx lxc test \
+ remote libvirtd netcf udev python \
+ fuse firewalld libpcap \
${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit libcap-ng', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'xen', 'libxl', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'polkit', '', d)} \
@@ -208,37 +128,34 @@ PACKAGECONFIG_remove_armeb = "numactl"
# enable,disable,depends,rdepends
#
PACKAGECONFIG[gnutls] = ",,,gnutls-bin"
-PACKAGECONFIG[qemu] = "--with-qemu --with-qemu-user=qemu --with-qemu-group=qemu,--without-qemu,qemu,"
-PACKAGECONFIG[yajl] = "--with-yajl,--without-yajl,yajl,yajl"
-PACKAGECONFIG[libxl] = "--with-libxl=${STAGING_DIR_TARGET}/lib,--without-libxl,xen,"
-PACKAGECONFIG[openvz] = "--with-openvz,--without-openvz,,"
-PACKAGECONFIG[vmware] = "--with-vmware,--without-vmware,,"
-PACKAGECONFIG[vbox] = "--with-vbox,--without-vbox,,"
-PACKAGECONFIG[esx] = "--with-esx,--without-esx,,"
-PACKAGECONFIG[hyperv] = "--with-hyperv,--without-hyperv,,"
-PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit,polkit"
-PACKAGECONFIG[lxc] = "--with-lxc,--without-lxc, lxc,"
-PACKAGECONFIG[test] = "--with-test=yes,--with-test=no,,"
-PACKAGECONFIG[remote] = "--with-remote,--without-remote,,"
-PACKAGECONFIG[macvtap] = "--with-macvtap=yes,--with-macvtap=no,libnl,libnl"
-PACKAGECONFIG[libvirtd] = "--with-libvirtd,--without-libvirtd,,"
-PACKAGECONFIG[netcf] = "--with-netcf,--without-netcf,netcf,netcf"
-PACKAGECONFIG[dtrace] = "--with-dtrace,--without-dtrace,,"
-PACKAGECONFIG[udev] = "--with-udev --with-pciaccess,--without-udev,udev libpciaccess,"
-PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux,"
-PACKAGECONFIG[ebtables] = "ac_cv_path_EBTABLES_PATH=/sbin/ebtables,ac_cv_path_EBTABLES_PATH=,ebtables,ebtables"
+PACKAGECONFIG[qemu] = "-Ddriver_qemu=enabled -Dqemu_user=qemu -Dqemu_group=qemu,-Dqemu=disabled,qemu,"
+PACKAGECONFIG[yajl] = "-Dyajl=enabled,-Dyajl=disabled,yajl,yajl"
+PACKAGECONFIG[libxl] = "-Dlibxl=${STAGING_DIR_TARGET}/lib,,xen,"
+PACKAGECONFIG[openvz] = "-Ddriver_openvz=enabled,-Ddriver_openvz=disabled,,"
+PACKAGECONFIG[vmware] = "-Ddriver_vmware=enabled,-Ddriver_vmware=disabled,,"
+PACKAGECONFIG[vbox] = "-Ddriver_vbox=enabled,-Ddriver_vbox=disabled,,"
+PACKAGECONFIG[esx] = "-Ddriver_esx=enabled,-Ddriver_esx=disabled,,"
+PACKAGECONFIG[hyperv] = "-Ddriver_hyperv=enabled,-Ddriver_hyperv=disabled,,"
+PACKAGECONFIG[polkit] = "-Dpolkit=enabled,-Dpolkit=disabled,polkit,polkit"
+PACKAGECONFIG[lxc] = "-Ddriver_lxc=enabled,-Ddriver_lxc=disabled,lxc,"
+PACKAGECONFIG[test] = "-Ddriver_test=enabled,-Ddriver_test=disabled,,"
+PACKAGECONFIG[remote] = "-Ddriver_remote=enabled,-Ddriver_remote=disabled,,"
+PACKAGECONFIG[libvirtd] = "-Ddriver_libvirtd=enabled,-Ddriver_libvirtd=disabled,,"
+PACKAGECONFIG[netcf] = "-Dnetcf=enabled,-Dnetcf=disabled,netcf,netcf"
+PACKAGECONFIG[dtrace] = "-Ddtrace=enabled,-Ddtrace=disabled,,"
+PACKAGECONFIG[udev] = "-Dudev=enabled -Dpciaccess=enabled,-Dudev=disabled,udev libpciaccess,"
+PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux,"
PACKAGECONFIG[python] = ",,python3,"
-PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,cyrus-sasl"
-PACKAGECONFIG[iproute2] = "ac_cv_path_IP_PATH=/sbin/ip,ac_cv_path_IP_PATH=,iproute2,iproute2"
-PACKAGECONFIG[numactl] = "--with-numactl,--without-numactl,numactl,"
-PACKAGECONFIG[fuse] = "--with-fuse,--without-fuse,fuse,"
-PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit,"
-PACKAGECONFIG[libcap-ng] = "--with-capng,--without-capng,libcap-ng,"
-PACKAGECONFIG[wireshark] = "--with-wireshark-dissector,--without-wireshark-dissector,wireshark libwsutil,"
-PACKAGECONFIG[apparmor-profiles] = "--with-apparmor-profiles, --without-apparmor-profiles,"
-PACKAGECONFIG[firewalld] = "--with-firewalld, --without-firewalld,"
-PACKAGECONFIG[libpcap] = "--with-libpcap, --without-libpcap,libpcap,libpcap"
-PACKAGECONFIG[numad] = "--with-numad, --without-numad,"
+PACKAGECONFIG[sasl] = "-Dsasl=enabled,-Dsasl=disabled,cyrus-sasl,cyrus-sasl"
+PACKAGECONFIG[numactl] = "-Dnumactl=enabled,-Dnumactl=disabled,numactl,"
+PACKAGECONFIG[fuse] = "-Dfuse=enabled,-Dfuse=disabled,fuse,"
+PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit,"
+PACKAGECONFIG[libcap-ng] = "-Dcapng=enabled,-Dcapng=disabled,libcap-ng,"
+PACKAGECONFIG[wireshark] = "-Dwireshark_dissector=enabled,-Dwireshark_dissector=disabled,wireshark libwsutil,"
+PACKAGECONFIG[apparmor_profiles] = "-Dapparmor_profiles=true, -Dapparmor_profiles=false,"
+PACKAGECONFIG[firewalld] = "-Dfirewalld=enabled, -Dfirewalld=disabled,"
+PACKAGECONFIG[libpcap] = "-Dlibpcap=enabled, -Dlibpcap=disabled,libpcap,libpcap"
+PACKAGECONFIG[numad] = "-Dnumad=enabled, -Dnumad=disabled,"

# Enable the Python tool support
require libvirt-python.inc
@@ -255,7 +172,7 @@ do_compile() {

cd ${B}
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${B}/src:"
- oe_runmake all
+ ninja all
}

do_install_prepend() {
@@ -278,6 +195,8 @@ do_install_append() {
fi

if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ mkdir -p ${D}/lib
+ mv ${D}/usr/lib/systemd ${D}/lib
# This variable is used by libvirtd.service to start libvirtd in the right mode
sed -i '/#LIBVIRTD_ARGS="--listen"/a LIBVIRTD_ARGS="--listen --daemon"' ${D}/${sysconfdir}/sysconfig/libvirtd

@@ -360,7 +279,7 @@ do_install_append() {
# connection via 127.0.0.1 is available out of box.
install -d ${D}/etc/pki/CA
install -d ${D}/etc/pki/libvirt/private
- install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
+ install -m 0755 ${WORKDIR}/gnutls-helper.py ${D}/${bindir}
install -m 0644 ${WORKDIR}/cakey.pem ${D}/${sysconfdir}/pki/libvirt/private/cakey.pem
install -m 0644 ${WORKDIR}/cacert.pem ${D}/${sysconfdir}/pki/CA/cacert.pem
install -m 0644 ${WORKDIR}/serverkey.pem ${D}/${sysconfdir}/pki/libvirt/private/serverkey.pem
@@ -376,10 +295,10 @@ do_install_append() {
chmod 4755 ${D}${bindir}/virt-login-shell
}

-EXTRA_OECONF += " \
- --with-init-script=systemd \
- --with-test-suite \
- --with-runstatedir=/run \
+EXTRA_OEMESON += " \
+ -Dinit_script=systemd \
+ -Drunstatedir=/run \
+ -Dtests=enabled \
"

# gcc9 end up mis-compiling qemuxml2argvtest.o with Og which then
@@ -389,23 +308,6 @@ SELECTED_OPTIMIZATION_append_virtclass-multilib-lib32_mipsarch = " -O2"

EXTRA_OEMAKE = "BUILD_DIR=${B} DEST_DIR=${D}${PTEST_PATH} PTEST_DIR=${PTEST_PATH} SYSTEMD_UNIT_DIR=${systemd_system_unitdir}"

-PRIVATE_LIBS_${PN}-ptest_append = "libvirt-admin.so.0"
-
-do_compile_ptest() {
- oe_runmake -C tests buildtest-TESTS
-}
-
-do_install_ptest() {
- oe_runmake -C tests install-ptest
-
- find ${S}/tests -maxdepth 1 -type d -exec cp -r {} ${D}${PTEST_PATH}/tests/ \;
-
- # remove .la files for ptest, they aren't required and can trigger QA errors
- for i in `find ${D}${PTEST_PATH} -type f \( -name *.la -o -name *.o \)`; do
- rm -f $i
- done
-}
-
pkg_postinst_${PN}() {
if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
/etc/init.d/populate-volatile.sh update
--
2.27.0




--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


Re: [hardknott][PATCH] containerd: fix CVE-2021-3121

Bruce Ashfield
 

In message: [meta-virtualization][hardknott][PATCH] containerd: fix CVE-2021-3121
on 20/04/2021 Trevor Gamblin wrote:

The master branch contains an uprev for containerd that includes the
fix, so backport the patch separately for hardknott.

Tested by pulling a hello-world image with podman to
core-image-full-cmdline, with the following added to local.conf:

DISTRO_FEATURES_append = " systemd seccomp"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
NETWORK_MANAGER = "systemd"
IMAGE_ROOTFS_EXTRA_SPACE = "8192000"
PREFERRED_PROVIDER_virtual/containerd = "containerd-opencontainers"
IMAGE_INSTALL_append = " podman virtual/containerd"
Thanks for the fix! I've queued it for hardknott.

Bruce


Signed-off-by: Trevor Gamblin <trevor.gamblin@...>
---
.../containerd-opencontainers_git.bb | 1 +
.../containerd/files/CVE-2021-3121.patch | 4035 +++++++++++++++++
2 files changed, 4036 insertions(+)
create mode 100644 recipes-containers/containerd/files/CVE-2021-3121.patch

diff --git a/recipes-containers/containerd/containerd-opencontainers_git.bb b/recipes-containers/containerd/containerd-opencontainers_git.bb
index efa3626..9d33676 100644
--- a/recipes-containers/containerd/containerd-opencontainers_git.bb
+++ b/recipes-containers/containerd/containerd-opencontainers_git.bb
@@ -9,6 +9,7 @@ SRCREV = "33d90b72d1e44987118ac111d4f7a108d412099b"
SRC_URI = "git://github.com/containerd/containerd;branch=release/1.4 \
file://0001-build-use-oe-provided-GO-and-flags.patch \
file://0001-Add-build-option-GODEBUG-1.patch \
+ file://CVE-2021-3121.patch \
"

# Apache-2.0 for containerd
diff --git a/recipes-containers/containerd/files/CVE-2021-3121.patch b/recipes-containers/containerd/files/CVE-2021-3121.patch
new file mode 100644
index 0000000..1a2c0f4
--- /dev/null
+++ b/recipes-containers/containerd/files/CVE-2021-3121.patch
@@ -0,0 +1,4035 @@
+From 9bd7f1043ce566d4600a8c61cd45bc99b2b17e36 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <trevor.gamblin@...>
+Date: Tue, 20 Apr 2021 11:21:08 -0400
+Subject: [PATCH] CVE-2021-3121
+
+Backports the fix at https://github.com/containerd/containerd/commit/1423e919,
+but with extra refactors for pulled in from later versions to make the
+fix apply correctly.
+
+Upstream-Status: Backport
+CVE: CVE-2021-3121
+
+Signed-off-by: Trevor Gamblin <trevor.gamblin@...>
+---
+ src/import/api/events/container.pb.go | 22 +-
+ src/import/api/events/content.pb.go | 5 +-
+ src/import/api/events/image.pb.go | 19 +-
+ src/import/api/events/namespace.pb.go | 19 +-
+ src/import/api/events/snapshot.pb.go | 15 +-
+ src/import/api/events/task.pb.go | 55 +-
+ src/import/api/services/containers/v1/containers.pb.go | 64 +--
+ src/import/api/services/content/v1/content.pb.go | 94 +---
+ src/import/api/services/diff/v1/diff.pb.go | 24 +-
+ src/import/api/services/events/v1/events.pb.go | 20 +-
+ src/import/api/services/images/v1/images.pb.go | 52 +-
+ src/import/.../introspection/v1/introspection.pb.go | 22 +-
+ src/import/api/services/leases/v1/leases.pb.go | 59 +--
+ src/import/api/services/namespaces/v1/namespace.pb.go | 52 +-
+ src/import/api/services/snapshots/v1/snapshots.pb.go | 98 +---
+ src/import/api/services/tasks/v1/tasks.pb.go | 484 +++++++++++-------
+ src/import/api/services/ttrpc/events/v1/events.pb.go | 10 +-
+ src/import/api/services/version/v1/version.pb.go | 5 +-
+ src/import/api/types/descriptor.pb.go | 7 +-
+ src/import/api/types/metrics.pb.go | 5 +-
+ src/import/api/types/mount.pb.go | 5 +-
+ src/import/api/types/platform.pb.go | 5 +-
+ src/import/api/types/task/task.pb.go | 10 +-
+ src/import/runtime/linux/runctypes/runc.pb.go | 20 +-
+ src/import/runtime/v1/shim/v1/shim.pb.go | 100 +---
+ src/import/runtime/v2/runc/options/oci.pb.go | 15 +-
+ src/import/runtime/v2/task/shim.pb.go | 470 ++++++++++-------
+ src/import/.../protobuf/plugin/unmarshal/unmarshal.go | 16 +-
+ src/import/.../gogo/protobuf/proto/text_parser.go | 2 +-
+ src/import/.../github.com/gogo/protobuf/types/any.pb.go | 5 +-
+ src/import/.../github.com/gogo/protobuf/types/api.pb.go | 15 +-
+ src/import/.../gogo/protobuf/types/duration.pb.go | 5 +-
+ src/import/.../gogo/protobuf/types/empty.pb.go | 5 +-
+ src/import/.../gogo/protobuf/types/field_mask.pb.go | 5 +-
+ src/import/.../gogo/protobuf/types/source_context.pb.go | 5 +-
+ src/import/.../gogo/protobuf/types/struct.pb.go | 17 +-
+ src/import/.../gogo/protobuf/types/timestamp.pb.go | 5 +-
+ src/import/.../github.com/gogo/protobuf/types/type.pb.go | 25 +-
+ src/import/.../gogo/protobuf/types/wrappers.pb.go | 45 +-
+ 39 files changed, 773 insertions(+), 1133 deletions(-)
+
+diff --git a/src/import/api/events/container.pb.go b/src/import/api/events/container.pb.go
+index 0c1e0a939..fe002e073 100644
+--- a/src/import/api/events/container.pb.go
++++ b/src/import/api/events/container.pb.go
+@@ -835,10 +835,7 @@ func (m *ContainerCreate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainer
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainer
+ }
+ if (iNdEx + skippy) > l {
+@@ -957,10 +954,7 @@ func (m *ContainerCreate_Runtime) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainer
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainer
+ }
+ if (iNdEx + skippy) > l {
+@@ -1185,7 +1179,7 @@ func (m *ContainerUpdate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainer
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1234,10 +1228,7 @@ func (m *ContainerUpdate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainer
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainer
+ }
+ if (iNdEx + skippy) > l {
+@@ -1320,10 +1311,7 @@ func (m *ContainerDelete) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainer
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainer
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/events/content.pb.go b/src/import/api/events/content.pb.go
+index 959ea72d8..0a7ec9325 100644
+--- a/src/import/api/events/content.pb.go
++++ b/src/import/api/events/content.pb.go
+@@ -257,10 +257,7 @@ func (m *ContentDelete) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/events/image.pb.go b/src/import/api/events/image.pb.go
+index 13f60b017..747026945 100644
+--- a/src/import/api/events/image.pb.go
++++ b/src/import/api/events/image.pb.go
+@@ -697,7 +697,7 @@ func (m *ImageCreate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImage
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -714,10 +714,7 @@ func (m *ImageCreate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImage
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImage
+ }
+ if (iNdEx + skippy) > l {
+@@ -910,7 +907,7 @@ func (m *ImageUpdate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImage
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -927,10 +924,7 @@ func (m *ImageUpdate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImage
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImage
+ }
+ if (iNdEx + skippy) > l {
+@@ -1013,10 +1007,7 @@ func (m *ImageDelete) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImage
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImage
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/events/namespace.pb.go b/src/import/api/events/namespace.pb.go
+index 37c3b78cf..d406a987e 100644
+--- a/src/import/api/events/namespace.pb.go
++++ b/src/import/api/events/namespace.pb.go
+@@ -697,7 +697,7 @@ func (m *NamespaceCreate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -714,10 +714,7 @@ func (m *NamespaceCreate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -910,7 +907,7 @@ func (m *NamespaceUpdate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -927,10 +924,7 @@ func (m *NamespaceUpdate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -1013,10 +1007,7 @@ func (m *NamespaceDelete) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/events/snapshot.pb.go b/src/import/api/events/snapshot.pb.go
+index 539297004..bec25c3a7 100644
+--- a/src/import/api/events/snapshot.pb.go
++++ b/src/import/api/events/snapshot.pb.go
+@@ -548,10 +548,7 @@ func (m *SnapshotPrepare) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshot
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshot
+ }
+ if (iNdEx + skippy) > l {
+@@ -666,10 +663,7 @@ func (m *SnapshotCommit) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshot
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshot
+ }
+ if (iNdEx + skippy) > l {
+@@ -752,10 +746,7 @@ func (m *SnapshotRemove) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshot
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshot
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/events/task.pb.go b/src/import/api/events/task.pb.go
+index 0f16695e3..f8f3a3f3d 100644
+--- a/src/import/api/events/task.pb.go
++++ b/src/import/api/events/task.pb.go
+@@ -1905,10 +1905,7 @@ func (m *TaskCreate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2010,10 +2007,7 @@ func (m *TaskStart) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2199,10 +2193,7 @@ func (m *TaskDelete) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2369,10 +2360,7 @@ func (m *TaskIO) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2558,10 +2546,7 @@ func (m *TaskExit) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2644,10 +2629,7 @@ func (m *TaskOOM) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2762,10 +2744,7 @@ func (m *TaskExecAdded) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2899,10 +2878,7 @@ func (m *TaskExecStarted) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2985,10 +2961,7 @@ func (m *TaskPaused) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -3071,10 +3044,7 @@ func (m *TaskResumed) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -3189,10 +3159,7 @@ func (m *TaskCheckpointed) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/containers/v1/containers.pb.go b/src/import/api/services/containers/v1/containers.pb.go
+index d951b2683..af56c7de2 100644
+--- a/src/import/api/services/containers/v1/containers.pb.go
++++ b/src/import/api/services/containers/v1/containers.pb.go
+@@ -2106,7 +2106,7 @@ func (m *Container) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -2469,7 +2469,7 @@ func (m *Container) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -2486,10 +2486,7 @@ func (m *Container) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2608,10 +2605,7 @@ func (m *Container_Runtime) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2694,10 +2688,7 @@ func (m *GetContainerRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2781,10 +2772,7 @@ func (m *GetContainerResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2867,10 +2855,7 @@ func (m *ListContainersRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2955,10 +2940,7 @@ func (m *ListContainersResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -3042,10 +3024,7 @@ func (m *CreateContainerRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -3129,10 +3108,7 @@ func (m *CreateContainerResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -3252,10 +3228,7 @@ func (m *UpdateContainerRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -3339,10 +3312,7 @@ func (m *UpdateContainerResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -3425,10 +3395,7 @@ func (m *DeleteContainerRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -3515,10 +3482,7 @@ func (m *ListContainerMessage) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/content/v1/content.pb.go b/src/import/api/services/content/v1/content.pb.go
+index 1cf0aaa91..97c7d4a92 100644
+--- a/src/import/api/services/content/v1/content.pb.go
++++ b/src/import/api/services/content/v1/content.pb.go
+@@ -3280,7 +3280,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -3297,10 +3297,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3383,10 +3380,7 @@ func (m *InfoRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3470,10 +3464,7 @@ func (m *InfoResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3593,10 +3584,7 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3680,10 +3668,7 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3766,10 +3751,7 @@ func (m *ListContentRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3854,10 +3836,7 @@ func (m *ListContentResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3940,10 +3919,7 @@ func (m *DeleteContentRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4064,10 +4040,7 @@ func (m *ReadContentRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4171,10 +4144,7 @@ func (m *ReadContentResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4393,10 +4363,7 @@ func (m *Status) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4479,10 +4446,7 @@ func (m *StatusRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4569,10 +4533,7 @@ func (m *StatusResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4655,10 +4616,7 @@ func (m *ListStatusesRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4743,10 +4701,7 @@ func (m *ListStatusesResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -5062,7 +5017,7 @@ func (m *WriteContentRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -5079,10 +5034,7 @@ func (m *WriteContentRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -5288,10 +5240,7 @@ func (m *WriteContentResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -5374,10 +5323,7 @@ func (m *AbortRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/diff/v1/diff.pb.go b/src/import/api/services/diff/v1/diff.pb.go
+index 48379234d..b1450ceb8 100644
+--- a/src/import/api/services/diff/v1/diff.pb.go
++++ b/src/import/api/services/diff/v1/diff.pb.go
+@@ -1063,7 +1063,7 @@ func (m *ApplyRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDiff
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1080,10 +1080,7 @@ func (m *ApplyRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthDiff
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDiff
+ }
+ if (iNdEx + skippy) > l {
+@@ -1170,10 +1167,7 @@ func (m *ApplyResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthDiff
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDiff
+ }
+ if (iNdEx + skippy) > l {
+@@ -1466,7 +1460,7 @@ func (m *DiffRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDiff
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1483,10 +1477,7 @@ func (m *DiffRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthDiff
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDiff
+ }
+ if (iNdEx + skippy) > l {
+@@ -1573,10 +1564,7 @@ func (m *DiffResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthDiff
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDiff
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/events/v1/events.pb.go b/src/import/api/services/events/v1/events.pb.go
+index a1674f862..4373f3bf2 100644
+--- a/src/import/api/services/events/v1/events.pb.go
++++ b/src/import/api/services/events/v1/events.pb.go
+@@ -916,10 +916,7 @@ func (m *PublishRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthEvents
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+@@ -1006,10 +1003,7 @@ func (m *ForwardRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthEvents
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+@@ -1092,10 +1086,7 @@ func (m *SubscribeRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthEvents
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+@@ -1279,10 +1270,7 @@ func (m *Envelope) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthEvents
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/images/v1/images.pb.go b/src/import/api/services/images/v1/images.pb.go
+index db912b68b..de08cc083 100644
+--- a/src/import/api/services/images/v1/images.pb.go
++++ b/src/import/api/services/images/v1/images.pb.go
+@@ -1707,7 +1707,7 @@ func (m *Image) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1823,10 +1823,7 @@ func (m *Image) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -1909,10 +1906,7 @@ func (m *GetImageRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -1999,10 +1993,7 @@ func (m *GetImageResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2086,10 +2077,7 @@ func (m *CreateImageRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2173,10 +2161,7 @@ func (m *CreateImageResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2296,10 +2281,7 @@ func (m *UpdateImageRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2383,10 +2365,7 @@ func (m *UpdateImageResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2469,10 +2448,7 @@ func (m *ListImagesRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2557,10 +2533,7 @@ func (m *ListImagesResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2663,10 +2636,7 @@ func (m *DeleteImageRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/introspection/v1/introspection.pb.go b/src/import/api/services/introspection/v1/introspection.pb.go
+index b9f912b09..d23c8b61a 100644
+--- a/src/import/api/services/introspection/v1/introspection.pb.go
++++ b/src/import/api/services/introspection/v1/introspection.pb.go
+@@ -1098,7 +1098,7 @@ func (m *Plugin) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthIntrospection
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1183,10 +1183,7 @@ func (m *Plugin) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthIntrospection
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthIntrospection
+ }
+ if (iNdEx + skippy) > l {
+@@ -1269,10 +1266,7 @@ func (m *PluginsRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthIntrospection
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthIntrospection
+ }
+ if (iNdEx + skippy) > l {
+@@ -1357,10 +1351,7 @@ func (m *PluginsResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthIntrospection
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthIntrospection
+ }
+ if (iNdEx + skippy) > l {
+@@ -1443,10 +1434,7 @@ func (m *ServerResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthIntrospection
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthIntrospection
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/leases/v1/leases.pb.go b/src/import/api/services/leases/v1/leases.pb.go
+index 4dbac3e09..5e7cab71f 100644
+--- a/src/import/api/services/leases/v1/leases.pb.go
++++ b/src/import/api/services/leases/v1/leases.pb.go
+@@ -1906,7 +1906,7 @@ func (m *Lease) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1923,10 +1923,7 @@ func (m *Lease) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthLeases
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > l {
+@@ -2119,7 +2116,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -2136,10 +2133,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthLeases
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > l {
+@@ -2226,10 +2220,7 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthLeases
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > l {
+@@ -2332,10 +2323,7 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthLeases
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > l {
+@@ -2418,10 +2406,7 @@ func (m *ListRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthLeases
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > l {
+@@ -2506,10 +2491,7 @@ func (m *ListResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthLeases
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > l {
+@@ -2624,10 +2606,7 @@ func (m *Resource) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthLeases
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > l {
+@@ -2743,10 +2722,7 @@ func (m *AddResourceRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthLeases
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > l {
+@@ -2862,10 +2838,7 @@ func (m *DeleteResourceRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthLeases
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > l {
+@@ -2948,10 +2921,7 @@ func (m *ListResourcesRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthLeases
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > l {
+@@ -3036,10 +3006,7 @@ func (m *ListResourcesResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthLeases
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthLeases
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/namespaces/v1/namespace.pb.go b/src/import/api/services/namespaces/v1/namespace.pb.go
+index 0d1d650ba..76f9e1172 100644
+--- a/src/import/api/services/namespaces/v1/namespace.pb.go
++++ b/src/import/api/services/namespaces/v1/namespace.pb.go
+@@ -1609,7 +1609,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1626,10 +1626,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -1712,10 +1709,7 @@ func (m *GetNamespaceRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -1799,10 +1793,7 @@ func (m *GetNamespaceResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -1885,10 +1876,7 @@ func (m *ListNamespacesRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -1973,10 +1961,7 @@ func (m *ListNamespacesResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -2060,10 +2045,7 @@ func (m *CreateNamespaceRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -2147,10 +2129,7 @@ func (m *CreateNamespaceResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -2270,10 +2249,7 @@ func (m *UpdateNamespaceRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -2357,10 +2333,7 @@ func (m *UpdateNamespaceResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -2443,10 +2416,7 @@ func (m *DeleteNamespaceRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/snapshots/v1/snapshots.pb.go b/src/import/api/services/snapshots/v1/snapshots.pb.go
+index 1877afded..046c97b01 100644
+--- a/src/import/api/services/snapshots/v1/snapshots.pb.go
++++ b/src/import/api/services/snapshots/v1/snapshots.pb.go
+@@ -3140,7 +3140,7 @@ func (m *PrepareSnapshotRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -3157,10 +3157,7 @@ func (m *PrepareSnapshotRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -3245,10 +3242,7 @@ func (m *PrepareSnapshotResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -3505,7 +3499,7 @@ func (m *ViewSnapshotRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -3522,10 +3516,7 @@ func (m *ViewSnapshotRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -3610,10 +3601,7 @@ func (m *ViewSnapshotResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -3728,10 +3716,7 @@ func (m *MountsRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -3816,10 +3801,7 @@ func (m *MountsResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -3934,10 +3916,7 @@ func (m *RemoveSnapshotRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -4194,7 +4173,7 @@ func (m *CommitSnapshotRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -4211,10 +4190,7 @@ func (m *CommitSnapshotRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -4329,10 +4305,7 @@ func (m *StatSnapshotRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -4642,7 +4615,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -4659,10 +4632,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -4746,10 +4716,7 @@ func (m *StatSnapshotResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -4901,10 +4868,7 @@ func (m *UpdateSnapshotRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -4988,10 +4952,7 @@ func (m *UpdateSnapshotResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -5106,10 +5067,7 @@ func (m *ListSnapshotsRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -5194,10 +5152,7 @@ func (m *ListSnapshotsResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -5312,10 +5267,7 @@ func (m *UsageRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -5404,10 +5356,7 @@ func (m *UsageResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+@@ -5490,10 +5439,7 @@ func (m *CleanupRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshots
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshots
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/tasks/v1/tasks.pb.go b/src/import/api/services/tasks/v1/tasks.pb.go
+index 5ac5af11b..4904e6508 100644
+--- a/src/import/api/services/tasks/v1/tasks.pb.go
++++ b/src/import/api/services/tasks/v1/tasks.pb.go
+@@ -9,6 +9,7 @@ import (
+ types "github.com/containerd/containerd/api/types"
+ task "github.com/containerd/containerd/src/import/api/types/task"
+ proto "github.com/gogo/protobuf/proto"
++ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
+ types1 "github.com/gogo/protobuf/types"
+ github_com_opencontainers_go_digest "github.com/opencontainers/go-digest"
+@@ -934,11 +935,12 @@ func (m *CheckpointTaskResponse) XXX_DiscardUnknown() {
+ var xxx_messageInfo_CheckpointTaskResponse proto.InternalMessageInfo
+
+ type UpdateTaskRequest struct {
+- ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
+- Resources *types1.Any `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
+- XXX_NoUnkeyedLiteral struct{} `json:"-"`
+- XXX_unrecognized []byte `json:"-"`
+- XXX_sizecache int32 `json:"-"`
++ ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
++ Resources *types1.Any `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
++ Annotations map[string]string `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
++ XXX_NoUnkeyedLiteral struct{} `json:"-"`
++ XXX_unrecognized []byte `json:"-"`
++ XXX_sizecache int32 `json:"-"`
+ }
+
+ func (m *UpdateTaskRequest) Reset() { *m = UpdateTaskRequest{} }
+@@ -1155,6 +1157,7 @@ func init() {
+ proto.RegisterType((*CheckpointTaskRequest)(nil), "containerd.services.tasks.v1.CheckpointTaskRequest")
+ proto.RegisterType((*CheckpointTaskResponse)(nil), "containerd.services.tasks.v1.CheckpointTaskResponse")
+ proto.RegisterType((*UpdateTaskRequest)(nil), "containerd.services.tasks.v1.UpdateTaskRequest")
++ proto.RegisterMapType((map[string]string)(nil), "containerd.services.tasks.v1.UpdateTaskRequest.AnnotationsEntry")
+ proto.RegisterType((*MetricsRequest)(nil), "containerd.services.tasks.v1.MetricsRequest")
+ proto.RegisterType((*MetricsResponse)(nil), "containerd.services.tasks.v1.MetricsResponse")
+ proto.RegisterType((*WaitRequest)(nil), "containerd.services.tasks.v1.WaitRequest")
+@@ -1166,90 +1169,93 @@ func init() {
+ }
+
+ var fileDescriptor_310e7127b8a26f14 = []byte{
+- // 1318 bytes of a gzipped FileDescriptorProto
+- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4b, 0x6f, 0x1b, 0x45,
+- 0x1c, 0xef, 0xfa, 0xed, 0xbf, 0x93, 0x36, 0x59, 0xd2, 0x60, 0x96, 0x2a, 0x0e, 0xcb, 0xc5, 0x04,
+- 0xba, 0x4b, 0x5d, 0x54, 0x21, 0x5a, 0x21, 0x35, 0x0f, 0x22, 0x0b, 0xaa, 0xa6, 0xdb, 0x02, 0x55,
+- 0x25, 0x14, 0xb6, 0xbb, 0x13, 0x67, 0x14, 0x7b, 0x67, 0xbb, 0x33, 0x4e, 0x1b, 0x38, 0xc0, 0x47,
+- 0xe8, 0x95, 0x0b, 0x9f, 0x27, 0x47, 0x8e, 0x08, 0x55, 0x81, 0xfa, 0x5b, 0x70, 0x43, 0xf3, 0xd8,
+- 0xcd, 0xc6, 0x8e, 0xbd, 0x4e, 0xd3, 0x70, 0x69, 0x67, 0x66, 0xff, 0xaf, 0xf9, 0xcd, 0xff, 0xf1,
+- 0x73, 0x60, 0xb5, 0x83, 0xd9, 0x6e, 0xff, 0xa9, 0xe5, 0x91, 0x9e, 0xed, 0x91, 0x80, 0xb9, 0x38,
+- 0x40, 0x91, 0x9f, 0x5e, 0xba, 0x21, 0xb6, 0x29, 0x8a, 0xf6, 0xb1, 0x87, 0xa8, 0xcd, 0x5c, 0xba,
+- 0x47, 0xed, 0xfd, 0x1b, 0x72, 0x61, 0x85, 0x11, 0x61, 0x44, 0xbf, 0x76, 0x2c, 0x6d, 0xc5, 0x92,
+- 0x96, 0x14, 0xd8, 0xbf, 0x61, 0xbc, 0xdf, 0x21, 0xa4, 0xd3, 0x45, 0xb6, 0x90, 0x7d, 0xda, 0xdf,
+- 0xb1, 0x51, 0x2f, 0x64, 0x07, 0x52, 0xd5, 0x78, 0x6f, 0xf8, 0xa3, 0x1b, 0xc4, 0x9f, 0x16, 0x3a,
+- 0xa4, 0x43, 0xc4, 0xd2, 0xe6, 0x2b, 0x75, 0x7a, 0x6b, 0xaa, 0x78, 0xd9, 0x41, 0x88, 0xa8, 0xdd,
+- 0x23, 0xfd, 0x80, 0x29, 0xbd, 0xcf, 0xcf, 0xa2, 0x87, 0x58, 0x84, 0x3d, 0x75, 0x3b, 0xe3, 0xf6,
+- 0x19, 0x34, 0x7d, 0x44, 0xbd, 0x08, 0x87, 0x8c, 0x44, 0x4a, 0xf9, 0x8b, 0x33, 0x28, 0x73, 0xc4,
+- 0xc4, 0x3f, 0x4a, 0xb7, 0x31, 0x8c, 0x0d, 0xc3, 0x3d, 0x44, 0x99, 0xdb, 0x0b, 0xa5, 0x80, 0x79,
+- 0x98, 0x83, 0xf9, 0xb5, 0x08, 0xb9, 0x0c, 0x3d, 0x72, 0xe9, 0x9e, 0x83, 0x9e, 0xf5, 0x11, 0x65,
+- 0x7a, 0x0b, 0x66, 0x12, 0xf3, 0xdb, 0xd8, 0xaf, 0x6b, 0xcb, 0x5a, 0xb3, 0xba, 0x7a, 0x65, 0x70,
+- 0xd4, 0xa8, 0xad, 0xc5, 0xe7, 0xed, 0x75, 0xa7, 0x96, 0x08, 0xb5, 0x7d, 0xdd, 0x86, 0x52, 0x44,
+- 0x08, 0xdb, 0xa1, 0xf5, 0xfc, 0x72, 0xbe, 0x59, 0x6b, 0xbd, 0x6b, 0xa5, 0x9e, 0x54, 0x44, 0x67,
+- 0xdd, 0xe3, 0x60, 0x3a, 0x4a, 0x4c, 0x5f, 0x80, 0x22, 0x65, 0x3e, 0x0e, 0xea, 0x05, 0x6e, 0xdd,
+- 0x91, 0x1b, 0x7d, 0x11, 0x4a, 0x94, 0xf9, 0xa4, 0xcf, 0xea, 0x45, 0x71, 0xac, 0x76, 0xea, 0x1c,
+- 0x45, 0x51, 0xbd, 0x94, 0x9c, 0xa3, 0x28, 0xd2, 0x0d, 0xa8, 0x30, 0x14, 0xf5, 0x70, 0xe0, 0x76,
+- 0xeb, 0xe5, 0x65, 0xad, 0x59, 0x71, 0x92, 0xbd, 0x7e, 0x07, 0xc0, 0xdb, 0x45, 0xde, 0x5e, 0x48,
+- 0x70, 0xc0, 0xea, 0x95, 0x65, 0xad, 0x59, 0x6b, 0x5d, 0x1b, 0x0d, 0x6b, 0x3d, 0x41, 0xdc, 0x49,
+- 0xc9, 0xeb, 0x16, 0x94, 0x49, 0xc8, 0x30, 0x09, 0x68, 0xbd, 0x2a, 0x54, 0x17, 0x2c, 0x89, 0xa6,
+- 0x15, 0xa3, 0x69, 0xdd, 0x0d, 0x0e, 0x9c, 0x58, 0xc8, 0x7c, 0x02, 0x7a, 0x1a, 0x49, 0x1a, 0x92,
+- 0x80, 0xa2, 0x37, 0x82, 0x72, 0x0e, 0xf2, 0x21, 0xf6, 0xeb, 0xb9, 0x65, 0xad, 0x39, 0xeb, 0xf0,
+- 0xa5, 0xd9, 0x81, 0x99, 0x87, 0xcc, 0x8d, 0xd8, 0x79, 0x1e, 0xe8, 0x43, 0x28, 0xa3, 0x17, 0xc8,
+- 0xdb, 0x56, 0x96, 0xab, 0xab, 0x30, 0x38, 0x6a, 0x94, 0x36, 0x5e, 0x20, 0xaf, 0xbd, 0xee, 0x94,
+- 0xf8, 0xa7, 0xb6, 0x6f, 0x7e, 0x00, 0xb3, 0xca, 0x91, 0x8a, 0x5f, 0xc5, 0xa2, 0x1d, 0xc7, 0xb2,
+- 0x09, 0xf3, 0xeb, 0xa8, 0x8b, 0xce, 0x9d, 0x31, 0xe6, 0xef, 0x1a, 0x5c, 0x96, 0x96, 0x12, 0x6f,
+- 0x8b, 0x90, 0x4b, 0x94, 0x4b, 0x83, 0xa3, 0x46, 0xae, 0xbd, 0xee, 0xe4, 0xf0, 0x29, 0x88, 0xe8,
+- 0x0d, 0xa8, 0xa1, 0x17, 0x98, 0x6d, 0x53, 0xe6, 0xb2, 0x3e, 0xcf, 0x39, 0xfe, 0x05, 0xf8, 0xd1,
+- 0x43, 0x71, 0xa2, 0xdf, 0x85, 0x2a, 0xdf, 0x21, 0x7f, 0xdb, 0x65, 0x22, 0xc5, 0x6a, 0x2d, 0x63,
+- 0xe4, 0x01, 0x1f, 0xc5, 0xe5, 0xb0, 0x5a, 0x39, 0x3c, 0x6a, 0x5c, 0x7a, 0xf9, 0x77, 0x43, 0x73,
+- 0x2a, 0x52, 0xed, 0x2e, 0x33, 0x09, 0x2c, 0xc8, 0xf8, 0xb6, 0x22, 0xe2, 0x21, 0x4a, 0x2f, 0x1c,
+- 0x7d, 0x04, 0xb0, 0x89, 0x2e, 0xfe, 0x91, 0x37, 0xa0, 0x26, 0xdc, 0x28, 0xd0, 0x6f, 0x41, 0x39,
+- 0x94, 0x17, 0x14, 0x2e, 0x86, 0x6a, 0x64, 0xff, 0x86, 0x2a, 0x93, 0x18, 0x84, 0x58, 0xd8, 0x5c,
+- 0x81, 0xb9, 0x6f, 0x30, 0x65, 0x3c, 0x0d, 0x12, 0x68, 0x16, 0xa1, 0xb4, 0x83, 0xbb, 0x0c, 0x45,
+- 0x32, 0x5a, 0x47, 0xed, 0x78, 0xd2, 0xa4, 0x64, 0x93, 0xda, 0x28, 0x8a, 0x16, 0x5f, 0xd7, 0x44,
+- 0xc7, 0x98, 0xec, 0x56, 0x8a, 0x9a, 0x2f, 0x35, 0xa8, 0x7d, 0x8d, 0xbb, 0xdd, 0x8b, 0x06, 0x49,
+- 0x34, 0x1c, 0xdc, 0xe1, 0x6d, 0x45, 0xe6, 0x96, 0xda, 0xf1, 0x54, 0x74, 0xbb, 0x5d, 0x91, 0x51,
+- 0x15, 0x87, 0x2f, 0xcd, 0x7f, 0x35, 0xd0, 0xb9, 0xf2, 0x5b, 0xc8, 0x92, 0xa4, 0x27, 0xe6, 0x4e,
+- 0xef, 0x89, 0xf9, 0x31, 0x3d, 0xb1, 0x30, 0xb6, 0x27, 0x16, 0x87, 0x7a, 0x62, 0x13, 0x0a, 0x34,
+- 0x44, 0x9e, 0xe8, 0xa2, 0xe3, 0x5a, 0x9a, 0x90, 0x48, 0xa3, 0x54, 0x1e, 0x9b, 0x4a, 0x57, 0xe1,
+- 0x9d, 0x13, 0x57, 0x97, 0x2f, 0x6b, 0xfe, 0xa6, 0xc1, 0x9c, 0x83, 0x28, 0xfe, 0x09, 0x6d, 0xb1,
+- 0x83, 0x0b, 0x7f, 0xaa, 0x05, 0x28, 0x3e, 0xc7, 0x3e, 0xdb, 0x55, 0x2f, 0x25, 0x37, 0x1c, 0x9d,
+- 0x5d, 0x84, 0x3b, 0xbb, 0xb2, 0xfa, 0x67, 0x1d, 0xb5, 0x33, 0x7f, 0x81, 0xcb, 0x6b, 0x5d, 0x42,
+- 0x51, 0xfb, 0xfe, 0xff, 0x11, 0x98, 0x7c, 0xce, 0xbc, 0x78, 0x05, 0xb9, 0x31, 0xbf, 0x82, 0xb9,
+- 0x2d, 0xb7, 0x4f, 0xcf, 0xdd, 0x3f, 0x37, 0x61, 0xde, 0x41, 0xb4, 0xdf, 0x3b, 0xb7, 0xa1, 0x0d,
+- 0xb8, 0xc2, 0x8b, 0x73, 0x0b, 0xfb, 0xe7, 0x49, 0x5e, 0xd3, 0x91, 0xfd, 0x40, 0x9a, 0x51, 0x25,
+- 0xfe, 0x25, 0x54, 0x55, 0xbb, 0x40, 0x71, 0x99, 0x2f, 0x4f, 0x2a, 0xf3, 0x76, 0xb0, 0x43, 0x9c,
+- 0x63, 0x15, 0xf3, 0x95, 0x06, 0x57, 0xd7, 0x92, 0x99, 0x7c, 0x5e, 0x8e, 0xb2, 0x0d, 0xf3, 0xa1,
+- 0x1b, 0xa1, 0x80, 0x6d, 0xa7, 0x78, 0x81, 0x7c, 0xbe, 0x16, 0xef, 0xff, 0x7f, 0x1d, 0x35, 0x56,
+- 0x52, 0x6c, 0x8b, 0x84, 0x28, 0x48, 0xd4, 0xa9, 0xdd, 0x21, 0xd7, 0x7d, 0xdc, 0x41, 0x94, 0x59,
+- 0xeb, 0xe2, 0x3f, 0x67, 0x4e, 0x1a, 0x5b, 0x3b, 0x95, 0x33, 0xe4, 0xa7, 0xe1, 0x0c, 0x8f, 0x61,
+- 0x71, 0xf8, 0x76, 0x09, 0x70, 0xb5, 0x63, 0x26, 0x78, 0x6a, 0x87, 0x1c, 0x21, 0x2f, 0x69, 0x05,
+- 0xf3, 0x67, 0x98, 0xff, 0x36, 0xf4, 0xdf, 0x02, 0xaf, 0x6b, 0x41, 0x35, 0x42, 0x94, 0xf4, 0x23,
+- 0x0f, 0x51, 0x81, 0xd5, 0xb8, 0x4b, 0x1d, 0x8b, 0x99, 0x2b, 0x70, 0xf9, 0x9e, 0x24, 0xc0, 0xb1,
+- 0xe7, 0x3a, 0x94, 0xe5, 0x24, 0x90, 0x57, 0xa9, 0x3a, 0xf1, 0x96, 0x27, 0x5f, 0x22, 0x9b, 0xcc,
+- 0x85, 0xb2, 0xe2, 0xcf, 0xea, 0xde, 0xf5, 0x53, 0xb8, 0xa4, 0x10, 0x70, 0x62, 0x41, 0x73, 0x07,
+- 0x6a, 0xdf, 0xbb, 0xf8, 0xe2, 0x67, 0x67, 0x04, 0x33, 0xd2, 0x8f, 0x8a, 0x75, 0x88, 0x87, 0x68,
+- 0x93, 0x79, 0x48, 0xee, 0x4d, 0x78, 0x48, 0xeb, 0xd5, 0x0c, 0x14, 0xc5, 0xe4, 0xd4, 0xf7, 0xa0,
+- 0x24, 0x39, 0xa6, 0x6e, 0x5b, 0x93, 0x7e, 0x31, 0x59, 0x23, 0x9c, 0xde, 0xf8, 0x74, 0x7a, 0x05,
+- 0x75, 0xb5, 0x1f, 0xa1, 0x28, 0xb8, 0xa0, 0xbe, 0x32, 0x59, 0x35, 0xcd, 0x4c, 0x8d, 0x8f, 0xa7,
+- 0x92, 0x55, 0x1e, 0x3a, 0x50, 0x92, 0x04, 0x2b, 0xeb, 0x3a, 0x23, 0x84, 0xd3, 0xf8, 0x64, 0x1a,
+- 0x85, 0xc4, 0xd1, 0x33, 0x98, 0x3d, 0xc1, 0xe4, 0xf4, 0xd6, 0x34, 0xea, 0x27, 0x07, 0xfa, 0x19,
+- 0x5d, 0x3e, 0x81, 0xfc, 0x26, 0x62, 0x7a, 0x73, 0xb2, 0xd2, 0x31, 0xdd, 0x33, 0x3e, 0x9a, 0x42,
+- 0x32, 0xc1, 0xad, 0xc0, 0x3b, 0xad, 0x6e, 0x4d, 0x56, 0x19, 0x66, 0x67, 0x86, 0x3d, 0xb5, 0xbc,
+- 0x72, 0xd4, 0x86, 0x02, 0x27, 0x5b, 0x7a, 0x46, 0x6c, 0x29, 0x42, 0x66, 0x2c, 0x8e, 0x24, 0xf7,
+- 0x06, 0xff, 0xb1, 0xae, 0x6f, 0x41, 0x81, 0x97, 0x92, 0x9e, 0x91, 0x87, 0xa3, 0x44, 0x6a, 0xac,
+- 0xc5, 0x87, 0x50, 0x4d, 0x38, 0x46, 0x16, 0x14, 0xc3, 0x64, 0x64, 0xac, 0xd1, 0xfb, 0x50, 0x56,
+- 0xec, 0x40, 0xcf, 0x78, 0xef, 0x93, 0x24, 0x62, 0x82, 0xc1, 0xa2, 0x98, 0xf6, 0x59, 0x11, 0x0e,
+- 0x53, 0x82, 0xb1, 0x06, 0x1f, 0x40, 0x49, 0x8e, 0xfd, 0xac, 0xa2, 0x19, 0x21, 0x07, 0x63, 0x4d,
+- 0x62, 0xa8, 0xc4, 0x93, 0x5b, 0xbf, 0x9e, 0x9d, 0x23, 0x29, 0xa2, 0x60, 0x58, 0xd3, 0x8a, 0xab,
+- 0x8c, 0x7a, 0x0e, 0x90, 0x9a, 0x97, 0x37, 0x33, 0x20, 0x3e, 0x6d, 0xf2, 0x1b, 0x9f, 0x9d, 0x4d,
+- 0x49, 0x39, 0x7e, 0x00, 0x25, 0x39, 0x10, 0xb3, 0x60, 0x1b, 0x19, 0x9b, 0x63, 0x61, 0xdb, 0x81,
+- 0xb2, 0x1a, 0x5d, 0x59, 0xb9, 0x72, 0x72, 0x1a, 0x1a, 0xd7, 0xa7, 0x94, 0x56, 0xa1, 0xff, 0x00,
+- 0x05, 0x3e, 0x73, 0xb2, 0xaa, 0x30, 0x35, 0xff, 0x8c, 0x95, 0x69, 0x44, 0xa5, 0xf9, 0xd5, 0xef,
+- 0x0e, 0x5f, 0x2f, 0x5d, 0xfa, 0xf3, 0xf5, 0xd2, 0xa5, 0x5f, 0x07, 0x4b, 0xda, 0xe1, 0x60, 0x49,
+- 0xfb, 0x63, 0xb0, 0xa4, 0xfd, 0x33, 0x58, 0xd2, 0x9e, 0xdc, 0x79, 0xb3, 0xbf, 0xec, 0xdd, 0x16,
+- 0x8b, 0xc7, 0xb9, 0xa7, 0x25, 0x01, 0xd8, 0xcd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x85, 0xa2,
+- 0x4f, 0xd1, 0x22, 0x14, 0x00, 0x00,
++ // 1376 bytes of a gzipped FileDescriptorProto
++ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x5b, 0x6f, 0x1b, 0x45,
++ 0x14, 0xee, 0xfa, 0xee, 0xe3, 0xa4, 0x4d, 0x96, 0x34, 0x98, 0xa5, 0x8a, 0xc3, 0xf2, 0x62, 0x02,
++ 0x5d, 0x53, 0x17, 0x55, 0x55, 0x5b, 0x55, 0xe4, 0x46, 0x64, 0x41, 0xd5, 0x74, 0x5b, 0xa0, 0xaa,
++ 0x84, 0xc2, 0xc6, 0x3b, 0x71, 0x46, 0xb1, 0x77, 0xb6, 0x3b, 0xe3, 0xb4, 0xe6, 0x05, 0x7e, 0x42,
++ 0x5f, 0x79, 0x81, 0xbf, 0x93, 0x47, 0x1e, 0x11, 0xaa, 0x02, 0xf5, 0xbf, 0xe0, 0x0d, 0xcd, 0x65,
++ 0xd7, 0x1b, 0x3b, 0xf6, 0x3a, 0x4d, 0xc3, 0x4b, 0x32, 0x33, 0x7b, 0xce, 0x99, 0x33, 0xdf, 0xb9,
++ 0x7d, 0x09, 0xac, 0xb5, 0x30, 0xdb, 0xef, 0xee, 0x5a, 0x4d, 0xd2, 0xa9, 0x35, 0x89, 0xc7, 0x1c,
++ 0xec, 0xa1, 0xc0, 0x8d, 0x2f, 0x1d, 0x1f, 0xd7, 0x28, 0x0a, 0x0e, 0x71, 0x13, 0xd1, 0x1a, 0x73,
++ 0xe8, 0x01, 0xad, 0x1d, 0xde, 0x90, 0x0b, 0xcb, 0x0f, 0x08, 0x23, 0xfa, 0xb5, 0x81, 0xb4, 0x15,
++ 0x4a, 0x5a, 0x52, 0xe0, 0xf0, 0x86, 0xf1, 0x61, 0x8b, 0x90, 0x56, 0x1b, 0xd5, 0x84, 0xec, 0x6e,
++ 0x77, 0xaf, 0x86, 0x3a, 0x3e, 0xeb, 0x49, 0x55, 0xe3, 0x83, 0xe1, 0x8f, 0x8e, 0x17, 0x7e, 0x5a,
++ 0x68, 0x91, 0x16, 0x11, 0xcb, 0x1a, 0x5f, 0xa9, 0xd3, 0x5b, 0x53, 0xf9, 0xcb, 0x7a, 0x3e, 0xa2,
++ 0xb5, 0x0e, 0xe9, 0x7a, 0x4c, 0xe9, 0xdd, 0x3e, 0x8b, 0x1e, 0x62, 0x01, 0x6e, 0xaa, 0xd7, 0x19,
++ 0x77, 0xcf, 0xa0, 0xe9, 0x22, 0xda, 0x0c, 0xb0, 0xcf, 0x48, 0xa0, 0x94, 0xef, 0x9c, 0x41, 0x99,
++ 0x23, 0x26, 0x7e, 0x28, 0xdd, 0xca, 0x30, 0x36, 0x0c, 0x77, 0x10, 0x65, 0x4e, 0xc7, 0x97, 0x02,
++ 0xe6, 0x51, 0x0a, 0xe6, 0xd7, 0x03, 0xe4, 0x30, 0xf4, 0xc4, 0xa1, 0x07, 0x36, 0x7a, 0xde, 0x45,
++ 0x94, 0xe9, 0x75, 0x98, 0x89, 0xcc, 0xef, 0x60, 0xb7, 0xac, 0x2d, 0x6b, 0xd5, 0xe2, 0xda, 0x95,
++ 0xfe, 0x71, 0xa5, 0xb4, 0x1e, 0x9e, 0x37, 0x36, 0xec, 0x52, 0x24, 0xd4, 0x70, 0xf5, 0x1a, 0xe4,
++ 0x02, 0x42, 0xd8, 0x1e, 0x2d, 0xa7, 0x97, 0xd3, 0xd5, 0x52, 0xfd, 0x7d, 0x2b, 0x16, 0x52, 0xe1,
++ 0x9d, 0xf5, 0x80, 0x83, 0x69, 0x2b, 0x31, 0x7d, 0x01, 0xb2, 0x94, 0xb9, 0xd8, 0x2b, 0x67, 0xb8,
++ 0x75, 0x5b, 0x6e, 0xf4, 0x45, 0xc8, 0x51, 0xe6, 0x92, 0x2e, 0x2b, 0x67, 0xc5, 0xb1, 0xda, 0xa9,
++ 0x73, 0x14, 0x04, 0xe5, 0x5c, 0x74, 0x8e, 0x82, 0x40, 0x37, 0xa0, 0xc0, 0x50, 0xd0, 0xc1, 0x9e,
++ 0xd3, 0x2e, 0xe7, 0x97, 0xb5, 0x6a, 0xc1, 0x8e, 0xf6, 0xfa, 0x3d, 0x80, 0xe6, 0x3e, 0x6a, 0x1e,
++ 0xf8, 0x04, 0x7b, 0xac, 0x5c, 0x58, 0xd6, 0xaa, 0xa5, 0xfa, 0xb5, 0x51, 0xb7, 0x36, 0x22, 0xc4,
++ 0xed, 0x98, 0xbc, 0x6e, 0x41, 0x9e, 0xf8, 0x0c, 0x13, 0x8f, 0x96, 0x8b, 0x42, 0x75, 0xc1, 0x92,
++ 0x68, 0x5a, 0x21, 0x9a, 0xd6, 0xaa, 0xd7, 0xb3, 0x43, 0x21, 0xf3, 0x19, 0xe8, 0x71, 0x24, 0xa9,
++ 0x4f, 0x3c, 0x8a, 0xde, 0x0a, 0xca, 0x39, 0x48, 0xfb, 0xd8, 0x2d, 0xa7, 0x96, 0xb5, 0xea, 0xac,
++ 0xcd, 0x97, 0x66, 0x0b, 0x66, 0x1e, 0x33, 0x27, 0x60, 0xe7, 0x09, 0xd0, 0xc7, 0x90, 0x47, 0x2f,
++ 0x51, 0x73, 0x47, 0x59, 0x2e, 0xae, 0x41, 0xff, 0xb8, 0x92, 0xdb, 0x7c, 0x89, 0x9a, 0x8d, 0x0d,
++ 0x3b, 0xc7, 0x3f, 0x35, 0x5c, 0xf3, 0x23, 0x98, 0x55, 0x17, 0x29, 0xff, 0x95, 0x2f, 0xda, 0xc0,
++ 0x97, 0x2d, 0x98, 0xdf, 0x40, 0x6d, 0x74, 0xee, 0x8c, 0x31, 0x7f, 0xd3, 0xe0, 0xb2, 0xb4, 0x14,
++ 0xdd, 0xb6, 0x08, 0xa9, 0x48, 0x39, 0xd7, 0x3f, 0xae, 0xa4, 0x1a, 0x1b, 0x76, 0x0a, 0x9f, 0x82,
++ 0x88, 0x5e, 0x81, 0x12, 0x7a, 0x89, 0xd9, 0x0e, 0x65, 0x0e, 0xeb, 0xf2, 0x9c, 0xe3, 0x5f, 0x80,
++ 0x1f, 0x3d, 0x16, 0x27, 0xfa, 0x2a, 0x14, 0xf9, 0x0e, 0xb9, 0x3b, 0x0e, 0x13, 0x29, 0x56, 0xaa,
++ 0x1b, 0x23, 0x01, 0x7c, 0x12, 0x96, 0xc3, 0x5a, 0xe1, 0xe8, 0xb8, 0x72, 0xe9, 0xd5, 0xdf, 0x15,
++ 0xcd, 0x2e, 0x48, 0xb5, 0x55, 0x66, 0x12, 0x58, 0x90, 0xfe, 0x6d, 0x07, 0xa4, 0x89, 0x28, 0xbd,
++ 0x70, 0xf4, 0x11, 0xc0, 0x16, 0xba, 0xf8, 0x20, 0x6f, 0x42, 0x49, 0x5c, 0xa3, 0x40, 0xbf, 0x05,
++ 0x79, 0x5f, 0x3e, 0x50, 0x5c, 0x31, 0x54, 0x23, 0x87, 0x37, 0x54, 0x99, 0x84, 0x20, 0x84, 0xc2,
++ 0xe6, 0x0a, 0xcc, 0x7d, 0x83, 0x29, 0xe3, 0x69, 0x10, 0x41, 0xb3, 0x08, 0xb9, 0x3d, 0xdc, 0x66,
++ 0x28, 0x90, 0xde, 0xda, 0x6a, 0xc7, 0x93, 0x26, 0x26, 0x1b, 0xd5, 0x46, 0x56, 0xb4, 0xf8, 0xb2,
++ 0x26, 0x3a, 0xc6, 0xe4, 0x6b, 0xa5, 0xa8, 0xf9, 0x4a, 0x83, 0xd2, 0xd7, 0xb8, 0xdd, 0xbe, 0x68,
++ 0x90, 0x44, 0xc3, 0xc1, 0x2d, 0xde, 0x56, 0x64, 0x6e, 0xa9, 0x1d, 0x4f, 0x45, 0xa7, 0xdd, 0x16,
++ 0x19, 0x55, 0xb0, 0xf9, 0xd2, 0xfc, 0x57, 0x03, 0x9d, 0x2b, 0xbf, 0x83, 0x2c, 0x89, 0x7a, 0x62,
++ 0xea, 0xf4, 0x9e, 0x98, 0x1e, 0xd3, 0x13, 0x33, 0x63, 0x7b, 0x62, 0x76, 0xa8, 0x27, 0x56, 0x21,
++ 0x43, 0x7d, 0xd4, 0x14, 0x5d, 0x74, 0x5c, 0x4b, 0x13, 0x12, 0x71, 0x94, 0xf2, 0x63, 0x53, 0xe9,
++ 0x2a, 0xbc, 0x77, 0xe2, 0xe9, 0x32, 0xb2, 0xe6, 0xaf, 0x1a, 0xcc, 0xd9, 0x88, 0xe2, 0x9f, 0xd0,
++ 0x36, 0xeb, 0x5d, 0x78, 0xa8, 0x16, 0x20, 0xfb, 0x02, 0xbb, 0x6c, 0x5f, 0x45, 0x4a, 0x6e, 0x38,
++ 0x3a, 0xfb, 0x08, 0xb7, 0xf6, 0x65, 0xf5, 0xcf, 0xda, 0x6a, 0x67, 0xfe, 0x0c, 0x97, 0xd7, 0xdb,
++ 0x84, 0xa2, 0xc6, 0xc3, 0xff, 0xc3, 0x31, 0x19, 0xce, 0xb4, 0x88, 0x82, 0xdc, 0x98, 0x5f, 0xc1,
++ 0xdc, 0xb6, 0xd3, 0xa5, 0xe7, 0xee, 0x9f, 0x5b, 0x30, 0x6f, 0x23, 0xda, 0xed, 0x9c, 0xdb, 0xd0,
++ 0x26, 0x5c, 0xe1, 0xc5, 0xb9, 0x8d, 0xdd, 0xf3, 0x24, 0xaf, 0x69, 0xcb, 0x7e, 0x20, 0xcd, 0xa8,
++ 0x12, 0xbf, 0x0f, 0x45, 0xd5, 0x2e, 0x50, 0x58, 0xe6, 0xcb, 0x93, 0xca, 0xbc, 0xe1, 0xed, 0x11,
++ 0x7b, 0xa0, 0x62, 0xbe, 0xd6, 0xe0, 0xea, 0x7a, 0x34, 0x93, 0xcf, 0xcb, 0x51, 0x76, 0x60, 0xde,
++ 0x77, 0x02, 0xe4, 0xb1, 0x9d, 0x18, 0x2f, 0x90, 0xe1, 0xab, 0xf3, 0xfe, 0xff, 0xd7, 0x71, 0x65,
++ 0x25, 0xc6, 0xb6, 0x88, 0x8f, 0xbc, 0x48, 0x9d, 0xd6, 0x5a, 0xe4, 0xba, 0x8b, 0x5b, 0x88, 0x32,
++ 0x6b, 0x43, 0xfc, 0xb2, 0xe7, 0xa4, 0xb1, 0xf5, 0x53, 0x39, 0x43, 0x7a, 0x1a, 0xce, 0xf0, 0x14,
++ 0x16, 0x87, 0x5f, 0x17, 0x01, 0x57, 0x1a, 0x30, 0xc1, 0x53, 0x3b, 0xe4, 0x08, 0x79, 0x89, 0x2b,
++ 0x98, 0xbf, 0xa7, 0x60, 0xfe, 0x5b, 0xdf, 0x7d, 0x07, 0xc4, 0xae, 0x0e, 0xc5, 0x00, 0x51, 0xd2,
++ 0x0d, 0x9a, 0x88, 0x0a, 0xb0, 0xc6, 0xbd, 0x6a, 0x20, 0xa6, 0xef, 0x42, 0xc9, 0xf1, 0x3c, 0xc2,
++ 0x9c, 0x10, 0x0b, 0xee, 0xfd, 0x97, 0xd6, 0x24, 0x92, 0x6f, 0x8d, 0x78, 0x6b, 0xad, 0x0e, 0x4c,
++ 0x6c, 0x7a, 0x2c, 0xe8, 0xd9, 0x71, 0xa3, 0xc6, 0x7d, 0x98, 0x1b, 0x16, 0xe0, 0xcd, 0xf9, 0x00,
++ 0xf5, 0xd4, 0xec, 0xe1, 0x4b, 0x5e, 0x82, 0x87, 0x4e, 0xbb, 0x8b, 0xc2, 0x8e, 0x2a, 0x36, 0x77,
++ 0x52, 0xb7, 0x35, 0x73, 0x05, 0x2e, 0x3f, 0x90, 0x2c, 0x3d, 0x44, 0xa7, 0x0c, 0x79, 0x39, 0xae,
++ 0x24, 0xde, 0x45, 0x3b, 0xdc, 0xf2, 0x0a, 0x89, 0x64, 0xa3, 0xe1, 0x95, 0x57, 0x24, 0x5f, 0x05,
++ 0xa7, 0x7c, 0x0a, 0xe1, 0x15, 0x02, 0x76, 0x28, 0x68, 0xee, 0x41, 0xe9, 0x7b, 0x07, 0x5f, 0xfc,
++ 0x80, 0x0f, 0x60, 0x46, 0xde, 0xa3, 0x7c, 0x1d, 0x22, 0x4b, 0xda, 0x64, 0xb2, 0x94, 0x7a, 0x1b,
++ 0xb2, 0x54, 0x7f, 0x3d, 0x03, 0x59, 0x31, 0xde, 0xf5, 0x03, 0xc8, 0x49, 0x22, 0xac, 0xd7, 0x26,
++ 0x47, 0x7c, 0xe4, 0x0f, 0x0f, 0xe3, 0xf3, 0xe9, 0x15, 0xd4, 0xd3, 0x7e, 0x84, 0xac, 0x20, 0xac,
++ 0xfa, 0xca, 0x64, 0xd5, 0x38, 0x7d, 0x36, 0x3e, 0x9d, 0x4a, 0x56, 0xdd, 0xd0, 0x82, 0x9c, 0x64,
++ 0x81, 0x49, 0xcf, 0x19, 0x61, 0xc5, 0xc6, 0x67, 0xd3, 0x28, 0x44, 0x17, 0x3d, 0x87, 0xd9, 0x13,
++ 0x74, 0x53, 0xaf, 0x4f, 0xa3, 0x7e, 0x92, 0x75, 0x9c, 0xf1, 0xca, 0x67, 0x90, 0xde, 0x42, 0x4c,
++ 0xaf, 0x4e, 0x56, 0x1a, 0x70, 0x52, 0xe3, 0x93, 0x29, 0x24, 0x23, 0xdc, 0x32, 0x7c, 0x1c, 0xe8,
++ 0xd6, 0x64, 0x95, 0x61, 0x0a, 0x69, 0xd4, 0xa6, 0x96, 0x57, 0x17, 0x35, 0x20, 0xc3, 0x19, 0xa1,
++ 0x9e, 0xe0, 0x5b, 0x8c, 0x35, 0x1a, 0x8b, 0x23, 0xc9, 0xbd, 0xd9, 0xf1, 0x59, 0x4f, 0xdf, 0x86,
++ 0x0c, 0x2f, 0x25, 0x3d, 0x21, 0x0f, 0x47, 0xd9, 0xde, 0x58, 0x8b, 0x8f, 0xa1, 0x18, 0x11, 0xa1,
++ 0x24, 0x28, 0x86, 0x19, 0xd3, 0x58, 0xa3, 0x0f, 0x21, 0xaf, 0x28, 0x8c, 0x9e, 0x10, 0xef, 0x93,
++ 0x4c, 0x67, 0x82, 0xc1, 0xac, 0xa0, 0x24, 0x49, 0x1e, 0x0e, 0xf3, 0x96, 0xb1, 0x06, 0x1f, 0x41,
++ 0x4e, 0x72, 0x93, 0xa4, 0xa2, 0x19, 0x61, 0x30, 0x63, 0x4d, 0x62, 0x28, 0x84, 0xf4, 0x42, 0xbf,
++ 0x9e, 0x9c, 0x23, 0x31, 0x36, 0x63, 0x58, 0xd3, 0x8a, 0xab, 0x8c, 0x7a, 0x01, 0x10, 0x1b, 0xea,
++ 0x37, 0x13, 0x20, 0x3e, 0x8d, 0x9e, 0x18, 0x5f, 0x9c, 0x4d, 0x49, 0x5d, 0xfc, 0x08, 0x72, 0x72,
++ 0x0c, 0x26, 0xc1, 0x36, 0x32, 0x2c, 0xc7, 0xc2, 0xb6, 0x07, 0x79, 0x35, 0xba, 0x92, 0x72, 0xe5,
++ 0xe4, 0x34, 0x34, 0xae, 0x4f, 0x29, 0xad, 0x5c, 0xff, 0x01, 0x32, 0x7c, 0xe6, 0x24, 0x55, 0x61,
++ 0x6c, 0xfe, 0x19, 0x2b, 0xd3, 0x88, 0x4a, 0xf3, 0x6b, 0xdf, 0x1d, 0xbd, 0x59, 0xba, 0xf4, 0xe7,
++ 0x9b, 0xa5, 0x4b, 0xbf, 0xf4, 0x97, 0xb4, 0xa3, 0xfe, 0x92, 0xf6, 0x47, 0x7f, 0x49, 0xfb, 0xa7,
++ 0xbf, 0xa4, 0x3d, 0xbb, 0xf7, 0x76, 0xff, 0x7e, 0xbc, 0x2b, 0x16, 0x4f, 0x53, 0xbb, 0x39, 0x01,
++ 0xd8, 0xcd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x55, 0xbf, 0x54, 0xc7, 0x14, 0x00, 0x00,
+ }
+
+ // Reference imports to suppress errors if they are not otherwise used.
+@@ -2943,6 +2949,25 @@ func (m *UpdateTaskRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i -= len(m.XXX_unrecognized)
+ copy(dAtA[i:], m.XXX_unrecognized)
+ }
++ if len(m.Annotations) > 0 {
++ for k := range m.Annotations {
++ v := m.Annotations[k]
++ baseI := i
++ i -= len(v)
++ copy(dAtA[i:], v)
++ i = encodeVarintTasks(dAtA, i, uint64(len(v)))
++ i--
++ dAtA[i] = 0x12
++ i -= len(k)
++ copy(dAtA[i:], k)
++ i = encodeVarintTasks(dAtA, i, uint64(len(k)))
++ i--
++ dAtA[i] = 0xa
++ i = encodeVarintTasks(dAtA, i, uint64(baseI-i))
++ i--
++ dAtA[i] = 0x1a
++ }
++ }
+ if m.Resources != nil {
+ {
+ size, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])
+@@ -3611,6 +3636,14 @@ func (m *UpdateTaskRequest) Size() (n int) {
+ l = m.Resources.Size()
+ n += 1 + l + sovTasks(uint64(l))
+ }
++ if len(m.Annotations) > 0 {
++ for k, v := range m.Annotations {
++ _ = k
++ _ = v
++ mapEntrySize := 1 + len(k) + sovTasks(uint64(len(k))) + 1 + len(v) + sovTasks(uint64(len(v)))
++ n += mapEntrySize + 1 + sovTasks(uint64(mapEntrySize))
++ }
++ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+@@ -3991,9 +4024,20 @@ func (this *UpdateTaskRequest) String() string {
+ if this == nil {
+ return "nil"
+ }
++ keysForAnnotations := make([]string, 0, len(this.Annotations))
++ for k, _ := range this.Annotations {
++ keysForAnnotations = append(keysForAnnotations, k)
++ }
++ github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)
++ mapStringForAnnotations := "map[string]string{"
++ for _, k := range keysForAnnotations {
++ mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k])
++ }
++ mapStringForAnnotations += "}"
+ s := strings.Join([]string{`&UpdateTaskRequest{`,
+ `ContainerID:` + fmt.Sprintf("%v", this.ContainerID) + `,`,
+ `Resources:` + strings.Replace(fmt.Sprintf("%v", this.Resources), "Any", "types1.Any", 1) + `,`,
++ `Annotations:` + mapStringForAnnotations + `,`,
+ `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
+ `}`,
+ }, "")
+@@ -4347,10 +4391,7 @@ func (m *CreateTaskRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -4452,10 +4493,7 @@ func (m *CreateTaskResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -4570,10 +4608,7 @@ func (m *StartRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -4643,10 +4678,7 @@ func (m *StartResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -4729,10 +4761,7 @@ func (m *DeleteTaskRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -4886,10 +4915,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -5004,10 +5030,7 @@ func (m *DeleteProcessRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -5122,10 +5145,7 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -5212,10 +5232,7 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -5298,10 +5315,7 @@ func (m *ListTasksRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -5386,10 +5400,7 @@ func (m *ListTasksResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -5543,10 +5554,7 @@ func (m *KillRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -5813,10 +5821,7 @@ func (m *ExecProcessRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -5867,10 +5872,7 @@ func (m *ExecProcessResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -6023,10 +6025,7 @@ func (m *ResizePtyRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -6161,10 +6160,7 @@ func (m *CloseIORequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -6247,10 +6243,7 @@ func (m *PauseTaskRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -6333,10 +6326,7 @@ func (m *ResumeTaskRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -6419,10 +6409,7 @@ func (m *ListPidsRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -6507,10 +6494,7 @@ func (m *ListPidsResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -6661,10 +6645,7 @@ func (m *CheckpointTaskRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -6749,10 +6730,7 @@ func (m *CheckpointTaskResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -6865,16 +6843,140 @@ func (m *UpdateTaskRequest) Unmarshal(dAtA []byte) error {
+ return err
+ }
+ iNdEx = postIndex
++ case 3:
++ if wireType != 2 {
++ return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType)
++ }
++ var msglen int
++ for shift := uint(0); ; shift += 7 {
++ if shift >= 64 {
++ return ErrIntOverflowTasks
++ }
++ if iNdEx >= l {
++ return io.ErrUnexpectedEOF
++ }
++ b := dAtA[iNdEx]
++ iNdEx++
++ msglen |= int(b&0x7F) << shift
++ if b < 0x80 {
++ break
++ }
++ }
++ if msglen < 0 {
++ return ErrInvalidLengthTasks
++ }
++ postIndex := iNdEx + msglen
++ if postIndex < 0 {
++ return ErrInvalidLengthTasks
++ }
++ if postIndex > l {
++ return io.ErrUnexpectedEOF
++ }
++ if m.Annotations == nil {
++ m.Annotations = make(map[string]string)
++ }
++ var mapkey string
++ var mapvalue string
++ for iNdEx < postIndex {
++ entryPreIndex := iNdEx
++ var wire uint64
++ for shift := uint(0); ; shift += 7 {
++ if shift >= 64 {
++ return ErrIntOverflowTasks
++ }
++ if iNdEx >= l {
++ return io.ErrUnexpectedEOF
++ }
++ b := dAtA[iNdEx]
++ iNdEx++
++ wire |= uint64(b&0x7F) << shift
++ if b < 0x80 {
++ break
++ }
++ }
++ fieldNum := int32(wire >> 3)
++ if fieldNum == 1 {
++ var stringLenmapkey uint64
++ for shift := uint(0); ; shift += 7 {
++ if shift >= 64 {
++ return ErrIntOverflowTasks
++ }
++ if iNdEx >= l {
++ return io.ErrUnexpectedEOF
++ }
++ b := dAtA[iNdEx]
++ iNdEx++
++ stringLenmapkey |= uint64(b&0x7F) << shift
++ if b < 0x80 {
++ break
++ }
++ }
++ intStringLenmapkey := int(stringLenmapkey)
++ if intStringLenmapkey < 0 {
++ return ErrInvalidLengthTasks
++ }
++ postStringIndexmapkey := iNdEx + intStringLenmapkey
++ if postStringIndexmapkey < 0 {
++ return ErrInvalidLengthTasks
++ }
++ if postStringIndexmapkey > l {
++ return io.ErrUnexpectedEOF
++ }
++ mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
++ iNdEx = postStringIndexmapkey
++ } else if fieldNum == 2 {
++ var stringLenmapvalue uint64
++ for shift := uint(0); ; shift += 7 {
++ if shift >= 64 {
++ return ErrIntOverflowTasks
++ }
++ if iNdEx >= l {
++ return io.ErrUnexpectedEOF
++ }
++ b := dAtA[iNdEx]
++ iNdEx++
++ stringLenmapvalue |= uint64(b&0x7F) << shift
++ if b < 0x80 {
++ break
++ }
++ }
++ intStringLenmapvalue := int(stringLenmapvalue)
++ if intStringLenmapvalue < 0 {
++ return ErrInvalidLengthTasks
++ }
++ postStringIndexmapvalue := iNdEx + intStringLenmapvalue
++ if postStringIndexmapvalue < 0 {
++ return ErrInvalidLengthTasks
++ }
++ if postStringIndexmapvalue > l {
++ return io.ErrUnexpectedEOF
++ }
++ mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
++ iNdEx = postStringIndexmapvalue
++ } else {
++ iNdEx = entryPreIndex
++ skippy, err := skipTasks(dAtA[iNdEx:])
++ if err != nil {
++ return err
++ }
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
++ return ErrInvalidLengthTasks
++ }
++ if (iNdEx + skippy) > postIndex {
++ return io.ErrUnexpectedEOF
++ }
++ iNdEx += skippy
++ }
++ }
++ m.Annotations[mapkey] = mapvalue
++ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipTasks(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -6957,10 +7059,7 @@ func (m *MetricsRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -7045,10 +7144,7 @@ func (m *MetricsResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -7163,10 +7259,7 @@ func (m *WaitRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+@@ -7269,10 +7362,7 @@ func (m *WaitResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTasks
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTasks
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/ttrpc/events/v1/events.pb.go b/src/import/api/services/ttrpc/events/v1/events.pb.go
+index 0e61351d5..b1f275bf0 100644
+--- a/src/import/api/services/ttrpc/events/v1/events.pb.go
++++ b/src/import/api/services/ttrpc/events/v1/events.pb.go
+@@ -474,10 +474,7 @@ func (m *ForwardRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthEvents
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+@@ -661,10 +658,7 @@ func (m *Envelope) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthEvents
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/version/v1/version.pb.go b/src/import/api/services/version/v1/version.pb.go
+index 81b8c3395..b742c6ae6 100644
+--- a/src/import/api/services/version/v1/version.pb.go
++++ b/src/import/api/services/version/v1/version.pb.go
+@@ -374,10 +374,7 @@ func (m *VersionResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthVersion
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthVersion
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/types/descriptor.pb.go b/src/import/api/types/descriptor.pb.go
+index 437d41f23..fe71dbf43 100644
+--- a/src/import/api/types/descriptor.pb.go
++++ b/src/import/api/types/descriptor.pb.go
+@@ -479,7 +479,7 @@ func (m *Descriptor) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDescriptor
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -496,10 +496,7 @@ func (m *Descriptor) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthDescriptor
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDescriptor
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/types/metrics.pb.go b/src/import/api/types/metrics.pb.go
+index 89a8d9cd6..75773e442 100644
+--- a/src/import/api/types/metrics.pb.go
++++ b/src/import/api/types/metrics.pb.go
+@@ -348,10 +348,7 @@ func (m *Metric) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthMetrics
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthMetrics
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/types/mount.pb.go b/src/import/api/types/mount.pb.go
+index 6872e4120..d0a0bee76 100644
+--- a/src/import/api/types/mount.pb.go
++++ b/src/import/api/types/mount.pb.go
+@@ -392,10 +392,7 @@ func (m *Mount) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthMount
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthMount
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/types/platform.pb.go b/src/import/api/types/platform.pb.go
+index c03d8b077..a0f78c8a7 100644
+--- a/src/import/api/types/platform.pb.go
++++ b/src/import/api/types/platform.pb.go
+@@ -333,10 +333,7 @@ func (m *Platform) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthPlatform
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthPlatform
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/types/task/task.pb.go b/src/import/api/types/task/task.pb.go
+index ae824ff45..f511bbd05 100644
+--- a/src/import/api/types/task/task.pb.go
++++ b/src/import/api/types/task/task.pb.go
+@@ -772,10 +772,7 @@ func (m *Process) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -881,10 +878,7 @@ func (m *ProcessInfo) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/runtime/linux/runctypes/runc.pb.go b/src/import/runtime/linux/runctypes/runc.pb.go
+index 26306e594..46d31ff59 100644
+--- a/src/import/runtime/linux/runctypes/runc.pb.go
++++ b/src/import/runtime/linux/runctypes/runc.pb.go
+@@ -978,10 +978,7 @@ func (m *RuncOptions) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthRunc
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthRunc
+ }
+ if (iNdEx + skippy) > l {
+@@ -1350,10 +1347,7 @@ func (m *CreateOptions) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthRunc
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthRunc
+ }
+ if (iNdEx + skippy) > l {
+@@ -1632,10 +1626,7 @@ func (m *CheckpointOptions) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthRunc
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthRunc
+ }
+ if (iNdEx + skippy) > l {
+@@ -1718,10 +1709,7 @@ func (m *ProcessDetails) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthRunc
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthRunc
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/runtime/v1/shim/v1/shim.pb.go b/src/import/runtime/v1/shim/v1/shim.pb.go
+index 27f334966..dbc82599d 100644
+--- a/src/import/runtime/v1/shim/v1/shim.pb.go
++++ b/src/import/runtime/v1/shim/v1/shim.pb.go
+@@ -3262,10 +3262,7 @@ func (m *CreateTaskRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -3335,10 +3332,7 @@ func (m *CreateTaskResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -3460,10 +3454,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -3546,10 +3537,7 @@ func (m *DeleteProcessRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -3784,10 +3772,7 @@ func (m *ExecProcessRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -3838,10 +3823,7 @@ func (m *ExecProcessResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -3962,10 +3944,7 @@ func (m *ResizePtyRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4048,10 +4027,7 @@ func (m *StateRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4372,10 +4348,7 @@ func (m *StateResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4497,10 +4470,7 @@ func (m *KillRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4603,10 +4573,7 @@ func (m *CloseIORequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4689,10 +4656,7 @@ func (m *ListPidsRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4777,10 +4741,7 @@ func (m *ListPidsResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4899,10 +4860,7 @@ func (m *CheckpointTaskRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4972,10 +4930,7 @@ func (m *ShimInfoResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -5062,10 +5017,7 @@ func (m *UpdateTaskRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -5148,10 +5100,7 @@ func (m *StartRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -5253,10 +5202,7 @@ func (m *StartResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -5339,10 +5285,7 @@ func (m *WaitRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -5445,10 +5388,7 @@ func (m *WaitResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/runtime/v2/runc/options/oci.pb.go b/src/import/runtime/v2/runc/options/oci.pb.go
+index f298452b6..c9c44742a 100644
+--- a/src/import/runtime/v2/runc/options/oci.pb.go
++++ b/src/import/runtime/v2/runc/options/oci.pb.go
+@@ -994,10 +994,7 @@ func (m *Options) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthOci
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthOci
+ }
+ if (iNdEx + skippy) > l {
+@@ -1276,10 +1273,7 @@ func (m *CheckpointOptions) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthOci
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthOci
+ }
+ if (iNdEx + skippy) > l {
+@@ -1362,10 +1356,7 @@ func (m *ProcessDetails) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthOci
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthOci
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/runtime/v2/task/shim.pb.go b/src/import/runtime/v2/task/shim.pb.go
+index 3cf11d8e3..6366f9c57 100644
+--- a/src/import/runtime/v2/task/shim.pb.go
++++ b/src/import/runtime/v2/task/shim.pb.go
+@@ -10,6 +10,7 @@ import (
+ task "github.com/containerd/containerd/src/import/api/types/task"
+ github_com_containerd_ttrpc "github.com/containerd/ttrpc"
+ proto "github.com/gogo/protobuf/proto"
++ github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
+ github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
+ types1 "github.com/gogo/protobuf/types"
+ io "io"
+@@ -617,11 +618,12 @@ func (m *CheckpointTaskRequest) XXX_DiscardUnknown() {
+ var xxx_messageInfo_CheckpointTaskRequest proto.InternalMessageInfo
+
+ type UpdateTaskRequest struct {
+- ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+- Resources *types1.Any `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
+- XXX_NoUnkeyedLiteral struct{} `json:"-"`
+- XXX_unrecognized []byte `json:"-"`
+- XXX_sizecache int32 `json:"-"`
++ ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
++ Resources *types1.Any `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
++ Annotations map[string]string `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
++ XXX_NoUnkeyedLiteral struct{} `json:"-"`
++ XXX_unrecognized []byte `json:"-"`
++ XXX_sizecache int32 `json:"-"`
+ }
+
+ func (m *UpdateTaskRequest) Reset() { *m = UpdateTaskRequest{} }
+@@ -1107,6 +1109,7 @@ func init() {
+ proto.RegisterType((*PidsResponse)(nil), "containerd.task.v2.PidsResponse")
+ proto.RegisterType((*CheckpointTaskRequest)(nil), "containerd.task.v2.CheckpointTaskRequest")
+ proto.RegisterType((*UpdateTaskRequest)(nil), "containerd.task.v2.UpdateTaskRequest")
++ proto.RegisterMapType((map[string]string)(nil), "containerd.task.v2.UpdateTaskRequest.AnnotationsEntry")
+ proto.RegisterType((*StartRequest)(nil), "containerd.task.v2.StartRequest")
+ proto.RegisterType((*StartResponse)(nil), "containerd.task.v2.StartResponse")
+ proto.RegisterType((*WaitRequest)(nil), "containerd.task.v2.WaitRequest")
+@@ -1125,85 +1128,89 @@ func init() {
+ }
+
+ var fileDescriptor_9202ee34bc3ad8ca = []byte{
+- // 1246 bytes of a gzipped FileDescriptorProto
+- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x5d, 0x6f, 0x1b, 0x45,
+- 0x17, 0xee, 0xfa, 0x63, 0x6d, 0x1f, 0xd7, 0x69, 0x3a, 0x6f, 0x9a, 0x77, 0xeb, 0x4a, 0xb6, 0xbb,
+- 0xa5, 0xc1, 0x80, 0x64, 0x0b, 0x57, 0x70, 0x41, 0x24, 0x50, 0xbe, 0xa8, 0x4c, 0x0b, 0x89, 0xb6,
+- 0x45, 0x45, 0xdc, 0x58, 0x1b, 0xef, 0xc4, 0x5e, 0xc5, 0xde, 0x59, 0x76, 0x66, 0xf3, 0x81, 0x84,
+- 0xc4, 0x15, 0x17, 0x5c, 0xf1, 0xb3, 0x72, 0x89, 0xc4, 0x0d, 0x37, 0x04, 0xea, 0x7f, 0xc0, 0x3f,
+- 0x40, 0xf3, 0xe1, 0x78, 0xed, 0xec, 0xda, 0x49, 0xe5, 0x9b, 0x68, 0xce, 0xce, 0x33, 0x67, 0xe6,
+- 0x9c, 0x79, 0xce, 0x73, 0x26, 0x86, 0xcd, 0x9e, 0xcb, 0xfa, 0xe1, 0x61, 0xa3, 0x4b, 0x86, 0xcd,
+- 0x2e, 0xf1, 0x98, 0xed, 0x7a, 0x38, 0x70, 0xa2, 0xc3, 0x20, 0xf4, 0x98, 0x3b, 0xc4, 0xcd, 0x93,
+- 0x56, 0x93, 0xd9, 0xf4, 0xb8, 0x49, 0xfb, 0xee, 0xb0, 0xe1, 0x07, 0x84, 0x11, 0x84, 0x26, 0xb0,
+- 0x06, 0x9f, 0x6b, 0x9c, 0xb4, 0xca, 0x0f, 0x7b, 0x84, 0xf4, 0x06, 0xb8, 0x29, 0x10, 0x87, 0xe1,
+- 0x51, 0xd3, 0xf6, 0xce, 0x25, 0xbc, 0xfc, 0x68, 0x76, 0x0a, 0x0f, 0x7d, 0x36, 0x9e, 0x5c, 0xeb,
+- 0x91, 0x1e, 0x11, 0xc3, 0x26, 0x1f, 0xa9, 0xaf, 0xd5, 0xd9, 0x25, 0xfc, 0x28, 0x94, 0xd9, 0x43,
+- 0x5f, 0x01, 0x3e, 0x5d, 0x78, 0x7e, 0xdb, 0x77, 0x9b, 0xec, 0xdc, 0xc7, 0xb4, 0x39, 0x24, 0xa1,
+- 0xc7, 0xd4, 0xba, 0xcf, 0x6e, 0xb1, 0x4e, 0x84, 0x2d, 0xe2, 0x13, 0x6b, 0xcd, 0x3f, 0x52, 0x70,
+- 0x7f, 0x27, 0xc0, 0x36, 0xc3, 0xaf, 0x6d, 0x7a, 0x6c, 0xe1, 0x1f, 0x42, 0x4c, 0x19, 0x5a, 0x87,
+- 0x94, 0xeb, 0x18, 0x5a, 0x4d, 0xab, 0x17, 0xb6, 0xf5, 0xd1, 0x65, 0x35, 0xd5, 0xde, 0xb5, 0x52,
+- 0xae, 0x83, 0xd6, 0x41, 0x3f, 0x0c, 0x3d, 0x67, 0x80, 0x8d, 0x14, 0x9f, 0xb3, 0x94, 0x85, 0x9a,
+- 0xa0, 0x07, 0x84, 0xb0, 0x23, 0x6a, 0xa4, 0x6b, 0xe9, 0x7a, 0xb1, 0xf5, 0xff, 0x46, 0x34, 0x9b,
+- 0x7c, 0xe3, 0xc6, 0xd7, 0xfc, 0xc0, 0x96, 0x82, 0xa1, 0x32, 0xe4, 0x19, 0x0e, 0x86, 0xae, 0x67,
+- 0x0f, 0x8c, 0x4c, 0x4d, 0xab, 0xe7, 0xad, 0x2b, 0x1b, 0xad, 0x41, 0x96, 0x32, 0xc7, 0xf5, 0x8c,
+- 0xac, 0xd8, 0x43, 0x1a, 0x7c, 0x6b, 0xca, 0x1c, 0x12, 0x32, 0x43, 0x97, 0x5b, 0x4b, 0x4b, 0x7d,
+- 0xc7, 0x41, 0x60, 0xe4, 0xae, 0xbe, 0xe3, 0x20, 0x40, 0x15, 0x80, 0x6e, 0x1f, 0x77, 0x8f, 0x7d,
+- 0xe2, 0x7a, 0xcc, 0xc8, 0x8b, 0xb9, 0xc8, 0x17, 0xf4, 0x11, 0xdc, 0xf7, 0xed, 0x00, 0x7b, 0xac,
+- 0x13, 0x81, 0x15, 0x04, 0x6c, 0x55, 0x4e, 0xec, 0x4c, 0xc0, 0x0d, 0xc8, 0x11, 0x9f, 0xb9, 0xc4,
+- 0xa3, 0x06, 0xd4, 0xb4, 0x7a, 0xb1, 0xb5, 0xd6, 0x90, 0x97, 0xd9, 0x18, 0x5f, 0x66, 0x63, 0xcb,
+- 0x3b, 0xb7, 0xc6, 0x20, 0x73, 0x03, 0x50, 0x34, 0xa9, 0xd4, 0x27, 0x1e, 0xc5, 0x68, 0x15, 0xd2,
+- 0xbe, 0x4a, 0x6b, 0xc9, 0xe2, 0x43, 0xf3, 0x25, 0x94, 0x76, 0xf1, 0x00, 0x33, 0xbc, 0x28, 0xf1,
+- 0x4f, 0x20, 0x87, 0xcf, 0x70, 0xb7, 0xe3, 0x3a, 0x32, 0xf3, 0xdb, 0x30, 0xba, 0xac, 0xea, 0x7b,
+- 0x67, 0xb8, 0xdb, 0xde, 0xb5, 0x74, 0x3e, 0xd5, 0x76, 0xcc, 0x5f, 0x34, 0x58, 0x19, 0xbb, 0x4b,
+- 0xda, 0x12, 0x55, 0xa1, 0x88, 0xcf, 0x5c, 0xd6, 0xa1, 0xcc, 0x66, 0x21, 0x15, 0xde, 0x4a, 0x16,
+- 0xf0, 0x4f, 0xaf, 0xc4, 0x17, 0xb4, 0x05, 0x05, 0x6e, 0x61, 0xa7, 0x63, 0x33, 0x23, 0x2d, 0xa2,
+- 0x2d, 0x5f, 0x8b, 0xf6, 0xf5, 0x98, 0xba, 0xdb, 0xf9, 0x8b, 0xcb, 0xea, 0x9d, 0xdf, 0xfe, 0xae,
+- 0x6a, 0x56, 0x5e, 0x2e, 0xdb, 0x62, 0xe6, 0x5f, 0x1a, 0x20, 0x7e, 0xb6, 0x83, 0x80, 0x74, 0x31,
+- 0xa5, 0xcb, 0x08, 0x6e, 0x8a, 0x31, 0xe9, 0x24, 0xc6, 0x64, 0xe2, 0x19, 0x93, 0x4d, 0x60, 0x8c,
+- 0x3e, 0xc5, 0x98, 0x3a, 0x64, 0xa8, 0x8f, 0xbb, 0x82, 0x47, 0x49, 0x37, 0x2c, 0x10, 0xe6, 0x03,
+- 0xf8, 0xdf, 0x54, 0x78, 0x32, 0xd9, 0xe6, 0x4f, 0xb0, 0x6a, 0x61, 0xea, 0xfe, 0x88, 0x0f, 0xd8,
+- 0xf9, 0x52, 0x62, 0x5e, 0x83, 0xec, 0xa9, 0xeb, 0xb0, 0xbe, 0x08, 0xb8, 0x64, 0x49, 0x83, 0x9f,
+- 0xbf, 0x8f, 0xdd, 0x5e, 0x9f, 0x89, 0x70, 0x4b, 0x96, 0xb2, 0xcc, 0x17, 0x70, 0x97, 0x5f, 0xe1,
+- 0x72, 0xb8, 0xf4, 0x6f, 0x0a, 0x4a, 0xca, 0x9b, 0xa2, 0xd2, 0x6d, 0x35, 0x41, 0x51, 0x2f, 0x3d,
+- 0xa1, 0xde, 0x33, 0x9e, 0x78, 0xc1, 0x3a, 0x7e, 0xf0, 0x95, 0xd6, 0xa3, 0xa8, 0x4a, 0x9c, 0x7c,
+- 0xac, 0x84, 0x42, 0xd2, 0xd0, 0x52, 0xd0, 0x25, 0xa9, 0x41, 0x94, 0x3d, 0xf9, 0x19, 0xf6, 0xcc,
+- 0x54, 0x44, 0x61, 0x7e, 0x45, 0xc0, 0xbb, 0x54, 0x44, 0x34, 0xe7, 0xc5, 0xc4, 0x9c, 0x33, 0x28,
+- 0xbe, 0x70, 0x07, 0x83, 0xa5, 0x50, 0x87, 0x27, 0xc2, 0xed, 0x8d, 0x8b, 0xa5, 0x64, 0x29, 0x8b,
+- 0xdf, 0x8a, 0x3d, 0x18, 0x6b, 0x2e, 0x1f, 0x9a, 0x5d, 0x58, 0xd9, 0x19, 0x10, 0x8a, 0xdb, 0xfb,
+- 0xcb, 0xe2, 0xac, 0xbc, 0x2f, 0x59, 0xa4, 0xd2, 0x30, 0x9f, 0x42, 0xf1, 0xc0, 0x75, 0x16, 0x29,
+- 0x81, 0xf9, 0x0d, 0xdc, 0x95, 0x30, 0xc5, 0xb9, 0xcf, 0xa1, 0xe0, 0xcb, 0x22, 0xc3, 0xd4, 0xd0,
+- 0x44, 0x6b, 0xa9, 0xc5, 0x92, 0x46, 0x95, 0x62, 0xdb, 0x3b, 0x22, 0xd6, 0x64, 0x89, 0x49, 0xe1,
+- 0xc1, 0x44, 0xc5, 0x6f, 0xd2, 0xe0, 0x10, 0x64, 0x7c, 0x9b, 0xf5, 0x15, 0x95, 0xc5, 0x38, 0x2a,
+- 0xfe, 0xe9, 0x9b, 0x88, 0x7f, 0x07, 0xee, 0x7f, 0xeb, 0x3b, 0x37, 0xec, 0xa8, 0x2d, 0x28, 0x04,
+- 0x98, 0x92, 0x30, 0xe8, 0x62, 0x29, 0xc6, 0x49, 0xee, 0x27, 0x30, 0x55, 0xe8, 0x01, 0x5b, 0x4a,
+- 0xa1, 0x3f, 0x16, 0x75, 0xce, 0x9d, 0x25, 0x76, 0xa9, 0xaf, 0xa0, 0xf8, 0xc6, 0x76, 0x97, 0xb3,
+- 0x5d, 0x00, 0x77, 0xa5, 0x2f, 0xb5, 0xdb, 0x4c, 0xf1, 0x69, 0xf3, 0x8b, 0x2f, 0xf5, 0x4e, 0xed,
+- 0x68, 0x43, 0x0a, 0xe3, 0x42, 0xf6, 0x6d, 0x4a, 0xc9, 0x9b, 0xd0, 0xef, 0x43, 0xce, 0x65, 0x9b,
+- 0xc9, 0x63, 0x25, 0x5d, 0x8c, 0x84, 0x98, 0x75, 0x58, 0xd9, 0x21, 0x9e, 0x87, 0xbb, 0x8b, 0xf2,
+- 0x64, 0xda, 0x70, 0xef, 0x0a, 0xa9, 0x36, 0x7a, 0x08, 0x79, 0xfe, 0x14, 0xed, 0x4c, 0x12, 0x9f,
+- 0xe3, 0xf6, 0x81, 0xeb, 0xf0, 0x29, 0xfe, 0x5c, 0x13, 0x53, 0xb2, 0x59, 0xe7, 0xb8, 0xcd, 0xa7,
+- 0x0c, 0xc8, 0x9d, 0xe0, 0x80, 0xba, 0x44, 0x16, 0x5b, 0xc1, 0x1a, 0x9b, 0xe6, 0x26, 0xdc, 0x7b,
+- 0xd5, 0x0f, 0x99, 0x43, 0x4e, 0xbd, 0x45, 0xb7, 0xb6, 0x0a, 0x69, 0x8f, 0x9c, 0x0a, 0xd7, 0x79,
+- 0x8b, 0x0f, 0x79, 0xba, 0x0e, 0xec, 0x90, 0x2e, 0xea, 0x23, 0xe6, 0xfb, 0x50, 0xb2, 0x30, 0x0d,
+- 0x87, 0x8b, 0x80, 0xad, 0x5f, 0x01, 0x32, 0xbc, 0x16, 0xd0, 0x4b, 0xc8, 0x8a, 0x9e, 0x82, 0xa6,
+- 0x8a, 0x58, 0xbd, 0xb6, 0x1b, 0xd1, 0xe6, 0x55, 0x7e, 0x3c, 0x07, 0xa1, 0x92, 0xf6, 0x06, 0x74,
+- 0xf9, 0xc8, 0x42, 0x4f, 0xe3, 0xc0, 0xd7, 0x5e, 0xb5, 0xe5, 0x8d, 0x45, 0x30, 0xe5, 0x58, 0x1e,
+- 0x33, 0x60, 0x89, 0xc7, 0xbc, 0x2a, 0xbd, 0xc4, 0x63, 0x46, 0xea, 0x69, 0x1f, 0x74, 0xf9, 0x28,
+- 0x43, 0xb1, 0xe0, 0xa9, 0xf7, 0x5f, 0xd9, 0x9c, 0x07, 0x51, 0x0e, 0xdb, 0x90, 0xe1, 0x22, 0x89,
+- 0xaa, 0x71, 0xd8, 0x88, 0xca, 0x96, 0x6b, 0xc9, 0x00, 0xe5, 0x6a, 0x0b, 0xb2, 0xe2, 0xaa, 0xe3,
+- 0x23, 0x8d, 0xb2, 0xa0, 0xbc, 0x7e, 0x8d, 0xfc, 0x7b, 0xfc, 0x3f, 0x1e, 0xb4, 0x03, 0xba, 0x64,
+- 0x41, 0x7c, 0x78, 0x53, 0x0c, 0x49, 0x74, 0xb2, 0x0f, 0x10, 0x79, 0x6d, 0x7f, 0x10, 0x7b, 0x4f,
+- 0x71, 0x3a, 0x9e, 0xe8, 0xf0, 0x0b, 0xc8, 0xf0, 0x56, 0x1a, 0x9f, 0xa3, 0x48, 0x93, 0x4d, 0x74,
+- 0xf0, 0x25, 0x64, 0xb8, 0x72, 0xa1, 0x58, 0xce, 0x5c, 0x7f, 0xdb, 0x26, 0xfa, 0x69, 0x43, 0xe1,
+- 0xea, 0x4d, 0x88, 0xde, 0x4b, 0xc8, 0xd0, 0xd4, 0x93, 0x31, 0xd1, 0xd5, 0x1e, 0xe4, 0x54, 0xa3,
+- 0x46, 0xb1, 0x34, 0x99, 0xee, 0xe2, 0x89, 0x6e, 0x9e, 0x83, 0x2e, 0xdb, 0x53, 0x7c, 0xd9, 0x5c,
+- 0x6b, 0x5d, 0x73, 0x42, 0xcb, 0x70, 0x29, 0x8f, 0xcf, 0x71, 0xa4, 0x61, 0xc4, 0xf3, 0x70, 0xaa,
+- 0x0b, 0x28, 0x61, 0xa0, 0xc9, 0xc2, 0x40, 0x17, 0x0a, 0xc3, 0x84, 0xd5, 0x16, 0xe4, 0x94, 0xc0,
+- 0x26, 0x24, 0x6a, 0x4a, 0xa7, 0xcb, 0x4f, 0xe6, 0x62, 0x94, 0xcf, 0xe7, 0x90, 0x1f, 0x2b, 0x2a,
+- 0x8a, 0x5d, 0x30, 0xa3, 0xb7, 0x49, 0x59, 0xdb, 0xde, 0xbf, 0x78, 0x5b, 0xb9, 0xf3, 0xe7, 0xdb,
+- 0xca, 0x9d, 0x9f, 0x47, 0x15, 0xed, 0x62, 0x54, 0xd1, 0x7e, 0x1f, 0x55, 0xb4, 0x7f, 0x46, 0x15,
+- 0xed, 0xfb, 0x4f, 0x6e, 0xfb, 0xf3, 0xc5, 0x26, 0xff, 0xf3, 0x5d, 0xea, 0x50, 0x17, 0x5b, 0x3c,
+- 0xfb, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x19, 0x17, 0x87, 0x57, 0x00, 0x11, 0x00, 0x00,
++ // 1306 bytes of a gzipped FileDescriptorProto
++ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4d, 0x6f, 0xdb, 0x46,
++ 0x13, 0x0e, 0xf5, 0x41, 0x49, 0xa3, 0xc8, 0x71, 0xf6, 0x75, 0xf2, 0x32, 0x0a, 0x20, 0x29, 0x4c,
++ 0x93, 0xaa, 0x2d, 0x40, 0xa1, 0x0a, 0x1a, 0x14, 0x31, 0x90, 0xc2, 0x76, 0xdc, 0x40, 0x4d, 0x5a,
++ 0x1b, 0x4c, 0x8a, 0x04, 0xbd, 0x18, 0xb4, 0xb8, 0x91, 0x08, 0x4b, 0x5c, 0x96, 0xbb, 0x74, 0xa2,
++ 0x02, 0x05, 0x7a, 0xea, 0xa1, 0xa7, 0xfe, 0xac, 0x1c, 0x0b, 0xf4, 0xd2, 0x4b, 0xd3, 0x46, 0xff,
++ 0xa0, 0xc7, 0xde, 0x8a, 0xfd, 0x90, 0x45, 0x49, 0xa4, 0x14, 0x07, 0xba, 0x18, 0x3b, 0xdc, 0x67,
++ 0x67, 0x67, 0x67, 0x9f, 0x79, 0x66, 0x65, 0xd8, 0xee, 0x79, 0xac, 0x1f, 0x1d, 0x5b, 0x5d, 0x32,
++ 0x6c, 0x75, 0x89, 0xcf, 0x1c, 0xcf, 0xc7, 0xa1, 0x1b, 0x1f, 0x86, 0x91, 0xcf, 0xbc, 0x21, 0x6e,
++ 0x9d, 0xb6, 0x5b, 0xcc, 0xa1, 0x27, 0x2d, 0xda, 0xf7, 0x86, 0x56, 0x10, 0x12, 0x46, 0x10, 0x9a,
++ 0xc2, 0x2c, 0x3e, 0x67, 0x9d, 0xb6, 0xab, 0xd7, 0x7a, 0x84, 0xf4, 0x06, 0xb8, 0x25, 0x10, 0xc7,
++ 0xd1, 0x8b, 0x96, 0xe3, 0x8f, 0x24, 0xbc, 0x7a, 0x7d, 0x7e, 0x0a, 0x0f, 0x03, 0x36, 0x99, 0xdc,
++ 0xea, 0x91, 0x1e, 0x11, 0xc3, 0x16, 0x1f, 0xa9, 0xaf, 0xf5, 0xf9, 0x25, 0x3c, 0x14, 0xca, 0x9c,
++ 0x61, 0xa0, 0x00, 0x77, 0x57, 0xc6, 0xef, 0x04, 0x5e, 0x8b, 0x8d, 0x02, 0x4c, 0x5b, 0x43, 0x12,
++ 0xf9, 0x4c, 0xad, 0xbb, 0x77, 0x8e, 0x75, 0xe2, 0xd8, 0xe2, 0x7c, 0x62, 0xad, 0xf9, 0x7b, 0x06,
++ 0x2e, 0xef, 0x85, 0xd8, 0x61, 0xf8, 0xa9, 0x43, 0x4f, 0x6c, 0xfc, 0x7d, 0x84, 0x29, 0x43, 0x57,
++ 0x21, 0xe3, 0xb9, 0x86, 0xd6, 0xd0, 0x9a, 0xa5, 0x5d, 0x7d, 0xfc, 0xa6, 0x9e, 0xe9, 0x3c, 0xb0,
++ 0x33, 0x9e, 0x8b, 0xae, 0x82, 0x7e, 0x1c, 0xf9, 0xee, 0x00, 0x1b, 0x19, 0x3e, 0x67, 0x2b, 0x0b,
++ 0xb5, 0x40, 0x0f, 0x09, 0x61, 0x2f, 0xa8, 0x91, 0x6d, 0x64, 0x9b, 0xe5, 0xf6, 0xff, 0xad, 0x78,
++ 0x36, 0xf9, 0xc6, 0xd6, 0xd7, 0x3c, 0x60, 0x5b, 0xc1, 0x50, 0x15, 0x8a, 0x0c, 0x87, 0x43, 0xcf,
++ 0x77, 0x06, 0x46, 0xae, 0xa1, 0x35, 0x8b, 0xf6, 0x99, 0x8d, 0xb6, 0x20, 0x4f, 0x99, 0xeb, 0xf9,
++ 0x46, 0x5e, 0xec, 0x21, 0x0d, 0xbe, 0x35, 0x65, 0x2e, 0x89, 0x98, 0xa1, 0xcb, 0xad, 0xa5, 0xa5,
++ 0xbe, 0xe3, 0x30, 0x34, 0x0a, 0x67, 0xdf, 0x71, 0x18, 0xa2, 0x1a, 0x40, 0xb7, 0x8f, 0xbb, 0x27,
++ 0x01, 0xf1, 0x7c, 0x66, 0x14, 0xc5, 0x5c, 0xec, 0x0b, 0xfa, 0x04, 0x2e, 0x07, 0x4e, 0x88, 0x7d,
++ 0x76, 0x14, 0x83, 0x95, 0x04, 0x6c, 0x53, 0x4e, 0xec, 0x4d, 0xc1, 0x16, 0x14, 0x48, 0xc0, 0x3c,
++ 0xe2, 0x53, 0x03, 0x1a, 0x5a, 0xb3, 0xdc, 0xde, 0xb2, 0xe4, 0x65, 0x5a, 0x93, 0xcb, 0xb4, 0x76,
++ 0xfc, 0x91, 0x3d, 0x01, 0x99, 0xb7, 0x01, 0xc5, 0x93, 0x4a, 0x03, 0xe2, 0x53, 0x8c, 0x36, 0x21,
++ 0x1b, 0xa8, 0xb4, 0x56, 0x6c, 0x3e, 0x34, 0x1f, 0x43, 0xe5, 0x01, 0x1e, 0x60, 0x86, 0x57, 0x25,
++ 0xfe, 0x26, 0x14, 0xf0, 0x2b, 0xdc, 0x3d, 0xf2, 0x5c, 0x99, 0xf9, 0x5d, 0x18, 0xbf, 0xa9, 0xeb,
++ 0xfb, 0xaf, 0x70, 0xb7, 0xf3, 0xc0, 0xd6, 0xf9, 0x54, 0xc7, 0x35, 0x7f, 0xd6, 0x60, 0x63, 0xe2,
++ 0x2e, 0x6d, 0x4b, 0x54, 0x87, 0x32, 0x7e, 0xe5, 0xb1, 0x23, 0xca, 0x1c, 0x16, 0x51, 0xe1, 0xad,
++ 0x62, 0x03, 0xff, 0xf4, 0x44, 0x7c, 0x41, 0x3b, 0x50, 0xe2, 0x16, 0x76, 0x8f, 0x1c, 0x66, 0x64,
++ 0xc5, 0x69, 0xab, 0x0b, 0xa7, 0x7d, 0x3a, 0xa1, 0xee, 0x6e, 0xf1, 0xf5, 0x9b, 0xfa, 0x85, 0x5f,
++ 0xff, 0xaa, 0x6b, 0x76, 0x51, 0x2e, 0xdb, 0x61, 0xe6, 0x9f, 0x1a, 0x20, 0x1e, 0xdb, 0x61, 0x48,
++ 0xba, 0x98, 0xd2, 0x75, 0x1c, 0x6e, 0x86, 0x31, 0xd9, 0x34, 0xc6, 0xe4, 0x92, 0x19, 0x93, 0x4f,
++ 0x61, 0x8c, 0x3e, 0xc3, 0x98, 0x26, 0xe4, 0x68, 0x80, 0xbb, 0x82, 0x47, 0x69, 0x37, 0x2c, 0x10,
++ 0xe6, 0x15, 0xf8, 0xdf, 0xcc, 0xf1, 0x64, 0xb2, 0xcd, 0x1f, 0x61, 0xd3, 0xc6, 0xd4, 0xfb, 0x01,
++ 0x1f, 0xb2, 0xd1, 0x5a, 0xce, 0xbc, 0x05, 0xf9, 0x97, 0x9e, 0xcb, 0xfa, 0xe2, 0xc0, 0x15, 0x5b,
++ 0x1a, 0x3c, 0xfe, 0x3e, 0xf6, 0x7a, 0x7d, 0x26, 0x8e, 0x5b, 0xb1, 0x95, 0x65, 0x3e, 0x82, 0x8b,
++ 0xfc, 0x0a, 0xd7, 0xc3, 0xa5, 0x7f, 0x32, 0x50, 0x51, 0xde, 0x14, 0x95, 0xce, 0xab, 0x09, 0x8a,
++ 0x7a, 0xd9, 0x29, 0xf5, 0xee, 0xf0, 0xc4, 0x0b, 0xd6, 0xf1, 0xc0, 0x37, 0xda, 0xd7, 0xe3, 0x2a,
++ 0x71, 0xfa, 0xa9, 0x12, 0x0a, 0x49, 0x43, 0x5b, 0x41, 0xd7, 0xa4, 0x06, 0x71, 0xf6, 0x14, 0xe7,
++ 0xd8, 0x33, 0x57, 0x11, 0xa5, 0xe5, 0x15, 0x01, 0xef, 0x53, 0x11, 0xf1, 0x9c, 0x97, 0x53, 0x73,
++ 0xce, 0xa0, 0xfc, 0xc8, 0x1b, 0x0c, 0xd6, 0x42, 0x1d, 0x9e, 0x08, 0xaf, 0x37, 0x29, 0x96, 0x8a,
++ 0xad, 0x2c, 0x7e, 0x2b, 0xce, 0x60, 0xa2, 0xb9, 0x7c, 0x68, 0x76, 0x61, 0x63, 0x6f, 0x40, 0x28,
++ 0xee, 0x1c, 0xac, 0x8b, 0xb3, 0xf2, 0xbe, 0x64, 0x91, 0x4a, 0xc3, 0xbc, 0x05, 0xe5, 0x43, 0xcf,
++ 0x5d, 0xa5, 0x04, 0xe6, 0x37, 0x70, 0x51, 0xc2, 0x14, 0xe7, 0xee, 0x43, 0x29, 0x90, 0x45, 0x86,
++ 0xa9, 0xa1, 0x89, 0xd6, 0xd2, 0x48, 0x24, 0x8d, 0x2a, 0xc5, 0x8e, 0xff, 0x82, 0xd8, 0xd3, 0x25,
++ 0x26, 0x85, 0x2b, 0x53, 0x15, 0x7f, 0x97, 0x06, 0x87, 0x20, 0x17, 0x38, 0xac, 0xaf, 0xa8, 0x2c,
++ 0xc6, 0x71, 0xf1, 0xcf, 0xbe, 0x8b, 0xf8, 0xff, 0xab, 0xc1, 0xe5, 0x6f, 0x03, 0xf7, 0x1d, 0x5b,
++ 0x6a, 0x1b, 0x4a, 0x21, 0xa6, 0x24, 0x0a, 0xbb, 0x58, 0xaa, 0x71, 0x9a, 0xff, 0x29, 0x0c, 0x3d,
++ 0x87, 0xb2, 0xe3, 0xfb, 0x84, 0x39, 0x93, 0xa8, 0x78, 0x62, 0xee, 0x5a, 0x8b, 0x2f, 0x18, 0x6b,
++ 0x21, 0x0e, 0x6b, 0x67, 0xba, 0x70, 0xdf, 0x67, 0xe1, 0xc8, 0x8e, 0xbb, 0xaa, 0xde, 0x87, 0xcd,
++ 0x79, 0x00, 0xa7, 0xcc, 0x09, 0x1e, 0xc9, 0xd0, 0x6d, 0x3e, 0xe4, 0x77, 0x7c, 0xea, 0x0c, 0xa2,
++ 0x49, 0xc5, 0x4b, 0xe3, 0x5e, 0xe6, 0x73, 0x4d, 0x69, 0x50, 0xc8, 0xd6, 0xa2, 0x41, 0x37, 0x84,
++ 0x04, 0x71, 0x67, 0xa9, 0x0d, 0xf4, 0x2b, 0x28, 0x3f, 0x73, 0xbc, 0xf5, 0x6c, 0x17, 0xc2, 0x45,
++ 0xe9, 0x4b, 0xed, 0x36, 0xa7, 0x0b, 0xda, 0x72, 0x5d, 0xc8, 0xbc, 0x57, 0xa7, 0xbc, 0x2d, 0x35,
++ 0x7b, 0x65, 0x61, 0x6c, 0x4b, 0x35, 0x9e, 0x56, 0xc6, 0xc7, 0xbc, 0xcc, 0x1c, 0x26, 0xc3, 0x4a,
++ 0xa3, 0x8c, 0x84, 0x98, 0x4d, 0xd8, 0xd8, 0x23, 0xbe, 0x8f, 0xbb, 0xab, 0xf2, 0x64, 0x3a, 0x70,
++ 0xe9, 0x0c, 0xa9, 0x36, 0xba, 0x06, 0x45, 0xfe, 0x4a, 0x3e, 0x9a, 0x26, 0xbe, 0xc0, 0xed, 0x43,
++ 0xcf, 0xe5, 0x53, 0x9c, 0x67, 0x62, 0x4a, 0xbe, 0x23, 0x0a, 0xdc, 0xe6, 0x53, 0x06, 0x14, 0x4e,
++ 0x71, 0x48, 0x3d, 0x22, 0x75, 0xa0, 0x64, 0x4f, 0x4c, 0x73, 0x1b, 0x2e, 0x3d, 0xe9, 0x47, 0xcc,
++ 0x25, 0x2f, 0xfd, 0x55, 0xb7, 0xb6, 0x09, 0x59, 0x9f, 0xbc, 0x14, 0xae, 0x8b, 0x36, 0x1f, 0xf2,
++ 0x74, 0x1d, 0x3a, 0x11, 0x5d, 0xd5, 0xe2, 0xcc, 0x0f, 0xa1, 0x62, 0x63, 0x1a, 0x0d, 0x57, 0x01,
++ 0xdb, 0xbf, 0x00, 0xe4, 0x78, 0x75, 0xa0, 0xc7, 0x90, 0x17, 0xed, 0x0e, 0x35, 0x92, 0xca, 0x28,
++ 0xde, 0x57, 0xab, 0x37, 0x96, 0x20, 0x54, 0xd2, 0x9e, 0x81, 0x2e, 0xdf, 0x7f, 0xe8, 0x56, 0x12,
++ 0x78, 0xe1, 0xc1, 0x5d, 0xbd, 0xbd, 0x0a, 0xa6, 0x1c, 0xcb, 0x30, 0x43, 0x96, 0x1a, 0xe6, 0x59,
++ 0xe9, 0xa5, 0x86, 0x19, 0xab, 0xa7, 0x03, 0xd0, 0xe5, 0x7b, 0x11, 0x25, 0x82, 0x67, 0x9e, 0xa6,
++ 0x55, 0x73, 0x19, 0x44, 0x39, 0xec, 0x40, 0x8e, 0xeb, 0x37, 0xaa, 0x27, 0x61, 0x63, 0x0d, 0xa0,
++ 0xda, 0x48, 0x07, 0x28, 0x57, 0x3b, 0x90, 0x17, 0x57, 0x9d, 0x7c, 0xd2, 0x38, 0x0b, 0xaa, 0x57,
++ 0x17, 0xc8, 0xbf, 0xcf, 0x7f, 0x8c, 0xa1, 0x3d, 0xd0, 0x25, 0x0b, 0x92, 0x8f, 0x37, 0xc3, 0x90,
++ 0x54, 0x27, 0x07, 0x00, 0xb1, 0x1f, 0x02, 0x1f, 0x25, 0xde, 0x53, 0x52, 0x8b, 0x49, 0x75, 0xf8,
++ 0x05, 0xe4, 0x78, 0x97, 0x4f, 0xce, 0x51, 0xac, 0xff, 0xa7, 0x3a, 0xf8, 0x12, 0x72, 0x5c, 0xb9,
++ 0x50, 0x22, 0x67, 0x16, 0x9f, 0xdd, 0xa9, 0x7e, 0x3a, 0x50, 0x3a, 0x7b, 0xae, 0xa2, 0x0f, 0x52,
++ 0x32, 0x34, 0xf3, 0x9a, 0x4d, 0x75, 0xb5, 0x0f, 0x05, 0xf5, 0x86, 0x40, 0x89, 0x34, 0x99, 0x7d,
++ 0x60, 0xa4, 0xba, 0x79, 0x08, 0xba, 0x6c, 0x58, 0xc9, 0x65, 0xb3, 0xd0, 0xcc, 0x96, 0x1c, 0x2d,
++ 0xc7, 0xa5, 0x3c, 0x39, 0xc7, 0xb1, 0x86, 0x91, 0xcc, 0xc3, 0x99, 0x2e, 0xa0, 0x84, 0x81, 0xa6,
++ 0x0b, 0x03, 0x5d, 0x29, 0x0c, 0x53, 0x56, 0xdb, 0x50, 0x50, 0x02, 0x9b, 0x92, 0xa8, 0x19, 0x9d,
++ 0xae, 0xde, 0x5c, 0x8a, 0x51, 0x3e, 0x1f, 0x42, 0x71, 0xa2, 0xa8, 0x28, 0x71, 0xc1, 0x9c, 0xde,
++ 0xa6, 0x65, 0x6d, 0xf7, 0xe0, 0xf5, 0xdb, 0xda, 0x85, 0x3f, 0xde, 0xd6, 0x2e, 0xfc, 0x34, 0xae,
++ 0x69, 0xaf, 0xc7, 0x35, 0xed, 0xb7, 0x71, 0x4d, 0xfb, 0x7b, 0x5c, 0xd3, 0xbe, 0xfb, 0xec, 0xbc,
++ 0xff, 0x59, 0xd9, 0xe6, 0x7f, 0x9e, 0x67, 0x8e, 0x75, 0xb1, 0xc5, 0x9d, 0xff, 0x02, 0x00, 0x00,
++ 0xff, 0xff, 0xd3, 0xbf, 0xc3, 0xa9, 0x9b, 0x11, 0x00, 0x00,
+ }
+
+ func (m *CreateTaskRequest) Marshal() (dAtA []byte, err error) {
+@@ -2000,6 +2007,25 @@ func (m *UpdateTaskRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i -= len(m.XXX_unrecognized)
+ copy(dAtA[i:], m.XXX_unrecognized)
+ }
++ if len(m.Annotations) > 0 {
++ for k := range m.Annotations {
++ v := m.Annotations[k]
++ baseI := i
++ i -= len(v)
++ copy(dAtA[i:], v)
++ i = encodeVarintShim(dAtA, i, uint64(len(v)))
++ i--
++ dAtA[i] = 0x12
++ i -= len(k)
++ copy(dAtA[i:], k)
++ i = encodeVarintShim(dAtA, i, uint64(len(k)))
++ i--
++ dAtA[i] = 0xa
++ i = encodeVarintShim(dAtA, i, uint64(baseI-i))
++ i--
++ dAtA[i] = 0x1a
++ }
++ }
+ if m.Resources != nil {
+ {
+ size, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])
+@@ -2826,6 +2852,14 @@ func (m *UpdateTaskRequest) Size() (n int) {
+ l = m.Resources.Size()
+ n += 1 + l + sovShim(uint64(l))
+ }
++ if len(m.Annotations) > 0 {
++ for k, v := range m.Annotations {
++ _ = k
++ _ = v
++ mapEntrySize := 1 + len(k) + sovShim(uint64(len(k))) + 1 + len(v) + sovShim(uint64(len(v)))
++ n += mapEntrySize + 1 + sovShim(uint64(mapEntrySize))
++ }
++ }
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+@@ -3237,9 +3271,20 @@ func (this *UpdateTaskRequest) String() string {
+ if this == nil {
+ return "nil"
+ }
++ keysForAnnotations := make([]string, 0, len(this.Annotations))
++ for k, _ := range this.Annotations {
++ keysForAnnotations = append(keysForAnnotations, k)
++ }
++ github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)
++ mapStringForAnnotations := "map[string]string{"
++ for _, k := range keysForAnnotations {
++ mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k])
++ }
++ mapStringForAnnotations += "}"
+ s := strings.Join([]string{`&UpdateTaskRequest{`,
+ `ID:` + fmt.Sprintf("%v", this.ID) + `,`,
+ `Resources:` + strings.Replace(fmt.Sprintf("%v", this.Resources), "Any", "types1.Any", 1) + `,`,
++ `Annotations:` + mapStringForAnnotations + `,`,
+ `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
+ `}`,
+ }, "")
+@@ -4019,10 +4064,7 @@ func (m *CreateTaskRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4092,10 +4134,7 @@ func (m *CreateTaskResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4210,10 +4249,7 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4335,10 +4371,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4605,10 +4638,7 @@ func (m *ExecProcessRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4659,10 +4689,7 @@ func (m *ExecProcessResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4815,10 +4842,7 @@ func (m *ResizePtyRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -4933,10 +4957,7 @@ func (m *StateRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -5289,10 +5310,7 @@ func (m *StateResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -5446,10 +5464,7 @@ func (m *KillRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -5584,10 +5599,7 @@ func (m *CloseIORequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -5670,10 +5682,7 @@ func (m *PidsRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -5758,10 +5767,7 @@ func (m *PidsResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -5912,10 +5918,7 @@ func (m *CheckpointTaskRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -6028,16 +6031,140 @@ func (m *UpdateTaskRequest) Unmarshal(dAtA []byte) error {
+ return err
+ }
+ iNdEx = postIndex
++ case 3:
++ if wireType != 2 {
++ return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType)
++ }
++ var msglen int
++ for shift := uint(0); ; shift += 7 {
++ if shift >= 64 {
++ return ErrIntOverflowShim
++ }
++ if iNdEx >= l {
++ return io.ErrUnexpectedEOF
++ }
++ b := dAtA[iNdEx]
++ iNdEx++
++ msglen |= int(b&0x7F) << shift
++ if b < 0x80 {
++ break
++ }
++ }
++ if msglen < 0 {
++ return ErrInvalidLengthShim
++ }
++ postIndex := iNdEx + msglen
++ if postIndex < 0 {
++ return ErrInvalidLengthShim
++ }
++ if postIndex > l {
++ return io.ErrUnexpectedEOF
++ }
++ if m.Annotations == nil {
++ m.Annotations = make(map[string]string)
++ }
++ var mapkey string
++ var mapvalue string
++ for iNdEx < postIndex {
++ entryPreIndex := iNdEx
++ var wire uint64
++ for shift := uint(0); ; shift += 7 {
++ if shift >= 64 {
++ return ErrIntOverflowShim
++ }
++ if iNdEx >= l {
++ return io.ErrUnexpectedEOF
++ }
++ b := dAtA[iNdEx]
++ iNdEx++
++ wire |= uint64(b&0x7F) << shift
++ if b < 0x80 {
++ break
++ }
++ }
++ fieldNum := int32(wire >> 3)
++ if fieldNum == 1 {
++ var stringLenmapkey uint64
++ for shift := uint(0); ; shift += 7 {
++ if shift >= 64 {
++ return ErrIntOverflowShim
++ }
++ if iNdEx >= l {
++ return io.ErrUnexpectedEOF
++ }
++ b := dAtA[iNdEx]
++ iNdEx++
++ stringLenmapkey |= uint64(b&0x7F) << shift
++ if b < 0x80 {
++ break
++ }
++ }
++ intStringLenmapkey := int(stringLenmapkey)
++ if intStringLenmapkey < 0 {
++ return ErrInvalidLengthShim
++ }
++ postStringIndexmapkey := iNdEx + intStringLenmapkey
++ if postStringIndexmapkey < 0 {
++ return ErrInvalidLengthShim
++ }
++ if postStringIndexmapkey > l {
++ return io.ErrUnexpectedEOF
++ }
++ mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
++ iNdEx = postStringIndexmapkey
++ } else if fieldNum == 2 {
++ var stringLenmapvalue uint64
++ for shift := uint(0); ; shift += 7 {
++ if shift >= 64 {
++ return ErrIntOverflowShim
++ }
++ if iNdEx >= l {
++ return io.ErrUnexpectedEOF
++ }
++ b := dAtA[iNdEx]
++ iNdEx++
++ stringLenmapvalue |= uint64(b&0x7F) << shift
++ if b < 0x80 {
++ break
++ }
++ }
++ intStringLenmapvalue := int(stringLenmapvalue)
++ if intStringLenmapvalue < 0 {
++ return ErrInvalidLengthShim
++ }
++ postStringIndexmapvalue := iNdEx + intStringLenmapvalue
++ if postStringIndexmapvalue < 0 {
++ return ErrInvalidLengthShim
++ }
++ if postStringIndexmapvalue > l {
++ return io.ErrUnexpectedEOF
++ }
++ mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
++ iNdEx = postStringIndexmapvalue
++ } else {
++ iNdEx = entryPreIndex
++ skippy, err := skipShim(dAtA[iNdEx:])
++ if err != nil {
++ return err
++ }
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
++ return ErrInvalidLengthShim
++ }
++ if (iNdEx + skippy) > postIndex {
++ return io.ErrUnexpectedEOF
++ }
++ iNdEx += skippy
++ }
++ }
++ m.Annotations[mapkey] = mapvalue
++ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipShim(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -6152,10 +6279,7 @@ func (m *StartRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -6225,10 +6349,7 @@ func (m *StartResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -6343,10 +6464,7 @@ func (m *WaitRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -6449,10 +6567,7 @@ func (m *WaitResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -6535,10 +6650,7 @@ func (m *StatsRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -6625,10 +6737,7 @@ func (m *StatsResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -6711,10 +6820,7 @@ func (m *ConnectRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -6835,10 +6941,7 @@ func (m *ConnectResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -6941,10 +7044,7 @@ func (m *ShutdownRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -7027,10 +7127,7 @@ func (m *PauseRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+@@ -7113,10 +7210,7 @@ func (m *ResumeRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthShim
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthShim
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go b/src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
+index 9a2374b56..fae67de4f 100644
+--- a/src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
++++ b/src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
+@@ -844,7 +844,7 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
+ p.P(`return err`)
+ p.Out()
+ p.P(`}`)
+- p.P(`if skippy < 0 {`)
++ p.P(`if (skippy < 0) || (iNdEx + skippy) < 0 {`)
+ p.In()
+ p.P(`return ErrInvalidLength`, p.localName)
+ p.Out()
+@@ -1484,12 +1484,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
+ p.P(`return err`)
+ p.Out()
+ p.P(`}`)
+- p.P(`if skippy < 0 {`)
+- p.In()
+- p.P(`return ErrInvalidLength`, p.localName)
+- p.Out()
+- p.P(`}`)
+- p.P(`if (iNdEx + skippy) < 0 {`)
++ p.P(`if (skippy < 0) || (iNdEx + skippy) < 0 {`)
+ p.In()
+ p.P(`return ErrInvalidLength`, p.localName)
+ p.Out()
+@@ -1512,12 +1507,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
+ p.P(`return err`)
+ p.Out()
+ p.P(`}`)
+- p.P(`if skippy < 0 {`)
+- p.In()
+- p.P(`return ErrInvalidLength`, p.localName)
+- p.Out()
+- p.P(`}`)
+- p.P(`if (iNdEx + skippy) < 0 {`)
++ p.P(`if (skippy < 0) || (iNdEx + skippy) < 0 {`)
+ p.In()
+ p.P(`return ErrInvalidLength`, p.localName)
+ p.Out()
+diff --git a/src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go b/src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go
+index 1ce0be2fa..f85c0cc81 100644
+--- a/src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go
++++ b/src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go
+@@ -318,7 +318,7 @@ func unescape(s string) (ch string, tail string, err error) {
+ if i > utf8.MaxRune {
+ return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss)
+ }
+- return string(i), s, nil
++ return string(rune(i)), s, nil
+ }
+ return "", "", fmt.Errorf(`unknown escape \%c`, r)
+ }
+diff --git a/src/import/vendor/github.com/gogo/protobuf/types/any.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/any.pb.go
+index 98e269d54..e3d4d9490 100644
+--- a/src/import/vendor/github.com/gogo/protobuf/types/any.pb.go
++++ b/src/import/vendor/github.com/gogo/protobuf/types/any.pb.go
+@@ -592,10 +592,7 @@ func (m *Any) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthAny
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthAny
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/vendor/github.com/gogo/protobuf/types/api.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/api.pb.go
+index 58bf4b53b..83e886920 100644
+--- a/src/import/vendor/github.com/gogo/protobuf/types/api.pb.go
++++ b/src/import/vendor/github.com/gogo/protobuf/types/api.pb.go
+@@ -1677,10 +1677,7 @@ func (m *Api) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthApi
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthApi
+ }
+ if (iNdEx + skippy) > l {
+@@ -1920,10 +1917,7 @@ func (m *Method) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthApi
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthApi
+ }
+ if (iNdEx + skippy) > l {
+@@ -2038,10 +2032,7 @@ func (m *Mixin) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthApi
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthApi
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go
+index 3959f0669..4deafcb1c 100644
+--- a/src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go
++++ b/src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go
+@@ -415,10 +415,7 @@ func (m *Duration) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthDuration
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDuration
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go
+index 17e3aa558..9e94748b3 100644
+--- a/src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go
++++ b/src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go
+@@ -360,10 +360,7 @@ func (m *Empty) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthEmpty
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEmpty
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
+index 7226b57f7..6ae346d92 100644
+--- a/src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
++++ b/src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
+@@ -636,10 +636,7 @@ func (m *FieldMask) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthFieldMask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthFieldMask
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go
+index 61045ce10..8e6ce71b2 100644
+--- a/src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go
++++ b/src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go
+@@ -422,10 +422,7 @@ func (m *SourceContext) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSourceContext
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSourceContext
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go
+index cea553eef..c0457312e 100644
+--- a/src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go
++++ b/src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go
+@@ -1862,7 +1862,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthStruct
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1879,10 +1879,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthStruct
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthStruct
+ }
+ if (iNdEx + skippy) > l {
+@@ -2087,10 +2084,7 @@ func (m *Value) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthStruct
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthStruct
+ }
+ if (iNdEx + skippy) > l {
+@@ -2175,10 +2169,7 @@ func (m *ListValue) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthStruct
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthStruct
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
+index b81875267..45db7b3bb 100644
+--- a/src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
++++ b/src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
+@@ -437,10 +437,7 @@ func (m *Timestamp) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTimestamp
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTimestamp
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/vendor/github.com/gogo/protobuf/types/type.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/type.pb.go
+index 13b7ec02f..791427bb2 100644
+--- a/src/import/vendor/github.com/gogo/protobuf/types/type.pb.go
++++ b/src/import/vendor/github.com/gogo/protobuf/types/type.pb.go
+@@ -2483,10 +2483,7 @@ func (m *Type) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthType
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthType
+ }
+ if (iNdEx + skippy) > l {
+@@ -2795,10 +2792,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthType
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthType
+ }
+ if (iNdEx + skippy) > l {
+@@ -3004,10 +2998,7 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthType
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthType
+ }
+ if (iNdEx + skippy) > l {
+@@ -3143,10 +3134,7 @@ func (m *EnumValue) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthType
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthType
+ }
+ if (iNdEx + skippy) > l {
+@@ -3265,10 +3253,7 @@ func (m *Option) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthType
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthType
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
+index 8f1edb57d..8d415420a 100644
+--- a/src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
++++ b/src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
+@@ -2020,10 +2020,7 @@ func (m *DoubleValue) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthWrappers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2085,10 +2082,7 @@ func (m *FloatValue) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthWrappers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2158,10 +2152,7 @@ func (m *Int64Value) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthWrappers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2231,10 +2222,7 @@ func (m *UInt64Value) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthWrappers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2304,10 +2292,7 @@ func (m *Int32Value) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthWrappers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2377,10 +2362,7 @@ func (m *UInt32Value) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthWrappers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2451,10 +2433,7 @@ func (m *BoolValue) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthWrappers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2537,10 +2516,7 @@ func (m *StringValue) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthWrappers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2625,10 +2601,7 @@ func (m *BytesValue) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthWrappers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthWrappers
+ }
+ if (iNdEx + skippy) > l {
+--
+2.30.2
+
--
2.30.2



Re: [PATCH 1/3] xen-tools: add patches for 4.14 to enable dropping multilib build

Bruce Ashfield
 

These look good to me.

I've queued them on master .. were you also interested in
getting them into hardknott ?

Bruce

In message: [meta-virtualization][PATCH 1/3] xen-tools: add patches for 4.14 to enable dropping multilib build
on 19/04/2021 Christopher Clark wrote:

Backport Xen patches to enable hvmloader to be built without needing
32-bit glibc.

Signed-off-by: Christopher Clark <christopher.w.clark@...>
---
...-stand-alone-set-of-headers-Xen-4.14.patch | 178 ++++++++++++++++++
...d-firmware-as-ffreestanding-Xen-4.14.patch | 83 ++++++++
recipes-extended/xen/xen-tools_4.14.bb | 2 +
3 files changed, 263 insertions(+)
create mode 100644 recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch
create mode 100644 recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch

diff --git a/recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch b/recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch
new file mode 100644
index 0000000..7b062b7
--- /dev/null
+++ b/recipes-extended/xen/files/0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch
@@ -0,0 +1,178 @@
+From 73b13705af7c3bb8fdf11932eb68788d090a443f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@...>
+Date: Thu, 4 Mar 2021 16:49:00 +0100
+Subject: [PATCH] firmware: provide a stand alone set of headers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The current build of the firmware relies on having 32bit compatible
+headers installed in order to build some of the 32bit firmware.
+Usually this can be solved by using the -ffreestanding compiler option
+which drops the usage of the system headers in favor of a private set
+of freestanding headers provided by the compiler itself that are not
+tied to libc.
+
+However such option is broken at least in the gcc compiler provided in
+Alpine Linux, as the system include path (ie: /usr/include) takes
+precedence over the gcc private include path:
+
+#include <...> search starts here:
+ /usr/include
+ /usr/lib/gcc/x86_64-alpine-linux-musl/10.2.1/include
+
+And the headers in /usr/include are exclusively 64bit.
+
+Since -ffreestanding is currently broken on at least that distro, and
+for resilience against future compilers also having the option broken
+provide a set of stand alone 32bit headers required for the firmware
+build.
+
+Signed-off-by: Roger Pau Monné <roger.pau@...>
+Reviewed-by: Jan Beulich <jbeulich@...>
+Release-Acked-by: Ian Jackson <iwj@...>
+Applied to Xen 4.14 by: Christopher Clark <christopher.w.clark@...>
+---
+ tools/firmware/Rules.mk | 13 +++++++
+ tools/firmware/include/stdarg.h | 10 +++++
+ tools/firmware/include/stdbool.h | 9 +++++
+ tools/firmware/include/stddef.h | 10 +++++
+ tools/firmware/include/stdint.h | 39 +++++++++++++++++++
+ tools/firmware/rombios/32bit/rombios_compat.h | 4 +-
+ 6 files changed, 82 insertions(+), 3 deletions(-)
+ create mode 100644 tools/firmware/include/stdarg.h
+ create mode 100644 tools/firmware/include/stdbool.h
+ create mode 100644 tools/firmware/include/stddef.h
+ create mode 100644 tools/firmware/include/stdint.h
+
+diff --git a/tools/firmware/include/stdarg.h b/tools/firmware/include/stdarg.h
+new file mode 100644
+index 0000000000..c5e3761cd2
+--- /dev/null
++++ b/tools/firmware/include/stdarg.h
+@@ -0,0 +1,10 @@
++#ifndef _STDARG_H_
++#define _STDARG_H_
++
++typedef __builtin_va_list va_list;
++#define va_copy(dest, src) __builtin_va_copy(dest, src)
++#define va_start(ap, last) __builtin_va_start(ap, last)
++#define va_end(ap) __builtin_va_end(ap)
++#define va_arg __builtin_va_arg
++
++#endif
+diff --git a/tools/firmware/include/stdbool.h b/tools/firmware/include/stdbool.h
+new file mode 100644
+index 0000000000..0cf76b106c
+--- /dev/null
++++ b/tools/firmware/include/stdbool.h
+@@ -0,0 +1,9 @@
++#ifndef _STDBOOL_H_
++#define _STDBOOL_H_
++
++#define bool _Bool
++#define true 1
++#define false 0
++#define __bool_true_false_are_defined 1
++
++#endif
+diff --git a/tools/firmware/include/stddef.h b/tools/firmware/include/stddef.h
+new file mode 100644
+index 0000000000..c7f974608a
+--- /dev/null
++++ b/tools/firmware/include/stddef.h
+@@ -0,0 +1,10 @@
++#ifndef _STDDEF_H_
++#define _STDDEF_H_
++
++typedef __SIZE_TYPE__ size_t;
++
++#define NULL ((void*)0)
++
++#define offsetof(t, m) __builtin_offsetof(t, m)
++
++#endif
+diff --git a/tools/firmware/include/stdint.h b/tools/firmware/include/stdint.h
+new file mode 100644
+index 0000000000..16a0b6de19
+--- /dev/null
++++ b/tools/firmware/include/stdint.h
+@@ -0,0 +1,39 @@
++#ifndef _STDINT_H_
++#define _STDINT_H_
++
++#if defined(__LP64__) || defined(__P64__)
++#error "32bit only header"
++#endif
++
++typedef unsigned char uint8_t;
++typedef signed char int8_t;
++
++typedef unsigned short uint16_t;
++typedef signed short int16_t;
++
++typedef unsigned int uint32_t;
++typedef signed int int32_t;
++
++typedef unsigned long long uint64_t;
++typedef signed long long int64_t;
++
++#define INT8_MIN (-0x7f-1)
++#define INT16_MIN (-0x7fff-1)
++#define INT32_MIN (-0x7fffffff-1)
++#define INT64_MIN (-0x7fffffffffffffffll-1)
++
++#define INT8_MAX 0x7f
++#define INT16_MAX 0x7fff
++#define INT32_MAX 0x7fffffff
++#define INT64_MAX 0x7fffffffffffffffll
++
++#define UINT8_MAX 0xff
++#define UINT16_MAX 0xffff
++#define UINT32_MAX 0xffffffffu
++#define UINT64_MAX 0xffffffffffffffffull
++
++typedef uint32_t uintptr_t;
++
++#define UINTPTR_MAX UINT32_MAX
++
++#endif
+diff --git a/tools/firmware/rombios/32bit/rombios_compat.h b/tools/firmware/rombios/32bit/rombios_compat.h
+index 3fe7d67721..8ba4c17ffd 100644
+--- a/tools/firmware/rombios/32bit/rombios_compat.h
++++ b/tools/firmware/rombios/32bit/rombios_compat.h
+@@ -8,9 +8,7 @@
+
+ #define ADDR_FROM_SEG_OFF(seg, off) (void *)((((uint32_t)(seg)) << 4) + (off))
+
+-typedef unsigned char uint8_t;
+-typedef unsigned short int uint16_t;
+-typedef unsigned int uint32_t;
++#include <stdint.h>
+
+ typedef uint8_t Bit8u;
+ typedef uint16_t Bit16u;
+diff --git a/tools/firmware/Rules.mk b/tools/firmware/Rules.mk
+index 26bbddccd4..cb388b7011 100644
+--- a/tools/firmware/Rules.mk
++++ b/tools/firmware/Rules.mk
+@@ -17,3 +17,16 @@ $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
+
+ # Extra CFLAGS suitable for an embedded type of environment.
+ CFLAGS += -fno-builtin -msoft-float
++
++# Use our own set of stand alone headers to build firmware.
++#
++# Ideally using -ffreestanding should be enough, but that relies on the
++# compiler having the right order for include paths (ie: compiler private
++# headers before system ones) or the libc headers having proper arch-agnostic
++# freestanding support. This is not the case in Alpine at least which searches
++# system headers before compiler ones and has arch-specific libc headers. This
++# has been reported upstream:
++# https://gitlab.alpinelinux.org/alpine/aports/-/issues/12477
++# In the meantime (and for resilience against broken systems) use our own set
++# of headers that provide what's needed for the firmware build.
++CFLAGS += -nostdinc -I$(XEN_ROOT)/tools/firmware/include
+--
+2.25.1
+
diff --git a/recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch b/recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch
new file mode 100644
index 0000000..001b196
--- /dev/null
+++ b/recipes-extended/xen/files/0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch
@@ -0,0 +1,83 @@
+From 0eae016b6e3dce69e3fb86aca5c4f221591a2f12 Mon Sep 17 00:00:00 2001
+From: Andrew Cooper <andrew.cooper3@...>
+Date: Thu, 25 Feb 2021 19:15:08 +0000
+Subject: [PATCH] tools/firmware: Build firmware as -ffreestanding
+
+firmware should always have been -ffreestanding, as it doesn't execute in the
+host environment. -ffreestanding implies -fno-builtin, so replace the option.
+
+inttypes.h isn't a freestanding header, but the 32bitbios_support.c only wants
+the stdint.h types so switch to the more appropriate include.
+
+This removes the build time dependency on a 32bit libc just to compile the
+hvmloader and friends.
+
+Update README and the TravisCI configuration.
+
+Signed-off-by: Andrew Cooper <andrew.cooper3@...>
+Reviewed-by: Jan Beulich <jbeulich@...>
+Reviewed-by: Ian Jackson <iwj@...>
+Release-Acked-by: Ian Jackson <iwj@...>
+Applied to m-v Xen 4.14 series: Christopher Clark <christopher.w.clark@...>
+---
+ .travis.yml | 1 -
+ README | 3 ---
+ tools/firmware/Rules.mk | 2 +-
+ tools/firmware/hvmloader/32bitbios_support.c | 2 +-
+ 4 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 15ca9e9047..2362475f7a 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -58,7 +58,6 @@ addons:
+ - acpica-tools
+ - bin86
+ - bcc
+- - libc6-dev-i386
+ - libnl-3-dev
+ - ocaml-nox
+ - libfindlib-ocaml-dev
+diff --git a/README b/README
+index 6e15242ae1..8c99c30986 100644
+--- a/README
++++ b/README
+@@ -62,9 +62,6 @@ provided by your OS distributor:
+ * GNU bison and GNU flex
+ * GNU gettext
+ * ACPI ASL compiler (iasl)
+- * Libc multiarch package (e.g. libc6-dev-i386 / glibc-devel.i686).
+- Required when building on a 64-bit platform to build
+- 32-bit components which are enabled on a default build.
+
+ In addition to the above there are a number of optional build
+ prerequisites. Omitting these will cause the related features to be
+diff --git a/tools/firmware/Rules.mk b/tools/firmware/Rules.mk
+index cb388b7011..9f78a7dec9 100644
+--- a/tools/firmware/Rules.mk
++++ b/tools/firmware/Rules.mk
+@@ -16,7 +16,7 @@ CFLAGS += -Werror
+ $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
+
+ # Extra CFLAGS suitable for an embedded type of environment.
+-CFLAGS += -fno-builtin -msoft-float
++CFLAGS += -ffreestanding -msoft-float
+
+ # Use our own set of stand alone headers to build firmware.
+ #
+diff --git a/tools/firmware/hvmloader/32bitbios_support.c b/tools/firmware/hvmloader/32bitbios_support.c
+index 114135022e..ef681d4f57 100644
+--- a/tools/firmware/hvmloader/32bitbios_support.c
++++ b/tools/firmware/hvmloader/32bitbios_support.c
+@@ -20,7 +20,7 @@
+ * this program; If not, see <http://www.gnu.org/licenses/>.
+ */
+
+-#include <inttypes.h>
++#include <stdint.h>
+ #include <elf.h>
+ #ifdef __sun__
+ #include <sys/machelf.h>
+--
+2.25.1
+
diff --git a/recipes-extended/xen/xen-tools_4.14.bb b/recipes-extended/xen/xen-tools_4.14.bb
index a79b41d..10982a2 100644
--- a/recipes-extended/xen/xen-tools_4.14.bb
+++ b/recipes-extended/xen/xen-tools_4.14.bb
@@ -6,6 +6,8 @@ XEN_BRANCH ?= "stable-${XEN_REL}"
SRC_URI = " \
git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
file://0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch \
+ file://0001-firmware-provide-a-stand-alone-set-of-headers-Xen-4.14.patch \
+ file://0001-tools-firmware-Build-firmware-as-ffreestanding-Xen-4.14.patch \
"

LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
--
2.25.1


[hardknott][PATCH] containerd: fix CVE-2021-3121

Trevor Gamblin
 

The master branch contains an uprev for containerd that includes the
fix, so backport the patch separately for hardknott.

Tested by pulling a hello-world image with podman to
core-image-full-cmdline, with the following added to local.conf:

DISTRO_FEATURES_append = " systemd seccomp"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
NETWORK_MANAGER = "systemd"
IMAGE_ROOTFS_EXTRA_SPACE = "8192000"
PREFERRED_PROVIDER_virtual/containerd = "containerd-opencontainers"
IMAGE_INSTALL_append = " podman virtual/containerd"

Signed-off-by: Trevor Gamblin <trevor.gamblin@...>
---
.../containerd-opencontainers_git.bb | 1 +
.../containerd/files/CVE-2021-3121.patch | 4035 +++++++++++++++++
2 files changed, 4036 insertions(+)
create mode 100644 recipes-containers/containerd/files/CVE-2021-3121.patch

diff --git a/recipes-containers/containerd/containerd-opencontainers_git.bb b/recipes-containers/containerd/containerd-opencontainers_git.bb
index efa3626..9d33676 100644
--- a/recipes-containers/containerd/containerd-opencontainers_git.bb
+++ b/recipes-containers/containerd/containerd-opencontainers_git.bb
@@ -9,6 +9,7 @@ SRCREV = "33d90b72d1e44987118ac111d4f7a108d412099b"
SRC_URI = "git://github.com/containerd/containerd;branch=release/1.4 \
file://0001-build-use-oe-provided-GO-and-flags.patch \
file://0001-Add-build-option-GODEBUG-1.patch \
+ file://CVE-2021-3121.patch \
"

# Apache-2.0 for containerd
diff --git a/recipes-containers/containerd/files/CVE-2021-3121.patch b/recipes-containers/containerd/files/CVE-2021-3121.patch
new file mode 100644
index 0000000..1a2c0f4
--- /dev/null
+++ b/recipes-containers/containerd/files/CVE-2021-3121.patch
@@ -0,0 +1,4035 @@
+From 9bd7f1043ce566d4600a8c61cd45bc99b2b17e36 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <trevor.gamblin@...>
+Date: Tue, 20 Apr 2021 11:21:08 -0400
+Subject: [PATCH] CVE-2021-3121
+
+Backports the fix at https://github.com/containerd/containerd/commit/1423e919,
+but with extra refactors for pulled in from later versions to make the
+fix apply correctly.
+
+Upstream-Status: Backport
+CVE: CVE-2021-3121
+
+Signed-off-by: Trevor Gamblin <trevor.gamblin@...>
+---
+ src/import/api/events/container.pb.go | 22 +-
+ src/import/api/events/content.pb.go | 5 +-
+ src/import/api/events/image.pb.go | 19 +-
+ src/import/api/events/namespace.pb.go | 19 +-
+ src/import/api/events/snapshot.pb.go | 15 +-
+ src/import/api/events/task.pb.go | 55 +-
+ src/import/api/services/containers/v1/containers.pb.go | 64 +--
+ src/import/api/services/content/v1/content.pb.go | 94 +---
+ src/import/api/services/diff/v1/diff.pb.go | 24 +-
+ src/import/api/services/events/v1/events.pb.go | 20 +-
+ src/import/api/services/images/v1/images.pb.go | 52 +-
+ src/import/.../introspection/v1/introspection.pb.go | 22 +-
+ src/import/api/services/leases/v1/leases.pb.go | 59 +--
+ src/import/api/services/namespaces/v1/namespace.pb.go | 52 +-
+ src/import/api/services/snapshots/v1/snapshots.pb.go | 98 +---
+ src/import/api/services/tasks/v1/tasks.pb.go | 484 +++++++++++-------
+ src/import/api/services/ttrpc/events/v1/events.pb.go | 10 +-
+ src/import/api/services/version/v1/version.pb.go | 5 +-
+ src/import/api/types/descriptor.pb.go | 7 +-
+ src/import/api/types/metrics.pb.go | 5 +-
+ src/import/api/types/mount.pb.go | 5 +-
+ src/import/api/types/platform.pb.go | 5 +-
+ src/import/api/types/task/task.pb.go | 10 +-
+ src/import/runtime/linux/runctypes/runc.pb.go | 20 +-
+ src/import/runtime/v1/shim/v1/shim.pb.go | 100 +---
+ src/import/runtime/v2/runc/options/oci.pb.go | 15 +-
+ src/import/runtime/v2/task/shim.pb.go | 470 ++++++++++-------
+ src/import/.../protobuf/plugin/unmarshal/unmarshal.go | 16 +-
+ src/import/.../gogo/protobuf/proto/text_parser.go | 2 +-
+ src/import/.../github.com/gogo/protobuf/types/any.pb.go | 5 +-
+ src/import/.../github.com/gogo/protobuf/types/api.pb.go | 15 +-
+ src/import/.../gogo/protobuf/types/duration.pb.go | 5 +-
+ src/import/.../gogo/protobuf/types/empty.pb.go | 5 +-
+ src/import/.../gogo/protobuf/types/field_mask.pb.go | 5 +-
+ src/import/.../gogo/protobuf/types/source_context.pb.go | 5 +-
+ src/import/.../gogo/protobuf/types/struct.pb.go | 17 +-
+ src/import/.../gogo/protobuf/types/timestamp.pb.go | 5 +-
+ src/import/.../github.com/gogo/protobuf/types/type.pb.go | 25 +-
+ src/import/.../gogo/protobuf/types/wrappers.pb.go | 45 +-
+ 39 files changed, 773 insertions(+), 1133 deletions(-)
+
+diff --git a/src/import/api/events/container.pb.go b/src/import/api/events/container.pb.go
+index 0c1e0a939..fe002e073 100644
+--- a/src/import/api/events/container.pb.go
++++ b/src/import/api/events/container.pb.go
+@@ -835,10 +835,7 @@ func (m *ContainerCreate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainer
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainer
+ }
+ if (iNdEx + skippy) > l {
+@@ -957,10 +954,7 @@ func (m *ContainerCreate_Runtime) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainer
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainer
+ }
+ if (iNdEx + skippy) > l {
+@@ -1185,7 +1179,7 @@ func (m *ContainerUpdate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainer
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1234,10 +1228,7 @@ func (m *ContainerUpdate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainer
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainer
+ }
+ if (iNdEx + skippy) > l {
+@@ -1320,10 +1311,7 @@ func (m *ContainerDelete) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainer
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainer
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/events/content.pb.go b/src/import/api/events/content.pb.go
+index 959ea72d8..0a7ec9325 100644
+--- a/src/import/api/events/content.pb.go
++++ b/src/import/api/events/content.pb.go
+@@ -257,10 +257,7 @@ func (m *ContentDelete) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/events/image.pb.go b/src/import/api/events/image.pb.go
+index 13f60b017..747026945 100644
+--- a/src/import/api/events/image.pb.go
++++ b/src/import/api/events/image.pb.go
+@@ -697,7 +697,7 @@ func (m *ImageCreate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImage
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -714,10 +714,7 @@ func (m *ImageCreate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImage
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImage
+ }
+ if (iNdEx + skippy) > l {
+@@ -910,7 +907,7 @@ func (m *ImageUpdate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImage
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -927,10 +924,7 @@ func (m *ImageUpdate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImage
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImage
+ }
+ if (iNdEx + skippy) > l {
+@@ -1013,10 +1007,7 @@ func (m *ImageDelete) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImage
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImage
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/events/namespace.pb.go b/src/import/api/events/namespace.pb.go
+index 37c3b78cf..d406a987e 100644
+--- a/src/import/api/events/namespace.pb.go
++++ b/src/import/api/events/namespace.pb.go
+@@ -697,7 +697,7 @@ func (m *NamespaceCreate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -714,10 +714,7 @@ func (m *NamespaceCreate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -910,7 +907,7 @@ func (m *NamespaceUpdate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -927,10 +924,7 @@ func (m *NamespaceUpdate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+@@ -1013,10 +1007,7 @@ func (m *NamespaceDelete) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthNamespace
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthNamespace
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/events/snapshot.pb.go b/src/import/api/events/snapshot.pb.go
+index 539297004..bec25c3a7 100644
+--- a/src/import/api/events/snapshot.pb.go
++++ b/src/import/api/events/snapshot.pb.go
+@@ -548,10 +548,7 @@ func (m *SnapshotPrepare) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshot
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshot
+ }
+ if (iNdEx + skippy) > l {
+@@ -666,10 +663,7 @@ func (m *SnapshotCommit) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshot
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshot
+ }
+ if (iNdEx + skippy) > l {
+@@ -752,10 +746,7 @@ func (m *SnapshotRemove) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthSnapshot
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthSnapshot
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/events/task.pb.go b/src/import/api/events/task.pb.go
+index 0f16695e3..f8f3a3f3d 100644
+--- a/src/import/api/events/task.pb.go
++++ b/src/import/api/events/task.pb.go
+@@ -1905,10 +1905,7 @@ func (m *TaskCreate) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2010,10 +2007,7 @@ func (m *TaskStart) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2199,10 +2193,7 @@ func (m *TaskDelete) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2369,10 +2360,7 @@ func (m *TaskIO) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2558,10 +2546,7 @@ func (m *TaskExit) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2644,10 +2629,7 @@ func (m *TaskOOM) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2762,10 +2744,7 @@ func (m *TaskExecAdded) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2899,10 +2878,7 @@ func (m *TaskExecStarted) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -2985,10 +2961,7 @@ func (m *TaskPaused) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -3071,10 +3044,7 @@ func (m *TaskResumed) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+@@ -3189,10 +3159,7 @@ func (m *TaskCheckpointed) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthTask
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTask
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/containers/v1/containers.pb.go b/src/import/api/services/containers/v1/containers.pb.go
+index d951b2683..af56c7de2 100644
+--- a/src/import/api/services/containers/v1/containers.pb.go
++++ b/src/import/api/services/containers/v1/containers.pb.go
+@@ -2106,7 +2106,7 @@ func (m *Container) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -2469,7 +2469,7 @@ func (m *Container) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -2486,10 +2486,7 @@ func (m *Container) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2608,10 +2605,7 @@ func (m *Container_Runtime) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2694,10 +2688,7 @@ func (m *GetContainerRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2781,10 +2772,7 @@ func (m *GetContainerResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2867,10 +2855,7 @@ func (m *ListContainersRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -2955,10 +2940,7 @@ func (m *ListContainersResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -3042,10 +3024,7 @@ func (m *CreateContainerRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -3129,10 +3108,7 @@ func (m *CreateContainerResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -3252,10 +3228,7 @@ func (m *UpdateContainerRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -3339,10 +3312,7 @@ func (m *UpdateContainerResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -3425,10 +3395,7 @@ func (m *DeleteContainerRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+@@ -3515,10 +3482,7 @@ func (m *ListContainerMessage) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContainers
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContainers
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/content/v1/content.pb.go b/src/import/api/services/content/v1/content.pb.go
+index 1cf0aaa91..97c7d4a92 100644
+--- a/src/import/api/services/content/v1/content.pb.go
++++ b/src/import/api/services/content/v1/content.pb.go
+@@ -3280,7 +3280,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -3297,10 +3297,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3383,10 +3380,7 @@ func (m *InfoRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3470,10 +3464,7 @@ func (m *InfoResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3593,10 +3584,7 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3680,10 +3668,7 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3766,10 +3751,7 @@ func (m *ListContentRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3854,10 +3836,7 @@ func (m *ListContentResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -3940,10 +3919,7 @@ func (m *DeleteContentRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4064,10 +4040,7 @@ func (m *ReadContentRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4171,10 +4144,7 @@ func (m *ReadContentResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4393,10 +4363,7 @@ func (m *Status) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4479,10 +4446,7 @@ func (m *StatusRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4569,10 +4533,7 @@ func (m *StatusResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4655,10 +4616,7 @@ func (m *ListStatusesRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -4743,10 +4701,7 @@ func (m *ListStatusesResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -5062,7 +5017,7 @@ func (m *WriteContentRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -5079,10 +5034,7 @@ func (m *WriteContentRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -5288,10 +5240,7 @@ func (m *WriteContentResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+@@ -5374,10 +5323,7 @@ func (m *AbortRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthContent
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthContent
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/diff/v1/diff.pb.go b/src/import/api/services/diff/v1/diff.pb.go
+index 48379234d..b1450ceb8 100644
+--- a/src/import/api/services/diff/v1/diff.pb.go
++++ b/src/import/api/services/diff/v1/diff.pb.go
+@@ -1063,7 +1063,7 @@ func (m *ApplyRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDiff
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1080,10 +1080,7 @@ func (m *ApplyRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthDiff
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDiff
+ }
+ if (iNdEx + skippy) > l {
+@@ -1170,10 +1167,7 @@ func (m *ApplyResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthDiff
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDiff
+ }
+ if (iNdEx + skippy) > l {
+@@ -1466,7 +1460,7 @@ func (m *DiffRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDiff
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1483,10 +1477,7 @@ func (m *DiffRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthDiff
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDiff
+ }
+ if (iNdEx + skippy) > l {
+@@ -1573,10 +1564,7 @@ func (m *DiffResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthDiff
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthDiff
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/events/v1/events.pb.go b/src/import/api/services/events/v1/events.pb.go
+index a1674f862..4373f3bf2 100644
+--- a/src/import/api/services/events/v1/events.pb.go
++++ b/src/import/api/services/events/v1/events.pb.go
+@@ -916,10 +916,7 @@ func (m *PublishRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthEvents
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+@@ -1006,10 +1003,7 @@ func (m *ForwardRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthEvents
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+@@ -1092,10 +1086,7 @@ func (m *SubscribeRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthEvents
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+@@ -1279,10 +1270,7 @@ func (m *Envelope) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthEvents
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/images/v1/images.pb.go b/src/import/api/services/images/v1/images.pb.go
+index db912b68b..de08cc083 100644
+--- a/src/import/api/services/images/v1/images.pb.go
++++ b/src/import/api/services/images/v1/images.pb.go
+@@ -1707,7 +1707,7 @@ func (m *Image) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1823,10 +1823,7 @@ func (m *Image) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -1909,10 +1906,7 @@ func (m *GetImageRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -1999,10 +1993,7 @@ func (m *GetImageResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2086,10 +2077,7 @@ func (m *CreateImageRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2173,10 +2161,7 @@ func (m *CreateImageResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2296,10 +2281,7 @@ func (m *UpdateImageRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2383,10 +2365,7 @@ func (m *UpdateImageResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2469,10 +2448,7 @@ func (m *ListImagesRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2557,10 +2533,7 @@ func (m *ListImagesResponse) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+@@ -2663,10 +2636,7 @@ func (m *DeleteImageRequest) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthImages
+- }
+- if (iNdEx + skippy) < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthImages
+ }
+ if (iNdEx + skippy) > l {
+diff --git a/src/import/api/services/introspection/v1/introspection.pb.go b/src/import/api/services/introspection/v1/introspection.pb.go
+index b9f912b09..d23c8b61a 100644
+--- a/src/import/api/services/introspection/v1/introspection.pb.go
++++ b/src/import/api/services/introspection/v1/introspection.pb.go
+@@ -1098,7 +1098,7 @@ func (m *Plugin) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
++ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthIntrospection
+ }
+ if (iNdEx + skippy) > postIndex {
+@@ -1183,10 +1183,7 @@ func (m *Plugin) Unmarshal(dAtA []byte) error {
+ if err != nil {
+ return err
+ }
+- if skippy < 0 {
+- return ErrInvalidLengthIntrospection
+- }
+- if (iNdEx + skippy) < 0 {