libarchive 0.1.0-mswin32 → 0.1.1-mswin32
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.
- data/COPYING.libarchive +60 -0
- data/LICENSE.libbzip2 +42 -0
- data/README.txt +17 -12
- data/lib/i386-mswin32/libarchive_ruby.so +0 -0
- data/libarchive.c +50 -12
- metadata +6 -2
data/COPYING.libarchive
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
The libarchive distribution as a whole is Copyright by Tim Kientzle
|
2
|
+
and is subject to the copyright notice reproduced at the bottom of
|
3
|
+
this file.
|
4
|
+
|
5
|
+
Each individual file in this distribution should have a clear
|
6
|
+
copyright/licensing statement at the beginning of the file. If any do
|
7
|
+
not, please let me know and I will rectify it. The following is
|
8
|
+
intended to summarize the copyright status of the individual files;
|
9
|
+
the actual statements in the files are controlling.
|
10
|
+
|
11
|
+
* Except as listed below, all C sources (including .c and .h files)
|
12
|
+
and documentation files are subject to the copyright notice reproduced
|
13
|
+
at the bottom of this file.
|
14
|
+
|
15
|
+
* The following source files are also subject in whole or in part to
|
16
|
+
a 3-clause UC Regents copyright; please read the individual source
|
17
|
+
files for details:
|
18
|
+
libarchive/archive_entry.c
|
19
|
+
libarchive/archive_read_support_compression_compress.c
|
20
|
+
libarchive/archive_write_set_compression_compress.c
|
21
|
+
libarchive/mtree.5
|
22
|
+
tar/matching.c
|
23
|
+
|
24
|
+
* The following source files are in the public domain:
|
25
|
+
tar/getdate.y
|
26
|
+
|
27
|
+
* The build files---including Makefiles, configure scripts,
|
28
|
+
and auxiliary scripts used as part of the compile process---have
|
29
|
+
widely varying licensing terms. Please check individual files before
|
30
|
+
distributing them to see if those restrictions apply to you.
|
31
|
+
|
32
|
+
I intend for all new source code to use the license below and hope over
|
33
|
+
time to replace code with other licenses with new implementations that
|
34
|
+
do use the license below. The varying licensing of the build scripts
|
35
|
+
seems to be an unavoidable mess.
|
36
|
+
|
37
|
+
|
38
|
+
Copyright (c) 2003-2008 <author(s)>
|
39
|
+
All rights reserved.
|
40
|
+
|
41
|
+
Redistribution and use in source and binary forms, with or without
|
42
|
+
modification, are permitted provided that the following conditions
|
43
|
+
are met:
|
44
|
+
1. Redistributions of source code must retain the above copyright
|
45
|
+
notice, this list of conditions and the following disclaimer
|
46
|
+
in this position and unchanged.
|
47
|
+
2. Redistributions in binary form must reproduce the above copyright
|
48
|
+
notice, this list of conditions and the following disclaimer in the
|
49
|
+
documentation and/or other materials provided with the distribution.
|
50
|
+
|
51
|
+
THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
|
52
|
+
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
53
|
+
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
54
|
+
IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
|
55
|
+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
56
|
+
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
57
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
58
|
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
59
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
60
|
+
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/LICENSE.libbzip2
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
|
2
|
+
--------------------------------------------------------------------------
|
3
|
+
|
4
|
+
This program, "bzip2", the associated library "libbzip2", and all
|
5
|
+
documentation, are copyright (C) 1996-2007 Julian R Seward. All
|
6
|
+
rights reserved.
|
7
|
+
|
8
|
+
Redistribution and use in source and binary forms, with or without
|
9
|
+
modification, are permitted provided that the following conditions
|
10
|
+
are met:
|
11
|
+
|
12
|
+
1. Redistributions of source code must retain the above copyright
|
13
|
+
notice, this list of conditions and the following disclaimer.
|
14
|
+
|
15
|
+
2. The origin of this software must not be misrepresented; you must
|
16
|
+
not claim that you wrote the original software. If you use this
|
17
|
+
software in a product, an acknowledgment in the product
|
18
|
+
documentation would be appreciated but is not required.
|
19
|
+
|
20
|
+
3. Altered source versions must be plainly marked as such, and must
|
21
|
+
not be misrepresented as being the original software.
|
22
|
+
|
23
|
+
4. The name of the author may not be used to endorse or promote
|
24
|
+
products derived from this software without specific prior written
|
25
|
+
permission.
|
26
|
+
|
27
|
+
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
28
|
+
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
29
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
30
|
+
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
31
|
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
32
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
33
|
+
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
34
|
+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
35
|
+
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
36
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
37
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
38
|
+
|
39
|
+
Julian Seward, jseward@bzip.org
|
40
|
+
bzip2/libbzip2 version 1.0.5 of 10 December 2007
|
41
|
+
|
42
|
+
--------------------------------------------------------------------------
|
data/README.txt
CHANGED
@@ -63,7 +63,7 @@ gem install libarchive
|
|
63
63
|
=== reading archive
|
64
64
|
require 'libarchive_ruby'
|
65
65
|
|
66
|
-
Archive
|
66
|
+
Archive.read_open_filename('foo.tar.gz') do |ar|
|
67
67
|
while entry = ar.next_header
|
68
68
|
name = entry.pathname
|
69
69
|
data = ar.read_data
|
@@ -79,9 +79,8 @@ gem install libarchive
|
|
79
79
|
|
80
80
|
=== creating archive
|
81
81
|
require 'libarchive_ruby'
|
82
|
-
include Archive
|
83
82
|
|
84
|
-
|
83
|
+
Archive.write_open_filename('foo.tar.bz2', Archive::COMPRESSION_BZIP2, Archive::FORMAT_TAR_USTAR) do |ar|
|
85
84
|
Dir.glob('*.c').each do |fn|
|
86
85
|
ar.new_entry do |entry|
|
87
86
|
entry.copy_stat(fn)
|
@@ -97,12 +96,12 @@ gem install libarchive
|
|
97
96
|
end
|
98
97
|
end
|
99
98
|
end
|
99
|
+
|
100
|
+
=== creating archive by extarnal program
|
101
|
+
require 'libarchive_ruby'
|
100
102
|
|
101
|
-
|
102
|
-
|
103
|
-
p entry.pathname
|
104
|
-
p ar.read_data.size
|
105
|
-
end
|
103
|
+
Archive.write_open_filename('foo.tar.lzo', 'lzop', Archive::FORMAT_TAR_USTAR) do |ar|
|
104
|
+
...
|
106
105
|
end
|
107
106
|
|
108
107
|
== License
|
@@ -132,7 +131,13 @@ gem install libarchive
|
|
132
131
|
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
133
132
|
DAMAGE.
|
134
133
|
|
135
|
-
===
|
136
|
-
Libarchive/Ruby(mswin32) contains Libarchive
|
137
|
-
|
138
|
-
*
|
134
|
+
=== Static link library
|
135
|
+
Libarchive/Ruby(mswin32) contains Libarchive(2.6.0) and libbzip2(1.0.5).
|
136
|
+
|
137
|
+
* Libarchive
|
138
|
+
* http://people.freebsd.org/~kientzle/libarchive/
|
139
|
+
* see {COPYING.libarchive}[link:files/COPYING_libarchive.html]
|
140
|
+
|
141
|
+
* libbzip2
|
142
|
+
* http://www.bzip.org/
|
143
|
+
* see {LICENSE.libbzip2}[link:files/LICENSE_libbzip2.html]
|
Binary file
|
data/libarchive.c
CHANGED
@@ -1208,7 +1208,7 @@ static VALUE rb_libarchive_reader_close(VALUE self) {
|
|
1208
1208
|
return Qnil;
|
1209
1209
|
}
|
1210
1210
|
|
1211
|
-
static VALUE rb_libarchive_reader_s_open0(int (*archive_open)(struct rb_libarchive_archive_container *, void *), void *arg, int compression, int format) {
|
1211
|
+
static VALUE rb_libarchive_reader_s_open0(int (*archive_open)(struct rb_libarchive_archive_container *, void *), void *arg, int compression, int format, const char *cmd) {
|
1212
1212
|
VALUE reader;
|
1213
1213
|
struct rb_libarchive_archive_container *p;
|
1214
1214
|
int r;
|
@@ -1219,7 +1219,9 @@ static VALUE rb_libarchive_reader_s_open0(int (*archive_open)(struct rb_libarchi
|
|
1219
1219
|
rb_raise(rb_eArchiveError, "Open reader failed: %s", strerror(errno));
|
1220
1220
|
}
|
1221
1221
|
|
1222
|
-
if (
|
1222
|
+
if (cmd != NULL) {
|
1223
|
+
r = archive_read_support_compression_program(p->ar, cmd);
|
1224
|
+
} else if (compression != -1) {
|
1223
1225
|
r = archive_read_support_compression(p->ar, compression);
|
1224
1226
|
} else {
|
1225
1227
|
r = archive_read_support_compression_all(p->ar);
|
@@ -1288,11 +1290,15 @@ static VALUE rb_libarchive_reader_s_open_filename(int argc, VALUE *argv, VALUE s
|
|
1288
1290
|
VALUE v_filename, v_compression, v_format;
|
1289
1291
|
const char *filename = NULL;
|
1290
1292
|
int compression = -1, format = -1;
|
1293
|
+
const char *cmd = NULL;
|
1291
1294
|
rb_scan_args(argc, argv, "12", &v_filename, &v_compression, &v_format);
|
1292
1295
|
Check_Type(v_filename, T_STRING);
|
1293
1296
|
filename = RSTRING_PTR(v_filename);
|
1294
1297
|
|
1295
|
-
if (
|
1298
|
+
if (T_STRING == TYPE(v_compression)) {
|
1299
|
+
compression = -1;
|
1300
|
+
cmd = RSTRING_PTR(v_compression);
|
1301
|
+
} else if (!NIL_P(v_compression)) {
|
1296
1302
|
compression = NUM2INT(v_compression);
|
1297
1303
|
}
|
1298
1304
|
|
@@ -1300,7 +1306,7 @@ static VALUE rb_libarchive_reader_s_open_filename(int argc, VALUE *argv, VALUE s
|
|
1300
1306
|
format = NUM2INT(v_format);
|
1301
1307
|
}
|
1302
1308
|
|
1303
|
-
return rb_libarchive_reader_s_open0(rb_libarchive_reader_s_open_filename0, (void *) filename, compression, format);
|
1309
|
+
return rb_libarchive_reader_s_open0(rb_libarchive_reader_s_open_filename0, (void *) filename, compression, format, cmd);
|
1304
1310
|
}
|
1305
1311
|
|
1306
1312
|
static int rb_libarchive_reader_s_open_memory0(struct rb_libarchive_archive_container *p, void *arg) {
|
@@ -1312,10 +1318,14 @@ static int rb_libarchive_reader_s_open_memory0(struct rb_libarchive_archive_cont
|
|
1312
1318
|
static VALUE rb_libarchive_reader_s_open_memory(int argc, VALUE *argv, VALUE self) {
|
1313
1319
|
VALUE v_memory, v_compression, v_format;
|
1314
1320
|
int compression = -1, format = -1;
|
1321
|
+
const char *cmd = NULL;
|
1315
1322
|
rb_scan_args(argc, argv, "12", &v_memory, &v_compression, &v_format);
|
1316
1323
|
Check_Type(v_memory, T_STRING);
|
1317
1324
|
|
1318
|
-
if (
|
1325
|
+
if (T_STRING == TYPE(v_compression)) {
|
1326
|
+
compression = -1;
|
1327
|
+
cmd = RSTRING_PTR(v_compression);
|
1328
|
+
} else if (!NIL_P(v_compression)) {
|
1319
1329
|
compression = NUM2INT(v_compression);
|
1320
1330
|
}
|
1321
1331
|
|
@@ -1323,7 +1333,7 @@ static VALUE rb_libarchive_reader_s_open_memory(int argc, VALUE *argv, VALUE sel
|
|
1323
1333
|
format = NUM2INT(v_format);
|
1324
1334
|
}
|
1325
1335
|
|
1326
|
-
return rb_libarchive_reader_s_open0(rb_libarchive_reader_s_open_memory0, (void *) v_memory, compression, format);
|
1336
|
+
return rb_libarchive_reader_s_open0(rb_libarchive_reader_s_open_memory0, (void *) v_memory, compression, format, cmd);
|
1327
1337
|
}
|
1328
1338
|
|
1329
1339
|
/* */
|
@@ -1494,7 +1504,9 @@ void Init_libarchive_reader() {
|
|
1494
1504
|
rb_define_alloc_func(rb_cArchiveReader, rb_libarchive_archive_alloc);
|
1495
1505
|
rb_funcall(rb_cArchiveReader, rb_intern("private_class_method"), 1, ID2SYM(rb_intern("new")));
|
1496
1506
|
rb_define_singleton_method(rb_cArchiveReader, "open_filename", rb_libarchive_reader_s_open_filename, -1);
|
1507
|
+
rb_define_module_function(rb_mArchive, "read_open_filename", rb_libarchive_reader_s_open_filename, -1);
|
1497
1508
|
rb_define_singleton_method(rb_cArchiveReader, "open_memory", rb_libarchive_reader_s_open_memory, -1);
|
1509
|
+
rb_define_module_function(rb_mArchive, "read_open_memory", rb_libarchive_reader_s_open_memory, -1);
|
1498
1510
|
rb_define_method(rb_cArchiveReader, "close", rb_libarchive_reader_close, 0);
|
1499
1511
|
rb_define_method(rb_cArchiveReader, "next_header", rb_libarchive_reader_next_header, 0);
|
1500
1512
|
rb_define_method(rb_cArchiveReader, "header_position", rb_libarchive_reader_header_position, 0);
|
@@ -1524,9 +1536,10 @@ static VALUE rb_libarchive_writer_close(VALUE self) {
|
|
1524
1536
|
return Qnil;
|
1525
1537
|
}
|
1526
1538
|
|
1527
|
-
static VALUE rb_libarchive_writer_s_open0(int (*archive_open)(struct rb_libarchive_archive_container *, void *), void *arg, int compression, int format) {
|
1539
|
+
static VALUE rb_libarchive_writer_s_open0(int (*archive_open)(struct rb_libarchive_archive_container *, void *), void *arg, int compression, int format, const char *cmd) {
|
1528
1540
|
VALUE writer;
|
1529
1541
|
struct rb_libarchive_archive_container *p;
|
1542
|
+
int r;
|
1530
1543
|
writer = rb_funcall(rb_cArchiveWriter, rb_intern("new"), 0);
|
1531
1544
|
Data_Get_Struct(writer, struct rb_libarchive_archive_container, p);
|
1532
1545
|
|
@@ -1534,7 +1547,13 @@ static VALUE rb_libarchive_writer_s_open0(int (*archive_open)(struct rb_libarchi
|
|
1534
1547
|
rb_raise(rb_eArchiveError, "Open writer failed: %s", strerror(errno));
|
1535
1548
|
}
|
1536
1549
|
|
1537
|
-
if (
|
1550
|
+
if (cmd != NULL) {
|
1551
|
+
r = archive_write_set_compression_program(p->ar, cmd);
|
1552
|
+
} else {
|
1553
|
+
r = archive_write_set_compression(p->ar, compression);
|
1554
|
+
}
|
1555
|
+
|
1556
|
+
if (r != ARCHIVE_OK) {
|
1538
1557
|
char error_string[BUFSIZ];
|
1539
1558
|
archive_copy_error_string(p->ar, error_string, BUFSIZ);
|
1540
1559
|
rb_libarchive_writer_close0(p);
|
@@ -1580,6 +1599,7 @@ static int rb_libarchive_writer_s_open_filename0(struct rb_libarchive_archive_co
|
|
1580
1599
|
static VALUE rb_libarchive_writer_s_open_filename(VALUE self, VALUE v_filename, VALUE v_compression, VALUE v_format) {
|
1581
1600
|
const char *filename = NULL;
|
1582
1601
|
int compression, format;
|
1602
|
+
const char *cmd = NULL;
|
1583
1603
|
Check_Type(v_filename, T_STRING);
|
1584
1604
|
|
1585
1605
|
if (RSTRING_LEN(v_filename) < 1) {
|
@@ -1587,9 +1607,17 @@ static VALUE rb_libarchive_writer_s_open_filename(VALUE self, VALUE v_filename,
|
|
1587
1607
|
}
|
1588
1608
|
|
1589
1609
|
filename = RSTRING_PTR(v_filename);
|
1590
|
-
|
1610
|
+
|
1611
|
+
if (T_STRING == TYPE(v_compression)) {
|
1612
|
+
compression = -1;
|
1613
|
+
cmd = RSTRING_PTR(v_compression);
|
1614
|
+
} else {
|
1615
|
+
compression = NUM2INT(v_compression);
|
1616
|
+
}
|
1617
|
+
|
1618
|
+
|
1591
1619
|
format = NUM2INT(v_format);
|
1592
|
-
return rb_libarchive_writer_s_open0(rb_libarchive_writer_s_open_filename0, (void *) filename, compression, format);
|
1620
|
+
return rb_libarchive_writer_s_open0(rb_libarchive_writer_s_open_filename0, (void *) filename, compression, format, cmd);
|
1593
1621
|
}
|
1594
1622
|
|
1595
1623
|
static int rb_libarchive_writer_s_open_memory0(struct rb_libarchive_archive_container *p, void *arg) {
|
@@ -1601,10 +1629,18 @@ static int rb_libarchive_writer_s_open_memory0(struct rb_libarchive_archive_cont
|
|
1601
1629
|
/* */
|
1602
1630
|
static VALUE rb_libarchive_writer_s_open_memory(VALUE self, VALUE v_memory, VALUE v_compression, VALUE v_format) {
|
1603
1631
|
int compression, format;
|
1632
|
+
const char *cmd = NULL;
|
1604
1633
|
Check_Type(v_memory, T_STRING);
|
1605
|
-
|
1634
|
+
|
1635
|
+
if (T_STRING == TYPE(v_compression)) {
|
1636
|
+
compression = -1;
|
1637
|
+
cmd = RSTRING_PTR(v_compression);
|
1638
|
+
} else {
|
1639
|
+
compression = NUM2INT(v_compression);
|
1640
|
+
}
|
1641
|
+
|
1606
1642
|
format = NUM2INT(v_format);
|
1607
|
-
return rb_libarchive_writer_s_open0(rb_libarchive_writer_s_open_memory0, (void *) v_memory, compression, format);
|
1643
|
+
return rb_libarchive_writer_s_open0(rb_libarchive_writer_s_open_memory0, (void *) v_memory, compression, format, cmd);
|
1608
1644
|
}
|
1609
1645
|
|
1610
1646
|
/* */
|
@@ -1716,7 +1752,9 @@ void Init_libarchive_writer() {
|
|
1716
1752
|
rb_define_alloc_func(rb_cArchiveWriter, rb_libarchive_archive_alloc);
|
1717
1753
|
rb_funcall(rb_cArchiveWriter, rb_intern("private_class_method"), 1, ID2SYM(rb_intern("new")));
|
1718
1754
|
rb_define_singleton_method(rb_cArchiveWriter, "open_filename", rb_libarchive_writer_s_open_filename, 3);
|
1755
|
+
rb_define_singleton_method(rb_mArchive, "write_open_filename", rb_libarchive_writer_s_open_filename, 3);
|
1719
1756
|
rb_define_singleton_method(rb_cArchiveWriter, "open_memory", rb_libarchive_writer_s_open_memory, 3);
|
1757
|
+
rb_define_singleton_method(rb_mArchive, "write_open_memory", rb_libarchive_writer_s_open_memory, 3);
|
1720
1758
|
rb_define_method(rb_cArchiveWriter, "close", rb_libarchive_writer_close, 0);
|
1721
1759
|
rb_define_method(rb_cArchiveWriter, "new_entry", rb_libarchive_writer_new_entry, 0);
|
1722
1760
|
rb_define_method(rb_cArchiveWriter, "write_header", rb_libarchive_writer_write_header, 1);
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libarchive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: mswin32
|
6
6
|
authors:
|
7
7
|
- winebarrel
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-01-
|
12
|
+
date: 2009-01-30 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -22,10 +22,14 @@ extensions: []
|
|
22
22
|
extra_rdoc_files:
|
23
23
|
- README.txt
|
24
24
|
- libarchive.c
|
25
|
+
- COPYING.libarchive
|
26
|
+
- LICENSE.libbzip2
|
25
27
|
files:
|
26
28
|
- lib/i386-mswin32/libarchive_ruby.so
|
27
29
|
- README.txt
|
28
30
|
- libarchive.c
|
31
|
+
- COPYING.libarchive
|
32
|
+
- LICENSE.libbzip2
|
29
33
|
has_rdoc: true
|
30
34
|
homepage: http://libarchive.rubyforge.org
|
31
35
|
post_install_message:
|