diff --git a/groups.d/251.native_packages_lib.group b/groups.d/251.native_packages_lib.group
index 67fc61c..da57238 100644
--- a/groups.d/251.native_packages_lib.group
+++ b/groups.d/251.native_packages_lib.group
@@ -62,8 +62,8 @@ sdl1_image sdl1_ttf sdl2 sdl2_image sdl2_ttf sdl2_net twolame wolfssl";
 : ${PKG_LIBAO_CFLAGS_CONFIGURE_EXTRA:="-I${PREFIX_NATIVE}/include/w32api.ports -DWINAPI_ANSI_DEFAULT"};
 : ${PKG_LIBAO_LDFLAGS_CONFIGURE_EXTRA:="-L${PREFIX_NATIVE}/lib/w32lib -lwinmm"}
 : ${PKG_LIBARCHIVE_DEPENDS:="libxml2 xz libiconv bzip2 libmd"};
-: ${PKG_LIBARCHIVE_SHA256SUM:=04357661e6717b6941682cde02ad741ae4819c67a260593dfb2431861b251acb};
-: ${PKG_LIBARCHIVE_VERSION:=3.7.2};
+: ${PKG_LIBARCHIVE_SHA256SUM:=63e7a7174638fc7d6b79b4c8b0ad954e0f4f45abe7239c1ecb200232aa9a43d2};
+: ${PKG_LIBARCHIVE_VERSION:=3.7.3};
 : ${PKG_LIBARCHIVE_URL:=https://www.libarchive.de/downloads/libarchive-${PKG_LIBARCHIVE_VERSION}.tar.xz};
 : ${PKG_LIBARCHIVE_CONFIG_CACHE_LOCAL:="ac_cv_func_lstat_dereferences_slashed_symlink=yes"};
 : ${PKG_LIBARCHIVE_LIBTOOL:=rlibtool};
diff --git a/patches/libarchive-3.7.2_pre.local.patch b/patches/libarchive-3.7.2_pre.local.patch
deleted file mode 100644
index 1d2a86c..0000000
--- a/patches/libarchive-3.7.2_pre.local.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -ru libarchive-3.7.2.orig/configure libarchive-3.7.2/configure
---- libarchive-3.7.2.orig/configure	2023-09-12 00:05:34.000000000 +0200
-+++ libarchive-3.7.2/configure	2024-02-26 13:44:22.491965148 +0100
-@@ -12906,6 +12906,16 @@
-   dynamic_linker='NetBSD ld.elf_so'
-   ;;
- 
-+midipix*)
-+  version_type=linux # correct to gnu/linux during the next big refactor
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-+  soname_spec='$libname$release$shared_ext$major'
-+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  ;;
-+
- netbsd*)
-   version_type=sunos
-   need_lib_prefix=no
-@@ -16925,7 +16935,7 @@
-   ac_status=$?
-   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; }; then
--  pkg_cv_LIBXML2_PC_LIBS=`$PKG_CONFIG --libs "libxml-2.0" 2>/dev/null`
-+  pkg_cv_LIBXML2_PC_LIBS=`$PKG_CONFIG --libs-only-l "libxml-2.0" 2>/dev/null`
- 		      test "x$?" != "x0" && pkg_failed=yes
- else
-   pkg_failed=yes
diff --git a/patches/libarchive-3.7.3_pre.local.patch b/patches/libarchive-3.7.3_pre.local.patch
new file mode 100644
index 0000000..9058856
--- /dev/null
+++ b/patches/libarchive-3.7.3_pre.local.patch
@@ -0,0 +1,28 @@
+diff -ru libarchive-3.7.2.orig/configure libarchive-3.7.2/configure
+--- libarchive-3.7.2.orig/configure	2023-09-12 00:05:34.000000000 +0200
++++ libarchive-3.7.2/configure	2024-02-26 13:44:22.491965148 +0100
+@@ -12906,6 +12906,15 @@
+   dynamic_linker='NetBSD ld.elf_so'
+   ;;
+ 
++midipix*)
++  version_type=linux # correct to gnu/linux during the next big refactor
++  need_lib_prefix=no
++  need_version=no
++  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
++  soname_spec='$libname$release$shared_ext$major'
++  shlibpath_var=LD_LIBRARY_PATH
++  ;;
++
+ netbsd*)
+   version_type=sunos
+   need_lib_prefix=no
+@@ -16925,7 +16935,7 @@
+   ac_status=$?
+   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }; then
+-  pkg_cv_LIBXML2_PC_LIBS=`$PKG_CONFIG --libs "libxml-2.0" 2>/dev/null`
++  pkg_cv_LIBXML2_PC_LIBS=`$PKG_CONFIG --libs-only-l "libxml-2.0" 2>/dev/null`
+ 		      test "x$?" != "x0" && pkg_failed=yes
+ else
+   pkg_failed=yes
diff --git a/patches/libarchive/fix-shell-escape.patch b/patches/libarchive/fix-shell-escape.patch
deleted file mode 100644
index 6a351ba..0000000
--- a/patches/libarchive/fix-shell-escape.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 6110e9c82d8ba830c3440f36b990483ceaaea52c Mon Sep 17 00:00:00 2001
-From: Ed Maste <emaste@freebsd.org>
-Date: Fri, 29 Mar 2024 18:02:06 -0400
-Subject: [PATCH] tar: make error reporting more robust and use correct errno
- (#2101)
-
-As discussed in #1609.
----
- tar/read.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/tar/read.c b/tar/read.c
-index af3d3f423..a7f14a07b 100644
---- a/tar/read.c
-+++ b/tar/read.c
-@@ -371,8 +371,9 @@ read_archive(struct bsdtar *bsdtar, char mode, struct archive *writer)
- 			if (r != ARCHIVE_OK) {
- 				if (!bsdtar->verbose)
- 					safe_fprintf(stderr, "%s", archive_entry_pathname(entry));
--				fprintf(stderr, ": %s: ", archive_error_string(a));
--				fprintf(stderr, "%s", strerror(errno));
-+				safe_fprintf(stderr, ": %s: %s",
-+				    archive_error_string(a),
-+				    strerror(archive_errno(a)));
- 				if (!bsdtar->verbose)
- 					fprintf(stderr, "\n");
- 				bsdtar->return_value = 1;