libarchive-static 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. data/ext/Makefile +6 -0
  2. data/ext/extconf.rb +61 -0
  3. data/ext/libarchive-0.1.1/COPYING.libarchive +60 -0
  4. data/ext/libarchive-0.1.1/LICENSE.libbzip2 +42 -0
  5. data/ext/libarchive-0.1.1/README.txt +143 -0
  6. data/ext/libarchive-0.1.1/ext/Makefile.in +0 -0
  7. data/ext/libarchive-0.1.1/ext/archive_read_support_compression.c +31 -0
  8. data/ext/libarchive-0.1.1/ext/archive_read_support_compression.h +6 -0
  9. data/ext/libarchive-0.1.1/ext/archive_read_support_format.c +32 -0
  10. data/ext/libarchive-0.1.1/ext/archive_read_support_format.h +6 -0
  11. data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.c +29 -0
  12. data/ext/libarchive-0.1.1/ext/archive_write_open_rb_str.h +6 -0
  13. data/ext/libarchive-0.1.1/ext/archive_write_set_compression.c +32 -0
  14. data/ext/libarchive-0.1.1/ext/archive_write_set_compression.h +6 -0
  15. data/ext/libarchive-0.1.1/ext/config.h.in +22 -0
  16. data/ext/libarchive-0.1.1/ext/configure +3904 -0
  17. data/ext/libarchive-0.1.1/ext/configure.in +11 -0
  18. data/ext/libarchive-0.1.1/ext/depend +19 -0
  19. data/ext/libarchive-0.1.1/ext/extconf.rb +6 -0
  20. data/ext/libarchive-0.1.1/ext/install-sh +250 -0
  21. data/ext/libarchive-0.1.1/ext/libarchive.c +89 -0
  22. data/ext/libarchive-0.1.1/ext/libarchive_archive.c +84 -0
  23. data/ext/libarchive-0.1.1/ext/libarchive_entry.c +1015 -0
  24. data/ext/libarchive-0.1.1/ext/libarchive_internal.h +155 -0
  25. data/ext/libarchive-0.1.1/ext/libarchive_reader.c +328 -0
  26. data/ext/libarchive-0.1.1/ext/libarchive_win32.h +52 -0
  27. data/ext/libarchive-0.1.1/ext/libarchive_writer.c +246 -0
  28. data/ext/libarchive-0.1.1/libarchive.c +1762 -0
  29. data/ext/libarchive-2.8.4/Makefile.in +7076 -0
  30. data/ext/libarchive-2.8.4/build/autoconf/check_stdcall_func.m4 +51 -0
  31. data/ext/libarchive-2.8.4/build/autoconf/compile +143 -0
  32. data/ext/libarchive-2.8.4/build/autoconf/config.guess +1502 -0
  33. data/ext/libarchive-2.8.4/build/autoconf/config.sub +1708 -0
  34. data/ext/libarchive-2.8.4/build/autoconf/depcomp +630 -0
  35. data/ext/libarchive-2.8.4/build/autoconf/install-sh +291 -0
  36. data/ext/libarchive-2.8.4/build/autoconf/la_uid_t.m4 +20 -0
  37. data/ext/libarchive-2.8.4/build/autoconf/ltmain.sh +8406 -0
  38. data/ext/libarchive-2.8.4/build/autoconf/missing +376 -0
  39. data/ext/libarchive-2.8.4/build/pkgconfig/libarchive.pc.in +10 -0
  40. data/ext/libarchive-2.8.4/config.h.in +772 -0
  41. data/ext/libarchive-2.8.4/configure +17916 -0
  42. data/ext/libarchive-2.8.4/libarchive/archive.h +741 -0
  43. data/ext/libarchive-2.8.4/libarchive/archive_check_magic.c +134 -0
  44. data/ext/libarchive-2.8.4/libarchive/archive_crc32.h +66 -0
  45. data/ext/libarchive-2.8.4/libarchive/archive_endian.h +162 -0
  46. data/ext/libarchive-2.8.4/libarchive/archive_entry.c +2202 -0
  47. data/ext/libarchive-2.8.4/libarchive/archive_entry.h +524 -0
  48. data/ext/libarchive-2.8.4/libarchive/archive_entry_copy_bhfi.c +74 -0
  49. data/ext/libarchive-2.8.4/libarchive/archive_entry_copy_stat.c +77 -0
  50. data/ext/libarchive-2.8.4/libarchive/archive_entry_link_resolver.c +405 -0
  51. data/ext/libarchive-2.8.4/libarchive/archive_entry_private.h +184 -0
  52. data/ext/libarchive-2.8.4/libarchive/archive_entry_stat.c +118 -0
  53. data/ext/libarchive-2.8.4/libarchive/archive_entry_strmode.c +87 -0
  54. data/ext/libarchive-2.8.4/libarchive/archive_entry_xattr.c +158 -0
  55. data/ext/libarchive-2.8.4/libarchive/archive_hash.h +281 -0
  56. data/ext/libarchive-2.8.4/libarchive/archive_platform.h +165 -0
  57. data/ext/libarchive-2.8.4/libarchive/archive_private.h +124 -0
  58. data/ext/libarchive-2.8.4/libarchive/archive_read.c +1249 -0
  59. data/ext/libarchive-2.8.4/libarchive/archive_read_data_into_fd.c +93 -0
  60. data/ext/libarchive-2.8.4/libarchive/archive_read_disk.c +198 -0
  61. data/ext/libarchive-2.8.4/libarchive/archive_read_disk_entry_from_file.c +570 -0
  62. data/ext/libarchive-2.8.4/libarchive/archive_read_disk_private.h +62 -0
  63. data/ext/libarchive-2.8.4/libarchive/archive_read_disk_set_standard_lookup.c +303 -0
  64. data/ext/libarchive-2.8.4/libarchive/archive_read_extract.c +182 -0
  65. data/ext/libarchive-2.8.4/libarchive/archive_read_open_fd.c +190 -0
  66. data/ext/libarchive-2.8.4/libarchive/archive_read_open_file.c +165 -0
  67. data/ext/libarchive-2.8.4/libarchive/archive_read_open_filename.c +272 -0
  68. data/ext/libarchive-2.8.4/libarchive/archive_read_open_memory.c +156 -0
  69. data/ext/libarchive-2.8.4/libarchive/archive_read_private.h +199 -0
  70. data/ext/libarchive-2.8.4/libarchive/archive_read_support_compression_all.c +60 -0
  71. data/ext/libarchive-2.8.4/libarchive/archive_read_support_compression_bzip2.c +353 -0
  72. data/ext/libarchive-2.8.4/libarchive/archive_read_support_compression_compress.c +444 -0
  73. data/ext/libarchive-2.8.4/libarchive/archive_read_support_compression_gzip.c +465 -0
  74. data/ext/libarchive-2.8.4/libarchive/archive_read_support_compression_none.c +40 -0
  75. data/ext/libarchive-2.8.4/libarchive/archive_read_support_compression_program.c +459 -0
  76. data/ext/libarchive-2.8.4/libarchive/archive_read_support_compression_rpm.c +287 -0
  77. data/ext/libarchive-2.8.4/libarchive/archive_read_support_compression_uu.c +627 -0
  78. data/ext/libarchive-2.8.4/libarchive/archive_read_support_compression_xz.c +708 -0
  79. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_all.c +43 -0
  80. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_ar.c +584 -0
  81. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_cpio.c +777 -0
  82. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_empty.c +93 -0
  83. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_iso9660.c +2830 -0
  84. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_mtree.c +1304 -0
  85. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_raw.c +185 -0
  86. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_tar.c +2418 -0
  87. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_xar.c +3151 -0
  88. data/ext/libarchive-2.8.4/libarchive/archive_read_support_format_zip.c +903 -0
  89. data/ext/libarchive-2.8.4/libarchive/archive_string.c +453 -0
  90. data/ext/libarchive-2.8.4/libarchive/archive_string.h +148 -0
  91. data/ext/libarchive-2.8.4/libarchive/archive_string_sprintf.c +164 -0
  92. data/ext/libarchive-2.8.4/libarchive/archive_util.c +391 -0
  93. data/ext/libarchive-2.8.4/libarchive/archive_virtual.c +94 -0
  94. data/ext/libarchive-2.8.4/libarchive/archive_windows.c +1236 -0
  95. data/ext/libarchive-2.8.4/libarchive/archive_windows.h +347 -0
  96. data/ext/libarchive-2.8.4/libarchive/archive_write.c +466 -0
  97. data/ext/libarchive-2.8.4/libarchive/archive_write_disk.c +2628 -0
  98. data/ext/libarchive-2.8.4/libarchive/archive_write_disk_private.h +38 -0
  99. data/ext/libarchive-2.8.4/libarchive/archive_write_disk_set_standard_lookup.c +262 -0
  100. data/ext/libarchive-2.8.4/libarchive/archive_write_open_fd.c +141 -0
  101. data/ext/libarchive-2.8.4/libarchive/archive_write_open_file.c +105 -0
  102. data/ext/libarchive-2.8.4/libarchive/archive_write_open_filename.c +162 -0
  103. data/ext/libarchive-2.8.4/libarchive/archive_write_open_memory.c +126 -0
  104. data/ext/libarchive-2.8.4/libarchive/archive_write_private.h +122 -0
  105. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_bzip2.c +408 -0
  106. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_compress.c +492 -0
  107. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_gzip.c +477 -0
  108. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_none.c +257 -0
  109. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_program.c +347 -0
  110. data/ext/libarchive-2.8.4/libarchive/archive_write_set_compression_xz.c +438 -0
  111. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format.c +72 -0
  112. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_ar.c +550 -0
  113. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_by_name.c +76 -0
  114. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio.c +344 -0
  115. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_cpio_newc.c +295 -0
  116. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_mtree.c +1050 -0
  117. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_pax.c +1386 -0
  118. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_shar.c +626 -0
  119. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_ustar.c +587 -0
  120. data/ext/libarchive-2.8.4/libarchive/archive_write_set_format_zip.c +667 -0
  121. data/ext/libarchive-2.8.4/libarchive/config_freebsd.h +154 -0
  122. data/ext/libarchive-2.8.4/libarchive/filter_fork.c +161 -0
  123. data/ext/libarchive-2.8.4/libarchive/filter_fork.h +41 -0
  124. data/ext/libarchive-2.8.4/libarchive/filter_fork_windows.c +113 -0
  125. data/ext/libarchive-static-makefile +80 -0
  126. data/ext/libarchive-static-wrapper-makefile +22 -0
  127. data/ext/zlib-1.2.5/Makefile.in +257 -0
  128. data/ext/zlib-1.2.5/adler32.c +169 -0
  129. data/ext/zlib-1.2.5/compress.c +80 -0
  130. data/ext/zlib-1.2.5/configure +596 -0
  131. data/ext/zlib-1.2.5/crc32.c +442 -0
  132. data/ext/zlib-1.2.5/crc32.h +441 -0
  133. data/ext/zlib-1.2.5/deflate.c +1834 -0
  134. data/ext/zlib-1.2.5/deflate.h +342 -0
  135. data/ext/zlib-1.2.5/example.c +565 -0
  136. data/ext/zlib-1.2.5/gzclose.c +25 -0
  137. data/ext/zlib-1.2.5/gzguts.h +132 -0
  138. data/ext/zlib-1.2.5/gzlib.c +537 -0
  139. data/ext/zlib-1.2.5/gzread.c +653 -0
  140. data/ext/zlib-1.2.5/gzwrite.c +531 -0
  141. data/ext/zlib-1.2.5/infback.c +632 -0
  142. data/ext/zlib-1.2.5/inffast.c +340 -0
  143. data/ext/zlib-1.2.5/inffast.h +11 -0
  144. data/ext/zlib-1.2.5/inffixed.h +94 -0
  145. data/ext/zlib-1.2.5/inflate.c +1480 -0
  146. data/ext/zlib-1.2.5/inflate.h +122 -0
  147. data/ext/zlib-1.2.5/inftrees.c +330 -0
  148. data/ext/zlib-1.2.5/inftrees.h +62 -0
  149. data/ext/zlib-1.2.5/minigzip.c +440 -0
  150. data/ext/zlib-1.2.5/trees.c +1244 -0
  151. data/ext/zlib-1.2.5/trees.h +128 -0
  152. data/ext/zlib-1.2.5/uncompr.c +59 -0
  153. data/ext/zlib-1.2.5/zconf.h +428 -0
  154. data/ext/zlib-1.2.5/zlib.h +1613 -0
  155. data/ext/zlib-1.2.5/zutil.c +318 -0
  156. data/ext/zlib-1.2.5/zutil.h +274 -0
  157. metadata +211 -0
