Windows packaging for Helium.
This repo is based on ungoogled-chromium-windows, but is pretty heavily modified for Helium. Huge shout-out to everyone behind ungoogled-chromium, they made working with Chromium infinitely easier.
A huge thank you to Depot for sponsoring our runners, which handle the Windows builds of Helium. Their high-performance infrastructure lets us compile and package Helium at least 8 times faster than with GitHub-hosted runners, allowing us to release new builds within hours, not days.
All code, patches, modified portions of imported code or patches, and any other content that is unique to Helium and not imported from other repositories is licensed under GPL-3.0. See LICENSE.
Any content imported from other projects retains its original license (for example, any original unmodified code imported from ungoogled-chromium remains licensed under their BSD 3-Clause license).
Follow the "Visual Studio" section of the official Windows build instructions.
vs2019_install = DRIVE:\path\to\Microsoft Visual Studio\2019\Community (replace 2019 and Community with your installed versions)WINDOWSSDKDIR = DRIVE:\path\to\Windows Kits\10GYP_MSVS_VERSION = 2019 (replace 2019 with your installed version's year)IMPORTANT: Currently, the MAX_PATH path length restriction (which is 260 characters by default)
must be lifted in for our Python build scripts. This can be lifted in Windows 10 (v1607 or newer) with
the official installer for Python 3.6 or newer (you will see a button at the end of installation to do
this). See Issue #345 for other
methods for older Windows versions.
MAX_PATH length restriction.python3.exe and python.exe aliases in Settings > Apps > Advanced app settings > App execution aliases. They will typically be referred to as "App Installer". See this question on stackoverflow.com to understand why.httplib2 module at version 0.22.0 and Pillow. These can be installed using pip install httplib2==0.22.0 Pillow.MAX_PATH length restriction, either by clicking the button at the end of the Python installer or by following these instructions.Run in Developer Command Prompt for VS (as administrator):
git clone --recurse-submodules https://github.com/imputnet/helium-windows.git
cd helium-windows
# Replace TAG_OR_BRANCH_HERE with a tag or branch name
git checkout --recurse-submodules TAG_OR_BRANCH_HERE
python3 build.py
python3 package.py
A zip archive and an installer will be created under build.
NOTE: If the build fails, you must take additional steps before re-running the build:
build.py), it can be fixed by removing build\download_cache and re-running the build instructions.build.py, it can be fixed by removing everything under build other than build\download_cache and re-running the build instructions. This will clear out all the code used by the build, and any files generated by the build.An efficient way to delete large amounts of files is using Remove-Item PATH -Recurse -Force. Be careful however, files deleted by that command will be permanently lost.
pacman -S quilt python3 vim tar
# By default, there doesn't seem to be a vi command for less, quilt edit, etc.
ln -s /usr/bin/vim /usr/bin/vi
Developer Command Prompt for VS and MSYS2 MSYS shell and navigate to source folder
Developer Command Prompt for VS
cd c:\path\to\repo\helium-windowsMSYS2 MSYS
cd /path/to/repo/helium-windows/<drive letter>/<path with forward slashes>Developer Command Prompt for VS
python3 helium-chromium\utils\clone.py -o build\srcDeveloper Command Prompt for VS
python3 helium-chromium\devutils\update_lists.py -t build\src --domain-regex helium-chromium\domain_regex.listMSYS2 MSYS
./devutils/update_patches.sh mergesource devutils/set_quilt_vars.shcd build/srccd ../.../devutils/update_patches.sh unmerge./devutils/check_patch_files.shNOTE: For all steps, update downloads.ini accordingly.
LLVM-*-win64.exe file.sha512sum in MSYS2 MSYS.build/src/third_party/devtools-frontend/src/DEPS and find the closest release in the esbuild GitHub to it.
version:3@0.24.0.chromium.2 should be 0.24.0build/src/third_party/devtools-frontend/src/DEPS and find the closest release in the ninja GitHub to it.
ninja-win.zip file.sha512sum in MSYS2 MSYS.PortableGit-<version>-64-bit.7z.exe.src submodule in third_party/microsoft_dxheaders (e.g. using GitHub https://github.com/chromium/chromium/tree/<version>/third_party/microsoft_dxheaders).
version with the Chromium version in helium-chromium/chromium_version.txt.third_party/node/update_node_binaries (e.g. using GitHub https://github.com/chromium/chromium/tree/<version>/third_party/node/update_node_binaries).
sha512sum in MSYS2 MSYS.third_party/rust/windows_x86_64_msvc/).
sha512sum in MSYS2 MSYS.patches/ungoogled-chromium/windows/windows-fix-building-with-rust.patch accordingly.RUST_REVISION constant in file tools/rust/update_rust.py in build root.
f7b43542838f0a4a6cfdb17fbeadf45002042a77https://github.com/rust-lang/rust/commit/f7b43542838f0a4a6cfdb17fbeadf45002042a77
RUST_REVISION with the obtained valuedownloads.ini accordingly2025-03-14 (YYYY-mm-dd)https://static.rust-lang.org/dist/<build-date>/rust-nightly-x86_64-pc-windows-msvc.tar.gz
build-date with the obtained valuesha512sum in MSYS2 MSYS.rustc\bin\rustc.exe -V to get rust version stringpatches\ungoogled-chromium\windows\windows-fix-building-with-rust.patch accordinglyhttps://static.rust-lang.org/dist/<build-date>/rust-nightly-i686-pc-windows-msvc.tar.gz
build-date with the obtained valuesha512sum in MSYS2 MSYS.https://static.rust-lang.org/dist/<build-date>/rust-nightly-aarch64-pc-windows-msvc.tar.gz
build-date with the obtained valuesha512sum in MSYS2 MSYS.C++
81.3%
Python
11.4%
NSIS
6.0%
Shell
1.3%
Windows packaging for Helium.
This repo is based on ungoogled-chromium-windows, but is pretty heavily modified for Helium. Huge shout-out to everyone behind ungoogled-chromium, they made working with Chromium infinitely easier.
A huge thank you to Depot for sponsoring our runners, which handle the Windows builds of Helium. Their high-performance infrastructure lets us compile and package Helium at least 8 times faster than with GitHub-hosted runners, allowing us to release new builds within hours, not days.
All code, patches, modified portions of imported code or patches, and any other content that is unique to Helium and not imported from other repositories is licensed under GPL-3.0. See LICENSE.
Any content imported from other projects retains its original license (for example, any original unmodified code imported from ungoogled-chromium remains licensed under their BSD 3-Clause license).
Follow the "Visual Studio" section of the official Windows build instructions.
vs2019_install = DRIVE:\path\to\Microsoft Visual Studio\2019\Community (replace 2019 and Community with your installed versions)WINDOWSSDKDIR = DRIVE:\path\to\Windows Kits\10GYP_MSVS_VERSION = 2019 (replace 2019 with your installed version's year)IMPORTANT: Currently, the MAX_PATH path length restriction (which is 260 characters by default)
must be lifted in for our Python build scripts. This can be lifted in Windows 10 (v1607 or newer) with
the official installer for Python 3.6 or newer (you will see a button at the end of installation to do
this). See Issue #345 for other
methods for older Windows versions.
MAX_PATH length restriction.python3.exe and python.exe aliases in Settings > Apps > Advanced app settings > App execution aliases. They will typically be referred to as "App Installer". See this question on stackoverflow.com to understand why.httplib2 module at version 0.22.0 and Pillow. These can be installed using pip install httplib2==0.22.0 Pillow.MAX_PATH length restriction, either by clicking the button at the end of the Python installer or by following these instructions.Run in Developer Command Prompt for VS (as administrator):
git clone --recurse-submodules https://github.com/imputnet/helium-windows.git
cd helium-windows
# Replace TAG_OR_BRANCH_HERE with a tag or branch name
git checkout --recurse-submodules TAG_OR_BRANCH_HERE
python3 build.py
python3 package.py
A zip archive and an installer will be created under build.
NOTE: If the build fails, you must take additional steps before re-running the build:
build.py), it can be fixed by removing build\download_cache and re-running the build instructions.build.py, it can be fixed by removing everything under build other than build\download_cache and re-running the build instructions. This will clear out all the code used by the build, and any files generated by the build.An efficient way to delete large amounts of files is using Remove-Item PATH -Recurse -Force. Be careful however, files deleted by that command will be permanently lost.
pacman -S quilt python3 vim tar
# By default, there doesn't seem to be a vi command for less, quilt edit, etc.
ln -s /usr/bin/vim /usr/bin/vi
Developer Command Prompt for VS and MSYS2 MSYS shell and navigate to source folder
Developer Command Prompt for VS
cd c:\path\to\repo\helium-windowsMSYS2 MSYS
cd /path/to/repo/helium-windows/<drive letter>/<path with forward slashes>Developer Command Prompt for VS
python3 helium-chromium\utils\clone.py -o build\srcDeveloper Command Prompt for VS
python3 helium-chromium\devutils\update_lists.py -t build\src --domain-regex helium-chromium\domain_regex.listMSYS2 MSYS
./devutils/update_patches.sh mergesource devutils/set_quilt_vars.shcd build/srccd ../.../devutils/update_patches.sh unmerge./devutils/check_patch_files.shNOTE: For all steps, update downloads.ini accordingly.
LLVM-*-win64.exe file.sha512sum in MSYS2 MSYS.build/src/third_party/devtools-frontend/src/DEPS and find the closest release in the esbuild GitHub to it.
version:3@0.24.0.chromium.2 should be 0.24.0build/src/third_party/devtools-frontend/src/DEPS and find the closest release in the ninja GitHub to it.
ninja-win.zip file.sha512sum in MSYS2 MSYS.PortableGit-<version>-64-bit.7z.exe.src submodule in third_party/microsoft_dxheaders (e.g. using GitHub https://github.com/chromium/chromium/tree/<version>/third_party/microsoft_dxheaders).
version with the Chromium version in helium-chromium/chromium_version.txt.third_party/node/update_node_binaries (e.g. using GitHub https://github.com/chromium/chromium/tree/<version>/third_party/node/update_node_binaries).
sha512sum in MSYS2 MSYS.third_party/rust/windows_x86_64_msvc/).
sha512sum in MSYS2 MSYS.patches/ungoogled-chromium/windows/windows-fix-building-with-rust.patch accordingly.RUST_REVISION constant in file tools/rust/update_rust.py in build root.
f7b43542838f0a4a6cfdb17fbeadf45002042a77https://github.com/rust-lang/rust/commit/f7b43542838f0a4a6cfdb17fbeadf45002042a77
RUST_REVISION with the obtained valuedownloads.ini accordingly2025-03-14 (YYYY-mm-dd)https://static.rust-lang.org/dist/<build-date>/rust-nightly-x86_64-pc-windows-msvc.tar.gz
build-date with the obtained valuesha512sum in MSYS2 MSYS.rustc\bin\rustc.exe -V to get rust version stringpatches\ungoogled-chromium\windows\windows-fix-building-with-rust.patch accordinglyhttps://static.rust-lang.org/dist/<build-date>/rust-nightly-i686-pc-windows-msvc.tar.gz
build-date with the obtained valuesha512sum in MSYS2 MSYS.https://static.rust-lang.org/dist/<build-date>/rust-nightly-aarch64-pc-windows-msvc.tar.gz
build-date with the obtained valuesha512sum in MSYS2 MSYS.C++
81.3%
Python
11.4%
NSIS
6.0%
Shell
1.3%