~ruther/guix-local

29a7c98a422bf3b9503ac8375db2ab28ef2dfe32 — Ian Denhardt 11 years ago 38bf090
gnu: Add 'version-prefix' and 'version-major+minor'; use them.

The procedure version-prefix truncates a version string to a certain
number of components. version-major+minor is a special case of this,
which extracts the "major.minor" part of the string. Previously this
was handled by an expression common to several packages.

* guix/utils.scm (version-prefix, version-major+minor): New procedures
* gnu/packages/backup.scm (duplicity): Use version-major+minor.
* gnu/packages/cmake.scm (cmake): Likewise.
* gnu/packages/gnome.scm (libbonobo, libbonoboui): Likewise.
* gnu/packages/gnutls.scm (gnutls): Likewise.
* gnu/packages/mail.scm (gmime): Likewise.
* gnu/packages/mpd.scm (mpd): Likewise.
* gnu/packages/mpi.scm (openmpi): Likewise.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
M gnu/packages/backup.scm => gnu/packages/backup.scm +4 -3
@@ 1,5 1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 20,6 21,7 @@
  #:use-module (guix packages)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix download)
  #:use-module (guix utils)
  #:use-module (guix build utils)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system python)


@@ 38,8 40,7 @@
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages rsync)
  #:use-module (gnu packages ssh)
  #:use-module (gnu packages xml)
  #:use-module (srfi srfi-1))
  #:use-module (gnu packages xml))

