]> git.proxmox.com Git - libarchive-perl.git/commitdiff
update libarchive bindings
authorStoiko Ivanov <s.ivanov@proxmox.com>
Fri, 4 Jun 2021 13:05:24 +0000 (13:05 +0000)
committerStoiko Ivanov <s.ivanov@proxmox.com>
Fri, 4 Jun 2021 14:23:09 +0000 (14:23 +0000)
by running
`h2xs  -M '^(archive|ARCHIVE)_' -v 3.4.0  -On LibArchive \
/usr/include/archive.h /usr/include/archive_entry.h -larchive`

and selectively adding the changes

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
LibArchive/Changes
LibArchive/LibArchive.xs
LibArchive/MANIFEST
LibArchive/Makefile.PL
LibArchive/README
LibArchive/lib/LibArchive.pm
LibArchive/t/LibArchive.t

index 3deffa49120db2192cb8149882de0e6633057e8c..fd4338a3fb1ffd072393cd34ce048f10cac8421b 100644 (file)
@@ -1,5 +1,8 @@
 Revision history for Perl extension LibArchive.
 
+3.4.0  Tue Jun  1 18:43:02 2021
+       - updated based on h2xs 1.23 with options
+               -M '^(archive|ARCHIVE)_' -v 3.4.0 -On LibArchive /usr/include/archive.h /usr/include/archive_entry.h -larchive
 3.0.4 Tue Sep 23 11:50:00 CEST 2014
 
        - make it compile with libarchive-dev 3.0.4-3 from debian wheezy
index f52235a7e8e9006c88661062478d214ead2daac2..36ceb530fe72cd80e0304ffb128d877bae4dfa30 100644 (file)
@@ -1,3 +1,4 @@
+#define PERL_NO_GET_CONTEXT
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
index 2442a19c5529b4d69667b100aafeb2b7d24d5491..d998a4894a8c6b3ba0946e472c2ff9e4904d1e2f 100644 (file)
@@ -4,7 +4,6 @@ Makefile.PL
 MANIFEST
 ppport.h
 README
+typemap
 t/LibArchive.t
-fallback/const-c.inc
-fallback/const-xs.inc
 lib/LibArchive.pm
index bb6994dab26d00a38d388a7d4cf09ea5ddaa7429..5c9df59b5733e53d90ec3cc2ce60a06b22cee2ce 100644 (file)
@@ -1,14 +1,13 @@
-use 5.014002;
+use 5.032001;
 use ExtUtils::MakeMaker;
 # See lib/ExtUtils/MakeMaker.pm for details of how to influence
 # the contents of the Makefile that is written.
 WriteMakefile(
     NAME              => 'LibArchive',
-    VERSION_FROM      => 'lib/LibArchive.pm', # finds $VERSION
+    VERSION_FROM      => 'lib/LibArchive.pm', # finds $VERSION, requires EU::MM from perl >= 5.5
     PREREQ_PM         => {}, # e.g., Module::Name => 1.1
-    ($] >= 5.005 ?     ## Add these new keywords supported since 5.005
-      (ABSTRACT_FROM  => 'lib/LibArchive.pm', # retrieve abstract from module
-       AUTHOR         => 'Proxmox Support Team <support@proxmox.com>') : ()),
+    ABSTRACT_FROM     => 'lib/LibArchive.pm', # retrieve abstract from module
+    AUTHOR         => 'Proxmox Support Team <support@proxmox.com>',
     LIBS              => ['-larchive'], # e.g., '-lm'
     DEFINE            => '', # e.g., '-DHAVE_SOMETHING'
     INC               => '-I.', # e.g., '-I. -I/usr/include/other'
