diff mbox series

[bug#38593] Remove invalid library directories from some haskell packages

Message ID CAKf5CqXw-e+Rc2ytbcEZhai2kv18YQutK1pr7un5P6UgpZ74kQ@mail.gmail.com
State Accepted
Headers show
Series [bug#38593] Remove invalid library directories from some haskell packages | expand

Commit Message

John Soo Dec. 13, 2019, 2:38 p.m. UTC
Hi all,

When compiling with ghc, I have been getting the message that the following
packages have invalid package databases. These patches remove the library
from the output, keeping the executables.

There may be other packages with this problem but I have not done an audit.

- John

Comments

John Soo Dec. 18, 2019, 12:41 p.m. UTC | #1
I forgot to mention there are patches attached to this.
Ludovic Courtès Dec. 19, 2019, 10:30 p.m. UTC | #2
Hi,

John Soo <jsoo1@asu.edu> skribis:

> When compiling with ghc, I have been getting the message that the following
> packages have invalid package databases.

Does it hurt in practice, or are these invalid databases shadowed by the
one created in the profile?

> diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
> index fb6833207d..1d78eb7894 100644
> --- a/gnu/packages/haskell-xyz.scm
> +++ b/gnu/packages/haskell-xyz.scm
> @@ -5500,6 +5500,13 @@ representations of current time.")
>         ("ghc-quickcheck" ,ghc-quickcheck)
>         ("ghc-temporary" ,ghc-temporary)
>         ("hspec-discover" ,hspec-discover)))
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (add-after 'install 'remove-lib
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (delete-file-recursively
> +              (string-append (assoc-ref outputs "out") "/lib")))))))

Should we add a phase in ‘haskell-build-system’ that systematically
removes package databases?

Thanks,
Ludo’.
John Soo Dec. 20, 2019, 9:28 p.m. UTC | #3
Hi Ludo and guix,

Let me explain my problem. Maybe there is some other explanation here and these patches aren’t necessary.

When I have stylish-haskell installed I have troubles compiling anything using plain ghc.   I want to use the ghc packages in the profile but for some reason ghc reports the database is invalid because of at least stylish-haskell and I think I’ve seen hoogle as well.

> Does it hurt in practice, or are these invalid databases shadowed by the
> one created in the profile?


I’m not sure what you mean here. I think I dod not explained my problem well enough. Does the explanation above make sense?

Another possibility is the duplication of path variables in tmux where I usually operate. 

Thinking now, maybe another explanation is because stylish-haskell and ghc-stylish-haskell are fighting each other? They are duplicate packages and maybe if one is removed it will be ok?

> Should we add a phase in ‘haskell-build-system’ that systematically
> removes package databases?

I don’t think so. I like having the profile packages. A lot of times I prefer to use plain ghc with the profile packages over cabal or another tool so I’m happy to have the packages in the database.

The ones I was considering removing were ones that primarily provide a binary to use - hoogle and stylish-haskell are primarily used as binaries.  However on second thought if I wanted to use them as libraries I think I would be confused as to why I could not.

Overall I am leaning towards finding some other solution.

Thanks everyone!

John
John Soo Jan. 1, 2021, 6:30 p.m. UTC | #4
I have not experienced this issue in a long time.  I may come back to it
if it ever happens again.
diff mbox series

Patch

From c634931be8790342a0eaeec2bbef6f058c86448e Mon Sep 17 00:00:00 2001
From: John Soo <jsoo1@asu.edu>
Date: Sun, 17 Nov 2019 01:19:20 -0800
Subject: [PATCH 2/3] gnu: hlint: Remove invalid lib directory.

* gnu/packages/haskell-apps.scm (hlint): Remove invalid library from output.
---
 gnu/packages/haskell-apps.scm | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index d5c31cbb0b..5a16b1bb91 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -441,6 +441,13 @@  used to keep a folder in sync between computers.")
        ("ghc-aeson" ,ghc-aeson)
        ("ghc-lib-parser" ,ghc-lib-parser)
        ("hscolour" ,hscolour)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'remove-lib
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file-recursively
+              (string-append (assoc-ref outputs "out") "/lib")))))))
     (home-page "http://community.haskell.org/~ndm/hlint/")
     (synopsis "Suggest improvements for Haskell source code")
     (description "HLint reads Haskell programs and suggests changes that
-- 
2.24.0