minitar 1.0.2 → 1.1.0

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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +285 -0
  3. data/CONTRIBUTING.md +273 -0
  4. data/CONTRIBUTORS.md +27 -0
  5. data/LICENCE.md +39 -0
  6. data/Manifest.txt +29 -6
  7. data/README.md +70 -0
  8. data/Rakefile +74 -19
  9. data/SECURITY.md +64 -0
  10. data/docs/ruby.txt +3 -3
  11. data/lib/minitar/input.rb +69 -56
  12. data/lib/minitar/output.rb +34 -22
  13. data/lib/minitar/pax_header.rb +111 -0
  14. data/lib/minitar/posix_header.rb +96 -57
  15. data/lib/minitar/reader.rb +65 -70
  16. data/lib/minitar/version.rb +5 -0
  17. data/lib/minitar/writer.rb +50 -88
  18. data/lib/minitar.rb +60 -64
  19. data/licenses/bsdl.txt +20 -0
  20. data/licenses/dco.txt +34 -0
  21. data/licenses/ruby.txt +52 -0
  22. data/test/fixtures/issue_46.tar.gz +0 -0
  23. data/test/fixtures/issue_62.tar.gz +0 -0
  24. data/test/fixtures/tar_input.tgz +0 -0
  25. data/test/fixtures/test_input_non_strict_octal.tgz +0 -0
  26. data/test/fixtures/test_input_relative.tgz +0 -0
  27. data/test/fixtures/test_input_space_octal.tgz +0 -0
  28. data/test/fixtures/test_minitar.tar.gz +0 -0
  29. data/test/minitest_helper.rb +12 -1
  30. data/test/support/minitar_test_helpers/fixtures.rb +38 -0
  31. data/test/support/minitar_test_helpers/header.rb +130 -0
  32. data/test/support/minitar_test_helpers/tarball.rb +324 -0
  33. data/test/support/minitar_test_helpers.rb +36 -0
  34. data/test/test_filename_boundary_conditions.rb +74 -0
  35. data/test/test_gnu_tar_compatibility.rb +92 -0
  36. data/test/test_integration_pack_unpack_cycle.rb +38 -0
  37. data/test/test_issue_46.rb +5 -23
  38. data/test/test_issue_62.rb +50 -0
  39. data/test/test_minitar.rb +168 -39
  40. data/test/test_pax_header.rb +104 -0
  41. data/test/test_pax_support.rb +66 -0
  42. data/test/test_tar_header.rb +289 -75
  43. data/test/test_tar_input.rb +14 -61
  44. data/test/test_tar_output.rb +7 -9
  45. data/test/test_tar_reader.rb +17 -18
  46. data/test/test_tar_writer.rb +105 -126
  47. metadata +95 -89
  48. data/Contributing.md +0 -94
  49. data/History.md +0 -236
  50. data/Licence.md +0 -15
  51. data/README.rdoc +0 -92
  52. data/test/support/tar_test_helpers.rb +0 -134
  53. /data/{Code-of-Conduct.md → CODE_OF_CONDUCT.md} +0 -0
metadata CHANGED
@@ -1,43 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Austin Ziegler
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-08-23 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: minitest
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '5.24'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '5.24'
27
- - !ruby/object:Gem::Dependency
28
- name: base64
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '0.2'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '0.2'
41
12
  - !ruby/object:Gem::Dependency
42
13
  name: hoe
43
14
  requirement: !ruby/object:Gem::Requirement
@@ -53,61 +24,53 @@ dependencies:
53
24
  - !ruby/object:Gem::Version
54
25
  version: '4.0'
55
26
  - !ruby/object:Gem::Dependency
56
- name: hoe-doofus
27
+ name: hoe-halostatue
57
28
  requirement: !ruby/object:Gem::Requirement
58
29
  requirements:
59
30
  - - "~>"
60
31
  - !ruby/object:Gem::Version
61
- version: '1.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.0'
69
- - !ruby/object:Gem::Dependency
70
- name: hoe-gemspec2
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
32
+ version: '2.1'
33
+ - - ">="
74
34
  - !ruby/object:Gem::Version
75
- version: '1.1'
35
+ version: 2.1.1
76
36
  type: :development
77
37
  prerelease: false
78
38
  version_requirements: !ruby/object:Gem::Requirement
79
39
  requirements:
80
40
  - - "~>"
81
41
  - !ruby/object:Gem::Version
