]>
Commit | Line | Data |
---|---|---|
918a6904 DM |
1 | package LibArchive; |
2 | ||
34f6f4f9 | 3 | use 5.036000; |
918a6904 DM |
4 | use strict; |
5 | use warnings; | |
6 | use Carp; | |
7 | ||
8 | require Exporter; | |
9 | use AutoLoader; | |
10 | ||
11 | our @ISA = qw(Exporter); | |
12 | ||
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. | |
16 | ||
17 | # This allows declaration use LibArchive ':all'; | |
18 | # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK | |
19 | # will save memory. | |
20 | our %EXPORT_TAGS = ( 'all' => [ qw( | |
918a6904 DM |
21 | ARCHIVE_COMPRESSION_BZIP2 |
22 | ARCHIVE_COMPRESSION_COMPRESS | |
23 | ARCHIVE_COMPRESSION_GZIP | |
549b20dc | 24 | ARCHIVE_COMPRESSION_LRZIP |
c9a94924 DM |
25 | ARCHIVE_COMPRESSION_LZIP |
26 | ARCHIVE_COMPRESSION_LZMA | |
918a6904 DM |
27 | ARCHIVE_COMPRESSION_NONE |
28 | ARCHIVE_COMPRESSION_PROGRAM | |
c9a94924 DM |
29 | ARCHIVE_COMPRESSION_RPM |
30 | ARCHIVE_COMPRESSION_UU | |
31 | ARCHIVE_COMPRESSION_XZ | |
32 | ARCHIVE_ENTRY_ACL_ADD_FILE | |
33 | ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY | |
34 | ARCHIVE_ENTRY_ACL_APPEND_DATA | |
35 | ARCHIVE_ENTRY_ACL_DELETE | |
36 | ARCHIVE_ENTRY_ACL_DELETE_CHILD | |
37 | ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT | |
38 | ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS | |
39 | ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT | |
549b20dc | 40 | ARCHIVE_ENTRY_ACL_ENTRY_INHERITED |
c9a94924 DM |
41 | ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY |
42 | ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT | |
43 | ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS | |
44 | ARCHIVE_ENTRY_ACL_EVERYONE | |
45 | ARCHIVE_ENTRY_ACL_EXECUTE | |
46 | ARCHIVE_ENTRY_ACL_GROUP | |
47 | ARCHIVE_ENTRY_ACL_GROUP_OBJ | |
48 | ARCHIVE_ENTRY_ACL_INHERITANCE_NFS4 | |
49 | ARCHIVE_ENTRY_ACL_LIST_DIRECTORY | |
50 | ARCHIVE_ENTRY_ACL_MASK | |
51 | ARCHIVE_ENTRY_ACL_OTHER | |
52 | ARCHIVE_ENTRY_ACL_PERMS_NFS4 | |
53 | ARCHIVE_ENTRY_ACL_PERMS_POSIX1E | |
54 | ARCHIVE_ENTRY_ACL_READ | |
55 | ARCHIVE_ENTRY_ACL_READ_ACL | |
56 | ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES | |
57 | ARCHIVE_ENTRY_ACL_READ_DATA | |
58 | ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS | |
549b20dc | 59 | ARCHIVE_ENTRY_ACL_STYLE_COMPACT |
c9a94924 DM |
60 | ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID |
61 | ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT | |
549b20dc SI |
62 | ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA |
63 | ARCHIVE_ENTRY_ACL_STYLE_SOLARIS | |
c9a94924 DM |
64 | ARCHIVE_ENTRY_ACL_SYNCHRONIZE |
65 | ARCHIVE_ENTRY_ACL_TYPE_ACCESS | |
66 | ARCHIVE_ENTRY_ACL_TYPE_ALARM | |
67 | ARCHIVE_ENTRY_ACL_TYPE_ALLOW | |
68 | ARCHIVE_ENTRY_ACL_TYPE_AUDIT | |
69 | ARCHIVE_ENTRY_ACL_TYPE_DEFAULT | |
70 | ARCHIVE_ENTRY_ACL_TYPE_DENY | |
71 | ARCHIVE_ENTRY_ACL_TYPE_NFS4 | |
72 | ARCHIVE_ENTRY_ACL_TYPE_POSIX1E | |
73 | ARCHIVE_ENTRY_ACL_USER | |
74 | ARCHIVE_ENTRY_ACL_USER_OBJ | |
75 | ARCHIVE_ENTRY_ACL_WRITE | |
76 | ARCHIVE_ENTRY_ACL_WRITE_ACL | |
77 | ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES | |
78 | ARCHIVE_ENTRY_ACL_WRITE_DATA | |
79 | ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS | |
80 | ARCHIVE_ENTRY_ACL_WRITE_OWNER | |
34f6f4f9 SI |
81 | ARCHIVE_ENTRY_DIGEST_MD5 |
82 | ARCHIVE_ENTRY_DIGEST_RMD160 | |
83 | ARCHIVE_ENTRY_DIGEST_SHA1 | |
84 | ARCHIVE_ENTRY_DIGEST_SHA256 | |
85 | ARCHIVE_ENTRY_DIGEST_SHA384 | |
86 | ARCHIVE_ENTRY_DIGEST_SHA512 | |
918a6904 DM |
87 | ARCHIVE_EOF |
88 | ARCHIVE_EXTRACT_ACL | |
549b20dc | 89 | ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS |
918a6904 | 90 | ARCHIVE_EXTRACT_FFLAGS |
549b20dc | 91 | ARCHIVE_EXTRACT_HFS_COMPRESSION_FORCED |
c9a94924 | 92 | ARCHIVE_EXTRACT_MAC_METADATA |
918a6904 | 93 | ARCHIVE_EXTRACT_NO_AUTODIR |
549b20dc | 94 | ARCHIVE_EXTRACT_NO_HFS_COMPRESSION |
918a6904 DM |
95 | ARCHIVE_EXTRACT_NO_OVERWRITE |
96 | ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER | |
97 | ARCHIVE_EXTRACT_OWNER | |
98 | ARCHIVE_EXTRACT_PERM | |
549b20dc SI |
99 | ARCHIVE_EXTRACT_SAFE_WRITES |
100 | ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS | |
918a6904 DM |
101 | ARCHIVE_EXTRACT_SECURE_NODOTDOT |
102 | ARCHIVE_EXTRACT_SECURE_SYMLINKS | |
c9a94924 | 103 | ARCHIVE_EXTRACT_SPARSE |
918a6904 DM |
104 | ARCHIVE_EXTRACT_TIME |
105 | ARCHIVE_EXTRACT_UNLINK | |
106 | ARCHIVE_EXTRACT_XATTR | |
107 | ARCHIVE_FAILED | |
108 | ARCHIVE_FATAL | |
c9a94924 DM |
109 | ARCHIVE_FILTER_BZIP2 |
110 | ARCHIVE_FILTER_COMPRESS | |
549b20dc | 111 | ARCHIVE_FILTER_GRZIP |
c9a94924 | 112 | ARCHIVE_FILTER_GZIP |
549b20dc SI |
113 | ARCHIVE_FILTER_LRZIP |
114 | ARCHIVE_FILTER_LZ4 | |
c9a94924 DM |
115 | ARCHIVE_FILTER_LZIP |
116 | ARCHIVE_FILTER_LZMA | |
549b20dc | 117 | ARCHIVE_FILTER_LZOP |
c9a94924 DM |
118 | ARCHIVE_FILTER_NONE |
119 | ARCHIVE_FILTER_PROGRAM | |
120 | ARCHIVE_FILTER_RPM | |
121 | ARCHIVE_FILTER_UU | |
122 | ARCHIVE_FILTER_XZ | |
549b20dc | 123 | ARCHIVE_FILTER_ZSTD |
c9a94924 | 124 | ARCHIVE_FORMAT_7ZIP |
918a6904 DM |
125 | ARCHIVE_FORMAT_AR |
126 | ARCHIVE_FORMAT_AR_BSD | |
127 | ARCHIVE_FORMAT_AR_GNU | |
128 | ARCHIVE_FORMAT_BASE_MASK | |
c9a94924 | 129 | ARCHIVE_FORMAT_CAB |
918a6904 | 130 | ARCHIVE_FORMAT_CPIO |
c9a94924 | 131 | ARCHIVE_FORMAT_CPIO_AFIO_LARGE |
918a6904 DM |
132 | ARCHIVE_FORMAT_CPIO_BIN_BE |
133 | ARCHIVE_FORMAT_CPIO_BIN_LE | |
134 | ARCHIVE_FORMAT_CPIO_POSIX | |
34f6f4f9 | 135 | ARCHIVE_FORMAT_CPIO_PWB |
918a6904 DM |
136 | ARCHIVE_FORMAT_CPIO_SVR4_CRC |
137 | ARCHIVE_FORMAT_CPIO_SVR4_NOCRC | |
138 | ARCHIVE_FORMAT_EMPTY | |
139 | ARCHIVE_FORMAT_ISO9660 | |
140 | ARCHIVE_FORMAT_ISO9660_ROCKRIDGE | |
c9a94924 DM |
141 | ARCHIVE_FORMAT_LHA |
142 | ARCHIVE_FORMAT_MTREE | |
143 | ARCHIVE_FORMAT_RAR | |
549b20dc | 144 | ARCHIVE_FORMAT_RAR_V5 |
c9a94924 | 145 | ARCHIVE_FORMAT_RAW |
918a6904 DM |
146 | ARCHIVE_FORMAT_SHAR |
147 | ARCHIVE_FORMAT_SHAR_BASE | |
148 | ARCHIVE_FORMAT_SHAR_DUMP | |
149 | ARCHIVE_FORMAT_TAR | |
150 | ARCHIVE_FORMAT_TAR_GNUTAR | |
151 | ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE | |
152 | ARCHIVE_FORMAT_TAR_PAX_RESTRICTED | |
153 | ARCHIVE_FORMAT_TAR_USTAR | |
549b20dc | 154 | ARCHIVE_FORMAT_WARC |
c9a94924 | 155 | ARCHIVE_FORMAT_XAR |
918a6904 | 156 | ARCHIVE_FORMAT_ZIP |
c9a94924 DM |
157 | ARCHIVE_MATCH_CTIME |
158 | ARCHIVE_MATCH_EQUAL | |
159 | ARCHIVE_MATCH_MTIME | |
160 | ARCHIVE_MATCH_NEWER | |
161 | ARCHIVE_MATCH_OLDER | |
918a6904 | 162 | ARCHIVE_OK |
c9a94924 DM |
163 | ARCHIVE_READDISK_HONOR_NODUMP |
164 | ARCHIVE_READDISK_MAC_COPYFILE | |
549b20dc SI |
165 | ARCHIVE_READDISK_NO_ACL |
166 | ARCHIVE_READDISK_NO_FFLAGS | |
34f6f4f9 | 167 | ARCHIVE_READDISK_NO_SPARSE |
c9a94924 | 168 | ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS |
549b20dc | 169 | ARCHIVE_READDISK_NO_XATTR |
c9a94924 | 170 | ARCHIVE_READDISK_RESTORE_ATIME |
549b20dc SI |
171 | ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_DATA |
172 | ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA | |
173 | ARCHIVE_READ_FORMAT_CAPS_NONE | |
174 | ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW | |
175 | ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED | |
918a6904 | 176 | ARCHIVE_RETRY |
c9a94924 | 177 | ARCHIVE_VERSION_NUMBER |
918a6904 DM |
178 | ARCHIVE_WARN |
179 | ) ] ); | |
180 | ||
181 | our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); | |
182 | ||
183 | our @EXPORT = qw( | |
918a6904 DM |
184 | ARCHIVE_COMPRESSION_BZIP2 |
185 | ARCHIVE_COMPRESSION_COMPRESS | |
186 | ARCHIVE_COMPRESSION_GZIP | |
549b20dc | 187 | ARCHIVE_COMPRESSION_LRZIP |
c9a94924 DM |
188 | ARCHIVE_COMPRESSION_LZIP |
189 | ARCHIVE_COMPRESSION_LZMA | |
918a6904 DM |
190 | ARCHIVE_COMPRESSION_NONE |
191 | ARCHIVE_COMPRESSION_PROGRAM | |
c9a94924 DM |
192 | ARCHIVE_COMPRESSION_RPM |
193 | ARCHIVE_COMPRESSION_UU | |
194 | ARCHIVE_COMPRESSION_XZ | |
195 | ARCHIVE_ENTRY_ACL_ADD_FILE | |
196 | ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY | |
197 | ARCHIVE_ENTRY_ACL_APPEND_DATA | |
198 | ARCHIVE_ENTRY_ACL_DELETE | |
199 | ARCHIVE_ENTRY_ACL_DELETE_CHILD | |
200 | ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT | |
201 | ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS | |
202 | ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT | |
549b20dc | 203 | ARCHIVE_ENTRY_ACL_ENTRY_INHERITED |
c9a94924 DM |
204 | ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY |
205 | ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT | |
206 | ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS | |
207 | ARCHIVE_ENTRY_ACL_EVERYONE | |
208 | ARCHIVE_ENTRY_ACL_EXECUTE | |
209 | ARCHIVE_ENTRY_ACL_GROUP | |
210 | ARCHIVE_ENTRY_ACL_GROUP_OBJ | |
211 | ARCHIVE_ENTRY_ACL_INHERITANCE_NFS4 | |
212 | ARCHIVE_ENTRY_ACL_LIST_DIRECTORY | |
213 | ARCHIVE_ENTRY_ACL_MASK | |
214 | ARCHIVE_ENTRY_ACL_OTHER | |
215 | ARCHIVE_ENTRY_ACL_PERMS_NFS4 | |
216 | ARCHIVE_ENTRY_ACL_PERMS_POSIX1E | |
217 | ARCHIVE_ENTRY_ACL_READ | |
218 | ARCHIVE_ENTRY_ACL_READ_ACL | |
219 | ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES | |
220 | ARCHIVE_ENTRY_ACL_READ_DATA | |
221 | ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS | |
549b20dc | 222 | ARCHIVE_ENTRY_ACL_STYLE_COMPACT |
c9a94924 DM |
223 | ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID |
224 | ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT | |
549b20dc SI |
225 | ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA |
226 | ARCHIVE_ENTRY_ACL_STYLE_SOLARIS | |
c9a94924 DM |
227 | ARCHIVE_ENTRY_ACL_SYNCHRONIZE |
228 | ARCHIVE_ENTRY_ACL_TYPE_ACCESS | |
229 | ARCHIVE_ENTRY_ACL_TYPE_ALARM | |
230 | ARCHIVE_ENTRY_ACL_TYPE_ALLOW | |
231 | ARCHIVE_ENTRY_ACL_TYPE_AUDIT | |
232 | ARCHIVE_ENTRY_ACL_TYPE_DEFAULT | |
233 | ARCHIVE_ENTRY_ACL_TYPE_DENY | |
234 | ARCHIVE_ENTRY_ACL_TYPE_NFS4 | |
235 | ARCHIVE_ENTRY_ACL_TYPE_POSIX1E | |
236 | ARCHIVE_ENTRY_ACL_USER | |
237 | ARCHIVE_ENTRY_ACL_USER_OBJ | |
238 | ARCHIVE_ENTRY_ACL_WRITE | |
239 | ARCHIVE_ENTRY_ACL_WRITE_ACL | |
240 | ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES | |
241 | ARCHIVE_ENTRY_ACL_WRITE_DATA | |
242 | ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS | |
243 | ARCHIVE_ENTRY_ACL_WRITE_OWNER | |
34f6f4f9 SI |
244 | ARCHIVE_ENTRY_DIGEST_MD5 |
245 | ARCHIVE_ENTRY_DIGEST_RMD160 | |
246 | ARCHIVE_ENTRY_DIGEST_SHA1 | |
247 | ARCHIVE_ENTRY_DIGEST_SHA256 | |
248 | ARCHIVE_ENTRY_DIGEST_SHA384 | |
249 | ARCHIVE_ENTRY_DIGEST_SHA512 | |
918a6904 DM |
250 | ARCHIVE_EOF |
251 | ARCHIVE_EXTRACT_ACL | |
549b20dc | 252 | ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS |
918a6904 | 253 | ARCHIVE_EXTRACT_FFLAGS |
549b20dc | 254 | ARCHIVE_EXTRACT_HFS_COMPRESSION_FORCED |
c9a94924 | 255 | ARCHIVE_EXTRACT_MAC_METADATA |
918a6904 | 256 | ARCHIVE_EXTRACT_NO_AUTODIR |
549b20dc | 257 | ARCHIVE_EXTRACT_NO_HFS_COMPRESSION |
918a6904 DM |
258 | ARCHIVE_EXTRACT_NO_OVERWRITE |
259 | ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER | |
260 | ARCHIVE_EXTRACT_OWNER | |
261 | ARCHIVE_EXTRACT_PERM | |
549b20dc SI |
262 | ARCHIVE_EXTRACT_SAFE_WRITES |
263 | ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS | |
918a6904 DM |
264 | ARCHIVE_EXTRACT_SECURE_NODOTDOT |
265 | ARCHIVE_EXTRACT_SECURE_SYMLINKS | |
c9a94924 | 266 | ARCHIVE_EXTRACT_SPARSE |
918a6904 DM |
267 | ARCHIVE_EXTRACT_TIME |
268 | ARCHIVE_EXTRACT_UNLINK | |
269 | ARCHIVE_EXTRACT_XATTR | |
270 | ARCHIVE_FAILED | |
271 | ARCHIVE_FATAL | |
c9a94924 DM |
272 | ARCHIVE_FILTER_BZIP2 |
273 | ARCHIVE_FILTER_COMPRESS | |
549b20dc | 274 | ARCHIVE_FILTER_GRZIP |
c9a94924 | 275 | ARCHIVE_FILTER_GZIP |
549b20dc SI |
276 | ARCHIVE_FILTER_LRZIP |
277 | ARCHIVE_FILTER_LZ4 | |
c9a94924 DM |
278 | ARCHIVE_FILTER_LZIP |
279 | ARCHIVE_FILTER_LZMA | |
549b20dc | 280 | ARCHIVE_FILTER_LZOP |
c9a94924 DM |
281 | ARCHIVE_FILTER_NONE |
282 | ARCHIVE_FILTER_PROGRAM | |
283 | ARCHIVE_FILTER_RPM | |
284 | ARCHIVE_FILTER_UU | |
285 | ARCHIVE_FILTER_XZ | |
549b20dc | 286 | ARCHIVE_FILTER_ZSTD |
c9a94924 | 287 | ARCHIVE_FORMAT_7ZIP |
918a6904 DM |
288 | ARCHIVE_FORMAT_AR |
289 | ARCHIVE_FORMAT_AR_BSD | |
290 | ARCHIVE_FORMAT_AR_GNU | |
291 | ARCHIVE_FORMAT_BASE_MASK | |
c9a94924 | 292 | ARCHIVE_FORMAT_CAB |
918a6904 | 293 | ARCHIVE_FORMAT_CPIO |
c9a94924 | 294 | ARCHIVE_FORMAT_CPIO_AFIO_LARGE |
918a6904 DM |
295 | ARCHIVE_FORMAT_CPIO_BIN_BE |
296 | ARCHIVE_FORMAT_CPIO_BIN_LE | |
297 | ARCHIVE_FORMAT_CPIO_POSIX | |
34f6f4f9 | 298 | ARCHIVE_FORMAT_CPIO_PWB |
918a6904 DM |
299 | ARCHIVE_FORMAT_CPIO_SVR4_CRC |
300 | ARCHIVE_FORMAT_CPIO_SVR4_NOCRC | |
301 | ARCHIVE_FORMAT_EMPTY | |
302 | ARCHIVE_FORMAT_ISO9660 | |
303 | ARCHIVE_FORMAT_ISO9660_ROCKRIDGE | |
c9a94924 DM |
304 | ARCHIVE_FORMAT_LHA |
305 | ARCHIVE_FORMAT_MTREE | |
306 | ARCHIVE_FORMAT_RAR | |
549b20dc | 307 | ARCHIVE_FORMAT_RAR_V5 |
c9a94924 | 308 | ARCHIVE_FORMAT_RAW |
918a6904 DM |
309 | ARCHIVE_FORMAT_SHAR |
310 | ARCHIVE_FORMAT_SHAR_BASE | |
311 | ARCHIVE_FORMAT_SHAR_DUMP | |
312 | ARCHIVE_FORMAT_TAR | |
313 | ARCHIVE_FORMAT_TAR_GNUTAR | |
314 | ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE | |
315 | ARCHIVE_FORMAT_TAR_PAX_RESTRICTED | |
316 | ARCHIVE_FORMAT_TAR_USTAR | |
549b20dc | 317 | ARCHIVE_FORMAT_WARC |
c9a94924 | 318 | ARCHIVE_FORMAT_XAR |
918a6904 | 319 | ARCHIVE_FORMAT_ZIP |
c9a94924 DM |
320 | ARCHIVE_MATCH_CTIME |
321 | ARCHIVE_MATCH_EQUAL | |
322 | ARCHIVE_MATCH_MTIME | |
323 | ARCHIVE_MATCH_NEWER | |
324 | ARCHIVE_MATCH_OLDER | |
918a6904 | 325 | ARCHIVE_OK |
c9a94924 DM |
326 | ARCHIVE_READDISK_HONOR_NODUMP |
327 | ARCHIVE_READDISK_MAC_COPYFILE | |
549b20dc SI |
328 | ARCHIVE_READDISK_NO_ACL |
329 | ARCHIVE_READDISK_NO_FFLAGS | |
34f6f4f9 | 330 | ARCHIVE_READDISK_NO_SPARSE |
c9a94924 | 331 | ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS |
549b20dc | 332 | ARCHIVE_READDISK_NO_XATTR |
c9a94924 | 333 | ARCHIVE_READDISK_RESTORE_ATIME |
549b20dc SI |
334 | ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_DATA |
335 | ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA | |
336 | ARCHIVE_READ_FORMAT_CAPS_NONE | |
337 | ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW | |
338 | ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED | |
918a6904 | 339 | ARCHIVE_RETRY |
c9a94924 | 340 | ARCHIVE_VERSION_NUMBER |
918a6904 DM |
341 | ARCHIVE_WARN |
342 | ); | |
343 | ||
34f6f4f9 | 344 | our $VERSION = '3.6.2'; |
918a6904 DM |
345 | |
346 | sub AUTOLOAD { | |
347 | # This AUTOLOAD is used to 'autoload' constants from the constant() | |
348 | # XS function. | |
349 | ||
350 | my $constname; | |
351 | our $AUTOLOAD; | |
352 | ($constname = $AUTOLOAD) =~ s/.*:://; | |
353 | croak "&LibArchive::constant not defined" if $constname eq 'constant'; | |
354 | my ($error, $val) = constant($constname); | |
355 | if ($error) { croak $error; } | |
356 | { | |
357 | no strict 'refs'; | |
c9a94924 DM |
358 | # Fixed between 5.005_53 and 5.005_61 |
359 | #XXX if ($] >= 5.00561) { | |
360 | #XXX *$AUTOLOAD = sub () { $val }; | |
361 | #XXX } | |
362 | #XXX else { | |
363 | *$AUTOLOAD = sub { $val }; | |
364 | #XXX } | |
918a6904 DM |
365 | } |
366 | goto &$AUTOLOAD; | |
367 | } | |
368 | ||
369 | require XSLoader; | |
370 | XSLoader::load('LibArchive', $VERSION); | |
371 | ||
372 | # Preloaded methods go here. | |
373 | ||
374 | # Autoload methods go after =cut, and are processed by the autosplit program. | |
375 | ||
376 | 1; | |
377 | __END__ | |
378 | # Below is stub documentation for your module. You'd better edit it! | |
379 | ||
380 | =head1 NAME | |
381 | ||
382 | LibArchive - Perl extension to access libarchive functions | |
383 | ||
384 | =head1 SYNOPSIS | |
385 | ||
386 | use LibArchive; | |
387 | ||
918a6904 DM |
388 | =head1 DESCRIPTION |
389 | ||
390 | We currently support only a limited interface for reading archives. | |
391 | ||
392 | =head2 EXPORT | |
393 | ||
394 | None by default. | |
395 | ||
396 | =head2 Exportable constants | |
397 | ||
918a6904 DM |
398 | ARCHIVE_COMPRESSION_BZIP2 |
399 | ARCHIVE_COMPRESSION_COMPRESS | |
400 | ARCHIVE_COMPRESSION_GZIP | |
549b20dc | 401 | ARCHIVE_COMPRESSION_LRZIP |
c9a94924 DM |
402 | ARCHIVE_COMPRESSION_LZIP |
403 | ARCHIVE_COMPRESSION_LZMA | |
918a6904 DM |
404 | ARCHIVE_COMPRESSION_NONE |
405 | ARCHIVE_COMPRESSION_PROGRAM | |
c9a94924 DM |
406 | ARCHIVE_COMPRESSION_RPM |
407 | ARCHIVE_COMPRESSION_UU | |
408 | ARCHIVE_COMPRESSION_XZ | |
409 | ARCHIVE_ENTRY_ACL_ADD_FILE | |
410 | ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY | |
411 | ARCHIVE_ENTRY_ACL_APPEND_DATA | |
412 | ARCHIVE_ENTRY_ACL_DELETE | |
413 | ARCHIVE_ENTRY_ACL_DELETE_CHILD | |
414 | ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT | |
415 | ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS | |
416 | ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT | |
549b20dc | 417 | ARCHIVE_ENTRY_ACL_ENTRY_INHERITED |
c9a94924 DM |
418 | ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY |
419 | ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT | |
420 | ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS | |
421 | ARCHIVE_ENTRY_ACL_EVERYONE | |
422 | ARCHIVE_ENTRY_ACL_EXECUTE | |
423 | ARCHIVE_ENTRY_ACL_GROUP | |
424 | ARCHIVE_ENTRY_ACL_GROUP_OBJ | |
425 | ARCHIVE_ENTRY_ACL_INHERITANCE_NFS4 | |
426 | ARCHIVE_ENTRY_ACL_LIST_DIRECTORY | |
427 | ARCHIVE_ENTRY_ACL_MASK | |
428 | ARCHIVE_ENTRY_ACL_OTHER | |
429 | ARCHIVE_ENTRY_ACL_PERMS_NFS4 | |
430 | ARCHIVE_ENTRY_ACL_PERMS_POSIX1E | |
431 | ARCHIVE_ENTRY_ACL_READ | |
432 | ARCHIVE_ENTRY_ACL_READ_ACL | |
433 | ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES | |
434 | ARCHIVE_ENTRY_ACL_READ_DATA | |
435 | ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS | |
549b20dc | 436 | ARCHIVE_ENTRY_ACL_STYLE_COMPACT |
c9a94924 DM |
437 | ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID |
438 | ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT | |
549b20dc SI |
439 | ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA |
440 | ARCHIVE_ENTRY_ACL_STYLE_SOLARIS | |
c9a94924 DM |
441 | ARCHIVE_ENTRY_ACL_SYNCHRONIZE |
442 | ARCHIVE_ENTRY_ACL_TYPE_ACCESS | |
443 | ARCHIVE_ENTRY_ACL_TYPE_ALARM | |
444 | ARCHIVE_ENTRY_ACL_TYPE_ALLOW | |
445 | ARCHIVE_ENTRY_ACL_TYPE_AUDIT | |
446 | ARCHIVE_ENTRY_ACL_TYPE_DEFAULT | |
447 | ARCHIVE_ENTRY_ACL_TYPE_DENY | |
448 | ARCHIVE_ENTRY_ACL_TYPE_NFS4 | |
449 | ARCHIVE_ENTRY_ACL_TYPE_POSIX1E | |
450 | ARCHIVE_ENTRY_ACL_USER | |
451 | ARCHIVE_ENTRY_ACL_USER_OBJ | |
452 | ARCHIVE_ENTRY_ACL_WRITE | |
453 | ARCHIVE_ENTRY_ACL_WRITE_ACL | |
454 | ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES | |
455 | ARCHIVE_ENTRY_ACL_WRITE_DATA | |
456 | ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS | |
457 | ARCHIVE_ENTRY_ACL_WRITE_OWNER | |
34f6f4f9 SI |
458 | ARCHIVE_ENTRY_DIGEST_MD5 |
459 | ARCHIVE_ENTRY_DIGEST_RMD160 | |
460 | ARCHIVE_ENTRY_DIGEST_SHA1 | |
461 | ARCHIVE_ENTRY_DIGEST_SHA256 | |
462 | ARCHIVE_ENTRY_DIGEST_SHA384 | |
463 | ARCHIVE_ENTRY_DIGEST_SHA512 | |
918a6904 DM |
464 | ARCHIVE_EOF |
465 | ARCHIVE_EXTRACT_ACL | |
549b20dc | 466 | ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS |
918a6904 | 467 | ARCHIVE_EXTRACT_FFLAGS |
549b20dc | 468 | ARCHIVE_EXTRACT_HFS_COMPRESSION_FORCED |
c9a94924 | 469 | ARCHIVE_EXTRACT_MAC_METADATA |
918a6904 | 470 | ARCHIVE_EXTRACT_NO_AUTODIR |
549b20dc | 471 | ARCHIVE_EXTRACT_NO_HFS_COMPRESSION |
918a6904 DM |
472 | ARCHIVE_EXTRACT_NO_OVERWRITE |
473 | ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER | |
474 | ARCHIVE_EXTRACT_OWNER | |
475 | ARCHIVE_EXTRACT_PERM | |
549b20dc SI |
476 | ARCHIVE_EXTRACT_SAFE_WRITES |
477 | ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS | |
918a6904 DM |
478 | ARCHIVE_EXTRACT_SECURE_NODOTDOT |
479 | ARCHIVE_EXTRACT_SECURE_SYMLINKS | |
c9a94924 | 480 | ARCHIVE_EXTRACT_SPARSE |
918a6904 DM |
481 | ARCHIVE_EXTRACT_TIME |
482 | ARCHIVE_EXTRACT_UNLINK | |
483 | ARCHIVE_EXTRACT_XATTR | |
484 | ARCHIVE_FAILED | |
485 | ARCHIVE_FATAL | |
c9a94924 DM |
486 | ARCHIVE_FILTER_BZIP2 |
487 | ARCHIVE_FILTER_COMPRESS | |
549b20dc | 488 | ARCHIVE_FILTER_GRZIP |
c9a94924 | 489 | ARCHIVE_FILTER_GZIP |
549b20dc SI |
490 | ARCHIVE_FILTER_LRZIP |
491 | ARCHIVE_FILTER_LZ4 | |
c9a94924 DM |
492 | ARCHIVE_FILTER_LZIP |
493 | ARCHIVE_FILTER_LZMA | |
549b20dc | 494 | ARCHIVE_FILTER_LZOP |
c9a94924 DM |
495 | ARCHIVE_FILTER_NONE |
496 | ARCHIVE_FILTER_PROGRAM | |
497 | ARCHIVE_FILTER_RPM | |
498 | ARCHIVE_FILTER_UU | |
499 | ARCHIVE_FILTER_XZ | |
549b20dc | 500 | ARCHIVE_FILTER_ZSTD |
c9a94924 | 501 | ARCHIVE_FORMAT_7ZIP |
918a6904 DM |
502 | ARCHIVE_FORMAT_AR |
503 | ARCHIVE_FORMAT_AR_BSD | |
504 | ARCHIVE_FORMAT_AR_GNU | |
505 | ARCHIVE_FORMAT_BASE_MASK | |
c9a94924 | 506 | ARCHIVE_FORMAT_CAB |
918a6904 | 507 | ARCHIVE_FORMAT_CPIO |
c9a94924 | 508 | ARCHIVE_FORMAT_CPIO_AFIO_LARGE |
918a6904 DM |
509 | ARCHIVE_FORMAT_CPIO_BIN_BE |
510 | ARCHIVE_FORMAT_CPIO_BIN_LE | |
511 | ARCHIVE_FORMAT_CPIO_POSIX | |
34f6f4f9 | 512 | ARCHIVE_FORMAT_CPIO_PWB |
918a6904 DM |
513 | ARCHIVE_FORMAT_CPIO_SVR4_CRC |
514 | ARCHIVE_FORMAT_CPIO_SVR4_NOCRC | |
515 | ARCHIVE_FORMAT_EMPTY | |
516 | ARCHIVE_FORMAT_ISO9660 | |
517 | ARCHIVE_FORMAT_ISO9660_ROCKRIDGE | |
c9a94924 DM |
518 | ARCHIVE_FORMAT_LHA |
519 | ARCHIVE_FORMAT_MTREE | |
520 | ARCHIVE_FORMAT_RAR | |
549b20dc | 521 | ARCHIVE_FORMAT_RAR_V5 |
c9a94924 | 522 | ARCHIVE_FORMAT_RAW |
918a6904 DM |
523 | ARCHIVE_FORMAT_SHAR |
524 | ARCHIVE_FORMAT_SHAR_BASE | |
525 | ARCHIVE_FORMAT_SHAR_DUMP | |
526 | ARCHIVE_FORMAT_TAR | |
527 | ARCHIVE_FORMAT_TAR_GNUTAR | |
528 | ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE | |
529 | ARCHIVE_FORMAT_TAR_PAX_RESTRICTED | |
530 | ARCHIVE_FORMAT_TAR_USTAR | |
549b20dc | 531 | ARCHIVE_FORMAT_WARC |
c9a94924 | 532 | ARCHIVE_FORMAT_XAR |
918a6904 | 533 | ARCHIVE_FORMAT_ZIP |
c9a94924 DM |
534 | ARCHIVE_MATCH_CTIME |
535 | ARCHIVE_MATCH_EQUAL | |
536 | ARCHIVE_MATCH_MTIME | |
537 | ARCHIVE_MATCH_NEWER | |
538 | ARCHIVE_MATCH_OLDER | |
918a6904 | 539 | ARCHIVE_OK |
c9a94924 DM |
540 | ARCHIVE_READDISK_HONOR_NODUMP |
541 | ARCHIVE_READDISK_MAC_COPYFILE | |
549b20dc SI |
542 | ARCHIVE_READDISK_NO_ACL |
543 | ARCHIVE_READDISK_NO_FFLAGS | |
34f6f4f9 | 544 | ARCHIVE_READDISK_NO_SPARSE |
c9a94924 | 545 | ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS |
549b20dc | 546 | ARCHIVE_READDISK_NO_XATTR |
c9a94924 | 547 | ARCHIVE_READDISK_RESTORE_ATIME |
549b20dc SI |
548 | ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_DATA |
549 | ARCHIVE_READ_FORMAT_CAPS_ENCRYPT_METADATA | |
550 | ARCHIVE_READ_FORMAT_CAPS_NONE | |
551 | ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW | |
552 | ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED | |
918a6904 | 553 | ARCHIVE_RETRY |
c9a94924 | 554 | ARCHIVE_VERSION_NUMBER |
918a6904 DM |
555 | ARCHIVE_WARN |
556 | ||
549b20dc SI |
557 | |
558 | ||
918a6904 DM |
559 | =head1 SEE ALSO |
560 | ||
c9a94924 | 561 | man libarchive |
918a6904 DM |
562 | |
563 | =head1 AUTHOR | |
564 | ||
565 | perl bindings: Proxmox Support Team, E<lt>support@proxmox.comE<gt> | |
566 | ||
567 | libarchive: Tim Kientzle | |
568 | ||
569 | =head1 COPYRIGHT AND LICENSE | |
570 | ||
f05d0585 TL |
571 | Copyright (C) 2007-2023 Proxmox Server Solutions GmbH <support@proxmox.com> |
572 | ||
573 | This program is free software: you can redistribute it and/or modify it under | |
574 | the terms of the GNU Affero General Public License as published by the Free | |
575 | Software Foundation, either version 3 of the License, or (at your option) any | |
576 | later version. | |
577 | ||
578 | This program is distributed in the hope that it will be useful, but WITHOUT ANY | |
579 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A | |
580 | PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. | |
581 | ||
582 | You should have received a copy of the GNU Affero General Public License along | |
583 | with this program. If not, see <https://www.gnu.org/licenses/>. | |
918a6904 | 584 | |
918a6904 | 585 | =cut |