Browse Source

Contribs: update libarchive to 3.5.1

pull/121/head
Jean-Baptiste Kempf 5 years ago
parent
commit
4928e31b37
  1. 26
      contrib/src/libarchive/0001-Fix-retrieving-incorrect-member-from-struct-statfs.patch
  2. 44
      contrib/src/libarchive/0005-don-t-force-windows-versions-if-they-are-set-in-the-.patch
  3. 2
      contrib/src/libarchive/SHA512SUMS
  4. 43
      contrib/src/libarchive/fix-types.patch
  5. 5
      contrib/src/libarchive/rules.mak
  6. 32
      contrib/src/libarchive/winrt.patch

26
contrib/src/libarchive/0001-Fix-retrieving-incorrect-member-from-struct-statfs.patch

@ -1,26 +0,0 @@
From 9b9e4ff23fa528d831f22d62d072db990b862a62 Mon Sep 17 00:00:00 2001
From: Martin Matuska <martin@matuska.org>
Date: Thu, 30 Apr 2020 03:46:05 +0200
Subject: [PATCH] Fix retrieving incorrect member from struct statfs
Fixes #1355
---
libarchive/archive_read_disk_posix.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libarchive/archive_read_disk_posix.c b/libarchive/archive_read_disk_posix.c
index 52fec7bb..95a8087a 100644
--- a/libarchive/archive_read_disk_posix.c
+++ b/libarchive/archive_read_disk_posix.c
@@ -1840,7 +1840,7 @@ setup_current_filesystem(struct archive_read_disk *a)
#if defined(HAVE_STATVFS)
if (svfs.f_flag & ST_NOATIME)
#else
- if (sfs.f_flag & ST_NOATIME)
+ if (sfs.f_flags & ST_NOATIME)
#endif
t->current_filesystem->noatime = 1;
else
--
2.26.0.windows.1

44
contrib/src/libarchive/0005-don-t-force-windows-versions-if-they-are-set-in-the-.patch

@ -1,44 +0,0 @@
From a4fa6bef8bdb141d629d79d8d1f3e67448bd67e1 Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Thu, 2 Apr 2020 15:33:40 +0200
Subject: [PATCH 5/5] don't force windows versions if they are set in the
environment
---
configure.ac | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 7312c4d5..05ca4955 100644
--- a/configure.ac
+++ b/configure.ac
@@ -244,9 +244,23 @@ AM_CONDITIONAL([STATIC_BSDCPIO], [ test "$static_bsdcpio" = yes ])
# Set up defines needed before including any headers
case $host in
*mingw* | *cygwin* | *msys* )
- AC_DEFINE([_WIN32_WINNT], 0x0502, [Define to '0x0502' for Windows Server 2003 APIs.])
- AC_DEFINE([WINVER], 0x0502, [Define to '0x0502' for Windows Server 2003 APIs.])
- AC_DEFINE([NTDDI_VERSION], 0x05020000, [Define to '0x05020000' for Windows Server 2003 APIs.])
+ AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
+ [[#ifdef _WIN32_WINNT
+ # error _WIN32_WINNT already defined
+ #endif
+ ]],[[;]])
+ ],[
+ AC_DEFINE([_WIN32_WINNT], 0x0502, [Define to '0x0502' for Windows Server 2003 APIs.])
+ AC_DEFINE([NTDDI_VERSION], 0x05020000, [Define to '0x05020000' for Windows Server 2003 APIs.])
+ ])
+ AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
+ [[#ifdef WINVER
+ # error WINVER already defined
+ #endif
+ ]],[[;]])
+ ],[
+ AC_DEFINE([WINVER], 0x0502, [Define to '0x0502' for Windows Server 2003 APIs.])
+ ])
;;
esac
--
2.26.0.windows.1

2
contrib/src/libarchive/SHA512SUMS

@ -1 +1 @@
a8922e54f2e985889d205ee8a0594c1d30dad950438b602a5be6bb1b274a735ad20a48ed484efd458013a0810d26ee4ae76e3a6c820823243d24ea0593ed7021 libarchive-3.4.2.tar.gz
08ddd74bef4cef0981739da202879f36cf7ca33a8f6d438724588efe3ab8477f2f1d0cccf7b8ed0bedfc0c8d0cab16ee3ae5c0c6e83b6811bc650d7d7471a996 libarchive-3.5.1.tar.gz

43
contrib/src/libarchive/fix-types.patch