82
- version: '1.1'
42
+ version: '2.1'
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 2.1.1
83
46
  - !ruby/object:Gem::Dependency
84
- name: hoe-git2
47
+ name: irb
85
48
  requirement: !ruby/object:Gem::Requirement
86
49
  requirements:
87
50
  - - "~>"
88
51
  - !ruby/object:Gem::Version
89
- version: '1.7'
52
+ version: '1.0'
90
53
  type: :development
91
54
  prerelease: false
92
55
  version_requirements: !ruby/object:Gem::Requirement
93
56
  requirements:
94
57
  - - "~>"
95
58
  - !ruby/object:Gem::Version
96
- version: '1.7'
59
+ version: '1.0'
97
60
  - !ruby/object:Gem::Dependency
98
- name: hoe-rubygems
61
+ name: minitest
99
62
  requirement: !ruby/object:Gem::Requirement
100
63
  requirements:
101
64
  - - "~>"
102
65
  - !ruby/object:Gem::Version
103
- version: '1.0'
66
+ version: '5.16'
104
67
  type: :development
105
68
  prerelease: false
106
69
  version_requirements: !ruby/object:Gem::Requirement
107
70
  requirements:
108
71
  - - "~>"
109
72
  - !ruby/object:Gem::Version
110
- version: '1.0'
73
+ version: '5.16'
111
74
  - !ruby/object:Gem::Dependency
112
75
  name: minitest-autotest
113
76
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +91,14 @@ dependencies:
128
91
  requirements:
129
92
  - - "~>"
130
93
  - !ruby/object:Gem::Version
131
- version: '1.0'
94
+ version: '1.1'
132
95
  type: :development
133
96
  prerelease: false
134
97
  version_requirements: !ruby/object:Gem::Requirement
135
98
  requirements:
136
99
  - - "~>"
137
100
  - !ruby/object:Gem::Version
138
- version: '1.0'
101
+ version: '1.1'
139
102
  - !ruby/object:Gem::Dependency
140
103
  name: rake
141
104
  requirement: !ruby/object:Gem::Requirement
@@ -163,6 +126,9 @@ dependencies:
163
126
  - - ">="
164
127
  - !ruby/object:Gem::Version
165
128
  version: '0.0'
129
+ - - "<"
130
+ - !ruby/object:Gem::Version
131
+ version: '7'
166
132
  type: :development
167
133
  prerelease: false
168
134
  version_requirements: !ruby/object:Gem::Requirement
@@ -170,22 +136,39 @@ dependencies:
170
136
  - - ">="
171
137
  - !ruby/object:Gem::Version
172
138
  version: '0.0'
139
+ - - "<"
140
+ - !ruby/object:Gem::Version
141
+ version: '7'
173
142
  - !ruby/object:Gem::Dependency
174
- name: standard
143
+ name: simplecov
175
144
  requirement: !ruby/object:Gem::Requirement
176
145
  requirements:
177
146
  - - "~>"
178
147
  - !ruby/object:Gem::Version
179
- version: '1.0'
148
+ version: '0.22'
180
149
  type: :development
181
150
  prerelease: false
182
151
  version_requirements: !ruby/object:Gem::Requirement
183
152
  requirements:
184
153
  - - "~>"
185
154
  - !ruby/object:Gem::Version
186
- version: '1.0'
155
+ version: '0.22'
187
156
  - !ruby/object:Gem::Dependency
188
- name: standard-minitest
157
+ name: simplecov-lcov
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: '0.8'
163
+ type: :development
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '0.8'
170
+ - !ruby/object:Gem::Dependency
171
+ name: standard
189
172
  requirement: !ruby/object:Gem::Requirement
190
173
  requirements:
191
174
  - - "~>"
@@ -199,7 +182,7 @@ dependencies:
199
182
  - !ruby/object:Gem::Version
200
183
  version: '1.0'
201
184
  - !ruby/object:Gem::Dependency
202
- name: standard-thread_safety
185
+ name: standard-minitest
203
186
  requirement: !ruby/object:Gem::Requirement
204
187
  requirements:
205
188
  - - "~>"
@@ -213,79 +196,103 @@ dependencies:
213
196
  - !ruby/object:Gem::Version
214
197
  version: '1.0'
215
198
  - !ruby/object:Gem::Dependency