(define-public duplicity
  (package


@@ 49,7 50,7 @@
     (origin
      (method url-fetch)
      (uri (string-append "https://code.launchpad.net/duplicity/"
                          (string-join (take (string-split version #\.) 2) ".")
                          (version-major+minor version)
                          "-series/" version "/+download/duplicity-"
                          version ".tar.gz"))
      (sha256

M gnu/packages/cmake.scm => gnu/packages/cmake.scm +5 -6
@@ 2,6 2,7 @@
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 22,14 23,14 @@
  #:use-module ((guix licenses) #:select (bsd-3))
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix utils)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages)
  #:use-module (gnu packages backup)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages curl)
  #:use-module (gnu packages file)
  #:use-module (gnu packages xml)
  #:use-module (srfi srfi-1))
  #:use-module (gnu packages xml))

(define-public cmake
  (package


@@ 39,8 40,7 @@
             (method url-fetch)
             (uri (string-append
                   "http://www.cmake.org/files/v"
                   (string-join (take (string-split version #\.) 2)
                                ".")
                   (version-major+minor version)
                   "/cmake-" version ".tar.gz"))
             (sha256
              (base32 "11q21vyrr6c6smyjy81k2k07zmn96ggjia9im9cxwvj0n88bm1fq"))


@@ 91,8 91,7 @@
                               "--mandir=share/man"
                               ,(string-append
                                 "--docdir=share/doc/cmake-"
                                 (string-join (take (string-split version #\.) 2)
                                              "."))))))
                                 (version-major+minor version))))))
                   %standard-phases)))))
    (inputs
     `(("file"       ,file)

M gnu/packages/gnome.scm => gnu/packages/gnome.scm +5 -5
@@ 1,6 1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 21,6 22,7 @@
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix utils)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages)
  #:use-module (gnu packages bison)


@@ 42,8 44,7 @@
  #:use-module (gnu packages xml)
  #:use-module (gnu packages gl)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages xorg)
  #:use-module (srfi srfi-1))
  #:use-module (gnu packages xorg))

(define-public brasero
  (package


@@ 706,8 707,7 @@ featuring mature C, C++ and Python bindings.")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/" name "/"
                                  (string-join (take (string-split version #\.) 2)
                                               ".")
                                  (version-major+minor version)
                                  "/" name "-" version ".tar.bz2"))
              (sha256
               (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))


@@ 1077,7 1077,7 @@ widgets built in the loading process.")
              (method url-fetch)
              (uri (string-append
                    "mirror://gnome/sources/" name "/"
                    (string-join (take (string-split version #\.) 2) ".")
                    (version-major+minor version)
                    "/" name "-" version ".tar.bz2"))
              (sha256
               (base32

M gnu/packages/gnutls.scm => gnu/packages/gnutls.scm +4 -4
@@ 1,6 1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 21,6 22,7 @@
  #:use-module (guix licenses)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix utils)
  #:use-module (guix build-system gnu)
  #:use-module ((gnu packages compression) #:prefix guix:)
  #:use-module (gnu packages)


@@ 29,8 31,7 @@
  #:use-module (gnu packages perl)
  #:use-module (gnu packages which)
  #:use-module (gnu packages texinfo)
  #:use-module (gnu packages pkg-config)
  #:use-module (srfi srfi-1))
  #:use-module (gnu packages pkg-config))

(define-public libtasn1
  (package


@@ 69,8 70,7 @@ specifications.")
              ;; Note: Releases are no longer on ftp.gnu.org since the
              ;; schism (after version 3.1.5).
              (string-append "mirror://gnupg/gnutls/v"
                             (string-join (take (string-split version #\.) 2)
                                          ".")
                             (version-major+minor version)
                             "/gnutls-" version ".tar.xz"))
             (sha256
              (base32

M gnu/packages/mail.scm => gnu/packages/mail.scm +4 -5
@@ 1,6 1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 49,9 50,9 @@
                #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ lgpl3+))
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix utils)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system python)
  #:use-module (srfi srfi-1))
  #:use-module (guix build-system python))

(define-public mailutils
  (package


@@ 192,9 193,7 @@ operating systems.")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/gmime/"
                                  (string-join (take (string-split version #\.)
                                                     2)
                                               ".")
                                  (version-major+minor version)
                                  "/gmime-" version ".tar.xz"))
              (sha256
               (base32

M gnu/packages/mpd.scm => gnu/packages/mpd.scm +3 -3
@@ 2,6 2,7 @@
;;; Copyright © 2014 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 19,11 20,11 @@
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages mpd)
  #:use-module (srfi srfi-1)
  #:use-module (gnu packages)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix utils)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages avahi)
  #:use-module (gnu packages compression)


@@ 72,8 73,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
              (method url-fetch)
              (uri
               (string-append "http://musicpd.org/download/mpd/"
                              (string-join (take (string-split
                                                  version #\.) 2) ".")
                              (version-major+minor version)
                              "/mpd-" version ".tar.gz"))
              (sha256
               (base32

M gnu/packages/mpi.scm => gnu/packages/mpi.scm +4 -4
@@ 1,6 1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 22,6 23,7 @@
  #:use-module ((guix licenses)
                #:hide (expat))
  #:use-module (guix download)
  #:use-module (guix utils)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages)
  #:use-module (gnu packages gcc)


@@ 32,8 34,7 @@
  #:use-module (gnu packages xml)
  #:use-module (gnu packages ncurses)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages valgrind)
  #:use-module (srfi srfi-1))
  #:use-module (gnu packages valgrind))

(define-public hwloc
  (package


@@ 88,8 89,7 @@ bind processes, and much more.")
     (origin
      (method url-fetch)
      (uri (string-append "http://www.open-mpi.org/software/ompi/v"
                          (string-join (take (string-split version #\.) 2)
                                       ".")
                          (version-major+minor version)
                          "/downloads/openmpi-" version ".tar.bz2"))
      (sha256
       (base32

M guix/utils.scm => guix/utils.scm +14 -0
@@ 2,6 2,7 @@
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 65,6 66,8 @@
            %current-target-system
            version-compare
            version>?
            version-prefix
            version-major+minor
            guile-version>?
            package-name->name+version
            string-tokenize*


@@ 518,6 521,17 @@ or '= when they denote equal versions."
              ((negative? result) '<)
              (else '=))))))

(define (version-prefix version-string num-parts)
  "Truncate version-string to the first num-parts components of the version.
For example, (version-prefix \"2.1.47.4.23\" 3) returns \"2.1.47\""
  (string-join (take (string-split version-string #\.) num-parts) "."))


(define (version-major+minor version-string)
  "Return \"<major>.<minor>\", where major and minor are the major and
minor version numbers from version-string."
  (version-prefix version-string 2))

(define (version>? a b)
  "Return #t when A denotes a newer version than B."
  (eq? '> (version-compare a b)))