@@ -20,9 +19,8 @@ if  (eval {require ExtUtils::Constant; 1}) {
   # you will need to use the generated const-c.inc and const-xs.inc
   # files to replace their "fallback" counterparts before distributing your
   # changes.
-  my @names = (qw(AE_IFBLK AE_IFCHR AE_IFDIR AE_IFIFO AE_IFLNK AE_IFMT AE_IFREG
-                AE_IFSOCK ARCHIVE_COMPRESSION_BZIP2
-                ARCHIVE_COMPRESSION_COMPRESS ARCHIVE_COMPRESSION_GZIP
+  my @names = (qw(ARCHIVE_COMPRESSION_BZIP2 ARCHIVE_COMPRESSION_COMPRESS
+                ARCHIVE_COMPRESSION_GZIP ARCHIVE_COMPRESSION_LRZIP
                 ARCHIVE_COMPRESSION_LZIP ARCHIVE_COMPRESSION_LZMA
                 ARCHIVE_COMPRESSION_NONE ARCHIVE_COMPRESSION_PROGRAM
                 ARCHIVE_COMPRESSION_RPM ARCHIVE_COMPRESSION_UU
@@ -33,6 +31,7 @@ if  (eval {require ExtUtils::Constant; 1}) {
                 ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT
                 ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS
                 ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT
+                ARCHIVE_ENTRY_ACL_ENTRY_INHERITED
                 ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY
                 ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT
                 ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS
@@ -44,30 +43,40 @@ if  (eval {require ExtUtils::Constant; 1}) {
                 ARCHIVE_ENTRY_ACL_PERMS_POSIX1E ARCHIVE_ENTRY_ACL_READ
                 ARCHIVE_ENTRY_ACL_READ_ACL ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES
                 ARCHIVE_ENTRY_ACL_READ_DATA ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS
+                ARCHIVE_ENTRY_ACL_STYLE_COMPACT
                 ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID
                 ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT
-                ARCHIVE_ENTRY_ACL_SYNCHRONIZE ARCHIVE_ENTRY_ACL_TYPE_ACCESS
-                ARCHIVE_ENTRY_ACL_TYPE_ALARM ARCHIVE_ENTRY_ACL_TYPE_ALLOW
-                ARCHIVE_ENTRY_ACL_TYPE_AUDIT ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
-                ARCHIVE_ENTRY_ACL_TYPE_DENY ARCHIVE_ENTRY_ACL_TYPE_NFS4
-                ARCHIVE_ENTRY_ACL_TYPE_POSIX1E ARCHIVE_ENTRY_ACL_USER
-                ARCHIVE_ENTRY_ACL_USER_OBJ ARCHIVE_ENTRY_ACL_WRITE
-                ARCHIVE_ENTRY_ACL_WRITE_ACL ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES
+                ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA
+                ARCHIVE_ENTRY_ACL_STYLE_SOLARIS ARCHIVE_ENTRY_ACL_SYNCHRONIZE
+                ARCHIVE_ENTRY_ACL_TYPE_ACCESS ARCHIVE_ENTRY_ACL_TYPE_ALARM
+                ARCHIVE_ENTRY_ACL_TYPE_ALLOW ARCHIVE_ENTRY_ACL_TYPE_AUDIT
+                ARCHIVE_ENTRY_ACL_TYPE_DEFAULT ARCHIVE_ENTRY_ACL_TYPE_DENY
+                ARCHIVE_ENTRY_ACL_TYPE_NFS4 ARCHIVE_ENTRY_ACL_TYPE_POSIX1E
+                ARCHIVE_ENTRY_ACL_USER ARCHIVE_ENTRY_ACL_USER_OBJ
+                ARCHIVE_ENTRY_ACL_WRITE ARCHIVE_ENTRY_ACL_WRITE_ACL
+                ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES
                 ARCHIVE_ENTRY_ACL_WRITE_DATA
                 ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS
                 ARCHIVE_ENTRY_ACL_WRITE_OWNER ARCHIVE_EOF ARCHIVE_EXTRACT_ACL
-                ARCHIVE_EXTRACT_FFLAGS ARCHIVE_EXTRACT_MAC_METADATA
-                ARCHIVE_EXTRACT_NO_AUTODIR ARCHIVE_EXTRACT_NO_OVERWRITE
+                ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS ARCHIVE_EXTRACT_FFLAGS
+                ARCHIVE_EXTRACT_HFS_COMPRESSION_FORCED
+                ARCHIVE_EXTRACT_MAC_METADATA ARCHIVE_EXTRACT_NO_AUTODIR
+                ARCHIVE_EXTRACT_NO_HFS_COMPRESSION
+                ARCHIVE_EXTRACT_NO_OVERWRITE
                 ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER ARCHIVE_EXTRACT_OWNER
-                ARCHIVE_EXTRACT_PERM ARCHIVE_EXTRACT_SECURE_NODOTDOT
+                ARCHIVE_EXTRACT_PERM ARCHIVE_EXTRACT_SAFE_WRITES
+                ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS
+                ARCHIVE_EXTRACT_SECURE_NODOTDOT
                 ARCHIVE_EXTRACT_SECURE_SYMLINKS ARCHIVE_EXTRACT_SPARSE
                 ARCHIVE_EXTRACT_TIME ARCHIVE_EXTRACT_UNLINK
                 ARCHIVE_EXTRACT_XATTR ARCHIVE_FAILED ARCHIVE_FATAL
                 ARCHIVE_FILTER_BZIP2 ARCHIVE_FILTER_COMPRESS
-                ARCHIVE_FILTER_GZIP ARCHIVE_FILTER_LZIP ARCHIVE_FILTER_LZMA
-                ARCHIVE_FILTER_NONE ARCHIVE_FILTER_PROGRAM ARCHIVE_FILTER_RPM
-                ARCHIVE_FILTER_UU ARCHIVE_FILTER_XZ ARCHIVE_FORMAT_7ZIP
-                ARCHIVE_FORMAT_AR ARCHIVE_FORMAT_AR_BSD ARCHIVE_FORMAT_AR_GNU
+                ARCHIVE_FILTER_GRZIP ARCHIVE_FILTER_GZIP ARCHIVE_FILTER_LRZIP
+                ARCHIVE_FILTER_LZ4 ARCHIVE_FILTER_LZIP ARCHIVE_FILTER_LZMA
+                ARCHIVE_FILTER_LZOP ARCHIVE_FILTER_NONE ARCHIVE_FILTER_PROGRAM
+                ARCHIVE_FILTER_RPM ARCHIVE_FILTER_UU ARCHIVE_FILTER_XZ
+                ARCHIVE_FILTER_ZSTD ARCHIVE_FORMAT_7ZIP ARCHIVE_FORMAT_AR
+                ARCHIVE_FORMAT_AR_BSD ARCHIVE_FORMAT_AR_GNU
                 ARCHIVE_FORMAT_BASE_MASK ARCHIVE_FORMAT_CAB
                 ARCHIVE_FORMAT_CPIO ARCHIVE_FORMAT_CPIO_AFIO_LARGE
                 ARCHIVE_FORMAT_CPIO_BIN_BE ARCHIVE_FORMAT_CPIO_BIN_LE
@@ -75,17 +84,23 @@ if  (eval {require ExtUtils::Constant; 1}) {
                 ARCHIVE_FORMAT_CPIO_SVR4_NOCRC ARCHIVE_FORMAT_EMPTY
                 ARCHIVE_FORMAT_ISO9660 ARCHIVE_FORMAT_ISO9660_ROCKRIDGE
                 ARCHIVE_FORMAT_LHA ARCHIVE_FORMAT_MTREE ARCHIVE_FORMAT_RAR
-                ARCHIVE_FORMAT_RAW ARCHIVE_FORMAT_SHAR
+                ARCHIVE_FORMAT_RAR_V5 ARCHIVE_FORMAT_RAW ARCHIVE_FORMAT_SHAR
                 ARCHIVE_FORMAT_SHAR_BASE ARCHIVE_FORMAT_SHAR_DUMP
                 ARCHIVE_FORMAT_TAR ARCHIVE_FORMAT_TAR_GNUTAR
                 ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE
                 ARCHIVE_FORMAT_TAR_PAX_RESTRICTED ARCHIVE_FORMAT_TAR_USTAR
-                ARCHIVE_FORMAT_XAR ARCHIVE_FORMAT_ZIP ARCHIVE_MATCH_CTIME
-                ARCHIVE_MATCH_EQUAL ARCHIVE_MATCH_MTIME ARCHIVE_MATCH_NEWER
-                ARCHIVE_MATCH_OLDER ARCHIVE_OK ARCHIVE_READDISK_HONOR_NODUMP
-                ARCHIVE_READDISK_MAC_COPYFILE
-                ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS
-                ARCHIVE_READDISK_RESTORE_ATIME ARCHIVE_RETRY
+                ARCHIVE_FORMAT_WARC ARCHIVE_FORMAT_XAR ARCHIVE_FORMAT_ZIP
+                ARCHIVE_MATCH_CTIME ARCHIVE_MATCH_EQUAL ARCHIVE_MATCH_MTIME
+                ARCHIVE_MATCH_NEWER ARCHIVE_MATCH_OLDER ARCHIVE_OK
+                ARCHIVE_READDISK_HONOR_NODUMP ARCHIVE_READDISK_MAC_COPYFILE
+                ARCHIVE_READDISK_NO_ACL ARCHIVE_READDISK_NO_FFLAGS
+                ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS ARCHIVE_READDISK_NO_XATTR
+                ARCHIVE_READDISK_RESTORE_ATIME
+                ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_DATA
+                ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA
+                ARCHIVE_READ_FORMAT_CAPS_NONE
+                ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW
+                ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED ARCHIVE_RETRY
                 ARCHIVE_VERSION_NUMBER ARCHIVE_WARN));
   ExtUtils::Constant::WriteConstants(
                                      NAME         => 'LibArchive',
index 8873cc293dc08ba44f457da84c219b40bbc1179e..0ac4e15a30d76dbd6cfdf3505e8bcf310f90276b 100644 (file)
@@ -16,12 +16,29 @@ DEPENDENCIES
 
 This module requires these other modules and libraries:
 
-  libarchive version 2.2.4
+  libarchive version 3.4.3
 
 COPYRIGHT AND LICENCE
 
 Copyright (C) 2007 by Dietmar Maurer <dietmar@proxmox.com>
+Copyright (C) 2010-2021 Proxmox Server Solutions GmbH
 
+This software is written by Proxmox Server Solutions GmbH <support@proxmox.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+-------------
 This library (perl bindings) is free software; you can redistribute it
 and/or modify it under the same terms as Perl itself, either Perl
 version 5.8.8 or, at your option, any later version of Perl 5 you may
index f4e5bf9ddfc4ff7721e09f4a2b2e5a06931e8721..41b75b663a83926a184aff3d8cd042c3033b1e1f 100644 (file)
@@ -1,6 +1,6 @@
 package LibArchive;
 
-use 5.014002;
+use 5.032001;
 use strict;
 use warnings;
 use Carp;
@@ -18,17 +18,10 @@ our @ISA = qw(Exporter);
 # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
 # will save memory.
 our %EXPORT_TAGS = ( 'all' => [ qw(
-       AE_IFBLK
-       AE_IFCHR
-       AE_IFDIR
-       AE_IFIFO
-       AE_IFLNK
-       AE_IFMT
-       AE_IFREG
-       AE_IFSOCK
        ARCHIVE_COMPRESSION_BZIP2
        ARCHIVE_COMPRESSION_COMPRESS
        ARCHIVE_COMPRESSION_GZIP
+       ARCHIVE_COMPRESSION_LRZIP
        ARCHIVE_COMPRESSION_LZIP
        ARCHIVE_COMPRESSION_LZMA
        ARCHIVE_COMPRESSION_NONE
@@ -44,6 +37,7 @@ our %EXPORT_TAGS = ( 'all' => [ qw(
        ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT
        ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS
        ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT
+       ARCHIVE_ENTRY_ACL_ENTRY_INHERITED
        ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY
        ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT
        ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS
@@ -62,8 +56,11 @@ our %EXPORT_TAGS = ( 'all' => [ qw(
        ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES
        ARCHIVE_ENTRY_ACL_READ_DATA
        ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS
+       ARCHIVE_ENTRY_ACL_STYLE_COMPACT
        ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID
        ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT
+       ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA
+       ARCHIVE_ENTRY_ACL_STYLE_SOLARIS
        ARCHIVE_ENTRY_ACL_SYNCHRONIZE
        ARCHIVE_ENTRY_ACL_TYPE_ACCESS
        ARCHIVE_ENTRY_ACL_TYPE_ALARM
@@ -83,13 +80,18 @@ our %EXPORT_TAGS = ( 'all' => [ qw(
        ARCHIVE_ENTRY_ACL_WRITE_OWNER
        ARCHIVE_EOF
        ARCHIVE_EXTRACT_ACL
+       ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS
        ARCHIVE_EXTRACT_FFLAGS
+       ARCHIVE_EXTRACT_HFS_COMPRESSION_FORCED
        ARCHIVE_EXTRACT_MAC_METADATA
        ARCHIVE_EXTRACT_NO_AUTODIR
+       ARCHIVE_EXTRACT_NO_HFS_COMPRESSION
        ARCHIVE_EXTRACT_NO_OVERWRITE
        ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER
        ARCHIVE_EXTRACT_OWNER
        ARCHIVE_EXTRACT_PERM
+       ARCHIVE_EXTRACT_SAFE_WRITES
+       ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS
        ARCHIVE_EXTRACT_SECURE_NODOTDOT
        ARCHIVE_EXTRACT_SECURE_SYMLINKS
        ARCHIVE_EXTRACT_SPARSE
@@ -100,14 +102,19 @@ our %EXPORT_TAGS = ( 'all' => [ qw(
        ARCHIVE_FATAL
        ARCHIVE_FILTER_BZIP2
        ARCHIVE_FILTER_COMPRESS
+       ARCHIVE_FILTER_GRZIP
        ARCHIVE_FILTER_GZIP
+       ARCHIVE_FILTER_LRZIP
+       ARCHIVE_FILTER_LZ4
        ARCHIVE_FILTER_LZIP
        ARCHIVE_FILTER_LZMA
+       ARCHIVE_FILTER_LZOP
        ARCHIVE_FILTER_NONE
        ARCHIVE_FILTER_PROGRAM
        ARCHIVE_FILTER_RPM
        ARCHIVE_FILTER_UU
        ARCHIVE_FILTER_XZ
+       ARCHIVE_FILTER_ZSTD
        ARCHIVE_FORMAT_7ZIP
        ARCHIVE_FORMAT_AR
        ARCHIVE_FORMAT_AR_BSD
@@ -127,6 +134,7 @@ our %EXPORT_TAGS = ( 'all' => [ qw(
        ARCHIVE_FORMAT_LHA
        ARCHIVE_FORMAT_MTREE
        ARCHIVE_FORMAT_RAR
+       ARCHIVE_FORMAT_RAR_V5
        ARCHIVE_FORMAT_RAW
        ARCHIVE_FORMAT_SHAR
        ARCHIVE_FORMAT_SHAR_BASE
@@ -136,6 +144,7 @@ our %EXPORT_TAGS = ( 'all' => [ qw(
        ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE
        ARCHIVE_FORMAT_TAR_PAX_RESTRICTED
        ARCHIVE_FORMAT_TAR_USTAR
+       ARCHIVE_FORMAT_WARC
        ARCHIVE_FORMAT_XAR
        ARCHIVE_FORMAT_ZIP
        ARCHIVE_MATCH_CTIME
@@ -146,8 +155,16 @@ our %EXPORT_TAGS = ( 'all' => [ qw(
        ARCHIVE_OK
        ARCHIVE_READDISK_HONOR_NODUMP
        ARCHIVE_READDISK_MAC_COPYFILE
+       ARCHIVE_READDISK_NO_ACL
+       ARCHIVE_READDISK_NO_FFLAGS
        ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS
+       ARCHIVE_READDISK_NO_XATTR
        ARCHIVE_READDISK_RESTORE_ATIME
+       ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_DATA
+       ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA
+       ARCHIVE_READ_FORMAT_CAPS_NONE
+       ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW
+       ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED
        ARCHIVE_RETRY
        ARCHIVE_VERSION_NUMBER
        ARCHIVE_WARN
@@ -156,17 +173,10 @@ our %EXPORT_TAGS = ( 'all' => [ qw(
 our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
 
 our @EXPORT = qw(
-       AE_IFBLK
-       AE_IFCHR
-       AE_IFDIR
-       AE_IFIFO
-       AE_IFLNK
-       AE_IFMT
-       AE_IFREG
-       AE_IFSOCK
        ARCHIVE_COMPRESSION_BZIP2
        ARCHIVE_COMPRESSION_COMPRESS
        ARCHIVE_COMPRESSION_GZIP
+       ARCHIVE_COMPRESSION_LRZIP
        ARCHIVE_COMPRESSION_LZIP
        ARCHIVE_COMPRESSION_LZMA
        ARCHIVE_COMPRESSION_NONE
@@ -182,6 +192,7 @@ our @EXPORT = qw(
        ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT
        ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS
        ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT
+       ARCHIVE_ENTRY_ACL_ENTRY_INHERITED
        ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY
        ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT
        ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS
@@ -200,8 +211,11 @@ our @EXPORT = qw(
        ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES
        ARCHIVE_ENTRY_ACL_READ_DATA
        ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS
+       ARCHIVE_ENTRY_ACL_STYLE_COMPACT
        ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID
        ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT
+       ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA
+       ARCHIVE_ENTRY_ACL_STYLE_SOLARIS
        ARCHIVE_ENTRY_ACL_SYNCHRONIZE
        ARCHIVE_ENTRY_ACL_TYPE_ACCESS
        ARCHIVE_ENTRY_ACL_TYPE_ALARM
@@ -221,13 +235,18 @@ our @EXPORT = qw(
        ARCHIVE_ENTRY_ACL_WRITE_OWNER
        ARCHIVE_EOF
        ARCHIVE_EXTRACT_ACL
+       ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS
        ARCHIVE_EXTRACT_FFLAGS
+       ARCHIVE_EXTRACT_HFS_COMPRESSION_FORCED
        ARCHIVE_EXTRACT_MAC_METADATA
        ARCHIVE_EXTRACT_NO_AUTODIR
+       ARCHIVE_EXTRACT_NO_HFS_COMPRESSION
        ARCHIVE_EXTRACT_NO_OVERWRITE
        ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER
        ARCHIVE_EXTRACT_OWNER
        ARCHIVE_EXTRACT_PERM
+       ARCHIVE_EXTRACT_SAFE_WRITES
+       ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS
        ARCHIVE_EXTRACT_SECURE_NODOTDOT
        ARCHIVE_EXTRACT_SECURE_SYMLINKS
        ARCHIVE_EXTRACT_SPARSE
@@ -238,14 +257,19 @@ our @EXPORT = qw(
        ARCHIVE_FATAL
        ARCHIVE_FILTER_BZIP2
        ARCHIVE_FILTER_COMPRESS
+       ARCHIVE_FILTER_GRZIP
        ARCHIVE_FILTER_GZIP
+       ARCHIVE_FILTER_LRZIP
+       ARCHIVE_FILTER_LZ4
        ARCHIVE_FILTER_LZIP
        ARCHIVE_FILTER_LZMA
+       ARCHIVE_FILTER_LZOP
        ARCHIVE_FILTER_NONE
        ARCHIVE_FILTER_PROGRAM
        ARCHIVE_FILTER_RPM
        ARCHIVE_FILTER_UU
        ARCHIVE_FILTER_XZ
+       ARCHIVE_FILTER_ZSTD
        ARCHIVE_FORMAT_7ZIP
        ARCHIVE_FORMAT_AR
        ARCHIVE_FORMAT_AR_BSD
@@ -265,6 +289,7 @@ our @EXPORT = qw(
        ARCHIVE_FORMAT_LHA
        ARCHIVE_FORMAT_MTREE
        ARCHIVE_FORMAT_RAR
+       ARCHIVE_FORMAT_RAR_V5
        ARCHIVE_FORMAT_RAW
        ARCHIVE_FORMAT_SHAR
        ARCHIVE_FORMAT_SHAR_BASE
@@ -274,6 +299,7 @@ our @EXPORT = qw(
        ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE
        ARCHIVE_FORMAT_TAR_PAX_RESTRICTED
        ARCHIVE_FORMAT_TAR_USTAR
+       ARCHIVE_FORMAT_WARC
        ARCHIVE_FORMAT_XAR
        ARCHIVE_FORMAT_ZIP
        ARCHIVE_MATCH_CTIME
@@ -284,14 +310,22 @@ our @EXPORT = qw(
        ARCHIVE_OK
        ARCHIVE_READDISK_HONOR_NODUMP
        ARCHIVE_READDISK_MAC_COPYFILE
+       ARCHIVE_READDISK_NO_ACL
+       ARCHIVE_READDISK_NO_FFLAGS
        ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS
+       ARCHIVE_READDISK_NO_XATTR
        ARCHIVE_READDISK_RESTORE_ATIME
+       ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_DATA
+       ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA
+       ARCHIVE_READ_FORMAT_CAPS_NONE
+       ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW
+       ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED
        ARCHIVE_RETRY
        ARCHIVE_VERSION_NUMBER
        ARCHIVE_WARN
 );
 
-our $VERSION = '3.0.4';
+our $VERSION = '3.4.0';
 
 sub AUTOLOAD {
     # This AUTOLOAD is used to 'autoload' constants from the constant()
@@ -345,17 +379,10 @@ None by default.
 
 =head2 Exportable constants
 
-  AE_IFBLK
-  AE_IFCHR
-  AE_IFDIR
-  AE_IFIFO
-  AE_IFLNK
-  AE_IFMT
-  AE_IFREG
-  AE_IFSOCK
   ARCHIVE_COMPRESSION_BZIP2
   ARCHIVE_COMPRESSION_COMPRESS
   ARCHIVE_COMPRESSION_GZIP
+  ARCHIVE_COMPRESSION_LRZIP
   ARCHIVE_COMPRESSION_LZIP
   ARCHIVE_COMPRESSION_LZMA
   ARCHIVE_COMPRESSION_NONE
@@ -371,6 +398,7 @@ None by default.
   ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT
   ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS
   ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT
+  ARCHIVE_ENTRY_ACL_ENTRY_INHERITED
   ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY
   ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT
   ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS
@@ -389,8 +417,11 @@ None by default.
   ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES
   ARCHIVE_ENTRY_ACL_READ_DATA
   ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS
+  ARCHIVE_ENTRY_ACL_STYLE_COMPACT
   ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID
   ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT
+  ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA
+  ARCHIVE_ENTRY_ACL_STYLE_SOLARIS
   ARCHIVE_ENTRY_ACL_SYNCHRONIZE
   ARCHIVE_ENTRY_ACL_TYPE_ACCESS
   ARCHIVE_ENTRY_ACL_TYPE_ALARM
@@ -410,13 +441,18 @@ None by default.
   ARCHIVE_ENTRY_ACL_WRITE_OWNER
   ARCHIVE_EOF
   ARCHIVE_EXTRACT_ACL
+  ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS
   ARCHIVE_EXTRACT_FFLAGS
+  ARCHIVE_EXTRACT_HFS_COMPRESSION_FORCED
   ARCHIVE_EXTRACT_MAC_METADATA
   ARCHIVE_EXTRACT_NO_AUTODIR
+  ARCHIVE_EXTRACT_NO_HFS_COMPRESSION
   ARCHIVE_EXTRACT_NO_OVERWRITE
   ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER
   ARCHIVE_EXTRACT_OWNER
   ARCHIVE_EXTRACT_PERM
+  ARCHIVE_EXTRACT_SAFE_WRITES
+  ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS
   ARCHIVE_EXTRACT_SECURE_NODOTDOT
   ARCHIVE_EXTRACT_SECURE_SYMLINKS
   ARCHIVE_EXTRACT_SPARSE
@@ -427,14 +463,19 @@ None by default.
   ARCHIVE_FATAL
   ARCHIVE_FILTER_BZIP2
   ARCHIVE_FILTER_COMPRESS
+  ARCHIVE_FILTER_GRZIP
   ARCHIVE_FILTER_GZIP
+  ARCHIVE_FILTER_LRZIP
+  ARCHIVE_FILTER_LZ4
   ARCHIVE_FILTER_LZIP
   ARCHIVE_FILTER_LZMA
+  ARCHIVE_FILTER_LZOP
   ARCHIVE_FILTER_NONE
   ARCHIVE_FILTER_PROGRAM
   ARCHIVE_FILTER_RPM
   ARCHIVE_FILTER_UU
   ARCHIVE_FILTER_XZ
+  ARCHIVE_FILTER_ZSTD
   ARCHIVE_FORMAT_7ZIP
   ARCHIVE_FORMAT_AR
   ARCHIVE_FORMAT_AR_BSD
@@ -454,6 +495,7 @@ None by default.
   ARCHIVE_FORMAT_LHA
   ARCHIVE_FORMAT_MTREE
   ARCHIVE_FORMAT_RAR
+  ARCHIVE_FORMAT_RAR_V5
   ARCHIVE_FORMAT_RAW
   ARCHIVE_FORMAT_SHAR
   ARCHIVE_FORMAT_SHAR_BASE
@@ -463,6 +505,7 @@ None by default.
   ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE
   ARCHIVE_FORMAT_TAR_PAX_RESTRICTED
   ARCHIVE_FORMAT_TAR_USTAR
+  ARCHIVE_FORMAT_WARC
   ARCHIVE_FORMAT_XAR
   ARCHIVE_FORMAT_ZIP
   ARCHIVE_MATCH_CTIME
@@ -473,12 +516,22 @@ None by default.
   ARCHIVE_OK
   ARCHIVE_READDISK_HONOR_NODUMP
   ARCHIVE_READDISK_MAC_COPYFILE
+  ARCHIVE_READDISK_NO_ACL
+  ARCHIVE_READDISK_NO_FFLAGS
   ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS
+  ARCHIVE_READDISK_NO_XATTR
   ARCHIVE_READDISK_RESTORE_ATIME
+  ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_DATA
+  ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA
+  ARCHIVE_READ_FORMAT_CAPS_NONE
+  ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW
+  ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED
   ARCHIVE_RETRY
   ARCHIVE_VERSION_NUMBER
   ARCHIVE_WARN
 
+
+
 =head1 SEE ALSO
 
   man libarchive
@@ -525,4 +578,3 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 =cut
-
index 9a1a262d6cc13920f3d7960f48abdc4a97d47621..c6f670e7061e0b209c350e5cf8dfc512c9f57d78 100644 (file)
@@ -1,5 +1,5 @@
-# Before `make install' is performed this script should be runnable with
-# `make test'. After `make install' it should work as `perl LibArchive.t'
+# Before 'make install' is performed this script should be runnable with
+# 'make test'. After 'make install' it should work as 'perl LibArchive.t'
 
 #########################
 
@@ -14,18 +14,17 @@ BEGIN { use_ok('LibArchive') };
 
 my $fail = 0;
 foreach my $constname (qw(
-       AE_IFBLK AE_IFCHR AE_IFDIR AE_IFIFO AE_IFLNK AE_IFMT AE_IFREG AE_IFSOCK
        ARCHIVE_COMPRESSION_BZIP2 ARCHIVE_COMPRESSION_COMPRESS
-       ARCHIVE_COMPRESSION_GZIP ARCHIVE_COMPRESSION_LZIP
-       ARCHIVE_COMPRESSION_LZMA ARCHIVE_COMPRESSION_NONE
-       ARCHIVE_COMPRESSION_PROGRAM ARCHIVE_COMPRESSION_RPM
-       ARCHIVE_COMPRESSION_UU ARCHIVE_COMPRESSION_XZ
+       ARCHIVE_COMPRESSION_GZIP ARCHIVE_COMPRESSION_LRZIP
+       ARCHIVE_COMPRESSION_LZIP ARCHIVE_COMPRESSION_LZMA
+       ARCHIVE_COMPRESSION_NONE ARCHIVE_COMPRESSION_PROGRAM
+       ARCHIVE_COMPRESSION_RPM ARCHIVE_COMPRESSION_UU ARCHIVE_COMPRESSION_XZ
        ARCHIVE_ENTRY_ACL_ADD_FILE ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY
        ARCHIVE_ENTRY_ACL_APPEND_DATA ARCHIVE_ENTRY_ACL_DELETE
        ARCHIVE_ENTRY_ACL_DELETE_CHILD
        ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT
        ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS
-       ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT
+       ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT ARCHIVE_ENTRY_ACL_ENTRY_INHERITED
        ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY
        ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT
        ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS ARCHIVE_ENTRY_ACL_EVERYONE
@@ -36,7 +35,9 @@ foreach my $constname (qw(
        ARCHIVE_ENTRY_ACL_PERMS_POSIX1E ARCHIVE_ENTRY_ACL_READ
        ARCHIVE_ENTRY_ACL_READ_ACL ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES
        ARCHIVE_ENTRY_ACL_READ_DATA ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS
-       ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT
+       ARCHIVE_ENTRY_ACL_STYLE_COMPACT ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID
+       ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT
+       ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA ARCHIVE_ENTRY_ACL_STYLE_SOLARIS
        ARCHIVE_ENTRY_ACL_SYNCHRONIZE ARCHIVE_ENTRY_ACL_TYPE_ACCESS
        ARCHIVE_ENTRY_ACL_TYPE_ALARM ARCHIVE_ENTRY_ACL_TYPE_ALLOW
        ARCHIVE_ENTRY_ACL_TYPE_AUDIT ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
@@ -46,33 +47,42 @@ foreach my $constname (qw(
        ARCHIVE_ENTRY_ACL_WRITE_ACL ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES
        ARCHIVE_ENTRY_ACL_WRITE_DATA ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS
        ARCHIVE_ENTRY_ACL_WRITE_OWNER ARCHIVE_EOF ARCHIVE_EXTRACT_ACL
-       ARCHIVE_EXTRACT_FFLAGS ARCHIVE_EXTRACT_MAC_METADATA
-       ARCHIVE_EXTRACT_NO_AUTODIR ARCHIVE_EXTRACT_NO_OVERWRITE
-       ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER ARCHIVE_EXTRACT_OWNER
-       ARCHIVE_EXTRACT_PERM ARCHIVE_EXTRACT_SECURE_NODOTDOT
+       ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS ARCHIVE_EXTRACT_FFLAGS
+       ARCHIVE_EXTRACT_HFS_COMPRESSION_FORCED ARCHIVE_EXTRACT_MAC_METADATA
+       ARCHIVE_EXTRACT_NO_AUTODIR ARCHIVE_EXTRACT_NO_HFS_COMPRESSION
+       ARCHIVE_EXTRACT_NO_OVERWRITE ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER
+       ARCHIVE_EXTRACT_OWNER ARCHIVE_EXTRACT_PERM ARCHIVE_EXTRACT_SAFE_WRITES
+       ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS ARCHIVE_EXTRACT_SECURE_NODOTDOT
        ARCHIVE_EXTRACT_SECURE_SYMLINKS ARCHIVE_EXTRACT_SPARSE
        ARCHIVE_EXTRACT_TIME ARCHIVE_EXTRACT_UNLINK ARCHIVE_EXTRACT_XATTR
        ARCHIVE_FAILED ARCHIVE_FATAL ARCHIVE_FILTER_BZIP2
-       ARCHIVE_FILTER_COMPRESS ARCHIVE_FILTER_GZIP ARCHIVE_FILTER_LZIP
-       ARCHIVE_FILTER_LZMA ARCHIVE_FILTER_NONE ARCHIVE_FILTER_PROGRAM
-       ARCHIVE_FILTER_RPM ARCHIVE_FILTER_UU ARCHIVE_FILTER_XZ
-       ARCHIVE_FORMAT_7ZIP ARCHIVE_FORMAT_AR ARCHIVE_FORMAT_AR_BSD
-       ARCHIVE_FORMAT_AR_GNU ARCHIVE_FORMAT_BASE_MASK ARCHIVE_FORMAT_CAB
-       ARCHIVE_FORMAT_CPIO ARCHIVE_FORMAT_CPIO_AFIO_LARGE
-       ARCHIVE_FORMAT_CPIO_BIN_BE ARCHIVE_FORMAT_CPIO_BIN_LE
-       ARCHIVE_FORMAT_CPIO_POSIX ARCHIVE_FORMAT_CPIO_SVR4_CRC
-       ARCHIVE_FORMAT_CPIO_SVR4_NOCRC ARCHIVE_FORMAT_EMPTY
-       ARCHIVE_FORMAT_ISO9660 ARCHIVE_FORMAT_ISO9660_ROCKRIDGE
-       ARCHIVE_FORMAT_LHA ARCHIVE_FORMAT_MTREE ARCHIVE_FORMAT_RAR
+       ARCHIVE_FILTER_COMPRESS ARCHIVE_FILTER_GRZIP ARCHIVE_FILTER_GZIP
+       ARCHIVE_FILTER_LRZIP ARCHIVE_FILTER_LZ4 ARCHIVE_FILTER_LZIP
+       ARCHIVE_FILTER_LZMA ARCHIVE_FILTER_LZOP ARCHIVE_FILTER_NONE
+       ARCHIVE_FILTER_PROGRAM ARCHIVE_FILTER_RPM ARCHIVE_FILTER_UU
+       ARCHIVE_FILTER_XZ ARCHIVE_FILTER_ZSTD ARCHIVE_FORMAT_7ZIP
+       ARCHIVE_FORMAT_AR ARCHIVE_FORMAT_AR_BSD ARCHIVE_FORMAT_AR_GNU
+       ARCHIVE_FORMAT_BASE_MASK ARCHIVE_FORMAT_CAB ARCHIVE_FORMAT_CPIO
+       ARCHIVE_FORMAT_CPIO_AFIO_LARGE ARCHIVE_FORMAT_CPIO_BIN_BE
+       ARCHIVE_FORMAT_CPIO_BIN_LE ARCHIVE_FORMAT_CPIO_POSIX
+       ARCHIVE_FORMAT_CPIO_SVR4_CRC ARCHIVE_FORMAT_CPIO_SVR4_NOCRC
+       ARCHIVE_FORMAT_EMPTY ARCHIVE_FORMAT_ISO9660
+       ARCHIVE_FORMAT_ISO9660_ROCKRIDGE ARCHIVE_FORMAT_LHA
+       ARCHIVE_FORMAT_MTREE ARCHIVE_FORMAT_RAR ARCHIVE_FORMAT_RAR_V5
        ARCHIVE_FORMAT_RAW ARCHIVE_FORMAT_SHAR ARCHIVE_FORMAT_SHAR_BASE
        ARCHIVE_FORMAT_SHAR_DUMP ARCHIVE_FORMAT_TAR ARCHIVE_FORMAT_TAR_GNUTAR
        ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE ARCHIVE_FORMAT_TAR_PAX_RESTRICTED
-       ARCHIVE_FORMAT_TAR_USTAR ARCHIVE_FORMAT_XAR ARCHIVE_FORMAT_ZIP
-       ARCHIVE_MATCH_CTIME ARCHIVE_MATCH_EQUAL ARCHIVE_MATCH_MTIME
-       ARCHIVE_MATCH_NEWER ARCHIVE_MATCH_OLDER ARCHIVE_OK
+       ARCHIVE_FORMAT_TAR_USTAR ARCHIVE_FORMAT_WARC ARCHIVE_FORMAT_XAR
+       ARCHIVE_FORMAT_ZIP ARCHIVE_MATCH_CTIME ARCHIVE_MATCH_EQUAL
+       ARCHIVE_MATCH_MTIME ARCHIVE_MATCH_NEWER ARCHIVE_MATCH_OLDER ARCHIVE_OK
        ARCHIVE_READDISK_HONOR_NODUMP ARCHIVE_READDISK_MAC_COPYFILE
-       ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS ARCHIVE_READDISK_RESTORE_ATIME
-       ARCHIVE_RETRY ARCHIVE_VERSION_NUMBER ARCHIVE_WARN)) {
+       ARCHIVE_READDISK_NO_ACL ARCHIVE_READDISK_NO_FFLAGS
+       ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS ARCHIVE_READDISK_NO_XATTR
+       ARCHIVE_READDISK_RESTORE_ATIME ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_DATA
+       ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA ARCHIVE_READ_FORMAT_CAPS_NONE
+       ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW
+       ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED ARCHIVE_RETRY
+       ARCHIVE_VERSION_NUMBER ARCHIVE_WARN)) {
   next if (eval "my \$a = $constname; 1");
   if ($@ =~ /^Your vendor has not defined LibArchive macro $constname/) {
     print "# pass: $@";