archive_r_ruby 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 648064959d139565d2e122215cb49ae178b9d5e735a99176b8d785238b753800
4
- data.tar.gz: d9f05748fbcca7aa76bb615b53480c9133423905c1137005d1c6df895a8b09c3
3
+ metadata.gz: dcd3f5a0a9f170a6ee4a822bdd790801d91e4e2dfca60066af52d476c53cf33c
4
+ data.tar.gz: 653bd71f6ef6a36c977b7881f7954d9838745ac316e87534d6199ddde8f434c4
5
5
  SHA512:
6
- metadata.gz: dd1b45fd72e08536d0b95b261b8ca071d68fa0a1840c984c9d5aae4d9449b394a11ad6e7f8a4ca8df53b68ee7aef68791468e98404fd6a4ec098a34d831affd6
7
- data.tar.gz: ebf2a08b3ff59ba317b48cd175d87bf0624e2d4c67d2c95c90b1c8fb32cd9c1afa6ff48f0d24cb467401d3b9b2364cf368946cf4af01e8bdb744431ee9cd961f
6
+ metadata.gz: af0d8b32e8823256e7b2f92ca7f1fe653890c77ada2c8a08829cb89d1ef285e93b6f85a30f43a52373c66b3417ae708654676816be3d1df627eaabfadc848b31
7
+ data.tar.gz: cca473ded868f07468f5b3dd59d6d7f737594af4f3470940ebed7287fbaaf33f173fbc167d2febfcc73eb4c836dd51b352c08558519f329e4cee8cd8604d77cf
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 archive_r Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/NOTICE ADDED
@@ -0,0 +1,71 @@
1
+ archive_r Notices
2
+
3
+ This file contains third-party notices and licensing information for bundled or
4
+ linked components. It does not replace the project license.
5
+
6
+ ----------------------------------------
7
+ Third-Party Notices
8
+ ----------------------------------------
9
+
10
+ This distribution bundles or links against the following third-party
11
+ components. Their respective license terms apply in addition to the MIT
12
+ License.
13
+
14
+ 1. libarchive
15
+ - Purpose: core archive reading and writing functionality for the C++
16
+ library and language bindings.
17
+ - License: New BSD License (https://www.libarchive.org/)
18
+
19
+ 2. pybind11
20
+ - Purpose: header-only binding generator for the Python extension module.
21
+ - License: BSD-style License (https://github.com/pybind/pybind11)
22
+
23
+ The following components are redistributed only because libarchive (bundled with archive_r) depends on them at runtime:
24
+
25
+ 3. zlib
26
+ - Purpose: libarchive dependency providing DEFLATE compression; bundled inside archive_r binaries and wheels because libarchive requires it.
27
+ - License: zlib License (https://zlib.net/zlib_license.html)
28
+
29
+ 4. bzip2
30
+ - Purpose: libarchive dependency providing bzip2 compression support; distributed with archive_r artifacts.
31
+ - License: BSD-style license (https://sourceware.org/bzip2/)
32
+
33
+ 5. liblzma (XZ Utils)
34
+ - Purpose: libarchive dependency providing LZMA/XZ compression; included with archive_r packages.
35
+ - License: Public Domain + GNU LGPLv2.1+ (https://tukaani.org/xz/)
36
+
37
+ 6. libxml2
38
+ - Purpose: libarchive dependency used for archive formats such as xar; distributed alongside archive_r.
39
+ - License: MIT-style License (http://xmlsoft.org/)
40
+
41
+ 7. zstd
42
+ - Purpose: libarchive dependency providing Zstandard compression; shipped within archive_r binaries.
43
+ - License: BSD License (https://github.com/facebook/zstd)
44
+
45
+ 8. Nettle
46
+ - Purpose: libarchive dependency providing cryptographic support (macOS/Linux); bundled with archive_r binaries.
47
+ - License: GNU LGPLv3+ or GNU GPLv2+ (https://www.lysator.liu.se/~nisse/nettle/)
48
+
49
+ 9. mini-gmp
50
+ - Purpose: Nettle dependency for arithmetic operations (macOS/Linux); bundled with archive_r binaries.
51
+ - License: GNU LGPLv3+ or GNU GPLv2+ (https://gmplib.org/)
52
+
53
+ 10. OpenSSL 3
54
+ - Purpose: libarchive dependency providing cryptographic support (Windows); bundled with archive_r Windows wheels.
55
+ - License: Apache License 2.0 with OpenSSL exception (https://www.openssl.org/source/license.html)
56
+
57
+ 11. lz4
58
+ - Purpose: libarchive dependency providing LZ4 compression; shipped with archive_r artifacts when required.
59
+ - License: BSD 2-Clause (https://github.com/lz4/lz4)
60
+
61
+ 12. libb2 (BLAKE2)
62
+ - Purpose: libarchive dependency providing BLAKE2 hashing; bundled when archive formats require it.
63
+ - License: CC0 1.0 Universal (https://github.com/BLAKE2/libb2)
64
+
65
+ 13. libattr
66
+ - Purpose: libarchive dependency providing extended attribute support on POSIX platforms; included in POSIX builds only.
67
+ - License: LGPL-2.1-or-later for the library (https://savannah.nongnu.org/projects/attr)
68
+
69
+ 14. libacl
70
+ - Purpose: libarchive dependency providing POSIX ACL support; included in POSIX builds only.
71
+ - License: LGPL-2.1-or-later for the library (https://savannah.nongnu.org/projects/acl)
@@ -12,6 +12,9 @@
12
12
  #include <cstring>
13
13
  #include <memory>
14
14
  #include <ruby.h>
15
+ #ifdef memcpy
16
+ #undef memcpy
17
+ #endif
15
18
  #include <stdexcept>
16
19
  #include <string>
17
20
  #include <utility>
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 archive_r Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,71 @@
1
+ archive_r Notices
2
+
3
+ This file contains third-party notices and licensing information for bundled or
4
+ linked components. It does not replace the project license.
5
+
6
+ ----------------------------------------
7
+ Third-Party Notices
8
+ ----------------------------------------
9
+
10
+ This distribution bundles or links against the following third-party
11
+ components. Their respective license terms apply in addition to the MIT
12
+ License.
13
+
14
+ 1. libarchive
15
+ - Purpose: core archive reading and writing functionality for the C++
16
+ library and language bindings.
17
+ - License: New BSD License (https://www.libarchive.org/)
18
+
19
+ 2. pybind11
20
+ - Purpose: header-only binding generator for the Python extension module.
21
+ - License: BSD-style License (https://github.com/pybind/pybind11)
22
+
23
+ The following components are redistributed only because libarchive (bundled with archive_r) depends on them at runtime:
24
+
25
+ 3. zlib
26
+ - Purpose: libarchive dependency providing DEFLATE compression; bundled inside archive_r binaries and wheels because libarchive requires it.
27
+ - License: zlib License (https://zlib.net/zlib_license.html)
28
+
29
+ 4. bzip2
30
+ - Purpose: libarchive dependency providing bzip2 compression support; distributed with archive_r artifacts.
31
+ - License: BSD-style license (https://sourceware.org/bzip2/)
32
+
33
+ 5. liblzma (XZ Utils)
34
+ - Purpose: libarchive dependency providing LZMA/XZ compression; included with archive_r packages.
35
+ - License: Public Domain + GNU LGPLv2.1+ (https://tukaani.org/xz/)
36
+
37
+ 6. libxml2
38
+ - Purpose: libarchive dependency used for archive formats such as xar; distributed alongside archive_r.
39
+ - License: MIT-style License (http://xmlsoft.org/)
40
+
41
+ 7. zstd
42
+ - Purpose: libarchive dependency providing Zstandard compression; shipped within archive_r binaries.
43
+ - License: BSD License (https://github.com/facebook/zstd)
44
+
45
+ 8. Nettle
46
+ - Purpose: libarchive dependency providing cryptographic support (macOS/Linux); bundled with archive_r binaries.
47
+ - License: GNU LGPLv3+ or GNU GPLv2+ (https://www.lysator.liu.se/~nisse/nettle/)
48
+
49
+ 9. mini-gmp
50
+ - Purpose: Nettle dependency for arithmetic operations (macOS/Linux); bundled with archive_r binaries.
51
+ - License: GNU LGPLv3+ or GNU GPLv2+ (https://gmplib.org/)
52
+
53
+ 10. OpenSSL 3
54
+ - Purpose: libarchive dependency providing cryptographic support (Windows); bundled with archive_r Windows wheels.
55
+ - License: Apache License 2.0 with OpenSSL exception (https://www.openssl.org/source/license.html)
56
+
57
+ 11. lz4
58
+ - Purpose: libarchive dependency providing LZ4 compression; shipped with archive_r artifacts when required.
59
+ - License: BSD 2-Clause (https://github.com/lz4/lz4)
60
+
61
+ 12. libb2 (BLAKE2)
62
+ - Purpose: libarchive dependency providing BLAKE2 hashing; bundled when archive formats require it.
63
+ - License: CC0 1.0 Universal (https://github.com/BLAKE2/libb2)
64
+
65
+ 13. libattr
66
+ - Purpose: libarchive dependency providing extended attribute support on POSIX platforms; included in POSIX builds only.
67
+ - License: LGPL-2.1-or-later for the library (https://savannah.nongnu.org/projects/attr)
68
+
69
+ 14. libacl
70
+ - Purpose: libarchive dependency providing POSIX ACL support; included in POSIX builds only.
71
+ - License: LGPL-2.1-or-later for the library (https://savannah.nongnu.org/projects/acl)
@@ -20,8 +20,8 @@ namespace archive_r {
20
20
 
21
21
  ArchiveStackOrchestrator::ArchiveStackOrchestrator(const ArchiveOption &options)
22
22
  : _archive_options(options)
23
- , _metadata_keys(options.metadata_keys.begin(), options.metadata_keys.end()) {
24
- _head.configure(_archive_options);
23
+ {
24
+ _head.configure(_archive_options);
25
25
  }
26
26
 
27
27
  ArchiveStackOrchestrator::~ArchiveStackOrchestrator() = default;
@@ -36,7 +36,7 @@ public:
36
36
  StreamArchive *current_archive();
37
37
  ssize_t read_head(void *buff, size_t len);
38
38
 
39
- const std::unordered_set<std::string> &metadata_keys() const { return _metadata_keys; }
39
+ const std::unordered_set<std::string> &metadata_keys() const { return _archive_options.metadata_keys; }
40
40
  const ArchiveOption &options() const { return _archive_options; }
41
41
 
42
42
  void mark_entry_as_multi_volume(const PathHierarchy &entry_path, const std::string &base_name, PathEntry::Parts::Ordering ordering = PathEntry::Parts::Ordering::Natural);
@@ -44,7 +44,6 @@ public:
44
44
 
45
45
  private:
46
46
  ArchiveOption _archive_options;
47
- std::unordered_set<std::string> _metadata_keys;
48
47
  ArchiveStackCursor _head;
49
48
  MultiVolumeManager _multi_volume_manager;
50
49
 
@@ -268,6 +268,7 @@ ssize_t Archive::read_current(void *buff, size_t len) {
268
268
  return bytes_read;
269
269
  }
270
270
 
271
+ // Returns the current entry size in bytes, or 0 when no entry is selected.
271
272
  uint64_t Archive::current_entry_size() const {
272
273
  if (!current_entry) {
273
274
  return 0;
@@ -275,6 +276,7 @@ uint64_t Archive::current_entry_size() const {
275
276
  return archive_entry_size(current_entry);
276
277
  }
277
278
 
279
+ // Returns the current entry filetype bits, or 0 when no entry is selected.
278
280
  mode_t Archive::current_entry_filetype() const {
279
281
  if (!current_entry) {
280
282
  return 0;
@@ -28,7 +28,7 @@ using open_delegate = std::function<int(struct archive *ar)>;
28
28
  struct ArchiveOption {
29
29
  std::vector<std::string> passphrases; ///< Passphrases for encrypted archives
30
30
  std::vector<std::string> formats; ///< Specific format names to enable (empty = all)
31
- std::vector<std::string> metadata_keys; ///< Metadata keys to capture (empty = none)
31
+ std::unordered_set<std::string> metadata_keys; ///< Metadata keys to capture (empty = none)
32
32
  };
33
33
 
34
34
  archive_ptr new_read_archive_common(const std::vector<std::string> &passphrases, const std::vector<std::string> &format_names, open_delegate archive_open);
@@ -168,6 +168,8 @@ void SystemFileStream::report_read_failure(int err) {
168
168
  throw make_entry_fault_error(detailed, _logical_path, err);
169
169
  }
170
170
 
171
+ // Collect filesystem metadata for the root path in the hierarchy.
172
+ // Returns an empty info struct when metadata is unavailable or disallowed.
171
173
  FilesystemMetadataInfo collect_root_path_metadata(const PathHierarchy &hierarchy, const std::unordered_set<std::string> &allowed_keys) {
172
174
  FilesystemMetadataInfo info;
173
175
 
@@ -187,6 +189,12 @@ FilesystemMetadataInfo collect_root_path_metadata(const PathHierarchy &hierarchy
187
189
  return info;
188
190
  }
189
191
 
192
+ ec.clear();
193
+ const bool exists = entry.exists(ec);
194
+ if (ec || !exists) {
195
+ return info;
196
+ }
197
+
190
198
  mode_t filetype = 0;
191
199
  uint64_t size = 0;
192
200
 
@@ -31,7 +31,7 @@ archive_r::ArchiveOption to_archive_option(const TraverserOptions &options) {
31
31
  archive_r::ArchiveOption converted;
32
32
  converted.passphrases = options.passphrases;
33
33
  converted.formats = options.formats;
34
- converted.metadata_keys = options.metadata_keys;
34
+ converted.metadata_keys.insert(options.metadata_keys.begin(), options.metadata_keys.end());
35
35
  return converted;
36
36
  }
37
37
 
data/lib/archive_r.rb CHANGED
@@ -35,7 +35,7 @@ rescue LoadError
35
35
  end
36
36
 
37
37
  module Archive_r
38
- VERSION = "0.1.7"
38
+ VERSION = "0.1.8"
39
39
  # Common archive formats excluding libarchive's mtree/raw pseudo formats
40
40
  STANDARD_FORMATS = %w[
41
41
  7zip ar cab cpio empty iso9660 lha rar tar warc xar zip
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: archive_r_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - raizo.tcs
@@ -48,11 +48,13 @@ extensions:
48
48
  - ext/archive_r/extconf.rb
49
49
  extra_rdoc_files: []
50
50
  files:
51
- - LICENSE.txt
51
+ - LICENSE
52
+ - NOTICE
52
53
  - README.md
53
54
  - ext/archive_r/archive_r_ext.cc
54
55
  - ext/archive_r/extconf.rb
55
- - ext/archive_r/vendor/archive_r/LICENSE.txt
56
+ - ext/archive_r/vendor/archive_r/LICENSE
57
+ - ext/archive_r/vendor/archive_r/NOTICE
56
58
  - ext/archive_r/vendor/archive_r/include/archive_r/data_stream.h
57
59
  - ext/archive_r/vendor/archive_r/include/archive_r/entry.h
58
60
  - ext/archive_r/vendor/archive_r/include/archive_r/entry_fault.h
data/LICENSE.txt DELETED
@@ -1,97 +0,0 @@
1
- archive_r License
2
- Version: 0.1.7 (2025-12-16)
3
-
4
- ----------------------------------------
5
- Primary License
6
- ----------------------------------------
7
-
8
- MIT License
9
-
10
- Copyright (c) 2025 archive_r Team
11
-
12
- Permission is hereby granted, free of charge, to any person obtaining a copy
13
- of this software and associated documentation files (the "Software"), to deal
14
- in the Software without restriction, including without limitation the rights
15
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
- copies of the Software, and to permit persons to whom the Software is
17
- furnished to do so, subject to the following conditions:
18
-
19
- The above copyright notice and this permission notice shall be included in all
20
- copies or substantial portions of the Software.
21
-
22
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
- SOFTWARE.
29
-
30
- ----------------------------------------
31
- Third-Party Notices
32
- ----------------------------------------
33
-
34
- This distribution bundles or links against the following third-party
35
- components. Their respective license terms apply in addition to the MIT
36
- License shown above.
37
-
38
- 1. libarchive
39
- - Purpose: core archive reading and writing functionality for the C++
40
- library and language bindings.
41
- - License: New BSD License (https://www.libarchive.org/)
42
-
43
- 2. pybind11
44
- - Purpose: header-only binding generator for the Python extension module.
45
- - License: BSD-style License (https://github.com/pybind/pybind11)
46
-
47
- The following components are redistributed only because libarchive (bundled with archive_r) depends on them at runtime:
48
-
49
- 3. zlib
50
- - Purpose: libarchive dependency providing DEFLATE compression; bundled inside archive_r binaries and wheels because libarchive requires it.
51
- - License: zlib License (https://zlib.net/zlib_license.html)
52
-
53
- 4. bzip2
54
- - Purpose: libarchive dependency providing bzip2 compression support; distributed with archive_r artifacts.
55
- - License: BSD-style license (https://sourceware.org/bzip2/)
56
-
57
- 5. liblzma (XZ Utils)
58
- - Purpose: libarchive dependency providing LZMA/XZ compression; included with archive_r packages.
59
- - License: Public Domain + GNU LGPLv2.1+ (https://tukaani.org/xz/)
60
-
61
- 6. libxml2
62
- - Purpose: libarchive dependency used for archive formats such as xar; distributed alongside archive_r.
63
- - License: MIT-style License (http://xmlsoft.org/)
64
-
65
- 7. zstd
66
- - Purpose: libarchive dependency providing Zstandard compression; shipped within archive_r binaries.
67
- - License: BSD License (https://github.com/facebook/zstd)
68
-
69
- 8. Nettle
70
- - Purpose: libarchive dependency providing cryptographic support (macOS/Linux); bundled with archive_r binaries.
71
- - License: GNU LGPLv3+ or GNU GPLv2+ (https://www.lysator.liu.se/~nisse/nettle/)
72
-
73
- 9. mini-gmp
74
- - Purpose: Nettle dependency for arithmetic operations (macOS/Linux); bundled with archive_r binaries.
75
- - License: GNU LGPLv3+ or GNU GPLv2+ (https://gmplib.org/)
76
-
77
- 10. OpenSSL 3
78
- - Purpose: libarchive dependency providing cryptographic support (Windows); bundled with archive_r Windows wheels.
79
- - License: Apache License 2.0 with OpenSSL exception (https://www.openssl.org/source/license.html)
80
-
81
- 11. lz4
82
- - Purpose: libarchive dependency providing LZ4 compression; shipped with archive_r artifacts when required.
83
- - License: BSD 2-Clause (https://github.com/lz4/lz4)
84
-
85
- 12. libb2 (BLAKE2)
86
- - Purpose: libarchive dependency providing BLAKE2 hashing; bundled when archive formats require it.
87
- - License: CC0 1.0 Universal (https://github.com/BLAKE2/libb2)
88
-
89
- 13. libattr
90
- - Purpose: libarchive dependency providing extended attribute support on POSIX platforms; included in POSIX builds only.
91
- - License: LGPL-2.1-or-later for the library (https://savannah.nongnu.org/projects/attr)
92
-
93
- 14. libacl
94
- - Purpose: libarchive dependency providing POSIX ACL support; included in POSIX builds only.
95
- - License: LGPL-2.1-or-later for the library (https://savannah.nongnu.org/projects/acl)
96
- Users of archive_r should review the linked third-party licenses to ensure
97
- compliance with their terms when redistributing this software.
@@ -1,97 +0,0 @@
1
- archive_r License
2
- Version: 0.1.7 (2025-12-16)
3
-
4
- ----------------------------------------
5
- Primary License
6
- ----------------------------------------
7
-
8
- MIT License
9
-
10
- Copyright (c) 2025 archive_r Team
11
-
12
- Permission is hereby granted, free of charge, to any person obtaining a copy
13
- of this software and associated documentation files (the "Software"), to deal
14
- in the Software without restriction, including without limitation the rights
15
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
- copies of the Software, and to permit persons to whom the Software is
17
- furnished to do so, subject to the following conditions:
18
-
19
- The above copyright notice and this permission notice shall be included in all
20
- copies or substantial portions of the Software.
21
-
22
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
- SOFTWARE.
29
-
30
- ----------------------------------------
31
- Third-Party Notices
32
- ----------------------------------------
33
-
34
- This distribution bundles or links against the following third-party
35
- components. Their respective license terms apply in addition to the MIT
36
- License shown above.
37
-
38
- 1. libarchive
39
- - Purpose: core archive reading and writing functionality for the C++
40
- library and language bindings.
41
- - License: New BSD License (https://www.libarchive.org/)
42
-
43
- 2. pybind11
44
- - Purpose: header-only binding generator for the Python extension module.
45
- - License: BSD-style License (https://github.com/pybind/pybind11)
46
-
47
- The following components are redistributed only because libarchive (bundled with archive_r) depends on them at runtime:
48
-
49
- 3. zlib
50
- - Purpose: libarchive dependency providing DEFLATE compression; bundled inside archive_r binaries and wheels because libarchive requires it.
51
- - License: zlib License (https://zlib.net/zlib_license.html)
52
-
53
- 4. bzip2
54
- - Purpose: libarchive dependency providing bzip2 compression support; distributed with archive_r artifacts.
55
- - License: BSD-style license (https://sourceware.org/bzip2/)
56
-
57
- 5. liblzma (XZ Utils)
58
- - Purpose: libarchive dependency providing LZMA/XZ compression; included with archive_r packages.
59
- - License: Public Domain + GNU LGPLv2.1+ (https://tukaani.org/xz/)
60
-
61
- 6. libxml2
62
- - Purpose: libarchive dependency used for archive formats such as xar; distributed alongside archive_r.
63
- - License: MIT-style License (http://xmlsoft.org/)
64
-
65
- 7. zstd
66
- - Purpose: libarchive dependency providing Zstandard compression; shipped within archive_r binaries.
67
- - License: BSD License (https://github.com/facebook/zstd)
68
-
69
- 8. Nettle
70
- - Purpose: libarchive dependency providing cryptographic support (macOS/Linux); bundled with archive_r binaries.
71
- - License: GNU LGPLv3+ or GNU GPLv2+ (https://www.lysator.liu.se/~nisse/nettle/)
72
-
73
- 9. mini-gmp
74
- - Purpose: Nettle dependency for arithmetic operations (macOS/Linux); bundled with archive_r binaries.
75
- - License: GNU LGPLv3+ or GNU GPLv2+ (https://gmplib.org/)
76
-
77
- 10. OpenSSL 3
78
- - Purpose: libarchive dependency providing cryptographic support (Windows); bundled with archive_r Windows wheels.
79
- - License: Apache License 2.0 with OpenSSL exception (https://www.openssl.org/source/license.html)
80
-
81
- 11. lz4
82
- - Purpose: libarchive dependency providing LZ4 compression; shipped with archive_r artifacts when required.
83
- - License: BSD 2-Clause (https://github.com/lz4/lz4)
84
-
85
- 12. libb2 (BLAKE2)
86
- - Purpose: libarchive dependency providing BLAKE2 hashing; bundled when archive formats require it.
87
- - License: CC0 1.0 Universal (https://github.com/BLAKE2/libb2)
88
-
89
- 13. libattr
90
- - Purpose: libarchive dependency providing extended attribute support on POSIX platforms; included in POSIX builds only.
91
- - License: LGPL-2.1-or-later for the library (https://savannah.nongnu.org/projects/attr)
92
-
93
- 14. libacl
94
- - Purpose: libarchive dependency providing POSIX ACL support; included in POSIX builds only.
95
- - License: LGPL-2.1-or-later for the library (https://savannah.nongnu.org/projects/acl)
96
- Users of archive_r should review the linked third-party licenses to ensure
97
- compliance with their terms when redistributing this software.