From c902458863d1d341ffd74970b75e69c2bb848183 Mon Sep 17 00:00:00 2001 From: Robert Vollmert Date: Mon, 15 Jul 2019 15:47:14 +0200 Subject: gnu: Add elm-compiler 0.19.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds the elm compiler, version 0.19.0. This provides the `elm` command, with the exception of the `elm reactor` subcommand. Named `elm-compiler`, to leave space for `elm` as the full elm including reactor. * gnu/packages/elm.scm: New module. (elm-compiler): New package. * gnu/packages/patches/elm-disable-reactor.patch: New patch. * gnu/packages/patches/elm-fix-map-key.patch: New patch. * gnu/packages/patches/elm-relax-glsl-bound.patch: New patch. * gnu/local.mk: Add new files. Co-authored-by: Ludovic Courtès --- gnu/packages/elm.scm | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 gnu/packages/elm.scm (limited to 'gnu/packages/elm.scm') diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm new file mode 100644 index 0000000000..8b5ec36621 --- /dev/null +++ b/gnu/packages/elm.scm @@ -0,0 +1,81 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Robert Vollmert +;;; +;;; 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 . + +(define-module (gnu packages elm) + #:use-module (gnu packages) + #:use-module (gnu packages haskell) + #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-crypto) + #:use-module (gnu packages haskell-xyz) + #:use-module (gnu packages haskell-web) + #:use-module (guix build-system haskell) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages)) + +;; The full elm build calls out to itself via Template Haskell to +;; compile the elm reactor web app. elm reactor isn't required to +;; compile elm applications, so we take this part out of this +;; bootstrap package. +(define-public elm-compiler + (package + (name "elm-compiler") + (version "0.19.0") + (source + (origin + (method git-fetch) + (file-name (git-file-name name version)) + (uri (git-reference + (url "https://github.com/elm/compiler/") + (commit version))) + (sha256 + (base32 "0s93z9vr0vp5w894ghc5s34nsq09sg1msf59zfiba87sid5vgjqy")) + (patches + (search-patches "elm-compiler-disable-reactor.patch" + "elm-compiler-relax-glsl-bound.patch" + "elm-compiler-fix-map-key.patch")))) + (build-system haskell-build-system) + (inputs + `(("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) + ("ghc-edit-distance" ,ghc-edit-distance) + ("ghc-file-embed" ,ghc-file-embed) + ("ghc-http" ,ghc-http) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-client-tls" ,ghc-http-client-tls) + ("ghc-http-types" ,ghc-http-types) + ("ghc-language-glsl" ,ghc-language-glsl) + ("ghc-logict" ,ghc-logict) + ("ghc-network" ,ghc-network) + ("ghc-raw-strings-qq" ,ghc-raw-strings-qq) + ("ghc-scientific" ,ghc-scientific) + ("ghc-sha" ,ghc-sha) + ("ghc-snap-core" ,ghc-snap-core) + ("ghc-snap-server" ,ghc-snap-server) + ("ghc-unordered-containers" + ,ghc-unordered-containers) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-vector" ,ghc-vector) + ("ghc-zip-archive" ,ghc-zip-archive))) + (home-page "https://elm-lang.org") + (synopsis "Programming language for Web applications") + (description + "This package provides Elm, a statically-typed functional programming +language for the browser. It includes commands for developers such as +@command{elm make} and @command{elm repl}.") + (license license:bsd-3))) -- cgit v1.2.3