diff options
author | Alexander Larsson <alexl@redhat.com> | 2019-06-13 12:45:09 +0200 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2019-09-06 12:49:40 +0000 |
commit | 45e31735f1fb325e85324cf0bd4e0bf57a565c88 (patch) | |
tree | a8a6b150c3aa5009eca89a4e772fd18b1cb04699 | |
parent | 37533ed315977dfd9e5d2141f6f5850eeed2b46e (diff) | |
download | flatpak-45e31735f1fb325e85324cf0bd4e0bf57a565c88.tar.gz |
OCI: Accept docker v2 manifests as well as OCI manifests
Closes: #2978
Approved by: alexlarsson
-rw-r--r-- | common/flatpak-json-oci.c | 4 | ||||
-rw-r--r-- | common/flatpak-utils-http.c | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/common/flatpak-json-oci.c b/common/flatpak-json-oci.c index 9cd157e2..15a3b6ab 100644 --- a/common/flatpak-json-oci.c +++ b/common/flatpak-json-oci.c @@ -198,7 +198,9 @@ flatpak_oci_versioned_from_json (GBytes *bytes, GError **error) return NULL; } - if (strcmp (mediatype, FLATPAK_OCI_MEDIA_TYPE_IMAGE_MANIFEST) == 0) + /* The docker v2 image manifest is similar enough that we can just load it, it does not have the annotation field though */ + if (strcmp (mediatype, FLATPAK_OCI_MEDIA_TYPE_IMAGE_MANIFEST) == 0 || + strcmp (mediatype, FLATPAK_DOCKER_MEDIA_TYPE_IMAGE_MANIFEST2) == 0) return (FlatpakOciVersioned *) flatpak_json_from_node (root, FLATPAK_TYPE_OCI_MANIFEST, error); if (strcmp (mediatype, FLATPAK_OCI_MEDIA_TYPE_IMAGE_INDEX) == 0) diff --git a/common/flatpak-utils-http.c b/common/flatpak-utils-http.c index 8155a88f..fde7be1e 100644 --- a/common/flatpak-utils-http.c +++ b/common/flatpak-utils-http.c @@ -548,7 +548,7 @@ flatpak_load_http_uri (SoupSession *soup_session, if (flags & FLATPAK_HTTP_FLAGS_ACCEPT_OCI) soup_message_headers_replace (m->request_headers, "Accept", - "application/vnd.oci.image.manifest.v1+json"); + FLATPAK_OCI_MEDIA_TYPE_IMAGE_MANIFEST ", " FLATPAK_DOCKER_MEDIA_TYPE_IMAGE_MANIFEST2); soup_request_send_async (SOUP_REQUEST (request), cancellable, @@ -604,7 +604,7 @@ flatpak_download_http_uri (SoupSession *soup_session, m = soup_request_http_get_message (request); if (flags & FLATPAK_HTTP_FLAGS_ACCEPT_OCI) soup_message_headers_replace (m->request_headers, "Accept", - "application/vnd.oci.image.manifest.v1+json"); + FLATPAK_OCI_MEDIA_TYPE_IMAGE_MANIFEST ", " FLATPAK_DOCKER_MEDIA_TYPE_IMAGE_MANIFEST2); soup_request_send_async (SOUP_REQUEST (request), cancellable, @@ -744,7 +744,7 @@ flatpak_cache_http_uri (SoupSession *soup_session, if (flags & FLATPAK_HTTP_FLAGS_ACCEPT_OCI) soup_message_headers_replace (m->request_headers, "Accept", - "application/vnd.oci.image.manifest.v1+json"); + FLATPAK_OCI_MEDIA_TYPE_IMAGE_MANIFEST ", " FLATPAK_DOCKER_MEDIA_TYPE_IMAGE_MANIFEST2); if (flags & FLATPAK_HTTP_FLAGS_STORE_COMPRESSED) { |