From c4e8d513f2048bd7ca3b57c73c2b217a349e7b46 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Tue, 5 May 2015 13:46:20 +0200
Subject: [PATCH] gnu-maintenance: 'gnu-package?' returns #t for R and for
 GNOME packages.

Reported by John Darrington.

* guix/gnu-maintenance.scm (gnu-package?)[mirror-type]: Add "gnome" to
  the list of GNU mirrors.  Return #f for "cran".
---
 guix/gnu-maintenance.scm | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm
index 0528e9f2533..5cdda28bc75 100644
--- a/guix/gnu-maintenance.scm
+++ b/guix/gnu-maintenance.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2010, 2011, 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -179,9 +179,18 @@ (define gnu-package?
        (define (mirror-type url)
          (let ((uri (string->uri url)))
            (and (eq? (uri-scheme uri) 'mirror)
-                (if (member (uri-host uri) '("gnu" "gnupg" "gcc"))
-                    'gnu
-                    'non-gnu))))
+                (cond
+                 ((member (uri-host uri)
+                          '("gnu" "gnupg" "gcc" "gnome"))
+                  ;; Definitely GNU.
+                  'gnu)
+                 ((equal? (uri-host uri) "cran")
+                  ;; Possibly GNU: mirror://cran could be either GNU R itself
+                  ;; or a non-GNU package.
+                  #f)
+                 (else
+                  ;; Definitely non-GNU.
+                  'non-gnu)))))
 
        (let ((url  (and=> (package-source package) origin-uri))
              (name (package-name package)))
-- 
GitLab