Subject: [bug#31346] [PATCH] gnu: gnuzilla: Add mozjs-52.

From: Roel Janssen <[email-masked]>
Date: Sun, 06 May 2018 22:21:00 +0200

Ludovic Courtès <[email-masked]> writes:

> Hello Roel,
>
> Roel Janssen <[email-masked]> skribis:
>
>>>>From ce8b4e85b03ed76fb671a4d554f966b7eac00b8d Mon Sep 17 00:00:00 2001
>> From: Roel Janssen <[email-masked]>
>> Date: Wed, 2 May 2018 22:11:34 +0200
>> Subject: [PATCH] gnu: gnuzilla: Add mozjs-52.
>>
>> * gnu/packages/gnuzilla.scm (mozjs-52): New variable.
>
> [...]
>
>> +(define-public mozjs-52
>> +  (package
>> +    (inherit mozjs)
>> +    (name "mozjs")
>
> You can omit ‘name’.
>
> Also, would it be simpler to inherit from ‘mozjs-38’?

Maybe it is.  I will try that instead.

>
>> +    (source (origin
>> +              (method url-fetch)
>> +              (uri (string-append
>> +                    "https://queue.taskcluster.net/v1/task/"
>> +                    "YqG2fjJJSTGzGX090FjDYg/runs/0/artifacts/"
>> +                    "public/build/mozjs-" version ".tar.bz2"))
>
> Could we use ftp.mozilla.org instead?

So I thought, but it doesn't seem to be available there:
http://ftp.mozilla.org/pub/spidermonkey/releases/

The latest release there is version 45.  In the pre-releases there's
version 59.

Maybe I can add comment in the form:

;; The release notes at https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/52
;; states: “You can download full source code from treeherder, by going
;; to the mozilla-esr52 repository and clicking on the first SM(pkg)
;; link you see.  The download link below is the result of that.

Would that be sufficient?

>
>> +    (arguments
>> +     `(#:tests? #f ; Needs Mercurial or Git repository to be avalable.
>> +       #:phases
>> +       (modify-phases %standard-phases
>> +         (replace 'configure
>> +           (lambda* (#:key inputs outputs #:allow-other-keys)
>> +             (let ((out (assoc-ref outputs "out")))
>> +               (chdir "js/src")
>> +               (setenv "SHELL" (which "sh"))
>> +               (setenv "CONFIG_SHELL" (which "sh"))
>> +               (setenv "AUTOCONF" (string-append
>> +                                   (assoc-ref inputs "autoconf")
>> +                                   "/bin/autoreconf"))
>> +               (zero? (system* "./configure"
>> +                               (string-append "--prefix=" out)
>> +                               "--enable-ctypes"
>> +                               "--enable-optimize"
>> +                               "--enable-pie"
>> +                               "--enable-readline"
>> +                               "--enable-shared-js"
>> +                               "--enable-system-ffi"
>> +                               "--with-system-icu"
>> +                               "--with-system-nspr"
>> +                               "--with-system-zlib"
>> +
>> +                               ;; Intl API requires bundled ICU.
>> +                               "--without-intl-api"))))))))
>
> This seems to be (almost) the same as for ‘mozjs-38’.  Perhaps with
> ‘inherit’ we don’t need to duplicate all this?
>
> Could you look into this?

Sure.  Thanks for your valuable time.

Kind regards,
Roel Janssen