diff --git a/.archive/build-nwjs-v0.14.x.md b/.archive/build-nwjs-v0.14.x.md deleted file mode 100644 index 54cee1f..0000000 --- a/.archive/build-nwjs-v0.14.x.md +++ /dev/null @@ -1,173 +0,0 @@ -# Building NW.js for ARMv7 - -## Environment setup - -First thing to do is to download [Ubuntu 14.04.5 LTS (Trusty Tahr)] and install it onto your favorite virtual machine. For this tutorial [VirtualBox] was chosen. - -The host computer needs to have at least 40 GB empty disk space and 8 GB RAM. The guest machine needs 4 GB RAM and 4 GB swap area. - -After the installation is completed and Ubuntu is up, in VirtualBox menu, click on Devices/Insert Guest Additions CD image. Next click on the CD icon in the Ubuntu menu bar, and run the auto-installer. When the installer is done, reboot the guest machine. - -Next is recommended to update and upgrade the packages on the guest machine by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Next install Git if not installed: -```bash -sudo apt-get install git -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, like `$HOME/nwjs`, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -cd $HOME/nwjs -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw14 -``` - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p src/content/nw -mkdir -p src/third_party/node -mkdir -p src/v8 -git clone https://github.com/nwjs/nw.js src/content/nw -git clone https://github.com/nwjs/node src/third_party/node -git clone https://github.com/nwjs/v8 src/v8 -cd src/content/nw -git checkout nw14 -cd $HOME/nwjs -cd src/third_party/node -git checkout nw14 -cd $HOME/nwjs -cd src/v8 -git checkout nw14 -cd $HOME/nwjs -``` - -**Step 3.** Run following command in your terminal: -```bash -gclient sync --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from GitHub and Google's Git repos. Make sure you have a good network provider and be patient. -When finished, you will see a `src` folder in the same folder as `.gclient`. - -**Step 4.** The `install-build-deps` script should be used to install all the compiler and library dependencies directly from Ubuntu repositories: -```bash -cd src -./build/install-build-deps.sh --arm -``` - -Install sysroot for arm, might be automated by gclient runhooks: -```bash -./build/linux/sysroot_scripts/install-sysroot.py --arch=arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -wget https://raw.githubusercontent.com/LeonardLaszlo/nw.js-armv7-binaries/master/patches/0001.patch -P $HOME/nwjs/ -wget https://raw.githubusercontent.com/LeonardLaszlo/nw.js-armv7-binaries/master/patches/0002.patch -P $HOME/nwjs/ -wget https://raw.githubusercontent.com/LeonardLaszlo/nw.js-armv7-binaries/master/patches/0003.patch -P $HOME/nwjs/ -``` - -Check if patches apply cleanly and apply them: -```bash -# check -git apply --check $HOME/nwjs/0001.patch -# apply -git am $HOME/nwjs/0001.patch -cd content/nw/ -# check -git apply --check $HOME/nwjs/0002.patch -git apply --check $HOME/nwjs/0003.patch -# apply -git am $HOME/nwjs/0002.patch -git am $HOME/nwjs/0003.patch -cd $HOME/nwjs -``` - -**Step 6.** Setup environment variables and run hooks: -```bash -export GYP_CROSSCOMPILE=1 -export GYP_DEFINES="target_arch=arm arm_float_abi=hard nwjs_sdk=1 disable_nacl=0" -export GYP_GENERATOR_FLAGS=output_dir=out_arm -gclient runhooks -``` - -**Step 7.** To enable proprietary codecs apply the following patch and run again the hooks: -```bash -wget https://raw.githubusercontent.com/LeonardLaszlo/nw.js-armv7-binaries/master/patches/0004.patch -P $HOME/nwjs/ -cd src/third_party/ffmpeg/ -git apply --check $HOME/nwjs/0004.patch -git apply $HOME/nwjs/0004.patch -cd $HOME/nwjs -gclient runhooks -cd $HOME/nwjs/src -``` - -## Build - -Start the compilation: -```bash -ninja -C out_arm/Release dist -``` - -This process can take few hours depending on your system configuration. Be patient! -When the compilation is done you should find your artifacts under `src/out_arm/Release/dist/`. - -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.15.x.md b/.archive/build-nwjs-v0.15.x.md deleted file mode 100644 index f27dc6a..0000000 --- a/.archive/build-nwjs-v0.15.x.md +++ /dev/null @@ -1,179 +0,0 @@ -# Building NW.js for ARMv7 - -## Environment setup - -First thing to do is to download [Ubuntu 14.04.5 LTS (Trusty Tahr)] and install it onto your favorite virtual machine. For this tutorial [VirtualBox] was chosen. - -The host computer needs to have at least 50 GB empty disk space and 8 GB RAM. The guest machine needs 6 GB RAM, 4 GB swap area and 46 GB disk space. - -After the installation is completed and Ubuntu is up, in VirtualBox menu, click on Devices/Insert Guest Additions CD image. Next click on the CD icon in the Ubuntu menu bar, and run the auto-installer. When the installer is done, reboot the guest machine. - -Next is recommended to update and upgrade the packages on the guest machine by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Next install Git if not installed: -```bash -sudo apt-get install git -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw15 -``` - -You will probably want to put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node -git clone https://github.com/nwjs/v8 $NWJS/src/v8 -cd $NWJS/src/content/nw -git checkout nw15 -cd $NWJS -cd $NWJS/src/third_party/node -git checkout nw15 -cd $NWJS -cd $NWJS/src/v8 -git checkout nw15 -cd $NWJS -``` - -**Step 3.** Run following command in your terminal: -```bash -gclient sync --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from GitHub and Google's Git repos. Make sure you have a good network provider and be patient. - -When finished, you will see a `src` folder in the same folder as `.gclient`. - -**Step 4.** The `install-build-deps` script should be used to install all the compiler and library dependencies directly from Ubuntu repositories: -```bash -cd $NWJS/src -./build/install-build-deps.sh --arm -``` - -Install sysroot for arm, might be automated by gclient runhooks: -```bash -./build/linux/sysroot_scripts/install-sysroot.py --arch=arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -wget https://raw.githubusercontent.com/LeonardLaszlo/nw.js-armv7-binaries/master/patches/0001.patch -P $NWJS/ -wget https://raw.githubusercontent.com/LeonardLaszlo/nw.js-armv7-binaries/master/patches/0006.patch -P $NWJS/ -wget https://raw.githubusercontent.com/LeonardLaszlo/nw.js-armv7-binaries/master/patches/0003.patch -P $NWJS/ -``` - -Check if patches apply cleanly and apply them: -```bash -# check -git apply --check $NWJS/0001.patch -# apply -git am $NWJS/0001.patch -cd $NWJS/src/content/nw/ -# check -git apply --check $NWJS/0006.patch -git apply --check $NWJS/0003.patch -# apply -git am $NWJS/0006.patch -git am $NWJS/0003.patch -cd $NWJS -``` - -**Step 6.** Setup environment variables and run hooks: -```bash -export GYP_CROSSCOMPILE=1 -export GYP_DEFINES="target_arch=arm arm_float_abi=hard nwjs_sdk=1 disable_nacl=0" -export GYP_GENERATOR_FLAGS=output_dir=out_arm -gclient runhooks -``` - -**Step 7.** To enable proprietary codecs apply the following patch and run again the hooks: -```bash -wget https://raw.githubusercontent.com/LeonardLaszlo/nw.js-armv7-binaries/master/patches/0005.patch -P $NWJS/ -cd $NWJS/src/third_party/ffmpeg/ -git apply --check $NWJS/0005.patch -git apply $NWJS/0005.patch -cd $NWJS -gclient runhooks -cd $NWJS/src -``` - -## Build - -Start the compilation: -```bash -ninja -C out_arm/Release dist -``` - -This process can take few hours depending on your system configuration. Be patient! - -When the compilation is done you should find your artifacts under `$NWJS/src/out_arm/Release/dist/`. - -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.16.x.md b/.archive/build-nwjs-v0.16.x.md deleted file mode 100644 index a222c24..0000000 --- a/.archive/build-nwjs-v0.16.x.md +++ /dev/null @@ -1,189 +0,0 @@ -# Building NW.js for Linux ARMv7 - -## Environment setup - -First thing to do is to download [Xubuntu 16.04.1 LTS (Xenial Xerus)] and install it onto your favorite virtual machine. For this tutorial [VirtualBox] was chosen. - -The host computer needs to have at least 50 GB empty disk space and 8 GB RAM. The guest machine needs 6 GB RAM, 6 GB swap area and 44 GB disk space. It is recommended to use a high-speed storage device such an SSD or high-speed HDD. A fast internet connection is also an advantage. - -After the operating system installation is completed, in VirtualBox menu, click on Devices/Insert Guest Additions CD image. Next click on the CD icon in the Ubuntu menu bar, and run the auto-installer. When the installer is done, reboot the guest machine. - -Next is recommended to update and upgrade the packages on the guest machine by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Next install Git and some monitoring tools if not installed: -```bash -sudo apt-get install git htop sysstat -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw16 -``` - -You will probably want to put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node -git clone https://github.com/nwjs/v8 $NWJS/src/v8 -cd $NWJS/src/content/nw -git checkout nw16 -cd $NWJS/src/third_party/node -git checkout nw16 -cd $NWJS/src/v8 -git checkout nw16 -cd $NWJS -``` - -**Step 3.** Run following command in your terminal: -```bash -gclient sync --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from GitHub and Google's Git repositories. Make sure you have a good network provider and be patient. - -When finished, you will see a `src` folder in the same folder as `.gclient`. - -**Step 4.** The `install-build-deps` script should be used to install all the compiler and library dependencies directly from Ubuntu repositories: -```bash -cd $NWJS/src -./build/install-build-deps.sh --arm -``` - -Install `sysroot` for ARM, might be automated by `gclient runhooks`: -```bash -./build/linux/sysroot_scripts/install-sysroot.py --arch=arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -wget https://raw.githubusercontent.com/LeonardLaszlo/nw.js-armv7-binaries/master/patches/0007.nwjs.v0.16.x.[Build]-linux-arm-cross-compile-fix-dump_syms-should-be-host-only.patch -P $NWJS/ -wget https://raw.githubusercontent.com/LeonardLaszlo/nw.js-armv7-binaries/master/patches/0008.nwjs.v0.16.x.[PATCH]-[Build][Linux]-add-support-for-linux-arm-binary-strip.patch -P $NWJS/ -wget https://raw.githubusercontent.com/LeonardLaszlo/nw.js-armv7-binaries/master/patches/0009.nwjs.v0.16.x.[Build]-add-patches-for-Linux-arm-build.patch -P $NWJS/ -``` - -Check if patches apply cleanly and apply them: -```bash -# check -git apply --check $NWJS/0007.nwjs.v0.16.x.[Build]-linux-arm-cross-compile-fix-dump_syms-should-be-host-only.patch -# apply -git am $NWJS/0007.nwjs.v0.16.x.[Build]-linux-arm-cross-compile-fix-dump_syms-should-be-host-only.patch -cd $NWJS/src/content/nw/ -# check -git apply --check $NWJS/0008.nwjs.v0.16.x.[PATCH]-[Build][Linux]-add-support-for-linux-arm-binary-strip.patch -git apply --check $NWJS/0009.nwjs.v0.16.x.[Build]-add-patches-for-Linux-arm-build.patch -# apply -git am $NWJS/0008.nwjs.v0.16.x.[PATCH]-[Build][Linux]-add-support-for-linux-arm-binary-strip.patch -git am $NWJS/0009.nwjs.v0.16.x.[Build]-add-patches-for-Linux-arm-build.patch -cd $NWJS -``` - -Check if added patches apply cleanly (optional step, but it helps debugging): -```bash -cd $NWJS/src/third_party/node/deps/openssl/asm/arm-void-gas/modes/ -git apply --check $NWJS/src/content/nw/patch/patches/node.patch -cd $NWJS/src/third_party/node/deps/openssl/ -git apply --check $NWJS/src/content/nw/patch/patches/node_openssl.patch -cd $NWJS/src/v8/src -git apply --check $NWJS/src/content/nw/patch/patches/v8.patch -cd $NWJS -``` - -**Step 6.** Setup environment variables and run hooks: -```bash -export GYP_CROSSCOMPILE=1 -export GYP_DEFINES="target_arch=arm arm_float_abi=hard nwjs_sdk=1 disable_nacl=0" -export GYP_GENERATOR_FLAGS=output_dir=out_arm -gclient runhooks -``` - -**Step 7.** To enable proprietary codecs apply the patch bellow and run again the hooks: -```bash -wget https://raw.githubusercontent.com/LeonardLaszlo/nw.js-armv7-binaries/master/patches/0010.nwjs.v0.16.x.Chrome.branding.patch -P $NWJS/ -cd $NWJS/src/third_party/ffmpeg/ -git apply --check $NWJS/0010.nwjs.v0.16.x.Chrome.branding.patch -git apply $NWJS/0010.nwjs.v0.16.x.Chrome.branding.patch -cd $NWJS -gclient runhooks -``` - -## Build - -Start the compilation: -```bash -cd $NWJS/src -ninja -C out_arm/Release dist -``` - -This process can take few hours depending on your system configuration. Be patient! - -When the compilation is done you should find your artifacts under `$NWJS/src/out_arm/Release/dist/`. - -[Xubuntu 16.04.1 LTS (Xenial Xerus)]: http://cdimage.ubuntu.com/xubuntu/releases/xenial/release/xubuntu-16.04.1-desktop-amd64.iso -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.17.x.md b/.archive/build-nwjs-v0.17.x.md deleted file mode 100644 index 4907752..0000000 --- a/.archive/build-nwjs-v0.17.x.md +++ /dev/null @@ -1,188 +0,0 @@ -# Building NW.js for Linux ARMv7 - -## Environment setup - -First thing to do is to download [Xubuntu 16.04.1 LTS (Xenial Xerus)] and install it onto your favorite virtual machine. For this tutorial [VirtualBox] was chosen. - -The host computer needs to have at least 60 GB empty disk space and 16 GB RAM. The guest machine needs 10 GB RAM, 4 GB swap area and 50 GB disk space. It is recommended to use a high-speed storage device such an SSD or high-speed HDD. A fast internet connection is also an advantage. - -After the operating system installation is completed, in VirtualBox menu, click on Devices/Insert Guest Additions CD image. Next click on the CD icon in the Ubuntu menu bar, and run the auto-installer. When the installer is done, reboot the guest machine. - -Next is recommended to update and upgrade the packages on the guest machine by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Next install Git and some monitoring tools if not installed: -```bash -sudo apt-get install git htop sysstat -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw17 -``` - -You will probably want to put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node -git clone https://github.com/nwjs/v8 $NWJS/src/v8 -cd $NWJS/src/content/nw -git checkout nw17 -cd $NWJS/src/third_party/node -git checkout nw17 -cd $NWJS/src/v8 -git checkout nw17 -``` - -**Step 3.** Export cross-compilation environment variables and synchronize the projects. To enable proprietary codecs set `ffmpeg_branding` to `Chrome` when you configure GN! - -```bash -cd $NWJS/src -export GYP_CROSSCOMPILE="1" -export GYP_DEFINES="target_arch=arm arm_float_abi=hard nwjs_sdk=1 disable_nacl=0" -export GN_ARGS="is_debug=false is_component_ffmpeg=true enable_nacl=true target_cpu=\"arm\" ffmpeg_branding=\"Chrome\"" - -export GYP_CHROMIUM_NO_ACTION=1 -gclient sync --reset --with_branch_heads -``` - -This usually downloads 20G+ from GitHub and Google's Git repositories. Make sure you have a good network provider and be patient. - -When finished, you will see a `src` folder in the same folder as `.gclient`. - -**Step 4.** The `install-build-deps` script should be used to install all the compiler and library dependencies directly from Ubuntu repositories: -```bash -./build/install-build-deps.sh --arm -``` - -Install `sysroot` for ARM, might be automated by `gclient runhooks`: -```bash -./build/linux/sysroot_scripts/install-sysroot.py --arch=arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -# [Build] linux arm cross compile fix, dump_syms should be host only -curl -s https://github.com/jtg-gg/chromium.src/commit/f263069bd779e4ed3214b6daee207bdd68d25982.patch | git am - -# [Build][gn] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/chromium.src/commit/68d9aafe171d6dd57efeb8d50f552e925dffebfa.patch | git am - -# Update DEPS -curl -s https://github.com/jtg-gg/chromium.src/commit/69a2a6c6fbb67f17c91718f55d2fd44a49c7da6e.patch | git am - -# [Build] add cherry-pick tool -curl -s https://github.com/jtg-gg/chromium.src/commit/12e8e3bd57fe6c4b07de21fd2bf1a9500edcdbd2.patch | git am - -cd $NWJS/src/content/nw/ - -# [Build] add patches for Linux arm build -curl -s https://github.com/jtg-gg/node-webkit/commit/91fc077bbdfeb01804d61b7e45a2a2b3898f4ceb.patch | git am - -# [Build][Linux] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/node-webkit/commit/bc76b8c598825afa850bb16a75338a2d58b12ebd.patch | git am -``` - - -Check if added patches apply cleanly (optional step, but it helps debugging): -```bash -cd $NWJS/src/third_party/node/deps/openssl/asm/arm-void-gas/modes/ -git apply --check $NWJS/src/content/nw/patch/patches/node.patch -cd $NWJS/src/third_party/node/deps/openssl/ -git apply --check $NWJS/src/content/nw/patch/patches/node_openssl.patch -cd $NWJS/src/v8/src -git apply --check $NWJS/src/content/nw/patch/patches/v8.patch -cd $NWJS/src -``` - -**Step 6.** Setup environment variables, synchronize projects and generate ninja build files with GN for Chromium: -```bash -gclient runhooks -gn gen out_gn_arm/nw --args="$GN_ARGS" -export GYP_CHROMIUM_NO_ACTION=0 -python build/gyp_chromium -Goutput_dir=out_gn_arm third_party/node/node.gyp -``` - -## Build - -Build NW.js and Node: -```bash -ninja -C out_gn_arm/nw nwjs -ninja -C out_gn_arm/nw v8_libplatform -ninja -C out_gn_arm/Release node -ninja -C out_gn_arm/nw copy_node -ninja -C out_gn_arm/nw dist -``` - -This process can take few hours depending on your system configuration. Be patient! - -When the compilation is done you should find your artifacts under `$NWJS/src/out_gn_arm/nw/dist/`. - -[Xubuntu 16.04.1 LTS (Xenial Xerus)]: http://cdimage.ubuntu.com/xubuntu/releases/xenial/release/xubuntu-16.04.1-desktop-amd64.iso -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.18.x.md b/.archive/build-nwjs-v0.18.x.md deleted file mode 100644 index 5e597ad..0000000 --- a/.archive/build-nwjs-v0.18.x.md +++ /dev/null @@ -1,186 +0,0 @@ -# Building NW.js for Linux ARMv7 - -## Environment setup - -Download and install [Xubuntu 16.04.1 LTS (Xenial Xerus)] on [VirtualBox]. - -Host requirements: - --16 GB RAM --60 GB empty disk space (SSD or high-speed HDD) --fast internet connection - -Guest requirements: - --10 GB RAM --10 GB swap --50 GB disk space. - - -Update and upgrade the packages on the guest os by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Install Git and monitoring tools: -```bash -sudo apt-get install git htop sysstat -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw18 -``` - -Put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node -git clone https://github.com/nwjs/v8 $NWJS/src/v8 -cd $NWJS/src/content/nw -git checkout tags/nw-v0.18.8 -b v0.18.8 -cd $NWJS/src/third_party/node -git checkout tags/nw-v0.18.8 -b v0.18.8 -cd $NWJS/src/v8 -git checkout tags/nw-v0.18.8 -b v0.18.8 -``` - -**Step 3.** Export cross-compilation environment variables and synchronize the projects. To enable proprietary codecs set `ffmpeg_branding` to `Chrome` when you configure GN! - -```bash -cd $NWJS/src -export GYP_CROSSCOMPILE="1" -export GYP_DEFINES="target_arch=arm arm_float_abi=hard nwjs_sdk=1 disable_nacl=0" -export GN_ARGS="is_debug=false is_component_ffmpeg=true enable_nacl=true target_cpu=\"arm\" ffmpeg_branding=\"Chrome\"" - -export GYP_CHROMIUM_NO_ACTION=1 -gclient sync --reset --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from remote repositories. - -**Step 4.** Install all the compiler and library dependencies: -```bash -./build/install-build-deps.sh --arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -# [Build] linux arm cross compile fix, dump_syms should be host only -curl -s https://github.com/jtg-gg/chromium.src/commit/14475969012bf5dd6671e7c9935798a1b558603b.patch | git am - -# [Build][gn] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/chromium.src/commit/564eed91934d2fa48da930f847334e3a21f64e42.patch | git am - -cd $NWJS/src/content/nw/ - -# [Build] add patches for Linux arm build -curl -s https://github.com/jtg-gg/node-webkit/commit/28ca6960cc6cc5b1f3eb31c3a9812d5452e26002.patch | git am - -# [Build][Linux] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/node-webkit/commit/e12327453d1b97e6918e1e9a12e7f208c2a8b38d.patch | git am - -# [Build][NaCl] fix link error -curl -s https://github.com/jtg-gg/node-webkit/commit/a38696099a10b4fc2dee1e21783ae4977eb47d92.patch | git am -``` - -Check if added patches apply cleanly (optional step, but it helps debugging): -```bash -cd $NWJS/src/third_party/node/deps/openssl/asm/arm-void-gas/modes/ -git apply --check $NWJS/src/content/nw/patch/patches/node.patch -cd $NWJS/src/third_party/node/deps/openssl/ -git apply --check $NWJS/src/content/nw/patch/patches/node_openssl.patch -cd $NWJS/src/v8/src -git apply --check $NWJS/src/content/nw/patch/patches/v8.patch -cd $NWJS/src -``` - -**Step 6.** Setup environment variables and generate ninja build files with GN for Chromium: -```bash -gclient runhooks -gn gen out_gn_arm/nw --args="$GN_ARGS" -export GYP_CHROMIUM_NO_ACTION=0 -python build/gyp_chromium -Goutput_dir=out_gn_arm third_party/node/node.gyp -``` - -## Build - -Build NW.js and Node: -```bash -ninja -C out_gn_arm/nw nwjs -ninja -C out_gn_arm/nw v8_libplatform -ninja -C out_gn_arm/Release node -ninja -C out_gn_arm/nw copy_node -ninja -C out_gn_arm/nw dist -``` - -This process can take few hours depending on your system configuration. - -When the compilation is done you should find your artifacts under `$NWJS/src/out_gn_arm/nw/dist/`. - -[Xubuntu 16.04.1 LTS (Xenial Xerus)]: http://cdimage.ubuntu.com/xubuntu/releases/xenial/release/xubuntu-16.04.1-desktop-amd64.iso -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.19.x.md b/.archive/build-nwjs-v0.19.x.md deleted file mode 100644 index 92a8a65..0000000 --- a/.archive/build-nwjs-v0.19.x.md +++ /dev/null @@ -1,186 +0,0 @@ -# Building NW.js for Linux ARMv7 - -## Environment setup - -Download and install [Xubuntu 16.04.1 LTS (Xenial Xerus)] on [VirtualBox]. - -Host requirements: - --16 GB RAM --60 GB empty disk space (SSD or high-speed HDD) --fast internet connection - -Guest requirements: - --10 GB RAM --10 GB swap --50 GB disk space. - - -Update and upgrade the packages on the guest os by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Install Git and monitoring tools: -```bash -sudo apt-get install git htop sysstat -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw19 -``` - -Put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node -git clone https://github.com/nwjs/v8 $NWJS/src/v8 -cd $NWJS/src/content/nw -git checkout nw19 -cd $NWJS/src/third_party/node -git checkout nw19 -cd $NWJS/src/v8 -git checkout nw19 -``` - -**Step 3.** Export cross-compilation environment variables and synchronize the projects. To enable proprietary codecs set `ffmpeg_branding` to `Chrome` when you configure GN! - -```bash -cd $NWJS/src -export GYP_CROSSCOMPILE="1" -export GYP_DEFINES="target_arch=arm arm_float_abi=hard nwjs_sdk=1 disable_nacl=0" -export GN_ARGS="is_debug=false is_component_ffmpeg=true enable_nacl=true target_cpu=\"arm\" ffmpeg_branding=\"Chrome\"" - -export GYP_CHROMIUM_NO_ACTION=1 -gclient sync --reset --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from remote repositories. - -**Step 4.** Install all the compiler and library dependencies: -```bash -./build/install-build-deps.sh --arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -# [Build] addNode.jsbuild tools for linux arm -curl -s https://github.com/jtg-gg/chromium.src/commit/5ecee7af1d0beee617f28306101329a3b300face.patch | git am - -# [Build][gn] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/chromium.src/commit/c270ee74e80bb993df00f0d929a00fce137a2cb4.patch | git am - -# [Linux][arm] disable the runtime check -curl -s https://github.com/jtg-gg/chromium.src/commit/25bc987de045616ca04d2c4d2c0d502b06907dd4.patch | git am - -cd $NWJS/src/content/nw/ - -# [Build] add patches for Linux arm build -curl -s https://github.com/jtg-gg/node-webkit/commit/a06a37ce92545aecab5f10dd6a743c08e916d1ac.patch | git am - -# [Build][Linux] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/node-webkit/commit/7dbcd433cf5ecca238c9fc1e3d6f095716328b7c.patch | git am -``` - -Check if added patches apply cleanly (optional step, but it helps debugging): -```bash -cd $NWJS/src/third_party/node/deps/openssl/asm/arm-void-gas/modes/ -git apply --check $NWJS/src/content/nw/patch/patches/node.patch -cd $NWJS/src/third_party/node/deps/openssl/ -git apply --check $NWJS/src/content/nw/patch/patches/node_openssl.patch -cd $NWJS/src/v8/src -git apply --check $NWJS/src/content/nw/patch/patches/v8.patch -cd $NWJS/src -``` - -**Step 6.** Setup environment variables and generate ninja build files with GN for Chromium: -```bash -gclient runhooks -gn gen out_gn_arm/nw --args="$GN_ARGS" -export GYP_CHROMIUM_NO_ACTION=0 -python build/gyp_chromium -Goutput_dir=out_gn_arm -I third_party/node/build/common.gypi third_party/node/node.gyp -``` - -## Build - -Build NW.js and Node: -```bash -ninja -C out_gn_arm/nw nwjs -ninja -C out_gn_arm/nw v8_libplatform -ninja -C out_gn_arm/Release node -ninja -C out_gn_arm/nw copy_node -ninja -C out_gn_arm/nw dist -``` - -This process can take few hours depending on your system configuration. - -When the compilation is done you should find your artifacts under `$NWJS/src/out_gn_arm/nw/dist/`. - -[Xubuntu 16.04.1 LTS (Xenial Xerus)]: http://cdimage.ubuntu.com/xubuntu/releases/xenial/release/xubuntu-16.04.1-desktop-amd64.iso -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.20.x.md b/.archive/build-nwjs-v0.20.x.md deleted file mode 100644 index 1f7afd3..0000000 --- a/.archive/build-nwjs-v0.20.x.md +++ /dev/null @@ -1,186 +0,0 @@ -# Building NW.js for Linux ARMv7 - -## Environment setup - -Download and install [Xubuntu 16.04.1 LTS (Xenial Xerus)] on [VirtualBox]. - -Host requirements: - --16 GB RAM --60 GB empty disk space (SSD or high-speed HDD) --fast internet connection - -Guest requirements: - --10 GB RAM --10 GB swap --50 GB disk space. - - -Update and upgrade the packages on the guest os by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Install Git and monitoring tools: -```bash -sudo apt-get install git htop sysstat -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw20 -``` - -Put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node -git clone https://github.com/nwjs/v8 $NWJS/src/v8 -cd $NWJS/src/content/nw -git checkout nw20 -cd $NWJS/src/third_party/node -git checkout nw20 -cd $NWJS/src/v8 -git checkout nw20 -``` - -**Step 3.** Export cross-compilation environment variables and synchronize the projects. To enable proprietary codecs set `ffmpeg_branding` to `Chrome` when you configure GN! - -```bash -cd $NWJS/src -export GYP_CROSSCOMPILE="1" -export GYP_DEFINES="target_arch=arm arm_float_abi=hard nwjs_sdk=1 disable_nacl=0" -export GN_ARGS="is_debug=false is_component_ffmpeg=true enable_nacl=true target_cpu=\"arm\" ffmpeg_branding=\"Chrome\"" - -export GYP_CHROMIUM_NO_ACTION=1 -gclient sync --reset --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from remote repositories. - -**Step 4.** Install all the compiler and library dependencies: -```bash -./build/install-build-deps.sh --arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -# [Build] addNode.jsbuild tools for linux arm -curl -s https://github.com/jtg-gg/chromium.src/commit/1613569d2eaf02e5f12b6294cdc5d78074df2c6f.patch | git am - -# [Build][gn] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/chromium.src/commit/a5f71d291f54cf3d584dae9209a71367ba9e30c9.patch | git am - -# [Linux][arm] disable the runtime check -curl -s https://github.com/jtg-gg/chromium.src/commit/77e0ff6487f391baef925a1b62c01c6bb23953fa.patch | git am - -cd $NWJS/src/content/nw/ - -# [Build] add patches for Linux arm build -curl -s https://github.com/jtg-gg/node-webkit/commit/b3a288de9ff0b54239a0a575653a59aef508ab22.patch | git am - -# [Build][Linux] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/node-webkit/commit/5c55e043380e13b30f452785f6abe19c8b424467.patch | git am -``` - -Check if added patches apply cleanly (optional step, but it helps debugging): -```bash -cd $NWJS/src/third_party/node/deps/openssl/asm/arm-void-gas/modes/ -git apply --check $NWJS/src/content/nw/patch/patches/node.patch -cd $NWJS/src/third_party/node/deps/openssl/ -git apply --check $NWJS/src/content/nw/patch/patches/node_openssl.patch -cd $NWJS/src/v8/src -git apply --check $NWJS/src/content/nw/patch/patches/v8.patch -cd $NWJS/src -``` - -**Step 6.** Setup environment variables and generate ninja build files with GN for Chromium: -```bash -gclient runhooks -gn gen out_gn_arm/nw --args="$GN_ARGS" -export GYP_CHROMIUM_NO_ACTION=0 -python build/gyp_chromium -Goutput_dir=out_gn_arm -I third_party/node/build/common.gypi third_party/node/node.gyp -``` - -## Build - -Build NW.js and Node: -```bash -ninja -C out_gn_arm/nw nwjs -ninja -C out_gn_arm/nw v8_libplatform -ninja -C out_gn_arm/Release node -ninja -C out_gn_arm/nw copy_node -ninja -C out_gn_arm/nw dist -``` - -This process can take few hours depending on your system configuration. - -When the compilation is done you should find your artifacts under `$NWJS/src/out_gn_arm/nw/dist/`. - -[Xubuntu 16.04.1 LTS (Xenial Xerus)]: http://cdimage.ubuntu.com/xubuntu/releases/xenial/release/xubuntu-16.04.1-desktop-amd64.iso -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.21.x.md b/.archive/build-nwjs-v0.21.x.md deleted file mode 100644 index 423e594..0000000 --- a/.archive/build-nwjs-v0.21.x.md +++ /dev/null @@ -1,187 +0,0 @@ -# Building NW.js for Linux ARMv7 - -## Environment setup - -Download and install [Xubuntu 16.04.1 LTS (Xenial Xerus)] on [VirtualBox]. - -Host requirements: - --16 GB RAM --60 GB empty disk space (SSD or high-speed HDD) --fast internet connection - -Guest requirements: - --10 GB RAM --10 GB swap --50 GB disk space. - - -Update and upgrade the packages on the guest os by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Install Git and monitoring tools: -```bash -sudo apt-get install git htop sysstat -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw21 -``` - -Put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node-nw -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node-nw -git clone https://github.com/nwjs/v8 $NWJS/src/v8 -cd $NWJS/src/content/nw -git checkout nw21 -cd $NWJS/src/third_party/node-nw -git checkout nw21 -cd $NWJS/src/v8 -git checkout nw21 -``` - -**Step 3.** Export cross-compilation environment variables and synchronize the projects. To enable proprietary codecs set `ffmpeg_branding` to `Chrome` when you configure GN! - -```bash -cd $NWJS/src -export GYP_CROSSCOMPILE="1" -export GYP_DEFINES="target_arch=arm arm_float_abi=hard nwjs_sdk=1 disable_nacl=0" -export GN_ARGS="is_debug=false is_component_ffmpeg=true enable_nacl=true target_cpu=\"arm\" ffmpeg_branding=\"Chrome\"" - -export GYP_CHROMIUM_NO_ACTION=1 -gclient sync --reset --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from remote repositories. - -**Step 4.** Install all the compiler and library dependencies: -```bash -./build/install-build-deps.sh --arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -# [Build] addNode.jsbuild tools for linux arm -curl -s https://github.com/jtg-gg/chromium.src/commit/287113977240f18a538afee1d2372e57732a127a.patch | git am - -# [Build][gn] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/chromium.src/commit/c85db5aadef42e2c11ab317a635c47b8e6259995.patch | git am - -# [Linux][arm] disable the runtime check -curl -s https://github.com/jtg-gg/chromium.src/commit/7c333c1399ea73397226dcc0afb8765d48d588fd.patch | git am - -cd $NWJS/src/content/nw/ - -# [Build] add patches for Linux arm build -curl -s https://github.com/jtg-gg/node-webkit/commit/2b66eba0483d44edd0a352b4b3b711d0d48a1ca7.patch | git am - -# [Build][Linux] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/node-webkit/commit/38a32a85a456a197f565014e6fa543f4992f6593.patch | git am -``` - -Check if added patches apply cleanly (optional step, but it helps debugging): -```bash -cd $NWJS/src/third_party/node-nw/deps/openssl/asm/arm-void-gas/modes/ -git apply --check $NWJS/src/content/nw/patch/patches/node.patch -cd $NWJS/src/third_party/node-nw/deps/openssl/ -git apply --check $NWJS/src/content/nw/patch/patches/node_openssl.patch -cd $NWJS/src/v8/src -git apply --check $NWJS/src/content/nw/patch/patches/v8.patch -cd $NWJS/src -``` - -**Step 6.** Setup environment variables and generate ninja build files with GN for Chromium: -```bash -gclient runhooks -gn gen out_gn_arm/nw --args="$GN_ARGS" -export GYP_CHROMIUM_NO_ACTION=0 -python build/gyp_chromium -Goutput_dir=out_gn_arm -I third_party/node-nw/build/common.gypi third_party/node-nw/node.gyp -``` - -## Build - -Build NW.js and Node: -```bash -ninja -C out_gn_arm/nw nwjs -ninja -C out_gn_arm/nw v8_libplatform -ninja -C out_gn_arm/Release node -ninja -C out_gn_arm/nw copy_node -ninja -C out_gn_arm/nw dump -ninja -C out_gn_arm/nw dist -``` - -This process can take few hours depending on your system configuration. - -When the compilation is done you should find your artifacts under `$NWJS/src/out_gn_arm/nw/dist/`. - -[Xubuntu 16.04.1 LTS (Xenial Xerus)]: http://cdimage.ubuntu.com/xubuntu/releases/xenial/release/xubuntu-16.04.1-desktop-amd64.iso -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.22.x.md b/.archive/build-nwjs-v0.22.x.md deleted file mode 100644 index 5db8429..0000000 --- a/.archive/build-nwjs-v0.22.x.md +++ /dev/null @@ -1,187 +0,0 @@ -# Building NW.js for Linux ARMv7 - -## Environment setup - -Download and install [Xubuntu 16.04.1 LTS (Xenial Xerus)] on [VirtualBox]. - -Host requirements: - --16 GB RAM --60 GB empty disk space (SSD or high-speed HDD) --fast internet connection - -Guest requirements: - --10 GB RAM --10 GB swap --50 GB disk space. - - -Update and upgrade the packages on the guest os by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Install Git and monitoring tools: -```bash -sudo apt-get install git htop sysstat -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw22 -``` - -Put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node-nw -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node-nw -git clone https://github.com/nwjs/v8 $NWJS/src/v8 -cd $NWJS/src/content/nw -git checkout nw22 -cd $NWJS/src/third_party/node-nw -git checkout nw22 -cd $NWJS/src/v8 -git checkout nw22 -``` - -**Step 3.** Export cross-compilation environment variables and synchronize the projects. To enable proprietary codecs set `ffmpeg_branding` to `Chrome` when you configure GN! - -```bash -cd $NWJS/src -export GYP_CROSSCOMPILE="1" -export GYP_DEFINES="target_arch=arm arm_float_abi=hard nwjs_sdk=1 disable_nacl=0" -export GN_ARGS="is_debug=false is_component_ffmpeg=true enable_nacl=true target_cpu=\"arm\" ffmpeg_branding=\"Chrome\"" - -export GYP_CHROMIUM_NO_ACTION=1 -gclient sync --reset --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from remote repositories. - -**Step 4.** Install all the compiler and library dependencies: -```bash -./build/install-build-deps.sh --arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -# [Build] addNode.jsbuild tools for linux arm -curl -s https://github.com/jtg-gg/chromium.src/commit/fd17b6a285fbbe9ed1e8cb8c845fdb1a0991d833.patch | git am - -# [Build][gn] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/chromium.src/commit/0ef94fad3d5f3901a999894ab1db7e6ae257b6c9.patch | git am - -# [Linux][arm] disable the runtime check -curl -s https://github.com/jtg-gg/chromium.src/commit/bdc0dfaf23ac7db9e0d048d8bd0d716707136455.patch | git am - -cd $NWJS/src/content/nw/ - -# [Build] add patches for Linux arm build -curl -s https://github.com/jtg-gg/node-webkit/commit/5e50b681d4fd185361f6ba8f379ae4ba20a3de19.patch | git am - -# [Build][Linux] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/node-webkit/commit/9305181849248e93fab56dc08c04465e9adbbb79.patch | git am -``` - -Check if added patches apply cleanly (optional step, but it helps debugging): -```bash -cd $NWJS/src/third_party/node-nw/deps/openssl/asm/arm-void-gas/modes/ -git apply --check $NWJS/src/content/nw/patch/patches/node.patch -cd $NWJS/src/third_party/node-nw/deps/openssl/ -git apply --check $NWJS/src/content/nw/patch/patches/node_openssl.patch -cd $NWJS/src/v8/src -git apply --check $NWJS/src/content/nw/patch/patches/v8.patch -cd $NWJS/src -``` - -**Step 6.** Setup environment variables and generate ninja build files with GN for Chromium: -```bash -gclient runhooks -gn gen out_gn_arm/nw --args="$GN_ARGS" -export GYP_CHROMIUM_NO_ACTION=0 -python build/gyp_chromium -Goutput_dir=out_gn_arm -I third_party/node-nw/build/common.gypi third_party/node-nw/node.gyp -``` - -## Build - -Build NW.js and Node: -```bash -ninja -C out_gn_arm/nw nwjs -ninja -C out_gn_arm/nw v8_libplatform -ninja -C out_gn_arm/Release node -ninja -C out_gn_arm/nw copy_node -ninja -C out_gn_arm/nw dump -ninja -C out_gn_arm/nw dist -``` - -This process can take few hours depending on your system configuration. - -When the compilation is done you should find your artifacts under `$NWJS/src/out_gn_arm/nw/dist/`. - -[Xubuntu 16.04.1 LTS (Xenial Xerus)]: http://cdimage.ubuntu.com/xubuntu/releases/xenial/release/xubuntu-16.04.1-desktop-amd64.iso -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.23.x.md b/.archive/build-nwjs-v0.23.x.md deleted file mode 100644 index ecb66d1..0000000 --- a/.archive/build-nwjs-v0.23.x.md +++ /dev/null @@ -1,190 +0,0 @@ -# Building NW.js for Linux ARMv7 - -## Environment setup - -Download and install [Xubuntu 16.04.1 LTS (Xenial Xerus)] on [VirtualBox]. - -Host requirements: - --16 GB RAM --60 GB empty disk space (SSD or high-speed HDD) --fast internet connection - -Guest requirements: - --10 GB RAM --10 GB swap --50 GB disk space. - - -Update and upgrade the packages on the guest os by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Install Git and monitoring tools: -```bash -sudo apt-get install git htop sysstat -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw23 -``` - -Put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node-nw -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node-nw -git clone https://github.com/nwjs/v8 $NWJS/src/v8 -cd $NWJS/src/content/nw -git checkout nw23 -cd $NWJS/src/third_party/node-nw -git checkout nw23 -cd $NWJS/src/v8 -git checkout nw23 -``` - -**Step 3.** Export cross-compilation environment variables and synchronize the projects. To enable proprietary codecs set `ffmpeg_branding` to `Chrome` when you configure GN! - -```bash -cd $NWJS/src -export GYP_CROSSCOMPILE="1" -export GYP_DEFINES="target_arch=arm arm_float_abi=hard nwjs_sdk=1 disable_nacl=0" -export GN_ARGS="is_debug=false is_component_ffmpeg=true enable_nacl=true target_cpu=\"arm\" ffmpeg_branding=\"Chrome\"" - -export GYP_CHROMIUM_NO_ACTION=1 -gclient sync --reset --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from remote repositories. - -**Step 4.** Install all the compiler and library dependencies: -```bash -./build/install-build-deps.sh --arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -# [Build] addNode.jsbuild tools for linux arm -curl -s https://github.com/jtg-gg/chromium.src/commit/bc8e7a6314c9d43ce75669ad26016193aaa8106c.patch | git am - -# [Build][gn] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/chromium.src/commit/bda9a5e1fc868fd014c053a63fe2fe9663c4052e.patch | git am - -# [Linux][arm] disable the runtime check -curl -s https://github.com/jtg-gg/chromium.src/commit/a11ad070e60e36fdf0d3935bbdb3680e1791eafc.patch | git am - -cd $NWJS/src/content/nw/ - -# [Build] add patches for Linux arm build -curl -s https://github.com/jtg-gg/node-webkit/commit/c9c0b4a8cd1f30bf6327d434cd4ec3d32d5938e7.patch | git am - -# [Build][Linux] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/node-webkit/commit/73f745bfb7587f38031d4e39a86718b64656bd5a.patch | git am - -# [Build] remove ffmpeg patch -curl -s https://github.com/jtg-gg/node-webkit/commit/7856d3583bc1b066d77f867332d1967743fbf653.patch | git am -``` - -Check if added patches apply cleanly (optional step, but it helps debugging): -```bash -cd $NWJS/src/third_party/node-nw/deps/openssl/asm/arm-void-gas/modes/ -git apply --check $NWJS/src/content/nw/patch/patches/node.patch -cd $NWJS/src/third_party/node-nw/deps/openssl/ -git apply --check $NWJS/src/content/nw/patch/patches/node_openssl.patch -cd $NWJS/src/v8/src -git apply --check $NWJS/src/content/nw/patch/patches/v8.patch -``` - -**Step 6.** Setup environment variables and generate ninja build files with GN for Chromium: -```bash -cd $NWJS/src -gclient runhooks -gn gen out_gn_arm/nw --args="$GN_ARGS" -export GYP_CHROMIUM_NO_ACTION=0 -python build/gyp_chromium -Goutput_dir=out_gn_arm -I third_party/node-nw/build/common.gypi third_party/node-nw/node.gyp -``` - -## Build - -Build NW.js and Node: -```bash -ninja -C out_gn_arm/nw nwjs -ninja -C out_gn_arm/nw v8_libplatform -ninja -C out_gn_arm/Release node -ninja -C out_gn_arm/nw copy_node -ninja -C out_gn_arm/nw dump -ninja -C out_gn_arm/nw dist -``` - -This process can take few hours depending on your system configuration. - -When the compilation is done you should find your artifacts under `$NWJS/src/out_gn_arm/nw/dist/`. - -[Xubuntu 16.04.1 LTS (Xenial Xerus)]: http://cdimage.ubuntu.com/xubuntu/releases/xenial/release/xubuntu-16.04.1-desktop-amd64.iso -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.24.x.md b/.archive/build-nwjs-v0.24.x.md deleted file mode 100644 index 85e125f..0000000 --- a/.archive/build-nwjs-v0.24.x.md +++ /dev/null @@ -1,180 +0,0 @@ -# Building NW.js for Linux ARMv7 - -## Environment setup - -Download and install [Xubuntu 16.04.1 LTS (Xenial Xerus)] on [VirtualBox]. - -Host requirements: - --16 GB RAM --60 GB empty disk space (SSD or high-speed HDD) --fast internet connection - -Guest requirements: - --10 GB RAM --10 GB swap --50 GB disk space. - - -Update and upgrade the packages on the guest os by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Install Git and monitoring tools: -```bash -sudo apt-get install git htop sysstat openssh-server python -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw24 -``` - -Put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node-nw -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node-nw -git clone https://github.com/nwjs/v8 $NWJS/src/v8 -cd $NWJS/src/content/nw -git checkout nw24 -cd $NWJS/src/third_party/node-nw -git checkout nw24 -cd $NWJS/src/v8 -git checkout nw24 -``` - -**Step 3.** Export cross-compilation environment variables and synchronize the projects. To enable proprietary codecs set `ffmpeg_branding` to `Chrome` when you configure GN! - -```bash -cd $NWJS/src -export GYP_CROSSCOMPILE="1" -export GYP_DEFINES="is_debug=false is_component_ffmpeg=true target_arch=arm target_cpu=\"arm\" arm_float_abi=hard" -export GN_ARGS="nwjs_sdk=false enable_nacl=false" # ffmpeg_branding=\"Chrome\" - -export GYP_CHROMIUM_NO_ACTION=1 -gclient sync --reset --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from remote repositories. - -**Step 4.** Install all the compiler and library dependencies: -```bash -./build/install-build-deps.sh --arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -# [Build] addNode.jsbuild tools for linux arm -curl -s https://github.com/jtg-gg/chromium.src/commit/4898364ac69cd36387d9a2abc525a8296188a15e.patch | git am && - -# [Build][gn] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/chromium.src/commit/5d34856f3e3eb8227685e2b897d39f9483935175.patch | git am && - -# [Linux][arm] disable the runtime check -curl -s https://github.com/jtg-gg/chromium.src/commit/c41b2a4bc2073bdea5fa4067cd20e7841c49ceee.patch | git am && - -cd $NWJS/src/content/nw/ - -# [Build] add patches for Linux arm build -curl -s https://github.com/jtg-gg/node-webkit/commit/b9ebb8f236640144f922cdb154ebf654108afcd8.patch | git am && - -# [Build][Linux] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/node-webkit/commit/a6dae97d766214b68215ba14dfb45883d2871756.patch | git am && - -# [Build] remove ffmpeg patch -curl -s https://github.com/jtg-gg/node-webkit/commit/8396b82ef6f3f94beed7aad80d7aa761f9b02c60.patch | git am -``` - -**Step 6.** Setup environment variables and generate ninja build files with GN for Chromium: -```bash -cd $NWJS/src -gclient runhooks -gn gen out_gn_arm/nw --args="$GN_ARGS" -export GYP_CHROMIUM_NO_ACTION=0 -python build/gyp_chromium -Goutput_dir=out_gn_arm -I third_party/node-nw/build/common.gypi third_party/node-nw/node.gyp -``` - -## Build - -Build NW.js and Node: -```bash -ninja -C out_gn_arm/nw nwjs -ninja -C out_gn_arm/nw v8_libplatform -ninja -C out_gn_arm/Release node -ninja -C out_gn_arm/nw copy_node -ninja -C out_gn_arm/nw dump -ninja -C out_gn_arm/nw dist -``` - -This process can take few hours depending on your system configuration. - -When the compilation is done you should find your artifacts under `$NWJS/src/out_gn_arm/nw/dist/`. - -[Xubuntu 16.04.1 LTS (Xenial Xerus)]: http://cdimage.ubuntu.com/xubuntu/releases/xenial/release/xubuntu-16.04.1-desktop-amd64.iso -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.25.x.md b/.archive/build-nwjs-v0.25.x.md deleted file mode 100644 index 23f3a76..0000000 --- a/.archive/build-nwjs-v0.25.x.md +++ /dev/null @@ -1,189 +0,0 @@ -# Building NW.js for Linux ARMv7 - -## Environment setup - -Download and install [Xubuntu 16.04.1 LTS (Xenial Xerus)] on [VirtualBox]. - -Host requirements: - --16 GB RAM --60 GB empty disk space (SSD or high-speed HDD) --fast internet connection - -Guest requirements: - --10 GB RAM --10 GB swap --50 GB disk space. - - -Update and upgrade the packages on the guest os by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Install Git and monitoring tools: -```bash -sudo apt-get install git htop sysstat openssh-server python -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw25 -``` - -Put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node-nw -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node-nw -git clone https://github.com/nwjs/v8 $NWJS/src/v8 -cd $NWJS/src/content/nw -git checkout nw25 -cd $NWJS/src/third_party/node-nw -git checkout nw25 -cd $NWJS/src/v8 -git checkout nw25 -``` - -**Step 3.** Export cross-compilation environment variables and synchronize the projects. To enable proprietary codecs set `ffmpeg_branding` to `Chrome` when you configure GN! - -```bash -cd $NWJS/src -export GYP_CROSSCOMPILE="1" -export GYP_DEFINES="is_debug=false is_component_ffmpeg=true target_arch=arm target_cpu=\"arm\" arm_float_abi=hard" -export GN_ARGS="nwjs_sdk=false enable_nacl=false" # ffmpeg_branding=\"Chrome\" - -export GYP_CHROMIUM_NO_ACTION=1 -gclient sync --reset --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from remote repositories. - -**Step 4.** Install all the compiler and library dependencies: -```bash -./build/install-build-deps.sh --arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -# [Build] addNode.jsbuild tools for linux arm -curl -s https://github.com/jtg-gg/chromium.src/commit/7d9632d4cc16f69f4cf640594f6429eb47955c68.patch | git am && - -# [Build][gn] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/chromium.src/commit/d3461d0f839996c3c7c3577c762ab3c8670cf454.patch | git am && - -cd $NWJS/src/content/nw/ && - -# [Build] add patches for Linux arm build -curl -s https://github.com/jtg-gg/node-webkit/commit/22fb9c63199b3268301f8ec1ceb0f87106c4d390.patch | git am && - -# [Build][Linux] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/node-webkit/commit/339fb87bea983b09d43e34bccde02a7fa0e33391.patch | git am && - -# [Build] remove ffmpeg patch -curl -s https://github.com/jtg-gg/node-webkit/commit/517549fc030e4d1f23b2732a2cdcf194036b1747.patch | git am -``` - -Check if added patches apply cleanly (optional step, but it helps debugging): -```bash -cd $NWJS/src/third_party/node-nw/deps/openssl/ -git apply --check $NWJS/src/content/nw/patch/patches/node_openssl.patch -cd $NWJS/src/third_party/node-nw/deps/nghttp2/ -git apply --check $NWJS/src/content/nw/patch/patches/node_nghttp2.patch -cd $NWJS/src/third_party/pdfium/ -git apply --check $NWJS/src/content/nw/patch/patches/pdfium.patch -cd $NWJS/src/v8/src -git apply --check $NWJS/src/content/nw/patch/patches/v8.patch -``` - -**Step 6.** Setup environment variables and generate ninja build files with GN for Chromium: -```bash -cd $NWJS/src -gclient runhooks -gn gen out_gn_arm/nw --args="$GN_ARGS" -export GYP_CHROMIUM_NO_ACTION=0 -python build/gyp_chromium -Goutput_dir=out_gn_arm -I third_party/node-nw/build/common.gypi third_party/node-nw/node.gyp -``` - -## Build - -Build NW.js and Node: -```bash -ninja -C out_gn_arm/nw nwjs -ninja -C out_gn_arm/nw v8_libplatform -ninja -C out_gn_arm/Release node -ninja -C out_gn_arm/nw copy_node -ninja -C out_gn_arm/nw dump -ninja -C out_gn_arm/nw dist -``` - -This process can take few hours depending on your system configuration. - -When the compilation is done you should find your artifacts under `$NWJS/src/out_gn_arm/nw/dist/`. - -[Xubuntu 16.04.1 LTS (Xenial Xerus)]: http://cdimage.ubuntu.com/xubuntu/releases/xenial/release/xubuntu-16.04.1-desktop-amd64.iso -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.27.x.md b/.archive/build-nwjs-v0.27.x.md deleted file mode 100644 index 942544a..0000000 --- a/.archive/build-nwjs-v0.27.x.md +++ /dev/null @@ -1,180 +0,0 @@ -# Building NW.js for Linux ARMv7 - -## Environment setup - -Download and install [Xubuntu 16.04.1 LTS (Xenial Xerus)] on [VirtualBox]. - -Host requirements: - --16 GB RAM --60 GB empty disk space (SSD or high-speed HDD) --fast internet connection - -Guest requirements: - --10 GB RAM --10 GB swap --50 GB disk space. - - -Update and upgrade the packages on the guest os by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Install Git and monitoring tools: -```bash -sudo apt-get install git htop sysstat openssh-server python -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw27 -``` - -Put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node-nw -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node-nw -git clone https://github.com/nwjs/v8 $NWJS/src/v8 -cd $NWJS/src/content/nw -git checkout nw27 -cd $NWJS/src/third_party/node-nw -git checkout nw27 -cd $NWJS/src/v8 -git checkout nw27 -``` - -**Step 3.** Export cross-compilation environment variables and synchronize the projects. To enable proprietary codecs set `ffmpeg_branding` to `Chrome` when you configure GN! - -```bash -cd $NWJS/src -export GYP_CROSSCOMPILE="1" -export GYP_DEFINES="is_debug=false is_component_ffmpeg=true target_arch=arm target_cpu=\"arm\" arm_float_abi=hard" -export GN_ARGS="nwjs_sdk=false enable_nacl=false" # ffmpeg_branding=\"Chrome\" - -export GYP_CHROMIUM_NO_ACTION=1 -gclient sync --reset --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from remote repositories. - -**Step 4.** Install all the compiler and library dependencies: -```bash -./build/install-build-deps.sh --arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -# [Build] addNode.jsbuild tools for linux arm - -# Manual step because binary file - -## curl -s https://github.com/jtg-gg/chromium.src/commit/7d294f6f16bec76c0c46d85d890065d30fe5116b.patch | git am && - -# [Build][gn] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/chromium.src/commit/8af052415735f79d0c19ffe0c649d7a3bd0311fb.patch | git am && - -cd $NWJS/src/content/nw/ && - -# [Build] add patches for Linux arm build -curl -s https://github.com/jtg-gg/node-webkit/commit/dfcc701cba6d52d5131a6fa58f603bf2870ccbd8.patch | git am && - -# [Build][Linux] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/node-webkit/commit/f2e787c7e39f8be0430104069a95fa117ada9964.patch | git am && - -# [Build] remove ffmpeg patch -curl -s https://github.com/jtg-gg/node-webkit/commit/5eddc8e63426efc24f0031fb3566136055c9630e.patch | git am -``` - -**Step 6.** Setup environment variables and generate ninja build files with GN for Chromium: -```bash -cd $NWJS/src -gclient runhooks -gn gen out_gn_arm/nw --args="$GN_ARGS" -export GYP_CHROMIUM_NO_ACTION=0 -python build/gyp_chromium -Goutput_dir=out_gn_arm -I third_party/node-nw/build/common.gypi third_party/node-nw/node.gyp -``` - -## Build - -Build NW.js and Node: -```bash -ninja -C out_gn_arm/nw nwjs -ninja -C out_gn_arm/nw v8_libplatform -ninja -C out_gn_arm/Release node -ninja -C out_gn_arm/nw copy_node -ninja -C out_gn_arm/nw dump -ninja -C out_gn_arm/nw dist -``` - -This process can take few hours depending on your system configuration. - -When the compilation is done you should find your artifacts under `$NWJS/src/out_gn_arm/nw/dist/`. - -[Xubuntu 16.04.1 LTS (Xenial Xerus)]: http://cdimage.ubuntu.com/xubuntu/releases/xenial/release/xubuntu-16.04.1-desktop-amd64.iso -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/build-nwjs-v0.28.x.md b/.archive/build-nwjs-v0.28.x.md deleted file mode 100644 index 1b0f4ff..0000000 --- a/.archive/build-nwjs-v0.28.x.md +++ /dev/null @@ -1,207 +0,0 @@ -# Building NW.js for Linux ARMv7 - -## Environment setup - -Download and install [Xubuntu 16.04.1 LTS (Xenial Xerus)] on [VirtualBox]. - -Host requirements: - --16 GB RAM --60 GB empty disk space (SSD or high-speed HDD) --fast internet connection - -Guest requirements: - --8 GB RAM --8 GB swap --50 GB disk space. - - -Update and upgrade the packages on the guest OS by running: -```bash -sudo apt-get update -sudo apt-get upgrade -``` - -Install Git and monitoring tools: -```bash -sudo apt-get install git htop sysstat openssh-server python -``` - -## Prerequisites - -Read [Building NW.js] tutorial before you go further. - -Checkout and install the [depot_tools package]. This contains the custom tools necessary to checkout and build NW.js. - -Clone the depot_tools repository: -```bash -git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -``` - -Add depot_tools to the end of your PATH (you will probably want to put this in your ~/.bashrc or ~/.zshrc). Assuming you cloned depot_tools to /path/to/depot_tools: -```bash -export PATH=$PATH:/path/to/depot_tools -``` - -### Bootstrapping Configuration -If you have never used Git before, you’ll need to set some global git configurations; substitute your name and email address in the following commands: -```bash -git config --global user.name "John Doe" -git config --global user.email "jdoe@email.com" -git config --global core.autocrlf false -git config --global core.filemode false -# and for fun! -git config --global color.ui true -``` - -## Get the Code - -**Step 1.** Create a folder for holding NW.js source code, export it to `NWJS` environment variable, and run following command in the folder to generate `.gclient` file: - -```bash -mkdir -p $HOME/nwjs -export NWJS=$HOME/nwjs -cd $NWJS -gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw28 -``` - -Put `NWJS` environment variable in your ~/.bashrc or ~/.zshrc. - -Generally if you are not interested in running Chromium tests, you don't have to sync the test cases and reference builds, which saves you lot of time. Open the `.gclient` file you just created and replace `custom_deps` section with followings: - -```python -"custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, -} -``` - -**Step 2.** Manually clone and checkout correct branches for following repositories: - -| path |repository| -|:---- |:---- | -| src/content/nw | | -| src/third_party/node | | -| src/v8 | | - - -```bash -mkdir -p $NWJS/src/content/nw -mkdir -p $NWJS/src/third_party/node-nw -mkdir -p $NWJS/src/v8 -git clone https://github.com/nwjs/nw.js $NWJS/src/content/nw -git clone https://github.com/nwjs/node $NWJS/src/third_party/node-nw -git clone https://github.com/nwjs/v8 $NWJS/src/v8 - -git fetch --tags --prune -git reset --hard HEAD -git checkout nw28 -# git checkout tags/nw-v0.28.2 -b nw-v0.28.2 - -cd $NWJS/src/content/nw -git fetch --tags --prune -git checkout nw28 -cd $NWJS/src/third_party/node-nw -git fetch --tags --prune -git checkout nw28 -cd $NWJS/src/v8 -git fetch --tags --prune -git checkout nw28 -``` - -**Step 3.** Export cross-compilation environment variables and synchronize the projects. To enable proprietary codecs set `ffmpeg_branding` to `Chrome` when you configure GN! - -```bash -cd $NWJS/src -export GYP_CROSSCOMPILE="1" -export GYP_DEFINES="is_debug=false is_component_ffmpeg=true target_arch=arm target_cpu=\"arm\" arm_float_abi=hard" -export GN_ARGS="nwjs_sdk=false enable_nacl=false ffmpeg_branding=\"Chrome\"" # - -export GYP_CHROMIUM_NO_ACTION=1 -gclient sync --reset --with_branch_heads --nohooks -``` - -This usually downloads 20G+ from remote repositories. - -**Step 4.** Install all the compiler and library dependencies: -```bash -./build/install-build-deps.sh --arm -``` - -**Step 5.** Get some ARMv7 specific patches: -```bash -# [Build] addNode.jsbuild tools for linux arm -curl -s https://github.com/jtg-gg/chromium.src/commit/65f2215706692e438ca3570be640ed724ae37eaf.patch | git am && - -# [Build][gn] add support for linux arm binary strip -curl -s https://github.com/jtg-gg/chromium.src/commit/2a3ca533a4dd2552889bd18cd4343809f13876c4.patch | git am && - -# Update DEPS -curl -s https://github.com/jtg-gg/chromium.src/commit/8c13d9d6de27201ed71529f77f38b39e0aafc184.patch | git am && - -# [Build] compile error fixes -curl -s https://github.com/jtg-gg/chromium.src/commit/5e4bd4d9d03f81623074334bf030d13fce968c1b.patch | git am && - -# [DCHECK] ignore always crashing dcheck -curl -s https://github.com/jtg-gg/chromium.src/commit/58c7eb31c1e9390325da21ccc7f718f1b1b019d2.patch | git am && - -# [Build] add cherry-pick tool -curl -s https://github.com/jtg-gg/chromium.src/commit/cdc6ede7e5e4979ebbcc58492c7b576a07350152.patch | git am && - -cd $NWJS/src/content/nw/ && - -# [Build] add patches for Linux arm build -curl -s https://github.com/jtg-gg/node-webkit/commit/76770752e362b83b127ac4bf3aacc0c9a81bd590.patch | git am && - -# [Build][Linux] add support for linux arm binary strip and packaging -curl -s https://github.com/jtg-gg/node-webkit/commit/a59ff4c4f7ede3b47411719e41c59332b25b7259.patch | git am && - -# [Build] remove ffmpeg patch -curl -s https://github.com/jtg-gg/node-webkit/commit/11dcb9c775e43c78eb8136148e23ffe3b15d737e.patch | git am && - -# [Build] fixes : -curl -s https://github.com/jtg-gg/node-webkit/commit/c87b16766cda3f0af1ffa76b2b24390d77a005e0.patch | git am && - -# [Build][Symbols] put nwjs version and commit-id into crash report, zi -curl -s https://github.com/jtg-gg/node-webkit/commit/d480e6dcf6e49fd64200fd347d406554e76ef72e.patch | git am && - -# [Build] debug runtime fixes -curl -s https://github.com/jtg-gg/node-webkit/commit/42e15aeaf9b47447023d866fd94c82774327c49b.patch | git am -``` - -**Step 6.** Setup environment variables and generate ninja build files with GN for Chromium: -```bash -cd $NWJS/src && -gclient runhooks && -gn gen out_gn_arm/nw --args="$GN_ARGS" && -export GYP_CHROMIUM_NO_ACTION=0 && -python build/gyp_chromium -Goutput_dir=out_gn_arm -I third_party/node-nw/build/common.gypi third_party/node-nw/node.gyp -``` - -## Build - -Build NW.js and Node: -```bash -ninja -C out_gn_arm/nw nwjs && -ninja -C out_gn_arm/nw v8_libplatform && -ninja -C out_gn_arm/Release node && -ninja -C out_gn_arm/nw copy_node && -ninja -C out_gn_arm/nw dump && -ninja -C out_gn_arm/nw dist -``` - -This process can take few hours depending on your system configuration. - -When the compilation is done you should find your artifacts under `$NWJS/src/out_gn_arm/nw/dist/`. - -[Xubuntu 16.04.1 LTS (Xenial Xerus)]: http://cdimage.ubuntu.com/xubuntu/releases/xenial/release/xubuntu-16.04.1-desktop-amd64.iso -[Ubuntu 14.04.5 LTS (Trusty Tahr)]: http://releases.ubuntu.com/14.04/ubuntu-14.04.5-desktop-amd64.iso -[VirtualBox]: https://www.virtualbox.org/wiki/Downloads -[Building NW.js]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js/ -[depot_tools package]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up diff --git a/.archive/old-building-script.sh b/.archive/old-building-script.sh deleted file mode 100755 index d9cf046..0000000 --- a/.archive/old-building-script.sh +++ /dev/null @@ -1,189 +0,0 @@ -#!/bin/bash - -# scp -P 3022 ~/Documents/github/nw.js-armv7-binaries/building-script.sh ubuntu@127.0.0.1: -# export NWJS_BRANCH="$(curl https://api.github.com/repos/nwjs/nw.js | grep -Po '(?<="default_branch": ")[^"]*')" - -# sudo visudo -# ubuntu ALL=(ALL) NOPASSWD:ALL - -set -e - -export NWJS_BRANCH=nw28 -# 8c13d9d6de27201ed71529f77f38b39e0aafc184 -CHROMIUM_PATCHES=( -65f2215706692e438ca3570be640ed724ae37eaf -2a3ca533a4dd2552889bd18cd4343809f13876c4 -8c13d9d6de27201ed71529f77f38b39e0aafc184 -5e4bd4d9d03f81623074334bf030d13fce968c1b -58c7eb31c1e9390325da21ccc7f718f1b1b019d2 -cdc6ede7e5e4979ebbcc58492c7b576a07350152 -97bd5cac6682dbf1e23bdf276257043bc2d7d533 -) - -NODE_WEBKIT_PATCHES=( -76770752e362b83b127ac4bf3aacc0c9a81bd590 -a59ff4c4f7ede3b47411719e41c59332b25b7259 -11dcb9c775e43c78eb8136148e23ffe3b15d737e -c87b16766cda3f0af1ffa76b2b24390d77a005e0 -d480e6dcf6e49fd64200fd347d406554e76ef72e -42e15aeaf9b47447023d866fd94c82774327c49b -) - -export GYP_CROSSCOMPILE="1" -export GYP_DEFINES="is_debug=false is_component_ffmpeg=true target_arch=arm target_cpu=\"arm\" arm_float_abi=hard" -export GN_ARGS="nwjs_sdk=false enable_nacl=false" # ffmpeg_branding=\"Chrome\" -export GYP_CHROMIUM_NO_ACTION=1 - -export DEPOT_TOOLS_DIRECTORY=$HOME/depot_tools -export NWJS=$HOME/nwjs -export PATH=$PATH:$DEPOT_TOOLS_DIRECTORY - -export LANGUAGE="en_US.UTF-8" -export LC_ALL="en_US.UTF-8" -export LC_TIME="en_US.UTF-8" -export LC_MONETARY="en_US.UTF-8" -export LC_ADDRESS="en_US.UTF-8" -export LC_TELEPHONE="en_US.UTF-8" -export LC_NAME="en_US.UTF-8" -export LC_MEASUREMENT="en_US.UTF-8" -export LC_IDENTIFICATION="en_US.UTF-8" -export LC_NUMERIC="en_US.UTF-8" -export LC_PAPER="en_US.UTF-8" -export LANG="en_US.UTF-8" - -export RED='\033[0;31m' -export NC='\033[0m' - -function updateAndInstallMissingUbuntuPackages { - sudo apt-get update - sudo apt-get -y upgrade - sudo apt-get -y install git htop sysstat openssh-server python curl - sudo apt-get autoclean - sudo apt-get autoremove -} - -function configureGit { - git config --global user.name "Leonard Laszlo" - git config --global user.email "laslaul@yahoo.com" - git config --global core.autocrlf false - git config --global core.filemode false - git config --global color.ui true -} - -function getOrUpdateDepotTools { - if [ -d "$DEPOT_TOOLS_DIRECTORY" ]; then - echo -e "${RED}Update depot tools${NC}" - cd "$DEPOT_TOOLS_DIRECTORY" - git pull - else - echo -e "${RED}Clone depot tools${NC}" - cd "$HOME" - git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git - fi -} - -function createGclientConfig { - echo -e "${RED}Create gclient config${NC}" - mkdir -p "$NWJS" - cd "$NWJS" - gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/$NWJS_BRANCH -} - -function updateCustomDependencies { - echo -e "${RED}Update gclient config custom dependencies${NC}" - cp .gclient .gclient.bak - CUSTOM_DEPS=' "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None,' - awk -v values="${CUSTOM_DEPS}" '/custom_deps/ { print; print values; next }1' .gclient | cat > .gclient.temp - mv .gclient.temp .gclient -} - -function getOrUpdateGitRepository { - REPO_URL=$1 - REPO_DIR=$2 - echo -e "${RED}Get or update $REPO_DIR${NC}" - if [ -d "$REPO_DIR" ]; then - echo -e "${RED}Update $REPO_DIR${NC}" - cd "$REPO_DIR" - git fetch --tags --prune - git reset --hard HEAD - # git am --abort || true - git checkout $NWJS_BRANCH - git reset --hard origin/$NWJS_BRANCH - # git clean -fdx - git status - else - echo -e "${RED}Clone $REPO_DIR${NC}" - mkdir -p "$REPO_DIR" - git clone "$REPO_URL" "$REPO_DIR" - cd "$REPO_DIR" - git checkout "$NWJS_BRANCH" - fi -} - -function updateNwjsRepository { - echo -e "${RED}Update NWJS repository${NC}" - cd "$NWJS"/src - gclient sync --reset --with_branch_heads --nohooks - cd "$NWJS"/src - sudo sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - "$NWJS"/src/build/install-build-deps.sh --arm --no-prompt -} - -function getAndApplyPatches { - echo -e "${RED}Get and apply patches from @jtg-gg${NC}" - cd "$NWJS"/src - for COMMIT in "${CHROMIUM_PATCHES[@]}"; do - curl -s https://github.com/jtg-gg/chromium.src/commit/"$COMMIT".patch | git am - done - - cd "$NWJS"/src/content/nw/ - for COMMIT in "${NODE_WEBKIT_PATCHES[@]}"; do - curl -s https://github.com/jtg-gg/node-webkit/commit/"$COMMIT".patch | git am - done -} - -function runHooks { - echo -e "${RED}Run hooks${NC}" - cd "$NWJS"/src - gclient runhooks - gn gen out_gn_arm/nw --args="$GN_ARGS" - export GYP_CHROMIUM_NO_ACTION=0 - python build/gyp_chromium -Goutput_dir=out_gn_arm -I third_party/node-nw/common.gypi third_party/node-nw/node.gyp -} - -function build { - echo -e "${RED}Build${NC}" - cd "$NWJS"/src - ninja -C out_gn_arm/nw nwjs - ninja -C out_gn_arm/nw v8_libplatform - ninja -C out_gn_arm/Release node - ninja -C out_gn_arm/nw copy_node - ninja -C out_gn_arm/nw dump - ninja -C out_gn_arm/nw dist -} - -# updateAndInstallMissingUbuntuPackages -# configureGit -# getOrUpdateDepotTools -# createGclientConfig -# updateCustomDependencies -# getOrUpdateGitRepository "https://github.com/nwjs/nw.js" "$NWJS/src/content/nw" -# getOrUpdateGitRepository "https://github.com/nwjs/node" "$NWJS/src/third_party/node-nw" -# getOrUpdateGitRepository "https://github.com/nwjs/v8" "$NWJS/src/v8" -# updateNwjsRepository -# getAndApplyPatches - -# remove manually the following line: -# + '../nw/obj/buildtools/third_party/libunwind/libunwind/*.o' -# from nwjs/src/content/nw/patch/patches/node.patch - -runHooks -build - -mkdir -p "$NWJS"/"$NWJS_BRANCH" diff --git a/.archive/v0.37.x/Dockerfile b/.archive/v0.37.x/Dockerfile deleted file mode 100644 index ec4576e..0000000 --- a/.archive/v0.37.x/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# docker image build -t laslaul/nwjs-arm-build-env:v0.37.x . -# docker run -it laslaul/nwjs-arm-build-env:v0.37.x - -# Use the official image as a parent image -FROM ubuntu:18.04 - -# Set the working directory -WORKDIR /usr/docker - -# Copy the files from your host to your current location -COPY build-container.sh . -COPY build-nwjs.sh . -COPY checkout-another-branch.sh . - -# Run the command inside your image filesystem -RUN /usr/docker/build-container.sh diff --git a/.archive/v0.37.x/build-container.sh b/.archive/v0.37.x/build-container.sh deleted file mode 100755 index 72bae28..0000000 --- a/.archive/v0.37.x/build-container.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/bash - -set -e - -export NWJS_BRANCH="nw37" -export WORKDIR="/usr/docker" -export NWJSDIR="${WORKDIR}/nwjs" -export DEPOT_TOOLS_DIRECTORY="${WORKDIR}/depot_tools" -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} - -export DEPOT_TOOLS_REPO="https://chromium.googlesource.com/chromium/tools/depot_tools.git" - -function getNecessaryUbuntuPackages { - export DEBIAN_FRONTEND=noninteractive - apt-get update - apt-get -y upgrade - apt-get -y install apt-utils git curl lsb-release sudo tzdata nano python - echo "Europe/Zurich" > /etc/timezone - dpkg-reconfigure -f noninteractive tzdata - apt-get -y install python - apt-get autoclean - apt-get autoremove - git config --global user.email "you@example.com" - git config --global user.name "Your Name" -} - -function getDepotTools { - git clone --depth 1 "$DEPOT_TOOLS_REPO" "$DEPOT_TOOLS_DIRECTORY" -} - -function configureGclientForNwjs { - mkdir -p "$NWJSDIR" && cd "$NWJSDIR" - cat < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - mkdir -p "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --with_branch_heads --nohooks - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -getNecessaryUbuntuPackages -getDepotTools -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.37.x/build-nwjs.sh b/.archive/v0.37.x/build-nwjs.sh deleted file mode 100755 index 846844f..0000000 --- a/.archive/v0.37.x/build-nwjs.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/bash - -set -e - -export WORKDIR="/usr/docker" -export NWJSDIR=${WORKDIR}/nwjs -export DEPOT_TOOLS_DIRECTORY=${WORKDIR}/depot_tools -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} -export LC_ALL=C.UTF-8 -export GYP_CHROMIUM_NO_ACTION=0 - -function applyPatch { - cd $NWJSDIR/src - # See https://github.com/nwjs/nw.js/issues/1151 - patch -p0 --ignore-whitespace << 'PATCH' ---- content/nw/tools/package_binaries.py -+++ content/nw/tools/package_binaries.py -@@ -30,7 +30,7 @@ - # Init variables. - binaries_location = None # .../out/Release - platform_name = None # win/linux/osx --arch = None # ia32/x64 -+arch = None # ia32/x64/arm - step = None # nw/chromedriver/symbol - skip = None - nw_ver = None # x.xx -@@ -153,7 +153,6 @@ - 'nw', - 'icudtl.dat', - 'locales', -- 'natives_blob.bin', - 'v8_context_snapshot.bin', - 'lib/libnw.so', - 'lib/libnode.so', -@@ -172,12 +171,12 @@ - target['input'] += ['nacl_helper', 'nacl_helper_bootstrap', 'pnacl'] - if arch == 'x64': - target['input'].append('nacl_irt_x86_64.nexe') -- else: -+ elif arch == 'ia32': - target['input'].append('nacl_irt_x86_32.nexe') -- -+ else: -+ target['input'].append('nacl_irt_{}.nexe'.format(arch)) - elif platform_name == 'win': - target['input'] = [ -- 'natives_blob.bin', - 'v8_context_snapshot.bin', - 'd3dcompiler_47.dll', - 'libEGL.dll', -@@ -219,7 +218,6 @@ - target['input'].append('chromedriver') - target['input'].append('libffmpeg.dylib') - target['input'].append('minidump_stackwalk') -- target['input'].append('natives_blob.bin') - target['input'].append('v8_context_snapshot.bin') - else: - print 'Unsupported platform: ' + platform_name -PATCH - - # See https://gist.github.com/llamasoft/33af03b73945a84d7624460d67b922ab - # For nwjs_sdk=false builds, some required(?) files never get built. - # As a workaround, always use the SDK's GRIT input regardless of the flag. - # See: https://github.com/nwjs/chromium.src/issues/145 - patch -p0 --ignore-whitespace << 'PATCH' ---- chrome/browser/BUILD.gn -+++ chrome/browser/BUILD.gn -@@ -5238,11 +5238,7 @@ proto_library("resource_prefetch_predictor_proto") { - } - - grit("resources") { -- if (nwjs_sdk) { -- source = "browser_resources.grd" -- } else { -- source = "nwjs_resources.grd" -- } -+ source = "browser_resources.grd" - - # The .grd contains references to generated files. - source_is_generated = true -PATCH - cd $NWJSDIR/src/third_party/node-nw - patch -p0 --ignore-whitespace << 'PATCH' ---- common.gypi -+++ common.gypi -@@ -118,6 +118,9 @@ - ['OS=="linux" and target_arch=="x64" and <(building_nw)==1', { - 'sysroot': ' "${temp_dir}/strip" < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - rm -rf "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --reset --with_branch_heads --nohooks -D - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.39.x/Dockerfile b/.archive/v0.39.x/Dockerfile deleted file mode 100644 index af6c758..0000000 --- a/.archive/v0.39.x/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# docker image build -t laslaul/nwjs-arm-build-env:v0.39.x . -# docker run -it laslaul/nwjs-arm-build-env:v0.39.x - -# Use the official image as a parent image -FROM ubuntu:18.04 - -# Set the working directory -WORKDIR /usr/docker - -# Copy the files from your host to your current location -COPY build-container.sh . -COPY build-nwjs.sh . -COPY checkout-another-branch.sh . - -# Run the command inside your image filesystem -RUN /usr/docker/build-container.sh diff --git a/.archive/v0.39.x/build-container.sh b/.archive/v0.39.x/build-container.sh deleted file mode 100755 index 9cfdd08..0000000 --- a/.archive/v0.39.x/build-container.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/bash - -set -e - -export NWJS_BRANCH="nw39" -export WORKDIR="/usr/docker" -export NWJSDIR="${WORKDIR}/nwjs" -export DEPOT_TOOLS_DIRECTORY="${WORKDIR}/depot_tools" -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} - -export DEPOT_TOOLS_REPO="https://chromium.googlesource.com/chromium/tools/depot_tools.git" - -function getNecessaryUbuntuPackages { - export DEBIAN_FRONTEND=noninteractive - apt-get update - apt-get -y upgrade - apt-get -y install apt-utils git curl lsb-release sudo tzdata nano python - echo "Europe/Zurich" > /etc/timezone - dpkg-reconfigure -f noninteractive tzdata - apt-get -y install python - apt-get autoclean - apt-get autoremove - git config --global user.email "you@example.com" - git config --global user.name "Your Name" -} - -function getDepotTools { - git clone --depth 1 "$DEPOT_TOOLS_REPO" "$DEPOT_TOOLS_DIRECTORY" -} - -function configureGclientForNwjs { - mkdir -p "$NWJSDIR" && cd "$NWJSDIR" - cat < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - mkdir -p "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --with_branch_heads --nohooks - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -getNecessaryUbuntuPackages -getDepotTools -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.39.x/build-nwjs.sh b/.archive/v0.39.x/build-nwjs.sh deleted file mode 100755 index 485e77c..0000000 --- a/.archive/v0.39.x/build-nwjs.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/bash - -set -e - -export WORKDIR="/usr/docker" -export NWJSDIR=${WORKDIR}/nwjs -export DEPOT_TOOLS_DIRECTORY=${WORKDIR}/depot_tools -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} -export LC_ALL=C.UTF-8 -export GYP_CHROMIUM_NO_ACTION=0 - -function applyPatch { - cd $NWJSDIR/src - # See https://github.com/nwjs/nw.js/issues/1151 - patch -p0 --ignore-whitespace << 'PATCH' ---- content/nw/tools/package_binaries.py -+++ content/nw/tools/package_binaries.py -@@ -30,7 +30,7 @@ - # Init variables. - binaries_location = None # .../out/Release - platform_name = None # win/linux/osx --arch = None # ia32/x64 -+arch = None # ia32/x64/arm - step = None # nw/chromedriver/symbol - skip = None - nw_ver = None # x.xx -@@ -153,7 +153,6 @@ - 'nw', - 'icudtl.dat', - 'locales', -- 'natives_blob.bin', - 'v8_context_snapshot.bin', - 'lib/libnw.so', - 'lib/libnode.so', -@@ -172,12 +171,12 @@ - target['input'] += ['nacl_helper', 'nacl_helper_bootstrap', 'pnacl'] - if arch == 'x64': - target['input'].append('nacl_irt_x86_64.nexe') -- else: -+ elif arch == 'ia32': - target['input'].append('nacl_irt_x86_32.nexe') -- -+ else: -+ target['input'].append('nacl_irt_{}.nexe'.format(arch)) - elif platform_name == 'win': - target['input'] = [ -- 'natives_blob.bin', - 'v8_context_snapshot.bin', - 'd3dcompiler_47.dll', - 'libEGL.dll', -@@ -219,7 +218,6 @@ - target['input'].append('chromedriver') - target['input'].append('libffmpeg.dylib') - target['input'].append('minidump_stackwalk') -- target['input'].append('natives_blob.bin') - target['input'].append('v8_context_snapshot.bin') - else: - print 'Unsupported platform: ' + platform_name -PATCH - - # See https://gist.github.com/llamasoft/33af03b73945a84d7624460d67b922ab - # For nwjs_sdk=false builds, some required(?) files never get built. - # As a workaround, always use the SDK's GRIT input regardless of the flag. - # See: https://github.com/nwjs/chromium.src/issues/145 - patch -p0 --ignore-whitespace << 'PATCH' ---- chrome/browser/BUILD.gn -+++ chrome/browser/BUILD.gn -@@ -5238,11 +5238,7 @@ proto_library("resource_prefetch_predictor_proto") { - } - - grit("resources") { -- if (nwjs_sdk) { -- source = "browser_resources.grd" -- } else { -- source = "nwjs_resources.grd" -- } -+ source = "browser_resources.grd" - - # The .grd contains references to generated files. - source_is_generated = true -PATCH - cd $NWJSDIR/src/third_party/node-nw - patch -p0 --ignore-whitespace << 'PATCH' ---- common.gypi -+++ common.gypi -@@ -118,6 +118,9 @@ - ['OS=="linux" and target_arch=="x64" and <(building_nw)==1', { - 'sysroot': ' "${temp_dir}/strip" < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - rm -rf "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --reset --with_branch_heads --nohooks -D - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.40.x/Dockerfile b/.archive/v0.40.x/Dockerfile deleted file mode 100644 index 6735b66..0000000 --- a/.archive/v0.40.x/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# docker image build -t laslaul/nwjs-arm-build-env:v0.40.x . -# docker run -it laslaul/nwjs-arm-build-env:v0.40.x - -# Use the official image as a parent image -FROM ubuntu:18.04 - -# Set the working directory -WORKDIR /usr/docker - -# Copy the files from your host to your current location -COPY build-container.sh . -COPY build-nwjs.sh . -COPY checkout-another-branch.sh . - -# Run the command inside your image filesystem -RUN /usr/docker/build-container.sh diff --git a/.archive/v0.40.x/build-container.sh b/.archive/v0.40.x/build-container.sh deleted file mode 100755 index 4e7ba7d..0000000 --- a/.archive/v0.40.x/build-container.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/bash - -set -e - -export NWJS_BRANCH="nw40" -export WORKDIR="/usr/docker" -export NWJSDIR="${WORKDIR}/nwjs" -export DEPOT_TOOLS_DIRECTORY="${WORKDIR}/depot_tools" -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} - -export DEPOT_TOOLS_REPO="https://chromium.googlesource.com/chromium/tools/depot_tools.git" - -function getNecessaryUbuntuPackages { - export DEBIAN_FRONTEND=noninteractive - apt-get update - apt-get -y upgrade - apt-get -y install apt-utils git curl lsb-release sudo tzdata nano python - echo "Europe/Zurich" > /etc/timezone - dpkg-reconfigure -f noninteractive tzdata - apt-get -y install python - apt-get autoclean - apt-get autoremove - git config --global user.email "you@example.com" - git config --global user.name "Your Name" -} - -function getDepotTools { - git clone --depth 1 "$DEPOT_TOOLS_REPO" "$DEPOT_TOOLS_DIRECTORY" -} - -function configureGclientForNwjs { - mkdir -p "$NWJSDIR" && cd "$NWJSDIR" - cat < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - mkdir -p "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --with_branch_heads --nohooks - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -getNecessaryUbuntuPackages -getDepotTools -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.40.x/build-nwjs.sh b/.archive/v0.40.x/build-nwjs.sh deleted file mode 100755 index ad54ed2..0000000 --- a/.archive/v0.40.x/build-nwjs.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/bash - -set -e - -export WORKDIR="/usr/docker" -export NWJSDIR=${WORKDIR}/nwjs -export DEPOT_TOOLS_DIRECTORY=${WORKDIR}/depot_tools -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} -export LC_ALL=C.UTF-8 -export GYP_CHROMIUM_NO_ACTION=0 - -function applyPatch { - cd $NWJSDIR/src - # See https://github.com/nwjs/nw.js/issues/1151 - patch -p0 --ignore-whitespace << 'PATCH' ---- content/nw/tools/package_binaries.py -+++ content/nw/tools/package_binaries.py -@@ -30,7 +30,7 @@ - # Init variables. - binaries_location = None # .../out/Release - platform_name = None # win/linux/osx --arch = None # ia32/x64 -+arch = None # ia32/x64/arm - step = None # nw/chromedriver/symbol - skip = None - nw_ver = None # x.xx -@@ -153,7 +153,6 @@ - 'nw', - 'icudtl.dat', - 'locales', -- 'natives_blob.bin', - 'v8_context_snapshot.bin', - 'lib/libnw.so', - 'lib/libnode.so', -@@ -172,12 +171,12 @@ - target['input'] += ['nacl_helper', 'nacl_helper_bootstrap', 'pnacl'] - if arch == 'x64': - target['input'].append('nacl_irt_x86_64.nexe') -- else: -+ elif arch == 'ia32': - target['input'].append('nacl_irt_x86_32.nexe') -- -+ else: -+ target['input'].append('nacl_irt_{}.nexe'.format(arch)) - elif platform_name == 'win': - target['input'] = [ -- 'natives_blob.bin', - 'v8_context_snapshot.bin', - 'd3dcompiler_47.dll', - 'libEGL.dll', -@@ -219,7 +218,6 @@ - target['input'].append('chromedriver') - target['input'].append('libffmpeg.dylib') - target['input'].append('minidump_stackwalk') -- target['input'].append('natives_blob.bin') - target['input'].append('v8_context_snapshot.bin') - else: - print 'Unsupported platform: ' + platform_name -PATCH - - # See https://gist.github.com/llamasoft/33af03b73945a84d7624460d67b922ab - # For nwjs_sdk=false builds, some required(?) files never get built. - # As a workaround, always use the SDK's GRIT input regardless of the flag. - # See: https://github.com/nwjs/chromium.src/issues/145 - patch -p0 --ignore-whitespace << 'PATCH' ---- chrome/browser/BUILD.gn -+++ chrome/browser/BUILD.gn -@@ -5238,11 +5238,7 @@ proto_library("resource_prefetch_predictor_proto") { - } - - grit("resources") { -- if (nwjs_sdk) { -- source = "browser_resources.grd" -- } else { -- source = "nwjs_resources.grd" -- } -+ source = "browser_resources.grd" - - # The .grd contains references to generated files. - source_is_generated = true -PATCH - cd $NWJSDIR/src/third_party/node-nw - patch -p0 --ignore-whitespace << 'PATCH' ---- common.gypi -+++ common.gypi -@@ -118,6 +118,9 @@ - ['OS=="linux" and target_arch=="x64" and <(building_nw)==1', { - 'sysroot': ' "${temp_dir}/strip" < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - rm -rf "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --reset --with_branch_heads --nohooks -D - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.41.x/Dockerfile b/.archive/v0.41.x/Dockerfile deleted file mode 100644 index 39a3ad9..0000000 --- a/.archive/v0.41.x/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# docker image build -t laslaul/nwjs-arm-build-env:v0.41.x . -# docker run -it laslaul/nwjs-arm-build-env:v0.41.x - -# Use the official image as a parent image -FROM ubuntu:18.04 - -# Set the working directory -WORKDIR /usr/docker - -# Copy the files from your host to your current location -COPY build-container.sh . -COPY build-nwjs.sh . -COPY checkout-another-branch.sh . - -# Run the command inside your image filesystem -RUN /usr/docker/build-container.sh diff --git a/.archive/v0.41.x/build-container.sh b/.archive/v0.41.x/build-container.sh deleted file mode 100755 index 5c6abbe..0000000 --- a/.archive/v0.41.x/build-container.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/bash - -set -e - -export NWJS_BRANCH="nw41" -export WORKDIR="/usr/docker" -export NWJSDIR="${WORKDIR}/nwjs" -export DEPOT_TOOLS_DIRECTORY="${WORKDIR}/depot_tools" -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} - -export DEPOT_TOOLS_REPO="https://chromium.googlesource.com/chromium/tools/depot_tools.git" - -function getNecessaryUbuntuPackages { - export DEBIAN_FRONTEND=noninteractive - apt-get update - apt-get -y upgrade - apt-get -y install apt-utils git curl lsb-release sudo tzdata nano python - echo "Europe/Zurich" > /etc/timezone - dpkg-reconfigure -f noninteractive tzdata - apt-get -y install python - apt-get autoclean - apt-get autoremove - git config --global user.email "you@example.com" - git config --global user.name "Your Name" -} - -function getDepotTools { - git clone --depth 1 "$DEPOT_TOOLS_REPO" "$DEPOT_TOOLS_DIRECTORY" -} - -function configureGclientForNwjs { - mkdir -p "$NWJSDIR" && cd "$NWJSDIR" - cat < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - mkdir -p "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --with_branch_heads --nohooks - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -getNecessaryUbuntuPackages -getDepotTools -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.41.x/build-nwjs.sh b/.archive/v0.41.x/build-nwjs.sh deleted file mode 100755 index d17f1d1..0000000 --- a/.archive/v0.41.x/build-nwjs.sh +++ /dev/null @@ -1,163 +0,0 @@ -#!/bin/bash - -set -e - -export WORKDIR="/usr/docker" -export NWJSDIR=${WORKDIR}/nwjs -export DEPOT_TOOLS_DIRECTORY=${WORKDIR}/depot_tools -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} -export LC_ALL=C.UTF-8 -export GYP_CHROMIUM_NO_ACTION=0 - -function applyPatch { - cd $NWJSDIR/src - # See https://github.com/nwjs/nw.js/issues/1151 - patch -p0 --ignore-whitespace << 'PATCH' ---- content/nw/tools/package_binaries.py -+++ content/nw/tools/package_binaries.py -@@ -30,7 +30,7 @@ - # Init variables. - binaries_location = None # .../out/Release - platform_name = None # win/linux/osx --arch = None # ia32/x64 -+arch = None # ia32/x64/arm - step = None # nw/chromedriver/symbol - skip = None - nw_ver = None # x.xx -@@ -153,7 +153,6 @@ - 'nw', - 'icudtl.dat', - 'locales', -- 'natives_blob.bin', - 'v8_context_snapshot.bin', - 'lib/libnw.so', - 'lib/libnode.so', -@@ -172,12 +171,12 @@ - target['input'] += ['nacl_helper', 'nacl_helper_bootstrap', 'pnacl'] - if arch == 'x64': - target['input'].append('nacl_irt_x86_64.nexe') -- else: -+ elif arch == 'ia32': - target['input'].append('nacl_irt_x86_32.nexe') -- -+ else: -+ target['input'].append('nacl_irt_{}.nexe'.format(arch)) - elif platform_name == 'win': - target['input'] = [ -- 'natives_blob.bin', - 'v8_context_snapshot.bin', - 'd3dcompiler_47.dll', - 'libEGL.dll', -@@ -219,7 +218,6 @@ - target['input'].append('chromedriver') - target['input'].append('libffmpeg.dylib') - target['input'].append('minidump_stackwalk') -- target['input'].append('natives_blob.bin') - target['input'].append('v8_context_snapshot.bin') - else: - print 'Unsupported platform: ' + platform_name -PATCH - - # See https://gist.github.com/llamasoft/33af03b73945a84d7624460d67b922ab - # For nwjs_sdk=false builds, some required(?) files never get built. - # As a workaround, always use the SDK's GRIT input regardless of the flag. - # See: https://github.com/nwjs/chromium.src/issues/145 - patch -p0 --ignore-whitespace << 'PATCH' ---- chrome/browser/BUILD.gn -+++ chrome/browser/BUILD.gn -@@ -5238,11 +5238,7 @@ proto_library("resource_prefetch_predictor_proto") { - } - - grit("resources") { -- if (nwjs_sdk) { -- source = "browser_resources.grd" -- } else { -- source = "nwjs_resources.grd" -- } -+ source = "browser_resources.grd" - - # The .grd contains references to generated files. - source_is_generated = true -PATCH - - cd $NWJSDIR/src/third_party/node-nw - patch -p0 --ignore-whitespace << 'PATCH' ---- common.gypi -+++ common.gypi -@@ -118,6 +118,9 @@ - ['OS=="linux" and target_arch=="x64" and <(building_nw)==1', { - 'sysroot': ' "${temp_dir}/strip" < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - rm -rf "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --reset --with_branch_heads --nohooks -D - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.42.x/Dockerfile b/.archive/v0.42.x/Dockerfile deleted file mode 100644 index 9e770bf..0000000 --- a/.archive/v0.42.x/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# docker image build -t laslaul/nwjs-arm-build-env:v0.42.x . -# docker run -it laslaul/nwjs-arm-build-env:v0.42.x - -# Use the official image as a parent image -FROM ubuntu:18.04 - -# Set the working directory -WORKDIR /usr/docker - -# Copy the files from your host to your current location -COPY build-container.sh . -COPY build-nwjs.sh . -COPY checkout-another-branch.sh . - -# Run the command inside your image filesystem -RUN /usr/docker/build-container.sh diff --git a/.archive/v0.42.x/build-container.sh b/.archive/v0.42.x/build-container.sh deleted file mode 100755 index d34ff39..0000000 --- a/.archive/v0.42.x/build-container.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/bash - -set -e - -export NWJS_BRANCH="nw42" -export WORKDIR="/usr/docker" -export NWJSDIR="${WORKDIR}/nwjs" -export DEPOT_TOOLS_DIRECTORY="${WORKDIR}/depot_tools" -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} - -export DEPOT_TOOLS_REPO="https://chromium.googlesource.com/chromium/tools/depot_tools.git" - -function getNecessaryUbuntuPackages { - export DEBIAN_FRONTEND=noninteractive - apt-get update - apt-get -y upgrade - apt-get -y install apt-utils git curl lsb-release sudo tzdata nano python - echo "Europe/Zurich" > /etc/timezone - dpkg-reconfigure -f noninteractive tzdata - apt-get -y install python - apt-get autoclean - apt-get autoremove - git config --global user.email "you@example.com" - git config --global user.name "Your Name" -} - -function getDepotTools { - git clone --depth 1 "$DEPOT_TOOLS_REPO" "$DEPOT_TOOLS_DIRECTORY" -} - -function configureGclientForNwjs { - mkdir -p "$NWJSDIR" && cd "$NWJSDIR" - cat < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - mkdir -p "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --with_branch_heads --nohooks - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -getNecessaryUbuntuPackages -getDepotTools -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.42.x/build-nwjs.sh b/.archive/v0.42.x/build-nwjs.sh deleted file mode 100755 index 877cb2f..0000000 --- a/.archive/v0.42.x/build-nwjs.sh +++ /dev/null @@ -1,191 +0,0 @@ -#!/bin/bash - -set -e - -export WORKDIR="/usr/docker" -export NWJSDIR=${WORKDIR}/nwjs -export DEPOT_TOOLS_DIRECTORY=${WORKDIR}/depot_tools -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} -export LC_ALL=C.UTF-8 -export GYP_CHROMIUM_NO_ACTION=0 - -function applyPatch { - cd $NWJSDIR/src - # See https://github.com/nwjs/nw.js/issues/1151 - patch -p0 --ignore-whitespace << 'PATCH' ---- content/nw/tools/package_binaries.py 2020-06-13 11:26:41.048579957 +0200 -+++ content/nw/tools/package_binaries.py 2020-06-13 11:29:17.314222933 +0200 -@@ -30,7 +30,7 @@ - # Init variables. - binaries_location = None # .../out/Release - platform_name = None # win/linux/osx --arch = None # ia32/x64 -+arch = None # ia32/x64/arm - step = None # nw/chromedriver/symbol - skip = None - nw_ver = None # x.xx -@@ -153,7 +153,6 @@ - 'nw', - 'icudtl.dat', - 'locales', -- 'natives_blob.bin', - 'v8_context_snapshot.bin', - 'lib/libnw.so', - 'lib/libnode.so', -@@ -172,12 +171,12 @@ - target['input'] += ['nacl_helper', 'nacl_helper_bootstrap', 'pnacl'] - if arch == 'x64': - target['input'].append('nacl_irt_x86_64.nexe') -- else: -+ elif arch == 'ia32': - target['input'].append('nacl_irt_x86_32.nexe') -- -+ else: -+ target['input'].append('nacl_irt_{}.nexe'.format(arch)) - elif platform_name == 'win': - target['input'] = [ -- 'natives_blob.bin', - 'v8_context_snapshot.bin', - 'd3dcompiler_47.dll', - 'libEGL.dll', -@@ -219,7 +218,6 @@ - target['input'].append('chromedriver') - target['input'].append('libffmpeg.dylib') - target['input'].append('minidump_stackwalk') -- target['input'].append('natives_blob.bin') - target['input'].append('v8_context_snapshot.bin') - else: - print 'Unsupported platform: ' + platform_name -PATCH - - # See https://gist.github.com/llamasoft/33af03b73945a84d7624460d67b922ab - # For nwjs_sdk=false builds, some required(?) files never get built. - # As a workaround, always use the SDK's GRIT input regardless of the flag. - # See: https://github.com/nwjs/chromium.src/issues/145 - cd $NWJSDIR/src - patch -p0 --ignore-whitespace << 'PATCH' ---- chrome/browser/BUILD.gn -+++ chrome/browser/BUILD.gn -@@ -5238,11 +5238,7 @@ proto_library("resource_prefetch_predictor_proto") { - } - - grit("resources") { -- if (nwjs_sdk) { -- source = "browser_resources.grd" -- } else { -- source = "nwjs_resources.grd" -- } -+ source = "browser_resources.grd" - - # The .grd contains references to generated files. - source_is_generated = true -PATCH - - cd $NWJSDIR/src/third_party/node-nw - git am <<'PATCH' || git am --abort -From 597e2ed08849ccfc9e217e0b588482c9bffa20cb Mon Sep 17 00:00:00 2001 -From: Marcus T -Date: Fri, 14 Feb 2020 09:44:41 -0500 -Subject: [PATCH] Update common.gypi to allow for ARM builds - -Chromium's build scripts support building for ARM architectures so long as the ARM sysroot image is installed. ---- - common.gypi | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/common.gypi b/common.gypi -index e44385eefb..f4d6f6c2e2 100644 ---- a/common.gypi -+++ b/common.gypi -@@ -122,6 +122,9 @@ - ['OS=="linux" and target_arch=="x64" and <(building_nw)==1', { - 'sysroot': ' -Date: Mon, 17 Feb 2020 20:15:57 -0500 -Subject: [PATCH] Update build script to support cross-compiling for ARM - -In addition to the sysroot change, this modification allows node to be cross-compiled for ARM when built using clang. ---- - common.gypi | 4 ++++ - 1 file changed, 4 insertions(+) -diff --git a/common.gypi b/common.gypi -index ae083bec..86644e93 100644 ---- a/common.gypi -+++ b/common.gypi -@@ -533,6 +533,10 @@ - 'cflags': [ '--sysroot=<(sysroot)', '-nostdinc++', '-isystem<(DEPTH)/buildtools/third_party/libc++/trunk/include', '-isystem<(DEPTH)/buildtools/third_party/libc++abi/trunk/include' ], - 'ldflags': [ '--sysroot=<(sysroot)',' "${temp_dir}/strip" < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - rm -rf "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --reset --with_branch_heads --nohooks -D - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.43.x/Dockerfile b/.archive/v0.43.x/Dockerfile deleted file mode 100644 index 47d1167..0000000 --- a/.archive/v0.43.x/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# docker image build -t laslaul/nwjs-arm-build-env:v0.43.x . -# docker run -it laslaul/nwjs-arm-build-env:v0.43.x - -# Use the official image as a parent image -FROM ubuntu:18.04 - -# Set the working directory -WORKDIR /usr/docker - -# Copy the files from your host to your current location -COPY build-container.sh . -COPY build-nwjs.sh . -COPY checkout-another-branch.sh . - -# Run the command inside your image filesystem -RUN /usr/docker/build-container.sh diff --git a/.archive/v0.43.x/build-container.sh b/.archive/v0.43.x/build-container.sh deleted file mode 100755 index e106e34..0000000 --- a/.archive/v0.43.x/build-container.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/bash - -set -e - -export NWJS_BRANCH="nw43" -export WORKDIR="/usr/docker" -export NWJSDIR="${WORKDIR}/nwjs" -export DEPOT_TOOLS_DIRECTORY="${WORKDIR}/depot_tools" -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} - -export DEPOT_TOOLS_REPO="https://chromium.googlesource.com/chromium/tools/depot_tools.git" - -function getNecessaryUbuntuPackages { - export DEBIAN_FRONTEND=noninteractive - apt-get update - apt-get -y upgrade - apt-get -y install apt-utils git curl lsb-release sudo tzdata nano python - echo "Europe/Zurich" > /etc/timezone - dpkg-reconfigure -f noninteractive tzdata - apt-get -y install python - apt-get autoclean - apt-get autoremove - git config --global user.email "you@example.com" - git config --global user.name "Your Name" -} - -function getDepotTools { - git clone --depth 1 "$DEPOT_TOOLS_REPO" "$DEPOT_TOOLS_DIRECTORY" -} - -function configureGclientForNwjs { - mkdir -p "$NWJSDIR" && cd "$NWJSDIR" - cat < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - mkdir -p "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --with_branch_heads --nohooks - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -getNecessaryUbuntuPackages -getDepotTools -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.43.x/build-nwjs.sh b/.archive/v0.43.x/build-nwjs.sh deleted file mode 100755 index 432be8a..0000000 --- a/.archive/v0.43.x/build-nwjs.sh +++ /dev/null @@ -1,191 +0,0 @@ -#!/bin/bash - -set -e - -export WORKDIR="/usr/docker" -export NWJSDIR=${WORKDIR}/nwjs -export DEPOT_TOOLS_DIRECTORY=${WORKDIR}/depot_tools -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} -export LC_ALL=C.UTF-8 -export GYP_CHROMIUM_NO_ACTION=0 - -function applyPatch { - cd $NWJSDIR/src - # See https://github.com/nwjs/nw.js/issues/1151 - patch -p0 --ignore-whitespace << 'PATCH' ---- content/nw/tools/package_binaries.py 2020-06-13 11:26:41.048579957 +0200 -+++ content/nw/tools/package_binaries.py 2020-06-13 11:29:17.314222933 +0200 -@@ -30,7 +30,7 @@ - # Init variables. - binaries_location = None # .../out/Release - platform_name = None # win/linux/osx --arch = None # ia32/x64 -+arch = None # ia32/x64/arm - step = None # nw/chromedriver/symbol - skip = None - nw_ver = None # x.xx -@@ -153,7 +153,6 @@ - 'nw', - 'icudtl.dat', - 'locales', -- 'natives_blob.bin', - 'v8_context_snapshot.bin', - 'lib/libnw.so', - 'lib/libnode.so', -@@ -172,12 +171,12 @@ - target['input'] += ['nacl_helper', 'nacl_helper_bootstrap', 'pnacl'] - if arch == 'x64': - target['input'].append('nacl_irt_x86_64.nexe') -- else: -+ elif arch == 'ia32': - target['input'].append('nacl_irt_x86_32.nexe') -- -+ else: -+ target['input'].append('nacl_irt_{}.nexe'.format(arch)) - elif platform_name == 'win': - target['input'] = [ -- 'natives_blob.bin', - 'v8_context_snapshot.bin', - 'd3dcompiler_47.dll', - 'libEGL.dll', -@@ -219,7 +218,6 @@ - target['input'].append('chromedriver') - target['input'].append('libffmpeg.dylib') - target['input'].append('minidump_stackwalk') -- target['input'].append('natives_blob.bin') - target['input'].append('v8_context_snapshot.bin') - else: - print 'Unsupported platform: ' + platform_name -PATCH - - # See https://gist.github.com/llamasoft/33af03b73945a84d7624460d67b922ab - # For nwjs_sdk=false builds, some required(?) files never get built. - # As a workaround, always use the SDK's GRIT input regardless of the flag. - # See: https://github.com/nwjs/chromium.src/issues/145 - cd $NWJSDIR/src - patch -p0 --ignore-whitespace << 'PATCH' ---- chrome/browser/BUILD.gn -+++ chrome/browser/BUILD.gn -@@ -5238,11 +5238,7 @@ proto_library("resource_prefetch_predictor_proto") { - } - - grit("resources") { -- if (nwjs_sdk) { -- source = "browser_resources.grd" -- } else { -- source = "nwjs_resources.grd" -- } -+ source = "browser_resources.grd" - - # The .grd contains references to generated files. - source_is_generated = true -PATCH - - cd $NWJSDIR/src/third_party/node-nw - git am <<'PATCH' || git am --abort -From 597e2ed08849ccfc9e217e0b588482c9bffa20cb Mon Sep 17 00:00:00 2001 -From: Marcus T -Date: Fri, 14 Feb 2020 09:44:41 -0500 -Subject: [PATCH] Update common.gypi to allow for ARM builds - -Chromium's build scripts support building for ARM architectures so long as the ARM sysroot image is installed. ---- - common.gypi | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/common.gypi b/common.gypi -index e44385eefb..f4d6f6c2e2 100644 ---- a/common.gypi -+++ b/common.gypi -@@ -122,6 +122,9 @@ - ['OS=="linux" and target_arch=="x64" and <(building_nw)==1', { - 'sysroot': ' -Date: Mon, 17 Feb 2020 20:15:57 -0500 -Subject: [PATCH] Update build script to support cross-compiling for ARM - -In addition to the sysroot change, this modification allows node to be cross-compiled for ARM when built using clang. ---- - common.gypi | 4 ++++ - 1 file changed, 4 insertions(+) -diff --git a/common.gypi b/common.gypi -index ae083bec..86644e93 100644 ---- a/common.gypi -+++ b/common.gypi -@@ -533,6 +533,10 @@ - 'cflags': [ '--sysroot=<(sysroot)', '-nostdinc++', '-isystem<(DEPTH)/buildtools/third_party/libc++/trunk/include', '-isystem<(DEPTH)/buildtools/third_party/libc++abi/trunk/include' ], - 'ldflags': [ '--sysroot=<(sysroot)',' "${temp_dir}/strip" < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - rm -rf "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --reset --with_branch_heads --nohooks -D - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.44.x/Dockerfile b/.archive/v0.44.x/Dockerfile deleted file mode 100644 index 68cef29..0000000 --- a/.archive/v0.44.x/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# docker image build -t laslaul/nwjs-arm-build-env:v0.44.x . -# docker run -it laslaul/nwjs-arm-build-env:v0.44.x - -# Use the official image as a parent image -FROM ubuntu:18.04 - -# Set the working directory -WORKDIR /usr/docker - -# Copy the files from your host to your current location -COPY build-container.sh . -COPY build-nwjs.sh . -COPY checkout-another-branch.sh . - -# Run the command inside your image filesystem -RUN /usr/docker/build-container.sh diff --git a/.archive/v0.44.x/build-container.sh b/.archive/v0.44.x/build-container.sh deleted file mode 100755 index 3a2145c..0000000 --- a/.archive/v0.44.x/build-container.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/bash - -set -e - -export NWJS_BRANCH="nw44" -export WORKDIR="/usr/docker" -export NWJSDIR="${WORKDIR}/nwjs" -export DEPOT_TOOLS_DIRECTORY="${WORKDIR}/depot_tools" -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} - -export DEPOT_TOOLS_REPO="https://chromium.googlesource.com/chromium/tools/depot_tools.git" - -function getNecessaryUbuntuPackages { - export DEBIAN_FRONTEND=noninteractive - apt-get update - apt-get -y upgrade - apt-get -y install apt-utils git curl lsb-release sudo tzdata nano python - echo "Europe/Zurich" > /etc/timezone - dpkg-reconfigure -f noninteractive tzdata - apt-get -y install python - apt-get autoclean - apt-get autoremove - git config --global user.email "you@example.com" - git config --global user.name "Your Name" -} - -function getDepotTools { - git clone --depth 1 "$DEPOT_TOOLS_REPO" "$DEPOT_TOOLS_DIRECTORY" -} - -function configureGclientForNwjs { - mkdir -p "$NWJSDIR" && cd "$NWJSDIR" - cat < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - mkdir -p "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --with_branch_heads --nohooks - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -getNecessaryUbuntuPackages -getDepotTools -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.44.x/build-nwjs.sh b/.archive/v0.44.x/build-nwjs.sh deleted file mode 100755 index 44d4de9..0000000 --- a/.archive/v0.44.x/build-nwjs.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash - -set -e - -export WORKDIR="/usr/docker" -export NWJSDIR=${WORKDIR}/nwjs -export DEPOT_TOOLS_DIRECTORY=${WORKDIR}/depot_tools -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} -export LC_ALL=C.UTF-8 -export GYP_CHROMIUM_NO_ACTION=0 - -function applyPatch { - # See https://gist.github.com/llamasoft/33af03b73945a84d7624460d67b922ab - # For nwjs_sdk=false builds, some required(?) files never get built. - # As a workaround, always use the SDK's GRIT input regardless of the flag. - # See: https://github.com/nwjs/chromium.src/issues/145 - cd $NWJSDIR/src - patch -p0 --ignore-whitespace << 'PATCH' ---- chrome/browser/BUILD.gn -+++ chrome/browser/BUILD.gn -@@ -5238,11 +5238,7 @@ proto_library("resource_prefetch_predictor_proto") { - } - - grit("resources") { -- if (nwjs_sdk) { -- source = "browser_resources.grd" -- } else { -- source = "nwjs_resources.grd" -- } -+ source = "browser_resources.grd" - - # The .grd contains references to generated files. - source_is_generated = true -PATCH -} - -function build { - cd $NWJSDIR/src - gn gen out/nw --args="${1}" - $NWJSDIR/src/build/gyp_chromium -I third_party/node-nw/common.gypi third_party/node-nw/node.gyp - ninja -C out/nw nwjs - ninja -C out/Release node - ninja -C out/nw copy_node - temp_dir=$(mktemp -d) - OLD_PATH="${PATH}" - export PATH="${temp_dir}:${PATH}" - - # Typically under `third_party/llvm-build/Release+Asserts/bin`, but search for it just in case. - objcopy=$(find . -type f -name "llvm-objcopy" | head -1 | xargs -n 1 realpath) - cat > "${temp_dir}/strip" < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - rm -rf "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --reset --with_branch_heads --nohooks -D - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.45.x/Dockerfile b/.archive/v0.45.x/Dockerfile deleted file mode 100644 index 3fc58f1..0000000 --- a/.archive/v0.45.x/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# docker image build -t laslaul/nwjs-arm-build-env:v0.45.x . -# docker run -it laslaul/nwjs-arm-build-env:v0.45.x - -# Use the official image as a parent image -FROM ubuntu:18.04 - -# Set the working directory -WORKDIR /usr/docker - -# Copy the files from your host to your current location -COPY build-container.sh . -COPY build-nwjs.sh . -COPY checkout-another-branch.sh . - -# Run the command inside your image filesystem -RUN /usr/docker/build-container.sh diff --git a/.archive/v0.45.x/build-container.sh b/.archive/v0.45.x/build-container.sh deleted file mode 100755 index fac9c76..0000000 --- a/.archive/v0.45.x/build-container.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/bash - -set -e - -export NWJS_BRANCH="nw45" -export WORKDIR="/usr/docker" -export NWJSDIR="${WORKDIR}/nwjs" -export DEPOT_TOOLS_DIRECTORY="${WORKDIR}/depot_tools" -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} - -export DEPOT_TOOLS_REPO="https://chromium.googlesource.com/chromium/tools/depot_tools.git" - -function getNecessaryUbuntuPackages { - export DEBIAN_FRONTEND=noninteractive - apt-get update - apt-get -y upgrade - apt-get -y install apt-utils git curl lsb-release sudo tzdata nano python - echo "Europe/Zurich" > /etc/timezone - dpkg-reconfigure -f noninteractive tzdata - apt-get -y install python - apt-get autoclean - apt-get autoremove - git config --global user.email "you@example.com" - git config --global user.name "Your Name" -} - -function getDepotTools { - git clone --depth 1 "$DEPOT_TOOLS_REPO" "$DEPOT_TOOLS_DIRECTORY" -} - -function configureGclientForNwjs { - mkdir -p "$NWJSDIR" && cd "$NWJSDIR" - cat < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - mkdir -p "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --with_branch_heads --nohooks - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -getNecessaryUbuntuPackages -getDepotTools -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.45.x/build-nwjs.sh b/.archive/v0.45.x/build-nwjs.sh deleted file mode 100755 index 707cfc3..0000000 --- a/.archive/v0.45.x/build-nwjs.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash - -set -e - -export WORKDIR="/usr/docker" -export NWJSDIR=${WORKDIR}/nwjs -export DEPOT_TOOLS_DIRECTORY=${WORKDIR}/depot_tools -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} -export LC_ALL=C.UTF-8 -export GYP_CHROMIUM_NO_ACTION=0 - -function applyPatch { - # See https://gist.github.com/llamasoft/33af03b73945a84d7624460d67b922ab - # For nwjs_sdk=false builds, some required(?) files never get built. - # As a workaround, always use the SDK's GRIT input regardless of the flag. - # See: https://github.com/nwjs/chromium.src/issues/145 - cd $NWJSDIR/src - patch -p0 --ignore-whitespace << 'PATCH' ---- chrome/browser/BUILD.gn -+++ chrome/browser/BUILD.gn -@@ -5238,11 +5238,7 @@ proto_library("resource_prefetch_predictor_proto") { - } - - grit("resources") { -- if (nwjs_sdk) { -- source = "browser_resources.grd" -- } else { -- source = "nwjs_resources.grd" -- } -+ source = "browser_resources.grd" - - # The .grd contains references to generated files. - source_is_generated = true -PATCH -} - -function build { - cd $NWJSDIR/src - gn gen out/nw --args="${1}" - $NWJSDIR/src/build/gyp_chromium -I third_party/node-nw/common.gypi third_party/node-nw/node.gyp - ninja -C out/nw nwjs - ninja -C out/Release node - ninja -C out/nw copy_node - temp_dir=$(mktemp -d) - OLD_PATH="${PATH}" - export PATH="${temp_dir}:${PATH}" - - # Typically under `third_party/llvm-build/Release+Asserts/bin`, but search for it just in case. - objcopy=$(find . -type f -name "llvm-objcopy" | head -1 | xargs -n 1 realpath) - cat > "${temp_dir}/strip" < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - rm -rf "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --reset --with_branch_heads --nohooks -D - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.46.x/Dockerfile b/.archive/v0.46.x/Dockerfile deleted file mode 100644 index 860c222..0000000 --- a/.archive/v0.46.x/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# docker image build -t laslaul/nwjs-arm-build-env:v0.46.x . -# docker run -it laslaul/nwjs-arm-build-env:v0.46.x - -# Use the official image as a parent image -FROM ubuntu:18.04 - -# Set the working directory -WORKDIR /usr/docker - -# Copy the files from your host to your current location -COPY build-container.sh . -COPY build-nwjs.sh . -COPY checkout-another-branch.sh . - -# Run the command inside your image filesystem -RUN /usr/docker/build-container.sh diff --git a/.archive/v0.46.x/build-container.sh b/.archive/v0.46.x/build-container.sh deleted file mode 100755 index 1c38074..0000000 --- a/.archive/v0.46.x/build-container.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/bash - -set -e - -export NWJS_BRANCH="nw46" -export WORKDIR="/usr/docker" -export NWJSDIR="${WORKDIR}/nwjs" -export DEPOT_TOOLS_DIRECTORY="${WORKDIR}/depot_tools" -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} - -export DEPOT_TOOLS_REPO="https://chromium.googlesource.com/chromium/tools/depot_tools.git" - -function getNecessaryUbuntuPackages { - export DEBIAN_FRONTEND=noninteractive - apt-get update - apt-get -y upgrade - apt-get -y install apt-utils git curl lsb-release sudo tzdata nano python - echo "Europe/Zurich" > /etc/timezone - dpkg-reconfigure -f noninteractive tzdata - apt-get -y install python - apt-get autoclean - apt-get autoremove - git config --global user.email "you@example.com" - git config --global user.name "Your Name" -} - -function getDepotTools { - git clone --depth 1 "$DEPOT_TOOLS_REPO" "$DEPOT_TOOLS_DIRECTORY" -} - -function configureGclientForNwjs { - mkdir -p "$NWJSDIR" && cd "$NWJSDIR" - cat < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - mkdir -p "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --with_branch_heads --nohooks - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -getNecessaryUbuntuPackages -getDepotTools -configureGclientForNwjs -getNwjsRepository diff --git a/.archive/v0.46.x/build-nwjs.sh b/.archive/v0.46.x/build-nwjs.sh deleted file mode 100755 index 5c10041..0000000 --- a/.archive/v0.46.x/build-nwjs.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash - -set -e - -export WORKDIR="/usr/docker" -export NWJSDIR=${WORKDIR}/nwjs -export DEPOT_TOOLS_DIRECTORY=${WORKDIR}/depot_tools -export PATH=${PATH}:${DEPOT_TOOLS_DIRECTORY} -export LC_ALL=C.UTF-8 -export GYP_CHROMIUM_NO_ACTION=0 - -function applyPatch { - # See https://gist.github.com/llamasoft/33af03b73945a84d7624460d67b922ab - # For nwjs_sdk=false builds, some required(?) files never get built. - # As a workaround, always use the SDK's GRIT input regardless of the flag. - # See: https://github.com/nwjs/chromium.src/issues/145 - cd $NWJSDIR/src - patch -p0 --ignore-whitespace << 'PATCH' ---- chrome/browser/BUILD.gn -+++ chrome/browser/BUILD.gn -@@ -5238,11 +5238,7 @@ proto_library("resource_prefetch_predictor_proto") { - } - - grit("resources") { -- if (nwjs_sdk) { -- source = "browser_resources.grd" -- } else { -- source = "nwjs_resources.grd" -- } -+ source = "browser_resources.grd" - - # The .grd contains references to generated files. - source_is_generated = true -PATCH -} - -function build { - cd $NWJSDIR/src - gn gen out/nw --args="${1}" - $NWJSDIR/src/build/gyp_chromium -I third_party/node-nw/common.gypi third_party/node-nw/node.gyp - ninja -C out/nw nwjs - ninja -C out/Release node - ninja -C out/nw copy_node - temp_dir=$(mktemp -d) - OLD_PATH="${PATH}" - export PATH="${temp_dir}:${PATH}" - - # Typically under `third_party/llvm-build/Release+Asserts/bin`, but search for it just in case. - objcopy=$(find . -type f -name "llvm-objcopy" | head -1 | xargs -n 1 realpath) - cat > "${temp_dir}/strip" < ".gclient" -solutions = [ - { "name" : 'src', - "url" : 'https://github.com/nwjs/chromium.src.git@origin/${NWJS_BRANCH}', - "deps_file" : 'DEPS', - "managed" : True, - "custom_deps" : { - "src/third_party/WebKit/LayoutTests": None, - "src/chrome_frame/tools/test/reference_build/chrome": None, - "src/chrome_frame/tools/test/reference_build/chrome_win": None, - "src/chrome/tools/test/reference_build/chrome": None, - "src/chrome/tools/test/reference_build/chrome_linux": None, - "src/chrome/tools/test/reference_build/chrome_mac": None, - "src/chrome/tools/test/reference_build/chrome_win": None, - }, - "custom_vars": {}, - }, -] -CONFIG -} - -function getGitRepository { - REPO_URL="$1" - REPO_DIR="$2" - rm -rf "$REPO_DIR" - git clone --depth 1 --branch "${NWJS_BRANCH}" "$REPO_URL" "$REPO_DIR" -} - -function getNwjsRepository { - cd $NWJSDIR/src - gclient sync --reset --with_branch_heads --nohooks -D - sh -c 'echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections' - $NWJSDIR/src/build/install-build-deps.sh --arm --no-prompt --no-backwards-compatible - $NWJSDIR/src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm - getGitRepository "https://github.com/nwjs/nw.js" "$NWJSDIR/src/content/nw" - getGitRepository "https://github.com/nwjs/node" "$NWJSDIR/src/third_party/node-nw" - getGitRepository "https://github.com/nwjs/v8" "$NWJSDIR/src/v8" - gclient runhooks -} - -configureGclientForNwjs -getNwjsRepository diff --git a/README.md b/README.md index 9fb03c4..94080f5 100644 --- a/README.md +++ b/README.md @@ -36,26 +36,4 @@ Building the build environment docker image and upload it to docker hub: ./automatic-build.sh --branch nw57 --docker-image-build-only --upload-image ``` -## Further reading - -The documentation of older builds is available under the [.archive][2] directory. -Some older versions require extra tweaks in order to build successfully. - -Official building NW.js [guide][4]. [Chrome branding][6] (enable proprietary codecs). - - - - - - - -Cross compilation [tutorial][3] for v0.12.x - -Cross compilation [tutorial][5] for v0.14.x - [1]: https://github.com/LeonardLaszlo/nw.js-armv7-binaries/releases -[2]: https://github.com/LeonardLaszlo/nw.js-armv7-binaries/tree/master/.archive -[3]: http://forum.odroid.com/viewtopic.php?f=52&t=16072 -[4]: http://docs.nwjs.io/en/latest/For%20Developers/Building%20NW.js -[5]: https://github.com/nwjs/nw.js/issues/1151#issuecomment-222101059 -[6]: http://docs.nwjs.io/en/latest/For%20Developers/Enable%20Proprietary%20Codecs