unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Freezing core-updates soon
@ 2016-01-03 14:35 Ludovic Courtès
  2016-01-03 16:25 ` Ricardo Wurmus
                   ` (3 more replies)
  0 siblings, 4 replies; 23+ messages in thread
From: Ludovic Courtès @ 2016-01-03 14:35 UTC (permalink / raw)
  To: Guix-devel

Hi!

I would like to declare ‘core-updates’ frozen in 1 or 2 days so we can
have Hydra build it all and merge it afterwards.

Thoughts?

If there’s a big update you’d like to make (Python anyone?), now is
the time!

Ludo’.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-03 14:35 Freezing core-updates soon Ludovic Courtès
@ 2016-01-03 16:25 ` Ricardo Wurmus
  2016-01-03 22:27   ` Ludovic Courtès
  2016-01-04  0:59 ` Thompson, David
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 23+ messages in thread
From: Ricardo Wurmus @ 2016-01-03 16:25 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel


Ludovic Courtès <ludo@gnu.org> writes:

> Hi!
>
> I would like to declare ‘core-updates’ frozen in 1 or 2 days so we can
> have Hydra build it all and merge it afterwards.
>
> Thoughts?
>
> If there’s a big update you’d like to make (Python anyone?), now is
> the time!

Will this include the patches to make gtk respect the GUIX_GTK{2,3}_PATH
variables?

~~ Ricardo

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-03 16:25 ` Ricardo Wurmus
@ 2016-01-03 22:27   ` Ludovic Courtès
  2016-01-04 14:20     ` Mark H Weaver
  0 siblings, 1 reply; 23+ messages in thread
From: Ludovic Courtès @ 2016-01-03 22:27 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: Guix-devel

Ricardo Wurmus <rekado@elephly.net> skribis:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Hi!
>>
>> I would like to declare ‘core-updates’ frozen in 1 or 2 days so we can
>> have Hydra build it all and merge it afterwards.
>>
>> Thoughts?
>>
>> If there’s a big update you’d like to make (Python anyone?), now is
>> the time!
>
> Will this include the patches to make gtk respect the GUIX_GTK{2,3}_PATH
> variables?

I thought this branch had been built by Hydra and was ready to merge in
master, no?  Mark?

  http://hydra.gnu.org/jobset/gnu/gtk-path-patch

Ludo’.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-03 14:35 Freezing core-updates soon Ludovic Courtès
  2016-01-03 16:25 ` Ricardo Wurmus
@ 2016-01-04  0:59 ` Thompson, David
  2016-01-04  1:17   ` Ben Woodcroft
  2016-01-04 11:02 ` Freezing core-updates soon Efraim Flashner
  2016-01-13 17:48 ` Ludovic Courtès
  3 siblings, 1 reply; 23+ messages in thread
From: Thompson, David @ 2016-01-04  0:59 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel

On Sun, Jan 3, 2016 at 9:35 AM, Ludovic Courtès <ludo@gnu.org> wrote:
> Hi!
>
> I would like to declare ‘core-updates’ frozen in 1 or 2 days so we can
> have Hydra build it all and merge it afterwards.
>
> Thoughts?
>
> If there’s a big update you’d like to make (Python anyone?), now is
> the time!

I don't have the time to do it, but if anyone would like to bump Ruby
to 2.3.0 and keep the 2.2.4 version hanging around in another variable
like the other old versions, that would be cool. :)

Thanks,

- Dave

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-04  0:59 ` Thompson, David
@ 2016-01-04  1:17   ` Ben Woodcroft
  2016-01-04 10:46     ` [PATCH] Update Ruby to 2.3.0 (was Re: Freezing core-updates soon) Ben Woodcroft
  0 siblings, 1 reply; 23+ messages in thread
From: Ben Woodcroft @ 2016-01-04  1:17 UTC (permalink / raw)
  To: Thompson, David, Ludovic Courtès; +Cc: Guix-devel



On 04/01/16 10:59, Thompson, David wrote:
> On Sun, Jan 3, 2016 at 9:35 AM, Ludovic Courtès <ludo@gnu.org> wrote:
>> Hi!
>>
>> I would like to declare ‘core-updates’ frozen in 1 or 2 days so we can
>> have Hydra build it all and merge it afterwards.
>>
>> Thoughts?
>>
>> If there’s a big update you’d like to make (Python anyone?), now is
>> the time!
> I don't have the time to do it, but if anyone would like to bump Ruby
> to 2.3.0 and keep the 2.2.4 version hanging around in another variable
> like the other old versions, that would be cool. :)
I'm on it, draft patch done, rebuilding dependencies now.

