From unknown Tue Aug 19 05:11:44 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22752: 01/01: import: gem: Add updater. Resent-From: Leo Famulari Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Sun, 21 Feb 2016 05:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 22752 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22752@debbugs.gnu.org X-Debbugs-Original-To: bug-guix@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.145603413622253 (code B ref -1); Sun, 21 Feb 2016 05:56:01 +0000 Received: (at submit) by debbugs.gnu.org; 21 Feb 2016 05:55:36 +0000 Received: from localhost ([127.0.0.1]:35731 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aXMzP-0005mi-TM for submit@debbugs.gnu.org; Sun, 21 Feb 2016 00:55:36 -0500 Received: from eggs.gnu.org ([208.118.235.92]:58830) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aXMzK-0005mP-Hp for submit@debbugs.gnu.org; Sun, 21 Feb 2016 00:55:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aXMzD-0006jQ-Vy for submit@debbugs.gnu.org; Sun, 21 Feb 2016 00:55:17 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_DKIM_INVALID, T_FILL_THIS_FORM_SHORT autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:53423) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXMzD-0006jM-Sk for submit@debbugs.gnu.org; Sun, 21 Feb 2016 00:55:15 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49800) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXMzC-0002X0-60 for bug-guix@gnu.org; Sun, 21 Feb 2016 00:55:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aXMz8-0006ix-RW for bug-guix@gnu.org; Sun, 21 Feb 2016 00:55:14 -0500 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:45583) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXMz8-0006it-NQ for bug-guix@gnu.org; Sun, 21 Feb 2016 00:55:10 -0500 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 71BE5208E3; Sun, 21 Feb 2016 00:55:10 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute1.internal (MEProxy); Sun, 21 Feb 2016 00:55:10 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=famulari.name; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=Yy2fgnTkiLUKQ3p0DPvGZwfeTow=; b=wBmLtw nqI1AXQuR8yaxCXVgWUef24RKcvm9MEennn8OJW+j1V9NSdm+QI4BAPVJg8DVEN7 cUpM/4cElugnUQgT6Woms5O8pNO6x2twuyz9pxM0jWWgCgyjTpbquIRVAVp37RLN j7m9hxWfxsVVqNooeoz8jVLcPrZj2G9aEEjoc= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=Yy2fgnTkiLUKQ3p 0DPvGZwfeTow=; b=dtczKVxZR4LqPNcouxIWBcdvhFFcvwFV/v+IDQsU5fZmiRB 4C+LbqZ04b/QHytCsBiotGY/UYIIL5prg+WcfqpRu4Oc/bKKb8Piixg5FzGO+FmV QkiD7+SmTqkppRr9rbUDKPnsDmKg2+5Od6AuNPWjvlDGRmKA6bZc5tKuuVEU= X-Sasl-enc: 7+YLQNUQXD0joEgoItv+ccxjrjTxULkiQeUPayjPm1Hd 1456034109 Received: from localhost (c-69-249-5-231.hsd1.pa.comcast.net [69.249.5.231]) by mail.messagingengine.com (Postfix) with ESMTPA id B2FACC0001A for ; Sun, 21 Feb 2016 00:55:09 -0500 (EST) Date: Sun, 21 Feb 2016 00:55:05 -0500 From: Leo Famulari Message-ID: <20160221055505.GB26827@jasmine> References: <20160220105236.17956.75431@vcs.savannah.gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.9 (/) On Sat, Feb 20, 2016 at 10:53:05AM +0000, Ben Woodcroft wrote: > benwoodcroft pushed a commit to branch master > in repository guix. > > commit fbc5b815cce85a6af75226ab16acf243fd7d22ce > Author: Ben Woodcroft > Date: Fri Jan 1 16:56:07 2016 +1000 > > import: gem: Add updater. Since this commit, I can no longer use guix refresh. For example: $ ./pre-inst-env guix refresh --help guix: refresh: command not found Try `guix --help' for more information. $ file guix/scripts/refresh.go guix/scripts/refresh.go: Guile Object, little endian, 64bit, bytecode v2.0 > > * guix/import/gem.scm (guix-package->gem-name, > gem-package?, latest-release): New procedures. > (%gem-updater): New variable. > (rubygems-fetch): Wrap body in > 'call-with-output-file' and 'with-error-to-port'. > * guix/scripts/refresh.scm (%updaters): Add %GEM-UPDATER. > * doc/guix.texi (Invoking guix refresh): Mention RubyGems. > --- > doc/guix.texi | 2 + > guix/import/gem.scm | 63 +++++++++++++++++++++++++++++++++++++++++++-- > guix/scripts/refresh.scm | 5 +++- > 3 files changed, 66 insertions(+), 4 deletions(-) > > diff --git a/doc/guix.texi b/doc/guix.texi > index c5a7de7..b991cc1 100644 > --- a/doc/guix.texi > +++ b/doc/guix.texi > @@ -4571,6 +4571,8 @@ the updater for @uref{http://cran.r-project.org/, CRAN} packages; > the updater for @uref{http://www.bioconductor.org/, Bioconductor} R packages; > @item pypi > the updater for @uref{https://pypi.python.org, PyPI} packages. > +@item gem > +the updater for @uref{https://rubygems.org, RubyGems} packages. > @end table > > For instance, the following command only checks for updates of Emacs > diff --git a/guix/import/gem.scm b/guix/import/gem.scm > index 4b2a253..b46622f 100644 > --- a/guix/import/gem.scm > +++ b/guix/import/gem.scm > @@ -1,5 +1,6 @@ > ;;; GNU Guix --- Functional package management for GNU > ;;; Copyright © 2015 David Thompson > +;;; Copryight © 2016 Ben Woodcroft > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -19,21 +20,33 @@ > (define-module (guix import gem) > #:use-module (ice-9 match) > #:use-module (ice-9 pretty-print) > + #:use-module (srfi srfi-1) > #:use-module (rnrs bytevectors) > #:use-module (json) > #:use-module (web uri) > + #:use-module ((guix download) #:prefix download:) > #:use-module (guix import utils) > #:use-module (guix import json) > #:use-module (guix packages) > + #:use-module (guix upstream) > #:use-module (guix licenses) > #:use-module (guix base32) > - #:export (gem->guix-package)) > + #:use-module (guix build-system ruby) > + #:use-module (gnu packages) > + #:export (gem->guix-package > + %gem-updater)) > > (define (rubygems-fetch name) > "Return an alist representation of the RubyGems metadata for the package NAME, > or #f on failure." > - (json-fetch > - (string-append "https://rubygems.org/api/v1/gems/" name ".json"))) > + ;; XXX: We want to silence the download progress report, which is especially > + ;; annoying for 'guix refresh', but we have to use a file port. > + (call-with-output-file "/dev/null" > + (lambda (null) > + (with-error-to-port null > + (lambda () > + (json-fetch > + (string-append "https://rubygems.org/api/v1/gems/" name ".json"))))))) > > (define (ruby-package-name name) > "Given the NAME of a package on RubyGems, return a Guix-compliant name for > @@ -132,3 +145,47 @@ VERSION, HASH, HOME-PAGE, DESCRIPTION, DEPENDENCIES, and LICENSES." > (assoc-ref package "licenses")))) > (make-gem-sexp name version hash home-page synopsis > description dependencies licenses))))) > + > +(define (guix-package->gem-name package) > + "Given a PACKAGE built from rubygems.org, return the name of the > +package on RubyGems." > + (let ((source-url (and=> (package-source package) origin-uri))) > + ;; The URL has the form: > + ;; 'https://rubygems.org/downloads/' + > + ;; package name + '-' + version + '.gem' > + ;; e.g. "https://rubygems.org/downloads/hashery-2.1.1.gem" > + (substring source-url 31 (string-rindex source-url #\-)))) > + > +(define (gem-package? package) > + "Return true if PACKAGE is a gem package from RubyGems." > + > + (define (rubygems-url? url) > + (string-prefix? "https://rubygems.org/downloads/" url)) > + > + (let ((source-url (and=> (package-source package) origin-uri)) > + (fetch-method (and=> (package-source package) origin-method))) > + (and (eq? fetch-method download:url-fetch) > + (match source-url > + ((? string?) > + (rubygems-url? source-url)) > + ((source-url ...) > + (any rubygems-url? source-url)))))) > + > +(define (latest-release guix-package) > + "Return an for the latest release of GUIX-PACKAGE." > + (let* ((gem-name (guix-package->gem-name > + (specification->package guix-package))) > + (metadata (rubygems-fetch gem-name)) > + (version (assoc-ref metadata "version")) > + (url (rubygems-uri gem-name version))) > + (upstream-source > + (package guix-package) > + (version version) > + (urls (list url))))) > + > +(define %gem-updater > + (upstream-updater > + (name 'gem) > + (description "Updater for RubyGem packages") > + (pred gem-package?) > + (latest latest-release))) > diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm > index f9e3f31..bb38f09 100644 > --- a/guix/scripts/refresh.scm > +++ b/guix/scripts/refresh.scm > @@ -3,6 +3,7 @@ > ;;; Copyright © 2013 Nikita Karetnikov > ;;; Copyright © 2014 Eric Bavier > ;;; Copyright © 2015 Alex Kost > +;;; Copyright © 2016 Ben Woodcroft > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -34,6 +35,7 @@ > #:select (%gnu-updater %gnome-updater)) > #:use-module (guix import elpa) > #:use-module (guix import cran) > + #:use-module (guix import gem) > #:use-module (guix gnupg) > #:use-module (gnu packages) > #:use-module ((gnu packages commencement) #:select (%final-inputs)) > @@ -196,7 +198,8 @@ unavailable optional dependencies such as Guile-JSON." > %elpa-updater > %cran-updater > %bioconductor-updater > - ((guix import pypi) => %pypi-updater))) > + ((guix import pypi) => %pypi-updater) > + ((guix import gem) => %gem-updater))) > > (define (lookup-updater name) > "Return the updater called NAME." > From unknown Tue Aug 19 05:11:44 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22752: 01/01: import: gem: Add updater. Resent-From: Ben Woodcroft Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Sun, 21 Feb 2016 06:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22752 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Leo Famulari , 22752@debbugs.gnu.org Received: via spool by 22752-submit@debbugs.gnu.org id=B22752.145603466129448 (code B ref 22752); Sun, 21 Feb 2016 06:05:01 +0000 Received: (at 22752) by debbugs.gnu.org; 21 Feb 2016 06:04:21 +0000 Received: from localhost ([127.0.0.1]:35746 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aXN81-0007eu-Ap for submit@debbugs.gnu.org; Sun, 21 Feb 2016 01:04:21 -0500 Received: from mailhub2.soe.uq.edu.au ([130.102.132.209]:59140 helo=newmailhub.uq.edu.au) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aXN7z-0007ek-CV for 22752@debbugs.gnu.org; Sun, 21 Feb 2016 01:04:20 -0500 Received: from smtp1.soe.uq.edu.au (smtp1.soe.uq.edu.au [10.138.113.40]) by newmailhub.uq.edu.au (8.14.5/8.14.5) with ESMTP id u1L64Emt033062; Sun, 21 Feb 2016 16:04:16 +1000 Received: from [192.168.1.105] (static.customers.nuskope.com.au [103.25.181.216] (may be forged)) (authenticated bits=0) by smtp1.soe.uq.edu.au (8.14.5/8.14.5) with ESMTP id u1L64ANL002646 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Sun, 21 Feb 2016 16:04:13 +1000 References: <20160220105236.17956.75431@vcs.savannah.gnu.org> <20160221055505.GB26827@jasmine> From: Ben Woodcroft Message-ID: <56C9535A.7030308@uq.edu.au> Date: Sun, 21 Feb 2016 16:04:10 +1000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <20160221055505.GB26827@jasmine> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-UQ-FilterTime: 1456034656 X-Scanned-By: MIMEDefang 2.73 on UQ Mailhub X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) On 21/02/16 15:55, Leo Famulari wrote: > On Sat, Feb 20, 2016 at 10:53:05AM +0000, Ben Woodcroft wrote: >> benwoodcroft pushed a commit to branch master >> in repository guix. >> >> commit fbc5b815cce85a6af75226ab16acf243fd7d22ce >> Author: Ben Woodcroft >> Date: Fri Jan 1 16:56:07 2016 +1000 >> >> import: gem: Add updater. > Since this commit, I can no longer use guix refresh. Hmm, I guess I messed something up then. I do not have any problem though. Does it help to remove this (unneeded) line + #:use-module (guix import gem) from guix/scripts/refresh.scm ? ben From unknown Tue Aug 19 05:11:44 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Leo Famulari Subject: bug#22752: closed (Re: bug#22752: 01/01: import: gem: Add updater.) Message-ID: References: <20160221065958.GA15104@jasmine> <20160221055505.GB26827@jasmine> X-Gnu-PR-Message: they-closed 22752 X-Gnu-PR-Package: guix Reply-To: 22752@debbugs.gnu.org Date: Sun, 21 Feb 2016 07:01:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1456038062-3121-1" This is a multi-part message in MIME format... ------------=_1456038062-3121-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #22752: 01/01: import: gem: Add updater. which was filed against the guix package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 22752@debbugs.gnu.org. --=20 22752: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D22752 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1456038062-3121-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 22752-done) by debbugs.gnu.org; 21 Feb 2016 07:00:07 +0000 Received: from localhost ([127.0.0.1]:35759 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aXNzy-0000nB-Ps for submit@debbugs.gnu.org; Sun, 21 Feb 2016 02:00:06 -0500 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:50678) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aXNzw-0000mH-U1 for 22752-done@debbugs.gnu.org; Sun, 21 Feb 2016 02:00:05 -0500 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 1023420960; Sun, 21 Feb 2016 02:00:03 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute4.internal (MEProxy); Sun, 21 Feb 2016 02:00:03 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=famulari.name; h= cc:content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=SNjHD IwdE5beseCchUE99sUFVww=; b=HzVYHIOVixawNKOFAET3tProslswx/GUgTpUY I4MwD2HPrUkvW6IKoOhNlSEi45AUZKCS1ZJAbTvkEsuj51HIxrYMdPLUZIxSUQyi o5qIHkX9v/As1STkZzoM8Uf1h9XOQUUtQkvrf9eRuTgG+1HUMgaM+ZuwJS8eNawP C8lH+0= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=smtpout; bh=SNjHDIwdE5beseCchUE99sUFVww=; b=a0YLV Ui1cjRWzzPl76sFOIKTq20aFSUm8UTFBO/zmA1voz0balj4sxku1zWzMpPhP1crH 9wGVJS+gWxVKVh2/WnW0cb2s0GoTvBvjhIrtNIjLGDQlVb/M3AQvg2H0h5PtAYvP WEAAQbhFlwwq33hqwMQ9NBIku6XGNipO2ubsgE= X-Sasl-enc: 33BXIyJnYf0B0nCYZZHR2j32agyeGdGDUhT3k2Kr1sFm 1456038002 Received: from localhost (c-69-249-5-231.hsd1.pa.comcast.net [69.249.5.231]) by mail.messagingengine.com (Postfix) with ESMTPA id 904EF6800D8; Sun, 21 Feb 2016 02:00:02 -0500 (EST) Date: Sun, 21 Feb 2016 01:59:58 -0500 From: Leo Famulari To: Ben Woodcroft Subject: Re: bug#22752: 01/01: import: gem: Add updater. Message-ID: <20160221065958.GA15104@jasmine> References: <20160220105236.17956.75431@vcs.savannah.gnu.org> <20160221055505.GB26827@jasmine> <56C9535A.7030308@uq.edu.au> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56C9535A.7030308@uq.edu.au> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 22752-done Cc: 22752-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Sun, Feb 21, 2016 at 04:04:10PM +1000, Ben Woodcroft wrote: > > > On 21/02/16 15:55, Leo Famulari wrote: > >On Sat, Feb 20, 2016 at 10:53:05AM +0000, Ben Woodcroft wrote: > >>benwoodcroft pushed a commit to branch master > >>in repository guix. > >> > >>commit fbc5b815cce85a6af75226ab16acf243fd7d22ce > >>Author: Ben Woodcroft > >>Date: Fri Jan 1 16:56:07 2016 +1000 > >> > >> import: gem: Add updater. > >Since this commit, I can no longer use guix refresh. > Hmm, I guess I messed something up then. I do not have any problem though. Everything worked again after I completely rebuilt from git. I guess there was some ABI mismatch between the compiled files that had been updated at certain times. Sorry for the noise! > > Does it help to remove this (unneeded) line > > + #:use-module (guix import gem) > > from guix/scripts/refresh.scm ? > > ben > ------------=_1456038062-3121-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 21 Feb 2016 05:55:36 +0000 Received: from localhost ([127.0.0.1]:35731 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aXMzP-0005mi-TM for submit@debbugs.gnu.org; Sun, 21 Feb 2016 00:55:36 -0500 Received: from eggs.gnu.org ([208.118.235.92]:58830) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aXMzK-0005mP-Hp for submit@debbugs.gnu.org; Sun, 21 Feb 2016 00:55:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aXMzD-0006jQ-Vy for submit@debbugs.gnu.org; Sun, 21 Feb 2016 00:55:17 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_DKIM_INVALID, T_FILL_THIS_FORM_SHORT autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:53423) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXMzD-0006jM-Sk for submit@debbugs.gnu.org; Sun, 21 Feb 2016 00:55:15 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49800) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXMzC-0002X0-60 for bug-guix@gnu.org; Sun, 21 Feb 2016 00:55:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aXMz8-0006ix-RW for bug-guix@gnu.org; Sun, 21 Feb 2016 00:55:14 -0500 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:45583) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aXMz8-0006it-NQ for bug-guix@gnu.org; Sun, 21 Feb 2016 00:55:10 -0500 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 71BE5208E3; Sun, 21 Feb 2016 00:55:10 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute1.internal (MEProxy); Sun, 21 Feb 2016 00:55:10 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=famulari.name; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=Yy2fgnTkiLUKQ3p0DPvGZwfeTow=; b=wBmLtw nqI1AXQuR8yaxCXVgWUef24RKcvm9MEennn8OJW+j1V9NSdm+QI4BAPVJg8DVEN7 cUpM/4cElugnUQgT6Woms5O8pNO6x2twuyz9pxM0jWWgCgyjTpbquIRVAVp37RLN j7m9hxWfxsVVqNooeoz8jVLcPrZj2G9aEEjoc= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=Yy2fgnTkiLUKQ3p 0DPvGZwfeTow=; b=dtczKVxZR4LqPNcouxIWBcdvhFFcvwFV/v+IDQsU5fZmiRB 4C+LbqZ04b/QHytCsBiotGY/UYIIL5prg+WcfqpRu4Oc/bKKb8Piixg5FzGO+FmV QkiD7+SmTqkppRr9rbUDKPnsDmKg2+5Od6AuNPWjvlDGRmKA6bZc5tKuuVEU= X-Sasl-enc: 7+YLQNUQXD0joEgoItv+ccxjrjTxULkiQeUPayjPm1Hd 1456034109 Received: from localhost (c-69-249-5-231.hsd1.pa.comcast.net [69.249.5.231]) by mail.messagingengine.com (Postfix) with ESMTPA id B2FACC0001A for ; Sun, 21 Feb 2016 00:55:09 -0500 (EST) Date: Sun, 21 Feb 2016 00:55:05 -0500 From: Leo Famulari To: bug-guix@gnu.org Subject: Re: 01/01: import: gem: Add updater. Message-ID: <20160221055505.GB26827@jasmine> References: <20160220105236.17956.75431@vcs.savannah.gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.9 (/) On Sat, Feb 20, 2016 at 10:53:05AM +0000, Ben Woodcroft wrote: > benwoodcroft pushed a commit to branch master > in repository guix. > > commit fbc5b815cce85a6af75226ab16acf243fd7d22ce > Author: Ben Woodcroft > Date: Fri Jan 1 16:56:07 2016 +1000 > > import: gem: Add updater. Since this commit, I can no longer use guix refresh. For example: $ ./pre-inst-env guix refresh --help guix: refresh: command not found Try `guix --help' for more information. $ file guix/scripts/refresh.go guix/scripts/refresh.go: Guile Object, little endian, 64bit, bytecode v2.0 > > * guix/import/gem.scm (guix-package->gem-name, > gem-package?, latest-release): New procedures. > (%gem-updater): New variable. > (rubygems-fetch): Wrap body in > 'call-with-output-file' and 'with-error-to-port'. > * guix/scripts/refresh.scm (%updaters): Add %GEM-UPDATER. > * doc/guix.texi (Invoking guix refresh): Mention RubyGems. > --- > doc/guix.texi | 2 + > guix/import/gem.scm | 63 +++++++++++++++++++++++++++++++++++++++++++-- > guix/scripts/refresh.scm | 5 +++- > 3 files changed, 66 insertions(+), 4 deletions(-) > > diff --git a/doc/guix.texi b/doc/guix.texi > index c5a7de7..b991cc1 100644 > --- a/doc/guix.texi > +++ b/doc/guix.texi > @@ -4571,6 +4571,8 @@ the updater for @uref{http://cran.r-project.org/, CRAN} packages; > the updater for @uref{http://www.bioconductor.org/, Bioconductor} R packages; > @item pypi > the updater for @uref{https://pypi.python.org, PyPI} packages. > +@item gem > +the updater for @uref{https://rubygems.org, RubyGems} packages. > @end table > > For instance, the following command only checks for updates of Emacs > diff --git a/guix/import/gem.scm b/guix/import/gem.scm > index 4b2a253..b46622f 100644 > --- a/guix/import/gem.scm > +++ b/guix/import/gem.scm > @@ -1,5 +1,6 @@ > ;;; GNU Guix --- Functional package management for GNU > ;;; Copyright © 2015 David Thompson > +;;; Copryight © 2016 Ben Woodcroft > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -19,21 +20,33 @@ > (define-module (guix import gem) > #:use-module (ice-9 match) > #:use-module (ice-9 pretty-print) > + #:use-module (srfi srfi-1) > #:use-module (rnrs bytevectors) > #:use-module (json) > #:use-module (web uri) > + #:use-module ((guix download) #:prefix download:) > #:use-module (guix import utils) > #:use-module (guix import json) > #:use-module (guix packages) > + #:use-module (guix upstream) > #:use-module (guix licenses) > #:use-module (guix base32) > - #:export (gem->guix-package)) > + #:use-module (guix build-system ruby) > + #:use-module (gnu packages) > + #:export (gem->guix-package > + %gem-updater)) > > (define (rubygems-fetch name) > "Return an alist representation of the RubyGems metadata for the package NAME, > or #f on failure." > - (json-fetch > - (string-append "https://rubygems.org/api/v1/gems/" name ".json"))) > + ;; XXX: We want to silence the download progress report, which is especially > + ;; annoying for 'guix refresh', but we have to use a file port. > + (call-with-output-file "/dev/null" > + (lambda (null) > + (with-error-to-port null > + (lambda () > + (json-fetch > + (string-append "https://rubygems.org/api/v1/gems/" name ".json"))))))) > > (define (ruby-package-name name) > "Given the NAME of a package on RubyGems, return a Guix-compliant name for > @@ -132,3 +145,47 @@ VERSION, HASH, HOME-PAGE, DESCRIPTION, DEPENDENCIES, and LICENSES." > (assoc-ref package "licenses")))) > (make-gem-sexp name version hash home-page synopsis > description dependencies licenses))))) > + > +(define (guix-package->gem-name package) > + "Given a PACKAGE built from rubygems.org, return the name of the > +package on RubyGems." > + (let ((source-url (and=> (package-source package) origin-uri))) > + ;; The URL has the form: > + ;; 'https://rubygems.org/downloads/' + > + ;; package name + '-' + version + '.gem' > + ;; e.g. "https://rubygems.org/downloads/hashery-2.1.1.gem" > + (substring source-url 31 (string-rindex source-url #\-)))) > + > +(define (gem-package? package) > + "Return true if PACKAGE is a gem package from RubyGems." > + > + (define (rubygems-url? url) > + (string-prefix? "https://rubygems.org/downloads/" url)) > + > + (let ((source-url (and=> (package-source package) origin-uri)) > + (fetch-method (and=> (package-source package) origin-method))) > + (and (eq? fetch-method download:url-fetch) > + (match source-url > + ((? string?) > + (rubygems-url? source-url)) > + ((source-url ...) > + (any rubygems-url? source-url)))))) > + > +(define (latest-release guix-package) > + "Return an for the latest release of GUIX-PACKAGE." > + (let* ((gem-name (guix-package->gem-name > + (specification->package guix-package))) > + (metadata (rubygems-fetch gem-name)) > + (version (assoc-ref metadata "version")) > + (url (rubygems-uri gem-name version))) > + (upstream-source > + (package guix-package) > + (version version) > + (urls (list url))))) > + > +(define %gem-updater > + (upstream-updater > + (name 'gem) > + (description "Updater for RubyGem packages") > + (pred gem-package?) > + (latest latest-release))) > diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm > index f9e3f31..bb38f09 100644 > --- a/guix/scripts/refresh.scm > +++ b/guix/scripts/refresh.scm > @@ -3,6 +3,7 @@ > ;;; Copyright © 2013 Nikita Karetnikov > ;;; Copyright © 2014 Eric Bavier > ;;; Copyright © 2015 Alex Kost > +;;; Copyright © 2016 Ben Woodcroft > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -34,6 +35,7 @@ > #:select (%gnu-updater %gnome-updater)) > #:use-module (guix import elpa) > #:use-module (guix import cran) > + #:use-module (guix import gem) > #:use-module (guix gnupg) > #:use-module (gnu packages) > #:use-module ((gnu packages commencement) #:select (%final-inputs)) > @@ -196,7 +198,8 @@ unavailable optional dependencies such as Guile-JSON." > %elpa-updater > %cran-updater > %bioconductor-updater > - ((guix import pypi) => %pypi-updater))) > + ((guix import pypi) => %pypi-updater) > + ((guix import gem) => %gem-updater))) > > (define (lookup-updater name) > "Return the updater called NAME." > ------------=_1456038062-3121-1-- From unknown Tue Aug 19 05:11:44 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22752: 01/01: import: gem: Add updater. Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 23 Feb 2016 11:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22752 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 22752@debbugs.gnu.org Cc: leo@famulari.name Received: via spool by 22752-submit@debbugs.gnu.org id=B22752.145622870129129 (code B ref 22752); Tue, 23 Feb 2016 11:59:02 +0000 Received: (at 22752) by debbugs.gnu.org; 23 Feb 2016 11:58:21 +0000 Received: from localhost ([127.0.0.1]:39377 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aYBbh-0007Zl-JA for submit@debbugs.gnu.org; Tue, 23 Feb 2016 06:58:21 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55855) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aYBbg-0007Za-Un for 22752@debbugs.gnu.org; Tue, 23 Feb 2016 06:58:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aYBbb-0002dR-7A for 22752@debbugs.gnu.org; Tue, 23 Feb 2016 06:58:15 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:37272) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aYBbT-0002Ya-EK; Tue, 23 Feb 2016 06:58:07 -0500 Received: from reverse-83.fdn.fr ([80.67.176.83]:35608 helo=pluto) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1aYBbS-0003eR-PD; Tue, 23 Feb 2016 06:58:07 -0500 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20160220105236.17956.75431@vcs.savannah.gnu.org> <20160221055505.GB26827@jasmine> <56C9535A.7030308@uq.edu.au> <20160221065958.GA15104@jasmine> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 5 =?UTF-8?Q?Vent=C3=B4se?= an 224 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x3D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-unknown-linux-gnu Date: Tue, 23 Feb 2016 12:58:04 +0100 In-Reply-To: <20160221065958.GA15104@jasmine> (Leo Famulari's message of "Sun, 21 Feb 2016 01:59:58 -0500") Message-ID: <877fhvljub.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) Leo Famulari skribis: > On Sun, Feb 21, 2016 at 04:04:10PM +1000, Ben Woodcroft wrote: >>=20 >>=20 >> On 21/02/16 15:55, Leo Famulari wrote: >> >On Sat, Feb 20, 2016 at 10:53:05AM +0000, Ben Woodcroft wrote: >> >>benwoodcroft pushed a commit to branch master >> >>in repository guix. >> >> >> >>commit fbc5b815cce85a6af75226ab16acf243fd7d22ce >> >>Author: Ben Woodcroft >> >>Date: Fri Jan 1 16:56:07 2016 +1000 >> >> >> >> import: gem: Add updater. >> >Since this commit, I can no longer use guix refresh. >> Hmm, I guess I messed something up then. I do not have any problem thoug= h. > > Everything worked again after I completely rebuilt from git. I guess > there was some ABI mismatch between the compiled files that had been > updated at certain times. Or maybe you had removed Guile-JSON in the meantime? And indeed, the unneeded #:use-module (guix import gem) would be causing problems when Guile-JSON is missing, so I=E2=80=99ve removed it. Thanks, Ludo=E2=80=99. From unknown Tue Aug 19 05:11:44 2025 X-Loop: help-debbugs@gnu.org Subject: bug#22752: 01/01: import: gem: Add updater. Resent-From: Ben Woodcroft Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 23 Feb 2016 12:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22752 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= , 22752@debbugs.gnu.org Received: via spool by 22752-submit@debbugs.gnu.org id=B22752.145622890629560 (code B ref 22752); Tue, 23 Feb 2016 12:02:02 +0000 Received: (at 22752) by debbugs.gnu.org; 23 Feb 2016 12:01:46 +0000 Received: from localhost ([127.0.0.1]:39384 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aYBf0-0007gi-9U for submit@debbugs.gnu.org; Tue, 23 Feb 2016 07:01:46 -0500 Received: from mailhub2.soe.uq.edu.au ([130.102.132.209]:54714 helo=newmailhub.uq.edu.au) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aYBey-0007gX-FH for 22752@debbugs.gnu.org; Tue, 23 Feb 2016 07:01:45 -0500 Received: from smtp1.soe.uq.edu.au (smtp1.soe.uq.edu.au [10.138.113.40]) by newmailhub.uq.edu.au (8.14.5/8.14.5) with ESMTP id u1NC1fHg008958; Tue, 23 Feb 2016 22:01:41 +1000 Received: from [192.168.1.105] (static.customers.nuskope.com.au [103.25.181.216] (may be forged)) (authenticated bits=0) by smtp1.soe.uq.edu.au (8.14.5/8.14.5) with ESMTP id u1NC1ds3026040 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 23 Feb 2016 22:01:40 +1000 References: <20160220105236.17956.75431@vcs.savannah.gnu.org> <20160221055505.GB26827@jasmine> <56C9535A.7030308@uq.edu.au> <20160221065958.GA15104@jasmine> <877fhvljub.fsf@gnu.org> From: Ben Woodcroft Message-ID: <56CC4A22.6090004@uq.edu.au> Date: Tue, 23 Feb 2016 22:01:38 +1000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <877fhvljub.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-UQ-FilterTime: 1456228901 X-Scanned-By: MIMEDefang 2.73 on UQ Mailhub X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) On 23/02/16 21:58, Ludovic Courtès wrote: > Leo Famulari skribis: > >> On Sun, Feb 21, 2016 at 04:04:10PM +1000, Ben Woodcroft wrote: >>> >>> On 21/02/16 15:55, Leo Famulari wrote: >>>> On Sat, Feb 20, 2016 at 10:53:05AM +0000, Ben Woodcroft wrote: >>>>> benwoodcroft pushed a commit to branch master >>>>> in repository guix. >>>>> >>>>> commit fbc5b815cce85a6af75226ab16acf243fd7d22ce >>>>> Author: Ben Woodcroft >>>>> Date: Fri Jan 1 16:56:07 2016 +1000 >>>>> >>>>> import: gem: Add updater. >>>> Since this commit, I can no longer use guix refresh. >>> Hmm, I guess I messed something up then. I do not have any problem though. >> Everything worked again after I completely rebuilt from git. I guess >> there was some ABI mismatch between the compiled files that had been >> updated at certain times. > Or maybe you had removed Guile-JSON in the meantime? And indeed, the > unneeded #:use-module (guix import gem) would be causing problems when > Guile-JSON is missing, so I’ve removed it. Thanks Ludo, I appreciate it. Apologies for including it in the first place. ben