Actually, I lie, this patch only sort of works. The issue is that it only works when a ruby package is also installed, GEM_PATH does not get set as part of the ruby-build-system for yaggo. The lib/ files are copied to what I gather is the correct place, but the env isn't right.

The same also appears to be true of other ruby packages e.g. ruby-hoe:
$ guix package -i ruby-hoe
..
ben@u:~/git/guix$ guix package --search-paths
warning: failed to install locale: Invalid argument
export PATH="/home/ben/.guix-profile/bin:/home/ben/.guix-profile/sbin"
export PYTHONPATH="/home/ben/.guix-profile/lib/python3.4/site-packages"
export PKG_CONFIG_PATH="/home/ben/.guix-profile/lib/pkgconfig:/home/ben/.guix-profile/share/pkgconfig"
export GUILE_LOAD_PATH="/home/ben/.guix-profile/share/guile/site/2.0"
export GUILE_LOAD_COMPILED_PATH="/home/ben/.guix-profile/share/guile/site/2.0"
export CPATH="/home/ben/.guix-profile/include"
export LIBRARY_PATH="/home/ben/.guix-profile/lib"
export ACLOCAL_PATH="/home/ben/.guix-profile/share/aclocal"

i.e. no GEM_PATH entry, hence:
$ sow -h
/gnu/store/9iifw37m8vd5bkj0fh67ndc5f2da46wb-ruby-2.2.2/lib/ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'hoe' (>= 0) among 9 total gem(s) (Gem::LoadError) Checked in 'GEM_PATH=/home/ben/.gem/ruby/2.2.0:/gnu/store/9iifw37m8vd5bkj0fh67ndc5f2da46wb-ruby-2.2.2/lib/ruby/gems/2.2.0', execute `gem env` for more information from /gnu/store/9iifw37m8vd5bkj0fh67ndc5f2da46wb-ruby-2.2.2/lib/ruby/2.2.0/rubygems/dependency.rb:324:in `to_spec' from /gnu/store/9iifw37m8vd5bkj0fh67ndc5f2da46wb-ruby-2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
    from /home/ben/.guix-profile/bin/sow:22:in `<main>'

Files are there though:
$ ls /home/ben/.guix-profile/lib/ruby/gems/2.2.0/gems/
hoe-3.13.1  yaggo-1.5.4

FYI: I actually only care about yaggo because it is a build dependency of jellyfish, but I'm having some problems with make check so no patch yet.

Thanks,
ben
>From d220bdeac89660108de96a96107daf89182310e0 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrust...@gmail.com>
Date: Wed, 24 Jun 2015 14:32:26 +1000
Subject: [PATCH] gnu: Add yaggo.

* gnu/packages/ruby.scm (yaggo): New variable.
---
 gnu/packages/ruby.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index af87cf5..19006d3 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2014 Ludovic Courtès <l...@gnu.org>
 ;;; Copyright © 2014, 2015 Mark H Weaver <m...@netris.org>
 ;;; Copyright © 2014 David Thompson <da...@gnu.org>
+;;; Copyright © 2015 Ben Woodcroft <donttrust...@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -697,3 +698,34 @@ options and parsing command line flags.")
 net/http library.")
     (home-page "https://github.com/nicksieger/multipart-post";)
     (license license:expat)))
+
+(define-public yaggo
+  (package
+   (name "yaggo")
+   (version "1.5.4")
+   (source (origin
+	    (method url-fetch)
+	    (uri (string-append
+		  "https://github.com/gmarcais/yaggo/archive/v";
+		  version ".tar.gz"))
+	    (file-name (string-append name "-" version ".tar.gz"))
+	    (sha256
+	     (base32
+	      "1mxfvrim03xg80agws9zdpk00r0kjpqhw3xbli0w8wvsnsa274y3"))))
+   (build-system ruby-build-system)
+   (arguments
+    `(#:tests? #f ;; no rake test, and Makefile in test/ appears malformed
+      #:phases
+      (modify-phases %standard-phases
+		     (replace 'build
+			      (lambda* _
+				(zero? (system* "rake"
+						"gem")))))))
+   (synopsis "Generate C++ command line parsers using getopt_long")
+   (description "Yaggo is a tool to generate command line parsers for
+C++.  Yaggo stands for 'Yet Another GenGetOpt' and is inspired by GNU
+Gengetopt.  It reads a configuration file describing the switches and argument
+for a C++ program and it generates one header file that parses the command
+line using getopt_long(3).")
+   (home-page "https://github.com/gmarcais/yaggo";)
+   (license license:gpl3+)))
-- 
2.1.4

Reply via email to