ben

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH] Update Ruby to 2.3.0 (was Re: Freezing core-updates soon)
  2016-01-04  1:17   ` Ben Woodcroft
@ 2016-01-04 10:46     ` Ben Woodcroft
  2016-01-05 22:24       ` Ludovic Courtès
  0 siblings, 1 reply; 23+ messages in thread
From: Ben Woodcroft @ 2016-01-04 10:46 UTC (permalink / raw)
  To: Thompson, David, Ludovic Courtès; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 1417 bytes --]

On 04/01/16 11:17, Ben Woodcroft wrote:
> On 04/01/16 10:59, Thompson, David wrote:
>> On Sun, Jan 3, 2016 at 9:35 AM, Ludovic Courtès <ludo@gnu.org> wrote:
>>> Hi!
>>>
>>> I would like to declare ‘core-updates’ frozen in 1 or 2 days so we can
>>> have Hydra build it all and merge it afterwards.
>>>
>>> Thoughts?
>>>
>>> If there’s a big update you’d like to make (Python anyone?), now is
>>> the time!
>> I don't have the time to do it, but if anyone would like to bump Ruby
>> to 2.3.0 and keep the 2.2.4 version hanging around in another variable
>> like the other old versions, that would be cool. :)
> I'm on it, draft patch done, rebuilding dependencies now.
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.

Thanks,
ben

[-- Attachment #2: 0001-gnu-ruby-Update-to-2.3.0.patch --]
[-- Type: text/x-patch, Size: 3785 bytes --]

From cd8c4e078cb930d1ce928b3c614b2081ec6719ac Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Mon, 4 Jan 2016 09:38:42 +1000
Subject: [PATCH] gnu: ruby: Update to 2.3.0.

* gnu/packages/ruby.scm (ruby): Update to 2.3.0.
(ruby-2.2): New variable.
---
 gnu/packages/ruby.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 55 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 47ac392..2888914 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -46,7 +46,7 @@
 (define-public ruby
   (package
     (name "ruby")
-    (version "2.2.4")
+    (version "2.3.0")
     (source
      (origin
        (method url-fetch)
@@ -55,10 +55,62 @@
                            "/ruby-" version ".tar.xz"))
        (sha256
         (base32
-         "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj"))))
+         "15s0dsb5ynf3d2w5gzawnszq5594fqvapv2y7a0qw16przq5l4kh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
+       #:phases
+       (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"))))))
+    (synopsis "Programming language interpreter")
+    (description "Ruby is a dynamic object-oriented programming language with
+a focus on simplicity and productivity.")
+    (home-page "https://ruby-lang.org")
+    (license license:ruby)))
+
+(define-public ruby-2.2
+  (package (inherit ruby)
+    (version "2.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
+                           (version-major+minor version)
+                           "/ruby-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj"))))
+    (arguments
+     `(#:test-target "test"
        #:parallel-tests? #f
        #:phases
        (alist-cons-before
@@ -88,12 +140,7 @@
             (variable "GEM_PATH")
             (files (list (string-append "lib/ruby/gems/"
                                         (version-major+minor version)
-                                        ".0"))))))
-    (synopsis "Programming language interpreter")
-    (description "Ruby is a dynamic object-oriented programming language with
-a focus on simplicity and productivity.")
-    (home-page "https://ruby-lang.org")
-    (license license:ruby)))
+                                        ".0"))))))))
 
 (define-public ruby-2.1
   (package (inherit ruby)
-- 
2.6.3


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-03 14:35 Freezing core-updates soon Ludovic Courtès
  2016-01-03 16:25 ` Ricardo Wurmus
  2016-01-04  0:59 ` Thompson, David
@ 2016-01-04 11:02 ` Efraim Flashner
  2016-01-04 15:13   ` Ludovic Courtès
  2016-01-13 17:48 ` Ludovic Courtès
  3 siblings, 1 reply; 23+ messages in thread
From: Efraim Flashner @ 2016-01-04 11:02 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 805 bytes --]

On Sun, 03 Jan 2016 15:35:40 +0100
ludo@gnu.org (Ludovic Courtès) wrote:

> Hi!
> 
> I would like to declare ‘core-updates’ frozen in 1 or 2 days so we can
> have Hydra build it all and merge it afterwards.
> 
> Thoughts?
> 
> If there’s a big update you’d like to make (Python anyone?), now is
> the time!
> 
> Ludo’.
> 

On the python front, I count python, python2 and python-setuptools.

On the `guix refresh -t gnu` front, I see gnutls, libgpg-error, libtasn1,
libgcrypt and gettext

Also on the "massive rebuild list," off the top of my head, is tzdata

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-03 22:27   ` Ludovic Courtès
@ 2016-01-04 14:20     ` Mark H Weaver
  2016-01-04 21:16       ` Mark H Weaver
  0 siblings, 1 reply; 23+ messages in thread
From: Mark H Weaver @ 2016-01-04 14:20 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel

ludo@gnu.org (Ludovic Courtès) writes:

> Ricardo Wurmus <rekado@elephly.net> skribis:
>
>> Ludovic Courtès <ludo@gnu.org> writes:
>>
>>> Hi!
>>>
>>> I would like to declare ‘core-updates’ frozen in 1 or 2 days so we can
>>> have Hydra build it all and merge it afterwards.
>>>
>>> Thoughts?
>>>
>>> If there’s a big update you’d like to make (Python anyone?), now is
>>> the time!
>>
>> Will this include the patches to make gtk respect the GUIX_GTK{2,3}_PATH
>> variables?
>
> I thought this branch had been built by Hydra and was ready to merge in
> master, no?  Mark?
>
>   http://hydra.gnu.org/jobset/gnu/gtk-path-patch

Yes, it's ready to merge.

      Mark

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-04 11:02 ` Freezing core-updates soon Efraim Flashner
@ 2016-01-04 15:13   ` Ludovic Courtès
  2016-01-04 15:21     ` Efraim Flashner
  0 siblings, 1 reply; 23+ messages in thread
From: Ludovic Courtès @ 2016-01-04 15:13 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: Guix-devel

Efraim Flashner <efraim@flashner.co.il> skribis:

> On the python front, I count python, python2 and python-setuptools.

OK.

> On the `guix refresh -t gnu` front, I see gnutls, libgpg-error, libtasn1,
> libgcrypt and gettext
>
> Also on the "massive rebuild list," off the top of my head, is tzdata

I see.

Could you look into it, starting with the GNU updates?  Once you’re
done, we’ll ask Hydra to rebuild the branch (changes to core-updates do
not automatically trigger Hydra, to reduce load.)

TIA!  :-)

Ludo’.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-04 15:13   ` Ludovic Courtès
@ 2016-01-04 15:21     ` Efraim Flashner
  0 siblings, 0 replies; 23+ messages in thread
From: Efraim Flashner @ 2016-01-04 15:21 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 1148 bytes --]

On Mon, 04 Jan 2016 16:13:59 +0100
ludo@gnu.org (Ludovic Courtès) wrote:

> Efraim Flashner <efraim@flashner.co.il> skribis:
> 
> > On the python front, I count python, python2 and python-setuptools.  
> 
> OK.
> 
> > On the `guix refresh -t gnu` front, I see gnutls, libgpg-error, libtasn1,
> > libgcrypt and gettext
> >
> > Also on the "massive rebuild list," off the top of my head, is tzdata  
> 
> I see.
> 
> Could you look into it, starting with the GNU updates?  Once you’re
> done, we’ll ask Hydra to rebuild the branch (changes to core-updates do
> not automatically trigger Hydra, to reduce load.)
> 
> TIA!  :-)
> 
> Ludo’.

Sure. I'm currently rebuilding to "mc" after updating tzdata (since my
country can't get our timezones set more than a few months in advance...),
but then I'll get right on the gnu ones.

By comparison, the python set "only" has a rebuild cost of ~750 packages.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-04 14:20     ` Mark H Weaver
@ 2016-01-04 21:16       ` Mark H Weaver
  2016-01-04 22:49         ` Ludovic Courtès
  0 siblings, 1 reply; 23+ messages in thread
From: Mark H Weaver @ 2016-01-04 21:16 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel

Mark H Weaver <mhw@netris.org> writes:

> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Ricardo Wurmus <rekado@elephly.net> skribis:
>>
>>> Ludovic Courtès <ludo@gnu.org> writes:
>>>
>>>> Hi!
>>>>
>>>> I would like to declare ‘core-updates’ frozen in 1 or 2 days so we can
>>>> have Hydra build it all and merge it afterwards.
>>>>
>>>> Thoughts?
>>>>
>>>> If there’s a big update you’d like to make (Python anyone?), now is
>>>> the time!
>>>
>>> Will this include the patches to make gtk respect the GUIX_GTK{2,3}_PATH
>>> variables?
>>
>> I thought this branch had been built by Hydra and was ready to merge in
>> master, no?  Mark?
>>
>>   http://hydra.gnu.org/jobset/gnu/gtk-path-patch
>
> Yes, it's ready to merge.

I went ahead and cherry-picked the two patches to master.

     Mark

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-04 21:16       ` Mark H Weaver
@ 2016-01-04 22:49         ` Ludovic Courtès
  0 siblings, 0 replies; 23+ messages in thread
From: Ludovic Courtès @ 2016-01-04 22:49 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: Guix-devel

Mark H Weaver <mhw@netris.org> skribis:

> Mark H Weaver <mhw@netris.org> writes:
>
>> ludo@gnu.org (Ludovic Courtès) writes:
>>
>>> Ricardo Wurmus <rekado@elephly.net> skribis:
>>>
>>>> Ludovic Courtès <ludo@gnu.org> writes:
>>>>
>>>>> Hi!
>>>>>
>>>>> I would like to declare ‘core-updates’ frozen in 1 or 2 days so we can
>>>>> have Hydra build it all and merge it afterwards.
>>>>>
>>>>> Thoughts?
>>>>>
>>>>> If there’s a big update you’d like to make (Python anyone?), now is
>>>>> the time!
>>>>
>>>> Will this include the patches to make gtk respect the GUIX_GTK{2,3}_PATH
>>>> variables?
>>>
>>> I thought this branch had been built by Hydra and was ready to merge in
>>> master, no?  Mark?
>>>
>>>   http://hydra.gnu.org/jobset/gnu/gtk-path-patch
>>
>> Yes, it's ready to merge.
>
> I went ahead and cherry-picked the two patches to master.

Thank you!

Ludo’.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] Update Ruby to 2.3.0 (was Re: Freezing core-updates soon)
  2016-01-04 10:46     ` [PATCH] Update Ruby to 2.3.0 (was Re: Freezing core-updates soon) Ben Woodcroft
@ 2016-01-05 22:24       ` Ludovic Courtès
  2016-01-08 11:16         ` Ben Woodcroft
  0 siblings, 1 reply; 23+ messages in thread
From: Ludovic Courtès @ 2016-01-05 22:24 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: Guix-devel

Ben Woodcroft <b.woodcroft@uq.edu.au> 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.

> From cd8c4e078cb930d1ce928b3c614b2081ec6719ac Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <donttrustben@gmail.com>
> Date: Mon, 4 Jan 2016 09:38:42 +1000
> Subject: [PATCH] gnu: ruby: Update to 2.3.0.
>
> * gnu/packages/ruby.scm (ruby): Update to 2.3.0.
> (ruby-2.2): New variable.

[...]

> +       (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")
      ;; …
      ))

?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] Update Ruby to 2.3.0 (was Re: Freezing core-updates soon)
  2016-01-05 22:24       ` Ludovic Courtès
@ 2016-01-08 11:16         ` Ben Woodcroft
  2016-01-08 16:52           ` [PATCH] Update Ruby to 2.3.0 Ludovic Courtès
  0 siblings, 1 reply; 23+ messages in thread
From: Ben Woodcroft @ 2016-01-08 11:16 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 3707 bytes --]



