unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#53655: haskell build system cannot build attoparsec
@ 2022-01-31 10:33 Philip Munksgaard
  2022-02-23 10:02 ` zimoun
  2022-04-06 19:27 ` zimoun
  0 siblings, 2 replies; 7+ messages in thread
From: Philip Munksgaard @ 2022-01-31 10:33 UTC (permalink / raw)
  To: 53655

[-- Attachment #1: Type: text/plain, Size: 4270 bytes --]

I'm trying to build a newer version of attoparsec than the one included in guix, namely version 0.14.4.

First of all, `guix import hackage -r attoparsec` fails, as far as I can tell because of the requirement to attoparsec-internal, with the following error:

```
$ guix import hackage -r attoparsec

Starting download of /tmp/guix-file.szLCRk
From https://hackage.haskell.org/package/attoparsec/attoparsec-0.14.4.tar.gz...
 ….14.4.tar.gz  157KiB                5.1MiB/s 00:00 [##################] 100.0%
Backtrace:
           7 (primitive-load "/home/munksgaard/.config/guix/current/…")
In guix/ui.scm:
   2209:7  6 (run-guix . _)
  2172:10  5 (run-guix-command _ . _)
In guix/scripts/import.scm:
   124:11  4 (guix-import . _)
In guix/scripts/import/hackage.scm:
   129:26  3 (guix-import-hackage . _)
In guix/import/utils.scm:
   504:23  2 (recursive-import _ #:repo->guix-package _ #:guix-name _ …)
In srfi/srfi-1.scm:
   586:17  1 (map1 (("attoparsec-internal" #f)))
In guix/import/utils.scm:
   492:33  0 (lookup-node "attoparsec-internal" #f)

guix/import/utils.scm:492:33: In procedure lookup-node:
Wrong number of values returned to continuation (expected 2)
```

`guix import hackage attoparsec` succeeds, but I have to manually remove the dependency on attoparsec-internal, resulting in this file:

```
(define-module (gnu packages futhark)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system haskell)
  #:use-module (guix licenses)
  #:use-module (guix git-download)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (gnu packages)
  #:use-module (gnu packages haskell)
  #:use-module (gnu packages haskell)
  #:use-module (gnu packages haskell-web)
  #:use-module (gnu packages haskell-xyz)
  #:use-module (gnu packages haskell-check)
  #:use-module (gnu packages haskell-crypto))

(package
  (name "ghc-attoparsec")
  (version "0.14.4")
  (source
    (origin
      (method url-fetch)
      (uri (hackage-uri "attoparsec" version))
      (sha256
        (base32 "0v4yjz4qi8bwhbyavqxlhsfb1iv07v10gxi64khmsmi4hvjpycrz"))))
  (build-system haskell-build-system)
  (inputs (list ghc-scientific))
  (native-inputs
    (list ghc-quickcheck
          ghc-quickcheck-unicode
          ghc-tasty
          ghc-tasty-quickcheck
          ghc-vector))
  (arguments
    `(#:cabal-revision
      ("1" "149ihklmwnl13mmixq6iq5gzggkgqwsqrjlg2fshqwwbvbd4nn3r")))
  (home-page "https://github.com/bgamari/attoparsec")
  (synopsis "Fast combinator parsing for bytestrings and text")
  (description
    "This package provides a fast parser combinator library, aimed particularly at
dealing efficiently with network protocols and complicated text/binary file
formats.")
  (license license:bsd-3))
```

When trying to build this file however, I get the following error:

```
running "runhaskell Setup.hs" with command "register" and parameters ("--gen-pkg-config=/gnu/store/25ql0xsjqf0alrvy6hmpw6gzirzbqfmv-ghc-attoparsec-0.14.4/ghc-attoparsec-0.14.4.conf")
error: in phase 'register': uncaught exception:
system-error "fport_read" "~A" ("Is a directory") (21)
phase `register' failed after 0.5 seconds
Backtrace:
          11 (primitive-load "/gnu/store/01ry4yp98silvy0mfwgn8c77fxz…")
In guix/build/gnu-build-system.scm:
    906:2 10 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
In ice-9/boot-9.scm:
  1752:10  9 (with-exception-handler _ _ #:unwind? _ # _)
In srfi/srfi-1.scm:
    634:9  8 (for-each #<procedure 7ffff404a920 at guix/build/gnu-b…> …)
In ice-9/boot-9.scm:
  1752:10  7 (with-exception-handler _ _ #:unwind? _ # _)
In guix/build/gnu-build-system.scm:
   927:23  6 (_)
In guix/build/haskell-build-system.scm:
   244:23  5 (register #:name _ #:system _ #:inputs _ #:outputs _)
In ice-9/ports.scm:
   433:17  4 (call-with-input-file _ _ #:binary _ #:encoding _ # _)
In ice-9/rdelim.scm:
   160:18  3 (read-string _)
In unknown file:
           2 (read-char #<input: /gnu/store/25ql0xsjqf0alrvy6hmpw6gz…>)
In ice-9/boot-9.scm:
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)
```

