unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [core-updates] Should we patch icu4c?
@ 2019-07-21 15:02 Marius Bakke
  0 siblings, 0 replies; only message in thread
From: Marius Bakke @ 2019-07-21 15:02 UTC (permalink / raw)
  To: guix-devel

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

Node's "parallel/test-intl" fails on the 'core-updates' branch when
built for i686-linux:

--8<---------------cut here---------------start------------->8---
not ok 1254 parallel/test-intl
  ---
  duration_ms: 1.308
  severity: fail
  exitcode: 1
  stack: |-
    assert.js:738
        throw newErr;
        ^
    
    AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Command failed: /tmp/guix-build-node-10.16.0.drv-0/node-v10.16.0/out/Release/node -p new Intl.NumberFormat().resolvedOptions().locale
    munmap_chunk(): invalid pointer
    
        at ChildProcess.exithandler (child_process.js:294:12)
        at ChildProcess.emit (events.js:198:13)
        at maybeClose (internal/child_process.js:982:16)
        at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
  ...
--8<---------------cut here---------------end--------------->8---

This is a regression test for a problem in ICU 64:

https://github.com/nodejs/node/blob/v10.16.0/test/parallel/test-intl.js#L141
https://unicode-org.atlassian.net/browse/ICU-20575

Apparently the V8 workaround only works on 64-bit?

The test succeeds if I build Node with a patched ICU:

--8<---------------cut here---------------start------------->8---
(define %icu4c-patches
  (list (origin
          (method url-fetch)
          (uri (string-append "https://github.com/unicode-org/icu/commit/"
                              "7788f04eb9be0d7ecade6af46cf7b9825447763d.patch"))
          (file-name "icu4c-datetime-regression.patch")
          (sha256
           (base32
            "0gs2sbdfpzwwdjqcqr0c16fw3g7wy3gb1gbgvzs9k1ciw0bhpv4w")))
        (origin
          (method url-fetch)
          (uri (string-append "https://github.com/unicode-org/icu/commit/"
                              "cfb20862909ff105d4f2c43923c97561bc5a5815.patch"))
          (file-name "icu4c-locale-mapping.patch")
          (sha256
           (base32
            "0s5psb60aisj6icziblvlp9dqcz56n3887i8ib0yidbjnnrw5b97")))))
--8<---------------cut here---------------end--------------->8---

The last patch is sufficient to fix this problem, but the other seems
nice to have.  They are taken from the upstream "maint-64" branch:

https://github.com/unicode-org/icu/commits/maint/maint-64

I suspect the locale issue will show up in more packages as we go.

Patching ICU is a good opportunity to fix these issues:

https://issues.guix.gnu.org/issue/36721
https://issues.guix.gnu.org/issue/36722

...since they would not add to the ~50% rebuild count and armhf still
has not gotten this far.

Any volunteers for the second issue (add Python 3 support to Boost)?

CMake experts are welcome to join me in the first quest on #guix :-)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-07-21 15:12 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-21 15:02 [core-updates] Should we patch icu4c? Marius Bakke

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