@@ -1441,6 +1441,7 @@ dist_patch_DATA = \
%D%/packages/patches/ngircd-handle-zombies.patch \
%D%/packages/patches/network-manager-plugin-path.patch \
%D%/packages/patches/nginx-socket-cloexec.patch \
+ %D%/packages/patches/node-10.24-fix-build.patch \
%D%/packages/patches/nsis-env-passthru.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \
%D%/packages/patches/nss-3.56-pkgconfig.patch \
@@ -61,6 +61,7 @@
(sha256
(base32
"1k1srdis23782hnd1ymgczs78x9gqhv77v0am7yb54gqcspp70hm"))
+ (patches (search-patches "node-10.24-fix-build.patch"))
(modules '((guix build utils)))
(snippet
`(begin
new file mode 100644
@@ -0,0 +1,86 @@
+Taken from openSUSE:
+https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs10
+
+Author: Callum Farmer <gmbr3@opensuse.org>
+Date: Mon Dec 21 20:10:03 UTC 2020
+Subject: ICU68 no longer defines TRUE and FALSE
+===============================================================
+--- a/deps/v8/src/objects/intl-objects.cc
++++ b/deps/v8/src/objects/intl-objects.cc
+@@ -243,7 +243,7 @@
+ char result[ULOC_FULLNAME_CAPACITY];
+ status = U_ZERO_ERROR;
+ uloc_toLanguageTag(icu_locale.getName(), result, ULOC_FULLNAME_CAPACITY,
+- FALSE, &status);
++ false, &status);
+ if (U_SUCCESS(status)) {
+ JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("locale"),
+ factory->NewStringFromAsciiChecked(result),
+@@ -422,7 +422,7 @@
+ char result[ULOC_FULLNAME_CAPACITY];
+ UErrorCode status = U_ZERO_ERROR;
+ uloc_toLanguageTag(icu_locale.getName(), result, ULOC_FULLNAME_CAPACITY,
+- FALSE, &status);
++ false, &status);
+ if (U_SUCCESS(status)) {
+ JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("locale"),
+ factory->NewStringFromAsciiChecked(result),
+@@ -657,7 +657,7 @@
+ char result[ULOC_FULLNAME_CAPACITY];
+ status = U_ZERO_ERROR;
+ uloc_toLanguageTag(icu_locale.getName(), result, ULOC_FULLNAME_CAPACITY,
+- FALSE, &status);
++ false, &status);
+ if (U_SUCCESS(status)) {
+ JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("locale"),
+ factory->NewStringFromAsciiChecked(result),
+@@ -796,7 +796,7 @@
+ char result[ULOC_FULLNAME_CAPACITY];
+ status = U_ZERO_ERROR;
+ uloc_toLanguageTag(icu_locale.getName(), result, ULOC_FULLNAME_CAPACITY,
+- FALSE, &status);
++ false, &status);
+ if (U_SUCCESS(status)) {
+ JSObject::SetProperty(resolved, factory->NewStringFromStaticChars("locale"),
+ factory->NewStringFromAsciiChecked(result),
+--- a/deps/v8/src/runtime/runtime-intl.cc
++++ b/deps/v8/src/runtime/runtime-intl.cc
+@@ -85,7 +85,7 @@
+ char result[ULOC_FULLNAME_CAPACITY];
+
+ // Force strict BCP47 rules.
+- uloc_toLanguageTag(icu_result, result, ULOC_FULLNAME_CAPACITY, TRUE, &error);
++ uloc_toLanguageTag(icu_result, result, ULOC_FULLNAME_CAPACITY, true, &error);
+
+ if (U_FAILURE(error) || error == U_STRING_NOT_TERMINATED_WARNING) {
+ return *factory->NewStringFromAsciiChecked(kInvalidTag);
+@@ -132,7 +132,7 @@
+
+ error = U_ZERO_ERROR;
+ // No need to force strict BCP47 rules.
+- uloc_toLanguageTag(icu_name, result, ULOC_FULLNAME_CAPACITY, FALSE, &error);
++ uloc_toLanguageTag(icu_name, result, ULOC_FULLNAME_CAPACITY, false, &error);
+ if (U_FAILURE(error) || error == U_STRING_NOT_TERMINATED_WARNING) {
+ // This shouldn't happen, but lets not break the user.
+ continue;
+@@ -164,7 +164,7 @@
+ char result[ULOC_FULLNAME_CAPACITY];
+ UErrorCode status = U_ZERO_ERROR;
+ uloc_toLanguageTag(default_locale.getName(), result, ULOC_FULLNAME_CAPACITY,
+- FALSE, &status);
++ false, &status);
+ if (U_SUCCESS(status)) {
+ return *factory->NewStringFromAsciiChecked(result);
+ }
+@@ -399,9 +399,9 @@
+ std::unique_ptr<uc16[]> sap1;
+ std::unique_ptr<uc16[]> sap2;
+ icu::UnicodeString string_val1(
+- FALSE, GetUCharBufferFromFlat(flat1, &sap1, length1), length1);
++ false, GetUCharBufferFromFlat(flat1, &sap1, length1), length1);
+ icu::UnicodeString string_val2(
+- FALSE, GetUCharBufferFromFlat(flat2, &sap2, length2), length2);
++ false, GetUCharBufferFromFlat(flat2, &sap2, length2), length2);
+ result = collator->compare(string_val1, string_val2, status);
+ }
+ if (U_FAILURE(status)) return isolate->ThrowIllegalOperation();