Subject: [bug#44926] [WIP] Add dart-2.8.4

From: Julien Lepiller <[email-masked]>
Date: Sat, 28 Nov 2020 21:50:20 +0100

Le Sat, 28 Nov 2020 19:10:09 +0100,
Nicolò Balzarotti <[email-masked]> a écrit :

> Hi Guix!
> As announced on guix-devel, I bootstrapped the dart compiler from
> source.
> 
> Following patches add dart 2.8.4 (latest release is 2.10, but I wanted
> to be sure that this work in progress is fine before continuing, as I
> fear that 4 other steps are required).
> 
> NOTE: I tagged this as WIP as I've not yet disabled analytics yet (I
> disabled it from the first added version, but I was wondering if I
> need to disable it in _each_ version or if just the latest one is
> fine. Patching all of them will require some time).
> 
> (Each build takes ~20min on my server and ~60min on my laptop, and
> there's a dozen of them)
> 
> Let me know if there are major problems or if I can go on with
> disabling analytics!
> 
> Thanks, Nicolò
> 

Impressive :)

I can see a few issues in terms of style in these patches, but looking
at the first dart version, it looks like it's going to work :)

So, instead of using dart-zlib, dart-boringssl, ..., I'd recommend
changing dart-pkg to something like this:

(define* (dart-pkg name tag hash #:optional
                   (url (string-append
                          "https://github.com/dart-lang/"
                          (string-replace-substring name "-" "_")
                          ".git")))
  (origin
    (method git-fetch)
    (uri (git-reference
           (url url)
           (commit tag)))
    ...))

That way, dart-zlib, ... also have a proper file name ;)

I don't really like the fact that the build system simply bundles these
dependencies instead of link dynamically to them, but I guess it's hard
to do anything for that, and for bootstrap versions, I don't think it's
too much of an issue.

You should also make sure to clean up your patches: for instance patch
8 modifies things you've added before (I think it's only because of
whitespace, but that's not clean).

Thank you!