[PATCH] Wrap bin files in the ruby build system.

  • Done
  • quality assurance status badge
Details
3 participants
  • Ben Woodcroft
  • Ludovic Courtès
  • Christopher Baines
Owner
unassigned
Submitted by
Christopher Baines
Severity
normal

Debbugs page

Christopher Baines wrote 7 years ago
(address . guix-patches@gnu.org)
20171010084452.036b3052@cbaines.net
This is a bit experimental. There is some description of the motivation
behind this approach, as well as the downsides in the commit messages.

I don't know how to wrap binaries with the GEM_PATH, but somehow
excluding inputs specified as native-inputs, so I'd be very interested
if anyone has ideas about this.

Christopher Baines (3):
ruby-build-system: Add wrap-ruby-program.
ruby-build-system: Add a new wrap phase.
gnu: Remove redundant wrapping from packages using ruby-build-system.

gnu/packages/databases.scm | 13 +---
gnu/packages/ruby.scm | 18 +-----
guix/build/ruby-build-system.scm | 131 ++++++++++++++++++++++++++++++++++++++-
3 files changed, 133 insertions(+), 29 deletions(-)
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlncenRfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9Xc28Q/+J7ybER59IzVfKI1dB5zI9N+mb4SdxtEUxJFRFIccrMIVWxRFdBk04/bN
Ou2lO1h7i7EGa3vZKwNfyAvWYoMLxCzLQsBv5EaJ3gBJTXl+1/HmOoYlbFet8lMp
puUHLohIQNwA/Fgq+Hnk1gwL8zJmvH9kVD+3tAsLbVI0CmCvWH1fNFh5B7CosQCi
PLIBprV1Sxr+1a8G8Xh7jL15oxUmC8O1t3ol2y+gOrbgwVogE+UFJtmPVM42gXxH
LK1oeb/1//pSC7Frp17f6VmFf9SmZRr+rdVk82lgrQ89pyhNtgV5ERFK+9jMhdVg
az4SvhoXjGnHZRxawVfc5t+85drMHKTCOIBtb4vZ2BlHSMf5Mx1wMDK0eww2w926
6REIUE0HADZVOI+cNevc7YJEqGPcCT/N6N31ox8rnGIQWKDoX5HF6aVRsg+QSKvh
4HSKyzgXcEGAnZIxRua49SnBxyPmxauoR30hc4dOvXLxWzDSLWXtFNiJ69bbEx0L
Wgm265CmRnFIH0EMB1UNhP+dqYhWQalRRvBqLaCJGshXx83HZammlSES/xr3SUBi
Sy8rzIxYqYIAa7Ji5lPhrzBpFwnJXBc1ofqy4rvXosStarr2ugjfwsuETepKIEEW
F61JEhXQ5gAido3CkpyuQ8e1Yn/iXufAmZ1OFVIx+CUdtuYP8oQ=
=xJyy
-----END PGP SIGNATURE-----


Christopher Baines wrote 7 years ago
[PATCH 3/3] gnu: Remove redundant wrapping from packages using ruby-build-system.
(address . 28773@debbugs.gnu.org)
20171010074705.5676-3-mail@cbaines.net
Now that the build system does wrapping automatically, it can be removed from
the packages that do it manually.

* gnu/packages/databases.scm (es-dump-restore)[arguments]: Remove #:phases.
* gnu/packages/ruby.scm (ruby-redcloth)[arguments]: Remove #:phases.
(ruby-httpclient)[arguments]: Remove 'wrap-bin-httpclient from the modified
phases.
---
gnu/packages/databases.scm | 13 +------------
gnu/packages/ruby.scm | 18 ++----------------
2 files changed, 3 insertions(+), 28 deletions(-)