On 06/01/16 08:24, Ludovic Courtès wrote:
> Ben Woodcroft <b.woodcroft@uq.edu.au> 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 #2: 0001-gnu-ruby-power-assert-Disable-failing-test.patch --]
[-- Type: text/x-patch, Size: 1376 bytes --]

From 910c98d233a271bf4ee74ee9edf4c42fb090afd5 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Wed, 6 Jan 2016 21:23:15 +1000
Subject: [PATCH 1/4] gnu: ruby-power-assert: Disable failing test.

* gnu/packages/ruby.scm (ruby-power-assert)[arguments]: Disable test which
fails on Ruby 2.3.0.
---
 gnu/packages/ruby.scm | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 47ac392..9706ec7 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1067,6 +1067,18 @@ using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
                (base32
                 "0gbj379jhnff8rbb6m3kzdm282szjz1a021xzxa38d1bnswj2jx3"))))
     (build-system ruby-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'patch-test
+           ;; Disable test that fails on Ruby 2.3.  This has been fixed
+           ;; upstream but the fix has not been released.
+           (lambda _
+             (substitute*
+                 "test/test_power_assert.rb"
+               (("def test_inspection_failure")
+                "def dont_test_inspection_failure"))
+             #t)))))
     (native-inputs
      `(("bundler" ,bundler)))
     (synopsis "Assert library with descriptive assertion messages")
-- 
2.6.3


[-- Attachment #3: 0002-gnu-ruby-yard-Disable-failing-test.patch --]
[-- Type: text/x-patch, Size: 1577 bytes --]

From 207d2fa7769a4fea5a3a32a7227b2c7a2e0293bb Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Wed, 6 Jan 2016 21:57:44 +1000
Subject: [PATCH 2/4] gnu: ruby-yard: Disable failing test.

* gnu/packages/ruby.scm (ruby-yard)[arguments]: Disable test which fails on
Ruby 2.3.0.
---
 gnu/packages/ruby.scm | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 9706ec7..a695ed8 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2788,9 +2788,17 @@ features such as filtering and fine grained logging.")
      `(#:test-target "specs"
        #:phases
        (modify-phases %standard-phases
-         (add-before 'check 'set-HOME
-          ;; $HOME needs to be set to somewhere writeable for tests to run
-          (lambda _ (setenv "HOME" "/tmp") #t)))))
+         (add-before 'check 'set-HOME-and-disable-failing-test
+           (lambda _
+             ;; $HOME needs to be set to somewhere writeable for tests to run
+             (setenv "HOME" "/tmp")
+             ;; Disable tests which fails on Ruby 2.3.  See
+             ;; https://github.com/lsegal/yard/issues/927
+             (substitute* "spec/parser/ruby/ruby_parser_spec.rb"
+               (("comment.type.should == :comment") "")
+               (("comment.docstring_hash_flag.should be_true") "")
+               (("comment.docstring.strip.should == .*") ""))
+             #t)))))
     (native-inputs
      `(("ruby-rspec" ,ruby-rspec-2)
        ("ruby-rack" ,ruby-rack)))
-- 
2.6.3


[-- Attachment #4: 0003-ruby-Abstract-out-path-to-GEM_HOME.patch --]
[-- Type: text/x-patch, Size: 8375 bytes --]

From 27fea9884bae4aadb4bc6981c996ddbcf54adee0 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Fri, 8 Jan 2016 17:29:39 +1000
Subject: [PATCH 3/4] ruby: Abstract out path to GEM_HOME.

Previously paths to the GEM_HOME of certain Ruby packages were
hard-coded, so packages failed to build when Ruby was updated to 2.3.0.

* guix/build/ruby-build-system.scm (gem-home): New procedure.
* gnu/packages/ruby.scm (ruby-metaclass, ruby-instantiator,
ruby-introspection, ruby-mocha, ruby-minitest-tu-shim): Use it.
---
 gnu/packages/ruby.scm            | 92 +++++++++++++++++++++++-----------------
 guix/build/ruby-build-system.scm | 13 +++++-
 2 files changed, 65 insertions(+), 40 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index a695ed8..71c4d05 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1224,15 +1224,18 @@ It allows writing tests, checking results and automated testing in Ruby.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'add-test-unit-to-search-path
-          (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "Rakefile"
-              (("t\\.libs << \"test\"" line)
-               (string-append line "; t.libs << \""
-                              (assoc-ref inputs "ruby-test-unit")
-                              "/lib/ruby/gems/2.2.0/gems/test-unit-"
-                              ,(package-version ruby-test-unit)
-                              "/lib\"")))
-            #t)))))
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
+                    (test-unit-home  (gem-home test-unit
+                                               ,(package-version ruby))))
+               (substitute* "Rakefile"
+                 (("t\\.libs << \"test\"" line)
+                  (string-append line "; t.libs << \""
+                                 test-unit-home
+                                 "/gems/test-unit-"
+                                 ,(package-version ruby-test-unit)
+                                 "/lib\""))))
+             #t)))))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-test-unit" ,ruby-test-unit)))
@@ -1286,15 +1289,17 @@ as a base class when writing classes that depend upon
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'add-test-unit-to-search-path
-          (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "Rakefile"
-              (("t\\.libs << \"test\"" line)
-               (string-append line "; t.libs << \""
-                              (assoc-ref inputs "ruby-test-unit")
-                              "/lib/ruby/gems/2.2.0/gems/test-unit-"
-                              ,(package-version ruby-test-unit)
-                              "/lib\"")))
-            #t)))))
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
+                    (test-unit-home  (gem-home test-unit ,(package-version ruby))))
+               (substitute* "Rakefile"
+                 (("t\\.libs << \"test\"" line)
+                  (string-append line "; t.libs << \""
+                                 test-unit-home
+                                 "/gems/test-unit-"
+                                 ,(package-version ruby-test-unit)
+                                 "/lib\""))))
+             #t)))))
     (propagated-inputs
      `(("ruby-blankslate" ,ruby-blankslate)))
     (native-inputs
@@ -1323,13 +1328,15 @@ knowing anything about the constructor.")
        (modify-phases %standard-phases
          (add-after 'unpack 'add-test-unit-to-search-path
           (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "Rakefile"
-              (("t\\.libs << \"test\"" line)
-               (string-append line "; t.libs << \""
-                              (assoc-ref inputs "ruby-test-unit")
-                              "/lib/ruby/gems/2.2.0/gems/test-unit-"
-                              ,(package-version ruby-test-unit)
-                              "/lib\"")))
+            (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
+                   (test-unit-home  (gem-home test-unit ,(package-version ruby))))
+              (substitute* "Rakefile"
+                (("t\\.libs << \"test\"" line)
+                 (string-append line "; t.libs << \""
+                                test-unit-home
+                                "/gems/test-unit-"
+                                ,(package-version ruby-test-unit)
+                                "/lib\""))))
             #t)))))
     (propagated-inputs
      `(("ruby-instantiator" ,ruby-instantiator)
@@ -1393,13 +1400,16 @@ conversion to (X)HTML.")
        (modify-phases %standard-phases
          (add-after 'unpack 'add-test-unit-to-search-path
           (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "Rakefile"
-              (("t\\.libs << 'test'" line)
-               (string-append line "; t.libs << \""
-                              (assoc-ref inputs "ruby-test-unit")
-                              "/lib/ruby/gems/2.2.0/gems/test-unit-"
-                              ,(package-version ruby-test-unit)
-                              "/lib\"")))
+            (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
+                   (test-unit-home  (gem-home test-unit
+                                             ,(package-version ruby))))
+              (substitute* "Rakefile"
+                (("t\\.libs << 'test'" line)
+                 (string-append line "; t.libs << \""
+                                test-unit-home
+                                "/gems/test-unit-"
+                                ,(package-version ruby-test-unit)
+                                "/lib\""))))
             #t))
          (add-before 'check 'use-latest-redcarpet
           (lambda _
@@ -2059,13 +2069,17 @@ development of Ruby gems.")
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-test-include-path
           (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "Rakefile"
-              (("Hoe\\.add_include_dirs .*")
-               (string-append "Hoe.add_include_dirs \""
-                              (assoc-ref inputs "ruby-minitest-4")
-                              "/lib/ruby/gems/2.2.0/gems/minitest-"
-                              ,(package-version ruby-minitest-4)
-                              "/lib" "\"")))))
+             (let* ((minitest (assoc-ref inputs "ruby-minitest-4"))
+                    (minitest-home  (gem-home minitest
+                                              ,(package-version ruby))))
+               (substitute* "Rakefile"
+                 (("Hoe\\.add_include_dirs .*")
+                  (string-append "Hoe.add_include_dirs \""
+                                 minitest-home
+                                 "/gems/minitest-"
+                                 ,(package-version ruby-minitest-4)
+                                 "/lib" "\""))))
+             #t))
          (add-before 'check 'fix-test-assumptions
           (lambda _
             ;; The test output includes the file name, so a couple of tests
diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm
index 2685da1..18da438 100644
--- a/guix/build/ruby-build-system.scm
+++ b/guix/build/ruby-build-system.scm
@@ -26,7 +26,8 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:export (%standard-phases
-            ruby-build))
+            ruby-build
+            gem-home))
 
 ;; Commentary:
 ;;
@@ -136,3 +137,13 @@ GEM-FLAGS are passed to the 'gem' invokation, if present."
 (define* (ruby-build #:key inputs (phases %standard-phases)
                      #:allow-other-keys #:rest args)
   (apply gnu:gnu-build #:inputs inputs #:phases phases args))
+
+(define (gem-home store-path ruby-version)
+  "Return a string to the gem home directory in the store given a STORE-PATH
+and the RUBY-VERSION used to build that ruby package"
+  (string-append
+   store-path
+   "/lib/ruby/gems/"
+   (regexp-substitute #f
+                      (string-match "^[0-9]+\\.[0-9]+" ruby-version)
+                      0 ".0")))
-- 
2.6.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #5: 0004-gnu-ruby-Update-to-2.3.0.patch --]
[-- Type: text/x-patch; name="0004-gnu-ruby-Update-to-2.3.0.patch", Size: 4695 bytes --]

From 28dee96b0de99adf8657457660b9e3733434d2b4 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Mon, 4 Jan 2016 09:38:42 +1000
Subject: [PATCH 4/4] gnu: ruby: Update to 2.3.0.

* gnu/packages/ruby.scm (ruby): Update to 2.3.0.
(ruby-2.2): New variable.
---
 gnu/packages/ruby.scm | 75 +++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 55 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 71c4d05..c68e7d9 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -46,7 +46,7 @@
 (define-public ruby
   (package
     (name "ruby")
-    (version "2.2.4")
+    (version "2.3.0")
     (source
      (origin
        (method url-fetch)
@@ -55,28 +55,30 @@
                            "/ruby-" version ".tar.xz"))
        (sha256
         (base32
-         "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj"))))
+         "15s0dsb5ynf3d2w5gzawnszq5594fqvapv2y7a0qw16przq5l4kh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
-       #:parallel-tests? #f
        #:phases
-       (alist-cons-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"))))
-        %standard-phases)))
+       (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)
@@ -95,6 +97,39 @@ a focus on simplicity and productivity.")
     (home-page "https://ruby-lang.org")
     (license license:ruby)))
 
+(define-public ruby-2.2
+  (package (inherit ruby)
+    (version "2.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
+                           (version-major+minor version)
+                           "/ruby-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj"))))
+    (arguments
+     `(#:test-target "test"
+       #:parallel-tests? #f
+       #:phases
+       (alist-cons-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"))))
+        %standard-phases)))))
+
 (define-public ruby-2.1
   (package (inherit ruby)
     (version "2.1.6")
-- 
2.6.3


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH] Update Ruby to 2.3.0
  2016-01-08 11:16         ` Ben Woodcroft
@ 2016-01-08 16:52           ` Ludovic Courtès
  2016-01-10 12:53             ` Ben Woodcroft
  0 siblings, 1 reply; 23+ messages in thread
From: Ludovic Courtès @ 2016-01-08 16:52 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: Guix-devel

Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:

> From 28dee96b0de99adf8657457660b9e3733434d2b4 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <donttrustben@gmail.com>
> Date: Mon, 4 Jan 2016 09:38:42 +1000
> Subject: [PATCH 4/4] gnu: ruby: Update to 2.3.0.
>
> * gnu/packages/ruby.scm (ruby): Update to 2.3.0.

Please mention the switch to ‘modify-phases’ here.

> (ruby-2.2): New variable.

[...]

> +             (substitute* "ext/fiddle/libffi-3.2.1/configure"
> +               (("SHELL = /bin/sh")
> +                (string-append "SHELL = " (which "sh"))))

I overlooked this part before but: (1) this looks weird (the spaces
around ‘=’ suggest it’s Makefile syntax, not shell syntax), and (2) we
shouldn’t use the bundled libffi.

How much work would it be to fix #2?  It would be awesome if you could
do that.  Sorry for the extra work!

> +(define-public ruby-2.2
> +  (package (inherit ruby)
> +    (version "2.2.4")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
> +                           (version-major+minor version)
> +                           "/ruby-" version ".tar.bz2"))
> +       (sha256
> +        (base32
> +         "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj"))))
> +    (arguments
> +     `(#:test-target "test"
> +       #:parallel-tests? #f
> +       #:phases
> +       (alist-cons-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"))))
> +        %standard-phases)))))

AFAICS all of ‘arguments’ can be omitted once the above libffi
substitution is removed.

(If it there’s still a need for different phases, it should use
‘substitute-keyword-arguments’ to modify only #:phases, and then
‘modify-phases’ rather than ‘alist-cons-before’.)

Could you send an updated patch, hopefully the last one?  :-)

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] Update Ruby to 2.3.0
  2016-01-08 16:52           ` [PATCH] Update Ruby to 2.3.0 Ludovic Courtès
@ 2016-01-10 12:53             ` Ben Woodcroft
  2016-01-10 12:56               ` Ben Woodcroft
  0 siblings, 1 reply; 23+ messages in thread
From: Ben Woodcroft @ 2016-01-10 12:53 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel



On 09/01/16 02:52, Ludovic Courtès wrote:
> Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:
>
>>  From 28dee96b0de99adf8657457660b9e3733434d2b4 Mon Sep 17 00:00:00 2001
>> From: Ben Woodcroft <donttrustben@gmail.com>
>> Date: Mon, 4 Jan 2016 09:38:42 +1000
>> Subject: [PATCH 4/4] gnu: ruby: Update to 2.3.0.
>>
>> * gnu/packages/ruby.scm (ruby): Update to 2.3.0.
> Please mention the switch to ‘modify-phases’ here.
I even made it a separate commit.

[..]
> I overlooked this part before but: (1) this looks weird (the spaces
> around ‘=’ suggest it’s Makefile syntax, not shell syntax), and (2) we
> shouldn’t use the bundled libffi.
>
> How much work would it be to fix #2?  It would be awesome if you could
> do that.  Sorry for the extra work!
All good, was easy to fix. I also removed it from ruby-2.2 which bundles 
the same libffi version.

However, it seems 11 rubygems are also bundled. To unbundle these and 
deal with the circular dependencies, I reckon we should create a new 
ruby-base package that removes the bundled gems, then we package the 11 
gems and their dependencies using ruby-base, and the 'ruby' package then 
inherits from ruby-base but also propagates the 11 gems. However I don't 
think I have time to implement this right now, especially since most of 
the 11 haven't been packaged by us yet and core-updates is to be merged 
soon.

So do we merge this update as-is or wait for a more perfect solution?
>> +(define-public ruby-2.2
>> +  (package (inherit ruby)
>> +    (version "2.2.4")
>> +    (source
>> +     (origin
>> +       (method url-fetch)
>> +       (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
>> +                           (version-major+minor version)
>> +                           "/ruby-" version ".tar.bz2"))
>> +       (sha256
>> +        (base32
>> +         "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj"))))
>> +    (arguments
>> +     `(#:test-target "test"
>> +       #:parallel-tests? #f
>> +       #:phases
>> +       (alist-cons-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"))))
>> +        %standard-phases)))))
> AFAICS all of ‘arguments’ can be omitted once the above libffi
> substitution is removed.
>
> (If it there’s still a need for different phases, it should use
> ‘substitute-keyword-arguments’ to modify only #:phases, and then
> ‘modify-phases’ rather than ‘alist-cons-before’.)
Thanks for the tip, but ruby-2.2 is a now simple inherit.

> Could you send an updated patch, hopefully the last one?  :-)
Please feel free to suggest further changes if you spot anything further.

Thanks for the review,
ben

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] Update Ruby to 2.3.0
  2016-01-10 12:53             ` Ben Woodcroft
@ 2016-01-10 12:56               ` Ben Woodcroft
  2016-01-10 21:14                 ` Ludovic Courtès
  0 siblings, 1 reply; 23+ messages in thread
From: Ben Woodcroft @ 2016-01-10 12:56 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 557 bytes --]



On 10/01/16 22:53, Ben Woodcroft wrote:
>
>
> On 09/01/16 02:52, Ludovic Courtès wrote:
>> Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:
>>
>>>  From 28dee96b0de99adf8657457660b9e3733434d2b4 Mon Sep 17 00:00:00 2001
>>> From: Ben Woodcroft <donttrustben@gmail.com>
>>> Date: Mon, 4 Jan 2016 09:38:42 +1000
>>> Subject: [PATCH 4/4] gnu: ruby: Update to 2.3.0.
>>>
>>> * gnu/packages/ruby.scm (ruby): Update to 2.3.0.
>> Please mention the switch to ‘modify-phases’ here.
> I even made it a separate commit.
Forgot to attach patches.

[-- Attachment #2: 0005-gnu-ruby-Update-to-2.3.0.patch --]
[-- Type: text/x-patch, Size: 2406 bytes --]

From 2f26295b5a163cfc5d37332a501dcba5c40fb956 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Mon, 4 Jan 2016 09:38:42 +1000
Subject: [PATCH 5/5] gnu: ruby: Update to 2.3.0.

* gnu/packages/ruby.scm (ruby): Update to 2.3.0.
[arguments]: Remove bundled libffi.  Use parallel tests.
(ruby-2.2): New variable.
---
 gnu/packages/ruby.scm | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 2b7496a..d2cdcf0 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -46,7 +46,7 @@
 (define-public ruby
   (package
     (name "ruby")
-    (version "2.2.4")
+    (version "2.3.0")
     (source
      (origin
        (method url-fetch)
@@ -55,14 +55,13 @@
                            "/ruby-" version ".tar.xz"))
        (sha256
         (base32
-         "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj"))))
+         "15s0dsb5ynf3d2w5gzawnszq5594fqvapv2y7a0qw16przq5l4kh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
-       #:parallel-tests? #f
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'replace-bin-sh
+         (add-before 'configure 'replace-bin-sh-and-remove-libffi
            (lambda _
              (substitute* '("Makefile.in"
                             "ext/pty/pty.c"
@@ -76,6 +75,9 @@
                             "test/ruby/test_system.rb"
                             "tool/rbinstall.rb")
                (("/bin/sh") (which "sh")))
+             ;; Remove bundled libffi
+             (delete-file-recursively
+              (string-append "ext/fiddle/libffi-3.2.1"))
              #t)))))
     (inputs
      `(("readline" ,readline)
@@ -95,6 +97,19 @@ a focus on simplicity and productivity.")
     (home-page "https://ruby-lang.org")
     (license license:ruby)))
 
