|
From: | Ben Woodcroft |
Subject: | Re: [PATCH] Update Ruby to 2.3.0 (was Re: Freezing core-updates soon) |
Date: | Fri, 8 Jan 2016 21:16:57 +1000 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 |
On 06/01/16 08:24, Ludovic Courtès wrote:
In the attached patches I've disabled the failing test in both yard and power_assert. There's no fix for yard in upstream. For power_assert there is a fix, but unfortunately it seems Ruby packages cannot be patched in the usual way because .gem files are archives of archives so the unpacking/patch/repacking fails. I guess we fix that in future.Ben Woodcroft <address@hidden> skribis:I had some trouble downloading dependencies because of inability to download sources e.g. http://graphviz.org/ seems to be down. Ruby seems to build though, can we just review as normal and then push to core-updates? I did rebuild all the packages in ruby.scm, and out of these about 1/3 of packages failed to build, because at least these three packages' tests fail * yard * power_assert * minitest_tu_shim The first two presumably will be fixed upstream soon, but the third hasn't seen a release since Aug 2013, and the homepage listed on rubygems is dead. I guess we just have to encourage the only package we have packaged that uses tu_shim (term-ansicolor) to stop relying on it.OK, thanks for testing this thoroughly. It would be good to fix these 3 packages sometime before core-updates is merged.
Turns out fixing minitest_tu_shim (and others) was easier than I thought as the problem was some hardcoded ruby 2.2 paths in package definitions. I created a new procedure to remove the hard-coding so the update to 2.4 will work too, WDYT?
After all that, everything in gnu/packages/ruby.scm builds.
+ (modify-phases %standard-phases + (add-before 'configure 'replace-bin-sh + (lambda _ + (substitute* '("Makefile.in" + "ext/pty/pty.c" + "io.c" + "lib/mkmf.rb" + "process.c" + "test/rubygems/test_gem_ext_configure_builder.rb" + "test/rdoc/test_rdoc_parser.rb" + "test/ruby/test_rubyoptions.rb" + "test/ruby/test_process.rb" + "test/ruby/test_system.rb" + "tool/rbinstall.rb") + (("/bin/sh") (which "sh"))) + (substitute* "ext/fiddle/libffi-3.2.1/configure" + (("SHELL = /bin/sh") + (string-append "SHELL = " (which "sh")))) + #t))))) + (inputs + `(("readline" ,readline) + ("openssl" ,openssl) + ("libffi" ,libffi) + ("gdbm" ,gdbm) + ("zlib" ,zlib))) + (native-search-paths + (list (search-path-specification + (variable "GEM_PATH") + (files (list (string-append "lib/ruby/gems/" + (version-major+minor version) + ".0"))))))This seems to be shared with 2.2. Is it possible to avoid duplication using something like: (define ruby (package (inherit ruby-2.2) (version "2.3.4") ;; … )) ?
[..]Yes, I did this but forgot to delete some/most duplication. Now after the final patch ruby-2.2 inherits from ruby (not vice-versa as you suggest) as this was the previous convention in ruby.scm. I checked that the hashes in the store names for ruby 2.2, 2.1 and 1.8 did not change after applying the patch.
Better? Thanks for the review. ben
0001-gnu-ruby-power-assert-Disable-failing-test.patch
Description: Text Data
0002-gnu-ruby-yard-Disable-failing-test.patch
Description: Text Data
0003-ruby-Abstract-out-path-to-GEM_HOME.patch
Description: Text Data
0004-gnu-ruby-Update-to-2.3.0.patch
Description: Text Data
[Prev in Thread] | Current Thread | [Next in Thread] |