I've attached the entire build log.

[-- Attachment #2: q4j1fa750jn3jks5xpf5lqd4pnxkk9-ghc-attoparsec-0.14.4.drv.gz --]
[-- Type: application/gzip, Size: 8490 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#53655: haskell build system cannot build attoparsec
  2022-01-31 10:33 bug#53655: haskell build system cannot build attoparsec Philip Munksgaard
@ 2022-02-23 10:02 ` zimoun
  2022-02-23 11:06   ` Philip Munksgaard
  2022-04-06 19:27 ` zimoun
  1 sibling, 1 reply; 7+ messages in thread
From: zimoun @ 2022-02-23 10:02 UTC (permalink / raw)
  To: Philip Munksgaard, 53655

Hi,

Thanks for he report.

It is 2 different issues; therefore I propose to keep them separated.

On Mon, 31 Jan 2022 at 11:33, "Philip Munksgaard" <philip@munksgaard.me> wrote:

> ```
> $ guix import hackage -r attoparsec

[...]

>
> guix/import/utils.scm:492:33: In procedure lookup-node:
> Wrong number of values returned to continuation (expected 2)
> ```

This one is about the importer.  I think it comes from the current
cabal.scm parser; not able to deal with:

--8<---------------cut here---------------start------------->8---
-- We need to test and benchmark these modules,
-- but do not want to expose them to end users
library attoparsec-internal
  hs-source-dirs: internal
  build-depends: array,

[...]

library
  build-depends: array,
[...]
                 attoparsec-internal
--8<---------------cut here---------------end--------------->8---

Could you open another bug report for that?



Let focus on this one…

> When trying to build this file however, I get the following error:
>
> ```
> running "runhaskell Setup.hs" with command "register" and parameters ("--gen-pkg-config=/gnu/store/25ql0xsjqf0alrvy6hmpw6gzirzbqfmv-ghc-attoparsec-0.14.4/ghc-attoparsec-0.14.4.conf")
> error: in phase 'register': uncaught exception:
> ```

…for this bug report.  Hum, I do not know how where the error comes
from.


Cheers,
simon





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#53655: haskell build system cannot build attoparsec
  2022-02-23 10:02 ` zimoun
@ 2022-02-23 11:06   ` Philip Munksgaard
  2022-02-23 11:25     ` Philip Munksgaard
  0 siblings, 1 reply; 7+ messages in thread
From: Philip Munksgaard @ 2022-02-23 11:06 UTC (permalink / raw)
  To: zimoun, 53655

On Wed, 23 Feb 2022, at 11:02, zimoun wrote:
> It is 2 different issues; therefore I propose to keep them separated.

Yes, I agree, sorry for the confusion. 

> Let focus on this one…
>
>> When trying to build this file however, I get the following error:
>>
>> ```
>> running "runhaskell Setup.hs" with command "register" and parameters ("--gen-pkg-config=/gnu/store/25ql0xsjqf0alrvy6hmpw6gzirzbqfmv-ghc-attoparsec-0.14.4/ghc-attoparsec-0.14.4.conf")
>> error: in phase 'register': uncaught exception:
>> ```
>
> …for this bug report.  Hum, I do not know how where the error comes
> from.
>

And yes, this is indeed the issue I'm mostly concerned about.  It seems like `/gnu/store/25ql0xsjqf0alrvy6hmpw6gzirzbqfmv-ghc-attoparsec-0.14.4/ghc-attoparsec-0.14.4.conf` is expected to be a file, while it is in fact a directory. I'm not sure what that means or why it is important though.




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#53655: haskell build system cannot build attoparsec
  2022-02-23 11:06   ` Philip Munksgaard
@ 2022-02-23 11:25     ` Philip Munksgaard
  2022-02-23 13:57       ` zimoun
  0 siblings, 1 reply; 7+ messages in thread
From: Philip Munksgaard @ 2022-02-23 11:25 UTC (permalink / raw)
  To: 53655

On Wed, 23 Feb 2022, at 12:06, Philip Munksgaard wrote:
> And yes, this is indeed the issue I'm mostly concerned about.  It seems 
> like 
> `/gnu/store/25ql0xsjqf0alrvy6hmpw6gzirzbqfmv-ghc-attoparsec-0.14.4/ghc-attoparsec-0.14.4.conf` 
> is expected to be a file, while it is in fact a directory. I'm not sure 
> what that means or why it is important though.

Upon further investigation, it seems like the `register` function in `guix/build/haskell-build-system.scm` assumes that running `runhaskell Setup.hs register --gen-pkg-config=...` will at most result in a single configuration file, while the documentation for `--gen-pkg-config` clearly states that it is also possible that it results in a directory[0].

The relevant section states:

> This option outputs a directory if the package requires multiple registrations: this can occur if internal/convenience libraries are used. These configuration file names are sorted so that they can be registered in order.

I think we need to amend `haskell-build-system.scm` to be able to handle such cases.

0: https://downloads.haskell.org/cabal/Cabal-3.0.0.0/doc/users-guide/installing-packages.html#cmdoption-setup-register-gen-pkg-config




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#53655: haskell build system cannot build attoparsec
  2022-02-23 11:25     ` Philip Munksgaard
@ 2022-02-23 13:57       ` zimoun
  0 siblings, 0 replies; 7+ messages in thread
From: zimoun @ 2022-02-23 13:57 UTC (permalink / raw)
  To: Philip Munksgaard; +Cc: 53655

Hi,

On Wed, 23 Feb 2022 at 12:27, Philip Munksgaard <philip@munksgaard.me> wrote:

> The relevant section states:
>
> > This option outputs a directory if the package requires multiple registrations: this can occur if internal/convenience libraries are used. These configuration file names are sorted so that they can be registered in order.
>
> 0: https://downloads.haskell.org/cabal/Cabal-3.0.0.0/doc/users-guide/installing-packages.html#cmdoption-setup-register-gen-pkg-config

Thanks.  Indeed, it may be the issue.


> I think we need to amend `haskell-build-system.scm` to be able to handle such cases.

Well, such change is a core-updates change because it will rebuild the
world.  Let see if in the meantime, the attoparsec package could be
patched.


Cheers,
simon




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#53655: haskell build system cannot build attoparsec
  2022-01-31 10:33 bug#53655: haskell build system cannot build attoparsec Philip Munksgaard
  2022-02-23 10:02 ` zimoun
@ 2022-04-06 19:27 ` zimoun
  2022-04-07  8:23   ` Philip Munksgaard
  1 sibling, 1 reply; 7+ messages in thread
From: zimoun @ 2022-04-06 19:27 UTC (permalink / raw)
  To: Philip Munksgaard; +Cc: 53655

Hi,

On Mon, 31 Jan 2022 at 11:33, "Philip Munksgaard" <philip@munksgaard.me> wrote:

> ```
> (define-module (gnu packages futhark)
>   #:use-module (guix packages)
>   #:use-module (guix download)
>   #:use-module (guix build-system haskell)
>   #:use-module (guix licenses)
>   #:use-module (guix git-download)
>   #:use-module ((guix licenses) #:prefix license:)
>   #:use-module (gnu packages)
>   #:use-module (gnu packages haskell)
>   #:use-module (gnu packages haskell)
>   #:use-module (gnu packages haskell-web)
>   #:use-module (gnu packages haskell-xyz)
>   #:use-module (gnu packages haskell-check)
>   #:use-module (gnu packages haskell-crypto))
>
> (package
>   (name "ghc-attoparsec")
>   (version "0.14.4")
>   (source
>     (origin
>       (method url-fetch)
>       (uri (hackage-uri "attoparsec" version))
>       (sha256
>         (base32 "0v4yjz4qi8bwhbyavqxlhsfb1iv07v10gxi64khmsmi4hvjpycrz"))))
>   (build-system haskell-build-system)
>   (inputs (list ghc-scientific))
>   (native-inputs
>     (list ghc-quickcheck
>           ghc-quickcheck-unicode
>           ghc-tasty
>           ghc-tasty-quickcheck
>           ghc-vector))
>   (arguments
>     `(#:cabal-revision
>       ("1" "149ihklmwnl13mmixq6iq5gzggkgqwsqrjlg2fshqwwbvbd4nn3r")))
>   (home-page "https://github.com/bgamari/attoparsec")
>   (synopsis "Fast combinator parsing for bytestrings and text")
>   (description
>     "This package provides a fast parser combinator library, aimed particularly at
> dealing efficiently with network protocols and complicated text/binary file
> formats.")
>   (license license:bsd-3))
> ```
>
> When trying to build this file however, I get the following error:

This part is now fixed by <https://issues.guix.gnu.org/54729#2>.  But it
is a core-updates change so the fix will land master at the next
cycle... who knows when. ;-)

For the other issue about the importer, I suggest to close this one and
reopen an issue.


Cheers,
simon




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#53655: haskell build system cannot build attoparsec
  2022-04-06 19:27 ` zimoun
@ 2022-04-07  8:23   ` Philip Munksgaard
  0 siblings, 0 replies; 7+ messages in thread
From: Philip Munksgaard @ 2022-04-07  8:23 UTC (permalink / raw)
  To: zimoun; +Cc: 53655-done

A patch has been submitted for the second part of this issue [0] and a new issue has been created for the first part [1]. I'm therefore closing this issue.

0: https://issues.guix.gnu.org/54729
1: https://issues.guix.gnu.org/54760

On Wed, 6 Apr 2022, at 21:27, zimoun wrote:
> Hi,
>
> On Mon, 31 Jan 2022 at 11:33, "Philip Munksgaard" <philip@munksgaard.me> wrote:
>
>> ```
>> (define-module (gnu packages futhark)
>>   #:use-module (guix packages)
>>   #:use-module (guix download)
>>   #:use-module (guix build-system haskell)
>>   #:use-module (guix licenses)
>>   #:use-module (guix git-download)
>>   #:use-module ((guix licenses) #:prefix license:)
>>   #:use-module (gnu packages)
>>   #:use-module (gnu packages haskell)
>>   #:use-module (gnu packages haskell)
>>   #:use-module (gnu packages haskell-web)
>>   #:use-module (gnu packages haskell-xyz)
>>   #:use-module (gnu packages haskell-check)
>>   #:use-module (gnu packages haskell-crypto))
>>
>> (package
>>   (name "ghc-attoparsec")
>>   (version "0.14.4")
>>   (source
>>     (origin
>>       (method url-fetch)
>>       (uri (hackage-uri "attoparsec" version))
>>       (sha256
>>         (base32 "0v4yjz4qi8bwhbyavqxlhsfb1iv07v10gxi64khmsmi4hvjpycrz"))))
>>   (build-system haskell-build-system)
>>   (inputs (list ghc-scientific))
>>   (native-inputs
>>     (list ghc-quickcheck
>>           ghc-quickcheck-unicode
>>           ghc-tasty
>>           ghc-tasty-quickcheck
>>           ghc-vector))
>>   (arguments
>>     `(#:cabal-revision
>>       ("1" "149ihklmwnl13mmixq6iq5gzggkgqwsqrjlg2fshqwwbvbd4nn3r")))
>>   (home-page "https://github.com/bgamari/attoparsec")
>>   (synopsis "Fast combinator parsing for bytestrings and text")
>>   (description
>>     "This package provides a fast parser combinator library, aimed particularly at
>> dealing efficiently with network protocols and complicated text/binary file
>> formats.")
>>   (license license:bsd-3))
>> ```
>>
>> When trying to build this file however, I get the following error:
>
> This part is now fixed by <https://issues.guix.gnu.org/54729#2>.  But it
> is a core-updates change so the fix will land master at the next
> cycle... who knows when. ;-)
>
> For the other issue about the importer, I suggest to close this one and
> reopen an issue.
>
>
> Cheers,
> simon




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-04-07  8:28 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-31 10:33 bug#53655: haskell build system cannot build attoparsec Philip Munksgaard
2022-02-23 10:02 ` zimoun
2022-02-23 11:06   ` Philip Munksgaard
2022-02-23 11:25     ` Philip Munksgaard
2022-02-23 13:57       ` zimoun
2022-04-06 19:27 ` zimoun
2022-04-07  8:23   ` Philip Munksgaard

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).