216
- name: simplecov
199
+ name: standard-thread_safety
217
200
  requirement: !ruby/object:Gem::Requirement
218
201
  requirements:
219
202
  - - "~>"
220
203
  - !ruby/object:Gem::Version
221
- version: '0.21'
204
+ version: '1.0'
222
205
  type: :development
223
206
  prerelease: false
224
207
  version_requirements: !ruby/object:Gem::Requirement
225
208
  requirements:
226
209
  - - "~>"
227
210
  - !ruby/object:Gem::Version
228
- version: '0.21'
211
+ version: '1.0'
229
212
  description: |-
230
- The minitar library is a pure-Ruby library that provides the ability to deal
231
- with POSIX tar(1) archive files.
232
-
233
- This is release 0.12. This is likely the last revision before 1.0.
213
+ The minitar library is a pure-Ruby library that operates on POSIX tar(1) archive
214
+ files.
234
215
 
235
216
  minitar (previously called Archive::Tar::Minitar) is based heavily on code
236
- originally written by Mauricio Julio Fernández Pradier for the rpa-base
237
- project.
217
+ originally written by Mauricio Julio Fernández Pradier for the rpa-base project.
238
218
  email:
239
219
  - halostatue@gmail.com
240
220
  executables: []
241
221
  extensions: []
242
222
  extra_rdoc_files:
243
- - Code-of-Conduct.md
244
- - Contributing.md
245
- - History.md
246
- - Licence.md
223
+ - CHANGELOG.md
224
+ - CODE_OF_CONDUCT.md
225
+ - CONTRIBUTING.md
226
+ - CONTRIBUTORS.md
227
+ - LICENCE.md
247
228
  - Manifest.txt
248
- - README.rdoc
229
+ - README.md
230
+ - SECURITY.md
249
231
  - docs/bsdl.txt
250
232
  - docs/ruby.txt
233
+ - licenses/bsdl.txt
234
+ - licenses/dco.txt
235
+ - licenses/ruby.txt
251
236
  files:
252
- - Code-of-Conduct.md
253
- - Contributing.md
254
- - History.md
255
- - Licence.md
237
+ - CHANGELOG.md
238
+ - CODE_OF_CONDUCT.md
239
+ - CONTRIBUTING.md
240
+ - CONTRIBUTORS.md
241
+ - LICENCE.md
256
242
  - Manifest.txt
257
- - README.rdoc
243
+ - README.md
258
244
  - Rakefile
245
+ - SECURITY.md
259
246
  - docs/bsdl.txt
260
247
  - docs/ruby.txt
261
248
  - lib/minitar.rb
262
249
  - lib/minitar/input.rb
263
250
  - lib/minitar/output.rb
251
+ - lib/minitar/pax_header.rb
264
252
  - lib/minitar/posix_header.rb
265
253
  - lib/minitar/reader.rb
254
+ - lib/minitar/version.rb
266
255
  - lib/minitar/writer.rb
256
+ - licenses/bsdl.txt
257
+ - licenses/dco.txt
258
+ - licenses/ruby.txt
259
+ - test/fixtures/issue_46.tar.gz
260
+ - test/fixtures/issue_62.tar.gz
261
+ - test/fixtures/tar_input.tgz
262
+ - test/fixtures/test_input_non_strict_octal.tgz
263
+ - test/fixtures/test_input_relative.tgz
264
+ - test/fixtures/test_input_space_octal.tgz
265
+ - test/fixtures/test_minitar.tar.gz
267
266
  - test/minitest_helper.rb
268
- - test/support/tar_test_helpers.rb
267
+ - test/support/minitar_test_helpers.rb
268
+ - test/support/minitar_test_helpers/fixtures.rb
269
+ - test/support/minitar_test_helpers/header.rb
270
+ - test/support/minitar_test_helpers/tarball.rb
271
+ - test/test_filename_boundary_conditions.rb
272
+ - test/test_gnu_tar_compatibility.rb
273
+ - test/test_integration_pack_unpack_cycle.rb
269
274
  - test/test_issue_46.rb
275
+ - test/test_issue_62.rb
270
276
  - test/test_minitar.rb
277
+ - test/test_pax_header.rb
278
+ - test/test_pax_support.rb
271
279
  - test/test_tar_header.rb
272
280
  - test/test_tar_input.rb
273
281
  - test/test_tar_output.rb
274
282
  - test/test_tar_reader.rb
275
283
  - test/test_tar_writer.rb
