File 5a3ffe64600aeef84c239b70679ca0e0c3e97307.patch of Package brasero.38350
From 5a3ffe64600aeef84c239b70679ca0e0c3e97307 Mon Sep 17 00:00:00 2001
From: sid <sidtosh4@gmail.com>
Date: Thu, 23 May 2024 20:02:22 +0100
Subject: [PATCH] Prefer 'application/vnd.efi.iso' to 'application/x-cd-image'
mime for ISO images
This is due to recent ISO mime change in 'shared-mime-info' v2.3, which
replaced 'application/x-cd-image' with 'application/vnd.efi.iso' mime
for ISO images. So, GIO returns 'application/vnd.efi.iso' as mime for
ISO images, and brasero doesn't know 'application/vnd.efi.iso' mime.
$ gio info NetBSD-9.4-amd64.iso | grep vnd
standard::icon: application-vnd.efi.iso, media-optical, application-vnd.efi.iso-symbolic, media-optical-symbolic
standard::content-type: application/vnd.efi.iso
standard::fast-content-type: application/vnd.efi.iso
standard::symbolic-icon: application-vnd.efi.iso-symbolic, media-optical-symbolic, application-vnd.efi.iso, media-optical
'application/x-cd-image' still is an alias for 'application/vnd.efi.iso' in
'shared-mime-info'. So the old mime still works fine in GtkRecent code
which handles this correctly.
Refer: https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/220
Fixes: https://gitlab.gnome.org/GNOME/brasero/-/issues/375
---
libbrasero-burn/brasero-data-vfs.c | 1 +
libbrasero-burn/brasero-track-image-cfg.c | 3 ++-
libbrasero-utils/brasero-io.c | 1 +
nautilus/nautilus-burn-extension.c | 1 +
src/brasero-app.c | 2 ++
src/brasero-project-type-chooser.c | 1 +
6 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/libbrasero-burn/brasero-data-vfs.c b/libbrasero-burn/brasero-data-vfs.c
index c008e7047..96bd8fe7c 100644
--- a/libbrasero-burn/brasero-data-vfs.c
+++ b/libbrasero-burn/brasero-data-vfs.c
@@ -608,6 +608,7 @@ brasero_data_vfs_loading_node_result (GObject *owner,
&& (!strcmp (g_file_info_get_content_type (info), "application/x-toc")
|| !strcmp (g_file_info_get_content_type (info), "application/x-cdrdao-toc")
|| !strcmp (g_file_info_get_content_type (info), "application/x-cue")
+ || !strcmp (g_file_info_get_content_type (info), "application/vnd.efi.iso")
|| !strcmp (g_file_info_get_content_type (info), "application/x-cd-image"))) {
BraseroBurnResult result;
diff --git a/libbrasero-burn/brasero-track-image-cfg.c b/libbrasero-burn/brasero-track-image-cfg.c
index e065fb3fd..a4b4f5cbf 100644
--- a/libbrasero-burn/brasero-track-image-cfg.c
+++ b/libbrasero-burn/brasero-track-image-cfg.c
@@ -198,7 +198,8 @@ brasero_track_image_cfg_get_info_thread (GSimpleAsyncResult *result,
else
info->format = BRASERO_IMAGE_FORMAT_BIN;
}
- else if (mime && !strcmp (mime, "application/x-cd-image"))
+ else if (mime && (!strcmp (mime, "application/x-cd-image") ||
+ (!strcmp (mime, "application/vnd.efi.iso"))))
info->format = BRASERO_IMAGE_FORMAT_BIN;
g_object_unref (file_info);
diff --git a/libbrasero-utils/brasero-io.c b/libbrasero-utils/brasero-io.c
index 5619359dd..70fde05ba 100644
--- a/libbrasero-utils/brasero-io.c
+++ b/libbrasero-utils/brasero-io.c
@@ -1041,6 +1041,7 @@ brasero_io_get_metadata_info (BraseroIO *self,
&& (!strncmp (mime, "image/", 6)
|| !strcmp (mime, "text/plain")
|| !strcmp (mime, "application/x-cue") /* this one make gstreamer crash */
+ || !strcmp (mime, "application/vnd.efi.iso")
|| !strcmp (mime, "application/x-cd-image")))
return FALSE;
diff --git a/nautilus/nautilus-burn-extension.c b/nautilus/nautilus-burn-extension.c
index 3be8e5fac..758d5248f 100644
--- a/nautilus/nautilus-burn-extension.c
+++ b/nautilus/nautilus-burn-extension.c
@@ -560,6 +560,7 @@ nautilus_disc_burn_get_file_items (NautilusMenuProvider *provider,
}
is_iso = (strcmp (mime_type, "application/x-iso-image") == 0)
+ || (strcmp (mime_type, "application/vnd.efi.iso") == 0)
|| (strcmp (mime_type, "application/x-cd-image") == 0)
|| (strcmp (mime_type, "application/x-cue") == 0)
|| (strcmp (mime_type, "application/x-toc") == 0)
diff --git a/src/brasero-app.c b/src/brasero-app.c
index bae2e8e4d..7f8f8b9a4 100644
--- a/src/brasero-app.c
+++ b/src/brasero-app.c
@@ -1373,6 +1373,7 @@ brasero_app_open_by_mime (BraseroApp *app,
#endif
else if (!strcmp (mime, "application/x-cd-image")
+ || !strcmp (mime, "application/vnd.efi.iso")
|| !strcmp (mime, "application/x-cdrdao-toc")
|| !strcmp (mime, "application/x-toc")
|| !strcmp (mime, "application/x-cue")) {
@@ -1738,6 +1739,7 @@ brasero_app_add_recent (BraseroApp *app,
gtk_recent_filter_set_name (filter, _("_Recent Projects"));
gtk_recent_filter_add_mime_type (filter, "application/x-brasero");
+ gtk_recent_filter_add_mime_type (filter, "application/vnd.efi.iso");
gtk_recent_filter_add_mime_type (filter, "application/x-cd-image");
gtk_recent_filter_add_mime_type (filter, "application/x-cdrdao-toc");
gtk_recent_filter_add_mime_type (filter, "application/x-toc");
diff --git a/src/brasero-project-type-chooser.c b/src/brasero-project-type-chooser.c
index eff1f114f..1d7b93f22 100644
--- a/src/brasero-project-type-chooser.c
+++ b/src/brasero-project-type-chooser.c
@@ -253,6 +253,7 @@ brasero_project_type_chooser_build_recent (BraseroProjectTypeChooser *self,
/* filter those we want */
if (strcmp (mime, "application/x-brasero")
+ && strcmp (mime, "application/vnd.efi.iso")
&& strcmp (mime, "application/x-cd-image")
&& strcmp (mime, "application/x-cdrdao-toc")
&& strcmp (mime, "application/x-toc")
--
GitLab