diff options
-rw-r--r-- | README.md | 600 | ||||
-rw-r--r-- | README.node.md | 594 | ||||
-rw-r--r-- | common.gypi | 8 | ||||
-rwxr-xr-x | configure.py | 16 | ||||
-rw-r--r-- | deps/cares/config/android/ares_config.h | 2 | ||||
-rw-r--r-- | deps/openssl/openssl-cl_no_asm.gypi | 2 | ||||
-rw-r--r-- | deps/openssl/openssl_no_asm.gypi | 2 | ||||
-rw-r--r-- | deps/uvwasi/src/uvwasi.c | 18 | ||||
-rw-r--r-- | deps/v8/DEPS | 1 | ||||
-rwxr-xr-x | deps/v8/tools/node/fetch_deps.py | 1 | ||||
-rw-r--r-- | lib/akono.js | 69 | ||||
-rw-r--r-- | node.gyp | 2 | ||||
-rw-r--r-- | node.gypi | 45 | ||||
-rw-r--r-- | taler-android-build/.gitignore | 1 | ||||
-rw-r--r-- | taler-android-build/README | 1 | ||||
-rwxr-xr-x | taler-android-build/arm | 61 | ||||
-rwxr-xr-x | taler-android-build/arm64 | 60 | ||||
-rwxr-xr-x | taler-android-build/build-android-node | 28 | ||||
-rwxr-xr-x | taler-android-build/build-android-v8 | 53 | ||||
-rwxr-xr-x | taler-android-build/x64 | 59 | ||||
-rwxr-xr-x | taler-android-build/x86 | 61 |
21 files changed, 1074 insertions, 610 deletions
@@ -1,594 +1,28 @@ -<p align="center"> - <a href="https://nodejs.org/"> - <img - alt="Node.js" - src="https://nodejs.org/static/images/logo-light.svg" - width="400" - /> - </a> -</p> +# node/v8 shared library build for Android -Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. For -more information on using Node.js, see the [Node.js Website][]. +This repository contains build scripts, build system fixes and other changes +needed to build node/v8 as a shared library for Android. Currently we only +build for arm CPUs. -The Node.js project uses an [open governance model](./GOVERNANCE.md). The -[OpenJS Foundation][] provides support for the project. +## Build instructions -**This project is bound by a [Code of Conduct][].** +Note: You might need an old system like Debian buster to build. +It might also be necessary to install 32-bit versions of some libraries: -# Table of Contents + dpkg --add-architecture i386 + apt update + apt install libc6:i386 libncurses5:i386 libstdc++6:i386 -* [Support](#support) -* [Release Types](#release-types) - * [Download](#download) - * [Current and LTS Releases](#current-and-lts-releases) - * [Nightly Releases](#nightly-releases) - * [API Documentation](#api-documentation) - * [Verifying Binaries](#verifying-binaries) -* [Building Node.js](#building-nodejs) -* [Security](#security) -* [Contributing to Node.js](#contributing-to-nodejs) -* [Current Project Team Members](#current-project-team-members) - * [TSC (Technical Steering Committee)](#tsc-technical-steering-committee) - * [Collaborators](#collaborators) - * [Release Keys](#release-keys) +Run -## Support - -Looking for help? Check out the -[instructions for getting support](.github/SUPPORT.md). - -## Release Types - -* **Current**: Under active development. Code for the Current release is in the - branch for its major version number (for example, - [v10.x](https://github.com/nodejs/node/tree/v10.x)). Node.js releases a new - major version every 6 months, allowing for breaking changes. This happens in - April and October every year. Releases appearing each October have a support - life of 8 months. Releases appearing each April convert to LTS (see below) - each October. -* **LTS**: Releases that receive Long-term Support, with a focus on stability - and security. Every even-numbered major version will become an LTS release. - LTS releases receive 12 months of _Active LTS_ support and a further 18 months - of _Maintenance_. LTS release lines have alphabetically-ordered codenames, - beginning with v4 Argon. There are no breaking changes or feature additions, - except in some special circumstances. -* **Nightly**: Code from the Current branch built every 24-hours when there are - changes. Use with caution. - -Current and LTS releases follow [Semantic Versioning](https://semver.org). A -member of the Release Team [signs](#release-keys) each Current and LTS release. -For more information, see the -[Release README](https://github.com/nodejs/Release#readme). - -### Download - -Binaries, installers, and source tarballs are available at -<https://nodejs.org/en/download/>. - -#### Current and LTS Releases -<https://nodejs.org/download/release/> - -The [latest](https://nodejs.org/download/release/latest/) directory is an -alias for the latest Current release. The latest-_codename_ directory is an -alias for the latest release from an LTS line. For example, the -[latest-carbon](https://nodejs.org/download/release/latest-carbon/) directory -contains the latest Carbon (Node.js 8) release. - -#### Nightly Releases -<https://nodejs.org/download/nightly/> - -Each directory name and filename contains a date (in UTC time) and the commit -SHA at the HEAD of the release. - -#### API Documentation - -Documentation for the latest Current release is at <https://nodejs.org/api/>. -Version-specific documentation is available in each release directory in the -_docs_ subdirectory. Version-specific documentation is also at -<https://nodejs.org/download/docs/>. - -### Verifying Binaries - -Download directories contain a `SHASUMS256.txt` file with SHA checksums for the -files. - -To download `SHASUMS256.txt` using `curl`: - -```console -$ curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt -``` - -To check that a downloaded file matches the checksum, run -it through `sha256sum` with a command such as: - -```console -$ grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c - -``` - -For Current and LTS, the GPG detached signature of `SHASUMS256.txt` is in -`SHASUMS256.txt.sig`. You can use it with `gpg` to verify the integrity of -`SHASUM256.txt`. You will first need to import -[the GPG keys of individuals authorized to create releases](#release-keys). To -import the keys: - -```console -$ gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D -``` - -See the bottom of this README for a full script to import active release keys. - -Next, download the `SHASUMS256.txt.sig` for the release: - -```console -$ curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt.sig ``` - -Then use `gpg --verify SHASUMS256.txt.sig SHASUMS256.txt` to verify -the file's signature. - -## Building Node.js - -See [BUILDING.md](BUILDING.md) for instructions on how to build Node.js from -source and a list of supported platforms. - -## Security - -For information on reporting security vulnerabilities in Node.js, see -[SECURITY.md](./SECURITY.md). - -## Contributing to Node.js - -* [Contributing to the project][] -* [Working Groups][] -* [Strategic Initiatives][] - -## Current Project Team Members - -For information about the governance of the Node.js project, see -[GOVERNANCE.md](./GOVERNANCE.md). - -### TSC (Technical Steering Committee) - -* [addaleax](https://github.com/addaleax) - -**Anna Henningsen** <anna@addaleax.net> (she/her) -* [apapirovski](https://github.com/apapirovski) - -**Anatoli Papirovski** <apapirovski@mac.com> (he/him) -* [BethGriggs](https://github.com/BethGriggs) - -**Beth Griggs** <Bethany.Griggs@uk.ibm.com> (she/her) -* [ChALkeR](https://github.com/ChALkeR) - -**Сковорода Никита Андреевич** <chalkerx@gmail.com> (he/him) -* [cjihrig](https://github.com/cjihrig) - -**Colin Ihrig** <cjihrig@gmail.com> (he/him) -* [danbev](https://github.com/danbev) - -**Daniel Bevenius** <daniel.bevenius@gmail.com> (he/him) -* [fhinkel](https://github.com/fhinkel) - -**Franziska Hinkelmann** <franziska.hinkelmann@gmail.com> (she/her) -* [Fishrock123](https://github.com/Fishrock123) - -**Jeremiah Senkpiel** <fishrock123@rocketmail.com> -* [gabrielschulhof](https://github.com/gabrielschulhof) - -**Gabriel Schulhof** <gabriel.schulhof@intel.com> -* [gireeshpunathil](https://github.com/gireeshpunathil) - -**Gireesh Punathil** <gpunathi@in.ibm.com> (he/him) -* [jasnell](https://github.com/jasnell) - -**James M Snell** <jasnell@gmail.com> (he/him) -* [joyeecheung](https://github.com/joyeecheung) - -**Joyee Cheung** <joyeec9h3@gmail.com> (she/her) -* [mcollina](https://github.com/mcollina) - -**Matteo Collina** <matteo.collina@gmail.com> (he/him) -* [mhdawson](https://github.com/mhdawson) - -**Michael Dawson** <michael_dawson@ca.ibm.com> (he/him) -* [MylesBorins](https://github.com/MylesBorins) - -**Myles Borins** <myles.borins@gmail.com> (he/him) -* [sam-github](https://github.com/sam-github) - -**Sam Roberts** <vieuxtech@gmail.com> -* [targos](https://github.com/targos) - -**Michaël Zasso** <targos@protonmail.com> (he/him) -* [thefourtheye](https://github.com/thefourtheye) - -**Sakthipriyan Vairamani** <thechargingvolcano@gmail.com> (he/him) -* [tniessen](https://github.com/tniessen) - -**Tobias Nießen** <tniessen@tnie.de> -* [Trott](https://github.com/Trott) - -**Rich Trott** <rtrott@gmail.com> (he/him) - -### TSC Emeriti - -* [bnoordhuis](https://github.com/bnoordhuis) - -**Ben Noordhuis** <info@bnoordhuis.nl> -* [chrisdickinson](https://github.com/chrisdickinson) - -**Chris Dickinson** <christopher.s.dickinson@gmail.com> -* [evanlucas](https://github.com/evanlucas) - -**Evan Lucas** <evanlucas@me.com> (he/him) -* [gibfahn](https://github.com/gibfahn) - -**Gibson Fahnestock** <gibfahn@gmail.com> (he/him) -* [indutny](https://github.com/indutny) - -**Fedor Indutny** <fedor.indutny@gmail.com> -* [isaacs](https://github.com/isaacs) - -**Isaac Z. Schlueter** <i@izs.me> -* [joshgav](https://github.com/joshgav) - -**Josh Gavant** <josh.gavant@outlook.com> -* [mscdex](https://github.com/mscdex) - -**Brian White** <mscdex@mscdex.net> -* [nebrius](https://github.com/nebrius) - -**Bryan Hughes** <bryan@nebri.us> -* [ofrobots](https://github.com/ofrobots) - -**Ali Ijaz Sheikh** <ofrobots@google.com> (he/him) -* [orangemocha](https://github.com/orangemocha) - -**Alexis Campailla** <orangemocha@nodejs.org> -* [piscisaureus](https://github.com/piscisaureus) - -**Bert Belder** <bertbelder@gmail.com> -* [rvagg](https://github.com/rvagg) - -**Rod Vagg** <r@va.gg> -* [shigeki](https://github.com/shigeki) - -**Shigeki Ohtsu** <ohtsu@ohtsu.org> (he/him) -* [TimothyGu](https://github.com/TimothyGu) - -**Tiancheng "Timothy" Gu** <timothygu99@gmail.com> (he/him) -* [trevnorris](https://github.com/trevnorris) - -**Trevor Norris** <trev.norris@gmail.com> - -### Collaborators - -* [addaleax](https://github.com/addaleax) - -**Anna Henningsen** <anna@addaleax.net> (she/her) -* [ak239](https://github.com/ak239) - -**Aleksei Koziatinskii** <ak239spb@gmail.com> -* [AndreasMadsen](https://github.com/AndreasMadsen) - -**Andreas Madsen** <amwebdk@gmail.com> (he/him) -* [antsmartian](https://github.com/antsmartian) - -**Anto Aravinth** <anto.aravinth.cse@gmail.com> (he/him) -* [apapirovski](https://github.com/apapirovski) - -**Anatoli Papirovski** <apapirovski@mac.com> (he/him) -* [aqrln](https://github.com/aqrln) - -**Alexey Orlenko** <eaglexrlnk@gmail.com> (he/him) -* [bcoe](https://github.com/bcoe) - -**Ben Coe** <bencoe@gmail.com> (he/him) -* [bengl](https://github.com/bengl) - -**Bryan English** <bryan@bryanenglish.com> (he/him) -* [benjamingr](https://github.com/benjamingr) - -**Benjamin Gruenbaum** <benjamingr@gmail.com> -* [BethGriggs](https://github.com/BethGriggs) - -**Beth Griggs** <Bethany.Griggs@uk.ibm.com> (she/her) -* [bmeck](https://github.com/bmeck) - -**Bradley Farias** <bradley.meck@gmail.com> -* [bmeurer](https://github.com/bmeurer) - -**Benedikt Meurer** <benedikt.meurer@gmail.com> -* [bnoordhuis](https://github.com/bnoordhuis) - -**Ben Noordhuis** <info@bnoordhuis.nl> -* [boneskull](https://github.com/boneskull) - -**Christopher Hiller** <boneskull@boneskull.com> (he/him) -* [BridgeAR](https://github.com/BridgeAR) - -**Ruben Bridgewater** <ruben@bridgewater.de> (he/him) -* [bzoz](https://github.com/bzoz) - -**Bartosz Sosnowski** <bartosz@janeasystems.com> -* [calvinmetcalf](https://github.com/calvinmetcalf) - -**Calvin Metcalf** <calvin.metcalf@gmail.com> -* [cclauss](https://github.com/cclauss) - -**Christian Clauss** <cclauss@me.com> (he/him) -* [ChALkeR](https://github.com/ChALkeR) - -**Сковорода Никита Андреевич** <chalkerx@gmail.com> (he/him) -* [cjihrig](https://github.com/cjihrig) - -**Colin Ihrig** <cjihrig@gmail.com> (he/him) -* [claudiorodriguez](https://github.com/claudiorodriguez) - -**Claudio Rodriguez** <cjrodr@yahoo.com> -* [codebytere](https://github.com/codebytere) - -**Shelley Vohr** <codebytere@gmail.com> (she/her) -* [danbev](https://github.com/danbev) - -**Daniel Bevenius** <daniel.bevenius@gmail.com> (he/him) -* [davisjam](https://github.com/davisjam) - -**Jamie Davis** <davisjam@vt.edu> (he/him) -* [devnexen](https://github.com/devnexen) - -**David Carlier** <devnexen@gmail.com> -* [devsnek](https://github.com/devsnek) - -**Gus Caplan** <me@gus.host> (he/him) -* [digitalinfinity](https://github.com/digitalinfinity) - -**Hitesh Kanwathirtha** <digitalinfinity@gmail.com> (he/him) -* [edsadr](https://github.com/edsadr) - -**Adrian Estrada** <edsadr@gmail.com> (he/him) -* [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) - -**Robert Jefe Lindstaedt** <robert.lindstaedt@gmail.com> -* [eugeneo](https://github.com/eugeneo) - -**Eugene Ostroukhov** <eostroukhov@google.com> -* [evanlucas](https://github.com/evanlucas) - -**Evan Lucas** <evanlucas@me.com> (he/him) -* [fhinkel](https://github.com/fhinkel) - -**Franziska Hinkelmann** <franziska.hinkelmann@gmail.com> (she/her) -* [Fishrock123](https://github.com/Fishrock123) - -**Jeremiah Senkpiel** <fishrock123@rocketmail.com> -* [gabrielschulhof](https://github.com/gabrielschulhof) - -**Gabriel Schulhof** <gabriel.schulhof@intel.com> -* [gdams](https://github.com/gdams) - -**George Adams** <george.adams@uk.ibm.com> (he/him) -* [geek](https://github.com/geek) - -**Wyatt Preul** <wpreul@gmail.com> -* [gengjiawen](https://github.com/gengjiawen) - -**Jiawen Geng** <technicalcute@gmail.com> -* [gibfahn](https://github.com/gibfahn) - -**Gibson Fahnestock** <gibfahn@gmail.com> (he/him) -* [gireeshpunathil](https://github.com/gireeshpunathil) - -**Gireesh Punathil** <gpunathi@in.ibm.com> (he/him) -* [guybedford](https://github.com/guybedford) - -**Guy Bedford** <guybedford@gmail.com> (he/him) -* [hashseed](https://github.com/hashseed) - -**Yang Guo** <yangguo@chromium.org> (he/him) -* [hiroppy](https://github.com/hiroppy) - -**Yuta Hiroto** <hello@hiroppy.me> (he/him) -* [iarna](https://github.com/iarna) - -**Rebecca Turner** <me@re-becca.org> -* [indutny](https://github.com/indutny) - -**Fedor Indutny** <fedor.indutny@gmail.com> -* [italoacasas](https://github.com/italoacasas) - -**Italo A. Casas** <me@italoacasas.com> (he/him) -* [JacksonTian](https://github.com/JacksonTian) - -**Jackson Tian** <shyvo1987@gmail.com> -* [jasnell](https://github.com/jasnell) - -**James M Snell** <jasnell@gmail.com> (he/him) -* [jbergstroem](https://github.com/jbergstroem) - -**Johan Bergström** <bugs@bergstroem.nu> -* [jdalton](https://github.com/jdalton) - -**John-David Dalton** <john.david.dalton@gmail.com> -* [jkrems](https://github.com/jkrems) - -**Jan Krems** <jan.krems@gmail.com> (he/him) -* [joaocgreis](https://github.com/joaocgreis) - -**João Reis** <reis@janeasystems.com> -* [joyeecheung](https://github.com/joyeecheung) - -**Joyee Cheung** <joyeec9h3@gmail.com> (she/her) -* [julianduque](https://github.com/julianduque) - -**Julian Duque** <julianduquej@gmail.com> (he/him) -* [JungMinu](https://github.com/JungMinu) - -**Minwoo Jung** <nodecorelab@gmail.com> (he/him) -* [kfarnung](https://github.com/kfarnung) - -**Kyle Farnung** <kfarnung@microsoft.com> (he/him) -* [lance](https://github.com/lance) - -**Lance Ball** <lball@redhat.com> (he/him) -* [legendecas](https://github.com/legendecas) - -**Chengzhong Wu** <legendecas@gmail.com> (he/him) -* [Leko](https://github.com/Leko) - -**Shingo Inoue** <leko.noor@gmail.com> (he/him) -* [lpinca](https://github.com/lpinca) - -**Luigi Pinca** <luigipinca@gmail.com> (he/him) -* [lundibundi](https://github.com/lundibundi) - -**Denys Otrishko** <shishugi@gmail.com> (he/him) -* [maclover7](https://github.com/maclover7) - -**Jon Moss** <me@jonathanmoss.me> (he/him) -* [mafintosh](https://github.com/mafintosh) -**Mathias Buus** <mathiasbuus@gmail.com> (he/him) -* [mcollina](https://github.com/mcollina) - -**Matteo Collina** <matteo.collina@gmail.com> (he/him) -* [mhdawson](https://github.com/mhdawson) - -**Michael Dawson** <michael_dawson@ca.ibm.com> (he/him) -* [misterdjules](https://github.com/misterdjules) - -**Julien Gilli** <jgilli@nodejs.org> -* [mmarchini](https://github.com/mmarchini) - -**Matheus Marchini** <mat@mmarchini.me> -* [MoonBall](https://github.com/MoonBall) - -**Chen Gang** <gangc.cxy@foxmail.com> -* [mscdex](https://github.com/mscdex) - -**Brian White** <mscdex@mscdex.net> -* [MylesBorins](https://github.com/MylesBorins) - -**Myles Borins** <myles.borins@gmail.com> (he/him) -* [not-an-aardvark](https://github.com/not-an-aardvark) - -**Teddy Katz** <teddy.katz@gmail.com> (he/him) -* [ofrobots](https://github.com/ofrobots) - -**Ali Ijaz Sheikh** <ofrobots@google.com> (he/him) -* [oyyd](https://github.com/oyyd) - -**Ouyang Yadong** <oyydoibh@gmail.com> (he/him) -* [princejwesley](https://github.com/princejwesley) - -**Prince John Wesley** <princejohnwesley@gmail.com> -* [psmarshall](https://github.com/psmarshall) - -**Peter Marshall** <petermarshall@chromium.org> (he/him) -* [Qard](https://github.com/Qard) - -**Stephen Belanger** <admin@stephenbelanger.com> (he/him) -* [refack](https://github.com/refack) - -**Refael Ackermann (רפאל פלחי)** <refack@gmail.com> (he/him/הוא/אתה) -* [richardlau](https://github.com/richardlau) - -**Richard Lau** <riclau@uk.ibm.com> -* [ronkorving](https://github.com/ronkorving) - -**Ron Korving** <ron@ronkorving.nl> -* [rubys](https://github.com/rubys) - -**Sam Ruby** <rubys@intertwingly.net> -* [rvagg](https://github.com/rvagg) - -**Rod Vagg** <rod@vagg.org> -* [ryzokuken](https://github.com/ryzokuken) - -**Ujjwal Sharma** <usharma1998@gmail.com> (he/him) -* [saghul](https://github.com/saghul) - -**Saúl Ibarra Corretgé** <saghul@gmail.com> -* [sam-github](https://github.com/sam-github) - -**Sam Roberts** <vieuxtech@gmail.com> -* [santigimeno](https://github.com/santigimeno) - -**Santiago Gimeno** <santiago.gimeno@gmail.com> -* [sebdeckers](https://github.com/sebdeckers) - -**Sebastiaan Deckers** <sebdeckers83@gmail.com> -* [seishun](https://github.com/seishun) - -**Nikolai Vavilov** <vvnicholas@gmail.com> -* [shigeki](https://github.com/shigeki) - -**Shigeki Ohtsu** <ohtsu@ohtsu.org> (he/him) -* [shisama](https://github.com/shisama) - -**Masashi Hirano** <shisama07@gmail.com> (he/him) -* [silverwind](https://github.com/silverwind) - -**Roman Reiss** <me@silverwind.io> -* [srl295](https://github.com/srl295) - -**Steven R Loomis** <srloomis@us.ibm.com> -* [starkwang](https://github.com/starkwang) - -**Weijia Wang** <starkwang@126.com> -* [targos](https://github.com/targos) - -**Michaël Zasso** <targos@protonmail.com> (he/him) -* [thefourtheye](https://github.com/thefourtheye) - -**Sakthipriyan Vairamani** <thechargingvolcano@gmail.com> (he/him) -* [thekemkid](https://github.com/thekemkid) - -**Glen Keane** <glenkeane.94@gmail.com> (he/him) -* [TimothyGu](https://github.com/TimothyGu) - -**Tiancheng "Timothy" Gu** <timothygu99@gmail.com> (he/him) -* [tniessen](https://github.com/tniessen) - -**Tobias Nießen** <tniessen@tnie.de> -* [trevnorris](https://github.com/trevnorris) - -**Trevor Norris** <trev.norris@gmail.com> -* [trivikr](https://github.com/trivikr) - -**Trivikram Kamat** <trivikr.dev@gmail.com> -* [Trott](https://github.com/Trott) - -**Rich Trott** <rtrott@gmail.com> (he/him) -* [vdeturckheim](https://github.com/vdeturckheim) - -**Vladimir de Turckheim** <vlad2t@hotmail.com> (he/him) -* [vkurchatkin](https://github.com/vkurchatkin) - -**Vladimir Kurchatkin** <vladimir.kurchatkin@gmail.com> -* [watilde](https://github.com/watilde) - -**Daijiro Wachi** <daijiro.wachi@gmail.com> (he/him) -* [watson](https://github.com/watson) - -**Thomas Watson** <w@tson.dk> -* [XadillaX](https://github.com/XadillaX) - -**Khaidi Chu** <i@2333.moe> (he/him) -* [yhwang](https://github.com/yhwang) - -**Yihong Wang** <yh.wang@ibm.com> -* [yorkie](https://github.com/yorkie) - -**Yorkie Liu** <yorkiefixer@gmail.com> -* [yosuke-furukawa](https://github.com/yosuke-furukawa) - -**Yosuke Furukawa** <yosuke.furukawa@gmail.com> -* [ZYSzys](https://github.com/ZYSzys) - -**Yongsheng Zhang** <zyszys98@gmail.com> (he/him) - -### Collaborator Emeriti - -* [andrasq](https://github.com/andrasq) - -**Andras** <andras@kinvey.com> -* [AnnaMag](https://github.com/AnnaMag) - -**Anna M. Kedzierska** <anna.m.kedzierska@gmail.com> -* [brendanashworth](https://github.com/brendanashworth) - -**Brendan Ashworth** <brendan.ashworth@me.com> -* [estliberitas](https://github.com/estliberitas) - -**Alexander Makarenko** <estliberitas@gmail.com> -* [chrisdickinson](https://github.com/chrisdickinson) - -**Chris Dickinson** <christopher.s.dickinson@gmail.com> -* [DavidCai1993](https://github.com/DavidCai1993) - -**David Cai** <davidcai1993@yahoo.com> (he/him) -* [firedfox](https://github.com/firedfox) - -**Daniel Wang** <wangyang0123@gmail.com> -* [imran-iq](https://github.com/imran-iq) - -**Imran Iqbal** <imran@imraniqbal.org> -* [imyller](https://github.com/imyller) - -**Ilkka Myller** <ilkka.myller@nodefield.com> -* [isaacs](https://github.com/isaacs) - -**Isaac Z. Schlueter** <i@izs.me> -* [jasongin](https://github.com/jasongin) - -**Jason Ginchereau** <jasongin@microsoft.com> -* [jhamhader](https://github.com/jhamhader) - -**Yuval Brik** <yuval@brik.org.il> -* [joshgav](https://github.com/joshgav) - -**Josh Gavant** <josh.gavant@outlook.com> -* [kunalspathak](https://github.com/kunalspathak) - -**Kunal Pathak** <kunal.pathak@microsoft.com> -* [lucamaraschi](https://github.com/lucamaraschi) - -**Luca Maraschi** <luca.maraschi@gmail.com> (he/him) -* [lxe](https://github.com/lxe) - -**Aleksey Smolenchuk** <lxe@lxe.co> -* [matthewloring](https://github.com/matthewloring) - -**Matthew Loring** <mattloring@google.com> -* [micnic](https://github.com/micnic) - -**Nicu Micleușanu** <micnic90@gmail.com> (he/him) -* [mikeal](https://github.com/mikeal) - -**Mikeal Rogers** <mikeal.rogers@gmail.com> -* [monsanto](https://github.com/monsanto) - -**Christopher Monsanto** <chris@monsan.to> -* [Olegas](https://github.com/Olegas) - -**Oleg Elifantiev** <oleg@elifantiev.ru> -* [orangemocha](https://github.com/orangemocha) - -**Alexis Campailla** <orangemocha@nodejs.org> -* [othiym23](https://github.com/othiym23) - -**Forrest L Norvell** <ogd@aoaioxxysz.net> (he/him) -* [petkaantonov](https://github.com/petkaantonov) - -**Petka Antonov** <petka_antonov@hotmail.com> -* [phillipj](https://github.com/phillipj) - -**Phillip Johnsen** <johphi@gmail.com> -* [piscisaureus](https://github.com/piscisaureus) - -**Bert Belder** <bertbelder@gmail.com> -* [pmq20](https://github.com/pmq20) - -**Minqi Pan** <pmq2001@gmail.com> -* [rlidwka](https://github.com/rlidwka) - -**Alex Kocharin** <alex@kocharin.ru> -* [rmg](https://github.com/rmg) - -**Ryan Graham** <r.m.graham@gmail.com> -* [robertkowalski](https://github.com/robertkowalski) - -**Robert Kowalski** <rok@kowalski.gd> -* [romankl](https://github.com/romankl) - -**Roman Klauke** <romaaan.git@gmail.com> -* [RReverser](https://github.com/RReverser) - -**Ingvar Stepanyan** <me@rreverser.com> -* [stefanmb](https://github.com/stefanmb) - -**Stefan Budeanu** <stefan@budeanu.com> -* [tellnes](https://github.com/tellnes) - -**Christian Tellnes** <christian@tellnes.no> -* [thlorenz](https://github.com/thlorenz) - -**Thorsten Lorenz** <thlorenz@gmx.de> -* [tunniclm](https://github.com/tunniclm) - -**Mike Tunnicliffe** <m.j.tunnicliffe@gmail.com> -* [vsemozhetbyt](https://github.com/vsemozhetbyt) - -**Vse Mozhet Byt** <vsemozhetbyt@gmail.com> (he/him) -* [whitlockjc](https://github.com/whitlockjc) - -**Jeremy Whitlock** <jwhitlock@apache.org> - -Collaborators follow the [COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md) in -maintaining the Node.js project. - -### Release Keys - -GPG keys used to sign Node.js releases: - -* **Beth Griggs** <bethany.griggs@uk.ibm.com> -`4ED778F539E3634C779C87C6D7062848A1AB005C` -* **Colin Ihrig** <cjihrig@gmail.com> -`94AE36675C464D64BAFA68DD7434390BDBE9B9C5` -* **Evan Lucas** <evanlucas@me.com> -`B9AE9905FFD7803F25714661B63B535A4C206CA9` -* **Gibson Fahnestock** <gibfahn@gmail.com> -`77984A986EBC2AA786BC0F66B01FBB92821C587A` -* **James M Snell** <jasnell@keybase.io> -`71DCFD284A79C3B38668286BC97EC7A07EDE3FC1` -* **Jeremiah Senkpiel** <fishrock@keybase.io> -`FD3A5288F042B6850C66B31F09FE44734EB7990E` -* **Michaël Zasso** <targos@protonmail.com> -`8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600` -* **Myles Borins** <myles.borins@gmail.com> -`C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8` -* **Rod Vagg** <rod@vagg.org> -`DD8F2338BAE7501E3DD5AC78C273792F7D83545D` -* **Ruben Bridgewater** <ruben@bridgewater.de> -`A48C2BEE680E841632CD4E44F07496B3EB3C1762` -* **Shelley Vohr** <shelley.vohr@gmail.com> -`B9E2F5981AA6E0CD28160D9FF13993A75599653C` - -To import the full set of trusted release keys: - -```shell -gpg --keyserver pool.sks-keyservers.net --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C -gpg --keyserver pool.sks-keyservers.net --recv-keys B9E2F5981AA6E0CD28160D9FF13993A75599653C -gpg --keyserver pool.sks-keyservers.net --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 -gpg --keyserver pool.sks-keyservers.net --recv-keys B9AE9905FFD7803F25714661B63B535A4C206CA9 -gpg --keyserver pool.sks-keyservers.net --recv-keys 77984A986EBC2AA786BC0F66B01FBB92821C587A -gpg --keyserver pool.sks-keyservers.net --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 -gpg --keyserver pool.sks-keyservers.net --recv-keys FD3A5288F042B6850C66B31F09FE44734EB7990E -gpg --keyserver pool.sks-keyservers.net --recv-keys 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 -gpg --keyserver pool.sks-keyservers.net --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 -gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D -gpg --keyserver pool.sks-keyservers.net --recv-keys A48C2BEE680E841632CD4E44F07496B3EB3C1762 +./taler-android-build/arm $NDK +./taler-android-build/arm64 $NDK +./taler-android-build/x86 $NDK +./taler-android-build/x64 $NDK ``` -See the section above on [Verifying Binaries](#verifying-binaries) for how to -use these keys to verify a downloaded file. - -Other keys used to sign some previous releases: +where `$NDK` is the path to the ndk-bundle in the Android SDK. -* **Chris Dickinson** <christopher.s.dickinson@gmail.com> -`9554F04D7259F04124DE6B476D5A82AC7E37093B` -* **Isaac Z. Schlueter** <i@izs.me> -`93C7E9E91B49E432C2F75674B0A78B0A6C481CF6` -* **Italo A. Casas** <me@italoacasas.com> -`56730D5401028683275BD23C23EFEFE93C4CFFFE` -* **Julien Gilli** <jgilli@fastmail.fm> -`114F43EE0176B71C7BC219DD50A3051F888C628D` -* **Timothy J Fontaine** <tjfontaine@gmail.com> -`7937DFD2AB06298B2293C3187D33FF9D0246406D` +These scripts are tested with arm and NDK version 19.2.5345600. -[Code of Conduct]: https://github.com/nodejs/admin/blob/master/CODE_OF_CONDUCT.md -[Contributing to the project]: CONTRIBUTING.md -[Node.js Website]: https://nodejs.org/ -[OpenJS Foundation]: http://openjs.foundation/ -[Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md -[Strategic Initiatives]: https://github.com/nodejs/TSC/blob/master/Strategic-Initiatives.md diff --git a/README.node.md b/README.node.md new file mode 100644 index 0000000000..7b3f7b6974 --- /dev/null +++ b/README.node.md @@ -0,0 +1,594 @@ +<p align="center"> + <a href="https://nodejs.org/"> + <img + alt="Node.js" + src="https://nodejs.org/static/images/logo-light.svg" + width="400" + /> + </a> +</p> + +Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. For +more information on using Node.js, see the [Node.js Website][]. + +The Node.js project uses an [open governance model](./GOVERNANCE.md). The +[OpenJS Foundation][] provides support for the project. + +**This project is bound by a [Code of Conduct][].** + +# Table of Contents + +* [Support](#support) +* [Release Types](#release-types) + * [Download](#download) + * [Current and LTS Releases](#current-and-lts-releases) + * [Nightly Releases](#nightly-releases) + * [API Documentation](#api-documentation) + * [Verifying Binaries](#verifying-binaries) +* [Building Node.js](#building-nodejs) +* [Security](#security) +* [Contributing to Node.js](#contributing-to-nodejs) +* [Current Project Team Members](#current-project-team-members) + * [TSC (Technical Steering Committee)](#tsc-technical-steering-committee) + * [Collaborators](#collaborators) + * [Release Keys](#release-keys) + +## Support + +Looking for help? Check out the +[instructions for getting support](.github/SUPPORT.md). + +## Release Types + +* **Current**: Under active development. Code for the Current release is in the + branch for its major version number (for example, + [v10.x](https://github.com/nodejs/node/tree/v10.x)). Node.js releases a new + major version every 6 months, allowing for breaking changes. This happens in + April and October every year. Releases appearing each October have a support + life of 8 months. Releases appearing each April convert to LTS (see below) + each October. +* **LTS**: Releases that receive Long-term Support, with a focus on stability + and security. Every even-numbered major version will become an LTS release. + LTS releases receive 12 months of _Active LTS_ support and a further 18 months + of _Maintenance_. LTS release lines have alphabetically-ordered codenames, + beginning with v4 Argon. There are no breaking changes or feature additions, + except in some special circumstances. +* **Nightly**: Code from the Current branch built every 24-hours when there are + changes. Use with caution. + +Current and LTS releases follow [Semantic Versioning](https://semver.org). A +member of the Release Team [signs](#release-keys) each Current and LTS release. +For more information, see the +[Release README](https://github.com/nodejs/Release#readme). + +### Download + +Binaries, installers, and source tarballs are available at +<https://nodejs.org/en/download/>. + +#### Current and LTS Releases +<https://nodejs.org/download/release/> + +The [latest](https://nodejs.org/download/release/latest/) directory is an +alias for the latest Current release. The latest-_codename_ directory is an +alias for the latest release from an LTS line. For example, the +[latest-carbon](https://nodejs.org/download/release/latest-carbon/) directory +contains the latest Carbon (Node.js 8) release. + +#### Nightly Releases +<https://nodejs.org/download/nightly/> + +Each directory name and filename contains a date (in UTC time) and the commit +SHA at the HEAD of the release. + +#### API Documentation + +Documentation for the latest Current release is at <https://nodejs.org/api/>. +Version-specific documentation is available in each release directory in the +_docs_ subdirectory. Version-specific documentation is also at +<https://nodejs.org/download/docs/>. + +### Verifying Binaries + +Download directories contain a `SHASUMS256.txt` file with SHA checksums for the +files. + +To download `SHASUMS256.txt` using `curl`: + +```console +$ curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt +``` + +To check that a downloaded file matches the checksum, run +it through `sha256sum` with a command such as: + +```console +$ grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c - +``` + +For Current and LTS, the GPG detached signature of `SHASUMS256.txt` is in +`SHASUMS256.txt.sig`. You can use it with `gpg` to verify the integrity of +`SHASUM256.txt`. You will first need to import +[the GPG keys of individuals authorized to create releases](#release-keys). To +import the keys: + +```console +$ gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D +``` + +See the bottom of this README for a full script to import active release keys. + +Next, download the `SHASUMS256.txt.sig` for the release: + +```console +$ curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt.sig +``` + +Then use `gpg --verify SHASUMS256.txt.sig SHASUMS256.txt` to verify +the file's signature. + +## Building Node.js + +See [BUILDING.md](BUILDING.md) for instructions on how to build Node.js from +source and a list of supported platforms. + +## Security + +For information on reporting security vulnerabilities in Node.js, see +[SECURITY.md](./SECURITY.md). + +## Contributing to Node.js + +* [Contributing to the project][] +* [Working Groups][] +* [Strategic Initiatives][] + +## Current Project Team Members + +For information about the governance of the Node.js project, see +[GOVERNANCE.md](./GOVERNANCE.md). + +### TSC (Technical Steering Committee) + +* [addaleax](https://github.com/addaleax) - +**Anna Henningsen** <anna@addaleax.net> (she/her) +* [apapirovski](https://github.com/apapirovski) - +**Anatoli Papirovski** <apapirovski@mac.com> (he/him) +* [BethGriggs](https://github.com/BethGriggs) - +**Beth Griggs** <Bethany.Griggs@uk.ibm.com> (she/her) +* [ChALkeR](https://github.com/ChALkeR) - +**Сковорода Никита Андреевич** <chalkerx@gmail.com> (he/him) +* [cjihrig](https://github.com/cjihrig) - +**Colin Ihrig** <cjihrig@gmail.com> (he/him) +* [danbev](https://github.com/danbev) - +**Daniel Bevenius** <daniel.bevenius@gmail.com> (he/him) +* [fhinkel](https://github.com/fhinkel) - +**Franziska Hinkelmann** <franziska.hinkelmann@gmail.com> (she/her) +* [Fishrock123](https://github.com/Fishrock123) - +**Jeremiah Senkpiel** <fishrock123@rocketmail.com> +* [gabrielschulhof](https://github.com/gabrielschulhof) - +**Gabriel Schulhof** <gabriel.schulhof@intel.com> +* [gireeshpunathil](https://github.com/gireeshpunathil) - +**Gireesh Punathil** <gpunathi@in.ibm.com> (he/him) +* [jasnell](https://github.com/jasnell) - +**James M Snell** <jasnell@gmail.com> (he/him) +* [joyeecheung](https://github.com/joyeecheung) - +**Joyee Cheung** <joyeec9h3@gmail.com> (she/her) +* [mcollina](https://github.com/mcollina) - +**Matteo Collina** <matteo.collina@gmail.com> (he/him) +* [mhdawson](https://github.com/mhdawson) - +**Michael Dawson** <michael_dawson@ca.ibm.com> (he/him) +* [MylesBorins](https://github.com/MylesBorins) - +**Myles Borins** <myles.borins@gmail.com> (he/him) +* [sam-github](https://github.com/sam-github) - +**Sam Roberts** <vieuxtech@gmail.com> +* [targos](https://github.com/targos) - +**Michaël Zasso** <targos@protonmail.com> (he/him) +* [thefourtheye](https://github.com/thefourtheye) - +**Sakthipriyan Vairamani** <thechargingvolcano@gmail.com> (he/him) +* [tniessen](https://github.com/tniessen) - +**Tobias Nießen** <tniessen@tnie.de> +* [Trott](https://github.com/Trott) - +**Rich Trott** <rtrott@gmail.com> (he/him) + +### TSC Emeriti + +* [bnoordhuis](https://github.com/bnoordhuis) - +**Ben Noordhuis** <info@bnoordhuis.nl> +* [chrisdickinson](https://github.com/chrisdickinson) - +**Chris Dickinson** <christopher.s.dickinson@gmail.com> +* [evanlucas](https://github.com/evanlucas) - +**Evan Lucas** <evanlucas@me.com> (he/him) +* [gibfahn](https://github.com/gibfahn) - +**Gibson Fahnestock** <gibfahn@gmail.com> (he/him) +* [indutny](https://github.com/indutny) - +**Fedor Indutny** <fedor.indutny@gmail.com> +* [isaacs](https://github.com/isaacs) - +**Isaac Z. Schlueter** <i@izs.me> +* [joshgav](https://github.com/joshgav) - +**Josh Gavant** <josh.gavant@outlook.com> +* [mscdex](https://github.com/mscdex) - +**Brian White** <mscdex@mscdex.net> +* [nebrius](https://github.com/nebrius) - +**Bryan Hughes** <bryan@nebri.us> +* [ofrobots](https://github.com/ofrobots) - +**Ali Ijaz Sheikh** <ofrobots@google.com> (he/him) +* [orangemocha](https://github.com/orangemocha) - +**Alexis Campailla** <orangemocha@nodejs.org> +* [piscisaureus](https://github.com/piscisaureus) - +**Bert Belder** <bertbelder@gmail.com> +* [rvagg](https://github.com/rvagg) - +**Rod Vagg** <r@va.gg> +* [shigeki](https://github.com/shigeki) - +**Shigeki Ohtsu** <ohtsu@ohtsu.org> (he/him) +* [TimothyGu](https://github.com/TimothyGu) - +**Tiancheng "Timothy" Gu** <timothygu99@gmail.com> (he/him) +* [trevnorris](https://github.com/trevnorris) - +**Trevor Norris** <trev.norris@gmail.com> + +### Collaborators + +* [addaleax](https://github.com/addaleax) - +**Anna Henningsen** <anna@addaleax.net> (she/her) +* [ak239](https://github.com/ak239) - +**Aleksei Koziatinskii** <ak239spb@gmail.com> +* [AndreasMadsen](https://github.com/AndreasMadsen) - +**Andreas Madsen** <amwebdk@gmail.com> (he/him) +* [antsmartian](https://github.com/antsmartian) - +**Anto Aravinth** <anto.aravinth.cse@gmail.com> (he/him) +* [apapirovski](https://github.com/apapirovski) - +**Anatoli Papirovski** <apapirovski@mac.com> (he/him) +* [aqrln](https://github.com/aqrln) - +**Alexey Orlenko** <eaglexrlnk@gmail.com> (he/him) +* [bcoe](https://github.com/bcoe) - +**Ben Coe** <bencoe@gmail.com> (he/him) +* [bengl](https://github.com/bengl) - +**Bryan English** <bryan@bryanenglish.com> (he/him) +* [benjamingr](https://github.com/benjamingr) - +**Benjamin Gruenbaum** <benjamingr@gmail.com> +* [BethGriggs](https://github.com/BethGriggs) - +**Beth Griggs** <Bethany.Griggs@uk.ibm.com> (she/her) +* [bmeck](https://github.com/bmeck) - +**Bradley Farias** <bradley.meck@gmail.com> +* [bmeurer](https://github.com/bmeurer) - +**Benedikt Meurer** <benedikt.meurer@gmail.com> +* [bnoordhuis](https://github.com/bnoordhuis) - +**Ben Noordhuis** <info@bnoordhuis.nl> +* [boneskull](https://github.com/boneskull) - +**Christopher Hiller** <boneskull@boneskull.com> (he/him) +* [BridgeAR](https://github.com/BridgeAR) - +**Ruben Bridgewater** <ruben@bridgewater.de> (he/him) +* [bzoz](https://github.com/bzoz) - +**Bartosz Sosnowski** <bartosz@janeasystems.com> +* [calvinmetcalf](https://github.com/calvinmetcalf) - +**Calvin Metcalf** <calvin.metcalf@gmail.com> +* [cclauss](https://github.com/cclauss) - +**Christian Clauss** <cclauss@me.com> (he/him) +* [ChALkeR](https://github.com/ChALkeR) - +**Сковорода Никита Андреевич** <chalkerx@gmail.com> (he/him) +* [cjihrig](https://github.com/cjihrig) - +**Colin Ihrig** <cjihrig@gmail.com> (he/him) +* [claudiorodriguez](https://github.com/claudiorodriguez) - +**Claudio Rodriguez** <cjrodr@yahoo.com> +* [codebytere](https://github.com/codebytere) - +**Shelley Vohr** <codebytere@gmail.com> (she/her) +* [danbev](https://github.com/danbev) - +**Daniel Bevenius** <daniel.bevenius@gmail.com> (he/him) +* [davisjam](https://github.com/davisjam) - +**Jamie Davis** <davisjam@vt.edu> (he/him) +* [devnexen](https://github.com/devnexen) - +**David Carlier** <devnexen@gmail.com> +* [devsnek](https://github.com/devsnek) - +**Gus Caplan** <me@gus.host> (he/him) +* [digitalinfinity](https://github.com/digitalinfinity) - +**Hitesh Kanwathirtha** <digitalinfinity@gmail.com> (he/him) +* [edsadr](https://github.com/edsadr) - +**Adrian Estrada** <edsadr@gmail.com> (he/him) +* [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) - +**Robert Jefe Lindstaedt** <robert.lindstaedt@gmail.com> +* [eugeneo](https://github.com/eugeneo) - +**Eugene Ostroukhov** <eostroukhov@google.com> +* [evanlucas](https://github.com/evanlucas) - +**Evan Lucas** <evanlucas@me.com> (he/him) +* [fhinkel](https://github.com/fhinkel) - +**Franziska Hinkelmann** <franziska.hinkelmann@gmail.com> (she/her) +* [Fishrock123](https://github.com/Fishrock123) - +**Jeremiah Senkpiel** <fishrock123@rocketmail.com> +* [gabrielschulhof](https://github.com/gabrielschulhof) - +**Gabriel Schulhof** <gabriel.schulhof@intel.com> +* [gdams](https://github.com/gdams) - +**George Adams** <george.adams@uk.ibm.com> (he/him) +* [geek](https://github.com/geek) - +**Wyatt Preul** <wpreul@gmail.com> +* [gengjiawen](https://github.com/gengjiawen) - +**Jiawen Geng** <technicalcute@gmail.com> +* [gibfahn](https://github.com/gibfahn) - +**Gibson Fahnestock** <gibfahn@gmail.com> (he/him) +* [gireeshpunathil](https://github.com/gireeshpunathil) - +**Gireesh Punathil** <gpunathi@in.ibm.com> (he/him) +* [guybedford](https://github.com/guybedford) - +**Guy Bedford** <guybedford@gmail.com> (he/him) +* [hashseed](https://github.com/hashseed) - +**Yang Guo** <yangguo@chromium.org> (he/him) +* [hiroppy](https://github.com/hiroppy) - +**Yuta Hiroto** <hello@hiroppy.me> (he/him) +* [iarna](https://github.com/iarna) - +**Rebecca Turner** <me@re-becca.org> +* [indutny](https://github.com/indutny) - +**Fedor Indutny** <fedor.indutny@gmail.com> +* [italoacasas](https://github.com/italoacasas) - +**Italo A. Casas** <me@italoacasas.com> (he/him) +* [JacksonTian](https://github.com/JacksonTian) - +**Jackson Tian** <shyvo1987@gmail.com> +* [jasnell](https://github.com/jasnell) - +**James M Snell** <jasnell@gmail.com> (he/him) +* [jbergstroem](https://github.com/jbergstroem) - +**Johan Bergström** <bugs@bergstroem.nu> +* [jdalton](https://github.com/jdalton) - +**John-David Dalton** <john.david.dalton@gmail.com> +* [jkrems](https://github.com/jkrems) - +**Jan Krems** <jan.krems@gmail.com> (he/him) +* [joaocgreis](https://github.com/joaocgreis) - +**João Reis** <reis@janeasystems.com> +* [joyeecheung](https://github.com/joyeecheung) - +**Joyee Cheung** <joyeec9h3@gmail.com> (she/her) +* [julianduque](https://github.com/julianduque) - +**Julian Duque** <julianduquej@gmail.com> (he/him) +* [JungMinu](https://github.com/JungMinu) - +**Minwoo Jung** <nodecorelab@gmail.com> (he/him) +* [kfarnung](https://github.com/kfarnung) - +**Kyle Farnung** <kfarnung@microsoft.com> (he/him) +* [lance](https://github.com/lance) - +**Lance Ball** <lball@redhat.com> (he/him) +* [legendecas](https://github.com/legendecas) - +**Chengzhong Wu** <legendecas@gmail.com> (he/him) +* [Leko](https://github.com/Leko) - +**Shingo Inoue** <leko.noor@gmail.com> (he/him) +* [lpinca](https://github.com/lpinca) - +**Luigi Pinca** <luigipinca@gmail.com> (he/him) +* [lundibundi](https://github.com/lundibundi) - +**Denys Otrishko** <shishugi@gmail.com> (he/him) +* [maclover7](https://github.com/maclover7) - +**Jon Moss** <me@jonathanmoss.me> (he/him) +* [mafintosh](https://github.com/mafintosh) +**Mathias Buus** <mathiasbuus@gmail.com> (he/him) +* [mcollina](https://github.com/mcollina) - +**Matteo Collina** <matteo.collina@gmail.com> (he/him) +* [mhdawson](https://github.com/mhdawson) - +**Michael Dawson** <michael_dawson@ca.ibm.com> (he/him) +* [misterdjules](https://github.com/misterdjules) - +**Julien Gilli** <jgilli@nodejs.org> +* [mmarchini](https://github.com/mmarchini) - +**Matheus Marchini** <mat@mmarchini.me> +* [MoonBall](https://github.com/MoonBall) - +**Chen Gang** <gangc.cxy@foxmail.com> +* [mscdex](https://github.com/mscdex) - +**Brian White** <mscdex@mscdex.net> +* [MylesBorins](https://github.com/MylesBorins) - +**Myles Borins** <myles.borins@gmail.com> (he/him) +* [not-an-aardvark](https://github.com/not-an-aardvark) - +**Teddy Katz** <teddy.katz@gmail.com> (he/him) +* [ofrobots](https://github.com/ofrobots) - +**Ali Ijaz Sheikh** <ofrobots@google.com> (he/him) +* [oyyd](https://github.com/oyyd) - +**Ouyang Yadong** <oyydoibh@gmail.com> (he/him) +* [princejwesley](https://github.com/princejwesley) - +**Prince John Wesley** <princejohnwesley@gmail.com> +* [psmarshall](https://github.com/psmarshall) - +**Peter Marshall** <petermarshall@chromium.org> (he/him) +* [Qard](https://github.com/Qard) - +**Stephen Belanger** <admin@stephenbelanger.com> (he/him) +* [refack](https://github.com/refack) - +**Refael Ackermann (רפאל פלחי)** <refack@gmail.com> (he/him/הוא/אתה) +* [richardlau](https://github.com/richardlau) - +**Richard Lau** <riclau@uk.ibm.com> +* [ronkorving](https://github.com/ronkorving) - +**Ron Korving** <ron@ronkorving.nl> +* [rubys](https://github.com/rubys) - +**Sam Ruby** <rubys@intertwingly.net> +* [rvagg](https://github.com/rvagg) - +**Rod Vagg** <rod@vagg.org> +* [ryzokuken](https://github.com/ryzokuken) - +**Ujjwal Sharma** <usharma1998@gmail.com> (he/him) +* [saghul](https://github.com/saghul) - +**Saúl Ibarra Corretgé** <saghul@gmail.com> +* [sam-github](https://github.com/sam-github) - +**Sam Roberts** <vieuxtech@gmail.com> +* [santigimeno](https://github.com/santigimeno) - +**Santiago Gimeno** <santiago.gimeno@gmail.com> +* [sebdeckers](https://github.com/sebdeckers) - +**Sebastiaan Deckers** <sebdeckers83@gmail.com> +* [seishun](https://github.com/seishun) - +**Nikolai Vavilov** <vvnicholas@gmail.com> +* [shigeki](https://github.com/shigeki) - +**Shigeki Ohtsu** <ohtsu@ohtsu.org> (he/him) +* [shisama](https://github.com/shisama) - +**Masashi Hirano** <shisama07@gmail.com> (he/him) +* [silverwind](https://github.com/silverwind) - +**Roman Reiss** <me@silverwind.io> +* [srl295](https://github.com/srl295) - +**Steven R Loomis** <srloomis@us.ibm.com> +* [starkwang](https://github.com/starkwang) - +**Weijia Wang** <starkwang@126.com> +* [targos](https://github.com/targos) - +**Michaël Zasso** <targos@protonmail.com> (he/him) +* [thefourtheye](https://github.com/thefourtheye) - +**Sakthipriyan Vairamani** <thechargingvolcano@gmail.com> (he/him) +* [thekemkid](https://github.com/thekemkid) - +**Glen Keane** <glenkeane.94@gmail.com> (he/him) +* [TimothyGu](https://github.com/TimothyGu) - +**Tiancheng "Timothy" Gu** <timothygu99@gmail.com> (he/him) +* [tniessen](https://github.com/tniessen) - +**Tobias Nießen** <tniessen@tnie.de> +* [trevnorris](https://github.com/trevnorris) - +**Trevor Norris** <trev.norris@gmail.com> +* [trivikr](https://github.com/trivikr) - +**Trivikram Kamat** <trivikr.dev@gmail.com> +* [Trott](https://github.com/Trott) - +**Rich Trott** <rtrott@gmail.com> (he/him) +* [vdeturckheim](https://github.com/vdeturckheim) - +**Vladimir de Turckheim** <vlad2t@hotmail.com> (he/him) +* [vkurchatkin](https://github.com/vkurchatkin) - +**Vladimir Kurchatkin** <vladimir.kurchatkin@gmail.com> +* [watilde](https://github.com/watilde) - +**Daijiro Wachi** <daijiro.wachi@gmail.com> (he/him) +* [watson](https://github.com/watson) - +**Thomas Watson** <w@tson.dk> +* [XadillaX](https://github.com/XadillaX) - +**Khaidi Chu** <i@2333.moe> (he/him) +* [yhwang](https://github.com/yhwang) - +**Yihong Wang** <yh.wang@ibm.com> +* [yorkie](https://github.com/yorkie) - +**Yorkie Liu** <yorkiefixer@gmail.com> +* [yosuke-furukawa](https://github.com/yosuke-furukawa) - +**Yosuke Furukawa** <yosuke.furukawa@gmail.com> +* [ZYSzys](https://github.com/ZYSzys) - +**Yongsheng Zhang** <zyszys98@gmail.com> (he/him) + +### Collaborator Emeriti + +* [andrasq](https://github.com/andrasq) - +**Andras** <andras@kinvey.com> +* [AnnaMag](https://github.com/AnnaMag) - +**Anna M. Kedzierska** <anna.m.kedzierska@gmail.com> +* [brendanashworth](https://github.com/brendanashworth) - +**Brendan Ashworth** <brendan.ashworth@me.com> +* [estliberitas](https://github.com/estliberitas) - +**Alexander Makarenko** <estliberitas@gmail.com> +* [chrisdickinson](https://github.com/chrisdickinson) - +**Chris Dickinson** <christopher.s.dickinson@gmail.com> +* [DavidCai1993](https://github.com/DavidCai1993) - +**David Cai** <davidcai1993@yahoo.com> (he/him) +* [firedfox](https://github.com/firedfox) - +**Daniel Wang** <wangyang0123@gmail.com> +* [imran-iq](https://github.com/imran-iq) - +**Imran Iqbal** <imran@imraniqbal.org> +* [imyller](https://github.com/imyller) - +**Ilkka Myller** <ilkka.myller@nodefield.com> +* [isaacs](https://github.com/isaacs) - +**Isaac Z. Schlueter** <i@izs.me> +* [jasongin](https://github.com/jasongin) - +**Jason Ginchereau** <jasongin@microsoft.com> +* [jhamhader](https://github.com/jhamhader) - +**Yuval Brik** <yuval@brik.org.il> +* [joshgav](https://github.com/joshgav) - +**Josh Gavant** <josh.gavant@outlook.com> +* [kunalspathak](https://github.com/kunalspathak) - +**Kunal Pathak** <kunal.pathak@microsoft.com> +* [lucamaraschi](https://github.com/lucamaraschi) - +**Luca Maraschi** <luca.maraschi@gmail.com> (he/him) +* [lxe](https://github.com/lxe) - +**Aleksey Smolenchuk** <lxe@lxe.co> +* [matthewloring](https://github.com/matthewloring) - +**Matthew Loring** <mattloring@google.com> +* [micnic](https://github.com/micnic) - +**Nicu Micleușanu** <micnic90@gmail.com> (he/him) +* [mikeal](https://github.com/mikeal) - +**Mikeal Rogers** <mikeal.rogers@gmail.com> +* [monsanto](https://github.com/monsanto) - +**Christopher Monsanto** <chris@monsan.to> +* [Olegas](https://github.com/Olegas) - +**Oleg Elifantiev** <oleg@elifantiev.ru> +* [orangemocha](https://github.com/orangemocha) - +**Alexis Campailla** <orangemocha@nodejs.org> +* [othiym23](https://github.com/othiym23) - +**Forrest L Norvell** <ogd@aoaioxxysz.net> (he/him) +* [petkaantonov](https://github.com/petkaantonov) - +**Petka Antonov** <petka_antonov@hotmail.com> +* [phillipj](https://github.com/phillipj) - +**Phillip Johnsen** <johphi@gmail.com> +* [piscisaureus](https://github.com/piscisaureus) - +**Bert Belder** <bertbelder@gmail.com> +* [pmq20](https://github.com/pmq20) - +**Minqi Pan** <pmq2001@gmail.com> +* [rlidwka](https://github.com/rlidwka) - +**Alex Kocharin** <alex@kocharin.ru> +* [rmg](https://github.com/rmg) - +**Ryan Graham** <r.m.graham@gmail.com> +* [robertkowalski](https://github.com/robertkowalski) - +**Robert Kowalski** <rok@kowalski.gd> +* [romankl](https://github.com/romankl) - +**Roman Klauke** <romaaan.git@gmail.com> +* [RReverser](https://github.com/RReverser) - +**Ingvar Stepanyan** <me@rreverser.com> +* [stefanmb](https://github.com/stefanmb) - +**Stefan Budeanu** <stefan@budeanu.com> +* [tellnes](https://github.com/tellnes) - +**Christian Tellnes** <christian@tellnes.no> +* [thlorenz](https://github.com/thlorenz) - +**Thorsten Lorenz** <thlorenz@gmx.de> +* [tunniclm](https://github.com/tunniclm) - +**Mike Tunnicliffe** <m.j.tunnicliffe@gmail.com> +* [vsemozhetbyt](https://github.com/vsemozhetbyt) - +**Vse Mozhet Byt** <vsemozhetbyt@gmail.com> (he/him) +* [whitlockjc](https://github.com/whitlockjc) - +**Jeremy Whitlock** <jwhitlock@apache.org> + +Collaborators follow the [COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md) in +maintaining the Node.js project. + +### Release Keys + +GPG keys used to sign Node.js releases: + +* **Beth Griggs** <bethany.griggs@uk.ibm.com> +`4ED778F539E3634C779C87C6D7062848A1AB005C` +* **Colin Ihrig** <cjihrig@gmail.com> +`94AE36675C464D64BAFA68DD7434390BDBE9B9C5` +* **Evan Lucas** <evanlucas@me.com> +`B9AE9905FFD7803F25714661B63B535A4C206CA9` +* **Gibson Fahnestock** <gibfahn@gmail.com> +`77984A986EBC2AA786BC0F66B01FBB92821C587A` +* **James M Snell** <jasnell@keybase.io> +`71DCFD284A79C3B38668286BC97EC7A07EDE3FC1` +* **Jeremiah Senkpiel** <fishrock@keybase.io> +`FD3A5288F042B6850C66B31F09FE44734EB7990E` +* **Michaël Zasso** <targos@protonmail.com> +`8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600` +* **Myles Borins** <myles.borins@gmail.com> +`C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8` +* **Rod Vagg** <rod@vagg.org> +`DD8F2338BAE7501E3DD5AC78C273792F7D83545D` +* **Ruben Bridgewater** <ruben@bridgewater.de> +`A48C2BEE680E841632CD4E44F07496B3EB3C1762` +* **Shelley Vohr** <shelley.vohr@gmail.com> +`B9E2F5981AA6E0CD28160D9FF13993A75599653C` + +To import the full set of trusted release keys: + +```shell +gpg --keyserver pool.sks-keyservers.net --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C +gpg --keyserver pool.sks-keyservers.net --recv-keys B9E2F5981AA6E0CD28160D9FF13993A75599653C +gpg --keyserver pool.sks-keyservers.net --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 +gpg --keyserver pool.sks-keyservers.net --recv-keys B9AE9905FFD7803F25714661B63B535A4C206CA9 +gpg --keyserver pool.sks-keyservers.net --recv-keys 77984A986EBC2AA786BC0F66B01FBB92821C587A +gpg --keyserver pool.sks-keyservers.net --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 +gpg --keyserver pool.sks-keyservers.net --recv-keys FD3A5288F042B6850C66B31F09FE44734EB7990E +gpg --keyserver pool.sks-keyservers.net --recv-keys 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 +gpg --keyserver pool.sks-keyservers.net --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 +gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D +gpg --keyserver pool.sks-keyservers.net --recv-keys A48C2BEE680E841632CD4E44F07496B3EB3C1762 +``` + +See the section above on [Verifying Binaries](#verifying-binaries) for how to +use these keys to verify a downloaded file. + +Other keys used to sign some previous releases: + +* **Chris Dickinson** <christopher.s.dickinson@gmail.com> +`9554F04D7259F04124DE6B476D5A82AC7E37093B` +* **Isaac Z. Schlueter** <i@izs.me> +`93C7E9E91B49E432C2F75674B0A78B0A6C481CF6` +* **Italo A. Casas** <me@italoacasas.com> +`56730D5401028683275BD23C23EFEFE93C4CFFFE` +* **Julien Gilli** <jgilli@fastmail.fm> +`114F43EE0176B71C7BC219DD50A3051F888C628D` +* **Timothy J Fontaine** <tjfontaine@gmail.com> +`7937DFD2AB06298B2293C3187D33FF9D0246406D` + +[Code of Conduct]: https://github.com/nodejs/admin/blob/master/CODE_OF_CONDUCT.md +[Contributing to the project]: CONTRIBUTING.md +[Node.js Website]: https://nodejs.org/ +[OpenJS Foundation]: http://openjs.foundation/ +[Working Groups]: https://github.com/nodejs/TSC/blob/master/WORKING_GROUPS.md +[Strategic Initiatives]: https://github.com/nodejs/TSC/blob/master/Strategic-Initiatives.md diff --git a/common.gypi b/common.gypi index 54a8d930c4..c8e897c432 100644 --- a/common.gypi +++ b/common.gypi @@ -130,8 +130,8 @@ 'ldflags': [ '-Wl,-bbigtoc' ], }], ['OS == "android"', { - 'cflags': [ '-fPIE' ], - 'ldflags': [ '-fPIE', '-pie' ] + 'cflags': [ '-fPIC' ], + 'ldflags': [ '-fPIC' ] }], ], 'msvs_settings': { @@ -190,8 +190,8 @@ ], },], ['OS == "android"', { - 'cflags': [ '-fPIE' ], - 'ldflags': [ '-fPIE', '-pie' ] + 'cflags': [ '-fPIC' ], + 'ldflags': [ '-fPIC' ] }], ], 'msvs_settings': { diff --git a/configure.py b/configure.py index 48624aba92..0795e17d5f 100755 --- a/configure.py +++ b/configure.py @@ -1117,14 +1117,18 @@ def configure_node(o): o['variables']['node_shared'] = b(options.shared) node_module_version = getmoduleversion.get_version() - if sys.platform == 'darwin': - shlib_suffix = '%s.dylib' - elif sys.platform.startswith('aix'): - shlib_suffix = '%s.a' + if options.dest_os == 'android': + shlib_suffix = "so" else: shlib_suffix = 'so.%s' + if sys.platform == 'darwin': + shlib_suffix = '%s.dylib' + elif sys.platform.startswith('aix'): + shlib_suffix = '%s.a' + else: + shlib_suffix = 'so.%s' + shlib_suffix %= node_module_version - shlib_suffix %= node_module_version o['variables']['node_module_version'] = int(node_module_version) o['variables']['shlib_suffix'] = shlib_suffix @@ -1760,6 +1764,8 @@ gyp_args += args if warn.warned and not options.verbose: warn('warnings were emitted in the configure phase') +print("gyp args", gyp_args) + print_verbose("running: \n " + " ".join(['python', 'tools/gyp_node.py'] + gyp_args)) run_gyp(gyp_args) info('configure completed successfully') diff --git a/deps/cares/config/android/ares_config.h b/deps/cares/config/android/ares_config.h index 1a5265a509..2d469d5ca7 100644 --- a/deps/cares/config/android/ares_config.h +++ b/deps/cares/config/android/ares_config.h @@ -128,7 +128,7 @@ #define HAVE_GETNAMEINFO 1 /* Define to 1 if you have the getservbyport_r function. */ -#define HAVE_GETSERVBYPORT_R 1 +#undef HAVE_GETSERVBYPORT_R /* Define to 1 if you have the `gettimeofday' function. */ #define HAVE_GETTIMEOFDAY 1 diff --git a/deps/openssl/openssl-cl_no_asm.gypi b/deps/openssl/openssl-cl_no_asm.gypi index bb9e55de91..5152774241 100644 --- a/deps/openssl/openssl-cl_no_asm.gypi +++ b/deps/openssl/openssl-cl_no_asm.gypi @@ -14,6 +14,8 @@ 'includes': ['config/archs/linux64-s390x/no-asm/openssl-cl.gypi'], }, 'target_arch=="arm" and OS=="linux"', { 'includes': ['config/archs/linux-armv4/no-asm/openssl-cl.gypi'], + }, 'target_arch=="arm" and OS=="android"', { + 'includes': ['config/archs/linux-armv4/no-asm/openssl-cl.gypi'], }, 'target_arch=="arm64" and OS=="linux"', { 'includes': ['config/archs/linux-aarch64/no-asm/openssl-cl.gypi'], }, 'target_arch=="arm64" and OS=="win"', { diff --git a/deps/openssl/openssl_no_asm.gypi b/deps/openssl/openssl_no_asm.gypi index 8eb61d9703..bf7d48749a 100644 --- a/deps/openssl/openssl_no_asm.gypi +++ b/deps/openssl/openssl_no_asm.gypi @@ -15,6 +15,8 @@ 'includes': ['config/archs/linux64-s390x/no-asm/openssl.gypi'], }, 'target_arch=="arm" and OS=="linux"', { 'includes': ['config/archs/linux-armv4/no-asm/openssl.gypi'], + }, 'target_arch=="arm" and OS=="android"', { + 'includes': ['config/archs/linux-armv4/no-asm/openssl.gypi'], }, 'target_arch=="arm64" and OS=="linux"', { 'includes': ['config/archs/linux-aarch64/no-asm/openssl.gypi'], }, 'target_arch=="ia32" and OS=="freebsd"', { diff --git a/deps/uvwasi/src/uvwasi.c b/deps/uvwasi/src/uvwasi.c index 0f7c4c5d3a..728443d57a 100644 --- a/deps/uvwasi/src/uvwasi.c +++ b/deps/uvwasi/src/uvwasi.c @@ -1187,12 +1187,7 @@ uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi, dir->nentries = UVWASI__READDIR_NUM_ENTRIES; uv_fs_req_cleanup(&req); -#ifndef _WIN32 - /* TODO(cjihrig): Need a Windows equivalent of this logic. */ - /* Seek to the proper location in the directory. */ - if (cookie != UVWASI_DIRCOOKIE_START) - seekdir(dir->dir, cookie); -#endif + /* seekdir does not exist on android */ /* Read the directory entries into the provided buffer. */ err = UVWASI_ESUCCESS; @@ -1209,16 +1204,9 @@ uvwasi_errno_t uvwasi_fd_readdir(uvwasi_t* uvwasi, consistently across platforms. In other words, d_next should always be 8 bytes, d_ino should always be 8 bytes, d_namlen should always be 4 bytes, and d_type should always be 1 byte. */ -#ifndef _WIN32 - tell = telldir(dir->dir); - if (tell < 0) { - err = uvwasi__translate_uv_error(uv_translate_sys_error(errno)); - uv_fs_req_cleanup(&req); - goto exit; - } -#else + + /* seekdir does not exist on android */ tell = 0; /* TODO(cjihrig): Need to support Windows. */ -#endif /* _WIN32 */ name_len = strlen(dirents[i].name); dirent.d_next = (uvwasi_dircookie_t) tell; diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 0faa57e5b0..83752a4acc 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -168,7 +168,6 @@ deps = { }, 'v8/third_party/catapult': { 'url': Var('chromium_url') + '/catapult.git' + '@' + 'b9fad2fbcc499b984d88f4c4aec26d162297efae', - 'condition': 'checkout_android', }, 'v8/third_party/colorama/src': { 'url': Var('chromium_url') + '/external/colorama.git' + '@' + '799604a1041e9b3bc5d2789ecbd7e8db2e18e6b8', diff --git a/deps/v8/tools/node/fetch_deps.py b/deps/v8/tools/node/fetch_deps.py index ee5b629e2b..00eb4fc92d 100755 --- a/deps/v8/tools/node/fetch_deps.py +++ b/deps/v8/tools/node/fetch_deps.py @@ -35,7 +35,6 @@ GCLIENT_SOLUTION = [ "v8/test/test262/harness" : None, "v8/third_party/android_ndk" : None, "v8/third_party/android_sdk" : None, - "v8/third_party/catapult" : None, "v8/third_party/colorama/src" : None, "v8/third_party/fuchsia-sdk" : None, "v8/third_party/instrumented_libraries" : None, diff --git a/lib/akono.js b/lib/akono.js new file mode 100644 index 0000000000..4c2e2a2e0c --- /dev/null +++ b/lib/akono.js @@ -0,0 +1,69 @@ +// Copyright (C) 2019 Taler Systems SA +// +// This file is part of GNU Taler. +// +// GNU Taler is free software: you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation, either version 3 of the License, or (at your option) +// any later version. +// +// GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for +// more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with GNU. If not, see <https://www.gnu.org/licenses/>. + + +'use strict'; + +const akono = internalBinding("akono"); + +const mod = require('module'); +mod._saved_findPath = mod._findPath; +mod._akonoMods = {}; +mod._findPath = (request, paths, isMain) => { + const res = mod._saved_findPath(request, paths, isMain); + if (res !== false) return res; + const loadResult = akono.getModuleCode(request); + if (!loadResult) return false; + const p = `/vmod/${request}`; + mod._akonoMods[p] = loadResult; + return p; +}; + +function stripBOM(content) { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; +} + +mod._saved_js_extension = mod._extensions[".js"]; +mod._extensions[".js"] = (module, filename) => { + if (mod._akonoMods.hasOwnProperty(filename)) { + const akmod = mod._akonoMods[filename]; + const content = akmod; + module._compile(stripBOM(content), filename); + return; + } + return mod._saved_js_extension(module, filename); +}; + +mod._saved_json_extension = mod._extensions[".json"]; +mod._extensions[".json"] = (module, filename) => { + if (mod._akonoMods.hasOwnProperty(filename)) { + const akmod = mod._akonoMods[filename]; + const content = akmod; + try { + module.exports = JSON.parse(stripBOM(content)); + return; + } catch (err) { + err.message = filename + ': ' + err.message; + throw err; + } + } + return mod._saved_json_extension(module, filename); +}; + @@ -30,6 +30,7 @@ 'lib/internal/bootstrap/pre_execution.js', 'lib/internal/per_context/primordials.js', 'lib/internal/per_context/domexception.js', + 'lib/akono.js', 'lib/async_hooks.js', 'lib/assert.js', 'lib/buffer.js', @@ -497,6 +498,7 @@ 'include_dirs': [ 'src', + 'deps/v8/include', '<(SHARED_INTERMEDIATE_DIR)' # for node_natives.h ], 'dependencies': [ @@ -68,6 +68,51 @@ [ 'node_enable_d8=="true"', { 'dependencies': [ 'tools/v8_gypfiles/d8.gyp:d8' ], }], + [ 'node_use_bundled_v8=="false" and target_arch=="arm" and OS=="android"', { + 'libraries': [ + '<!(pwd)/deps/v8/out.gn/android-arm/libv8_libbase.cr.so', + '<!(pwd)/deps/v8/out.gn/android-arm/libv8_libplatform.cr.so', + '<!(pwd)/deps/v8/out.gn/android-arm/libv8.cr.so', + '<!(pwd)/deps/v8/out.gn/android-arm/libicui18n.cr.so', + '<!(pwd)/deps/v8/out.gn/android-arm/libicuuc.cr.so', + ] + }], + [ 'node_use_bundled_v8=="false" and target_arch=="arm64" and OS=="android"', { + 'libraries': [ + '<!(pwd)/deps/v8/out.gn/android-arm64/libv8_libbase.cr.so', + '<!(pwd)/deps/v8/out.gn/android-arm64/libv8_libplatform.cr.so', + '<!(pwd)/deps/v8/out.gn/android-arm64/libv8.cr.so', + '<!(pwd)/deps/v8/out.gn/android-arm64/libicui18n.cr.so', + '<!(pwd)/deps/v8/out.gn/android-arm64/libicuuc.cr.so', + ] + }], + [ 'node_use_bundled_v8=="false" and target_arch=="x86" and OS=="android"', { + 'libraries': [ + '<!(pwd)/deps/v8/out.gn/android-x86/libv8_libbase.cr.so', + '<!(pwd)/deps/v8/out.gn/android-x86/libv8_libplatform.cr.so', + '<!(pwd)/deps/v8/out.gn/android-x86/libv8.cr.so', + '<!(pwd)/deps/v8/out.gn/android-x86/libicui18n.cr.so', + '<!(pwd)/deps/v8/out.gn/android-x86/libicuuc.cr.so', + ] + }], + [ 'node_use_bundled_v8=="false" and target_arch=="ia32" and OS=="android"', { + 'libraries': [ + '<!(pwd)/deps/v8/out.gn/android-x86/libv8_libbase.cr.so', + '<!(pwd)/deps/v8/out.gn/android-x86/libv8_libplatform.cr.so', + '<!(pwd)/deps/v8/out.gn/android-x86/libv8.cr.so', + '<!(pwd)/deps/v8/out.gn/android-x86/libicui18n.cr.so', + '<!(pwd)/deps/v8/out.gn/android-x86/libicuuc.cr.so', + ] + }], + [ 'node_use_bundled_v8=="false" and target_arch=="x64" and OS=="android"', { + 'libraries': [ + '<!(pwd)/deps/v8/out.gn/android-x64/libv8_libbase.cr.so', + '<!(pwd)/deps/v8/out.gn/android-x64/libv8_libplatform.cr.so', + '<!(pwd)/deps/v8/out.gn/android-x64/libv8.cr.so', + '<!(pwd)/deps/v8/out.gn/android-x64/libicui18n.cr.so', + '<!(pwd)/deps/v8/out.gn/android-x64/libicuuc.cr.so', + ] + }], [ 'node_use_bundled_v8=="true"', { 'dependencies': [ 'tools/v8_gypfiles/v8.gyp:v8_maybe_snapshot', diff --git a/taler-android-build/.gitignore b/taler-android-build/.gitignore new file mode 100644 index 0000000000..724bbe1c11 --- /dev/null +++ b/taler-android-build/.gitignore @@ -0,0 +1 @@ +compiled/ diff --git a/taler-android-build/README b/taler-android-build/README new file mode 100644 index 0000000000..fdac6b7d39 --- /dev/null +++ b/taler-android-build/README @@ -0,0 +1 @@ +names are based on the v8 CPU names diff --git a/taler-android-build/arm b/taler-android-build/arm new file mode 100755 index 0000000000..c1f7b31b91 --- /dev/null +++ b/taler-android-build/arm @@ -0,0 +1,61 @@ +#!/usr/bin/env bash + +set -eu -o pipefail + +scriptdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +cd $scriptdir + +NDK=$1 + +API_LEVEL=21 +BUILD_HOST_TAG='linux-x86_64' +TOOLCHAIN_DIR=$NDK/toolchains/llvm/prebuilt/$BUILD_HOST_TAG/ + +if [[ ! -d "$NDK" ]]; then + echo "Android NDK directory '$NDK' invalid" + exit 1 +fi + +if [[ ! -d "$TOOLCHAIN_DIR" ]]; then + echo "Toolchain directory '$TOOLCHAIN_DIR' invalid" + exit 1 +fi + +########## +# Build V8 +########## + +./build-android-v8 "$NDK" arm + +cd $scriptdir/.. +x=$scriptdir/../../compiled/armeabi-v7a/ +mkdir -p $x +cp deps/v8/out.gn/android-arm/*.so $x/ + + +############ +# Build Node +############ + +cd $scriptdir + +export DEST_CPU_ARCH=arm + +# The naming of these isn't very consistent, as some tools start with arm, +# others with arm7a. +export AR=$TOOLCHAIN_DIR/bin/arm-linux-androideabi-ar +export LD=$TOOLCHAIN_DIR/bin/arm-linux-androideabi-ld +export RANLIB=$TOOLCHAIN_DIR/bin/arm-linux-androideabi-ranlib +export STRIP=$TOOLCHAIN_DIR/bin/arm-linux-androideabi-strip + +export LINK=$TOOLCHAIN_DIR/bin/armv7a-linux-androideabi$API_LEVEL-clang++ +export CC=$TOOLCHAIN_DIR/bin/armv7a-linux-androideabi$API_LEVEL-clang +export CXX=$TOOLCHAIN_DIR/bin/armv7a-linux-androideabi$API_LEVEL-clang++ + +export CXXFLAGS='-D_LIBCPP_HAS_NO_OFF_T_FUNCTIONS' + +./build-android-node "$1" arm + +cd $scriptdir/.. +mkdir -p $x +cp out/Release/lib/libnode.so $x/ diff --git a/taler-android-build/arm64 b/taler-android-build/arm64 new file mode 100755 index 0000000000..93dceec999 --- /dev/null +++ b/taler-android-build/arm64 @@ -0,0 +1,60 @@ +#!/usr/bin/env bash + +set -eu -o pipefail + +scriptdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +cd $scriptdir + +NDK=$1 + +API_LEVEL=21 +BUILD_HOST_TAG='linux-x86_64' +TOOLCHAIN_DIR=$NDK/toolchains/llvm/prebuilt/$BUILD_HOST_TAG/ + +if [[ ! -d "$NDK" ]]; then + echo "Android NDK directory '$NDK' invalid" + exit 1 +fi + +if [[ ! -d "$TOOLCHAIN_DIR" ]]; then + echo "Toolchain directory '$TOOLCHAIN_DIR' invalid" + exit 1 +fi + +########## +# Build V8 +########## + +./build-android-v8 "$1" arm64 + +cd $scriptdir/.. +x=$scriptdir/../../compiled/arm64-v8a/ +mkdir -p $x +cp deps/v8/out.gn/android-arm64/*.so $x/ + + + +############ +# Build Node +############ + +# The naming of these isn't very consistent, as some tools start with arm, +# others with arm7a. +export AR=$TOOLCHAIN_DIR/bin/aarch64-linux-android-ar +export LD=$TOOLCHAIN_DIR/bin/aarch64-linux-android-ld +export RANLIB=$TOOLCHAIN_DIR/bin/aarch64-linux-android-ranlib +export STRIP=$TOOLCHAIN_DIR/bin/aarch64-linux-android-strip + +export CC=$TOOLCHAIN_DIR/bin/aarch64-linux-android$API_LEVEL-clang +export CXX=$TOOLCHAIN_DIR/bin/aarch64-linux-android$API_LEVEL-clang++ +export LINK=$TOOLCHAIN_DIR/bin/aarch64-linux-android$API_LEVEL-clang++ + +export DEST_CPU_ARCH=arm64 + +cd $scriptdir + +./build-android-node "$1" arm64 + +cd $scriptdir/.. +mkdir -p $x +cp out/Release/lib/libnode.so $x/ diff --git a/taler-android-build/build-android-node b/taler-android-build/build-android-node new file mode 100755 index 0000000000..5463ce9697 --- /dev/null +++ b/taler-android-build/build-android-node @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +# This script assumes that all the right environment variables +# (CC, LD, STRIP, ...) areset. + +set -eu -o pipefail + +scriptdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +cd $scriptdir/.. + +export GYP_DEFINES="OS=android clang=1" + +function myconf() { + ./configure \ + --ninja \ + --cross-compiling \ + --dest-cpu=$DEST_CPU_ARCH \ + --dest-os=android \ + --without-intl \ + --openssl-no-asm \ + --without-bundled-v8 \ + --shared +} + +PATH="$PATH:./deps/v8/_depot_tools" + +myconf && make + diff --git a/taler-android-build/build-android-v8 b/taler-android-build/build-android-v8 new file mode 100755 index 0000000000..b3f4d68887 --- /dev/null +++ b/taler-android-build/build-android-v8 @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +set -eu -o pipefail + +scriptdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +cd $scriptdir/.. + +NDK=$1 +DEST_CPU_ARCH=$2 + +if [[ ! -d "$NDK" ]]; then + echo "Android NDK directory '$NDK' invalid" + exit 1 +fi + +rm ./deps/v8/third_party/android_ndk +ln -fs $NDK ./deps/v8/third_party/android_ndk + +# We do not export anything about the tool chain, as v8 +# will pick their own toolchain for android from the ndk + +cd ./deps/v8 + +python3 ./tools/node/fetch_deps.py $PWD + +gn_args=$(cat <<EOF +is_official_build = true +is_debug = false +v8_enable_backtrace = false +v8_enable_slow_dchecks = true +v8_optimized_debug = false +v8_target_cpu = "$DEST_CPU_ARCH" +target_os="android" +target_cpu="$DEST_CPU_ARCH" +is_component_build=true +v8_android_log_stdout=true +v8_use_external_startup_data=false +v8_enable_debugging_features=false +v8_enable_embedded_builtins=true +is_clang=true +use_custom_libcxx=false +EOF +) + +echo gn_args $gn_args + +echo "executing gn gen" + +./buildtools/linux64/gn gen out.gn/android-$DEST_CPU_ARCH "--args=$gn_args" + +echo "executing ninja" + +./_depot_tools/ninja -C out.gn/android-$DEST_CPU_ARCH v8 d8 diff --git a/taler-android-build/x64 b/taler-android-build/x64 new file mode 100755 index 0000000000..7ede234961 --- /dev/null +++ b/taler-android-build/x64 @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +set -eu -o pipefail + +scriptdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +cd $scriptdir + +NDK=$1 + +API_LEVEL=21 +BUILD_HOST_TAG='linux-x86_64' +TOOLCHAIN_DIR=$NDK/toolchains/llvm/prebuilt/$BUILD_HOST_TAG/ + +if [[ ! -d "$NDK" ]]; then + echo "Android NDK directory '$NDK' invalid" + exit 1 +fi + +if [[ ! -d "$TOOLCHAIN_DIR" ]]; then + echo "Toolchain directory '$TOOLCHAIN_DIR' invalid" + exit 1 +fi + +########## +# Build V8 +########## + +./build-android-v8 "$NDK" x64 + +cd $scriptdir/.. +x=$scriptdir/../../compiled/x86_64/ +mkdir -p $x +cp deps/v8/out.gn/android-x64/*.so $x/ + + +############ +# Build Node +############ + +cd $scriptdir + +export DEST_CPU_ARCH=x64 + +# The naming of these isn't very consistent, as some tools start with arm, +# others with arm7a. +export AR=$TOOLCHAIN_DIR/bin/x86_64-linux-android-ar +export LD=$TOOLCHAIN_DIR/bin/x86_64-linux-android-ld +export RANLIB=$TOOLCHAIN_DIR/bin/x86_64-linux-android-ranlib +export STRIP=$TOOLCHAIN_DIR/bin/x86_64-linux-android-strip + +export LINK=$TOOLCHAIN_DIR/bin/x86_64-linux-android$API_LEVEL-clang++ +export CC=$TOOLCHAIN_DIR/bin/x86_64-linux-android$API_LEVEL-clang +export CXX=$TOOLCHAIN_DIR/bin/x86_64-linux-android$API_LEVEL-clang++ + +./build-android-node "$1" x64 + +cd $scriptdir/.. +mkdir -p $x +cp out/Release/lib/libnode.so $x/ diff --git a/taler-android-build/x86 b/taler-android-build/x86 new file mode 100755 index 0000000000..aa84a37ca0 --- /dev/null +++ b/taler-android-build/x86 @@ -0,0 +1,61 @@ +#!/usr/bin/env bash + +set -eu -o pipefail + +scriptdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" +cd $scriptdir + +NDK=$1 + +API_LEVEL=21 +BUILD_HOST_TAG='linux-x86_64' +TOOLCHAIN_DIR=$NDK/toolchains/llvm/prebuilt/$BUILD_HOST_TAG/ + +if [[ ! -d "$NDK" ]]; then + echo "Android NDK directory '$NDK' invalid" + exit 1 +fi + +if [[ ! -d "$TOOLCHAIN_DIR" ]]; then + echo "Toolchain directory '$TOOLCHAIN_DIR' invalid" + exit 1 +fi + +########## +# Build V8 +########## + +./build-android-v8 "$NDK" x86 + +cd $scriptdir/.. +x=$scriptdir/../../compiled/x86/ +mkdir -p $x +cp deps/v8/out.gn/android-x86/*.so $x/ + + +############ +# Build Node +############ + +cd $scriptdir + +export DEST_CPU_ARCH=x86 + +# The naming of these isn't very consistent, as some tools start with arm, +# others with arm7a. +export AR=$TOOLCHAIN_DIR/bin/i686-linux-android-ar +export LD=$TOOLCHAIN_DIR/bin/i686-linux-android-ld +export RANLIB=$TOOLCHAIN_DIR/bin/i686-linux-android-ranlib +export STRIP=$TOOLCHAIN_DIR/bin/i686-linux-android-strip + +export LINK=$TOOLCHAIN_DIR/bin/i686-linux-android$API_LEVEL-clang++ +export CC=$TOOLCHAIN_DIR/bin/i686-linux-android$API_LEVEL-clang +export CXX=$TOOLCHAIN_DIR/bin/i686-linux-android$API_LEVEL-clang++ + +export CXXFLAGS='-D_LIBCPP_HAS_NO_OFF_T_FUNCTIONS' + +./build-android-node "$1" x86 + +cd $scriptdir/.. +mkdir -p $x +cp out/Release/lib/libnode.so $x/ |