* Packaging elm-compiler 0.19.1
@ 2020-12-31 12:11 Matthew Kraai
2020-12-31 18:51 ` John Soo
0 siblings, 1 reply; 4+ messages in thread
From: Matthew Kraai @ 2020-12-31 12:11 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1.1: Type: text/plain, Size: 786 bytes --]
Hi,
I'm trying to upgrade to elm-compiler 0.19.1. With the attached patch,
it fails with the following error:
Configuring elm-0.19.1...
Setup.hs: Encountered missing dependencies:
time >=1.9.1
I think that time is part of GHC. I removed the version requirement for
time, but then it failed with the following error:
[ 8 of 130] Compiling File ( builder/src/File.hs, dist/build/elm/elm-tmp/File.dyn_o )
builder/src/File.hs:49:13: error:
Not in scope: ?Time.nominalDiffTimeToSeconds?
Neither ?Data.Time.Clock? nor ?Data.Time.Clock.POSIX? exports ?nominalDiffTimeToSeconds?.
|
49 | (Time . Time.nominalDiffTimeToSeconds . Time.utcTimeToPOSIXSeconds)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
How can I fix this problem?
--
Matthew Kraai
[-- Attachment #1.2: Type: text/html, Size: 1046 bytes --]
[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 8992 bytes --]
diff --git a/gnu/local.mk b/gnu/local.mk
index 2402b1e349..f74c66e3b0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -39,6 +39,7 @@
# Copyright © 2020 Martin Becze <mjbecze@riseup.net>
# Copyright © 2020 Malte Frank Gerdes <mate.f.gerdes@gmail.com>
# Copyright © 2020 Vinicius Monego <monego@posteo.net>
+# Copyright © 2020 Matthew Kraai <kraai@ftbfs.org>
#
# This file is part of GNU Guix.
#
@@ -948,7 +949,6 @@ dist_patch_DATA = \
%D%/packages/patches/elfutils-tests-ptrace.patch \
%D%/packages/patches/elixir-path-length.patch \
%D%/packages/patches/elm-compiler-disable-reactor.patch \
- %D%/packages/patches/elm-compiler-fix-map-key.patch \
%D%/packages/patches/emacs-exec-path.patch \
%D%/packages/patches/emacs-exwm-fix-fullscreen-states.patch \
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \
diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm
index feaa9c8d5c..f1e609b65b 100644
--- a/gnu/packages/elm.scm
+++ b/gnu/packages/elm.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
+;;; Copyright © 2020 Matthew Kraai <kraai@ftbfs.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,7 +36,7 @@
(define-public elm-compiler
(package
(name "elm-compiler")
- (version "0.19.0")
+ (version "0.19.1")
(source
(origin
(method git-fetch)
@@ -44,10 +45,9 @@
(url "https://github.com/elm/compiler/")
(commit version)))
(sha256
- (base32 "0s93z9vr0vp5w894ghc5s34nsq09sg1msf59zfiba87sid5vgjqy"))
+ (base32 "1rdg3xp3js9xadclk3cdypkscm5wahgsfmm4ldcw3xswzhw6ri8w"))
(patches
- (search-patches "elm-compiler-disable-reactor.patch"
- "elm-compiler-fix-map-key.patch"))))
+ (search-patches "elm-compiler-disable-reactor.patch"))))
(build-system haskell-build-system)
(arguments
`(#:phases
@@ -71,6 +71,7 @@
("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint)
("ghc-edit-distance" ,ghc-edit-distance)
("ghc-file-embed" ,ghc-file-embed)
+ ("ghc-filelock" ,ghc-filelock)
("ghc-http" ,ghc-http)
("ghc-http-client" ,ghc-http-client)
("ghc-http-client-tls" ,ghc-http-client-tls)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index d6c50ade71..961075e7ea 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -28,6 +28,7 @@
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
+;;; Copyright © 2020 Matthew Kraai <kraai@ftbfs.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4414,6 +4415,28 @@ the files in a directory, and turn them into @code{(path, bytestring)} pairs
embedded in your Haskell code.")
(license license:bsd-3)))
+(define-public ghc-filelock
+ (package
+ (name "ghc-filelock")
+ (version "0.1.1.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/filelock/filelock-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "06a44i7a956d7xkk2na4090xj2a7b7a228pk4spmccs4x20ymssh"))))
+ (build-system haskell-build-system)
+ (native-inputs `(("ghc-async" ,ghc-async)))
+ (home-page "http://github.com/takano-akio/filelock")
+ (synopsis "Portable interface to file locking (flock / LockFileEx)")
+ (description "This package provides an interface to Windows and Unix file
+locking functionalities.")
+ (license license:public-domain)))
+
(define-public ghc-filemanip
(package
(name "ghc-filemanip")
diff --git a/gnu/packages/patches/elm-compiler-disable-reactor.patch b/gnu/packages/patches/elm-compiler-disable-reactor.patch
index 9871b55e8d..a91bbd94b8 100644
--- a/gnu/packages/patches/elm-compiler-disable-reactor.patch
+++ b/gnu/packages/patches/elm-compiler-disable-reactor.patch
@@ -1,16 +1,21 @@
-commit 20d80e2323b565a36751c9455e535d8f73fa32f7
-Author: Robert Vollmert <rob@vllmrt.net>
-Date: Fri Jun 14 16:05:47 2019 +0200
+From 6edf6711f08a5c67400f0eb087c9e966aa93b05a Mon Sep 17 00:00:00 2001
+From: Robert Vollmert <rob@vllmrt.net>
+Date: Sat, 12 Dec 2020 07:24:30 -0800
+Subject: [PATCH] disable reactor
- disable reactor
+---
+ elm.cabal | 5 -----
+ terminal/src/Develop.hs | 12 +-----------
+ terminal/src/Main.hs | 1 -
+ 3 files changed, 1 insertion(+), 17 deletions(-)
diff --git a/elm.cabal b/elm.cabal
-index c75f9689..ece63c46 100644
+index bf1cfcf0..8f7b2bd5 100644
--- a/elm.cabal
+++ b/elm.cabal
-@@ -45,9 +45,6 @@ Executable elm
- builder/src
- ui/terminal/src
+@@ -48,9 +48,6 @@ Executable elm
+ terminal/impl
+ terminal/src
- other-extensions:
- TemplateHaskell
@@ -18,34 +23,34 @@ index c75f9689..ece63c46 100644
Main-Is:
Main.hs
-@@ -56,8 +53,6 @@ Executable elm
- Develop
+@@ -74,8 +71,6 @@ Executable elm
+ -- from terminal/
Develop.Generate.Help
Develop.Generate.Index
- Develop.StaticFiles
- Develop.StaticFiles.Build
- Diff
- Init
- Install
-diff --git a/ui/terminal/src/Develop.hs b/ui/terminal/src/Develop.hs
-index 4b2252e1..7ed7716e 100644
---- a/ui/terminal/src/Develop.hs
-+++ b/ui/terminal/src/Develop.hs
-@@ -23,7 +23,6 @@ import Snap.Util.FileServe
- import qualified Elm.Project as Project
- import qualified Develop.Generate.Help as Generate
+
+ -- from builder/
+ Build
+diff --git a/terminal/src/Develop.hs b/terminal/src/Develop.hs
+index 00339364..167de693 100644
+--- a/terminal/src/Develop.hs
++++ b/terminal/src/Develop.hs
+@@ -25,7 +25,6 @@ import qualified Build
+ import qualified Elm.Details as Details
+ import qualified Develop.Generate.Help as Help
import qualified Develop.Generate.Index as Index
-import qualified Develop.StaticFiles as StaticFiles
- import qualified Generate.Output as Output
- import qualified Json.Encode as Encode
- import qualified Reporting.Exit as Exit
-@@ -219,16 +218,7 @@ compileToHtmlBuilder mode file =
+ import qualified Generate.Html as Html
+ import qualified Generate
+ import qualified Reporting
+@@ -170,16 +169,7 @@ compile path =
serveAssets :: Snap ()
-serveAssets =
-- do file <- getSafePath
-- case StaticFiles.lookup file of
+- do path <- getSafePath
+- case StaticFiles.lookup path of
- Nothing ->
- pass
-
@@ -57,15 +62,18 @@ index 4b2252e1..7ed7716e 100644
-- MIME TYPES
-diff --git a/ui/terminal/src/Main.hs b/terminal/src/Main.hs
-index 7000f3ca..2c76965a 100644
---- a/ui/terminal/src/Main.hs
-+++ b/ui/terminal/src/Main.hs
-@@ -39,7 +39,6 @@ main =
- complex intro outro
- [ repl
- , init
-- , reactor
- , make
- , install
- , bump
+diff --git a/terminal/src/Main.hs b/terminal/src/Main.hs
+index e2d3f408..cd078422 100644
+--- a/terminal/src/Main.hs
++++ b/terminal/src/Main.hs
+@@ -34,7 +34,6 @@ main =
+ Terminal.app intro outro
+ [ repl
+ , init
+- , reactor
+ , make
+ , install
+ , bump
+--
+2.29.2
+
diff --git a/gnu/packages/patches/elm-compiler-fix-map-key.patch b/gnu/packages/patches/elm-compiler-fix-map-key.patch
deleted file mode 100644
index 4f05ded530..0000000000
--- a/gnu/packages/patches/elm-compiler-fix-map-key.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-commit e3512d887df41a8162c3e361171c04beca08415b
-Author: Tom Stejskal <tom.stejskal@gmail.com>
-Date: Mon Nov 19 20:09:43 2018 +0100
-
- Fix Map.!: given key is not an element in the map
-
-diff --git a/compiler/src/Elm/Compiler/Type/Extract.hs b/compiler/src/Elm/Compiler/Type/Extract.hs
-index 1aafe1d4..99763392 100644
---- a/compiler/src/Elm/Compiler/Type/Extract.hs
-+++ b/compiler/src/Elm/Compiler/Type/Extract.hs
-@@ -10,6 +10,7 @@ module Elm.Compiler.Type.Extract
-
-
- import Data.Map ((!))
-+import qualified Data.Map as Map
- import qualified Data.Maybe as Maybe
- import qualified Data.Set as Set
-
-@@ -134,11 +135,15 @@ extractUnion interfaces (Opt.Global home name) =
- else
- let
- pname = toPublicName home name
-- unions = I._unions (interfaces ! home)
-+ maybeUnions = I._unions <$> Map.lookup home interfaces
- in
-- case I.toUnionInternals (unions ! name) of
-- Can.Union vars ctors _ _ ->
-- T.Union pname vars <$> traverse extractCtor ctors
-+ case Map.lookup name =<< maybeUnions of
-+ Just union ->
-+ case I.toUnionInternals union of
-+ Can.Union vars ctors _ _ ->
-+ T.Union pname vars <$> traverse extractCtor ctors
-+ Nothing ->
-+ return $ T.Union pname [] []
-
-
- extractCtor :: Can.Ctor -> Extractor (N.Name, [T.Type])
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: Packaging elm-compiler 0.19.1
2020-12-31 12:11 Packaging elm-compiler 0.19.1 Matthew Kraai
@ 2020-12-31 18:51 ` John Soo
2021-01-02 18:37 ` Matthew Kraai
0 siblings, 1 reply; 4+ messages in thread
From: John Soo @ 2020-12-31 18:51 UTC (permalink / raw)
To: Matthew Kraai; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 368 bytes --]
Hi Matthew,
I’m not 100% sure how guix handles the ghc “boot” libraries but I think time is installed alongside ghc. Doing guix environment --pure --ad-hoc ghc -- ghc-pkg list gets me time-1.9.3. So I do think the version bounds should be satisfied without any other dependency. Mind sharing more of the package definition?
- John
[-- Attachment #2: Type: text/html, Size: 412 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Packaging elm-compiler 0.19.1
2020-12-31 18:51 ` John Soo
@ 2021-01-02 18:37 ` Matthew Kraai
2021-01-03 1:23 ` John Soo
0 siblings, 1 reply; 4+ messages in thread
From: Matthew Kraai @ 2021-01-02 18:37 UTC (permalink / raw)
To: John Soo; +Cc: guix-devel
Hi John,
On 12/31/20 10:51 AM, John Soo wrote:
> I’m not 100% sure how guix handles the ghc “boot” libraries but I
> think time is installed alongside ghc. Doing guix environment --pure
> --ad-hoc ghc -- ghc-pkg list gets me time-1.9.3. So I do think the
> version bounds should be satisfied without any other dependency. Mind
> sharing more of the package definition?
I think that elm-compiler is built with GHC 8.6.5, not GHC 8.8.3. When
I run `guix environment --pure --ad-hoc ghc@8.6.5 -- ghc-pkg list`, its
output contains `time-1.8.0.2`. I tried changing the definition of
`ghc-8` in `haskell.scm` from `ghc-8.6` to `ghc-8.8`, but then
`integer-logarithms` fails to build. Maybe I have to upgrade to the
latest LTS Haskell.
Here is the full package definition:
(define-public elm-compiler
(package
(name "elm-compiler")
(version "0.19.1")
(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 "1rdg3xp3js9xadclk3cdypkscm5wahgsfmm4ldcw3xswzhw6ri8w"))
(patches
(search-patches "elm-compiler-disable-reactor.patch"))))
(build-system haskell-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'update-constraints
(lambda _
(substitute* "elm.cabal"
(("ansi-terminal >= 0\\.8 && < 0\\.9,")
"ansi-terminal >= 0.8 && < 0.10,")
(("containers >= 0\\.5\\.8\\.2 && < 0\\.6,")
"containers >= 0.5.8.2 && < 0.7,")
(("http-client >= 0\\.5 && < 0\\.6,")
"http-client >= 0.5 && < 0.7,")
(("language-glsl >= 0\\.0\\.2 && < 0\\.3,")
"language-glsl >= 0.0.2 && < 0.4,")
(("network >= 2\\.4 && < 2\\.7,")
"network >= 2.4 && < 2.9,"))
#t)))))
(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-filelock" ,ghc-filelock)
("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-time-compat" ,ghc-time-compat)
("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)))
--
Matthew Kraai
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Packaging elm-compiler 0.19.1
2021-01-02 18:37 ` Matthew Kraai
@ 2021-01-03 1:23 ` John Soo
0 siblings, 0 replies; 4+ messages in thread
From: John Soo @ 2021-01-03 1:23 UTC (permalink / raw)
To: Matthew Kraai; +Cc: guix-devel
Hi Matthew,
Matthew Kraai <kraai@ftbfs.org> writes:
> I think that elm-compiler is built with GHC 8.6.5, not GHC 8.8.3.
> When I run `guix environment --pure --ad-hoc ghc@8.6.5 -- ghc-pkg
> list`, its output contains `time-1.8.0.2`. I tried changing the
> definition of `ghc-8` in `haskell.scm` from `ghc-8.6` to `ghc-8.8`,
> but then `integer-logarithms` fails to build. Maybe I have to upgrade
> to the latest LTS Haskell.
The haskell-build-system respects a #:haskell argument like so:
(arguments
`(#:haskell ,ghc-8.8 ...))
That way you don't end up bumping the default ghc for everyone while
updating one package.
I tried your definition with ghc@8.8 as above and some new packages were
not in constraints. Can you go from there and update the
"update-constraints" phase as you go? Maybe that will be enough.
Thanks!
- John
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-01-03 1:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-31 12:11 Packaging elm-compiler 0.19.1 Matthew Kraai
2020-12-31 18:51 ` John Soo
2021-01-02 18:37 ` Matthew Kraai
2021-01-03 1:23 ` John Soo
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).