diff options
author | taca <taca@pkgsrc.org> | 2005-01-23 17:34:55 +0000 |
---|---|---|
committer | taca <taca@pkgsrc.org> | 2005-01-23 17:34:55 +0000 |
commit | 93cc3fc2037d2c377919c1323e051ba3d5c0439f (patch) | |
tree | 0aba6b6cb15e2a9c8360bb70f2fd94e4ea3ec561 | |
parent | e794da07d3e022101a0d7f988aef6b7f67e24d92 (diff) | |
download | pkgsrc-93cc3fc2037d2c377919c1323e051ba3d5c0439f.tar.gz |
Update to Ruby 1.8.2 base and thses changes:
o Set RUBY_HAS_ARCHLIB=yes for Ruby packages including archtecture depending
extention library in order to depend more specific Ruby.
o Apply some bug fixes.
* ext/zlib/zlib.c (zstream_end): should return value.
* ext/zlib/zlib.c (rb_deflate_s_deflate, rb_inflate_s_inflate): ensure
freeing internal zstreams. fixed: [ruby-dev:25309]
* ext/zlib/zlib.c (rb_deflate_init_copy): replace rb_deflate_clone.
-rw-r--r-- | devel/ruby-zlib/Makefile | 4 | ||||
-rw-r--r-- | devel/ruby-zlib/distinfo | 5 | ||||
-rw-r--r-- | devel/ruby-zlib/patches/patch-aa | 166 |
3 files changed, 173 insertions, 2 deletions
diff --git a/devel/ruby-zlib/Makefile b/devel/ruby-zlib/Makefile index 993c3e6ba1c..ee7bff837ca 100644 --- a/devel/ruby-zlib/Makefile +++ b/devel/ruby-zlib/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.4 2004/11/30 17:03:15 taca Exp $ +# $NetBSD: Makefile,v 1.5 2005/01/23 17:34:55 taca Exp $ # FreeBSD: ports/archivers/ruby-zlib/Makefile,v 1.7 2000/09/26 22:01:12 knu Exp DISTNAME= ${RUBY_DISTNAME} @@ -10,10 +10,10 @@ MAINTAINER= taca@NetBSD.org HOMEPAGE= ${RUBY_HOMEPAGE} COMMENT= Zlib library for Ruby +RUBY_HAS_ARCHLIB= yes RUBY_VERSION_SUPPORTED= 18 USE_BUILDLINK3= yes USE_RUBY_EXTCONF= yes -DISTINFO_FILE= ${RUBY_DISTINFO_FILE} EXTRACT_ELEMENTS= ${RUBY_DISTNAME}/ext/zlib WRKSRC= ${RUBY_WRKSRC}/ext/zlib diff --git a/devel/ruby-zlib/distinfo b/devel/ruby-zlib/distinfo new file mode 100644 index 00000000000..5c9d4e2386d --- /dev/null +++ b/devel/ruby-zlib/distinfo @@ -0,0 +1,5 @@ +$NetBSD: distinfo,v 1.3 2005/01/23 17:34:55 taca Exp $ + +SHA1 (ruby/ruby-1.8.2.tar.gz) = 409a917d3a0aba41f45bd053b767c85b2bc35ffa +Size (ruby/ruby-1.8.2.tar.gz) = 3627349 bytes +SHA1 (patch-aa) = acb62c1fdeec74fa0c1b7fe55067f780ce52fd57 diff --git a/devel/ruby-zlib/patches/patch-aa b/devel/ruby-zlib/patches/patch-aa new file mode 100644 index 00000000000..c6b187c64c9 --- /dev/null +++ b/devel/ruby-zlib/patches/patch-aa @@ -0,0 +1,166 @@ +$NetBSD: patch-aa,v 1.1 2005/01/23 17:34:55 taca Exp $ + +--- ext/zlib/zlib.c.orig 2004-12-18 16:37:01.000000000 +0900 ++++ ext/zlib/zlib.c +@@ -55,7 +55,7 @@ static void zstream_reset_input _((struc + static void zstream_passthrough_input _((struct zstream*)); + static VALUE zstream_detach_input _((struct zstream*)); + static void zstream_reset _((struct zstream*)); +-static void zstream_end _((struct zstream*)); ++static VALUE zstream_end _((struct zstream*)); + static void zstream_run _((struct zstream*, Bytef*, uInt, int)); + static VALUE zstream_sync _((struct zstream*, Bytef*, uInt)); + static void zstream_mark _((struct zstream*)); +@@ -80,7 +80,8 @@ static VALUE rb_zstream_closed_p _((VALU + + static VALUE rb_deflate_s_allocate _((VALUE)); + static VALUE rb_deflate_initialize _((int, VALUE*, VALUE)); +-static VALUE rb_deflate_clone _((VALUE)); ++static VALUE rb_deflate_init_copy _((VALUE, VALUE)); ++static VALUE deflate_run _((VALUE)); + static VALUE rb_deflate_s_deflate _((int, VALUE*, VALUE)); + static void do_deflate _((struct zstream*, VALUE, int)); + static VALUE rb_deflate_deflate _((int, VALUE*, VALUE)); +@@ -89,6 +90,7 @@ static VALUE rb_deflate_flush _((int, VA + static VALUE rb_deflate_params _((VALUE, VALUE, VALUE)); + static VALUE rb_deflate_set_dictionary _((VALUE, VALUE)); + ++static VALUE inflate_run _((VALUE)); + static VALUE rb_inflate_s_allocate _((VALUE)); + static VALUE rb_inflate_initialize _((int, VALUE*, VALUE)); + static VALUE rb_inflate_s_inflate _((VALUE, VALUE)); +@@ -667,7 +669,7 @@ zstream_reset(z) + zstream_reset_input(z); + } + +-static void ++static VALUE + zstream_end(z) + struct zstream *z; + { +@@ -692,6 +694,7 @@ zstream_end(z) + raise_zlib_error(err, z->stream.msg); + } + z->flags = 0; ++ return Qnil; + } + + static void +@@ -1152,26 +1155,31 @@ rb_deflate_initialize(argc, argv, obj) + * Duplicates the deflate stream. + */ + static VALUE +-rb_deflate_clone(obj) +- VALUE obj; ++rb_deflate_init_copy(self, orig) ++ VALUE self, orig; + { +- struct zstream *z = get_zstream(obj); +- struct zstream *z2; +- VALUE clone; ++ struct zstream *z1 = get_zstream(self); ++ struct zstream *z2 = get_zstream(orig); + int err; + +- clone = zstream_deflate_new(rb_class_of(obj)); +- Data_Get_Struct(clone, struct zstream, z2); +- +- err = deflateCopy(&z2->stream, &z->stream); ++ err = deflateCopy(&z1->stream, &z2->stream); + if (err != Z_OK) { + raise_zlib_error(err, 0); + } ++ z1->flags = z2->flags; + +- z2->flags = z->flags; +- CLONESETUP(clone, obj); +- OBJ_INFECT(clone, obj); +- return clone; ++ return self; ++} ++ ++static VALUE ++deflate_run(args) ++ VALUE args; ++{ ++ struct zstream *z = (struct zstream *)((VALUE *)args)[0]; ++ VALUE src = ((VALUE *)args)[1]; ++ ++ zstream_run(z, RSTRING(src)->ptr, RSTRING(src)->len, Z_FINISH); ++ return zstream_detach_buffer(z); + } + + /* +@@ -1201,7 +1209,7 @@ rb_deflate_s_deflate(argc, argv, klass) + VALUE klass; + { + struct zstream z; +- VALUE src, level, dst; ++ VALUE src, level, dst, args[2]; + int err, lev; + + rb_scan_args(argc, argv, "11", &src, &level); +@@ -1215,9 +1223,9 @@ rb_deflate_s_deflate(argc, argv, klass) + } + ZSTREAM_READY(&z); + +- zstream_run(&z, RSTRING(src)->ptr, RSTRING(src)->len, Z_FINISH); +- dst = zstream_detach_buffer(&z); +- zstream_end(&z); ++ args[0] = (VALUE)&z; ++ args[1] = src; ++ dst = rb_ensure(deflate_run, (VALUE)args, zstream_end, (VALUE)&z); + + OBJ_INFECT(dst, src); + return dst; +@@ -1239,6 +1247,18 @@ do_deflate(z, src, flush) + } + } + ++static VALUE ++inflate_run(args) ++ VALUE args; ++{ ++ struct zstream *z = (struct zstream *)((VALUE *)args)[0]; ++ VALUE src = ((VALUE *)args)[1]; ++ ++ zstream_run(z, RSTRING(src)->ptr, RSTRING(src)->len, Z_SYNC_FLUSH); ++ zstream_run(z, "", 0, Z_FINISH); /* for checking errors */ ++ return zstream_detach_buffer(z); ++} ++ + /* + * call-seq: deflate(string[, flush]) + * +@@ -1452,7 +1472,7 @@ rb_inflate_s_inflate(obj, src) + VALUE obj, src; + { + struct zstream z; +- VALUE dst; ++ VALUE dst, args[2]; + int err; + + StringValue(src); +@@ -1463,10 +1483,9 @@ rb_inflate_s_inflate(obj, src) + } + ZSTREAM_READY(&z); + +- zstream_run(&z, RSTRING(src)->ptr, RSTRING(src)->len, Z_SYNC_FLUSH); +- zstream_run(&z, "", 0, Z_FINISH); /* for checking errors */ +- dst = zstream_detach_buffer(&z); +- zstream_end(&z); ++ args[0] = (VALUE)&z; ++ args[1] = src; ++ dst = rb_ensure(inflate_run, (VALUE)args, zstream_end, (VALUE)&z); + + OBJ_INFECT(dst, src); + return dst; +@@ -3333,7 +3352,7 @@ void Init_zlib() + rb_define_singleton_method(cDeflate, "deflate", rb_deflate_s_deflate, -1); + rb_define_alloc_func(cDeflate, rb_deflate_s_allocate); + rb_define_method(cDeflate, "initialize", rb_deflate_initialize, -1); +- rb_define_method(cDeflate, "clone", rb_deflate_clone, 0); ++ rb_define_method(cDeflate, "initialize_copy", rb_deflate_init_copy, 0); + rb_define_method(cDeflate, "deflate", rb_deflate_deflate, -1); + rb_define_method(cDeflate, "<<", rb_deflate_addstr, 1); + rb_define_method(cDeflate, "flush", rb_deflate_flush, -1); |