Improve ISO detection mechanism
Upstream commit: 71cf18b07b830f7966db Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
This commit is contained in:
		
							parent
							
								
									465459b048
								
							
						
					
					
						commit
						86f8b9e50e
					
				| @ -0,0 +1,51 @@ | ||||
| From 71cf18b07b830f7966dbd6b6705c0f9cddb5c587 Mon Sep 17 00:00:00 2001 | ||||
| From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= <fidencio@redhat.com> | ||||
| Date: Tue, 5 Nov 2019 15:56:28 +0100 | ||||
| Subject: [PATCH] db: Take the media's volume size into account when sorting | ||||
|  the medias | ||||
| MIME-Version: 1.0 | ||||
| Content-Type: text/plain; charset=UTF-8 | ||||
| Content-Transfer-Encoding: 8bit | ||||
| 
 | ||||
| If volume-size is not taken into account, when dealing with identical | ||||
| ISOs, we may end up wrongly matching an entry that has its volume-size | ||||
| with one which doesn't have the value, simply because the one which does | ||||
| not have the value may be declared first the in XML entry. | ||||
| 
 | ||||
| Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> | ||||
| Reviewed-by; Daniel P. Berrangé <berrange@redhat.com> | ||||
| ---
 | ||||
|  osinfo/osinfo_db.c | 14 ++++++++++++-- | ||||
|  1 file changed, 12 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/osinfo/osinfo_db.c b/osinfo/osinfo_db.c
 | ||||
| index 328b251a..e2845df2 100644
 | ||||
| --- a/osinfo/osinfo_db.c
 | ||||
| +++ b/osinfo/osinfo_db.c
 | ||||
| @@ -538,11 +538,21 @@ static gint media_volume_compare(gconstpointer a, gconstpointer b)
 | ||||
|          /* Order doesn't matter then */ | ||||
|          return 0; | ||||
|   | ||||
| -    if (strstr(volume_a, volume_b) != NULL)
 | ||||
| +    if (strstr(volume_a, volume_b) != NULL) {
 | ||||
| +        gint64 volume_size_a = osinfo_media_get_volume_size(media_a);
 | ||||
| +        gint64 volume_size_b = osinfo_media_get_volume_size(media_b);
 | ||||
| +
 | ||||
| +        if (volume_size_a != -1 && volume_size_b == -1)
 | ||||
| +            return -1;
 | ||||
| +
 | ||||
| +        if (volume_size_b != -1 && volume_size_a == -1)
 | ||||
| +            return 1;
 | ||||
| +
 | ||||
|          return -1; | ||||
| -    else
 | ||||
| +    } else {
 | ||||
|          /* Sub-string comes later */ | ||||
|          return 1; | ||||
| +    }
 | ||||
|  } | ||||
|   | ||||
|  static gboolean compare_media(OsinfoMedia *media, | ||||
| -- 
 | ||||
| 2.23.0 | ||||
| 
 | ||||
| @ -3,12 +3,13 @@ | ||||
| Summary: A library for managing OS information for virtualization | ||||
| Name: libosinfo | ||||
| Version: 1.6.0 | ||||
| Release: 1%{?dist}%{?extra_release} | ||||
| Release: 2%{?dist}%{?extra_release} | ||||
| License: LGPLv2+ | ||||
| Source: https://releases.pagure.io/%{name}/%{name}-%{version}.tar.gz | ||||
| URL: https://libosinfo.org/ | ||||
| 
 | ||||
| ### Patches ### | ||||
| Patch0001: 0001-db-Take-the-media-s-volume-size-into-account-when-so.patch | ||||
| 
 | ||||
| BuildRequires: gettext-devel | ||||
| BuildRequires: glib2-devel | ||||
| @ -98,6 +99,9 @@ fi | ||||
| %{_datadir}/vala/vapi/libosinfo-1.0.vapi | ||||
| 
 | ||||
| %changelog | ||||
| * Fri Nov 08 2019 Fabiano Fidêncio <fidencio@redhat.com> - 1.6.0-2 | ||||
| - Improve ISO detection mechanism | ||||
| 
 | ||||
| * Fri Jul 26 2019 Fabiano Fidêncio <fidencio@redhat.com> - 1.6.0-1 | ||||
| - Update to 1.6.0 release | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user