This update to rubinius 1.2.3 brings some bug fixes and performance
improvements.  Release notes are at http://rubini.us/releases/1.2.3/

They changed the build system slightly and broke it by default on
OpenBSD, but I already committed the changes upstream.  1.2.3 also
updates the bundled rubygems version to 1.5.2, so I ported the
patches from lang/jruby to re-enable the .require_paths file
creation so that you can still build gem ports without changing the
PLISTs.

Currently, ruby 1.8 and ruby 1.9 use rubygems 1.3.7, jruby uses
rubygems 1.5.1, and rubinius 1.5.2.  Updating ruby 1.8 to a later
version of rubygems is easy (the devel/ruby-gems port), but updating
the ruby 1.9 port is trickier because they bundle rubygems 1.3.7.
We're safe for the time being, but I think the plan is to remove the
.require_paths file handling entirely, and once jruby or rubinius
goes to a rubygems version that does so, this will need to be dealt
with.

Tested on amd64 and i386.  Looking for OKs.

Jeremy

Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/rubinius/Makefile,v
retrieving revision 1.9
diff -u -p -r1.9 Makefile
--- Makefile    10 Mar 2011 20:40:33 -0000      1.9
+++ Makefile    22 Mar 2011 16:54:11 -0000
@@ -4,8 +4,8 @@ SHARED_ONLY=    Yes
 
 COMMENT =      Ruby virtual machine and core library
 
-V=             1.2.2
-DISTNAME =     rubinius-${V}-20110222
+V=             1.2.3
+DISTNAME =     rubinius-${V}-20110315
 PKGNAME =      rubinius-$V
 
 CATEGORIES =   lang lang/ruby
@@ -52,7 +52,7 @@ CONFIGURE_ENV +=      LDFLAGS="-L${LOCALBASE}
 MAKE_ENV +=            CC="${CC}"
 
 do-configure:
-       ${SUBST_CMD} ${WRKSRC}/rakelib/vm.rake
+       ${SUBST_CMD} ${WRKSRC}/rakelib/blueprint.rb
        cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${MAKE_ENV} ${RUBY} 
configure \
                --prefix=${PREFIX}/lib/rubinius --skip-prebuilt --rake=${RAKE}
 
