Subject: Re: [bug#32370] [PATCH 1/4] gnu: Add ruby-yajl-ruby.

From: Björn Höfling <[email-masked]>
Date: Tue, 7 Aug 2018 00:28:40 +0200

On Sun,  5 Aug 2018 15:43:19 +0100
Christopher Baines <[email-masked]> wrote:

> From: Ben Woodcroft <[email-masked]>
> 
> * gnu/packages/ruby.scm (ruby-yajl-ruby): New variable.
> 
> Signed-off-by: Christopher Baines <[email-masked]>
> ---
>  gnu/packages/ruby.scm | 33 +++++++++++++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
> 
> diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
> index 908dfd575..a06be3e26 100644
> --- a/gnu/packages/ruby.scm
> +++ b/gnu/packages/ruby.scm
> @@ -3626,6 +3626,39 @@ features such as filtering and fine grained
> logging.") (home-page
> "https://github.com/pjotrp/bioruby-logger-plugin") (license
> license:expat))) 
> +(define-public ruby-yajl-ruby
> +  (package
> +    (name "ruby-yajl-ruby")
> +    (version "1.4.0")

1.4.1 is availabe. Do we have a specific reason for 1.4.0? Either
update or explain in a comment (Well, that would be at least my comment
for a 'normal' package. I'm unsure how to handle this one right: It's
part of the Rails-branch and I noticed there are some outdated
packages. They could be outdated just because Ben started in 2016 with
that (and still, there is no Rails in Guix) or there could be a
specific reason for that (i.e Rails or a sub-dependency needs exactly
this version). Or we just say: hey, let's just get these patches in as
they were in 2016 to no longer prolonge this. We can update later).

License:

./ext/yajl/yajl_encode.h: BSD (3 clause)
./ext/yajl/yajl_ext.c: MIT/X11 (BSD like)
./ext/yajl/yajl_ext.h: MIT/X11 (BSD like)
./ext/yajl/yajl_gen.c: BSD (3 clause)

We already have yajl. Is it possible to use that instead of the "ext"
path? Does that make sense? Should we at least add a TODO-Comment?

name: libyajl
version: 2.1.0
outputs: out
systems: x86_64-linux i686-linux armhf-linux aarch64-linux
mips64el-linux dependencies: 
location: gnu/packages/web.scm:750:2
homepage: https://lloyd.github.io/yajl/
license: ISC
synopsis: C library for parsing JSON  
description: Yet Another JSON Library (YAJL) is a small event-driven
+ (SAX-style) JSON parser written in ANSI C and a small validating JSON
+ generator.
relevance: 6

BTW, libyajl changed license to ISC on April 20, 2011:
https://github.com/lloyd/yajl/commit/de81b1fcd22b29b152f921f23faab759c79da7e1#diff-7116ef0705885343c9e1b2171a06be0e

When I add --check -K --no-grafts, it says it is not deterministic. But:

diffoscope /gnu/store/88dhpv16b5l55xf4dh090a6n93sh2akn-ruby-yajl-ruby-1.4.0  /gnu/store/88dhpv16b5l55xf4dh090a6n93sh2akn-ruby-yajl-ruby-1.4.0-check
| less

is empty. Is this a general Ruby problem?

I checked that randomly with ruby-unf-ext-0.0.7.1 but that is
deterministic. Hm.

Björn