From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pjotr Prins Subject: [PATCH] gnu: Add ruby-nokogiri Date: Mon, 13 Jul 2015 15:09:56 +0200 Message-ID: <20150713130956.GC28969@thebird.nl> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="RhUH2Ysw6aD5utA4" Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48816) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZEdVc-0002ET-2h for guix-devel@gnu.org; Mon, 13 Jul 2015 09:11:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZEdVX-0003Av-TX for guix-devel@gnu.org; Mon, 13 Jul 2015 09:11:00 -0400 Received: from mail.thebird.nl ([95.154.246.10]:42209) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZEdVX-0003AN-L5 for guix-devel@gnu.org; Mon, 13 Jul 2015 09:10:55 -0400 Content-Disposition: inline List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: "guix-devel@gnu.org" --RhUH2Ysw6aD5utA4 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sorry, the second mail got sent off too early. Patch for the Ruby-nokogiri gem, an infamous hard to install piece of software. Not so hard to add to GNU Guix, though I had to run 'rake gem' 2x to create the gem (the first time it merely installs the build directory). The tests are skipped because they currently expect the gem to be already installed (not only built!). I documented the process of making the patch here: https://github.com/pjotrp/guix-notes/blob/master/RUBYGEMS-Nokogiri.org David Thompson gave me advice on how to introduce the new 'gem-flags' key. Though the blame is mine if I got it wrong :) It is a work in progress - I'll send a sanity patch upstream for Nokogiri and get testing working. But I thought I'd share this with you first for comments. Inclusion can be useful to others as the package does work. It is a critical package for many Ruby gems. Pj. --RhUH2Ysw6aD5utA4 Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="0001-gnu-Add-ruby-nokogiri.patch" Content-Transfer-Encoding: quoted-printable >From e2fd935a659cacde5cb74bef19406f056a262f79 Mon Sep 17 00:00:00 2001 From: pjotrp Date: Mon, 13 Jul 2015 14:56:40 +0200 Subject: [PATCH] gnu: Add ruby-nokogiri * gnu/packages/ruby.scm (gnu-nokogiri): New variable --- gnu/packages/ruby.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index bb7d865..85cb0d4 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -34,6 +34,7 @@ #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (gnu packages xml) #:use-module (guix build-system ruby)) =20 (define-public ruby @@ -519,6 +520,45 @@ using Net::HTTP, supporting reconnection and retry a= ccording to RFC 2616.") (home-page "https://github.com/drbrain/net-http-persistent") (license license:expat))) =20 +(define-public ruby-nokogiri + (package + (name "ruby-nokogiri") + (version "1.6.6.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/sparklemotion/nokogiri/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (patches (map search-patch + (list "ruby-nokogiri-Rakefile.patch"))) + (sha256 + (base32 + "1dpmmxr8azbyvhhmw9hpyk3dds577vsd6c312gh2s7kgjd98nd9j"))= )) + (build-system ruby-build-system) + (arguments + '( + #:tests? #f ;; test fails because nokogiri can only test with a = built extension (now part of install phase) + #:gem-flags (list "--use-system-libraries" (string-append "--with= -xml2-include=3D" (assoc-ref %build-inputs "libxml2") "/include/libxml2" = )) + #:phases (alist-replace + 'build + (lambda _ + ;; calling rake gem 2x begets a gem + (system* "rake" "gem") + (zero? (system* "rake" "gem"))) + %standard-phases))) + (native-inputs + `(("ruby-hoe" ,ruby-hoe) + ("ruby-rake-compiler", ruby-rake-compiler))) + (inputs + `(("zlib" ,zlib) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt))) + (synopsis "Nokogiri (=E9=8B=B8) is an HTML, XML, SAX, and Reader par= ser") + (description "Nokogiri parses and searches XML/HTML very quickly, an= d also has correctly implemented CSS3 selector support as well as XPath 1= .0 support.") + (home-page "http://www.nokogiri.org/") + (license license:x11))) + (define-public ruby-minitest (package (name "ruby-minitest") --=20 1.7.10.4 --RhUH2Ysw6aD5utA4--