guix-patches
[Top][All Lists]
Advanced

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

[bug#27438] [PATCH] Specify native search path for all ruby packages


From: Ben Woodcroft
Subject: [bug#27438] [PATCH] Specify native search path for all ruby packages
Date: Sun, 6 Aug 2017 17:17:41 +1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1

Hi,

[..]
In general, except for some special circumstances, we don't support
old versions of software. To fix the issue that you are
encountering properly with nokogiri probably requires new package
definitions using "package-with-ruby-2.3" or similar to be made, I
suppose. Ludo did some nice work making this easier (see
https://lists.gnu.org/archive/html/guix-patches/2017-04/msg00126.html),
but I worry in general about the resources required to support
older Ruby versions. WDYT?
I'm not aware of any particular problems if you are working with the
package definitions in Guile, as it should be possible to make them
use the single ruby version that you want.

With the guix environment command I posted:

    guix environment --pure --ad-hoc ruby-nokogiri address@hidden -- ruby
-e "puts require 'nokogiri'"

It would be ideal if there was some way of telling guix environment
to rewrite the package definitions of all packages to use address@hidden
in place of whatever ruby they might be using.
Is "package-mapping" sufficient?
I don't think so. The ruby used is in the case of the ruby-build-system
is an argument to the build system, so you need to traverse part of the
dependency graph, altering the arguments of packages using the
ruby-build-system.

Or, perhaps do the transformation at a lower level abstraction than the
package record...
For most compiled gems, I think it should be possible to write some procedure so that this would provide you with what you want:

guix environment --ad-hoc address@hidden --environment='(package-with-explicit-ruby ruby-2.1 ruby-nokogiri)'

For this specific case though, ruby-2.1 might not be the best example, since it is explicitly not supported any more.
If all Ruby dependencies build with this change, then the change
seems reasonable to me, details aside.
Ok, does anyone know a good process for testing if lots of packages
build? I think I've heard of Hydra building branches?
I believe we can go by the old standby "guix refresh -l ruby", so 659 packages are rebuilt. Given this it would be appropriate for the staging branch, due to be merged after core-updates.

ben





reply via email to

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