summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2019-06-13 12:45:09 +0200
committerAtomic Bot <atomic-devel@projectatomic.io>2019-09-06 12:49:40 +0000
commit45e31735f1fb325e85324cf0bd4e0bf57a565c88 (patch)
treea8a6b150c3aa5009eca89a4e772fd18b1cb04699
parent37533ed315977dfd9e5d2141f6f5850eeed2b46e (diff)
downloadflatpak-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.c4
-rw-r--r--common/flatpak-utils-http.c6
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)
{