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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1440e1c57cdd811497e6717a6f81791816bfb2ec5dce0981d9208c41bcd6f09d
4
- data.tar.gz: e36cf70bd9acc32d73c95a48c1e67f494853f47603032cac05a84bd366417655
3
+ metadata.gz: 1599b7ba095a509ecf3e4cb540bc364307275322f7794cc57a08cfe338bf410c
4
+ data.tar.gz: e2772f9012f50c7fef8ae5b8c8f30a7ac6e43946ceff776cd53ad9d8f5749eb2
5
5
  SHA512:
6
- metadata.gz: b615673d6e6626606e6e858d453af056870f4b8c88dade5641595b35733491e6dfe2ec32e90d28f7585308a4229f2ace63b47224c0b2877b44c5b028ee3c1031
7
- data.tar.gz: ea2adda3fdcf9314c325cfa69f7ae5bbf6bc02732c8b131acef7406c45c4c53906a5612940fdc6d026d2fcda809b3a095abbe90bcf96a19f4082a653dcf8cbc3
6
+ metadata.gz: 0d2fd6dfbfeb28f40ad1bc0654fc1dc2cb2ca9743006009bd6af0f38f1de164a47043c0f8f45db64c668617d8f62154efe73d1c211227f52fa4a45060b218053
7
+ data.tar.gz: 7227d0e1ee873ca7cea9bef8709b3144f3d218391fc5655c86fba83716dbf78733b3632fac0980d7ce64f258c64004416263d1d2d30f5137bcd11bfe31f28214
data/Contributing.md CHANGED
@@ -4,21 +4,21 @@ I value any contribution to minitar you can provide: a bug report, a feature
4
4
  request, or code contributions. There are a few guidelines for contributing to
5
5
  minitar:
6
6
 
7
- * Code changes *will not* be accepted without tests. The test suite is
8
- written with [Minitest][].
9
- * Match my coding style.
10
- * Use a thoughtfully-named topic branch that contains your change. Rebase
11
- your commits into logical chunks as necessary.
12
- * Use [quality commit messages][].
13
- * Do not change the version number; when your patch is accepted and a release
14
- is 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.
7
+ - Code changes _will not_ be accepted without tests. The test suite is
8
+ written with [Minitest][].
9
+ - Match my coding style.
10
+ - Use a thoughtfully-named topic branch that contains your change. Rebase
11
+ your commits into logical chunks as necessary.
12
+ - Use [quality commit messages][].
13
+ - Do not change the version number; when your patch is accepted and a release
14
+ is 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
17
 
18
18
  ### Test Dependencies
19
19
 
20
- minitar uses Ryan Davis’s [Hoe][] to manage the release process, and it adds a
21
- number of rake tasks. You will mostly be interested in:
20
+ minitar uses Ryan Davis’s [Hoe][] to manage the release process, and it adds
21
+ a number of rake tasks. You will mostly be interested in:
22
22
 
23
23
  $ rake
24
24
 
@@ -29,14 +29,14 @@ which runs the tests the same way that:
29
29
 
30
30
  will do.
31
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)
32
+ To assist with the installation of the development dependencies for minitar,
33
+ I have provided the simplest possible Gemfile pointing to the (generated)
34
34
  `minitar.gemspec` file. This will permit you to do:
35
35
 
36
36
  $ bundle install
37
37
 
38
- to get the development dependencies. If you aleady have `hoe` installed, you
39
- can accomplish the same thing with:
38
+ to get the development dependencies. If you aleady have `hoe` installed, you can
39
+ accomplish the same thing with:
40
40
 
41
41
  $ rake newb
42
42
 
@@ -51,40 +51,42 @@ You can run tests with code coverage analysis by running:
51
51
 
52
52
  Here's the most direct way to get your work merged into the project:
53
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 (`git checkout -b
57
- 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
63
- change does and the why you think it should be merged.
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 (`git checkout -b my_awesome_feature`).
57
+ - Hack away, add tests. Not necessarily in that order.
58
+ - Make sure everything still passes by running `rake`.
59
+ - If necessary, rebase your commits into logical chunks, without errors.
60
+ - Push the branch up (`git push origin my_awesome_feature`).
61
+ - Create a pull request against halostatue/minitar and describe what your
62
+ change does and the why you think it should be merged.
64
63
 
65
64
  ### Contributors
66
65
 
67
- * Austin Ziegler created minitar, based on work originally written by
68
- Mauricio Fernández for rpa-base.
66
+ - Austin Ziegler created minitar, based on work originally written by
67
+ Mauricio Fernández for rpa-base.
69
68
 
70
69
  Thanks to everyone who has contributed to minitar:
71
70
 
72
- * Antoine Toulme
73
- * Curtis Sampson
74
- * Daniel J. Berger
75
- * Kazuyoshi Kato
76
- * Matthew Kent
77
- * Michal Suchanek
78
- * Mike Furr
79
- * Pete Fritchman
80
- * Zach Dennis
81
- * ooooooo\_q
82
- * Kazuyoshi Kato
83
- * dearblue
84
- * Kevin McDermott
85
- * inkstak
86
- * Akinori MUSHA (knu)
87
-
88
- [Minitest]: https://github.com/seattlerb/minitest
71
+ - Akinori MUSHA (knu)
72
+ - Antoine Toulme
73
+ - Curtis Sampson
74
+ - Daniel J. Berger
75
+ - dearblue
76
+ - inkstak
77
+ - Jorie Tappa
78
+ - Kazuyoshi Kato
79
+ - Kevin McDermott
80
+ - Matthew Kent
81
+ - Merten Falk
82
+ - Michal Suchanek
83
+ - Mike Furr
84
+ - ooooooo_q
85
+ - Pete Fritchman
86
+ - Vijay (bv-vijay)
87
+ - Yamamoto Kōhei
88
+ - Zach Dennis
89
+
90
+ [minitest]: https://github.com/seattlerb/minitest
89
91
  [quality commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
90
- [Hoe]: https://github.com/seattlerb/hoe
92
+ [hoe]: https://github.com/seattlerb/hoe
data/History.md CHANGED
@@ -1,163 +1,201 @@
1
+ # History
2
+
3
+ ## 0.12 / 2024-08-DD
4
+
5
+ - Properly handle very long GNU filenames, resolving [#46][].
6
+ - Handle very long GNU filenames that are 512 or more bytes, resolving [#45][].
7
+ Originally implemented in [#47][] by Vijay, but accidentally closed.
8
+
9
+ ## 0.11 / 2022-12-31
10
+
11
+ - symlink support is complete. Merged as PR [#42][], rebased and built on top of
12
+ PR [#12][] by fetep.
13
+
14
+ - kymmt90 fixed a documentation error on Minitar.pack in PR [#43][].
15
+
16
+ - This version is a soft-deprecation of all versions before Ruby 2.7, as they
17
+ will no longer be tested in CI.
18
+
19
+ ## 0.10 / 2022-03-26
20
+
21
+ - nevesenin fixed an issue with long filename handling. Merged as PR [#40][].
22
+
23
+ ## 0.9 / 2019-09-04
24
+
25
+ - jtappa added the ability to skip fsync with a new option to Minitar.unpack
26
+ and Minitar::Input#extract_entry. Provide `:fsync => false` as the last
27
+ parameter to enable. Merged from a modified version of PR [#37][].
28
+
1
29
  ## 0.8 / 2019-01-05
2
30
 
3
- * inkstak resolved an issue introduced in the fix for [#31][] by allowing
4
- spaces to be considered valid characters in strict octal handling. Octal
5
- conversion ignores leading spaces. Merged from a slightly modified version
6
- of PR [#35][].
31
+ - inkstak resolved an issue introduced in the fix for [#31][] by allowing
32
+ spaces to be considered valid characters in strict octal handling. Octal
33
+ conversion ignores leading spaces. Merged from a slightly modified version
34
+ of PR [#35][].
7
35
 
8
- * dearblue contributed PR [#32][] providing an explicit call to #bytesize for
9
- strings that include multibyte characters. The PR has been modified to be
10
- compatible with older versions of Ruby and extend tests.
36
+ - dearblue contributed PR [#32][] providing an explicit call to #bytesize for
37
+ strings that include multibyte characters. The PR has been modified to be
38
+ compatible with older versions of Ruby and extend tests.
11
39
 
12
- * Akinori MUSHA (knu) contributed PR [#36][] that treats certain badly
13
- encoded regular files (with names ending in `/`) as if they were
14
- directories on decode.
40
+ - Akinori MUSHA (knu) contributed PR [#36][] that treats certain badly
41
+ encoded regular files (with names ending in `/`) as if they were
42
+ directories on decode.
15
43
 
16
44
  ## 0.7 / 2018-02-19
17
45
 
18
- * Fixed issue [#28][] with a modified version of PR [#29][] covering the
19
- security policy and position for Minitar. Thanks so much to ooooooo\_q for
20
- the report and an initial patch. Additional information was added as
21
- [#30][].
46
+ - Fixed issue [#28][] with a modified version of PR [#29][] covering the
47
+ security policy and position for Minitar. Thanks so much to ooooooo_q for
48
+ the report and an initial patch. Additional information was added as
49
+ [#30][].
22
50
 
23
- * dearblue contributed PR [#33][] providing a fix for Minitar::Reader when
24
- the IO-like object does not have a `#pos` method.
51
+ - dearblue contributed PR [#33][] providing a fix for Minitar::Reader when
52
+ the IO-like object does not have a `#pos` method.
25
53
 
26
- * Kevin McDermott contributed PR [#34][] so that an InvalidTarStream is
27
- raised if the tar header is not valid, preventing incorrect streaming of
28
- files from a non-tarfile. This is a minor breaking change, so the version
29
- has been bumped accordingly.
54
+ - Kevin McDermott contributed PR [#34][] so that an InvalidTarStream is
55
+ raised if the tar header is not valid, preventing incorrect streaming of
56
+ files from a non-tarfile. This is a minor breaking change, so the version
57
+ has been bumped accordingly.
30
58
 
31
- * Kazuyoshi Kato contributed PR [#26][] providing support for the GNU tar
32
- long filename extension.
59
+ - Kazuyoshi Kato contributed PR [#26][] providing support for the GNU tar
60
+ long filename extension.
33
61
 
34
- * Addressed a potential DOS with negative size fields in tar headers
35
- ([#31][]). This has been handled in two ways: the size field in a tar
36
- header is interpreted as a strict octal value and the Minitar reader will
37
- raise an InvalidTarStream if the size ends up being negative anyway.
62
+ - Addressed a potential DOS with negative size fields in tar headers
63
+ ([#31][]). This has been handled in two ways: the size field in a tar
64
+ header is interpreted as a strict octal value and the Minitar reader will
65
+ raise an InvalidTarStream if the size ends up being negative anyway.
38
66
 
39
67
  ## 0.6.1 / 2017-02-07
40
68
 
41
- * Fixed issue [#24][] where streams were being improperly closed immediately
42
- on open unless there was a block provided.
69
+ - Fixed issue [#24][] where streams were being improperly closed immediately
70
+ on open unless there was a block provided.
43
71
 
44
- * Hopefully fixes issue [#23][] by releasing archive-tar-minitar after
45
- minitar-cli is available.
72
+ - Hopefully fixes issue [#23][] by releasing archive-tar-minitar after
73
+ minitar-cli is available.
46
74
 
47
75
  ## 0.6 / 2017-02-07
48
76
 
49
- * Breaking Changes:
50
-
51
- * Extracted `bin/minitar` into a new gem, `minitar-cli`. No, I am *not*
52
- going to bump the major version for this. As far as I can tell, few
53
- people use the command-line utility anyway. (Installing
54
- `archive-tar-minitar` will install both `minitar` and `minitar-cli`, at
55
- least until version 1.0.)
56
-
57
- * Minitar extraction before 0.6 traverses directories if the tarball
58
- includes a relative directory reference, as reported in [#16][] by
59
- @ecneladis. This has been disallowed entirely and will throw a
60
- SecureRelativePathError when found. Additionally, if the final
61
- destination of an entry is an already-existing symbolic link, the
62
- existing symbolic link will be removed and the file will be written
63
- correctly (on platforms that support symblic links).
64
-
65
- * Enhancements:
66
-
67
- * Licence change. After speaking with Mauricio Fernández, we have changed
68
- the licensing of this library to Ruby and Simplified BSD and have
69
- dropped the GNU GPL license. This takes effect from the 0.6 release.
70
- * Printing a deprecation warning for including Archive::Tar to put
71
- Minitar in the top-level namespace.
72
- * Printing a deprecation warning for including Archive::Tar::Minitar into
73
- a class (Minitar will be a class for version 1.0).
74
- * Moved Archive::Tar::PosixHeader to Archive::Tar::Minitar::PosixHeader
75
- with a deprecation warning. Do not depend on
76
- Archive::Tar::Minitar::PosixHeader, as it will be moving to
77
- ::Minitar::PosixHeader in a future release.
78
- * Added an alias, ::Minitar, for Archive::Tar::Minitar, opted in with
79
- `require 'minitar'`. In future releases, this alias will be enabled by
80
- default, and the Archive::Tar namespace will be removed entirely for
81
- version 1.0.
82
- * Modified the handling of `mtime` in PosixHeader to do an integer
83
- conversion (#to_i) so that a Time object can be used instead of the
84
- integer value of the time object.
85
- * Writer::RestrictedStream was renamed to Writer::WriteOnlyStream for
86
- clarity. No alias or deprecation warning was provided for this as it is
87
- an internal implementation detail.
88
- * Writer::BoundedStream was renamed to Writer::BoundedWriteStream for
89
- clarity. A deprecation warning is provided on first use because a
90
- BoundedWriteStream may raise a BoundedWriteStream::FileOverflow
91
- exception.
92
- * Writer::BoundedWriteStream::FileOverflow has been renamed to
93
- Writer::WriteBoundaryOverflow and inherits from StandardError instead
94
- of RuntimeError. Note that for Ruby 2.0 or higher, an error will be
95
- raised when specifying Writer::BoundedWriteStream::FileOverflow because
96
- Writer::BoundedWriteStream has been declared a private constant.
97
- * Modified Writer#add_file_simple to accept the data for a
98
- file in `opts[:data]`. When `opts[:data]` is provided, a stream block
99
- must not be provided. Improved the documentation for this method.
100
- * Modified Writer#add_file to accept `opts[:data]` and transparently call
101
- Writer#add_file_simple in this case.
102
- * Methods that require blocks are no longer required, so the
103
- Archive::Tar::Minitar::BlockRequired exception has been removed with a
104
- warning (this may not work on Ruby 1.8).
105
- * Dramatically reduced the number of strings created when creating a
106
- POSIX tarball header.
107
- * Added a helper, Input.each_entry that iterates over each entry in an
108
- opened entry object.
109
-
110
- * Bugs:
111
-
112
- * Fix [#2][] to handle IO streams that are not seekable, such as pipes,
113
- STDIN, or STDOUT.
114
- * Fix [#3][] to make the test timezone resilient.
115
- * Fix [#4][] for supporting the reading of tar files with filenames in
116
- the GNU long filename extension format. Ported from @atoulme’s fork,
117
- originally provided by Curtis Sampson.
118
- * Fix [#6][] by making it raise the correct error for a long filename
119
- with no path components.
120
- * Fix [#13][] provided by @fetep fixes an off-by-one error on filename
121
- splitting.
122
- * Fix [#14][] provided by @kzys should fix Windows detection issues.
123
- * Fix [#16][] as specified above.
124
- * Fix an issue where Minitar.pack would not include Unix hidden files
125
- when creating a tarball.
126
-
127
- * Development:
128
-
129
- * Modernized minitar tooling around Hoe.
130
- * Added travis and coveralls.
77
+ - Breaking Changes:
78
+
79
+ - Extracted `bin/minitar` into a new gem, `minitar-cli`. No, I am _not_
80
+ going to bump the major version for this. As far as I can tell, few
81
+ people use the command-line utility anyway. (Installing
82
+ `archive-tar-minitar` will install both `minitar` and `minitar-cli`, at
83
+ least until version 1.0.)
84
+
85
+ - Minitar extraction before 0.6 traverses directories if the tarball
86
+ includes a relative directory reference, as reported in [#16][] by
87
+ @ecneladis. This has been disallowed entirely and will throw a
88
+ SecureRelativePathError when found. Additionally, if the final
89
+ destination of an entry is an already-existing symbolic link, the
90
+ existing symbolic link will be removed and the file will be written
91
+ correctly (on platforms that support symblic links).
92
+
93
+ - Enhancements:
94
+
95
+ - Licence change. After speaking with Mauricio Fernández, we have changed
96
+ the licensing of this library to Ruby and Simplified BSD and have
97
+ dropped the GNU GPL license. This takes effect from the 0.6 release.
98
+ - Printing a deprecation warning for including Archive::Tar to put
99
+ Minitar in the top-level namespace.
100
+ - Printing a deprecation warning for including Archive::Tar::Minitar into
101
+ a class (Minitar will be a class for version 1.0).
102
+ - Moved Archive::Tar::PosixHeader to Archive::Tar::Minitar::PosixHeader
103
+ with a deprecation warning. Do not depend on
104
+ Archive::Tar::Minitar::PosixHeader, as it will be moving to
105
+ ::Minitar::PosixHeader in a future release.
106
+ - Added an alias, ::Minitar, for Archive::Tar::Minitar, opted in with
107
+ `require 'minitar'`. In future releases, this alias will be enabled by
108
+ default, and the Archive::Tar namespace will be removed entirely for
109
+ version 1.0.
110
+ - Modified the handling of `mtime` in PosixHeader to do an integer
111
+ conversion (#to_i) so that a Time object can be used instead of the
112
+ integer value of the time object.
113
+ - Writer::RestrictedStream was renamed to Writer::WriteOnlyStream for
114
+ clarity. No alias or deprecation warning was provided for this as it is
115
+ an internal implementation detail.
116
+ - Writer::BoundedStream was renamed to Writer::BoundedWriteStream for
117
+ clarity. A deprecation warning is provided on first use because a
118
+ BoundedWriteStream may raise a BoundedWriteStream::FileOverflow
119
+ exception.
120
+ - Writer::BoundedWriteStream::FileOverflow has been renamed to
121
+ Writer::WriteBoundaryOverflow and inherits from StandardError instead
122
+ of RuntimeError. Note that for Ruby 2.0 or higher, an error will be
123
+ raised when specifying Writer::BoundedWriteStream::FileOverflow because
124
+ Writer::BoundedWriteStream has been declared a private constant.
125
+ - Modified Writer#add_file_simple to accept the data for a
126
+ file in `opts[:data]`. When `opts[:data]` is provided, a stream block
127
+ must not be provided. Improved the documentation for this method.
128
+ - Modified Writer#add_file to accept `opts[:data]` and transparently call
129
+ Writer#add_file_simple in this case.
130
+ - Methods that require blocks are no longer required, so the
131
+ Archive::Tar::Minitar::BlockRequired exception has been removed with a
132
+ warning (this may not work on Ruby 1.8).
133
+ - Dramatically reduced the number of strings created when creating a
134
+ POSIX tarball header.
135
+ - Added a helper, Input.each_entry that iterates over each entry in an
136
+ opened entry object.
137
+
138
+ - Bugs:
139
+
140
+ - Fix [#2][] to handle IO streams that are not seekable, such as pipes,
141
+ STDIN, or STDOUT.
142
+ - Fix [#3][] to make the test timezone resilient.
143
+ - Fix [#4][] for supporting the reading of tar files with filenames in
144
+ the GNU long filename extension format. Ported from @atoulme’s fork,
145
+ originally provided by Curtis Sampson.
146
+ - Fix [#6][] by making it raise the correct error for a long filename
147
+ with no path components.
148
+ - Fix [#13][] provided by @fetep fixes an off-by-one error on filename
149
+ splitting.
150
+ - Fix [#14][] provided by @kzys should fix Windows detection issues.
151
+ - Fix [#16][] as specified above.
152
+ - Fix an issue where Minitar.pack would not include Unix hidden files
153
+ when creating a tarball.
154
+
155
+ - Development:
156
+
157
+ - Modernized minitar tooling around Hoe.
158
+ - Added travis and coveralls.
131
159
 
132
160
  ## 0.5.2 / 2008-02-26
133
161
 
134
- * Bugs:
135
- * Fixed a Ruby 1.9 compatibility error.
162
+ - Bugs:
163
+ - Fixed a Ruby 1.9 compatibility error.
136
164
 
137
165
  ## 0.5.1 / 2004-09-27
138
166
 
139
- * Bugs:
140
- * Fixed a variable name error.
167
+ - Bugs:
168
+ - Fixed a variable name error.
141
169
 
142
170
  ## 0.5.0
143
171
 
144
- * Initial release. Does files and directories. Command does create, extract,
172
+ - Initial release. Does files and directories. Command does create, extract,
145
173
  and list.
146
174
 
147
175
  [#2]: https://github.com/halostatue/minitar/issues/2
148
176
  [#3]: https://github.com/halostatue/minitar/issues/3
149
177
  [#4]: https://github.com/halostatue/minitar/issues/4
150
178
  [#6]: https://github.com/halostatue/minitar/issues/6
179
+ [#12]: https://github.com/halostatue/minitar/pull/12
151
180
  [#13]: https://github.com/halostatue/minitar/issues/13
152
181
  [#14]: https://github.com/halostatue/minitar/issues/14
153
182
  [#16]: https://github.com/halostatue/minitar/issues/16
154
183
  [#23]: https://github.com/halostatue/minitar/issues/23
155
184
  [#24]: https://github.com/halostatue/minitar/issues/24
156
- [#26]: https://github.com/halostatue/minitar/issues/26
185
+ [#26]: https://github.com/halostatue/minitar/issues/27
157
186
  [#28]: https://github.com/halostatue/minitar/issues/28
158
- [#29]: https://github.com/halostatue/minitar/issues/29
187
+ [#29]: https://github.com/halostatue/minitar/pull/29
159
188
  [#30]: https://github.com/halostatue/minitar/issues/30
160
- [#32]: https://github.com/halostatue/minitar/issues/32
161
- [#33]: https://github.com/halostatue/minitar/issues/33
162
- [#35]: https://github.com/halostatue/minitar/issues/35
163
- [#36]: https://github.com/halostatue/minitar/issues/36
189
+ [#31]: https://github.com/halostatue/minitar/issues/31
190
+ [#32]: https://github.com/halostatue/minitar/pull/32
191
+ [#33]: https://github.com/halostatue/minitar/pull/33
192
+ [#34]: https://github.com/halostatue/minitar/pull/34
193
+ [#35]: https://github.com/halostatue/minitar/pull/35
194
+ [#36]: https://github.com/halostatue/minitar/pull/36
195
+ [#37]: https://github.com/halostatue/minitar/pull/37
196
+ [#40]: https://github.com/halostatue/minitar/pull/40
197
+ [#42]: https://github.com/halostatue/minitar/pull/42
198
+ [#43]: https://github.com/halostatue/minitar/pull/43
199
+ [#45]: https://github.com/halostatue/minitar/issues/45
200
+ [#46]: https://github.com/halostatue/minitar/issues/46
201
+ [#47]: https://github.com/halostatue/minitar/pull/47
data/Manifest.txt CHANGED
@@ -15,6 +15,7 @@ lib/archive/tar/minitar/posix_header.rb
15
15
  lib/archive/tar/minitar/reader.rb
16
16
  lib/archive/tar/minitar/writer.rb
17
17
  lib/minitar.rb
18
+ support/hoe/deprecated_gem.rb
18
19
  test/minitest_helper.rb
19
20
  test/support/tar_test_helpers.rb
20
21
  test/test_tar_header.rb
data/README.rdoc CHANGED
@@ -5,33 +5,13 @@ code :: https://github.com/halostatue/minitar/
5
5
  bugs :: https://github.com/halostatue/minitar/issues
6
6
  rdoc :: http://rdoc.info/gems/minitar/
7
7
  cli :: https://github.com/halostatue/minitar-cli
8
- travis :: {<img src="https://travis-ci.org/halostatue/minitar.svg" />}[https://travis-ci.org/halostatue/minitar]
9
- appveyor :: {<img src="https://ci.appveyor.com/api/projects/status/bj4gqn3gp3gu45sa?svg=true" />}[https://ci.appveyor.com/project/halostatue/minitar]
10
- coveralls :: {<img src="https://coveralls.io/repos/halostatue/minitar/badge.svg" alt="Coverage Status" />}[https://coveralls.io/r/halostatue/minitar]
11
8
 
12
9
  == Description
13
10
 
14
11
  The minitar library is a pure-Ruby library that provides the ability to deal
15
12
  with POSIX tar(1) archive files.
16
13
 
17
- This is release 0.7, providing fixes for several issues and clarifying the
18
- Minitar security stance. There are two minor breaking changes in this version
19
- so that exceptions will be thrown if a negative size is provided in a tar
20
- stream header or if the tar stream header is otherwise invalid.
21
-
22
- This release continues the migration and modernization of the code:
23
-
24
- * the licence has been changed to match the modern Ruby licensing scheme
25
- (Ruby and Simplified BSD instead of Ruby and GNU GPL);
26
- * the +minitar+ command-line program has been separated into the
27
- +minitar-cli+ gem; and
28
- * the +archive-tar-minitar+ gem now points to the +minitar+ and +minitar-cli+
29
- gems and discourages its installation.
30
-
31
- Some of these changes may break existing programs that depend on the internal
32
- structure of the minitar library, but every effort has been made to ensure
33
- compatibility; inasmuch as is possible, this compatibility will be maintained
34
- through the release of minitar 1.0 (which will have strong breaking changes).
14
+ This is release 0.12. This is likely the last revision before 1.0.
35
15
 
36
16
  minitar (previously called Archive::Tar::Minitar) is based heavily on code
37
17
  originally written by Mauricio Julio Fernández Pradier for the rpa-base
data/Rakefile CHANGED
@@ -1,52 +1,72 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
 
3
- require 'rubygems'
4
- require 'hoe'
5
- require 'rake/clean'
3
+ require "rubygems"
4
+ require "hoe"
5
+ require "rake/clean"
6
6
 
7
- $LOAD_PATH.unshift('support')
7
+ $LOAD_PATH.unshift("support")
8
8
 
9
9
  Hoe.plugin :doofus
10
10
  Hoe.plugin :gemspec2
11
- Hoe.plugin :git
11
+ Hoe.plugin :git2
12
12
  Hoe.plugin :minitest
13
- Hoe.plugin :travis
13
+ Hoe.plugin :rubygems
14
14
  Hoe.plugin :deprecated_gem
15
- Hoe.plugin :email unless ENV['CI'] or ENV['TRAVIS']
15
+ Hoe.plugin :cov
16
16
 
17
- spec = Hoe.spec 'minitar' do
18
- developer('Austin Ziegler', 'halostatue@gmail.com')
17
+ Hoe.spec "minitar" do
18
+ developer("Austin Ziegler", "halostatue@gmail.com")
19
19
 
20
- require_ruby_version '>= 1.8'
20
+ self.history_file = "History.md"
21
+ self.readme_file = "README.rdoc"
21
22
 
22
- self.history_file = 'History.md'
23
- self.readme_file = 'README.rdoc'
24
- self.licenses = ['Ruby', 'BSD-2-Clause']
23
+ require_ruby_version ">= 1.8"
24
+
25
+ # This is a hack because of an issue with Hoe 3.26, but I'm not sure which
26
+ # hoe version introduced this issue or if it's a JRuby issue. This issue is
27
+ # demonstrable in lib/hoe.rb at line 676, which is (reformatted for space):
28
+ #
29
+ # ```ruby
30
+ # readme =
31
+ # input
32
+ # .lines
33
+ # .chunk { |l| l[/^(?:=+|#+)/] || "" } # # chunk is different somehow
34
+ # .map(&:last) # <-- HERE: "#" does not respond to #last
35
+ # .each_slice(2)
36
+ # .map { |k, v|
37
+ # kp = k.join
38
+ # kp = kp.strip.chomp(":").split.last.downcase if k.size == 1
39
+ # [kp, v.join.strip]
40
+ # }
41
+ # .to_h
42
+ # ```
43
+ #
44
+ # We don't *ship* with JRuby, but use it in CI only, so this is here at least
45
+ # temporarily.
46
+ if RUBY_PLATFORM.match?(/java/)
47
+ self.summary = self.description = "Description for testing"
48
+ self.homepage = "https://github.com/KineticCafe/app-identity/tree/main/ruby/"
49
+ end
50
+
51
+ self.licenses = ["Ruby", "BSD-2-Clause"]
25
52
 
26
53
  self.post_install_message = <<-EOS
27
54
  The `minitar` executable is no longer bundled with `minitar`. If you are
28
55
  expecting this executable, make sure you also install `minitar-cli`.
29
56
  EOS
30
57
 
31
- extra_dev_deps << ['hoe-doofus', '~> 1.0']
32
- extra_dev_deps << ['hoe-gemspec2', '~> 1.1']
33
- extra_dev_deps << ['hoe-git', '~> 1.6']
34
- extra_dev_deps << ['hoe-rubygems', '~> 1.0']
35
- extra_dev_deps << ['hoe-travis', '~> 1.2']
36
- extra_dev_deps << ['minitest', '~> 5.3']
37
- extra_dev_deps << ['minitest-autotest', ['>= 1.0', '<2']]
38
- extra_dev_deps << ['rake', '>= 10.0', '< 12']
39
- extra_dev_deps << ['rdoc', '>= 0.0']
40
- end
41
-
42
- if RUBY_VERSION >= '2.0' && RUBY_ENGINE == 'ruby'
43
- namespace :test do
44
- desc 'Run test coverage'
45
- task :coverage do
46
- spec.test_prelude = 'load ".simplecov-prelude.rb"'
47
- Rake::Task['test'].execute
48
- end
49
- end
58
+ spec_extras[:metadata] = ->(val) { val["rubygems_mfa_required"] = "true" }
50
59
 
51
- Rake::Task['travis'].prerequisites.replace(%w(test:coverage))
60
+ extra_dev_deps << ["base64", "~> 0.2"]
61
+ extra_dev_deps << ["hoe", "~> 4.0"]
62
+ extra_dev_deps << ["hoe-doofus", "~> 1.0"]
63
+ extra_dev_deps << ["hoe-gemspec2", "~> 1.1"]
64
+ extra_dev_deps << ["hoe-git2", "~> 1.7"]
65
+ extra_dev_deps << ["hoe-rubygems", "~> 1.0"]
66
+ extra_dev_deps << ["minitest", "~> 5.16"]
67
+ extra_dev_deps << ["minitest-autotest", "~> 1.0"]
68
+ extra_dev_deps << ["minitest-focus", "~> 1.0"]
69
+ extra_dev_deps << ["rake", ">= 10.0", "< 14"]
70
+ extra_dev_deps << ["rdoc", ">= 0.0"]
71
+ extra_dev_deps << ["standard", "~> 1.0"]
52
72
  end