276
- homepage: https://github.com/halostatue/minitar/
284
+ homepage: https://github.com/halostatue/minitar
277
285
  licenses:
278
286
  - Ruby
279
287
  - BSD-2-Clause
280
288
  metadata:
281
- homepage_uri: https://github.com/halostatue/minitar/
282
- source_code_uri: https://github.com/halostatue/minitar/
289
+ source_code_uri: https://github.com/halostatue/minitar
283
290
  bug_tracker_uri: https://github.com/halostatue/minitar/issues
291
+ changelog_uri: https://github.com/halostatue/minitar/blob/main/CHANGELOG.md
284
292
  rubygems_mfa_required: 'true'
285
- post_install_message:
286
293
  rdoc_options:
287
294
  - "--main"
288
- - README.rdoc
295
+ - README.md
289
296
  require_paths:
290
297
  - lib
291
298
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -299,9 +306,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
299
306
  - !ruby/object:Gem::Version
300
307
  version: '0'
301
308
  requirements: []
302
- rubygems_version: 3.5.17
303
- signing_key:
309
+ rubygems_version: 3.6.9
304
310
  specification_version: 4
305
- summary: The minitar library is a pure-Ruby library that provides the ability to deal
306
- with POSIX tar(1) archive files
311
+ summary: The minitar library is a pure-Ruby library that operates on POSIX tar(1)
312
+ archive files
307
313
  test_files: []
