OCI: Accept docker v2 manifests as well as OCI manifests

Closes: #2978
Approved by: alexlarsson
This commit is contained in:
Alexander Larsson 2019-06-13 12:45:09 +02:00 committed by Atomic Bot
parent 37533ed315
commit 45e31735f1
2 changed files with 6 additions and 4 deletions

View File

@ -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)

View File

@ -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)
{