[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#55030] [PATCH 18/30] gnu: elm: Support 'elm reactor'.
From: |
Philip McGrath |
Subject: |
[bug#55030] [PATCH 18/30] gnu: elm: Support 'elm reactor'. |
Date: |
Tue, 19 Apr 2022 19:32:02 -0400 |
* gnu/packages/elm.scm (elm): Rename to ...
(elm-sans-reactor): ... this new variable.
[synopsis, description]: Tweak.
(elm): New variable.
* guix/build-system/elm.scm (default-elm): Use elm-sans-reactor.
---
gnu/packages/elm.scm | 75 +++++++++++++++++++++++++++++++++++++--
guix/build-system/elm.scm | 2 +-
2 files changed, 74 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm
index 53e250ee22..4181322393 100644
--- a/gnu/packages/elm.scm
+++ b/gnu/packages/elm.scm
@@ -40,9 +40,9 @@ (define-module (gnu packages elm)
;; `elm reactor` exit with a useful error message if they aren't there.
(define %reactor-root-base
"share/elm/reactor-")
-(define-public elm
+(define-public elm-sans-reactor
(package
- (name "elm")
+ (name "elm-sans-reactor")
(version "0.19.1")
(source
(origin
@@ -93,6 +93,77 @@ (define-public elm
ghc-vector
ghc-zip-archive))
(home-page "https://elm-lang.org")
+ (synopsis "Minimal variant of @command{elm}")
+ (description
+ "This package provides a version of the Elm compiler without support for
+the @command{elm reactor} development command.")
+ (license license:bsd-3)))
+
+(define-public elm
+ (package
+ (name "elm")
+ (version (package-version elm-sans-reactor))
+ (source (package-source elm-sans-reactor))
+ (native-inputs (list elm-sans-reactor))
+ (inputs (list elm-sans-reactor
+ elm-browser
+ elm-core
+ elm-html
+ elm-http
+ elm-json
+ elm-project-metadata-utils
+ elm-svg
+ elm-explorations-markdown))
+ (build-system elm-build-system)
+ (arguments
+ (list
+ #:modules
+ `((srfi srfi-26)
+ ,@%elm-default-modules)
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'stage)
+ (replace 'configure
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (with-directory-excursion "reactor"
+ (patch-application-dependencies))))
+ (replace 'build
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (with-directory-excursion "reactor"
+ (invoke (search-input-file (or native-inputs inputs)
+ "/bin/elm")
+ "make"
+ "--optimize"
+ "src/NotFound.elm"
+ "src/Errors.elm"
+ "src/Index.elm"))))
+ (replace 'install
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((out-dir #$output)
+ (bin-dir (string-append out-dir "/bin"))
+ (reactor-dir (string-append out-dir
+ "/"
+ #$%reactor-root-base
+ (getenv "GUIX_ELM_VERSION")))
+ (reactor-subdir (string-append reactor-dir "/_elm")))
+ ;; We can't use a symlink here because Haskell's
+ ;; `getExecutablePath` follows all symlinks.
+ ;; Guix can make it a hard link later.
+ (install-file (search-input-file inputs ;; NOT native-inputs
+ "/bin/elm")
+ bin-dir)
+ (install-file "reactor/assets/favicon.ico" reactor-dir)
+ (for-each (cut install-file <> reactor-subdir)
+ '("reactor/elm.js"
+ "reactor/assets/styles.css"
+ ;; TODO: these are source-code-pro v1.017 and
+ ;; source-sans-pro v1.050: there may be breaking
+ ;; changes in Guix's existing
+ ;; font-adobe-source-{code,sans}-pro packages
+ "reactor/assets/source-code-pro.ttf"
+ "reactor/assets/source-sans-pro.ttf")))))
+ (delete 'validate-compiled))))
+ (home-page "https://elm-lang.org")
(synopsis "Programming language for Web applications")
(description
"Elm is a statically-typed, purely-functional programming language for
diff --git a/guix/build-system/elm.scm b/guix/build-system/elm.scm
index 046e6e0a1f..5e2db3b052 100644
--- a/guix/build-system/elm.scm
+++ b/guix/build-system/elm.scm
@@ -73,7 +73,7 @@ (define (default-elm)
"Return the default Elm package for builds."
;; Lazily resolve the binding to avoid a circular dependency.
(let ((elm (resolve-interface '(gnu packages elm))))
- (module-ref elm 'elm)))
+ (module-ref elm 'elm-sans-reactor)))
(define (default-elm-core)
"Return the default elm-core package."
--
2.32.0
- [bug#55030] [PATCH 25/30] gnu: Add elm-justinmimbs-date., (continued)
- [bug#55030] [PATCH 25/30] gnu: Add elm-justinmimbs-date., Philip McGrath, 2022/04/19
- [bug#55030] [PATCH 20/30] gnu: Add elm-debois-elm-dom., Philip McGrath, 2022/04/19
- [bug#55030] [PATCH 24/30] gnu: Add elm-danhandrea-elm-time-extra., Philip McGrath, 2022/04/19
- [bug#55030] [PATCH 19/30] gnu: Add elm-todomvc., Philip McGrath, 2022/04/19
- [bug#55030] [PATCH 17/30] gnu: Add elm-explorations-markdown., Philip McGrath, 2022/04/19
- [bug#55030] [PATCH 22/30] gnu: Add elm-explorations-test., Philip McGrath, 2022/04/19
- [bug#55030] [PATCH 21/30] gnu: Add elm-random., Philip McGrath, 2022/04/19
- [bug#55030] [PATCH 23/30] gnu: Add elm-danhandrea-elm-date-format., Philip McGrath, 2022/04/19
- [bug#55030] [PATCH 16/30] gnu: Add elm-project-metadata-utils., Philip McGrath, 2022/04/19
- [bug#55030] [PATCH 28/30] gnu: Add elm-ryannhg-date-format., Philip McGrath, 2022/04/19
- [bug#55030] [PATCH 18/30] gnu: elm: Support 'elm reactor'.,
Philip McGrath <=
- [bug#55030] [PATCH 27/30] gnu: Add elm-myrho-elm-round., Philip McGrath, 2022/04/19
- [bug#55030] [PATCH 30/30] gnu: Add elm-terezka-elm-charts., Philip McGrath, 2022/04/19
- [bug#55030] [PATCH 29/30] gnu: Add elm-terezka-intervals., Philip McGrath, 2022/04/19