+(define-public ruby-2.2
+  (package (inherit ruby)
+    (version "2.2.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://cache.ruby-lang.org/pub/ruby/"
+                           (version-major+minor version)
+                           "/ruby-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj"))))))
+
 (define-public ruby-2.1
   (package (inherit ruby)
     (version "2.1.6")
-- 
2.6.3


[-- Attachment #3: 0004-gnu-ruby-Use-modify-phases.patch --]
[-- Type: text/x-patch, Size: 2150 bytes --]

From 551ecbd280eb35cb8e67cedf50e4a93f618cab1e Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Sun, 10 Jan 2016 22:25:45 +1000
Subject: [PATCH 4/5] gnu: ruby: Use modify-phases.

* gnu/packages/ruby.scm (ruby)[arguments]: Use modify-phases.
---
 gnu/packages/ruby.scm | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 1564a54..2b7496a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -61,22 +61,22 @@
      `(#:test-target "test"
        #:parallel-tests? #f
        #:phases
-       (alist-cons-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"))))
-        %standard-phases)))
+       (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")))
+             #t)))))
     (inputs
      `(("readline" ,readline)
        ("openssl" ,openssl)
-- 
2.6.3


[-- Attachment #4: 0003-ruby-Abstract-out-path-to-GEM_HOME.patch --]
[-- Type: text/x-patch, Size: 8375 bytes --]

From 015a0e17be804dd7f68f21cde8a878ff353a4a97 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Fri, 8 Jan 2016 17:29:39 +1000
Subject: [PATCH 3/5] ruby: Abstract out path to GEM_HOME.

Previously paths to the GEM_HOME of certain Ruby packages were
hard-coded, so packages failed to build when Ruby was updated to 2.3.0.

* guix/build/ruby-build-system.scm (gem-home): New procedure.
* gnu/packages/ruby.scm (ruby-metaclass, ruby-instantiator,
ruby-introspection, ruby-mocha, ruby-minitest-tu-shim): Use it.
---
 gnu/packages/ruby.scm            | 92 +++++++++++++++++++++++-----------------
 guix/build/ruby-build-system.scm | 13 +++++-
 2 files changed, 65 insertions(+), 40 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 61c6c3c..1564a54 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1212,15 +1212,18 @@ It allows writing tests, checking results and automated testing in Ruby.")
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'add-test-unit-to-search-path
-          (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "Rakefile"
-              (("t\\.libs << \"test\"" line)
-               (string-append line "; t.libs << \""
-                              (assoc-ref inputs "ruby-test-unit")
-                              "/lib/ruby/gems/2.2.0/gems/test-unit-"
-                              ,(package-version ruby-test-unit)
-                              "/lib\"")))
-            #t)))))
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
+                    (test-unit-home  (gem-home test-unit
+                                               ,(package-version ruby))))
+               (substitute* "Rakefile"
+                 (("t\\.libs << \"test\"" line)
+                  (string-append line "; t.libs << \""
+                                 test-unit-home
+                                 "/gems/test-unit-"
+                                 ,(package-version ruby-test-unit)
+                                 "/lib\""))))
+             #t)))))
     (native-inputs
      `(("bundler" ,bundler)
        ("ruby-test-unit" ,ruby-test-unit)))
@@ -1274,15 +1277,17 @@ as a base class when writing classes that depend upon
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'add-test-unit-to-search-path
-          (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "Rakefile"
-              (("t\\.libs << \"test\"" line)
-               (string-append line "; t.libs << \""
-                              (assoc-ref inputs "ruby-test-unit")
-                              "/lib/ruby/gems/2.2.0/gems/test-unit-"
-                              ,(package-version ruby-test-unit)
-                              "/lib\"")))
-            #t)))))
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
+                    (test-unit-home  (gem-home test-unit ,(package-version ruby))))
+               (substitute* "Rakefile"
+                 (("t\\.libs << \"test\"" line)
+                  (string-append line "; t.libs << \""
+                                 test-unit-home
+                                 "/gems/test-unit-"
+                                 ,(package-version ruby-test-unit)
+                                 "/lib\""))))
+             #t)))))
     (propagated-inputs
      `(("ruby-blankslate" ,ruby-blankslate)))
     (native-inputs
@@ -1311,13 +1316,15 @@ knowing anything about the constructor.")
        (modify-phases %standard-phases
          (add-after 'unpack 'add-test-unit-to-search-path
           (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "Rakefile"
-              (("t\\.libs << \"test\"" line)
-               (string-append line "; t.libs << \""
-                              (assoc-ref inputs "ruby-test-unit")
-                              "/lib/ruby/gems/2.2.0/gems/test-unit-"
-                              ,(package-version ruby-test-unit)
-                              "/lib\"")))
+            (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
+                   (test-unit-home  (gem-home test-unit ,(package-version ruby))))
+              (substitute* "Rakefile"
+                (("t\\.libs << \"test\"" line)
+                 (string-append line "; t.libs << \""
+                                test-unit-home
+                                "/gems/test-unit-"
+                                ,(package-version ruby-test-unit)
+                                "/lib\""))))
             #t)))))
     (propagated-inputs
      `(("ruby-instantiator" ,ruby-instantiator)
@@ -1381,13 +1388,16 @@ conversion to (X)HTML.")
        (modify-phases %standard-phases
          (add-after 'unpack 'add-test-unit-to-search-path
           (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "Rakefile"
-              (("t\\.libs << 'test'" line)
-               (string-append line "; t.libs << \""
-                              (assoc-ref inputs "ruby-test-unit")
-                              "/lib/ruby/gems/2.2.0/gems/test-unit-"
-                              ,(package-version ruby-test-unit)
-                              "/lib\"")))
+            (let* ((test-unit (assoc-ref inputs "ruby-test-unit"))
+                   (test-unit-home  (gem-home test-unit
+                                             ,(package-version ruby))))
+              (substitute* "Rakefile"
+                (("t\\.libs << 'test'" line)
+                 (string-append line "; t.libs << \""
+                                test-unit-home
+                                "/gems/test-unit-"
+                                ,(package-version ruby-test-unit)
+                                "/lib\""))))
             #t))
          (add-before 'check 'use-latest-redcarpet
           (lambda _
@@ -2047,13 +2057,17 @@ development of Ruby gems.")
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-test-include-path
           (lambda* (#:key inputs #:allow-other-keys)
-            (substitute* "Rakefile"
-              (("Hoe\\.add_include_dirs .*")
-               (string-append "Hoe.add_include_dirs \""
-                              (assoc-ref inputs "ruby-minitest-4")
-                              "/lib/ruby/gems/2.2.0/gems/minitest-"
-                              ,(package-version ruby-minitest-4)
-                              "/lib" "\"")))))
+             (let* ((minitest (assoc-ref inputs "ruby-minitest-4"))
+                    (minitest-home  (gem-home minitest
+                                              ,(package-version ruby))))
+               (substitute* "Rakefile"
+                 (("Hoe\\.add_include_dirs .*")
+                  (string-append "Hoe.add_include_dirs \""
+                                 minitest-home
+                                 "/gems/minitest-"
+                                 ,(package-version ruby-minitest-4)
+                                 "/lib" "\""))))
+             #t))
          (add-before 'check 'fix-test-assumptions
           (lambda _
             ;; The test output includes the file name, so a couple of tests
diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm
index 2685da1..18da438 100644
--- a/guix/build/ruby-build-system.scm
+++ b/guix/build/ruby-build-system.scm
@@ -26,7 +26,8 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
   #:export (%standard-phases
-            ruby-build))
+            ruby-build
+            gem-home))
 
 ;; Commentary:
 ;;
@@ -136,3 +137,13 @@ GEM-FLAGS are passed to the 'gem' invokation, if present."
 (define* (ruby-build #:key inputs (phases %standard-phases)
                      #:allow-other-keys #:rest args)
   (apply gnu:gnu-build #:inputs inputs #:phases phases args))
+
+(define (gem-home store-path ruby-version)
+  "Return a string to the gem home directory in the store given a STORE-PATH
+and the RUBY-VERSION used to build that ruby package"
+  (string-append
+   store-path
+   "/lib/ruby/gems/"
+   (regexp-substitute #f
+                      (string-match "^[0-9]+\\.[0-9]+" ruby-version)
+                      0 ".0")))
-- 
2.6.3


[-- Attachment #5: 0002-gnu-ruby-yard-Disable-failing-test.patch --]
[-- Type: text/x-patch, Size: 1577 bytes --]

From 048036aee522d6a03436bf530d139ec26d8a438e Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Wed, 6 Jan 2016 21:57:44 +1000
Subject: [PATCH 2/5] gnu: ruby-yard: Disable failing test.

* gnu/packages/ruby.scm (ruby-yard)[arguments]: Disable test which fails on
Ruby 2.3.0.
---
 gnu/packages/ruby.scm | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index d3e6dbc..61c6c3c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2776,9 +2776,17 @@ features such as filtering and fine grained logging.")
      `(#:test-target "specs"
        #:phases
        (modify-phases %standard-phases
-         (add-before 'check 'set-HOME
-          ;; $HOME needs to be set to somewhere writeable for tests to run
-          (lambda _ (setenv "HOME" "/tmp") #t)))))
+         (add-before 'check 'set-HOME-and-disable-failing-test
+           (lambda _
+             ;; $HOME needs to be set to somewhere writeable for tests to run
+             (setenv "HOME" "/tmp")
+             ;; Disable tests which fails on Ruby 2.3.  See
+             ;; https://github.com/lsegal/yard/issues/927
+             (substitute* "spec/parser/ruby/ruby_parser_spec.rb"
+               (("comment.type.should == :comment") "")
+               (("comment.docstring_hash_flag.should be_true") "")
+               (("comment.docstring.strip.should == .*") ""))
+             #t)))))
     (native-inputs
      `(("ruby-rspec" ,ruby-rspec-2)
        ("ruby-rack" ,ruby-rack)))
-- 
2.6.3


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #6: 0001-gnu-ruby-power-assert-Update-to-0.2.7.patch --]
[-- Type: text/x-patch; name="0001-gnu-ruby-power-assert-Update-to-0.2.7.patch", Size: 1561 bytes --]

From 3918146b6179f211fb7ef955f74561f9b1460a8b Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Wed, 6 Jan 2016 21:23:15 +1000
Subject: [PATCH 1/5] gnu: ruby-power-assert: Update to 0.2.7.

* gnu/packages/ruby.scm (ruby-power-assert): Update to 0.2.7.
---
 gnu/packages/ruby.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 47ac392..d3e6dbc 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1059,13 +1059,13 @@ using Net::HTTP, supporting reconnection and retry according to RFC 2616.")
 (define-public ruby-power-assert
   (package
     (name "ruby-power-assert")
-    (version "0.2.6")
+    (version "0.2.7")
     (source (origin
               (method url-fetch)
               (uri (rubygems-uri "power_assert" version))
               (sha256
                (base32
-                "0gbj379jhnff8rbb6m3kzdm282szjz1a021xzxa38d1bnswj2jx3"))))
+                "0ka6w71lcan4wgf111xi3pcn9ma9lhakv31jg8w007nwzi0xfjbi"))))
     (build-system ruby-build-system)
     (native-inputs
      `(("bundler" ,bundler)))
-- 
2.6.3


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH] Update Ruby to 2.3.0
  2016-01-10 12:56               ` Ben Woodcroft
@ 2016-01-10 21:14                 ` Ludovic Courtès
  2016-01-11 12:52                   ` Ben Woodcroft
  0 siblings, 1 reply; 23+ messages in thread
From: Ludovic Courtès @ 2016-01-10 21:14 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: Guix-devel

Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:

> From 2f26295b5a163cfc5d37332a501dcba5c40fb956 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <donttrustben@gmail.com>
> Date: Mon, 4 Jan 2016 09:38:42 +1000
> Subject: [PATCH 5/5] gnu: ruby: Update to 2.3.0.
>
> * gnu/packages/ruby.scm (ruby): Update to 2.3.0.
> [arguments]: Remove bundled libffi.  Use parallel tests.
> (ruby-2.2): New variable.

[...]

> +             ;; Remove bundled libffi
> +             (delete-file-recursively
> +              (string-append "ext/fiddle/libffi-3.2.1"))

I should have mentioned it before, but could you move the removal to a
‘snippet’ in the origin?

This is not critical, so if you feel like you won’t have time now, we
can leave that for later.

Otherwise the patch is OK for ‘core-updates’.

> From 551ecbd280eb35cb8e67cedf50e4a93f618cab1e Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <donttrustben@gmail.com>
> Date: Sun, 10 Jan 2016 22:25:45 +1000
> Subject: [PATCH 4/5] gnu: ruby: Use modify-phases.
>
> * gnu/packages/ruby.scm (ruby)[arguments]: Use modify-phases.

OK.

> From 015a0e17be804dd7f68f21cde8a878ff353a4a97 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <donttrustben@gmail.com>
> Date: Fri, 8 Jan 2016 17:29:39 +1000
> Subject: [PATCH 3/5] ruby: Abstract out path to GEM_HOME.
>
> Previously paths to the GEM_HOME of certain Ruby packages were
> hard-coded, so packages failed to build when Ruby was updated to 2.3.0.
>
> * guix/build/ruby-build-system.scm (gem-home): New procedure.
> * gnu/packages/ruby.scm (ruby-metaclass, ruby-instantiator,
> ruby-introspection, ruby-mocha, ruby-minitest-tu-shim): Use it.

LGTM.

However, ultimately, we should pass the Ruby version as a keyword
parameter on the build side or have a build-side procedure akin to
‘get-python-version’ in python-build-system.scm (I’d prefer the former.)

That way, phases could query the version number of the Ruby that’s
actually used instead of using the version number of whatever variant
the global ‘ruby’ variable refers to.  This would allow users to simply
change the “ruby” input of a package and have it automatically work with
the new package.

Does that make sense?

This can always be done after the ‘core-updates’ merge, no rush.

> From 048036aee522d6a03436bf530d139ec26d8a438e Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <donttrustben@gmail.com>
> Date: Wed, 6 Jan 2016 21:57:44 +1000
> Subject: [PATCH 2/5] gnu: ruby-yard: Disable failing test.
>
> * gnu/packages/ruby.scm (ruby-yard)[arguments]: Disable test which fails on
> Ruby 2.3.0.

OK.

> From 3918146b6179f211fb7ef955f74561f9b1460a8b Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <donttrustben@gmail.com>
> Date: Wed, 6 Jan 2016 21:23:15 +1000
> Subject: [PATCH 1/5] gnu: ruby-power-assert: Update to 0.2.7.
>
> * gnu/packages/ruby.scm (ruby-power-assert): Update to 0.2.7.

OK.

Thank you!

Ludo’.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH] Update Ruby to 2.3.0
  2016-01-10 21:14                 ` Ludovic Courtès
@ 2016-01-11 12:52                   ` Ben Woodcroft
  0 siblings, 0 replies; 23+ messages in thread
From: Ben Woodcroft @ 2016-01-11 12:52 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel



On 11/01/16 07:14, Ludovic Courtès wrote:
> Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:
>
>>  From 2f26295b5a163cfc5d37332a501dcba5c40fb956 Mon Sep 17 00:00:00 2001
>> From: Ben Woodcroft <donttrustben@gmail.com>
>> Date: Mon, 4 Jan 2016 09:38:42 +1000
>> Subject: [PATCH 5/5] gnu: ruby: Update to 2.3.0.
>>
>> * gnu/packages/ruby.scm (ruby): Update to 2.3.0.
>> [arguments]: Remove bundled libffi.  Use parallel tests.
>> (ruby-2.2): New variable.
> [...]
>
>> +             ;; Remove bundled libffi
>> +             (delete-file-recursively
>> +              (string-append "ext/fiddle/libffi-3.2.1"))
> I should have mentioned it before, but could you move the removal to a
> ‘snippet’ in the origin?
All pushed to core-updates with a snippet and minor formatting changes.
>>  From 015a0e17be804dd7f68f21cde8a878ff353a4a97 Mon Sep 17 00:00:00 2001
>> From: Ben Woodcroft <donttrustben@gmail.com>
>> Date: Fri, 8 Jan 2016 17:29:39 +1000
>> Subject: [PATCH 3/5] ruby: Abstract out path to GEM_HOME.
>>
>> Previously paths to the GEM_HOME of certain Ruby packages were
>> hard-coded, so packages failed to build when Ruby was updated to 2.3.0.
>>
>> * guix/build/ruby-build-system.scm (gem-home): New procedure.
>> * gnu/packages/ruby.scm (ruby-metaclass, ruby-instantiator,
>> ruby-introspection, ruby-mocha, ruby-minitest-tu-shim): Use it.
> LGTM.
>
> However, ultimately, we should pass the Ruby version as a keyword
> parameter on the build side or have a build-side procedure akin to
> ‘get-python-version’ in python-build-system.scm (I’d prefer the former.)
>
> That way, phases could query the version number of the Ruby that’s
> actually used instead of using the version number of whatever variant
> the global ‘ruby’ variable refers to.  This would allow users to simply
> change the “ruby” input of a package and have it automatically work with
> the new package.
>
> Does that make sense?
>
> This can always be done after the ‘core-updates’ merge, no rush.
OK then. I reckon we should provide a procedure to get to the lib/ 
directory as well, based on the upstream name property too. Then we can 
use it for the require test too.

Thanks,
ben

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-03 14:35 Freezing core-updates soon Ludovic Courtès
                   ` (2 preceding siblings ...)
  2016-01-04 11:02 ` Freezing core-updates soon Efraim Flashner
@ 2016-01-13 17:48 ` Ludovic Courtès
  2016-01-14 20:10   ` Mark H Weaver
  2016-01-19 10:34   ` util-linux test failure Ludovic Courtès
  3 siblings, 2 replies; 23+ messages in thread
From: Ludovic Courtès @ 2016-01-13 17:48 UTC (permalink / raw)
  To: Guix-devel

Hydra will start building all of ‘core-updates’ soon.  Hopefully we can
merge in a few days.

Ludo’.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-13 17:48 ` Ludovic Courtès
@ 2016-01-14 20:10   ` Mark H Weaver
  2016-01-15 16:13     ` Ludovic Courtès
  2016-01-19 10:34   ` util-linux test failure Ludovic Courtès
  1 sibling, 1 reply; 23+ messages in thread
From: Mark H Weaver @ 2016-01-14 20:10 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel

On core-updates, automake failed its test suite on both x86_64 and i686,
leading to over 2000 dependency failures.

  http://hydra.gnu.org/build/943102
  http://hydra.gnu.org/build/944447

      Mark

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Freezing core-updates soon
  2016-01-14 20:10   ` Mark H Weaver
@ 2016-01-15 16:13     ` Ludovic Courtès
  0 siblings, 0 replies; 23+ messages in thread
From: Ludovic Courtès @ 2016-01-15 16:13 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: Guix-devel

Mark H Weaver <mhw@netris.org> skribis:

> On core-updates, automake failed its test suite on both x86_64 and i686,
> leading to over 2000 dependency failures.
>
>   http://hydra.gnu.org/build/943102
>   http://hydra.gnu.org/build/944447

Fixed in 89b4823, thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* util-linux test failure
  2016-01-13 17:48 ` Ludovic Courtès
  2016-01-14 20:10   ` Mark H Weaver
@ 2016-01-19 10:34   ` Ludovic Courtès
  1 sibling, 0 replies; 23+ messages in thread
From: Ludovic Courtès @ 2016-01-19 10:34 UTC (permalink / raw)
  To: Guix-devel

[-- Attachment #1: Type: text/plain, Size: 2519 bytes --]

Hi!

util-linux had two test failures on i686.  From
<http://hydra.gnu.org/build/949334/nixlog/2/raw>:

--8<---------------cut here---------------start------------->8---
        fdisk: invalid input tests            ...  FAILED (fdisk/oddinput)

[...]

         misc: rev                            ...  OK
         misc: setarch                        ...  FAILED (misc/setarch)

[...]

---------------------------------------------------------------------
  2 tests of 170 FAILED
---------------------------------------------------------------------
Makefile:12013: recipe for target 'check-local-tests' failed
make[3]: *** [check-local-tests] Error 1
make[3]: Leaving directory '/tmp/guix-build-util-linux-2.27.drv-0/util-linux-2.27'
--8<---------------cut here---------------end--------------->8---

On my laptop, commit v0.9.0-1181-gafe9f40, I’ve successfully run:

  ./pre-inst-env guix build util-linux -K -s i686-linux --rounds=3

which leads:

  /gnu/store/l1v12p64hv4373m1z7a16ar9s5cw1lwi-util-linux-2.27
  SHA256: 18axyw2qhr7sq1jd15r6l02nkx9rijzws0xqlcl07d95v8xwbwj7

However, I’ve noticed that these tests consume quite few tens of MB in
disk images:

--8<---------------cut here---------------start------------->8---
./ts/libfdisk/gpt:27:TEST_IMAGE_NAME=$(ts_image_init 10)
./ts/fdisk/oddinput:28:TEST_IMAGE_NAME=$(ts_image_init 10)
./ts/fdisk/bsd:89:TEST_IMAGE_NAME=$(ts_image_init 10)
./ts/fdisk/gpt:44:TEST_IMAGE_NAME=$(ts_image_init 10)
./ts/fdisk/mbr-dos-mode:52:TEST_IMAGE_NAME=$(ts_image_init 10)
./ts/fdisk/mbr-nondos-mode:48:TEST_IMAGE_NAME=$(ts_image_init 20)	# 20 MiB
./ts/fdisk/id:29:TEST_IMAGE_NAME=$(ts_image_init 10)
./ts/fdisk/mbr-sort:50:TEST_IMAGE_NAME=$(ts_image_init 20)	# 20 MiB
./ts/fdisk/sunlabel:40:TEST_IMAGE_NAME=$(ts_image_init 10)
./ts/libmount/context-py:140:img=$(ts_image_init)
./ts/libmount/context:138:img=$(ts_image_init)
./ts/losetup/losetup:42:BACKFILE=$(ts_image_init 10)
./ts/mount/regfile:19:IMAGE=$(ts_image_init)
--8<---------------cut here---------------end--------------->8---

So the fdisk test failure above could well be due to that.

The ‘setarch’ failure is less clear.  It could be due to an old kernel
that does not support this personality(2) call on the host machine.

I’ve restarted the build from hydra.gnu.org, where it was scheduled on
hydra.gnunet.org, and it passed this time (with the same content hash as
above.)

So we can keep building ‘core-updates’.  :-)

Ludo’.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2016-01-19 10:37 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-03 14:35 Freezing core-updates soon Ludovic Courtès
2016-01-03 16:25 ` Ricardo Wurmus
2016-01-03 22:27   ` Ludovic Courtès
2016-01-04 14:20     ` Mark H Weaver
2016-01-04 21:16       ` Mark H Weaver
2016-01-04 22:49         ` Ludovic Courtès
2016-01-04  0:59 ` Thompson, David
2016-01-04  1:17   ` Ben Woodcroft
2016-01-04 10:46     ` [PATCH] Update Ruby to 2.3.0 (was Re: Freezing core-updates soon) Ben Woodcroft
2016-01-05 22:24       ` Ludovic Courtès
2016-01-08 11:16         ` Ben Woodcroft
2016-01-08 16:52           ` [PATCH] Update Ruby to 2.3.0 Ludovic Courtès
2016-01-10 12:53             ` Ben Woodcroft
2016-01-10 12:56               ` Ben Woodcroft
2016-01-10 21:14                 ` Ludovic Courtès
2016-01-11 12:52                   ` Ben Woodcroft
2016-01-04 11:02 ` Freezing core-updates soon Efraim Flashner
2016-01-04 15:13   ` Ludovic Courtès
2016-01-04 15:21     ` Efraim Flashner
2016-01-13 17:48 ` Ludovic Courtès
2016-01-14 20:10   ` Mark H Weaver
2016-01-15 16:13     ` Ludovic Courtès
2016-01-19 10:34   ` util-linux test failure Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).