Index: distinfo
===================================================================
RCS file: /cvs/ports/lang/rubinius/distinfo,v
retrieving revision 1.3
diff -u -p -r1.3 distinfo
--- distinfo    10 Mar 2011 20:40:33 -0000      1.3
+++ distinfo    21 Mar 2011 17:35:16 -0000
@@ -1,5 +1,5 @@
-MD5 (rubinius-1.2.2-20110222.tar.gz) = WRJDePt+4EDp7k5HNtifwA==
-RMD160 (rubinius-1.2.2-20110222.tar.gz) = 8wW1P15i/9z2/tPHnx5vJQhy7wE=
-SHA1 (rubinius-1.2.2-20110222.tar.gz) = Vakxszd9XXBCas21B60Uiarp1cw=
-SHA256 (rubinius-1.2.2-20110222.tar.gz) = 
kcHKO9wTJSV3fu8PbELKBuYiYGVXCt4SfqUo/rISk0c=
-SIZE (rubinius-1.2.2-20110222.tar.gz) = 9011164
+MD5 (rubinius-1.2.3-20110315.tar.gz) = l4LasYwt1ECva3bo61vA8A==
+RMD160 (rubinius-1.2.3-20110315.tar.gz) = 6098MEz6NZLcj3UJajjWfA51MLU=
+SHA1 (rubinius-1.2.3-20110315.tar.gz) = cybif0WeKZ3QwpBd6bVANMxwzL4=
+SHA256 (rubinius-1.2.3-20110315.tar.gz) = 
UZAB7ZoRFNCZYPGf8q3TG+A7e1+lIYkuTHttHJDYDes=
+SIZE (rubinius-1.2.3-20110315.tar.gz) = 9485259
Index: patches/patch-kernel_common_hash_rb
===================================================================
RCS file: patches/patch-kernel_common_hash_rb
diff -N patches/patch-kernel_common_hash_rb
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-kernel_common_hash_rb 21 Mar 2011 23:24:30 -0000
@@ -0,0 +1,29 @@
+$OpenBSD$
+
+Backport Hash#entries fix from upstream git (8953e3d0a).
+
+--- kernel/common/hash.rb.orig Tue Mar 15 10:48:59 2011
++++ kernel/common/hash.rb      Mon Mar 21 16:23:02 2011
+@@ -62,7 +62,12 @@ class Hash
+ 
+   attr_reader :size
+ 
+-  attr_reader :entries
++  # #entries is a method provided by Enumerable which calls #to_a,
++  # so we have to not collide with that.
++  def __entries__
++    @entries
++  end
++
+   attr_reader :capacity
+   attr_reader :max_entries
+ 
+@@ -600,7 +605,7 @@ class Hash
+     # Normally this would be a call to __setup__,
+     # but that will create a new unused Tuple
+     # that we would wind up replacing anyways.
+-    @entries = other.entries.dup
++    @entries = other.__entries__.dup
+     @capacity = other.capacity
+     @mask     = @capacity - 1
+     @max_entries = other.max_entries
Index: patches/patch-lib_ruby_site_ruby_1_8_rubygems_installer_rb
===================================================================
RCS file: patches/patch-lib_ruby_site_ruby_1_8_rubygems_installer_rb
diff -N patches/patch-lib_ruby_site_ruby_1_8_rubygems_installer_rb
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_ruby_site_ruby_1_8_rubygems_installer_rb  22 Mar 2011 
16:52:51 -0000
@@ -0,0 +1,25 @@
+$OpenBSD: patch-lib_ruby_site_ruby_1_8_rubygems_installer_rb,v 1.1 2011/03/18 
23:01:22 jeremy Exp $
+
+Create .require_paths file for compatibility with PLISTs for
+ruby 1.8 and ruby 1.9.
+
+--- lib/rubygems/installer.rb.orig     Tue Feb  8 09:30:23 2011
++++ lib/rubygems/installer.rb  Tue Feb  8 15:12:26 2011
+@@ -39,7 +39,7 @@ class Gem::Installer
+ 
+   include Gem::UserInteraction
+ 
+-  include Gem::RequirePathsBuilder if Gem::QUICKLOADER_SUCKAGE
++  include Gem::RequirePathsBuilder
+ 
+   ##
+   # The directory a gem's executables will be installed into
+@@ -171,7 +171,7 @@ class Gem::Installer
+     generate_bin
+     write_spec
+ 
+-    write_require_paths_file_if_needed if Gem::QUICKLOADER_SUCKAGE
++    write_require_paths_file_if_needed
+ 
+     # HACK remove?  Isn't this done in multiple places?
+     cached_gem = File.join @gem_home, "cache", @gem.split(/\//).pop
Index: patches/patch-lib_ruby_site_ruby_1_8_rubygems_require_paths_builder_rb
===================================================================
RCS file: patches/patch-lib_ruby_site_ruby_1_8_rubygems_require_paths_builder_rb
diff -N patches/patch-lib_ruby_site_ruby_1_8_rubygems_require_paths_builder_rb
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_ruby_site_ruby_1_8_rubygems_require_paths_builder_rb      
22 Mar 2011 16:53:02 -0000
@@ -0,0 +1,14 @@
+$OpenBSD: patch-lib_ruby_site_ruby_1_8_rubygems_require_paths_builder_rb,v 1.1 
2011/03/18 23:01:22 jeremy Exp $
+
+Create .require_paths file for compatibility with PLISTs for
+ruby 1.8 and ruby 1.9.
+
+--- lib/rubygems/require_paths_builder.rb.orig Tue Feb  8 15:12:05 2011
++++ lib/rubygems/require_paths_builder.rb      Tue Feb  8 15:12:43 2011
+@@ -14,5 +14,5 @@ module Gem::RequirePathsBuilder
+       file.puts spec.bindir if spec.bindir
+     end
+   end
+-end if Gem::QUICKLOADER_SUCKAGE
++end
+ 
Index: patches/patch-rakelib_blueprint_rb
===================================================================
RCS file: patches/patch-rakelib_blueprint_rb
diff -N patches/patch-rakelib_blueprint_rb
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-rakelib_blueprint_rb  21 Mar 2011 23:09:30 -0000
@@ -0,0 +1,30 @@
+$OpenBSD$
+
+Backport OpenBSD build fix I added to upstream git (59e0f1d).
+
+Use in-tree libffi instead of building bundled version.
+
+--- rakelib/blueprint.rb.orig  Tue Mar 15 10:48:59 2011
++++ rakelib/blueprint.rb       Mon Mar 21 13:59:40 2011
+@@ -44,7 +44,8 @@ Daedalus.blueprint do |i|
+   when /linux/i
+     gcc.ldflags << '-Wl,--export-dynamic' << "-lrt" << "-lcrypt"
+   when /openbsd/i
+-    gcc.ldflags << '-lcrypto' << '-pthread' << '-lssl' << "-ldl" << 
"-rdynamic"
++    gcc.ldflags << '-lcrypto' << '-pthread' << '-lssl' << "-rdynamic" << 
"-Wl,--export-dynamic"
++    make = "gmake"
+   when /haiku/i
+     gcc.ldflags << "-ldl" << "-lnetwork"
+   when /bsd/i
+@@ -139,10 +140,9 @@ Daedalus.blueprint do |i|
+ 
+   ffi = i.external_lib "vm/external_libs/libffi" do |l|
+     l.cflags = ["-Ivm/external_libs/libffi/include"]
+-    l.objects = [l.file(".libs/libffi.a")]
++    l.objects = ["${LOCALBASE}/lib/libffi.a"]
+     l.to_build do |x|
+       x.command "./configure" unless File.exists?("Makefile")
+-      x.command make
+     end
+   end
+ 
Index: patches/patch-rakelib_vm_rake
===================================================================
RCS file: patches/patch-rakelib_vm_rake
diff -N patches/patch-rakelib_vm_rake
--- patches/patch-rakelib_vm_rake       10 Mar 2011 20:40:33 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,62 +0,0 @@
-$OpenBSD: patch-rakelib_vm_rake,v 1.2 2011/03/10 20:40:33 jeremy Exp $
-
-Use intree versions of libffi, instead of bundled versions.
-
---- rakelib/vm.rake.orig       Tue Feb 15 14:46:13 2011
-+++ rakelib/vm.rake    Thu Feb 17 10:14:23 2011
-@@ -53,7 +53,7 @@ dep_file    = "vm/.depends.mf"
- vm_objs     = %w[ vm/drivers/cli.o ]
- vm_srcs     = %w[ vm/drivers/cli.cpp ]
- 
--EX_INC      = %w[ libtommath libgdtoa onig libffi/include
-+EX_INC      = %w[ libtommath libgdtoa onig
-                 ].map { |f| "vm/external_libs/#{f}" }
- 
- INSN_GEN    = %w[ vm/gen/instruction_names.cpp
-@@ -141,11 +141,11 @@ file "vm/external_libs/libgdtoa/libgdtoa.a" => libgdto
- EXTERNALS   = %W[ vm/external_libs/libtommath/libtommath.a
-                   vm/external_libs/libgdtoa/libgdtoa.a
-                   vm/external_libs/onig/.libs/libonig.a
--                  vm/external_libs/libffi/.libs/libffi.a ]
-+                  ${LOCALBASE}/lib/libffi.a ]
- 
- INCLUDES      = EX_INC + %w[vm/test/cxxtest vm .]
- 
--extra = %w!/usr/local/include /opt/local/include!
-+extra = %w!${LOCALBASE}/include ${LOCALBASE}/include!
- 
- extra.each do |dir|
-   INCLUDES << dir if File.directory?(dir)
-@@ -470,6 +470,7 @@ objs.zip(srcs).each do |obj, src|
- end
- 
- files EXTERNALS do |t|
-+  next if t =~ /libffi/
-   path = File.join(*split_all(t.name)[0..2])
-   configure_path = File.join(path, 'configure')
- 
-@@ -648,6 +649,7 @@ namespace :vm do
-   desc "Clean up, including all external libs"
-   task :distclean => :clean do
-     EXTERNALS.each do |lib|
-+      next if lib =~ /libffi/
-       path = File.join(*(lib.split(File::SEPARATOR)[0..-2].reject{|i| i =~ 
/^\./}))
-       system "cd #{path}; #{make} clean || true"
-     end
-@@ -700,12 +702,12 @@ def ex_libs # needs to be method to delay running of l
-   unless defined? $ex_libs then
-     $ex_libs = EXTERNALS.reverse
- 
--    if File.directory?("/usr/local/lib")
--      $ex_libs << "-L/usr/local/lib"
-+    if File.directory?("${LOCALBASE}/lib")
-+      $ex_libs << "-L${LOCALBASE}/lib"
-     end
- 
--    if File.directory?("/opt/local/lib")
--      $ex_libs << "-L/opt/local/lib"
-+    if File.directory?("${LOCALBASE}/lib")
-+      $ex_libs << "-L${LOCALBASE}/lib"
-     end
- 
-     $ex_libs << "-ldl" unless RUBY_PLATFORM =~ /bsd|haiku/
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/lang/rubinius/pkg/PLIST,v
retrieving revision 1.3
diff -u -p -r1.3 PLIST
--- pkg/PLIST   10 Mar 2011 20:40:33 -0000      1.3
+++ pkg/PLIST   21 Mar 2011 21:58:02 -0000
@@ -1129,6 +1129,19 @@ lib/rubinius/lib/rubinius/documentation/
 lib/rubinius/lib/rubinius/documentation/2011/02/17/
 lib/rubinius/lib/rubinius/documentation/2011/02/17/rubinius-what-s-next/
 
lib/rubinius/lib/rubinius/documentation/2011/02/17/rubinius-what-s-next/index.html
+lib/rubinius/lib/rubinius/documentation/2011/02/22/
+lib/rubinius/lib/rubinius/documentation/2011/02/22/rubinius-multiple-branches-with-rvm/
+lib/rubinius/lib/rubinius/documentation/2011/02/22/rubinius-multiple-branches-with-rvm/index.html
+lib/rubinius/lib/rubinius/documentation/2011/02/23/
+lib/rubinius/lib/rubinius/documentation/2011/02/23/introduction-to-fancy/
+lib/rubinius/lib/rubinius/documentation/2011/02/23/introduction-to-fancy/index.html
+lib/rubinius/lib/rubinius/documentation/2011/02/25/
+lib/rubinius/lib/rubinius/documentation/2011/02/25/why-use-rubinius/
+lib/rubinius/lib/rubinius/documentation/2011/02/25/why-use-rubinius/index.html
+lib/rubinius/lib/rubinius/documentation/2011/03/
+lib/rubinius/lib/rubinius/documentation/2011/03/11/
+lib/rubinius/lib/rubinius/documentation/2011/03/11/making-rubinius-rbc-files-disappear/
+lib/rubinius/lib/rubinius/documentation/2011/03/11/making-rubinius-rbc-files-disappear/index.html
 lib/rubinius/lib/rubinius/documentation/404.html
 lib/rubinius/lib/rubinius/documentation/422.html
 lib/rubinius/lib/rubinius/documentation/500.html
@@ -1333,6 +1346,8 @@ lib/rubinius/lib/rubinius/documentation/
 
lib/rubinius/lib/rubinius/documentation/doc/en/how-to/write-a-ruby-spec/index.html
 lib/rubinius/lib/rubinius/documentation/doc/en/how-to/write-a-ticket/
 lib/rubinius/lib/rubinius/documentation/doc/en/how-to/write-a-ticket/index.html
+lib/rubinius/lib/rubinius/documentation/doc/en/how-to/write-benchmarks/
+lib/rubinius/lib/rubinius/documentation/doc/en/how-to/write-benchmarks/index.html
 lib/rubinius/lib/rubinius/documentation/doc/en/how-to/write-documentation/
 
lib/rubinius/lib/rubinius/documentation/doc/en/how-to/write-documentation/index.html
 lib/rubinius/lib/rubinius/documentation/doc/en/index-of-terms/
@@ -1905,6 +1920,8 @@ lib/rubinius/lib/rubinius/documentation/
 lib/rubinius/lib/rubinius/documentation/releases/1.2.0/index.html
 lib/rubinius/lib/rubinius/documentation/releases/1.2.1/
 lib/rubinius/lib/rubinius/documentation/releases/1.2.1/index.html
+lib/rubinius/lib/rubinius/documentation/releases/1.2.2/
+lib/rubinius/lib/rubinius/documentation/releases/1.2.2/index.html
 lib/rubinius/lib/rubinius/documentation/releases/${V}/
 lib/rubinius/lib/rubinius/documentation/releases/${V}/index.html
 lib/rubinius/lib/rubinius/documentation/releases/index.html
@@ -2055,8 +2072,12 @@ lib/rubinius/lib/rubygems/install_update
 lib/rubinius/lib/rubygems/install_update_options.rbc
 lib/rubinius/lib/rubygems/installer.rb
 lib/rubinius/lib/rubygems/installer.rbc
+lib/rubinius/lib/rubygems/installer_test_case.rb
+lib/rubinius/lib/rubygems/installer_test_case.rbc
 lib/rubinius/lib/rubygems/local_remote_options.rb
 lib/rubinius/lib/rubygems/local_remote_options.rbc
+lib/rubinius/lib/rubygems/mock_gem_ui.rb
+lib/rubinius/lib/rubygems/mock_gem_ui.rbc
 lib/rubinius/lib/rubygems/old_format.rb
 lib/rubinius/lib/rubygems/old_format.rbc
 lib/rubinius/lib/rubygems/package/
@@ -2075,6 +2096,8 @@ lib/rubinius/lib/rubygems/package/tar_re
 lib/rubinius/lib/rubygems/package/tar_reader.rbc
 lib/rubinius/lib/rubygems/package/tar_reader/entry.rb
 lib/rubinius/lib/rubygems/package/tar_reader/entry.rbc
+lib/rubinius/lib/rubygems/package/tar_test_case.rb
+lib/rubinius/lib/rubygems/package/tar_test_case.rbc
 lib/rubinius/lib/rubygems/package/tar_writer.rb
 lib/rubinius/lib/rubygems/package/tar_writer.rbc
 lib/rubinius/lib/rubygems/package_task.rb
@@ -2106,6 +2129,8 @@ lib/rubinius/lib/rubygems/spec_fetcher.r
 lib/rubinius/lib/rubygems/spec_fetcher.rbc
 lib/rubinius/lib/rubygems/specification.rb
 lib/rubinius/lib/rubygems/specification.rbc
+lib/rubinius/lib/rubygems/test_case.rb
+lib/rubinius/lib/rubygems/test_case.rbc
 lib/rubinius/lib/rubygems/test_utilities.rb
 lib/rubinius/lib/rubygems/test_utilities.rbc
 lib/rubinius/lib/rubygems/text.rb
@@ -2509,6 +2534,7 @@ lib/rubinius/runtime/common/undefined.rb
 lib/rubinius/runtime/common/variable_scope.rbc
 lib/rubinius/runtime/common/vm.rbc
 lib/rubinius/runtime/delta/
+lib/rubinius/runtime/delta/agent.rbc
 lib/rubinius/runtime/delta/class.rbc
 lib/rubinius/runtime/delta/codeloader.rbc
 lib/rubinius/runtime/delta/ctype.rbc

Reply via email to