From: David Thompson <dthompson2@worcester.edu>
To: Pjotr Prins <pjotr.public12@thebird.nl>, guix-devel <guix-devel@gnu.org>
Subject: Re: [PATCH] New ruby package
Date: Sat, 27 Sep 2014 09:44:10 -0400 [thread overview]
Message-ID: <878ul5npp1.fsf@izanagi.i-did-not-set--mail-host-address--so-tickle-me> (raw)
In-Reply-To: <20140927130639.GA4139@thebird.nl>
Pjotr Prins <pjotr.public12@thebird.nl> writes:
> Ok, hopefully this is the right patch after rebase and format-patch.
>
I can confirm that the package builds and runs. :)
> From d0d9843f80aca29e51f82c2da894369f892c9e3c Mon Sep 17 00:00:00 2001
> From: Pjotr Prins <pjotr.public01@thebird.nl>
> Date: Sat, 27 Sep 2014 14:56:44 +0200
> Subject: [PATCH] packages: Add Ruby
Change to "gnu: Add Ruby."
>
> * gnu/packages/ruby.scm (Ruby): Added Ruby package
> * guix/licenses.scm: Added Ruby license information
> ---
> gnu/packages/ruby.scm | 99 +++++++++++++++++++++++++++++++++++++++++++++++++
> guix/licenses.scm | 5 +++
> 2 files changed, 104 insertions(+)
> create mode 100644 gnu/packages/ruby.scm
>
> diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
> new file mode 100644
> index 0000000..a13606c
> --- /dev/null
> +++ b/gnu/packages/ruby.scm
> @@ -0,0 +1,99 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2014 Pjotr Prins <pjotr.guix@thebird.nl>
> +;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
> +;;;
> +;;; This file is part of GNU Guix.
> +;;;
> +;;; GNU Guix is free software; you can redistribute it and/or modify it
> +;;; under the terms of the GNU General Public License as published by
> +;;; the Free Software Foundation; either version 3 of the License, or (at
> +;;; your option) any later version.
> +;;;
> +;;; GNU Guix is distributed in the hope that it will be useful, but
> +;;; WITHOUT ANY WARRANTY; without even the implied warranty of
> +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +;;; GNU General Public License for more details.
> +;;;
> +;;; You should have received a copy of the GNU General Public License
> +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
> +
> +(define-module (gnu packages ruby)
> + #:use-module ((guix licenses)
> + #:select (rl))
> + #:use-module (gnu packages)
> + #:use-module (gnu packages compression)
> + #:use-module (gnu packages readline)
> + #:use-module (gnu packages openssl)
> + #:use-module (gnu packages autotools)
> + #:use-module (gnu packages libffi)
> + #:use-module (gnu packages gdbm)
> + #:use-module (guix packages)
> + #:use-module (guix download)
> + #:use-module (guix utils)
> + #:use-module (guix build-system gnu)
> +;;; #:use-module (guix build-system trivial))
Remove commented code.
> +)
> +
> +(define-public ruby
> + (package
> + (name "ruby")
> + (version "2.1.3")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "http://cache.ruby-lang.org/pub/ruby/2.1/"
> + "ruby-" version ".tar.gz"))
> + ;;; (patch-flags '("p76"))
Remove commented code.
> + (sha256
> + (base32
> + "00bz6jcbxgnllplk4b9lnyc3w8yd3pz5rn11rmca1s8cn6vvw608"))))
> + (build-system gnu-build-system)
> + (arguments
> + `(#:test-target "test"
> + #:parallel-tests? #f
> + #:phases
> + (alist-cons-after
> + ;;; minor patch
> https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/45225/diff/
Nitpick: 2 semicolons, not 3.
> + 'unpack 'patch-readline
> + (lambda _
> + (substitute* '(
> + "ext/readline/readline.c"
> + )
Don't put parens on new lines.
'("ext/readline/readline.c")
> + (("Function ") "rl_hook_func_t ")))
> + (alist-cons-before
> + 'configure 'replace-bin-sh
> + (lambda _
> + (substitute* '(
> + "Makefile.in"
> + "ext/pty/pty.c"
> + "io.c"
> + "lib/mkmf.rb"
> + "process.c"
> + "test/rubygems/test_gem_ext_configure_builder.rb"
> + "test/rdoc/test_rdoc_parser.rb"
> + "test/ruby/test_rubyoptions.rb"
> + "test/ruby/test_process.rb"
> + "test/ruby/test_system.rb"
> + "tool/rbinstall.rb"
> + ;;; "tool/config.guess"
> + )
Same as above, and remove commented code.
> + (("/bin/sh") (which "sh"))))
> + %standard-phases))))
> +
> + (inputs
> + `(("readline" ,readline)
> + ("autoconf" ,autoconf)
> + ("openssl" ,openssl)
> + ("libffi" ,libffi)
> + ("gdbm" ,gdbm)
> + ("zlib" ,zlib)
> + ))
The parens are lonely. :(
Move them to the previous line.
> +
> + (synopsis "Ruby")
Duplicated synopsis field. Surprised this isn't a syntax error.
> + (home-page "https://www.ruby-lang.org/en/")
Remove the 'en/' part.
> + (synopsis
> + "Ruby programming language")
> + (description
> + "Ruby description")
Expand the description.
> + (license rl)))
> +
> diff --git a/guix/licenses.scm b/guix/licenses.scm
> index 23e4458..d9b71d7 100644
> --- a/guix/licenses.scm
> +++ b/guix/licenses.scm
> @@ -255,6 +255,11 @@ which may be a file:// URI pointing the package's tree."
> "http://directory.fsf.org/wiki/License:QPLv1.0"
> "http://www.gnu.org/licenses/license-list.html#QPL"))
>
> +(define rl
> + (license "Ruby License"
> + "http://directory.fsf.org/wiki/License:Ruby"
> + "https://www.ruby-lang.org/en/about/license.txt"))
> +
How about naming this 'ruby' instead? Then, in the ruby package module,
you can add a prefix to the imported symbols to avoid a name clash.
#:use-module ((guix licenses) #:prefix license:)
You would then refer to the license variable as 'license:ruby'.
> (define vim
> (license "Vim"
> "http://directory.fsf.org/wiki/License:Vim7.2"
> --
> 1.7.10.4
>
Thanks for this! I was struggling with my own Ruby package. Now I
don't have to waste anymore time on it. :)
Now, we need to get gems working and write a gem->guix import script!
--
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate
next prev parent reply other threads:[~2014-09-27 13:44 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-04 17:51 Ruby install Pjotr Prins
2014-05-05 8:03 ` Ludovic Courtès
2014-05-05 8:29 ` Pjotr Prins
2014-05-05 11:42 ` Ludovic Courtès
2014-06-04 21:36 ` Ludovic Courtès
2014-06-05 9:57 ` Pjotr Prins
2014-10-27 4:58 ` guile ERROR: Unbound variable: sha256 Pjotr Prins
2014-10-27 9:18 ` Ludovic Courtès
2014-09-27 12:29 ` [PATCH] New ruby package Pjotr Prins
2014-09-27 13:06 ` Pjotr Prins
2014-09-27 13:44 ` David Thompson [this message]
2014-09-28 4:00 ` David Thompson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=878ul5npp1.fsf@izanagi.i-did-not-set--mail-host-address--so-tickle-me \
--to=dthompson2@worcester.edu \
--cc=guix-devel@gnu.org \
--cc=pjotr.public12@thebird.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).