diff --git a/0001-gcab-Fix-regression-from-commit-a15d91073fd5d6be25.patch b/0001-gcab-Fix-regression-from-commit-a15d91073fd5d6be25.patch new file mode 100644 index 0000000..4f02701 --- /dev/null +++ b/0001-gcab-Fix-regression-from-commit-a15d91073fd5d6be25.patch @@ -0,0 +1,51 @@ +From 3365b4bd58dd7f13e786caf3c7234cf8116263d9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= +Date: Wed, 25 Jul 2018 12:45:24 +0200 +Subject: [PATCH] gcab: Fix regression from commit a15d91073fd5d6be25 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Apparently, rewinding should reset the CDATA state. + +See also: +https://bugzilla.redhat.com/show_bug.cgi?id=1608301 + +Signed-off-by: Marc-André Lureau +--- + libgcab/gcab-folder.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/libgcab/gcab-folder.c b/libgcab/gcab-folder.c +index 1b09fa3..c0d6600 100644 +--- a/libgcab/gcab-folder.c ++++ b/libgcab/gcab-folder.c +@@ -423,6 +423,7 @@ gcab_folder_extract (GCabFolder *self, + g_autoptr(GSList) files = NULL; + g_autoptr(cdata_t) cdata = g_new0 (cdata_t, 1); + guint32 nubytes = 0; ++ guint8 *reserved; + + /* never loaded from a stream */ + g_assert (self->cfolder != NULL); +@@ -433,7 +434,7 @@ gcab_folder_extract (GCabFolder *self, + files = g_slist_sort (g_slist_copy (self->files), (GCompareFunc)sort_by_offset); + + /* this is allocated for every block, but currently unused */ +- cdata->reserved = g_malloc (res_data); ++ cdata->reserved = reserved = g_malloc (res_data); + + for (f = files; f != NULL; f = f->next) { + GCabFile *file = f->data; +@@ -454,6 +455,8 @@ gcab_folder_extract (GCabFolder *self, + if (!g_seekable_seek (G_SEEKABLE (data), self->cfolder->offsetdata, + G_SEEK_SET, cancellable, error)) + return FALSE; ++ bzero(cdata, sizeof(cdata_t)); ++ cdata->reserved = reserved; + nubytes = 0; + } + +-- +2.18.0.321.gffc6fa0e39 + diff --git a/gcab-1.1.tar.xz b/gcab-1.1.tar.xz new file mode 100644 index 0000000..426a36a Binary files /dev/null and b/gcab-1.1.tar.xz differ diff --git a/gcab.spec b/gcab.spec new file mode 100644 index 0000000..369eed1 --- /dev/null +++ b/gcab.spec @@ -0,0 +1,70 @@ +Name: gcab +Version: 1.1 +Release: 4 +Summary: A GObject library to create cabinet files +License: LGPLv2+ +URL: http://ftp.gnome.org/pub/GNOME/sources/gcab +Source0: http://ftp.gnome.org/pub/GNOME/sources/%{name}/%{version}/%{name}-%{version}.tar.xz + +Patch1: 0001-gcab-Fix-regression-from-commit-a15d91073fd5d6be25.patch + +BuildRequires: meson zlib-devel gobject-introspection-devel glib2-devel +BuildRequires: gettext gtk-doc vala + +Obsoletes: libgcab1 < %{version}-%{release} +Provides: libgcab1 = %{version}-%{release} + +%description +Gcab is a gobject library to create cabinet files. + +%package devel +Summary: Development files for %{name} +Requires: %{name} = %{version}-%{release} +Requires: glib2-devel pkgconfig + +Obsoletes: libgcab1-devel +Provides: libgcab1-devel + +%description devel +This package contains the development files for %{name}. + +%package_help + +%prep +%autosetup -n %{name}-%{version} -p1 + +%build +%meson +%meson_build + +%install +%meson_install + +%find_lang %{name} + +%check +%meson_test + +%ldconfig_scriptlets -n gcab + +%files -f %{name}.lang +%license COPYING +%{_bindir}/%{name} +%{_libdir}/*/GCab-1.0.typelib +%{_libdir}/lib%{name}*.so.* + +%files devel +%{_includedir}/libgcab-1.0/* +%{_libdir}/lib%{name}*.so +%{_libdir}/pkgconfig/*.pc +%{_datadir}/gir-1.0/GCab-1.0.gir +%{_datadir}/gtk-doc/html/%{name}/* +%{_datadir}/vala/*/lib%{name}-1.0* + +%files help +%doc NEWS README.md +%{_mandir}/man1/gcab.1* + +%changelog +* Mon Nov 25 2019 openEuler Buildteam - 1.1-4 +- Package init