data/Contributing.md DELETED
@@ -1,94 +0,0 @@
1
- ## Contributing
2
-
3
- I value any contribution to minitar you can provide: a bug report, a feature
4
- request, or code contributions. There are a few guidelines for contributing to
5
- minitar:
6
-
7
- - Code changes _will not_ be accepted without tests. The test suite is written
8
- with [Minitest][Minitest].
9
- - Match my coding style.
10
- - Use a thoughtfully-named topic branch that contains your change. Rebase your
11
- commits into logical chunks as necessary.
12
- - Use [quality commit messages][quality commit messages].
13
- - Do not change the version number; when your patch is accepted and a release is
14
- made, the version will be updated at that point.
15
- - Submit a GitHub pull request with your changes.
16
- - New or changed behaviours require appropriate documentation.
17
-
18
- ### Test Dependencies
19
-
20
- minitar uses Ryan Davis’s [Hoe][Hoe] to manage the release process, and it adds
21
- a number of rake tasks. You will mostly be interested in:
22
-
23
- $ rake
24
-
25
- which runs the tests the same way that:
26
-
27
- $ rake test
28
- $ rake travis
29
-
30
- will do.
31
-
32
- To assist with the installation of the development dependencies for minitar, I
33
- have provided the simplest possible Gemfile pointing to the (generated)
34
- `minitar.gemspec` file. This will permit you to do:
35
-
36
- $ bundle install
37
-
38
- to get the development dependencies. If you aleady have `hoe` installed, you can
39
- accomplish the same thing with:
40
-
41
- $ rake newb
42
-
43
- This task will install any missing dependencies, run the tests/specs, and
44
- generate the RDoc.
45
-
46
- You can run tests with code coverage analysis by running:
47
-
48
- $ rake test:coverage
49
-
50
- ### Workflow
51
-
52
- Here's the most direct way to get your work merged into the project:
53
-
54
- - Fork the project.
55
- - Clone down your fork (`git clone git://github.com/<username>/minitar.git`).
56
- - Create a topic branch to contain your change
57
- (`git checkout -b my_awesome_feature`).
58
- - Hack away, add tests. Not necessarily in that order.
59
- - Make sure everything still passes by running `rake`.
60
- - If necessary, rebase your commits into logical chunks, without errors.
61
- - Push the branch up (`git push origin my_awesome_feature`).
62
- - Create a pull request against halostatue/minitar and describe what your change
63
- does and the why you think it should be merged.
64
-
65
- ### Contributors
66
-
67
- - Austin Ziegler created minitar, based on work originally written by Mauricio
68
- Fernández for rpa-base.
69
-
70
- Thanks to everyone who has contributed to minitar:
71
-
72
- - Akinori MUSHA (knu)
73
- - Antoine Toulme
74
- - Curtis Sampson
75
- - Daniel J. Berger
76
- - dearblue
77
- - inkstak
78
- - John Prince
79
- - Jorie Tappa
80
- - Kazuyoshi Kato
81
- - Kevin McDermott
82
- - Matthew Kent
83
- - Merten Falk
84
- - Michal Suchanek
85
- - Mike Furr
86
- - ooooooo_q
87
- - Pete Fritchman
88
- - Vijay (bv-vijay)
89
- - Yamamoto Kōhei
90
- - Zach Dennis
91
-
92
- [minitest]: https://github.com/seattlerb/minitest
93
- [quality commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
94
- [hoe]: https://github.com/seattlerb/hoe
data/History.md DELETED
@@ -1,236 +0,0 @@
1
- # History
2
-
3
- ## 1.0.2 / 2024-08-23
4
-
5
- - Bugfix:
6
-
7
- - Minitar 1.0.1 was released with an unchanged gemspec. Reported by Debashish
8
- Biswas in [#65][#65].
9
-
10
- ## 1.0.1 / 2024-08-08
11
-
12
- - Bugfix:
13
-
14
- - Resolve a constant lookup issue. The accepted fix has been provided by Aram
15
- Price in [#58][#58].
16
-
17
- ## 1.0.0 / 2024-08-07
18
-
19
- - Breaking Changes:
20
-
21
- - Minimum Ruby version is 3.1.
22
-
23
- - The `Archive::Tar::Minitar` namespace has been completely removed and
24
- `Minitar` is a class instead of a module.
25
-
26
- - Enhancements:
27
-
28
- - Added `Minitar.pack_as_file`, originally proposed by John Prince back in
29
- 2011 [#7][#7].
30
-
31
- ## 0.12.1 / 2024-08-21
32
-
33
- - Reverted @adbbb9b596 to restore compatibility with Ruby < 2.0. Resolves
34
- [#63][#63] reported by Robert Schulze.
35
-
36
- ## 0.12 / 2024-08-06
37
-
38
- - Properly handle very long GNU filenames, resolving [#46][#46].
39
- - Handle very long GNU filenames that are 512 or more bytes, resolving
40
- [#45][#45]. Originally implemented in [#47][#47] by Vijay, but accidentally
41
- closed.
42
-
43
- ## 0.11 / 2022-12-31
44
-
45
- - symlink support is complete. Merged as PR [#42][#42], rebased and built on top
46
- of PR [#12][#12] by fetep.
47
-
48
- - kymmt90 fixed a documentation error on `Minitar.pack` in PR [#43][#43].
49
-
50
- - This version is a soft-deprecation of all versions before Ruby 2.7, as they
51
- will no longer be tested in CI.
52
-
53
- ## 0.10 / 2022-03-26
54
-
55
- - nevesenin fixed an issue with long filename handling. Merged as PR [#40][#40].
56
-
57
- ## 0.9 / 2019-09-04
58
-
59
- - jtappa added the ability to skip fsync with a new option to `Minitar.unpack`
60
- and `Minitar::Input#extract_entry`. Provide `:fsync => false` as the last
61
- parameter to enable. Merged from a modified version of PR [#37][#37].
62
-
63
- ## 0.8 / 2019-01-05
64
-
65
- - inkstak resolved an issue introduced in the fix for [#31][#31] by allowing
66
- spaces to be considered valid characters in strict octal handling. Octal
67
- conversion ignores leading spaces. Merged from a slightly modified version of
68
- PR [#35][#35].
69
-
70
- - dearblue contributed PR [#32][#32] providing an explicit call to #bytesize for
71
- strings that include multibyte characters. The PR has been modified to be
72
- compatible with older versions of Ruby and extend tests.
73
-
74
- - Akinori MUSHA (knu) contributed PR [#36][#36] that treats certain badly
75
- encoded regular files (with names ending in `/`) as if they were directories
76
- on decode.
77
-
78
- ## 0.7 / 2018-02-19
79
-
80
- - Fixed issue [#28][#28] with a modified version of PR [#29][#29] covering the
81
- security policy and position for `Minitar`. Thanks so much to ooooooo_q for
82
- the report and an initial patch. Additional information was added as
83
- [#30][#30].
84
-
85
- - dearblue contributed PR [#33][#33] providing a fix for `Minitar::Reader` when
86
- the IO-like object does not have a `#pos` method.
87
-
88
- - Kevin McDermott contributed PR [#34][#34] so that an InvalidTarStream is
89
- raised if the tar header is not valid, preventing incorrect streaming of files
90
- from a non-tarfile. This is a minor breaking change, so the version has been
91
- bumped accordingly.
92
-
93
- - Kazuyoshi Kato contributed PR [#26][#26] providing support for the GNU tar
94
- long filename extension.
95
-
96
- - Addressed a potential DOS with negative size fields in tar headers
97
- ([#31][#31]). This has been handled in two ways: the size field in a tar
98
- header is interpreted as a strict octal value and the `Minitar` reader will
99
- raise an InvalidTarStream if the size ends up being negative anyway.
100
-
101
- ## 0.6.1 / 2017-02-07
102
-
103
- - Fixed issue [#24][#24] where streams were being improperly closed immediately
104
- on open unless there was a block provided.
105
-
106
- - Hopefully fixes issue [#23][#23] by releasing archive-tar-minitar after
107
- minitar-cli is available.
108
-
109
- ## 0.6 / 2017-02-07
110
-
111
- - Breaking Changes:
112
-
113
- - Extracted `bin/minitar` into a new gem, `minitar-cli`. No, I am _not_ going
114
- to bump the major version for this. As far as I can tell, few people use the
115
- command-line utility anyway. (Installing `archive-tar-minitar` will install
116
- both `minitar` and `minitar-cli`, at least until version 1.0.)
117
-
118
- - `Minitar` extraction before 0.6 traverses directories if the tarball
119
- includes a relative directory reference, as reported in [#16][#16] by
120
- @ecneladis. This has been disallowed entirely and will throw a
121
- `SecureRelativePathError` when found. Additionally, if the final destination
122
- of an entry is an already-existing symbolic link, the existing symbolic link
123
- will be removed and the file will be written correctly (on platforms that
124
- support symbolic links).
125
-
126
- - Enhancements:
127
-
128
- - Licence change. After speaking with Mauricio Fernández, we have changed the
129
- licensing of this library to Ruby and Simplified BSD and have dropped the
130
- GNU GPL license. This takes effect from the 0.6 release.
131
- - Printing a deprecation warning for including Archive::Tar to put `Minitar`
132
- in the top-level namespace.
133
- - Printing a deprecation warning for including `Archive::Tar::Minitar` into a
134
- class (`Minitar` will be a class for version 1.0).
135
- - Moved `Archive::Tar::PosixHeader` to `Archive::Tar::Minitar::PosixHeader`
136
- with a deprecation warning. Do not depend on
137
- `Archive::Tar::Minitar::PosixHeader`, as it will be moving to
138
- `::Minitar::PosixHeader` in a future release.
139
- - Added an alias, `::Minitar`, for `Archive::Tar::Minitar`, opted in with
140
- `require 'minitar'`. In future releases, this alias will be enabled by
141
- default, and the `Archive::Tar` namespace will be removed entirely for
142
- version 1.0.
143
- - Modified the handling of `mtime` in `PosixHeader` to do an integer
144
- conversion (`#to_i`) so that a Time object can be used instead of the
145
- integer value of the time object.
146
- - `Writer::RestrictedStream` was renamed to `Writer::WriteOnlyStream` for
147
- clarity. No alias or deprecation warning was provided for this as it is an
148
- internal implementation detail.
149
- - `Writer::BoundedStream` was renamed to `Writer::BoundedWriteStream` for
150
- clarity. A deprecation warning is provided on first use because a
151
- BoundedWriteStream may raise a `BoundedWriteStream::FileOverflow` exception.
152
- - `Writer::BoundedWriteStream::FileOverflow` has been renamed to
153
- `Writer::WriteBoundaryOverflow` and inherits from `StandardError` instead of
154
- `RuntimeError`. Note that for Ruby 2.0 or higher, an error will be raised
155
- when specifying `Writer::BoundedWriteStream::FileOverflow` because
156
- `Writer::BoundedWriteStream` has been declared a private constant.
157
- - Modified `Writer#add_file_simple` to accept the data for a file in
158
- `opts[:data]`. When `opts[:data]` is provided, a stream block must not be
159
- provided. Improved the documentation for this method.
160
- - Modified `Writer#add_file` to accept `opts[:data]` and transparently call
161
- `Writer#add_file_simple` in this case.
162
- - Methods that require blocks are no longer required, so the
163
- `Archive::Tar::Minitar::BlockRequired` exception has been removed with a
164
- warning (this may not work on Ruby 1.8).
165
- - Dramatically reduced the number of strings created when creating a POSIX
166
- tarball header.
167
- - Added a helper, `Input.each_entry` that iterates over each entry in an
168
- opened entry object.
169
-
170
- - Bugs:
171
-
172
- - Fix [#2][#2] to handle IO streams that are not seekable, such as pipes,
173
- `STDIN`, or `STDOUT`.
174
- - Fix [#3][#3] to make the test timezone resilient.
175
- - Fix [#4][#4] for supporting the reading of tar files with filenames in the
176
- GNU long filename extension format. Ported from @atoulme’s fork, originally
177
- provided by Curtis Sampson.
178
- - Fix [#6][#6] by making it raise the correct error for a long filename with
179
- no path components.
180
- - Fix [#13][#13] provided by @fetep fixes an off-by-one error on filename
181
- splitting.
182
- - Fix [#14][#14] provided by @kzys should fix Windows detection issues.
183
- - Fix [#16][#16] as specified above.
184
- - Fix an issue where `Minitar.pack` would not include Unix hidden files when
185
- creating a tarball.
186
-
187
- - Development:
188
-
189
- - Modernized minitar tooling around Hoe.
190
- - Added travis and coveralls.
191
-
192
- ## 0.5.2 / 2008-02-26
193
-
194
- - Bugs:
195
- - Fixed a Ruby 1.9 compatibility error.
196
-
197
- ## 0.5.1 / 2004-09-27
198
-
199
- - Bugs:
200
- - Fixed a variable name error.
201
-
202
- ## 0.5.0
203
-
204
- - Initial release. Does files and directories. Command does create, extract, and
205
- list.
206
-
207
- [#2]: https://github.com/halostatue/minitar/issues/2
208
- [#3]: https://github.com/halostatue/minitar/issues/3
209
- [#4]: https://github.com/halostatue/minitar/issues/4
210
- [#6]: https://github.com/halostatue/minitar/issues/6
211
- [#7]: https://github.com/halostatue/minitar/issues/7
212
- [#12]: https://github.com/halostatue/minitar/pull/12
213
- [#13]: https://github.com/halostatue/minitar/issues/13
214
- [#14]: https://github.com/halostatue/minitar/issues/14
215
- [#16]: https://github.com/halostatue/minitar/issues/16
216
- [#23]: https://github.com/halostatue/minitar/issues/23
217
- [#24]: https://github.com/halostatue/minitar/issues/24
218
- [#26]: https://github.com/halostatue/minitar/issues/27
219
- [#28]: https://github.com/halostatue/minitar/issues/28
220
- [#29]: https://github.com/halostatue/minitar/pull/29
221
- [#30]: https://github.com/halostatue/minitar/issues/30
222
- [#31]: https://github.com/halostatue/minitar/issues/31
223
- [#32]: https://github.com/halostatue/minitar/pull/32
224
- [#33]: https://github.com/halostatue/minitar/pull/33
225
- [#34]: https://github.com/halostatue/minitar/pull/34
226
- [#35]: https://github.com/halostatue/minitar/pull/35
227
- [#36]: https://github.com/halostatue/minitar/pull/36
228
- [#37]: https://github.com/halostatue/minitar/pull/37
229
- [#40]: https://github.com/halostatue/minitar/pull/40
230
- [#42]: https://github.com/halostatue/minitar/pull/42
231
- [#43]: https://github.com/halostatue/minitar/pull/43
232
- [#45]: https://github.com/halostatue/minitar/issues/45
233
- [#46]: https://github.com/halostatue/minitar/issues/46
234
- [#47]: https://github.com/halostatue/minitar/pull/47
235
- [#58]: https://github.com/halostatue/minitar/issues/58
236
- [#65]: https://github.com/halostatue/minitar/issues/65
data/Licence.md DELETED
@@ -1,15 +0,0 @@
1
- ## Licence
2
-
3
- minitar is free software that may be redistributed and/or modified under the
4
- terms of Ruby’s licence or the Simplified BSD licence.
5
-
6
- - Copyright 2004–2024 Austin Ziegler.
7
- - Portions copyright 2004 Mauricio Julio Fernández Pradier.
8
-
9
- ### Simplified BSD Licence
10
-
11
- See the file docs/bsdl.txt in the main distribution.
12
-
13
- ### Ruby’s Licence
14
-
15
- See the file docs/ruby.txt in the main distribution.