[Top][All Lists]

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

[bug#27438] [PATCH] guix: build: ruby-build-system: Install to the vendo

From: Christopher Baines
Subject: [bug#27438] [PATCH] guix: build: ruby-build-system: Install to the vendor directory
Date: Sun, 17 Dec 2017 14:19:37 +0000
User-agent: mu4e 0.9.18; emacs 25.3.1


It's been a while since I looked at this, but I think it's still

As a reminder, currently the search paths for the Ruby packages in Guix
are a bit off [1], which makes it difficult to use Ruby gems with
different versions of Ruby.

Rubygems by default installs gems to directories specific to the version
of Ruby, and this can be helpful when managing multiple versions of Ruby
and different sets of gem packages in a shared directory, but with Guix,
this isn't necessary, as the store can be used.

Ruby/Rubygems supports installing gems in to a vendor directory, which
is for gems installed by the package system [2]. While Guix blurs the
lines between the "package system" and the "user", using this vendor
directory might come in useful.

I've attached an updated patch, and successfully built every Ruby
package [3], as well as all of the packages that were changed in the
patch. The only failure was ruby-pg, which failed to build before this

Ideally when using specific versions of ruby, any gems that need to be
build with that version of ruby, would be. While this change doesn't do
that, it does simplify the search paths of ruby packages and the
packages for ruby gems.

Reading the bug report again, I think there was nearly consensus about
merging this, but I wanted to check if anyone has any comments or
experience with Ruby/Rubygems before merging this?



scheme@(guile-user)> (use-modules (gnu packages) (guix packages) (guix 
search-paths) (ice-9 match))
scheme@(guile-user)> (map (lambda (ruby) (cons (package-version ruby) (match 
(package-native-search-paths ruby) (() #f) ((($ <search-path-specification> _ 
files)) files)))) (find-packages-by-name "ruby"))
$1 = (("2.4.3" "lib/ruby/gems/2.4.0") ("2.4.2" "lib/ruby/gems/2.4.0") ("2.3.6" 
"lib/ruby/gems/2.4.0") ("2.2.9" "lib/ruby/gems/2.4.0") ("2.1.10" 
"lib/ruby/gems/2.1.0") ("1.8.7-p374" . #f))


3: guix build --keep-going $(guix package -s ruby- | recsel -P name | tr '\n' ' 

Attachment: 0001-guix-build-ruby-build-system-Install-to-the-vendor-d.patch
Description: [PATCH] guix: build: ruby-build-system: Install to the vendor directory

Attachment: signature.asc
Description: PGP signature

reply via email to

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