~ruther/guix-local

67863365f2cef1547e70966a49430bb6529c2203 — Nicolas Goaziou 4 years ago 9ad779f
gnu: emacs-haskell-mode: Use new style.

* gnu/packages/emacs-xyz.scm (emacs-haskell-mode)[arguments]: Use gexps.
1 files changed, 57 insertions(+), 60 deletions(-)

M gnu/packages/emacs-xyz.scm
M gnu/packages/emacs-xyz.scm => gnu/packages/emacs-xyz.scm +57 -60
@@ 1408,71 1408,68 @@ replacement.")
     (list emacs-minimal emacs-el-search emacs-stream texinfo))
    (build-system gnu-build-system)
    (arguments
     `(#:make-flags (list (string-append "EMACS="
                                         (assoc-ref %build-inputs "emacs-minimal")
                                         "/bin/emacs"))
       #:modules ((ice-9 match)
     (list
      #:make-flags #~(list
                      (string-append "EMACS=" #$emacs-minimal "/bin/emacs"))
      #:modules `((ice-9 match)
                  (srfi srfi-26)
                  ((guix build emacs-build-system) #:prefix emacs:)
                  ,@%gnu-build-system-modules)
       #:imported-modules (,@%gnu-build-system-modules
      #:imported-modules `(,@%gnu-build-system-modules
                           (guix build emacs-build-system)
                           (guix build emacs-utils))
       #:phases
       (modify-phases %standard-phases
         (delete 'configure)
         (add-before 'build 'pre-build
           (lambda* (#:key inputs #:allow-other-keys)
             (define (el-dir store-dir)
               (match (find-files store-dir "\\.el$")
                 ((f1 f2 ...) (dirname f1))
                 (_ "")))

             (let ((sh (search-input-file inputs "/bin/sh")))
               (define emacs-prefix? (cut string-prefix? "emacs-" <>))

               (setenv "SHELL" "sh")
               (setenv "EMACSLOADPATH"
                       (string-concatenate
                        (map (match-lambda
                               (((? emacs-prefix? name) . dir)
                                (string-append (el-dir dir) ":"))
                               (_ ""))
                             inputs)))
               (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
               #t)))
         (add-before 'check 'delete-failing-tests
           ;; XXX: these tests require GHC executable, which would be a big
           ;; native input.
           (lambda _
             (with-directory-excursion "tests"
               ;; File `haskell-indent-tests.el' fails with
               ;; `haskell-indent-put-region-in-literate-2'
               ;; on Emacs 27.1+
               ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
               (for-each delete-file
                         '("haskell-indent-tests.el"
                           "haskell-customize-tests.el"
                           "inferior-haskell-tests.el")))
             #t))
         (replace 'install
           (lambda* (#:key outputs #:allow-other-keys)
             (let* ((out (assoc-ref outputs "out"))
                    (el-dir (emacs:elpa-directory out))
                    (doc (string-append
                          out "/share/doc/haskell-mode-" ,version))
                    (info (string-append out "/share/info")))
               (define (copy-to-dir dir files)
                 (for-each (lambda (f)
                             (install-file f dir))
                           files))

               (with-directory-excursion "doc"
                 (invoke "makeinfo" "haskell-mode.texi")
                 (install-file "haskell-mode.info" info))
               (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
               (copy-to-dir el-dir (find-files "." "\\.elc?"))
               #t))))))
      #:phases
      #~(modify-phases %standard-phases
          (delete 'configure)
          (add-before 'build 'pre-build
            (lambda* (#:key inputs #:allow-other-keys)
              (define (el-dir store-dir)
                (match (find-files store-dir "\\.el$")
                  ((f1 f2 ...) (dirname f1))
                  (_ "")))

              (let ((sh (search-input-file inputs "/bin/sh")))
                (define emacs-prefix? (cut string-prefix? "emacs-" <>))

                (setenv "SHELL" "sh")
                (setenv "EMACSLOADPATH"
                        (string-concatenate
                         (map (match-lambda
                                (((? emacs-prefix? name) . dir)
                                 (string-append (el-dir dir) ":"))
                                (_ ""))
                              inputs)))
                (substitute* (find-files "." "\\.el") (("/bin/sh") sh)))))
          (add-before 'check 'delete-failing-tests
            ;; XXX: these tests require GHC executable, which would be a big
            ;; native input.
            (lambda _
              (with-directory-excursion "tests"
                ;; File `haskell-indent-tests.el' fails with
                ;; `haskell-indent-put-region-in-literate-2'
                ;; on Emacs 27.1+
                ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
                (for-each delete-file
                          '("haskell-indent-tests.el"
                            "haskell-customize-tests.el"
                            "inferior-haskell-tests.el")))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (el-dir (emacs:elpa-directory out))
                     (doc (string-append
                           out "/share/doc/haskell-mode-" #$version))
                     (info (string-append out "/share/info")))
                (define (copy-to-dir dir files)
                  (for-each (lambda (f)
                              (install-file f dir))
                            files))

                (with-directory-excursion "doc"
                  (invoke "makeinfo" "haskell-mode.texi")
                  (install-file "haskell-mode.info" info))
                (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
                (copy-to-dir el-dir (find-files "." "\\.elc?"))))))))
    (home-page "https://github.com/haskell/haskell-mode")
    (synopsis "Haskell mode for Emacs")
    (description