guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Update Ruby to 2.3.0 (was Re: Freezing core-updates soon)


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:
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.
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.

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

Attachment: 0001-gnu-ruby-power-assert-Disable-failing-test.patch
Description: Text Data

Attachment: 0002-gnu-ruby-yard-Disable-failing-test.patch
Description: Text Data

Attachment: 0003-ruby-Abstract-out-path-to-GEM_HOME.patch
Description: Text Data

Attachment: 0004-gnu-ruby-Update-to-2.3.0.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]