@@ -0,0 +1,87 @@
1
+ /*-
2
+ * Copyright (c) 2003-2007 Tim Kientzle
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions
7
+ * are met:
8
+ * 1. Redistributions of source code must retain the above copyright
9
+ * notice, this list of conditions and the following disclaimer.
10
+ * 2. Redistributions in binary form must reproduce the above copyright
11
+ * notice, this list of conditions and the following disclaimer in the
12
+ * documentation and/or other materials provided with the distribution.
13
+ *
14
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
15
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
18
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
+ */
25
+
26
+ #include "archive_platform.h"
27
+ __FBSDID("$FreeBSD: src/lib/libarchive/archive_entry_strmode.c,v 1.4 2008/06/15 05:14:01 kientzle Exp $");
28
+
29
+ #ifdef HAVE_SYS_STAT_H
30
+ #include <sys/stat.h>
31
+ #endif
32
+ #ifdef HAVE_STRING_H
33
+ #include <string.h>
34
+ #endif
35
+
36
+ #include "archive_entry.h"
37
+ #include "archive_entry_private.h"
38
+
39
+ const char *
40
+ archive_entry_strmode(struct archive_entry *entry)
41
+ {
42
+ static const mode_t permbits[] =
43
+ { 0400, 0200, 0100, 0040, 0020, 0010, 0004, 0002, 0001 };
44
+ char *bp = entry->strmode;
45
+ mode_t mode;
46
+ int i;
47
+
48
+ /* Fill in a default string, then selectively override. */
49
+ strcpy(bp, "?rwxrwxrwx ");
50
+
51
+ mode = archive_entry_mode(entry);
52
+ switch (archive_entry_filetype(entry)) {
53
+ case AE_IFREG: bp[0] = '-'; break;
54
+ case AE_IFBLK: bp[0] = 'b'; break;
55
+ case AE_IFCHR: bp[0] = 'c'; break;
56
+ case AE_IFDIR: bp[0] = 'd'; break;
57
+ case AE_IFLNK: bp[0] = 'l'; break;
58
+ case AE_IFSOCK: bp[0] = 's'; break;
59
+ case AE_IFIFO: bp[0] = 'p'; break;
60
+ default:
61
+ if (archive_entry_hardlink(entry) != NULL) {
62
+ bp[0] = 'h';
63
+ break;
64
+ }
65
+ }
66
+
67
+ for (i = 0; i < 9; i++)
68
+ if (!(mode & permbits[i]))
69
+ bp[i+1] = '-';
70
+
71
+ if (mode & S_ISUID) {
72
+ if (mode & 0100) bp[3] = 's';
73
+ else bp[3] = 'S';
74
+ }
75
+ if (mode & S_ISGID) {
76
+ if (mode & 0010) bp[6] = 's';
77
+ else bp[6] = 'S';
78
+ }
79
+ if (mode & S_ISVTX) {
80
+ if (mode & 0001) bp[9] = 't';
81
+ else bp[9] = 'T';
82
+ }
83
+ if (archive_entry_acl_count(entry, ARCHIVE_ENTRY_ACL_TYPE_ACCESS))
84
+ bp[10] = '+';
85
+
86
+ return (bp);
87
+ }
@@ -0,0 +1,158 @@
1
+ /*-
2
+ * Copyright (c) 2003-2007 Tim Kientzle
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions
7
+ * are met:
8
+ * 1. Redistributions of source code must retain the above copyright
9
+ * notice, this list of conditions and the following disclaimer.
10
+ * 2. Redistributions in binary form must reproduce the above copyright
11
+ * notice, this list of conditions and the following disclaimer in the
12
+ * documentation and/or other materials provided with the distribution.
13
+ *
14
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
15
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
18
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
+ */
25
+
26
+ #include "archive_platform.h"
27
+ __FBSDID("$FreeBSD: head/lib/libarchive/archive_entry_xattr.c 201096 2009-12-28 02:41:27Z kientzle $");
28
+
29
+ #ifdef HAVE_SYS_STAT_H
30
+ #include <sys/stat.h>
31
+ #endif
32
+ #ifdef HAVE_SYS_TYPES_H
33
+ #include <sys/types.h>
34
+ #endif
35
+ #ifdef HAVE_LIMITS_H
36
+ #include <limits.h>
37
+ #endif
38
+ #ifdef HAVE_LINUX_FS_H
39
+ #include <linux/fs.h> /* for Linux file flags */
40
+ #endif
41
+ /*
42
+ * Some Linux distributions have both linux/ext2_fs.h and ext2fs/ext2_fs.h.
43
+ * As the include guards don't agree, the order of include is important.
44
+ */
45
+ #ifdef HAVE_LINUX_EXT2_FS_H
46
+ #include <linux/ext2_fs.h> /* for Linux file flags */
47
+ #endif
48
+ #if defined(HAVE_EXT2FS_EXT2_FS_H) && !defined(__CYGWIN__)
49
+ #include <ext2fs/ext2_fs.h> /* for Linux file flags */
50
+ #endif
51
+ #include <stddef.h>
52
+ #include <stdio.h>
53
+ #ifdef HAVE_STDLIB_H
54
+ #include <stdlib.h>
55
+ #endif
56
+ #ifdef HAVE_STRING_H
57
+ #include <string.h>
58
+ #endif
59
+ #ifdef HAVE_WCHAR_H
60
+ #include <wchar.h>
61
+ #endif
62
+
63
+ #include "archive.h"
64
+ #include "archive_entry.h"
65
+ #include "archive_private.h"
66
+ #include "archive_entry_private.h"
67
+
68
+ /*
69
+ * extended attribute handling
70
+ */
71
+
72
+ void
73
+ archive_entry_xattr_clear(struct archive_entry *entry)
74
+ {
75
+ struct ae_xattr *xp;
76
+
77
+ while (entry->xattr_head != NULL) {
78
+ xp = entry->xattr_head->next;
79
+ free(entry->xattr_head->name);
80
+ free(entry->xattr_head->value);
81
+ free(entry->xattr_head);
82
+ entry->xattr_head = xp;
83
+ }
84
+
85
+ entry->xattr_head = NULL;
86
+ }
87
+
88
+ void
89
+ archive_entry_xattr_add_entry(struct archive_entry *entry,
90
+ const char *name, const void *value, size_t size)
91
+ {
92
+ struct ae_xattr *xp;
93
+
94
+ for (xp = entry->xattr_head; xp != NULL; xp = xp->next)
95
+ ;
96
+
97
+ if ((xp = (struct ae_xattr *)malloc(sizeof(struct ae_xattr))) == NULL)
98
+ /* XXX Error XXX */
99
+ return;
100
+
101
+ xp->name = strdup(name);
102
+ if ((xp->value = malloc(size)) != NULL) {
103
+ memcpy(xp->value, value, size);
104
+ xp->size = size;
105
+ } else
106
+ xp->size = 0;
107
+
108
+ xp->next = entry->xattr_head;
109
+ entry->xattr_head = xp;
110
+ }
111
+
112
+
113
+ /*
114
+ * returns number of the extended attribute entries
115
+ */
116
+ int
117
+ archive_entry_xattr_count(struct archive_entry *entry)
118
+ {
119
+ struct ae_xattr *xp;
120
+ int count = 0;
121
+
122
+ for (xp = entry->xattr_head; xp != NULL; xp = xp->next)
123
+ count++;
124
+
125
+ return count;
126
+ }
127
+
128
+ int
129
+ archive_entry_xattr_reset(struct archive_entry * entry)
130
+ {
131
+ entry->xattr_p = entry->xattr_head;
132
+
133
+ return archive_entry_xattr_count(entry);
134
+ }
135
+
136
+ int
137
+ archive_entry_xattr_next(struct archive_entry * entry,
138
+ const char **name, const void **value, size_t *size)
139
+ {
140
+ if (entry->xattr_p) {
141
+ *name = entry->xattr_p->name;
142
+ *value = entry->xattr_p->value;
143
+ *size = entry->xattr_p->size;
144
+
145
+ entry->xattr_p = entry->xattr_p->next;
146
+
147
+ return (ARCHIVE_OK);
148
+ } else {
149
+ *name = NULL;
150
+ *value = NULL;
151
+ *size = (size_t)0;
152
+ return (ARCHIVE_WARN);
153
+ }
154
+ }
155
+
156
+ /*
157
+ * end of xattr handling
158
+ */
@@ -0,0 +1,281 @@
1
+ /*-
2
+ * Copyright (c) 2009 Joerg Sonnenberger
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions
7
+ * are met:
8
+ * 1. Redistributions of source code must retain the above copyright
9
+ * notice, this list of conditions and the following disclaimer.
10
+ * 2. Redistributions in binary form must reproduce the above copyright
11
+ * notice, this list of conditions and the following disclaimer in the
12
+ * documentation and/or other materials provided with the distribution.
13
+ *
14
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
15
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
18
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
+ *
25
+ * $FreeBSD: head/lib/libarchive/archive_hash.h 201171 2009-12-29 06:39:07Z kientzle $
26
+ */
27
+
28
+ #ifndef __LIBARCHIVE_BUILD
29
+ #error This header is only to be used internally to libarchive.
30
+ #endif
31
+
32
+ #ifdef HAVE_SYS_TYPES_H
33
+ #include <sys/types.h>
34
+ #endif
35
+
36
+ /*
37
+ * Hash function support in various Operating Systems:
38
+ *
39
+ * NetBSD:
40
+ * - MD5 and SHA1 in libc: without _ after algorithm name
41
+ * - SHA2 in libc: with _ after algorithm name
42
+ *
43
+ * OpenBSD:
44
+ * - MD5, SHA1 and SHA2 in libc: without _ after algorithm name
45
+ * - OpenBSD 4.4 and earlier have SHA2 in libc with _ after algorithm name
46
+ *
47
+ * DragonFly and FreeBSD (XXX not used yet):
48
+ * - MD5 and SHA1 in libmd: without _ after algorithm name
49
+ * - SHA256: with _ after algorithm name
50
+ *
51
+ * Mac OS X (10.4 and later):
52
+ * - MD5, SHA1 and SHA2 in libSystem: with CC_ prefix and _ after algorithm name
53
+ *
54
+ * OpenSSL:
55
+ * - MD5, SHA1 and SHA2 in libcrypto: with _ after algorithm name
56
+ *
57
+ * Windows:
58
+ * - MD5, SHA1 and SHA2 in archive_windows.c: without algorithm name
59
+ * and with __la_ prefix.
60
+ */
61
+ #if defined(ARCHIVE_HASH_MD5_WIN) ||\
62
+ defined(ARCHIVE_HASH_SHA1_WIN) || defined(ARCHIVE_HASH_SHA256_WIN) ||\
63
+ defined(ARCHIVE_HASH_SHA384_WIN) || defined(ARCHIVE_HASH_SHA512_WIN)
64
+ #include <wincrypt.h>
65
+ typedef struct {
66
+ int valid;
67
+ HCRYPTPROV cryptProv;
68
+ HCRYPTHASH hash;
69
+ } Digest_CTX;
70
+ extern void __la_hash_Init(Digest_CTX *, ALG_ID);
71
+ extern void __la_hash_Final(unsigned char *, size_t, Digest_CTX *);
72
+ extern void __la_hash_Update(Digest_CTX *, const unsigned char *, size_t);
73
+ #endif
74
+
75
+ #if defined(ARCHIVE_HASH_MD5_LIBC)
76
+ # include <md5.h>
77
+ # define ARCHIVE_HAS_MD5
78
+ typedef MD5_CTX archive_md5_ctx;
79
+ # define archive_md5_init(ctx) MD5Init(ctx)
80
+ # define archive_md5_final(ctx, buf) MD5Final(buf, ctx)
81
+ # define archive_md5_update(ctx, buf, n) MD5Update(ctx, buf, n)
82
+ #elif defined(ARCHIVE_HASH_MD5_LIBSYSTEM)
83
+ # include <CommonCrypto/CommonDigest.h>
84
+ # define ARCHIVE_HAS_MD5
85
+ typedef CC_MD5_CTX archive_md5_ctx;
86
+ # define archive_md5_init(ctx) CC_MD5_Init(ctx)
87
+ # define archive_md5_final(ctx, buf) CC_MD5_Final(buf, ctx)
88
+ # define archive_md5_update(ctx, buf, n) CC_MD5_Update(ctx, buf, n)
89
+ #elif defined(ARCHIVE_HASH_MD5_OPENSSL)
90
+ # include <openssl/md5.h>
91
+ # define ARCHIVE_HAS_MD5
92
+ typedef MD5_CTX archive_md5_ctx;
93
+ # define archive_md5_init(ctx) MD5_Init(ctx)
94
+ # define archive_md5_final(ctx, buf) MD5_Final(buf, ctx)
95
+ # define archive_md5_update(ctx, buf, n) MD5_Update(ctx, buf, n)
96
+ #elif defined(ARCHIVE_HASH_MD5_WIN)
97
+ # define ARCHIVE_HAS_MD5
98
+ # define MD5_DIGEST_LENGTH 16
99
+ typedef Digest_CTX archive_md5_ctx;
100
+ # define archive_md5_init(ctx) __la_hash_Init(ctx, CALG_MD5)
101
+ # define archive_md5_final(ctx, buf) __la_hash_Final(buf, MD5_DIGEST_LENGTH, ctx)
102
+ # define archive_md5_update(ctx, buf, n) __la_hash_Update(ctx, buf, n)
103
+ #endif
104
+
105
+ #if defined(ARCHIVE_HASH_RMD160_LIBC)
106
+ # include <rmd160.h>
107
+ # define ARCHIVE_HAS_RMD160
108
+ typedef RMD160_CTX archive_rmd160_ctx;
109
+ # define archive_rmd160_init(ctx) RMD160Init(ctx)
110
+ # define archive_rmd160_final(ctx, buf) RMD160Final(buf, ctx)
111
+ # define archive_rmd160_update(ctx, buf, n) RMD160Update(ctx, buf, n)
112
+ #elif defined(ARCHIVE_HASH_RMD160_OPENSSL)
113
+ # include <openssl/ripemd.h>
114
+ # define ARCHIVE_HAS_RMD160
115
+ typedef RIPEMD160_CTX archive_rmd160_ctx;
116
+ # define archive_rmd160_init(ctx) RIPEMD160_Init(ctx)
117
+ # define archive_rmd160_final(ctx, buf) RIPEMD160_Final(buf, ctx)
118
+ # define archive_rmd160_update(ctx, buf, n) RIPEMD160_Update(ctx, buf, n)
119
+ #endif
120
+
121
+ #if defined(ARCHIVE_HASH_SHA1_LIBC)
122
+ # include <sha1.h>
123
+ # define ARCHIVE_HAS_SHA1
124
+ typedef SHA1_CTX archive_sha1_ctx;
125
+ # define archive_sha1_init(ctx) SHA1Init(ctx)
126
+ # define archive_sha1_final(ctx, buf) SHA1Final(buf, ctx)
127
+ # define archive_sha1_update(ctx, buf, n) SHA1Update(ctx, buf, n)
128
+ #elif defined(ARCHIVE_HASH_SHA1_LIBSYSTEM)
129
+ # include <CommonCrypto/CommonDigest.h>
130
+ # define ARCHIVE_HAS_SHA1
131
+ typedef CC_SHA1_CTX archive_sha1_ctx;
132
+ # define archive_sha1_init(ctx) CC_SHA1_Init(ctx)
133
+ # define archive_sha1_final(ctx, buf) CC_SHA1_Final(buf, ctx)
134
+ # define archive_sha1_update(ctx, buf, n) CC_SHA1_Update(ctx, buf, n)
135
+ #elif defined(ARCHIVE_HASH_SHA1_OPENSSL)
136
+ # include <openssl/sha.h>
137
+ # define ARCHIVE_HAS_SHA1
138
+ typedef SHA_CTX archive_sha1_ctx;
139
+ # define archive_sha1_init(ctx) SHA1_Init(ctx)
140
+ # define archive_sha1_final(ctx, buf) SHA1_Final(buf, ctx)
141
+ # define archive_sha1_update(ctx, buf, n) SHA1_Update(ctx, buf, n)
142
+ #elif defined(ARCHIVE_HASH_SHA1_WIN)
143
+ # define ARCHIVE_HAS_SHA1
144
+ # define SHA1_DIGEST_LENGTH 20
145
+ typedef Digest_CTX archive_sha1_ctx;
146
+ # define archive_sha1_init(ctx) __la_hash_Init(ctx, CALG_SHA1)
147
+ # define archive_sha1_final(ctx, buf) __la_hash_Final(buf, SHA1_DIGEST_LENGTH, ctx)
148
+ # define archive_sha1_update(ctx, buf, n) __la_hash_Update(ctx, buf, n)
149
+ #endif
150
+
151
+ #if defined(ARCHIVE_HASH_SHA256_LIBC)
152
+ # include <sha2.h>
153
+ # define ARCHIVE_HAS_SHA256
154
+ typedef SHA256_CTX archive_sha256_ctx;
155
+ # define archive_sha256_init(ctx) SHA256_Init(ctx)
156
+ # define archive_sha256_final(ctx, buf) SHA256_Final(buf, ctx)
157
+ # define archive_sha256_update(ctx, buf, n) SHA256_Update(ctx, buf, n)
158
+ #elif defined(ARCHIVE_HASH_SHA256_LIBC2)
159
+ # include <sha2.h>
160
+ # define ARCHIVE_HAS_SHA256
161
+ typedef SHA256_CTX archive_sha256_ctx;
162
+ # define archive_sha256_init(ctx) SHA256Init(ctx)
163
+ # define archive_sha256_final(ctx, buf) SHA256Final(buf, ctx)
164
+ # define archive_sha256_update(ctx, buf, n) SHA256Update(ctx, buf, n)
165
+ #elif defined(ARCHIVE_HASH_SHA256_LIBC3)
166
+ # include <sha2.h>
167
+ # define ARCHIVE_HAS_SHA256
168
+ typedef SHA2_CTX archive_sha256_ctx;
169
+ # define archive_sha256_init(ctx) SHA256Init(ctx)
170
+ # define archive_sha256_final(ctx, buf) SHA256Final(buf, ctx)
171
+ # define archive_sha256_update(ctx, buf, n) SHA256Update(ctx, buf, n)
172
+ #elif defined(ARCHIVE_HASH_SHA256_LIBSYSTEM)
173
+ # include <CommonCrypto/CommonDigest.h>
174
+ # define ARCHIVE_HAS_SHA256
175
+ typedef CC_SHA256_CTX archive_shs256_ctx;
176
+ # define archive_shs256_init(ctx) CC_SHA256_Init(ctx)
177
+ # define archive_shs256_final(ctx, buf) CC_SHA256_Final(buf, ctx)
178
+ # define archive_shs256_update(ctx, buf, n) CC_SHA256_Update(ctx, buf, n)
179
+ #elif defined(ARCHIVE_HASH_SHA256_OPENSSL)
180
+ # include <openssl/sha.h>
181
+ # define ARCHIVE_HAS_SHA256
182
+ typedef SHA256_CTX archive_sha256_ctx;
183
+ # define archive_sha256_init(ctx) SHA256_Init(ctx)
184
+ # define archive_sha256_final(ctx, buf) SHA256_Final(buf, ctx)
185
+ # define archive_sha256_update(ctx, buf, n) SHA256_Update(ctx, buf, n)
186
+ #elif defined(ARCHIVE_HASH_SHA256_WIN)
187
+ # define ARCHIVE_HAS_SHA256
188
+ # define SHA256_DIGEST_LENGTH 32
189
+ typedef Digest_CTX archive_sha256_ctx;
190
+ # define archive_sha256_init(ctx) __la_hash_Init(ctx, CALG_SHA_256)
191
+ # define archive_sha256_final(ctx, buf) __la_hash_Final(buf, SHA256_DIGEST_LENGTH, ctx)
192
+ # define archive_sha256_update(ctx, buf, n) __la_hash_Update(ctx, buf, n)
193
+ #endif
194
+
195
+ #if defined(ARCHIVE_HASH_SHA384_LIBC)
196
+ # include <sha2.h>
197
+ # define ARCHIVE_HAS_SHA384
198
+ typedef SHA384_CTX archive_sha384_ctx;
199
+ # define archive_sha384_init(ctx) SHA384_Init(ctx)
200
+ # define archive_sha384_final(ctx, buf) SHA384_Final(buf, ctx)
201
+ # define archive_sha384_update(ctx, buf, n) SHA384_Update(ctx, buf, n)
202
+ #elif defined(ARCHIVE_HASH_SHA384_LIBC2)
203
+ # include <sha2.h>
204
+ # define ARCHIVE_HAS_SHA384
205
+ typedef SHA384_CTX archive_sha384_ctx;
206
+ # define archive_sha384_init(ctx) SHA384Init(ctx)
207
+ # define archive_sha384_final(ctx, buf) SHA384Final(buf, ctx)
208
+ # define archive_sha384_update(ctx, buf, n) SHA384Update(ctx, buf, n)
209
+ #elif defined(ARCHIVE_HASH_SHA384_LIBC3)
210
+ # include <sha2.h>
211
+ # define ARCHIVE_HAS_SHA384
212
+ typedef SHA2_CTX archive_sha384_ctx;
213
+ # define archive_sha384_init(ctx) SHA384Init(ctx)
214
+ # define archive_sha384_final(ctx, buf) SHA384Final(buf, ctx)
215
+ # define archive_sha384_update(ctx, buf, n) SHA384Update(ctx, buf, n)
216
+ #elif defined(ARCHIVE_HASH_SHA384_LIBSYSTEM)
217
+ # include <CommonCrypto/CommonDigest.h>
218
+ # define ARCHIVE_HAS_SHA384
219
+ typedef CC_SHA512_CTX archive_shs384_ctx;
220
+ # define archive_shs384_init(ctx) CC_SHA384_Init(ctx)
221
+ # define archive_shs384_final(ctx, buf) CC_SHA384_Final(buf, ctx)
222
+ # define archive_shs384_update(ctx, buf, n) CC_SHA384_Update(ctx, buf, n)
223
+ #elif defined(ARCHIVE_HASH_SHA384_OPENSSL)
224
+ # include <openssl/sha.h>
225
+ # define ARCHIVE_HAS_SHA384
226
+ typedef SHA512_CTX archive_sha384_ctx;
227
+ # define archive_sha384_init(ctx) SHA384_Init(ctx)
228
+ # define archive_sha384_final(ctx, buf) SHA384_Final(buf, ctx)
229
+ # define archive_sha384_update(ctx, buf, n) SHA384_Update(ctx, buf, n)
230
+ #elif defined(ARCHIVE_HASH_SHA384_WIN)
231
+ # define ARCHIVE_HAS_SHA384
232
+ # define SHA384_DIGEST_LENGTH 48
233
+ typedef Digest_CTX archive_sha384_ctx;
234
+ # define archive_sha384_init(ctx) __la_hash_Init(ctx, CALG_SHA_384)
235
+ # define archive_sha384_final(ctx, buf) __la_hash_Final(buf, SHA384_DIGEST_LENGTH, ctx)
236
+ # define archive_sha384_update(ctx, buf, n) __la_hash_Update(ctx, buf, n)
237
+ #endif
238
+
239
+ #if defined(ARCHIVE_HASH_SHA512_LIBC)
240
+ # include <sha2.h>
241
+ # define ARCHIVE_HAS_SHA512
242
+ typedef SHA512_CTX archive_sha512_ctx;
243
+ # define archive_sha512_init(ctx) SHA512_Init(ctx)
244
+ # define archive_sha512_final(ctx, buf) SHA512_Final(buf, ctx)
245
+ # define archive_sha512_update(ctx, buf, n) SHA512_Update(ctx, buf, n)
246
+ #elif defined(ARCHIVE_HASH_SHA512_LIBC2)
247
+ # include <sha2.h>
248
+ # define ARCHIVE_HAS_SHA512
249
+ typedef SHA512_CTX archive_sha512_ctx;
250
+ # define archive_sha512_init(ctx) SHA512Init(ctx)
251
+ # define archive_sha512_final(ctx, buf) SHA512Final(buf, ctx)
252
+ # define archive_sha512_update(ctx, buf, n) SHA512Update(ctx, buf, n)
253
+ #elif defined(ARCHIVE_HASH_SHA512_LIBC3)
254
+ # include <sha2.h>
255
+ # define ARCHIVE_HAS_SHA512
256
+ typedef SHA2_CTX archive_sha512_ctx;
257
+ # define archive_sha512_init(ctx) SHA512Init(ctx)
258
+ # define archive_sha512_final(ctx, buf) SHA512Final(buf, ctx)
259
+ # define archive_sha512_update(ctx, buf, n) SHA512Update(ctx, buf, n)
260
+ #elif defined(ARCHIVE_HASH_SHA512_LIBSYSTEM)
261
+ # include <CommonCrypto/CommonDigest.h>
262
+ # define ARCHIVE_HAS_SHA512
263
+ typedef CC_SHA512_CTX archive_shs512_ctx;
264
+ # define archive_shs512_init(ctx) CC_SHA512_Init(ctx)
265
+ # define archive_shs512_final(ctx, buf) CC_SHA512_Final(buf, ctx)
266
+ # define archive_shs512_update(ctx, buf, n) CC_SHA512_Update(ctx, buf, n)
267
+ #elif defined(ARCHIVE_HASH_SHA512_OPENSSL)
268
+ # include <openssl/sha.h>
269
+ # define ARCHIVE_HAS_SHA512
270
+ typedef SHA512_CTX archive_sha512_ctx;
271
+ # define archive_sha512_init(ctx) SHA512_Init(ctx)
272
+ # define archive_sha512_final(ctx, buf) SHA512_Final(buf, ctx)
273
+ # define archive_sha512_update(ctx, buf, n) SHA512_Update(ctx, buf, n)
274
+ #elif defined(ARCHIVE_HASH_SHA512_WIN)
275
+ # define ARCHIVE_HAS_SHA512
276
+ # define SHA512_DIGEST_LENGTH 64
277
+ typedef Digest_CTX archive_sha512_ctx;
278
+ # define archive_sha512_init(ctx) __la_hash_Init(ctx, CALG_SHA_512)
279
+ # define archive_sha512_final(ctx, buf) __la_hash_Final(buf, SHA512_DIGEST_LENGTH, ctx)
280
+ # define archive_sha512_update(ctx, buf, n) __la_hash_Update(ctx, buf, n)
281
+ #endif
@@ -0,0 +1,165 @@
1
+ /*-
2
+ * Copyright (c) 2003-2007 Tim Kientzle
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions
7
+ * are met:
8
+ * 1. Redistributions of source code must retain the above copyright
9
+ * notice, this list of conditions and the following disclaimer.
10
+ * 2. Redistributions in binary form must reproduce the above copyright
11
+ * notice, this list of conditions and the following disclaimer in the
12
+ * documentation and/or other materials provided with the distribution.
13
+ *
14
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
15
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
18
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
+ *
25
+ * $FreeBSD: head/lib/libarchive/archive_platform.h 201090 2009-12-28 02:22:04Z kientzle $
26
+ */
27
+
28
+ /* !!ONLY FOR USE INTERNALLY TO LIBARCHIVE!! */
29
+
30
+ /*
31
+ * This header is the first thing included in any of the libarchive
32
+ * source files. As far as possible, platform-specific issues should
33
+ * be dealt with here and not within individual source files. I'm
34
+ * actively trying to minimize #if blocks within the main source,
35
+ * since they obfuscate the code.
36
+ */
37
+
38
+ #ifndef ARCHIVE_PLATFORM_H_INCLUDED
39
+ #define ARCHIVE_PLATFORM_H_INCLUDED
40
+
41
+ /* archive.h and archive_entry.h require this. */
42
+ #define __LIBARCHIVE_BUILD 1
43
+
44
+ #if defined(PLATFORM_CONFIG_H)
45
+ /* Use hand-built config.h in environments that need it. */
46
+ #include PLATFORM_CONFIG_H
47
+ #elif defined(HAVE_CONFIG_H)
48
+ /* Most POSIX platforms use the 'configure' script to build config.h */
49
+ #include "config.h"
50
+ #else
51
+ /* Warn if the library hasn't been (automatically or manually) configured. */
52
+ #error Oops: No config.h and no pre-built configuration in archive_platform.h.
53
+ #endif
54
+
55
+ /* It should be possible to get rid of this by extending the feature-test
56
+ * macros to cover Windows API functions, probably along with non-trivial
57
+ * refactoring of code to find structures that sit more cleanly on top of
58
+ * either Windows or Posix APIs. */
59
+ #if (defined(__WIN32__) || defined(_WIN32) || defined(__WIN32)) && !defined(__CYGWIN__)
60
+ #include "archive_windows.h"
61
+ #endif
62
+
63
+ /*
64
+ * The config files define a lot of feature macros. The following
65
+ * uses those macros to select/define replacements and include key
66
+ * headers as required.
67
+ */
68
+
69
+ /* Get a real definition for __FBSDID if we can */
70
+ #if HAVE_SYS_CDEFS_H
71
+ #include <sys/cdefs.h>
72
+ #endif
73
+
74
+ /* If not, define it so as to avoid dangling semicolons. */
75
+ #ifndef __FBSDID
76
+ #define __FBSDID(a) struct _undefined_hack
77
+ #endif
78
+
79
+ /* Try to get standard C99-style integer type definitions. */
80
+ #if HAVE_INTTYPES_H
81
+ #include <inttypes.h>
82
+ #endif
83
+ #if HAVE_STDINT_H
84
+ #include <stdint.h>
85
+ #endif
86
+
87
+ /* Borland warns about its own constants! */
88
+ #if defined(__BORLANDC__)
89
+ # if HAVE_DECL_UINT64_MAX
90
+ # undef UINT64_MAX
91
+ # undef HAVE_DECL_UINT64_MAX
92
+ # endif
93
+ # if HAVE_DECL_UINT64_MIN
94
+ # undef UINT64_MIN
95
+ # undef HAVE_DECL_UINT64_MIN
96
+ # endif
97
+ # if HAVE_DECL_INT64_MAX
98
+ # undef INT64_MAX
99
+ # undef HAVE_DECL_INT64_MAX
100
+ # endif
101
+ # if HAVE_DECL_INT64_MIN
102
+ # undef INT64_MIN
103
+ # undef HAVE_DECL_INT64_MIN
104
+ # endif
105
+ #endif
106
+
107
+ /* Some platforms lack the standard *_MAX definitions. */
108
+ #if !HAVE_DECL_SIZE_MAX
109
+ #define SIZE_MAX (~(size_t)0)
110
+ #endif
111
+ #if !HAVE_DECL_SSIZE_MAX
112
+ #define SSIZE_MAX ((ssize_t)(SIZE_MAX >> 1))
113
+ #endif
114
+ #if !HAVE_DECL_UINT32_MAX
115
+ #define UINT32_MAX (~(uint32_t)0)
116
+ #endif
117
+ #if !HAVE_DECL_UINT64_MAX
118
+ #define UINT64_MAX (~(uint64_t)0)
119
+ #endif
120
+ #if !HAVE_DECL_INT64_MAX
121
+ #define INT64_MAX ((int64_t)(UINT64_MAX >> 1))
122
+ #endif
123
+ #if !HAVE_DECL_INT64_MIN
124
+ #define INT64_MIN ((int64_t)(~INT64_MAX))
125
+ #endif
126
+
127
+ /*
128
+ * If this platform has <sys/acl.h>, acl_create(), acl_init(),
129
+ * acl_set_file(), and ACL_USER, we assume it has the rest of the
130
+ * POSIX.1e draft functions used in archive_read_extract.c.
131
+ */
132
+ #if HAVE_SYS_ACL_H && HAVE_ACL_CREATE_ENTRY && HAVE_ACL_INIT && HAVE_ACL_SET_FILE && HAVE_ACL_USER
133
+ #define HAVE_POSIX_ACL 1
134
+ #endif
135
+
136
+ /*
137
+ * If we can't restore metadata using a file descriptor, then
138
+ * for compatibility's sake, close files before trying to restore metadata.
139
+ */
140
+ #if defined(HAVE_FCHMOD) || defined(HAVE_FUTIMES) || defined(HAVE_ACL_SET_FD) || defined(HAVE_ACL_SET_FD_NP) || defined(HAVE_FCHOWN)
141
+ #define CAN_RESTORE_METADATA_FD
142
+ #endif
143
+
144
+ /* Set up defaults for internal error codes. */
145
+ #ifndef ARCHIVE_ERRNO_FILE_FORMAT
146
+ #if HAVE_EFTYPE
147
+ #define ARCHIVE_ERRNO_FILE_FORMAT EFTYPE
148
+ #else
149
+ #if HAVE_EILSEQ
150
+ #define ARCHIVE_ERRNO_FILE_FORMAT EILSEQ
151
+ #else
152
+ #define ARCHIVE_ERRNO_FILE_FORMAT EINVAL
153
+ #endif
154
+ #endif
155
+ #endif
156
+
157
+ #ifndef ARCHIVE_ERRNO_PROGRAMMER
158
+ #define ARCHIVE_ERRNO_PROGRAMMER EINVAL
159
+ #endif
160
+
161
+ #ifndef ARCHIVE_ERRNO_MISC
162
+ #define ARCHIVE_ERRNO_MISC (-1)
163
+ #endif
164
+
165
+ #endif /* !ARCHIVE_PLATFORM_H_INCLUDED */