Libgsf: add read support for zip64 property

This commit is contained in:
Sagi Lowenhardt
2021-12-06 15:10:31 +02:00
parent 5c37656fe2
commit 539bc5631e
2 changed files with 83 additions and 1 deletions

View File

@@ -0,0 +1,79 @@
From 154ea8a3ad73310e1bc33b2f4c29c89d452e6001 Mon Sep 17 00:00:00 2001
From: Morten Welinder <terra@gnome.org>
Date: Thu, 2 Dec 2021 19:10:18 -0500
Subject: [PATCH] Zip: make "zip64" readable for GsfInfileZip.
---
ChangeLog | 5 +++++
NEWS | 3 +++
gsf/gsf-infile-zip.c | 13 +++++++++++++
3 files changed, 21 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index f020c71..fb83f48 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2021-12-02 Morten Welinder <terra@gnome.org>
+
+ * gsf/gsf-infile-zip.c (gsf_infile_zip_get_property): Add "zip64"
+ property.
+
2020-03-23 Morten Welinder <terra@gnome.org>
* configure.ac: Post-release bump.
diff --git a/NEWS b/NEWS
index 2c3c986..01115c3 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,9 @@ libgsf 1.14.48
Greg Hellings:
* Fix win32 build.
+Morten:
+ * Add "zip64" readable property of GsfInfileZip.
+
--------------------------------------------------------------------------
libgsf 1.14.47
diff --git a/gsf/gsf-infile-zip.c b/gsf/gsf-infile-zip.c
index b7342ec..ae2ffe0 100644
--- a/gsf/gsf-infile-zip.c
+++ b/gsf/gsf-infile-zip.c
@@ -38,6 +38,7 @@ enum {
PROP_SOURCE,
PROP_COMPRESSION_LEVEL,
PROP_INTERNAL_PARENT,
+ PROP_ZIP64
};
static GObjectClass *parent_class;
@@ -886,6 +887,9 @@ gsf_infile_zip_get_property (GObject *object,
? zip->vdir->dirent->compr_method
: 0);
break;
+ case PROP_ZIP64:
+ g_value_set_boolean (value, zip->zip64);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -972,6 +976,15 @@ gsf_infile_zip_class_init (GObjectClass *gobject_class)
G_PARAM_STATIC_STRINGS |
G_PARAM_WRITABLE |
G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property
+ (gobject_class,
+ PROP_ZIP64,
+ g_param_spec_boolean ("zip64",
+ _("Zip64"),
+ _("Whether zip64 is being used"),
+ FALSE,
+ G_PARAM_STATIC_STRINGS |
+ G_PARAM_READABLE));
}
GSF_CLASS (GsfInfileZip, gsf_infile_zip,
--
2.30.1.windows.1

View File

@@ -4,7 +4,7 @@ _realname=libgsf
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.14.47
pkgrel=2
pkgrel=3
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
pkgdesc="An extensible I/O abstraction library for dealing with structured file formats (mingw-w64)"
@@ -19,14 +19,17 @@ options=('strip' 'staticlibs')
license=('GPL' 'LGPL')
url="https://gitlab.gnome.org/GNOME/libgsf.git"
source=(https://download.gnome.org/sources/${_realname}/${pkgver%.*}/${_realname}-${pkgver}.tar.xz
003-Zip-make-zip64-readable-for-GsfInfileZip.patch
002-get-unix-path-for-git.patch
fix-windows-build.patch)
sha256sums=('d188ebd3787b5375a8fd38ee6f761a2007de5e98fa0cf5623f271daa67ba774d'
'5b4a971092afe26f0e6e493515b86292ed6f4f46003d860941445bf8e45bd579'
'f08db8333d2b4a369737a77969b5896d408a4d9992fab6f1c9c44ddeae25c516'
'10d2c40cae20af1591777c387e6c2534ca8343e0f656ac1c07970a72911e5748')
prepare() {
cd ${_realname}-${pkgver}
patch -b -V simple -p1 -i ${srcdir}/003-Zip-make-zip64-readable-for-GsfInfileZip.patch
patch -b -V simple -p1 -i ${srcdir}/002-get-unix-path-for-git.patch
# upstream fix: https://gitlab.gnome.org/GNOME/libgsf/-/commit/8441d5863cb90ed48199d6976bc6e2fcfbe3365a
patch -Np1 -i "${srcdir}/fix-windows-build.patch"