From owner-svn-ports-all@FreeBSD.ORG Tue Feb 12 15:23:05 2013 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id CB4D05C1; Tue, 12 Feb 2013 15:23:05 +0000 (UTC) (envelope-from swills@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id BB2A9ADB; Tue, 12 Feb 2013 15:23:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r1CFN5fI078586; Tue, 12 Feb 2013 15:23:05 GMT (envelope-from swills@svn.freebsd.org) Received: (from swills@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r1CFN4GP078580; Tue, 12 Feb 2013 15:23:04 GMT (envelope-from swills@svn.freebsd.org) Message-Id: <201302121523.r1CFN4GP078580@svn.freebsd.org> From: Steve Wills Date: Tue, 12 Feb 2013 15:23:04 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r312118 - in head: Mk lang/ruby19 lang/ruby19/files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Feb 2013 15:23:05 -0000 Author: swills Date: Tue Feb 12 15:23:04 2013 New Revision: 312118 URL: http://svnweb.freebsd.org/changeset/ports/312118 Log: - Update Ruby 1.9 to 1.9.3p385. This fixes a security issue in rdoc (CVE-2013-0256) - Also add the patch for the security issue in the bundled json (CVE-2013-0269) - Fix an issue with the .pc file by patching configure [1] Reported by: avg [1] Security: forthcoming Added: head/lang/ruby19/files/patch-json (contents, props changed) Modified: head/Mk/bsd.ruby.mk head/lang/ruby19/distinfo head/lang/ruby19/files/patch-configure.in (contents, props changed) head/lang/ruby19/files/patch-tool_mkconfig.rb (contents, props changed) Modified: head/Mk/bsd.ruby.mk ============================================================================== --- head/Mk/bsd.ruby.mk Tue Feb 12 13:55:24 2013 (r312117) +++ head/Mk/bsd.ruby.mk Tue Feb 12 15:23:04 2013 (r312118) @@ -196,7 +196,7 @@ RUBY19= "@comment " RUBY_RELVERSION= 1.9.3 RUBY_PORTREVISION= 0 RUBY_PORTEPOCH= 1 -RUBY_PATCHLEVEL= 327 +RUBY_PATCHLEVEL= 385 RUBY_VERSION?= ${RUBY_RELVERSION}.${RUBY_PATCHLEVEL} RUBY_DISTVERSION?= ${RUBY_RELVERSION}-p${RUBY_PATCHLEVEL} Modified: head/lang/ruby19/distinfo ============================================================================== --- head/lang/ruby19/distinfo Tue Feb 12 13:55:24 2013 (r312117) +++ head/lang/ruby19/distinfo Tue Feb 12 15:23:04 2013 (r312118) @@ -1,2 +1,2 @@ -SHA256 (ruby/ruby-1.9.3-p327.tar.bz2) = d989465242f9b11a8a3aa8cbd2c75a9b3a8c0ec2f14a087a0c7b51abf164e488 -SIZE (ruby/ruby-1.9.3-p327.tar.bz2) = 9975835 +SHA256 (ruby/ruby-1.9.3-p385.tar.bz2) = f991ee50414dc795696bad0fc5c7b0b94d93b9b38fed943326d20ce4e9dda42b +SIZE (ruby/ruby-1.9.3-p385.tar.bz2) = 10021486 Modified: head/lang/ruby19/files/patch-configure.in ============================================================================== --- head/lang/ruby19/files/patch-configure.in Tue Feb 12 13:55:24 2013 (r312117) +++ head/lang/ruby19/files/patch-configure.in Tue Feb 12 15:23:04 2013 (r312118) @@ -1,6 +1,6 @@ ---- configure.in.orig 2012-02-15 19:26:09.000000000 -0500 -+++ configure.in 2012-02-16 22:28:27.617422641 -0500 -@@ -1118,11 +1118,11 @@ +--- configure.in.orig 2013-02-11 14:33:14.000000000 +0000 ++++ configure.in 2013-02-11 14:30:13.000000000 +0000 +@@ -1129,11 +1129,11 @@ [superux*], [ ac_cv_func_setitimer=no ], [ LIBS="-lm $LIBS"]) @@ -17,7 +17,7 @@ if test "${enable_win95}" = maybe; then AC_HAVE_LIBRARY(unicows, [enable_win95=yes], [enable_win95=no]) fi -@@ -1815,7 +1815,7 @@ +@@ -1828,7 +1828,7 @@ fi if test x"$enable_pthread" = xyes; then @@ -26,7 +26,7 @@ AC_CHECK_LIB($pthread_lib, pthread_kill, rb_with_pthread=yes, rb_with_pthread=no) if test "$rb_with_pthread" = "yes"; then break; fi -@@ -1823,6 +1823,7 @@ +@@ -1836,6 +1836,7 @@ if test x"$rb_with_pthread" = xyes; then AC_DEFINE(_REENTRANT) AC_DEFINE(_THREAD_SAFE) @@ -34,3 +34,19 @@ AC_DEFINE(HAVE_LIBPTHREAD) AC_CHECK_HEADERS(pthread_np.h, [], [], [@%:@include ]) AS_CASE([$pthread_lib], +@@ -2080,7 +2081,6 @@ + : ${LDSHARED='$(CC) -shared'} + if test "$rb_cv_binary_elf" = yes; then + LDFLAGS="$LDFLAGS -rdynamic" +- DLDFLAGS="$DLDFLAGS "'-Wl,-soname,$(.TARGET)' + else + test "$GCC" = yes && test "$rb_cv_prog_gnu_ld" = yes || LDSHARED="ld -Bshareable" + fi +@@ -2385,6 +2385,7 @@ + [freebsd*|dragonfly*], [ + SOLIBS='$(LIBS)' + LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)' ++ LIBRUBY_DLDFLAGS='-Wl,-soname,$(LIBRUBY_SO)' + if test "$rb_cv_binary_elf" != "yes" ; then + LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)" + LIBRUBY_ALIASES='' Added: head/lang/ruby19/files/patch-json ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lang/ruby19/files/patch-json Tue Feb 12 15:23:04 2013 (r312118) @@ -0,0 +1,172 @@ +--- ext/json/parser/parser.c.orig ++++ ext/json/parser/parser.c +@@ -1671,7 +1671,7 @@ static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self) + if (option_given_p(opts, tmp)) { + json->create_additions = RTEST(rb_hash_aref(opts, tmp)); + } else { +- json->create_additions = 1; ++ json->create_additions = 0; + } + tmp = ID2SYM(i_create_id); + if (option_given_p(opts, tmp)) { +@@ -1718,7 +1718,7 @@ static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self) + } + + +-#line 1719 "parser.c" ++#line 1722 "parser.c" + static const int JSON_start = 1; + static const int JSON_first_final = 10; + static const int JSON_error = 0; +@@ -1726,7 +1726,7 @@ static const int JSON_error = 0; + static const int JSON_en_main = 1; + + +-#line 726 "parser.rl" ++#line 729 "parser.rl" + + + static VALUE cParser_parse_strict(VALUE self) +@@ -1737,16 +1737,16 @@ static VALUE cParser_parse_strict(VALUE self) + GET_PARSER; + + +-#line 1738 "parser.c" ++#line 1741 "parser.c" + { + cs = JSON_start; + } + +-#line 736 "parser.rl" ++#line 739 "parser.rl" + p = json->source; + pe = p + json->len; + +-#line 1747 "parser.c" ++#line 1750 "parser.c" + { + if ( p == pe ) + goto _test_eof; +@@ -1802,7 +1802,7 @@ case 5: + goto st1; + goto st5; + tr3: +-#line 715 "parser.rl" ++#line 718 "parser.rl" + { + char *np; + json->current_nesting = 1; +@@ -1811,7 +1811,7 @@ tr3: + } + goto st10; + tr4: +-#line 708 "parser.rl" ++#line 711 "parser.rl" + { + char *np; + json->current_nesting = 1; +@@ -1823,7 +1823,7 @@ st10: + if ( ++p == pe ) + goto _test_eof10; + case 10: +-#line 1824 "parser.c" ++#line 1827 "parser.c" + switch( (*p) ) { + case 13: goto st10; + case 32: goto st10; +@@ -1880,7 +1880,7 @@ case 9: + _out: {} + } + +-#line 739 "parser.rl" ++#line 742 "parser.rl" + + if (cs >= JSON_first_final && p == pe) { + return result; +@@ -1892,7 +1892,7 @@ case 9: + + + +-#line 1893 "parser.c" ++#line 1896 "parser.c" + static const int JSON_quirks_mode_start = 1; + static const int JSON_quirks_mode_first_final = 10; + static const int JSON_quirks_mode_error = 0; +@@ -1900,7 +1900,7 @@ static const int JSON_quirks_mode_error = 0; + static const int JSON_quirks_mode_en_main = 1; + + +-#line 764 "parser.rl" ++#line 767 "parser.rl" + + + static VALUE cParser_parse_quirks_mode(VALUE self) +@@ -1911,16 +1911,16 @@ static VALUE cParser_parse_quirks_mode(VALUE self) + GET_PARSER; + + +-#line 1912 "parser.c" ++#line 1915 "parser.c" + { + cs = JSON_quirks_mode_start; + } + +-#line 774 "parser.rl" ++#line 777 "parser.rl" + p = json->source; + pe = p + json->len; + +-#line 1921 "parser.c" ++#line 1924 "parser.c" + { + if ( p == pe ) + goto _test_eof; +@@ -1954,7 +1954,7 @@ st0: + cs = 0; + goto _out; + tr2: +-#line 756 "parser.rl" ++#line 759 "parser.rl" + { + char *np = JSON_parse_value(json, p, pe, &result); + if (np == NULL) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;} +@@ -1964,7 +1964,7 @@ st10: + if ( ++p == pe ) + goto _test_eof10; + case 10: +-#line 1965 "parser.c" ++#line 1968 "parser.c" + switch( (*p) ) { + case 13: goto st10; + case 32: goto st10; +@@ -2053,7 +2053,7 @@ case 9: + _out: {} + } + +-#line 777 "parser.rl" ++#line 780 "parser.rl" + + if (cs >= JSON_quirks_mode_first_final && p == pe) { + return result; +--- ext/json/parser/parser.rl.orig ++++ ext/json/parser/parser.rl +@@ -602,6 +602,9 @@ static VALUE convert_encoding(VALUE source) + * defaults to true. + * * *object_class*: Defaults to Hash + * * *array_class*: Defaults to Array ++ * * *quirks_mode*: Enables quirks_mode for parser, that is for example ++ * parsing single JSON values instead of documents is possible. ++ * + */ + static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self) + { +@@ -652,7 +655,7 @@ static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self) + if (option_given_p(opts, tmp)) { + json->create_additions = RTEST(rb_hash_aref(opts, tmp)); + } else { +- json->create_additions = 1; ++ json->create_additions = 0; + } + tmp = ID2SYM(i_create_id); + if (option_given_p(opts, tmp)) { + Modified: head/lang/ruby19/files/patch-tool_mkconfig.rb ============================================================================== --- head/lang/ruby19/files/patch-tool_mkconfig.rb Tue Feb 12 13:55:24 2013 (r312117) +++ head/lang/ruby19/files/patch-tool_mkconfig.rb Tue Feb 12 15:23:04 2013 (r312118) @@ -1,12 +1,12 @@ ---- tool/mkconfig.rb.orig 2010-10-04 00:53:53.000000000 -0700 -+++ tool/mkconfig.rb 2010-10-04 00:55:18.000000000 -0700 -@@ -136,7 +136,8 @@ +--- tool/mkconfig.rb.orig 2013-01-15 07:03:47.000000000 +0000 ++++ tool/mkconfig.rb 2013-02-12 03:29:09.829833511 +0000 +@@ -148,7 +148,8 @@ drive = File::PATH_SEPARATOR == ';' --prefix = "/lib/ruby/#{version}/#{arch}" +-prefix = "/#{v_runtime[:libdir] || 'lib'}/ruby/#{version}/#{arch}" +major, minor, *rest = RUBY_VERSION.split('.') +prefix = "/lib/ruby/#{major}.#{minor}/#{arch}" print " TOPDIR = File.dirname(__FILE__).chomp!(#{prefix.dump})\n" print " DESTDIR = ", (drive ? "TOPDIR && TOPDIR[/\\A[a-z]:/i] || " : ""), "'' unless defined? DESTDIR\n" - print " CONFIG = {}\n" + print <<'ARCH' if universal