@ -1,43 +0,0 @@
From 93a8b303904e40261ac58fbd95eb338d6b9cb1df Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Fri, 27 Mar 2020 16:26:07 +0100
Subject: [PATCH 2/4] archive_entry: use the proper define for mode_t
---
libarchive/archive_entry.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libarchive/archive_entry.c b/libarchive/archive_entry.c
index 72c644e6..7afec1b1 100644
--- a/libarchive/archive_entry.c
+++ b/libarchive/archive_entry.c
@@ -353,7 +353,7 @@ archive_entry_devminor(struct archive_entry *entry)
return minor(entry->ae_stat.aest_dev);
}
-mode_t
+__LA_MODE_T
archive_entry_filetype(struct archive_entry *entry)
{
return (AE_IFMT & entry->acl.mode);
@@ -525,7 +525,7 @@ archive_entry_ino64(struct archive_entry *entry)
return (entry->ae_stat.aest_ino);
}
-mode_t
+__LA_MODE_T
archive_entry_mode(struct archive_entry *entry)
{
return (entry->acl.mode);
@@ -598,7 +598,7 @@ _archive_entry_pathname_l(struct archive_entry *entry,
return (archive_mstring_get_mbs_l(&entry->ae_pathname, p, len, sc));
}
-mode_t
+__LA_MODE_T
archive_entry_perm(struct archive_entry *entry)
{
return (~AE_IFMT & entry->acl.mode);
--
2.26.0.windows.1

5
contrib/src/libarchive/rules.mak

@ -1,5 +1,5 @@
# LIBARCHIVE
LIBARCHIVE_VERSION := 3.4.2
LIBARCHIVE_VERSION := 3.5.1
LIBARCHIVE_URL := http://www.libarchive.org/downloads/libarchive-$(LIBARCHIVE_VERSION).tar.gz
PKGS += libarchive
@ -25,9 +25,6 @@ $(TARBALLS)/libarchive-$(LIBARCHIVE_VERSION).tar.gz:
libarchive: libarchive-$(LIBARCHIVE_VERSION).tar.gz .sum-libarchive
$(UNPACK)
$(APPLY) $(SRC)/libarchive/0001-Fix-retrieving-incorrect-member-from-struct-statfs.patch
$(APPLY) $(SRC)/libarchive/fix-types.patch
$(APPLY) $(SRC)/libarchive/0005-don-t-force-windows-versions-if-they-are-set-in-the-.patch
ifdef HAVE_ANDROID
$(APPLY) $(SRC)/libarchive/android.patch
endif

32
contrib/src/libarchive/winrt.patch

@ -255,15 +255,6 @@ index b8bf1288..2197ed41 100644
/* Avoid infinity wait.
* Note: If there is no data in the pipe, ReadFile()
* called in read() never returns and so we won't
@@ -437,7 +439,7 @@ __archive_read_program(struct archive_read_filter *self, const char *cmd)
cmd);
return (ARCHIVE_FATAL);
}
-#if defined(_WIN32) && !defined(__CYGWIN__)
+#if defined(_WIN32) && !defined(__CYGWIN__) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
state->child = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, child);
if (state->child == NULL) {
child_stop(self, state);
@@ -516,3 +518,5 @@ program_filter_close(struct archive_read_filter *self)
return (e);
@ -514,30 +505,27 @@ index 47b7cb8e..9743f310 100644
#define WEXITSTATUS(sts) (sts & 0x0FF)
diff --git a/libarchive/filter_fork_windows.c b/libarchive/filter_fork_windows.c
index ad271fe6..0414d6f4 100644
--- a/libarchive/filter_fork_windows.c
+++ b/libarchive/filter_fork_windows.c
--- a/libarchive/filter_fork_windows.c.orig 2020-12-26 02:29:38.000000000 +0100
+++ b/libarchive/filter_fork_windows.c 2021-04-21 17:17:42.651099766 +0200
@@ -31,6 +31,13 @@
#include "filter_fork.h"
+#if !WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+pid_t
+__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout)
+int
+__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout, HANDLE *out_child)
+{
+ return (-1);
+ return ARCHIVE_FAILED;
+}
+#else /* WINAPI_PARTITION_DESKTOP */
pid_t
__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout)
{
@@ -178,6 +185,7 @@ fail:
int
__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout,
HANDLE *out_child)
@@ -187,6 +194,7 @@
__archive_cmdline_free(acmd);
return (-1);
return ARCHIVE_FAILED;
}
+#endif /* WINAPI_PARTITION_DESKTOP */
void
__archive_check_child(int in, int out)
--
2.26.0.windows.1

Loading…
Cancel
Save