minitar 0.8 → 0.12
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 +4 -4
- data/Contributing.md +48 -46
- data/History.md +161 -123
- data/Manifest.txt +1 -0
- data/README.rdoc +1 -21
- data/Rakefile +53 -33
- data/lib/archive/tar/minitar/input.rb +96 -75
- data/lib/archive/tar/minitar/output.rb +6 -6
- data/lib/archive/tar/minitar/posix_header.rb +36 -34
- data/lib/archive/tar/minitar/reader.rb +47 -33
- data/lib/archive/tar/minitar/writer.rb +64 -35
- data/lib/archive/tar/minitar.rb +47 -46
- data/lib/archive-tar-minitar.rb +1 -1
- data/lib/minitar.rb +1 -1
- data/support/hoe/deprecated_gem.rb +64 -0
- data/test/minitest_helper.rb +7 -6
- data/test/support/tar_test_helpers.rb +45 -41
- data/test/test_tar_header.rb +30 -31
- data/test/test_tar_input.rb +38 -30
- data/test/test_tar_output.rb +12 -12
- data/test/test_tar_reader.rb +23 -23
- data/test/test_tar_writer.rb +119 -69
- metadata +70 -47
data/test/test_tar_writer.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require "minitar"
|
4
|
+
require "minitest_helper"
|
5
5
|
|
6
6
|
class TestTarWriter < Minitest::Test
|
7
7
|
include Archive::Tar::Minitar::ByteSize
|
@@ -21,15 +21,15 @@ class TestTarWriter < Minitest::Test
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def reset
|
24
|
-
@data =
|
25
|
-
@data.force_encoding(
|
24
|
+
@data = ""
|
25
|
+
@data.force_encoding("ascii-8bit") if @data.respond_to?(:force_encoding)
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
29
|
def setup
|
30
|
-
@data =
|
30
|
+
@data = "a" * 10
|
31
31
|
@unicode = [0xc3.chr, 0xa5.chr].join * 10
|
32
|
-
@unicode.force_encoding(
|
32
|
+
@unicode.force_encoding("utf-8") if @unicode.respond_to?(:force_encoding)
|
33
33
|
@dummyos = DummyIO.new
|
34
34
|
@os = Minitar::Writer.new(@dummyos)
|
35
35
|
end
|
@@ -46,63 +46,61 @@ class TestTarWriter < Minitest::Test
|
|
46
46
|
assert writer.closed?
|
47
47
|
end
|
48
48
|
|
49
|
-
|
50
49
|
def test_add_file_simple
|
51
50
|
@dummyos.reset
|
52
51
|
|
53
52
|
Minitar::Writer.open(@dummyos) do |os|
|
54
|
-
os.add_file_simple(
|
55
|
-
f.write
|
53
|
+
os.add_file_simple("lib/foo/bar", :mode => 0o644, :size => 10) do |f|
|
54
|
+
f.write "a" * 10
|
56
55
|
end
|
57
|
-
os.add_file_simple(
|
58
|
-
f.write
|
56
|
+
os.add_file_simple("lib/bar/baz", :mode => 0o644, :size => 100) do |f|
|
57
|
+
f.write "fillme"
|
59
58
|
end
|
60
59
|
end
|
61
60
|
|
62
|
-
assert_headers_equal(tar_file_header(
|
61
|
+
assert_headers_equal(tar_file_header("lib/foo/bar", "", 0o644, 10),
|
63
62
|
@dummyos.data[0, 512])
|
64
|
-
assert_equal(
|
65
|
-
assert_headers_equal(tar_file_header(
|
63
|
+
assert_equal("a" * 10 + "\0" * 502, @dummyos.data[512, 512])
|
64
|
+
assert_headers_equal(tar_file_header("lib/bar/baz", "", 0o644, 100),
|
66
65
|
@dummyos.data[512 * 2, 512])
|
67
|
-
assert_equal(
|
66
|
+
assert_equal("fillme" + "\0" * 506, @dummyos.data[512 * 3, 512])
|
68
67
|
assert_equal("\0" * 512, @dummyos.data[512 * 4, 512])
|
69
68
|
assert_equal("\0" * 512, @dummyos.data[512 * 5, 512])
|
70
69
|
end
|
71
70
|
|
72
71
|
def test_write_operations_fail_after_closed
|
73
72
|
@dummyos.reset
|
74
|
-
@os.add_file_simple(
|
73
|
+
@os.add_file_simple("sadd", :mode => 0o644, :size => 20) { |f| }
|
75
74
|
@os.close
|
76
75
|
assert_raises(Minitar::ClosedStream) { @os.flush }
|
77
|
-
assert_raises(Minitar::ClosedStream) {
|
78
|
-
|
79
|
-
}
|
80
|
-
assert_raises(Minitar::ClosedStream) { @os.mkdir 'sdfdsf', :mode => 0o644 }
|
76
|
+
assert_raises(Minitar::ClosedStream) { @os.add_file("dfdsf", :mode => 0o644) {} }
|
77
|
+
assert_raises(Minitar::ClosedStream) { @os.mkdir "sdfdsf", :mode => 0o644 }
|
78
|
+
assert_raises(Minitar::ClosedStream) { @os.symlink "a", "b", :mode => 0o644 }
|
81
79
|
end
|
82
80
|
|
83
81
|
def test_file_name_is_split_correctly
|
84
82
|
# test insane file lengths, and: a{100}/b{155}, etc
|
85
83
|
@dummyos.reset
|
86
84
|
names = [
|
87
|
-
"#{
|
88
|
-
"#{
|
89
|
-
"/#{
|
90
|
-
"#{
|
91
|
-
"#{
|
85
|
+
"#{"a" * 155}/#{"b" * 100}",
|
86
|
+
"#{"a" * 151}/#{"qwer/" * 19}bla",
|
87
|
+
"/#{"a" * 49}/#{"b" * 50}",
|
88
|
+
"#{"a" * 49}/#{"b" * 50}x",
|
89
|
+
"#{"a" * 49}x/#{"b" * 50}"
|
92
90
|
]
|
93
91
|
o_names = [
|
94
|
-
|
95
|
-
"#{
|
96
|
-
|
97
|
-
"#{
|
98
|
-
|
92
|
+
"b" * 100,
|
93
|
+
"#{"qwer/" * 19}bla",
|
94
|
+
"b" * 50,
|
95
|
+
"#{"b" * 50}x",
|
96
|
+
"b" * 50
|
99
97
|
]
|
100
98
|
o_prefixes = [
|
101
|
-
|
102
|
-
|
103
|
-
"/#{
|
104
|
-
|
105
|
-
"#{
|
99
|
+
"a" * 155,
|
100
|
+
"a" * 151,
|
101
|
+
"/#{"a" * 49}",
|
102
|
+
"a" * 49,
|
103
|
+
"#{"a" * 49}x"
|
106
104
|
]
|
107
105
|
names.each do |name|
|
108
106
|
@os.add_file_simple(name, :mode => 0o644, :size => 10) {}
|
@@ -118,46 +116,83 @@ class TestTarWriter < Minitest::Test
|
|
118
116
|
def test_file_name_is_long
|
119
117
|
@dummyos.reset
|
120
118
|
|
121
|
-
@os.add_file_simple(File.join(
|
122
|
-
|
123
|
-
@os.add_file_simple(File.join(
|
124
|
-
|
125
|
-
@os.add_file_simple(File.join(
|
126
|
-
|
119
|
+
@os.add_file_simple(File.join("a" * 152, "b" * 10, "c" * 92),
|
120
|
+
:mode => 0o644, :size => 10) {}
|
121
|
+
@os.add_file_simple(File.join("d" * 162, "e" * 10),
|
122
|
+
:mode => 0o644, :size => 10) {}
|
123
|
+
@os.add_file_simple(File.join("f" * 10, "g" * 110),
|
124
|
+
:mode => 0o644, :size => 10) {}
|
127
125
|
# Issue #6.
|
128
|
-
@os.add_file_simple(
|
126
|
+
@os.add_file_simple("a" * 114, :mode => 0o644, :size => 10) {}
|
129
127
|
|
130
128
|
# "././@LongLink", a file name, its actual header, its data, ...
|
131
129
|
4.times do |i|
|
132
130
|
assert_equal(Minitar::PosixHeader::GNU_EXT_LONG_LINK,
|
133
|
-
|
131
|
+
@dummyos.data[4 * i * 512, 32].rstrip)
|
134
132
|
end
|
135
133
|
end
|
136
134
|
|
135
|
+
def test_add_file_simple_content_with_long_name
|
136
|
+
@dummyos.reset
|
137
|
+
|
138
|
+
long_name_file_content = "where_is_all_the_content_gone"
|
139
|
+
|
140
|
+
@os.add_file_simple("a" * 114, :mode => 0o0644, :data => long_name_file_content)
|
141
|
+
|
142
|
+
assert_equal(long_name_file_content,
|
143
|
+
@dummyos.data[3 * 512, long_name_file_content.bytesize])
|
144
|
+
end
|
145
|
+
|
146
|
+
def test_add_file_content_with_long_name
|
147
|
+
dummyos = StringIO.new
|
148
|
+
def dummyos.method_missing(meth, *a)
|
149
|
+
string.send(meth, *a)
|
150
|
+
end
|
151
|
+
|
152
|
+
def dummyos.respond_to_missing?(meth, all)
|
153
|
+
string.respond_to?(meth, all)
|
154
|
+
end
|
155
|
+
|
156
|
+
long_name_file_content = "where_is_all_the_content_gone"
|
157
|
+
|
158
|
+
Minitar::Writer.open(dummyos) do |os|
|
159
|
+
os.add_file("a" * 114, :mode => 0o0644) do |f|
|
160
|
+
f.write(long_name_file_content)
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
assert_equal(long_name_file_content,
|
165
|
+
dummyos[3 * 512, long_name_file_content.bytesize])
|
166
|
+
end
|
167
|
+
|
137
168
|
def test_add_file
|
138
169
|
dummyos = StringIO.new
|
139
|
-
def dummyos.method_missing(meth, *a)
|
170
|
+
def dummyos.method_missing(meth, *a)
|
140
171
|
string.send(meth, *a)
|
141
172
|
end
|
142
|
-
|
143
|
-
|
173
|
+
|
174
|
+
def dummyos.respond_to_missing?(meth, all)
|
175
|
+
string.respond_to?(meth, all)
|
176
|
+
end
|
177
|
+
content1 = ("a".."z").to_a.join("") # 26
|
178
|
+
content2 = ("aa".."zz").to_a.join("") # 1352
|
144
179
|
Minitar::Writer.open(dummyos) do |os|
|
145
|
-
os.add_file(
|
146
|
-
os.add_file(
|
147
|
-
os.add_file(
|
148
|
-
os.add_file(
|
180
|
+
os.add_file("lib/foo/bar", :mode => 0o644) { |f, _opts| f.write "a" * 10 }
|
181
|
+
os.add_file("lib/bar/baz", :mode => 0o644) { |f, _opts| f.write content1 }
|
182
|
+
os.add_file("lib/bar/baz", :mode => 0o644) { |f, _opts| f.write content2 }
|
183
|
+
os.add_file("lib/bar/baz", :mode => 0o644) { |_f, _opts| }
|
149
184
|
end
|
150
|
-
assert_headers_equal(tar_file_header(
|
185
|
+
assert_headers_equal(tar_file_header("lib/foo/bar", "", 0o644, 10),
|
151
186
|
dummyos[0, 512])
|
152
|
-
assert_equal(%
|
187
|
+
assert_equal(%(#{"a" * 10}#{"\0" * 502}), dummyos[512, 512])
|
153
188
|
offset = 512 * 2
|
154
|
-
[content1, content2,
|
155
|
-
assert_headers_equal(tar_file_header(
|
189
|
+
[content1, content2, ""].each do |data|
|
190
|
+
assert_headers_equal(tar_file_header("lib/bar/baz", "", 0o644,
|
156
191
|
bytesize(data)), dummyos[offset, 512])
|
157
192
|
offset += 512
|
158
|
-
until !data || data ==
|
193
|
+
until !data || data == ""
|
159
194
|
chunk = data[0, 512]
|
160
|
-
data[0, 512] =
|
195
|
+
data[0, 512] = ""
|
161
196
|
assert_equal(chunk + "\0" * (512 - bytesize(chunk)),
|
162
197
|
dummyos[offset, 512])
|
163
198
|
offset += 512
|
@@ -168,28 +203,28 @@ class TestTarWriter < Minitest::Test
|
|
168
203
|
|
169
204
|
def test_add_file_tests_seekability
|
170
205
|
assert_raises(Archive::Tar::Minitar::NonSeekableStream) do
|
171
|
-
@os.add_file(
|
206
|
+
@os.add_file("libdfdsfd", :mode => 0o644) { |f| }
|
172
207
|
end
|
173
208
|
end
|
174
209
|
|
175
210
|
def test_write_header
|
176
211
|
@dummyos.reset
|
177
|
-
@os.add_file_simple(
|
212
|
+
@os.add_file_simple("lib/foo/bar", :mode => 0o644, :size => 0) {}
|
178
213
|
@os.flush
|
179
|
-
assert_headers_equal(tar_file_header(
|
214
|
+
assert_headers_equal(tar_file_header("lib/foo/bar", "", 0o644, 0),
|
180
215
|
@dummyos.data[0, 512])
|
181
216
|
@dummyos.reset
|
182
|
-
@os.mkdir(
|
183
|
-
assert_headers_equal(tar_dir_header(
|
217
|
+
@os.mkdir("lib/foo", :mode => 0o644)
|
218
|
+
assert_headers_equal(tar_dir_header("lib/foo", "", 0o644),
|
184
219
|
@dummyos.data[0, 512])
|
185
|
-
@os.mkdir(
|
186
|
-
assert_headers_equal(tar_dir_header(
|
220
|
+
@os.mkdir("lib/bar", :mode => 0o644)
|
221
|
+
assert_headers_equal(tar_dir_header("lib/bar", "", 0o644),
|
187
222
|
@dummyos.data[512 * 1, 512])
|
188
223
|
end
|
189
224
|
|
190
225
|
def test_write_data
|
191
226
|
@dummyos.reset
|
192
|
-
@os.add_file_simple(
|
227
|
+
@os.add_file_simple("lib/foo/bar", :mode => 0o644, :size => 10) do |f|
|
193
228
|
f.write @data
|
194
229
|
end
|
195
230
|
@os.flush
|
@@ -203,10 +238,10 @@ class TestTarWriter < Minitest::Test
|
|
203
238
|
if @unicode.respond_to?(:bytesize)
|
204
239
|
assert_equal 10, @unicode.size
|
205
240
|
assert_equal 20, @unicode.bytesize
|
206
|
-
@unicode.force_encoding(
|
241
|
+
@unicode.force_encoding("ascii-8bit")
|
207
242
|
end
|
208
243
|
|
209
|
-
file = [
|
244
|
+
file = ["lib/foo/b", 0xc3.chr, 0xa5.chr, "r"].join
|
210
245
|
|
211
246
|
@os.add_file_simple(file, :mode => 0o644, :size => 20) do |f|
|
212
247
|
f.write @unicode
|
@@ -219,10 +254,25 @@ class TestTarWriter < Minitest::Test
|
|
219
254
|
def test_file_size_is_checked
|
220
255
|
@dummyos.reset
|
221
256
|
assert_raises(Minitar::Writer::WriteBoundaryOverflow) do
|
222
|
-
@os.add_file_simple(
|
223
|
-
f.write
|
257
|
+
@os.add_file_simple("lib/foo/bar", :mode => 0o644, :size => 10) do |f|
|
258
|
+
f.write "1" * 100
|
224
259
|
end
|
225
260
|
end
|
226
|
-
@os.add_file_simple(
|
261
|
+
@os.add_file_simple("lib/foo/bar", :mode => 0o644, :size => 10) { |f| }
|
262
|
+
end
|
263
|
+
|
264
|
+
def test_symlink
|
265
|
+
@dummyos.reset
|
266
|
+
@os.symlink("lib/foo/bar", "lib/foo/baz", :mode => 0o644)
|
267
|
+
@os.flush
|
268
|
+
assert_headers_equal(tar_symlink_header("lib/foo/bar", "", 0o644, "lib/foo/baz"),
|
269
|
+
@dummyos.data[0, 512])
|
270
|
+
end
|
271
|
+
|
272
|
+
def test_symlink_target_size_is_checked
|
273
|
+
@dummyos.reset
|
274
|
+
assert_raises(Minitar::FileNameTooLong) do
|
275
|
+
@os.symlink("lib/foo/bar", "x" * 101)
|
276
|
+
end
|
227
277
|
end
|
228
278
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.12'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Austin Ziegler
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -16,14 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '5.
|
19
|
+
version: '5.24'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '5.
|
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
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: hoe
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '4.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '4.0'
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: hoe-doofus
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,19 +81,19 @@ dependencies:
|
|
53
81
|
- !ruby/object:Gem::Version
|
54
82
|
version: '1.1'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
|
-
name: hoe-
|
84
|
+
name: hoe-git2
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
58
86
|
requirements:
|
59
87
|
- - "~>"
|
60
88
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
89
|
+
version: '1.7'
|
62
90
|
type: :development
|
63
91
|
prerelease: false
|
64
92
|
version_requirements: !ruby/object:Gem::Requirement
|
65
93
|
requirements:
|
66
94
|
- - "~>"
|
67
95
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1.
|
96
|
+
version: '1.7'
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: hoe-rubygems
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,39 +109,33 @@ dependencies:
|
|
81
109
|
- !ruby/object:Gem::Version
|
82
110
|
version: '1.0'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
112
|
+
name: minitest-autotest
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
86
114
|
requirements:
|
87
115
|
- - "~>"
|
88
116
|
- !ruby/object:Gem::Version
|
89
|
-
version: '1.
|
117
|
+
version: '1.0'
|
90
118
|
type: :development
|
91
119
|
prerelease: false
|
92
120
|
version_requirements: !ruby/object:Gem::Requirement
|
93
121
|
requirements:
|
94
122
|
- - "~>"
|
95
123
|
- !ruby/object:Gem::Version
|
96
|
-
version: '1.
|
124
|
+
version: '1.0'
|
97
125
|
- !ruby/object:Gem::Dependency
|
98
|
-
name: minitest-
|
126
|
+
name: minitest-focus
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
100
128
|
requirements:
|
101
|
-
- - "
|
129
|
+
- - "~>"
|
102
130
|
- !ruby/object:Gem::Version
|
103
131
|
version: '1.0'
|
104
|
-
- - "<"
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version: '2'
|
107
132
|
type: :development
|
108
133
|
prerelease: false
|
109
134
|
version_requirements: !ruby/object:Gem::Requirement
|
110
135
|
requirements:
|
111
|
-
- - "
|
136
|
+
- - "~>"
|
112
137
|
- !ruby/object:Gem::Version
|
113
138
|
version: '1.0'
|
114
|
-
- - "<"
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: '2'
|
117
139
|
- !ruby/object:Gem::Dependency
|
118
140
|
name: rake
|
119
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,7 +145,7 @@ dependencies:
|
|
123
145
|
version: '10.0'
|
124
146
|
- - "<"
|
125
147
|
- !ruby/object:Gem::Version
|
126
|
-
version: '
|
148
|
+
version: '14'
|
127
149
|
type: :development
|
128
150
|
prerelease: false
|
129
151
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -133,7 +155,7 @@ dependencies:
|
|
133
155
|
version: '10.0'
|
134
156
|
- - "<"
|
135
157
|
- !ruby/object:Gem::Version
|
136
|
-
version: '
|
158
|
+
version: '14'
|
137
159
|
- !ruby/object:Gem::Dependency
|
138
160
|
name: rdoc
|
139
161
|
requirement: !ruby/object:Gem::Requirement
|
@@ -149,41 +171,38 @@ dependencies:
|
|
149
171
|
- !ruby/object:Gem::Version
|
150
172
|
version: '0.0'
|
151
173
|
- !ruby/object:Gem::Dependency
|
152
|
-
name:
|
174
|
+
name: standard
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - "~>"
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '1.0'
|
180
|
+
type: :development
|
181
|
+
prerelease: false
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - "~>"
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '1.0'
|
187
|
+
- !ruby/object:Gem::Dependency
|
188
|
+
name: simplecov
|
153
189
|
requirement: !ruby/object:Gem::Requirement
|
154
190
|
requirements:
|
155
191
|
- - "~>"
|
156
192
|
- !ruby/object:Gem::Version
|
157
|
-
version: '
|
193
|
+
version: '0.21'
|
158
194
|
type: :development
|
159
195
|
prerelease: false
|
160
196
|
version_requirements: !ruby/object:Gem::Requirement
|
161
197
|
requirements:
|
162
198
|
- - "~>"
|
163
199
|
- !ruby/object:Gem::Version
|
164
|
-
version: '
|
200
|
+
version: '0.21'
|
165
201
|
description: |-
|
166
202
|
The minitar library is a pure-Ruby library that provides the ability to deal
|
167
203
|
with POSIX tar(1) archive files.
|
168
204
|
|
169
|
-
This is release 0.
|
170
|
-
Minitar security stance. There are two minor breaking changes in this version
|
171
|
-
so that exceptions will be thrown if a negative size is provided in a tar
|
172
|
-
stream header or if the tar stream header is otherwise invalid.
|
173
|
-
|
174
|
-
This release continues the migration and modernization of the code:
|
175
|
-
|
176
|
-
* the licence has been changed to match the modern Ruby licensing scheme
|
177
|
-
(Ruby and Simplified BSD instead of Ruby and GNU GPL);
|
178
|
-
* the +minitar+ command-line program has been separated into the
|
179
|
-
+minitar-cli+ gem; and
|
180
|
-
* the +archive-tar-minitar+ gem now points to the +minitar+ and +minitar-cli+
|
181
|
-
gems and discourages its installation.
|
182
|
-
|
183
|
-
Some of these changes may break existing programs that depend on the internal
|
184
|
-
structure of the minitar library, but every effort has been made to ensure
|
185
|
-
compatibility; inasmuch as is possible, this compatibility will be maintained
|
186
|
-
through the release of minitar 1.0 (which will have strong breaking changes).
|
205
|
+
This is release 0.12. This is likely the last revision before 1.0.
|
187
206
|
|
188
207
|
minitar (previously called Archive::Tar::Minitar) is based heavily on code
|
189
208
|
originally written by Mauricio Julio Fernández Pradier for the rpa-base
|
@@ -219,6 +238,7 @@ files:
|
|
219
238
|
- lib/archive/tar/minitar/reader.rb
|
220
239
|
- lib/archive/tar/minitar/writer.rb
|
221
240
|
- lib/minitar.rb
|
241
|
+
- support/hoe/deprecated_gem.rb
|
222
242
|
- test/minitest_helper.rb
|
223
243
|
- test/support/tar_test_helpers.rb
|
224
244
|
- test/test_tar_header.rb
|
@@ -230,7 +250,11 @@ homepage: https://github.com/halostatue/minitar/
|
|
230
250
|
licenses:
|
231
251
|
- Ruby
|
232
252
|
- BSD-2-Clause
|
233
|
-
metadata:
|
253
|
+
metadata:
|
254
|
+
homepage_uri: https://github.com/halostatue/minitar/
|
255
|
+
source_code_uri: https://github.com/halostatue/minitar/
|
256
|
+
bug_tracker_uri: https://github.com/halostatue/minitar/issues
|
257
|
+
rubygems_mfa_required: 'true'
|
234
258
|
post_install_message: |
|
235
259
|
The `minitar` executable is no longer bundled with `minitar`. If you are
|
236
260
|
expecting this executable, make sure you also install `minitar-cli`.
|
@@ -250,9 +274,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
250
274
|
- !ruby/object:Gem::Version
|
251
275
|
version: '0'
|
252
276
|
requirements: []
|
253
|
-
|
254
|
-
|
255
|
-
signing_key:
|
277
|
+
rubygems_version: 3.5.17
|
278
|
+
signing_key:
|
256
279
|
specification_version: 4
|
257
280
|
summary: The minitar library is a pure-Ruby library that provides the ability to deal
|
258
281
|
with POSIX tar(1) archive files
|