]>
git.proxmox.com Git - libarchive-perl.git/blob - LibArchive/lib/LibArchive.pm
11 our @ISA = qw(Exporter);
13 # Items to export into callers namespace by default. Note: do not export
14 # names by default without a very good reason. Use EXPORT_OK instead.
15 # Do not simply export all your public functions/methods/constants.
17 # This allows declaration use LibArchive ':all';
18 # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
20 our %EXPORT_TAGS = ( 'all' => [ qw(
29 ARCHIVE_COMPRESSION_BZIP2
30 ARCHIVE_COMPRESSION_COMPRESS
31 ARCHIVE_COMPRESSION_GZIP
32 ARCHIVE_COMPRESSION_LZIP
33 ARCHIVE_COMPRESSION_LZMA
34 ARCHIVE_COMPRESSION_NONE
35 ARCHIVE_COMPRESSION_PROGRAM
36 ARCHIVE_COMPRESSION_RPM
37 ARCHIVE_COMPRESSION_UU
38 ARCHIVE_COMPRESSION_XZ
39 ARCHIVE_ENTRY_ACL_ADD_FILE
40 ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY
41 ARCHIVE_ENTRY_ACL_APPEND_DATA
42 ARCHIVE_ENTRY_ACL_DELETE
43 ARCHIVE_ENTRY_ACL_DELETE_CHILD
44 ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT
45 ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS
46 ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT
47 ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY
48 ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT
49 ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS
50 ARCHIVE_ENTRY_ACL_EVERYONE
51 ARCHIVE_ENTRY_ACL_EXECUTE
52 ARCHIVE_ENTRY_ACL_GROUP
53 ARCHIVE_ENTRY_ACL_GROUP_OBJ
54 ARCHIVE_ENTRY_ACL_INHERITANCE_NFS4
55 ARCHIVE_ENTRY_ACL_LIST_DIRECTORY
56 ARCHIVE_ENTRY_ACL_MASK
57 ARCHIVE_ENTRY_ACL_OTHER
58 ARCHIVE_ENTRY_ACL_PERMS_NFS4
59 ARCHIVE_ENTRY_ACL_PERMS_POSIX1E
60 ARCHIVE_ENTRY_ACL_READ
61 ARCHIVE_ENTRY_ACL_READ_ACL
62 ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES
63 ARCHIVE_ENTRY_ACL_READ_DATA
64 ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS
65 ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID
66 ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT
67 ARCHIVE_ENTRY_ACL_SYNCHRONIZE
68 ARCHIVE_ENTRY_ACL_TYPE_ACCESS
69 ARCHIVE_ENTRY_ACL_TYPE_ALARM
70 ARCHIVE_ENTRY_ACL_TYPE_ALLOW
71 ARCHIVE_ENTRY_ACL_TYPE_AUDIT
72 ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
73 ARCHIVE_ENTRY_ACL_TYPE_DENY
74 ARCHIVE_ENTRY_ACL_TYPE_NFS4
75 ARCHIVE_ENTRY_ACL_TYPE_POSIX1E
76 ARCHIVE_ENTRY_ACL_USER
77 ARCHIVE_ENTRY_ACL_USER_OBJ
78 ARCHIVE_ENTRY_ACL_WRITE
79 ARCHIVE_ENTRY_ACL_WRITE_ACL
80 ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES
81 ARCHIVE_ENTRY_ACL_WRITE_DATA
82 ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS
83 ARCHIVE_ENTRY_ACL_WRITE_OWNER
86 ARCHIVE_EXTRACT_FFLAGS
87 ARCHIVE_EXTRACT_MAC_METADATA
88 ARCHIVE_EXTRACT_NO_AUTODIR
89 ARCHIVE_EXTRACT_NO_OVERWRITE
90 ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER
93 ARCHIVE_EXTRACT_SECURE_NODOTDOT
94 ARCHIVE_EXTRACT_SECURE_SYMLINKS
95 ARCHIVE_EXTRACT_SPARSE
97 ARCHIVE_EXTRACT_UNLINK
102 ARCHIVE_FILTER_COMPRESS
107 ARCHIVE_FILTER_PROGRAM
113 ARCHIVE_FORMAT_AR_BSD
114 ARCHIVE_FORMAT_AR_GNU
115 ARCHIVE_FORMAT_BASE_MASK
118 ARCHIVE_FORMAT_CPIO_AFIO_LARGE
119 ARCHIVE_FORMAT_CPIO_BIN_BE
120 ARCHIVE_FORMAT_CPIO_BIN_LE
121 ARCHIVE_FORMAT_CPIO_POSIX
122 ARCHIVE_FORMAT_CPIO_SVR4_CRC
123 ARCHIVE_FORMAT_CPIO_SVR4_NOCRC
125 ARCHIVE_FORMAT_ISO9660
126 ARCHIVE_FORMAT_ISO9660_ROCKRIDGE
132 ARCHIVE_FORMAT_SHAR_BASE
133 ARCHIVE_FORMAT_SHAR_DUMP
135 ARCHIVE_FORMAT_TAR_GNUTAR
136 ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE
137 ARCHIVE_FORMAT_TAR_PAX_RESTRICTED
138 ARCHIVE_FORMAT_TAR_USTAR
147 ARCHIVE_READDISK_HONOR_NODUMP
148 ARCHIVE_READDISK_MAC_COPYFILE
149 ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS
150 ARCHIVE_READDISK_RESTORE_ATIME
152 ARCHIVE_VERSION_NUMBER
156 our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
167 ARCHIVE_COMPRESSION_BZIP2
168 ARCHIVE_COMPRESSION_COMPRESS
169 ARCHIVE_COMPRESSION_GZIP
170 ARCHIVE_COMPRESSION_LZIP
171 ARCHIVE_COMPRESSION_LZMA
172 ARCHIVE_COMPRESSION_NONE
173 ARCHIVE_COMPRESSION_PROGRAM
174 ARCHIVE_COMPRESSION_RPM
175 ARCHIVE_COMPRESSION_UU
176 ARCHIVE_COMPRESSION_XZ
177 ARCHIVE_ENTRY_ACL_ADD_FILE
178 ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY
179 ARCHIVE_ENTRY_ACL_APPEND_DATA
180 ARCHIVE_ENTRY_ACL_DELETE
181 ARCHIVE_ENTRY_ACL_DELETE_CHILD
182 ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT
183 ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS
184 ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT
185 ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY
186 ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT
187 ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS
188 ARCHIVE_ENTRY_ACL_EVERYONE
189 ARCHIVE_ENTRY_ACL_EXECUTE
190 ARCHIVE_ENTRY_ACL_GROUP
191 ARCHIVE_ENTRY_ACL_GROUP_OBJ
192 ARCHIVE_ENTRY_ACL_INHERITANCE_NFS4
193 ARCHIVE_ENTRY_ACL_LIST_DIRECTORY
194 ARCHIVE_ENTRY_ACL_MASK
195 ARCHIVE_ENTRY_ACL_OTHER
196 ARCHIVE_ENTRY_ACL_PERMS_NFS4
197 ARCHIVE_ENTRY_ACL_PERMS_POSIX1E
198 ARCHIVE_ENTRY_ACL_READ
199 ARCHIVE_ENTRY_ACL_READ_ACL
200 ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES
201 ARCHIVE_ENTRY_ACL_READ_DATA
202 ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS
203 ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID
204 ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT
205 ARCHIVE_ENTRY_ACL_SYNCHRONIZE
206 ARCHIVE_ENTRY_ACL_TYPE_ACCESS
207 ARCHIVE_ENTRY_ACL_TYPE_ALARM
208 ARCHIVE_ENTRY_ACL_TYPE_ALLOW
209 ARCHIVE_ENTRY_ACL_TYPE_AUDIT
210 ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
211 ARCHIVE_ENTRY_ACL_TYPE_DENY
212 ARCHIVE_ENTRY_ACL_TYPE_NFS4
213 ARCHIVE_ENTRY_ACL_TYPE_POSIX1E
214 ARCHIVE_ENTRY_ACL_USER
215 ARCHIVE_ENTRY_ACL_USER_OBJ
216 ARCHIVE_ENTRY_ACL_WRITE
217 ARCHIVE_ENTRY_ACL_WRITE_ACL
218 ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES
219 ARCHIVE_ENTRY_ACL_WRITE_DATA
220 ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS
221 ARCHIVE_ENTRY_ACL_WRITE_OWNER
224 ARCHIVE_EXTRACT_FFLAGS
225 ARCHIVE_EXTRACT_MAC_METADATA
226 ARCHIVE_EXTRACT_NO_AUTODIR
227 ARCHIVE_EXTRACT_NO_OVERWRITE
228 ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER
229 ARCHIVE_EXTRACT_OWNER
231 ARCHIVE_EXTRACT_SECURE_NODOTDOT
232 ARCHIVE_EXTRACT_SECURE_SYMLINKS
233 ARCHIVE_EXTRACT_SPARSE
235 ARCHIVE_EXTRACT_UNLINK
236 ARCHIVE_EXTRACT_XATTR
240 ARCHIVE_FILTER_COMPRESS
245 ARCHIVE_FILTER_PROGRAM
251 ARCHIVE_FORMAT_AR_BSD
252 ARCHIVE_FORMAT_AR_GNU
253 ARCHIVE_FORMAT_BASE_MASK
256 ARCHIVE_FORMAT_CPIO_AFIO_LARGE
257 ARCHIVE_FORMAT_CPIO_BIN_BE
258 ARCHIVE_FORMAT_CPIO_BIN_LE
259 ARCHIVE_FORMAT_CPIO_POSIX
260 ARCHIVE_FORMAT_CPIO_SVR4_CRC
261 ARCHIVE_FORMAT_CPIO_SVR4_NOCRC
263 ARCHIVE_FORMAT_ISO9660
264 ARCHIVE_FORMAT_ISO9660_ROCKRIDGE
270 ARCHIVE_FORMAT_SHAR_BASE
271 ARCHIVE_FORMAT_SHAR_DUMP
273 ARCHIVE_FORMAT_TAR_GNUTAR
274 ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE
275 ARCHIVE_FORMAT_TAR_PAX_RESTRICTED
276 ARCHIVE_FORMAT_TAR_USTAR
285 ARCHIVE_READDISK_HONOR_NODUMP
286 ARCHIVE_READDISK_MAC_COPYFILE
287 ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS
288 ARCHIVE_READDISK_RESTORE_ATIME
290 ARCHIVE_VERSION_NUMBER
294 our $VERSION = '3.0.4';
297 # This AUTOLOAD is used to 'autoload' constants from the constant()
302 ($constname = $AUTOLOAD) =~ s/.*:://;
303 croak
"&LibArchive::constant not defined" if $constname eq 'constant';
304 my ($error, $val) = constant($constname);
305 if ($error) { croak
$error; }
308 # Fixed between 5.005_53 and 5.005_61
309 #XXX if ($] >= 5.00561) {
310 #XXX *$AUTOLOAD = sub () { $val };
313 *$AUTOLOAD = sub { $val };
320 XSLoader
::load
('LibArchive', $VERSION);
322 # Preloaded methods go here.
324 # Autoload methods go after =cut, and are processed by the autosplit program.
328 # Below is stub documentation for your module. You'd better edit it!
332 LibArchive - Perl extension to access libarchive functions
340 We currently support only a limited interface for reading archives.
346 =head2 Exportable constants
356 ARCHIVE_COMPRESSION_BZIP2
357 ARCHIVE_COMPRESSION_COMPRESS
358 ARCHIVE_COMPRESSION_GZIP
359 ARCHIVE_COMPRESSION_LZIP
360 ARCHIVE_COMPRESSION_LZMA
361 ARCHIVE_COMPRESSION_NONE
362 ARCHIVE_COMPRESSION_PROGRAM
363 ARCHIVE_COMPRESSION_RPM
364 ARCHIVE_COMPRESSION_UU
365 ARCHIVE_COMPRESSION_XZ
366 ARCHIVE_ENTRY_ACL_ADD_FILE
367 ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY
368 ARCHIVE_ENTRY_ACL_APPEND_DATA
369 ARCHIVE_ENTRY_ACL_DELETE
370 ARCHIVE_ENTRY_ACL_DELETE_CHILD
371 ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT
372 ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS
373 ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT
374 ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY
375 ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT
376 ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS
377 ARCHIVE_ENTRY_ACL_EVERYONE
378 ARCHIVE_ENTRY_ACL_EXECUTE
379 ARCHIVE_ENTRY_ACL_GROUP
380 ARCHIVE_ENTRY_ACL_GROUP_OBJ
381 ARCHIVE_ENTRY_ACL_INHERITANCE_NFS4
382 ARCHIVE_ENTRY_ACL_LIST_DIRECTORY
383 ARCHIVE_ENTRY_ACL_MASK
384 ARCHIVE_ENTRY_ACL_OTHER
385 ARCHIVE_ENTRY_ACL_PERMS_NFS4
386 ARCHIVE_ENTRY_ACL_PERMS_POSIX1E
387 ARCHIVE_ENTRY_ACL_READ
388 ARCHIVE_ENTRY_ACL_READ_ACL
389 ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES
390 ARCHIVE_ENTRY_ACL_READ_DATA
391 ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS
392 ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID
393 ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT
394 ARCHIVE_ENTRY_ACL_SYNCHRONIZE
395 ARCHIVE_ENTRY_ACL_TYPE_ACCESS
396 ARCHIVE_ENTRY_ACL_TYPE_ALARM
397 ARCHIVE_ENTRY_ACL_TYPE_ALLOW
398 ARCHIVE_ENTRY_ACL_TYPE_AUDIT
399 ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
400 ARCHIVE_ENTRY_ACL_TYPE_DENY
401 ARCHIVE_ENTRY_ACL_TYPE_NFS4
402 ARCHIVE_ENTRY_ACL_TYPE_POSIX1E
403 ARCHIVE_ENTRY_ACL_USER
404 ARCHIVE_ENTRY_ACL_USER_OBJ
405 ARCHIVE_ENTRY_ACL_WRITE
406 ARCHIVE_ENTRY_ACL_WRITE_ACL
407 ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES
408 ARCHIVE_ENTRY_ACL_WRITE_DATA
409 ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS
410 ARCHIVE_ENTRY_ACL_WRITE_OWNER
413 ARCHIVE_EXTRACT_FFLAGS
414 ARCHIVE_EXTRACT_MAC_METADATA
415 ARCHIVE_EXTRACT_NO_AUTODIR
416 ARCHIVE_EXTRACT_NO_OVERWRITE
417 ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER
418 ARCHIVE_EXTRACT_OWNER
420 ARCHIVE_EXTRACT_SECURE_NODOTDOT
421 ARCHIVE_EXTRACT_SECURE_SYMLINKS
422 ARCHIVE_EXTRACT_SPARSE
424 ARCHIVE_EXTRACT_UNLINK
425 ARCHIVE_EXTRACT_XATTR
429 ARCHIVE_FILTER_COMPRESS
434 ARCHIVE_FILTER_PROGRAM
440 ARCHIVE_FORMAT_AR_BSD
441 ARCHIVE_FORMAT_AR_GNU
442 ARCHIVE_FORMAT_BASE_MASK
445 ARCHIVE_FORMAT_CPIO_AFIO_LARGE
446 ARCHIVE_FORMAT_CPIO_BIN_BE
447 ARCHIVE_FORMAT_CPIO_BIN_LE
448 ARCHIVE_FORMAT_CPIO_POSIX
449 ARCHIVE_FORMAT_CPIO_SVR4_CRC
450 ARCHIVE_FORMAT_CPIO_SVR4_NOCRC
452 ARCHIVE_FORMAT_ISO9660
453 ARCHIVE_FORMAT_ISO9660_ROCKRIDGE
459 ARCHIVE_FORMAT_SHAR_BASE
460 ARCHIVE_FORMAT_SHAR_DUMP
462 ARCHIVE_FORMAT_TAR_GNUTAR
463 ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE
464 ARCHIVE_FORMAT_TAR_PAX_RESTRICTED
465 ARCHIVE_FORMAT_TAR_USTAR
474 ARCHIVE_READDISK_HONOR_NODUMP
475 ARCHIVE_READDISK_MAC_COPYFILE
476 ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS
477 ARCHIVE_READDISK_RESTORE_ATIME
479 ARCHIVE_VERSION_NUMBER
488 perl bindings: Proxmox Support Team, E<lt>support@proxmox.comE<gt>
490 libarchive: Tim Kientzle
492 =head1 COPYRIGHT AND LICENSE
494 Copyright (C) 2007-2014 by Dietmar Maurer
496 This library (perl bindings) is free software; you can redistribute it
497 and/or modify it under the same terms as Perl itself, either Perl
498 version 5.8.8 or, at your option, any later version of Perl 5 you may
501 The librachive code has the following Copyright
503 Copyright (c) 2003-2006 Tim Kientzle
506 Redistribution and use in source and binary forms, with or without
507 modification, are permitted provided that the following conditions
509 1. Redistributions of source code must retain the above copyright
510 notice, this list of conditions and the following disclaimer
511 in this position and unchanged.
512 2. Redistributions in binary form must reproduce the above copyright
513 notice, this list of conditions and the following disclaimer in the
514 documentation and/or other materials provided with the distribution.
516 THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
517 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
518 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
519 IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
520 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
521 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
522 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
523 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
524 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
525 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.