aboutsummaryrefslogtreecommitdiff
path: root/tests/elpa.scm
blob: 46c6ac2d757a20000d8d911f3e4e00b146851aeb (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;;
;;; 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 (test-elpa)
  #:use-module (guix import elpa)
  #:use-module (guix tests)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-64)
  #:use-module (ice-9 match))

(define elpa-mock-archive
  '(1
    (ace-window .
                [(0 9 0)
                 ((avy
                   (0 2 0)))
                 "Quickly switch windows." single
                 ((:url . "https://github.com/abo-abo/ace-window")
                  (:keywords "window" "location"))])
    (auctex .
            [(11 88 6)
             nil "Integrated environment for *TeX*" tar
             ((:url . "http://www.gnu.org/software/auctex/"))])))

(define auctex-readme-mock "This is the AUCTeX description.")

(define* (elpa-package-info-mock name #:optional (repo "gnu"))
  "Simulate retrieval of 'archive-contents' file from REPO and extraction of
information about package NAME. (Function 'elpa-package-info'.)"
  (let* ((archive elpa-mock-archive)
         (info (filter (lambda (p) (eq? (first p) (string->symbol name)))
                       (cdr archive))))
    (if (pair? info) (first info) #f)))

(define elpa-version->string
  (@@ (guix import elpa) elpa-version->string))

(define package-source-url
  (@@ (guix import elpa) package-source-url))

(define ensure-list
  (@@ (guix import elpa) ensure-list))

(define package-home-page
  (@@ (guix import elpa) package-home-page))

(define make-elpa-package
  (@@ (guix import elpa) make-elpa-package))

(test-begin "elpa")

(define (eval-test-with-elpa pkg)
  (mock
   ;; replace the two fetching functions
   ((guix import elpa) fetch-elpa-package
    (lambda* (name #:optional (repo "gnu"))
      (let ((pkg (elpa-package-info-mock name repo)))
        (match pkg
          ((name version reqs synopsis kind . rest)
           (let* ((name (symbol->string name))
                  (ver (elpa-version->string version))
                  (url (package-source-url kind name ver repo)))
             (make-elpa-package name ver
                                (ensure-list reqs) synopsis kind
                                (package-home-page (first rest))
                                auctex-readme-mock
                                url)))
          (_ #f)))))
   (match (elpa->guix-package pkg)
     (('package
        ('name "emacs-auctex")
        ('version "11.88.6")
        ('source
         ('origin
           ('method 'url-fetch)
           ('uri ('string-append
                  "http://elpa.gnu.org/packages/auctex-" 'version ".tar"))
           ('sha256 ('base32 (? string? hash)))))
        ('build-system 'emacs-build-system)
        ('home-page "http://www.gnu.org/software/auctex/")
        ('synopsis "Integrated environment for *TeX*")
        ('description (? string?))
        ('license 'license:gpl3+))
      #t)
     (x
      (pk 'fail x #f)))))

(test-assert "elpa->guix-package test 1"
  (eval-test-with-elpa "auctex"))

(test-end "elpa")
it/gnu/packages/wine.scm?id=4c9287432824f396d5c614c3b2287f553cd9fb90'>gnu: Add and use sane-backends....* gnu/packages/scanner.scm (sane-backends): New variable. * gnu/packages/gnome.scm (colord, simple-scan): Use it instead of 'sane-backends-minimal'. * gnu/packages/libreoffice.scm (libreoffice): Likewise. * gnu/packages/wine.scm (wine): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Andy Patterson 2016-12-17gnu: Add and use sane-backends-minimal....* gnu/packages/scanner.scm (sane-backends): Rename to... (sane-backends-minimal): this. Adjust name, source, synopsis and description accordingly. * gnu/packages/cups.scm (hplip): Use 'sane-backends-minimal' instead of 'sane-backends'. * gnu/packages/gnome.scm (colord, simple-scan): Likewise. * gnu/packages/libreoffice.scm (libreoffice): Likewise. * gnu/packages/wine.scm (wine): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Andy Patterson 2016-11-29gnu: wine: Use 'modify-phases' syntax....* gnu/packages/wine.scm (wine)[arguments]: Use 'modify-phases' syntax. Efraim Flashner 2016-11-29gnu: wine: Update to 1.9.24....* gnu/packages/wine.scm (wine): Update to 1.9.24. [home-page]: Use https. Efraim Flashner 2016-09-28gnu: Add and use gettext-minimal....* gnu/packages/gettext.scm (gnu-gettext): Rename to... (gettext-minimal): ... this. Adjust synopsis and description. (gnu-gettext): Inherit from it. (po4a): Use 'gettext-minimal' instead of 'gnu-gettext'. * gnu/packages/acl.scm: Likewise. * gnu/packages/admin.scm: Likewise. * gnu/packages/apl.scm: Likewise. * gnu/packages/attr.scm: Likewise. * gnu/packages/audio.scm: Likewise. * gnu/packages/base.scm: Likewise. * gnu/packages/cdrom.scm: Likewise. * gnu/packages/commencement.scm: Likewise. * gnu/packages/crypto.scm: Likewise. * gnu/packages/databases.scm: Likewise. * gnu/packages/disk.scm: Likewise. * gnu/packages/documentation.scm: Likewise. * gnu/packages/education.scm: Likewise. * gnu/packages/engineering.scm: Likewise. * gnu/packages/enlightenment.scm: Likewise. * gnu/packages/fcitx.scm: Likewise. * gnu/packages/fontutils.scm: Likewise. * gnu/packages/freedesktop.scm: Likewise. * gnu/packages/games.scm: Likewise. * gnu/packages/gkrellm.scm: Likewise. * gnu/packages/glib.scm: Likewise. * gnu/packages/gnome.scm: Likewise. * gnu/packages/grub.scm: Likewise. * gnu/packages/gtk.scm: Likewise. * gnu/packages/guile.scm: Likewise. * gnu/packages/ibus.scm: Likewise. * gnu/packages/irc.scm: Likewise. * gnu/packages/iso-codes.scm: Likewise. * gnu/packages/kde-frameworks.scm: Likewise. * gnu/packages/kodi.scm: Likewise. * gnu/packages/linux.scm: Likewise. * gnu/packages/man.scm: Likewise. * gnu/packages/maths.scm: Likewise. * gnu/packages/mono.scm: Likewise. * gnu/packages/mp3.scm: Likewise. * gnu/packages/music.scm: Likewise. * gnu/packages/nano.scm: Likewise. * gnu/packages/networking.scm: Likewise. * gnu/packages/package-management.scm: Likewise. * gnu/packages/pdf.scm: Likewise. * gnu/packages/sawfish.scm: Likewise. * gnu/packages/statistics.scm: Likewise. * gnu/packages/terminals.scm: Likewise. * gnu/packages/version-control.scm: Likewise. * gnu/packages/vpn.scm: Likewise. * gnu/packages/w3m.scm: Likewise. * gnu/packages/webkit.scm: Likewise. * gnu/packages/wicd.scm: Likewise. * gnu/packages/wine.scm: Likewise. * gnu/packages/xdisorg.scm: Likewise. * gnu/packages/xorg.scm: Likewise. Alex Kost 2016-07-31gnu: wine: Update to 1.9.15....* gnu/packages/wine.scm (wine): Update to 1.9.15. Andreas Enge 2016-02-20gnu: wine: Update to 1.9.4....* gnu/packages/wine.scm (wine): Update to 1.9.4. [origin]: Remove snippet. [arguments]: Set SHELL with make-flags. Ricardo Wurmus 2015-10-05gnu: wine: Update to 1.7.52, add more inputs....* gnu/packages/wine.scm (wine): Update to 1.7.52. [inputs]: Add cups, glu and openal. 宋文武 2015-07-05gnu: Rename module gnutls to tls....* gnu/packages/gnutls.scm: Rename to... * gnu/packages/tls.scm: ... this. Change module name accordingly. * gnu/packages/{admin.scm, cups.scm, curl.scm, dc.scm, dns.scm, emacs.scm, ftp.scm, gnome.scm, gnunet.scm, gnupg.scm, gsasl.scm, lynx.scm, mail.scm, messaging.scm, package-management.scm, shishi.scm, task-management.scm, version-control.scm, video.scm, vpn.scm, webkit.scm, weechat.scm, wget.scm, wine.scm, xml.scm}: Adapt module import to new name. * gnu-system.am (GNU_SYSTEM_MODULES): Rename gnutls module to tls. Andreas Enge 2015-04-15gnu: wine: Add $libdir to the RUNPATH of binaries....* gnu/packages/wine.scm (wine)[arguments]: Add #:configure-flags. 宋文武 2015-04-15gnu: wine: Update to 1.7.40....* gnu/packages/wine.scm (wine): Update to 1.7.40. 宋文武 2014-11-18gnu: Add Wine....* gnu/packages/wine.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> 宋文武