Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 724978 - net-libs/nodejs: add support for building with --with-intl=full-icu
Summary: net-libs/nodejs: add support for building with --with-intl=full-icu
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Marek Szuba
URL: https://nodejs.org/api/intl.html
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-05-24 09:43 UTC by Julien Papasian
Modified: 2020-11-13 01:17 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Julien Papasian 2020-05-24 09:43:00 UTC
I noticed the following line in the ebuild:
use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )

However, the default in official binaries since Node 13.0.0 is --with-intl=full-icu and this option is not available in Gentoo.
https://nodejs.org/api/intl.html

There are four choices:
- Embed the entire ICU (full-icu)
X Disable all internationalization features (none)
X Build with a pre-installed ICU (system-icu)
- Embed a limited set of ICU data (small-icu)

Only X are supported in Gentoo, which causes me problems because the system icu doesn't seem to have all the support I need.

I believe the ebuild could improve to something like this:
+icu +system-icu => --with-intl=system-icu
+icu -system-icu => --with-intl=full-icu
-icu +system-icu => Not possible, should be locked with a system-icu? icu
-icu -system-icu => --with-intl=none

If we want to add support for small-icu, it could look like this:
+small-icu -full-icu -system-icu => --with-intl=small-icu
-small-icu +full-icu -system-icu => --with-intl=full-icu
-small-icu -full-icu +system-icu => --with-intl=system-icu
-small-icu -full-icu -system-icu => --with-intl=none
Other options should be forbidden.

What do you think?

See also #724486 which may be fixed at the same time.

Reproducible: Always
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2020-06-04 12:59:31 UTC
(In reply to Julien Papasian from comment #0)
> There are four choices:
[...]
> X Build with a pre-installed ICU (system-icu)

This is what Gentoo does generally: not use bundled packages but use system packages. Convenience is not a valid reason to deviate from Gentoo's standards.
Comment 2 Marek Szuba archtester gentoo-dev 2020-11-09 14:52:28 UTC
Looks simple enough for 14 and we have already got several packages in the tree with IUSE=system-icu, will add it in 14.15.0. I have got no plans to support this in 12 though, as it would be much more complicated - at least 12.19.0 doesn't actually bundle ICU, if you use --with-intl=full-icu it tries to download it.
Comment 3 Larry the Git Cow gentoo-dev 2020-11-09 15:06:07 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1398b77a96625ee50dd430fb4d265b7f793322be

commit 1398b77a96625ee50dd430fb4d265b7f793322be
Author:     Marek Szuba <marecki@gentoo.org>
AuthorDate: 2020-11-09 13:52:36 +0000
Commit:     Marek Szuba <marecki@gentoo.org>
CommitDate: 2020-11-09 15:05:39 +0000

    net-libs/nodejs: bump to 14.15.0
    
    Includes subslotting, support for building against bundled ICU, a fix
    for PPC64 crashes and python3_9 support.
    
    Closes: https://bugs.gentoo.org/724978
    Closes: https://bugs.gentoo.org/728110
    Closes: https://bugs.gentoo.org/747100
    Closes: https://bugs.gentoo.org/749852
    Closes: https://github.com/gentoo/gentoo/pull/17809
    Signed-off-by: Marek Szuba <marecki@gentoo.org>

 net-libs/nodejs/Manifest                           |  2 +-
 .../files/nodejs-14.15.0-fix_ppc64_crashes.patch   | 33 +++++++++++
 net-libs/nodejs/metadata.xml                       |  1 +
 ...nodejs-14.14.0.ebuild => nodejs-14.15.0.ebuild} | 64 ++++++++++------------
 4 files changed, 65 insertions(+), 35 deletions(-)
Comment 4 Arfrever Frehtes Taifersar Arahesis 2020-11-13 01:16:05 UTC
In exactly all other packages in the tree, system-icu USE flag is enabed by default (IUSE="+system-icu").
Please also enable it by default in net-libs/nodejs.