Toggle diff (62 lines)
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 62f940e90..69bb9fd7d 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -273,18 +273,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
"020yk7f1hw48clmf5501z3xv9shsdchyymcv0y2cci2c1xvr1mim"))))
(build-system ruby-build-system)
(arguments
- '(#:tests? #f ;; No testsuite.
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'wrap-bin-es_dump_restore
- (lambda* (#:key outputs #:allow-other-keys)
- (wrap-program (string-append (assoc-ref outputs "out")
- "/bin/es_dump_restore")
- `("GEM_PATH" ":" prefix (,(string-append
- (getenv "GEM_PATH")
- ":"
- (getenv "GEM_HOME")))))
- #t)))))
+ '(#:tests? #f)) ;; No testsuite.
(propagated-inputs
`(("ruby-httpclient" ,ruby-httpclient)
("ruby-multi-json" ,ruby-multi-json)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index f2333dbcb..83e106d3c 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -2896,15 +2896,7 @@ alternative to Marshal for Object serialization. ")
;; existing gemspec.
(replace 'build
(lambda _
- (zero? (system* "gem" "build" "redcloth.gemspec"))))
- ;; Make sure that the "redcloth" executable finds required Ruby
- ;; libraries.
- (add-after 'install 'wrap-bin-redcloth
- (lambda* (#:key outputs #:allow-other-keys)
- (wrap-program (string-append (assoc-ref outputs "out")
- "/bin/redcloth")
- `("GEM_HOME" ":" prefix (,(getenv "GEM_HOME"))))
- #t)))))
+ (zero? (system* "gem" "build" "redcloth.gemspec")))))))
(native-inputs
`(("bundler" ,bundler)
("ruby-diff-lcs" ,ruby-diff-lcs)
@@ -3752,13 +3744,7 @@ It has built-in support for the legacy @code{cookies.txt} and
(system* "ruby"
"-Ilib"
"test/runner.rb"))
- #t)))
- (add-after 'install 'wrap-bin-httpclient
- (lambda* (#:key outputs #:allow-other-keys)
- (wrap-program (string-append (assoc-ref outputs "out")
- "/bin/httpclient")
- `("GEM_HOME" ":" prefix (,(getenv "GEM_HOME"))))
- #t)))))
+ #t))))))
(native-inputs
`(("ruby-rack" ,ruby-rack)))
(synopsis
--
2.14.2
Christopher Baines wrote 7 years ago
[PATCH 2/3] ruby-build-system: Add a new wrap phase.
(address . 28773@debbugs.gnu.org)
20171010074705.5676-2-mail@cbaines.net
Wrap files in bin/ and sbin/ with the location of the gem itself (GEM_HOME)
and the location of any other gems in use (GEM_PATH). This ensures that the
bin files will run with the right environment when executed.

It does however mean that native-inputs will also get wrapped up in any
binaries, which is not good, as it increases the size of the closure, and
risks this code being used at runtime.

* guix/build/ruby-build-system.scm (wrap): New procedure.
(%standard-phases): Add the wrap phase.
---
guix/build/ruby-build-system.scm | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)

Toggle diff (55 lines)
diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm
index af193b9ce..b6f0fc941 100644
--- a/guix/build/ruby-build-system.scm
+++ b/guix/build/ruby-build-system.scm
@@ -21,6 +21,7 @@
(define-module (guix build ruby-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
#:use-module (guix build utils)
+ #:use-module (ice-9 ftw)
#:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:use-module (ice-9 regex)
@@ -269,6 +270,30 @@ extended with definitions for VARS."
(chmod prog-tmp #o755)
(rename-file prog-tmp prog))))
+(define* (wrap #:key inputs outputs #:allow-other-keys)
+ (define (list-of-files dir)
+ (map (cut string-append dir "/" <>)
+ (or (scandir dir (lambda (f)
+ (let ((s (stat (string-append dir "/" f))))
+ (eq? 'regular (stat:type s)))))
+ '())))
+
+ (define bindirs
+ (append-map (match-lambda
+ ((_ . dir)
+ (list (string-append dir "/bin")
+ (string-append dir "/sbin"))))
+ outputs))
+
+ (let* ((out (assoc-ref outputs "out"))
+ (var `("GEM_PATH" prefix
+ (,(getenv "GEM_HOME") ,(getenv "GEM_PATH")))))
+ (for-each (lambda (dir)
+ (let ((files (list-of-files dir)))
+ (for-each (cut wrap-ruby-program <> var)
+ files)))
+ bindirs)))
+
(define (log-file-deletion file)
(display (string-append "deleting '" file "' for reproducibility\n")))
@@ -280,7 +305,8 @@ extended with definitions for VARS."
(add-after 'extract-gemspec 'replace-git-ls-files replace-git-ls-files)
(replace 'build build)
(replace 'check check)
- (replace 'install install)))
+ (replace 'install install)
+ (add-after 'install 'wrap wrap)))
(define* (ruby-build #:key inputs (phases %standard-phases)
#:allow-other-keys #:rest args)
--
2.14.2
Christopher Baines wrote 7 years ago
[PATCH 1/3] ruby-build-system: Add wrap-ruby-program.
(address . 28773@debbugs.gnu.org)
20171010074705.5676-1-mail@cbaines.net
A modified copy of wrap-program from (guix build utils). The wrap-program
procedure doesn't work well for Ruby scripts, as it breaks using the -S flag
with ruby to execute the script, as when -S is passed to ruby, it expects the
script on the PATH to use ruby in the shebang, and not bash.

Therefore, to wrap the program, but keep the shebang as ruby, wrap it with a
ruby script instead.

wrap-ruby-program uses .real/foo rather than .foo-real, as this might be
neater. This procedure also includes a call to Gem.clear_paths to make it
possible to set the GEM_PATH through this method, and for it to take effect.

* gnu/build/ruby-build-system.scm (wrap-ruby-program): New procedure.
---
guix/build/ruby-build-system.scm | 103 +++++++++++++++++++++++++++++++++++++++
1 file changed, 103 insertions(+)

Toggle diff (116 lines)
diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm
index c2d276627..af193b9ce 100644
--- a/guix/build/ruby-build-system.scm
+++ b/guix/build/ruby-build-system.scm
@@ -166,6 +166,109 @@ GEM-FLAGS are passed to the 'gem' invokation, if present."
"Makefile")))))
#t))))
+(define* (wrap-ruby-program prog #:key (gem-clear-paths #t) #:rest vars)
+ "Make a wrapper for PROG. VARS should look like this:
+
+ '(VARIABLE DELIMITER POSITION LIST-OF-DIRECTORIES)
+
+where DELIMITER is optional. ':' will be used if DELIMITER is not given.
+
+For example, this command:
+
+ (wrap-ruby-program \"foo\"
+ '(\"PATH\" \":\" = (\"/gnu/.../bar/bin\"))
+ '(\"CERT_PATH\" suffix (\"/gnu/.../baz/certs\"
+ \"/qux/certs\")))
+
+will copy 'foo' to '.real/fool' and create the file 'foo' with the following
+contents:
+
+ #!location/of/bin/ruby
+ ENV['PATH'] = \"/gnu/.../bar/bin\"
+ ENV['CERT_PATH'] = (ENV.key?('CERT_PATH') ? (ENV['CERT_PATH'] + ':') : '') + '/gnu/.../baz/certs:/qux/certs'
+ load location/of/.real/foo
+
+This is useful for scripts that expect particular programs to be in $PATH, for
+programs that expect particular gems to be in the GEM_PATH.
+
+This is preferable to wrap-program, which uses a bash script, as this prevents
+ruby scripts from being executed with @command{ruby -S ...}.
+
+If PROG has previously been wrapped by 'wrap-ruby-program', the wrapper is
+extended with definitions for VARS."
+ (define wrapped-file
+ (string-append (dirname prog) "/.real/" (basename prog)))
+
+ (define already-wrapped?
+ (file-exists? wrapped-file))
+
+ (define (last-line port)
+ ;; Return the last line read from PORT and leave PORT's cursor right
+ ;; before it.
+ (let loop ((previous-line-offset 0)
+ (previous-line "")
+ (position (seek port 0 SEEK_CUR)))
+ (match (read-line port 'concat)
+ ((? eof-object?)
+ (seek port previous-line-offset SEEK_SET)
+ previous-line)
+ ((? string? line)
+ (loop position line (+ (string-length line) position))))))
+
+ (define (export-variable lst)
+ ;; Return a string that exports an environment variable.
+ (match lst
+ ((var sep '= rest)
+ (format #f "ENV['~a'] = '~a'"
+ var (string-join rest sep)))
+ ((var sep 'prefix rest)
+ (format #f "ENV['~a'] = '~a' + (ENV.key?('~a') ? ('~a' + ENV['~a']) : '')"
+ var (string-join rest sep) var sep var))
+ ((var sep 'suffix rest)
+ (format #f "ENV['~a'] = (ENV.key?('~a') ? (ENV['~a'] + '~a') : '') + '~a'"
+ var var var sep (string-join rest sep)))
+ ((var '= rest)
+ (format #f "ENV['~a'] = '~a'"
+ var (string-join rest ":")))
+ ((var 'prefix rest)
+ (format #f "ENV['~a'] = '~a' + (ENV.key?('~a') ? (':' + ENV['~a']) : '')"
+ var (string-join rest ":") var var))
+ ((var 'suffix rest)
+ (format #f "ENV['~a'] = (ENV.key?('~a') ? (ENV['~a'] + ':') : '') + '~a'"
+ var var var (string-join rest ":")))))
+
+ (if already-wrapped?
+
+ ;; PROG is already a wrapper: add the new "export VAR=VALUE" lines just
+ ;; before the last line.
+ (let* ((port (open-file prog "r+"))
+ (last (last-line port)))
+ (for-each (lambda (var)
+ (display (export-variable var) port)
+ (newline port))
+ vars)
+ (display last port)
+ (close-port port))
+
+ ;; PROG is not wrapped yet: create a shell script that sets VARS.
+ (let ((prog-tmp (string-append wrapped-file "-tmp")))
+ (mkdir-p (dirname prog-tmp))
+ (link prog wrapped-file)
+
+ (call-with-output-file prog-tmp
+ (lambda (port)
+ (format port
+ "#!~a~%~a~%~a~%load '~a'~%"
+ (which "ruby")
+ (string-join (map export-variable vars) "\n")
+ ;; This ensures that if the GEM_PATH has been changed,
+ ;; then that change will be noticed.
+ (if gem-clear-paths "Gem.clear_paths" "")
+ (canonicalize-path wrapped-file))))
+
+ (chmod prog-tmp #o755)
+ (rename-file prog-tmp prog))))
+
(define (log-file-deletion file)
(display (string-append "deleting '" file "' for reproducibility\n")))
--
2.14.2
Ludovic Courtès wrote 7 years ago
Re: [bug#28773] [PATCH] Wrap bin files in the ruby build system.
(name . Christopher Baines)(address . mail@cbaines.net)
877evvdycy.fsf@gnu.org
Hi Chris,

Christopher Baines <mail@cbaines.net> skribis:

Toggle quote (12 lines)
> This is a bit experimental. There is some description of the motivation
> behind this approach, as well as the downsides in the commit messages.
>
> I don't know how to wrap binaries with the GEM_PATH, but somehow
> excluding inputs specified as native-inputs, so I'd be very interested
> if anyone has ideas about this.
>
> Christopher Baines (3):
> ruby-build-system: Add wrap-ruby-program.
> ruby-build-system: Add a new wrap phase.
> gnu: Remove redundant wrapping from packages using ruby-build-system.

Cc’ing Ben who is another Serious Ruby User I think. :-)

Ludo’.
Christopher Baines wrote 7 years ago
control message for bug #28885
(address . control@debbugs.gnu.org)
87po9lvvoq.fsf@cbaines.net
block 28885 by 28773
Ben Woodcroft wrote 7 years ago
Re: [bug#28773] [PATCH] Wrap bin files in the ruby build system.
(address . 28773@debbugs.gnu.org)
b58e1cf7-43cf-aa38-a576-83becc342e0e@uq.edu.au
Hi,


On 16/10/17 23:19, Ludovic Courtès wrote:
Toggle quote (17 lines)
> Hi Chris,
>
> Christopher Baines <mail@cbaines.net> skribis:
>
>> This is a bit experimental. There is some description of the motivation
>> behind this approach, as well as the downsides in the commit messages.
>>
>> I don't know how to wrap binaries with the GEM_PATH, but somehow
>> excluding inputs specified as native-inputs, so I'd be very interested
>> if anyone has ideas about this.
>>
>> Christopher Baines (3):
>> ruby-build-system: Add wrap-ruby-program.
>> ruby-build-system: Add a new wrap phase.
>> gnu: Remove redundant wrapping from packages using ruby-build-system.
> Cc’ing Ben who is another Serious Ruby User I think. :-)

Maybe sometimes. I'll try to get a review back to you in the next week
or so.
ben
Ludovic Courtès wrote 7 years ago
(name . Ben Woodcroft)(address . b.woodcroft@uq.edu.au)
87k1wom5j9.fsf@gnu.org
Hello!

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

Toggle quote (21 lines)
> On 16/10/17 23:19, Ludovic Courtès wrote:
>> Hi Chris,
>>
>> Christopher Baines <mail@cbaines.net> skribis:
>>
>>> This is a bit experimental. There is some description of the motivation
>>> behind this approach, as well as the downsides in the commit messages.
>>>
>>> I don't know how to wrap binaries with the GEM_PATH, but somehow
>>> excluding inputs specified as native-inputs, so I'd be very interested
>>> if anyone has ideas about this.
>>>
>>> Christopher Baines (3):
>>> ruby-build-system: Add wrap-ruby-program.
>>> ruby-build-system: Add a new wrap phase.
>>> gnu: Remove redundant wrapping from packages using ruby-build-system.
>> Cc’ing Ben who is another Serious Ruby User I think. :-)
>
> Maybe sometimes. I'll try to get a review back to you in the next week
> or so.

Ahem. :-)

Chris, if you’re confident, I’d say you can go ahead. It does sound
like an improvement so it’d be sad to lose it.

Ludo’.
Ben Woodcroft wrote 7 years ago
(name . Ludovic Courtès)(address . ludo@gnu.org)
1b7ecb41-7ba7-2fa9-2e7d-c2e6cc008314@uq.edu.au
Hello!


On 12/01/18 07:47, Ludovic Courtès wrote:
Toggle quote (27 lines)
> Hello!
>
> Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:
>
>> On 16/10/17 23:19, Ludovic Courtès wrote:
>>> Hi Chris,
>>>
>>> Christopher Baines <mail@cbaines.net> skribis:
>>>
>>>> This is a bit experimental. There is some description of the motivation
>>>> behind this approach, as well as the downsides in the commit messages.
>>>>
>>>> I don't know how to wrap binaries with the GEM_PATH, but somehow
>>>> excluding inputs specified as native-inputs, so I'd be very interested
>>>> if anyone has ideas about this.
>>>>
>>>> Christopher Baines (3):
>>>> ruby-build-system: Add wrap-ruby-program.
>>>> ruby-build-system: Add a new wrap phase.
>>>> gnu: Remove redundant wrapping from packages using ruby-build-system.
>>> Cc’ing Ben who is another Serious Ruby User I think. :-)
>> Maybe sometimes. I'll try to get a review back to you in the next week
>> or so.
> Ahem. :-)
>
> Chris, if you’re confident, I’d say you can go ahead. It does sound
> like an improvement so it’d be sad to lose it.
Ah yes, my apologies. Yes, this series LGTM, and it worked fine when I
applied it in local packages too.

Thanks.
ben
Christopher Baines wrote 7 years ago
(name . Ludovic Courtès)(address . ludo@gnu.org)
87h8rot71k.fsf@cbaines.net
Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (30 lines)
> Hello!
>
> Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:
>
>> On 16/10/17 23:19, Ludovic Courtès wrote:
>>> Hi Chris,
>>>
>>> Christopher Baines <mail@cbaines.net> skribis:
>>>
>>>> This is a bit experimental. There is some description of the motivation
>>>> behind this approach, as well as the downsides in the commit messages.
>>>>
>>>> I don't know how to wrap binaries with the GEM_PATH, but somehow
>>>> excluding inputs specified as native-inputs, so I'd be very interested
>>>> if anyone has ideas about this.
>>>>
>>>> Christopher Baines (3):
>>>> ruby-build-system: Add wrap-ruby-program.
>>>> ruby-build-system: Add a new wrap phase.
>>>> gnu: Remove redundant wrapping from packages using ruby-build-system.
>>> Cc’ing Ben who is another Serious Ruby User I think. :-)
>>
>> Maybe sometimes. I'll try to get a review back to you in the next week
>> or so.
>
> Ahem. :-)
>
> Chris, if you’re confident, I’d say you can go ahead. It does sound
> like an improvement so it’d be sad to lose it.

Great, I've now pushed this, along with the other ruby build system
change.
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlpb2BdfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9XfNVg//Sk6nw5J+rAEq4Z2mPg2MF/1FrrXp+Jzk2/yRjPvO/FdQCI5ly6Qi+azN
G4f+yV/uQtEpZj1XpREBwpOvIAln8GcWmr/X+G6mQPj0rymlEaFazH6H+7q22neC
ot/8q/PAkcRLtx8qaDn/IV2681Vo6wSEqgw68V2+VXt2hDJBQMkEwSZDx/jKfx0f
AYXfIHaoa3qiFO6xaGPZYnlyAFLBGqxgOFTelJIcXK+sn2E5fWkePuKAkPzPDedZ
jYafB6SZDBv/HqWGWKk+qIHNJvCCxQ7UW+Z7GwDfPX71vBZ7o3nLan17fskI4J1b
/8wZuLoE8W3VOYsRQl9DD8661GNiEipG8Ikulsfpq8bl9/6wC0ZNVEprofXZFT2f
RjevR5JdhXtOeglrK8ylQxKlMSwpr4y5mIl3flpotHPvh4sA1E0qnhLzspGO99J3
nHgBbYhJOjN9Y9qi5WUap+y1oE8OGfJDfKe2+AeJRUtHQSicEZEiBIljy4y18qK3
QeLCZjnLftN32mqgmIvlPyTjV7LaKWFKNuqOMCqLqGjuIxo87jK8LLLmvcBa0ebr
i9E9ZE0VJ8mddiHmICSpDvypgmASNQwDsTLfA8LqKIUNGTO6L8+cRr5pdyLuhIgW
7Rz26lkG8WTv0qqD+0lUb3f91qC3NvKzcB9RJCHMoI1wVHPnWts=
=g7of
-----END PGP SIGNATURE-----

Christopher Baines wrote 7 years ago
(name . Ben Woodcroft)(address . b.woodcroft@uq.edu.au)
87fu78t70k.fsf@cbaines.net
Ben Woodcroft <b.woodcroft@uq.edu.au> writes:

Toggle quote (34 lines)
> Hello!
>
>
> On 12/01/18 07:47, Ludovic Courtès wrote:
>> Hello!
>>
>> Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:
>>
>>> On 16/10/17 23:19, Ludovic Courtès wrote:
>>>> Hi Chris,
>>>>
>>>> Christopher Baines <mail@cbaines.net> skribis:
>>>>
>>>>> This is a bit experimental. There is some description of the motivation
>>>>> behind this approach, as well as the downsides in the commit messages.
>>>>>
>>>>> I don't know how to wrap binaries with the GEM_PATH, but somehow
>>>>> excluding inputs specified as native-inputs, so I'd be very interested
>>>>> if anyone has ideas about this.
>>>>>
>>>>> Christopher Baines (3):
>>>>> ruby-build-system: Add wrap-ruby-program.
>>>>> ruby-build-system: Add a new wrap phase.
>>>>> gnu: Remove redundant wrapping from packages using ruby-build-system.
>>>> Cc’ing Ben who is another Serious Ruby User I think. :-)
>>> Maybe sometimes. I'll try to get a review back to you in the next week
>>> or so.
>> Ahem. :-)
>>
>> Chris, if you’re confident, I’d say you can go ahead. It does sound
>> like an improvement so it’d be sad to lose it.
> Ah yes, my apologies. Yes, this series LGTM, and it worked fine when I
> applied it in local packages too.

Super, thanks for taking a look Ben :)
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlpb2DtfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9Xfp6w/+OfSwTeu9W2ocfFBuNanJhMq0kDiXezm4mFhb1AHAii4AD3ORlFR5Ub6t
TznQMfag3764g8RjA7BIuVlpCaGWAI1lur4RxXDyoBUnCjuBYFe47ovIuSxuq8U5
f1Hkd14/aKCdZw/ZA7GFIPTs2cRES+Ygk1iBg1Vq6UXYVjCpDQ6RqCREL0y9pFRT
WjHhlO/K5utPC+dfuipjrH3Y99QtcY9mTxialIXgz6q7jL2IWLZvAHDgpA0+3hTR
QTbkAJ0wdIW+X6YXU0WfF+71nZ1dQh9kvnre4dJ3Vn7qUlp0kfZVGvyWimFLbO3o
LulpTzwV48dbLLr482atHkL5rPf7+x98GiDqXbkHF5UilY0UdKI1gvlsQsKuavSB
WdDU1GxQxdQhpmLe7nekTfBaoVxdmwrG11n/s9lp8In4Fb/07xa4phuuUynnnQsQ
OyIa7y3ltWgokhySuUdMs4w+/RjO/q6HZAyXpOl5JSXJesWT+GXK1OVhg+ztDyMB
HEq8K85crGD3Rkq4ctnw/yr03L231/AGMSR9sTT7hkPtmPV1FVHDm5oU2EpX7X9+
cbYAencAG6fhKT3ph0eVWnURpDy/ncRWrZAHXdclvw8kL8PQ7b6NZ3HbhAQwjm6D
oHTaU/1ADGDvLhZXCfjHhDTPTk1wwyu9TsZFinOVg56x5FlSX50=
=NQmc
-----END PGP SIGNATURE-----

Christopher Baines wrote 7 years ago
[PATCH] Specify native search path for all ruby packages
(address . 28773-done@debbugs.gnu.org)
87d12ct6w9.fsf@cbaines.net
Closing, as I've now pushed this patch.
-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAlpb2NZfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF
ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE
9Xe9Gw/9F0aWJpNjiktuyYzI661aJ8d/TtIkd+UKQWBR+3zWTiCu3KHLqjl3B9f+
JN1daL4ayS1VLuUdFOIV2DzAiSNXYBsoLSc7S9b9kEJDkqGapvsKW2e9Tt82VR60
4wUCgDU4WlRZsdtWiIAnxjinUxheRZb/cImiPr033cMMy7r3raQDKfQyq+nnFlaZ
9TAr7ZDU7Tmd0yk7cHoK0f/RvL6z8ZQ7REo2fRmY3VZ2VuLUn9QACvO7z4tSBwPn
u3Pnup1sjeoVsMuKL3JyTrZyWY7UoJAmRNOytIdCKtjdsk7JvGujqKz3Fv13g09N
klkklVZwB9zBs6+ZPM75HhdqmKmKvEZ3xFP3pOG80NrUrKsAz7PZKTik0ZBxy5FE
oY40kuzEka4io4Kx4drFfQLT17S4i9na75gPLLYT6xabj7pLRYhkJwVc7sUchv7b
qy56TY19pYfLxwGsiw8uZUXMxtVAmfUY52ytGcvWZLLbyuFQ33blGvCQM8E2G6sH
vWc5sbZEdH/EHU4o7UzIbRwPZD8EE1yhC7T5Tr8SEsNt2OfA1p++raPjNYb+Doku
dz4uIXIZj7HTkzQBEedn/mDB71vEh8xPyC9UCpLR993IekyZklIBQNxKOne4yobs
wEs8KtYXXlKWOZ39WoCrmHMOPFPZkCvUAvKZLknRB+JHq9cjaIk=
=vz3l
-----END PGP SIGNATURE-----

Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 28773@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 28773
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help