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.
Free code signing provided by SignPath.io, certificate by SignPath Foundation
Committers, reviewers and approvers: @imputnet
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.
- Make sure to read through the entire section and install/configure all the required components.
 - If your Visual Studio is installed in a directory other than the default, you'll need to set a few environment variables to point the toolchains to your installation path. (Copied from instructions for Electron)
vs2019_install = DRIVE:\path\to\Microsoft Visual Studio\2019\Community(replace2019andCommunitywith 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.
- Setup the following:
- 7-Zip
 - Python 3.8 or above
- Can be installed using WinGet or the Microsoft Store.
 - If you don't plan on using the Microsoft Store version of Python:
- Check "Add python.exe to PATH" before install.
 - At the end of the Python installer, click the button to lift the 
MAX_PATHlength restriction. - Disable the 
python3.exeandpython.exealiases inSettings > 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. - Ensure that your Python directory either has a copy of Python named "python3.exe" or a symlink linking to the Python executable.
 
 - The 
httplib2module at version 0.22.0. This can be installed usingpip install httplib2==0.22.0. 
 - Make sure to lift the 
MAX_PATHlength restriction, either by clicking the button at the end of the Python installer or by following these instructions. - Git (to fetch all required ungoogled-chromium scripts)
- During setup, make sure "Git from the command line and also from 3rd-party software" is selected. This is usually the recommended option.
 
 
 
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.pyA 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:
- If the build fails while downloading the Chromium source code (which is during 
build.py), it can be fixed by removingbuild\download_cacheand re-running the build instructions. - If the build fails at any other point during 
build.py, it can be fixed by removing everything underbuildother thanbuild\download_cacheand 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.
- Setup MSYS2
 - Run the following in a "MSYS2 MSYS" shell:
 
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- Start 
Developer Command Prompt for VSandMSYS2 MSYSshell and navigate to source folderDeveloper Command Prompt for VScd c:\path\to\repo\helium-windows
MSYS2 MSYScd /path/to/repo/helium-windows- You can use Git Bash to determine the path to this repo
 - Or, you can find it yourself via 
/<drive letter>/<path with forward slashes> 
 - Clone sources
Developer Command Prompt for VSpython3 helium-chromium\utils\clone.py -o build\src
 - Check for rust version change (see below)
 - Update pruning list
Developer Command Prompt for VSpython3 helium-chromium\devutils\update_lists.py -t build\src --domain-regex helium-chromium\domain_regex.list
 - Update patches
MSYS2 MSYS- Setup patches and shell to update patches
./devutils/update_patches.sh mergesource devutils/set_quilt_vars.sh
 - Go into the source tree
cd build/src
 - Use quilt to refresh patches. See ungoogled-chromium's docs/developing.md section "Updating patches" for more details
 - Go back to repo root
cd ../..
 - Remove all patches introduced by helium-chromium
./devutils/update_patches.sh unmerge
 - Sanity checking for consistency in series file
./devutils/check_patch_files.sh
 
 - Setup patches and shell to update patches
 - Use Git to add changes and commit
 
NOTE: For all steps, update downloads.ini accordingly.
- Check the LLVM GitHub for the latest version of LLVM.
- Download 
LLVM-*-win64.exefile. - Get the SHA-512 checksum using 
sha512suminMSYS2 MSYS. 
 - Download 
 - Check the esbuild version in file 
build/src/third_party/devtools-frontend/src/DEPSand find the closest release in the esbuild GitHub to it.- Example: 
version:[email protected]should be0.24.0 
 - Example: 
 - Check the ninja version in file 
build/src/third_party/devtools-frontend/src/DEPSand find the closest release in the ninja GitHub to it.- Download the 
ninja-win.zipfile. - Get the SHA-512 checksum using 
sha512suminMSYS2 MSYS. 
 - Download the 
 - Check the Git GitHub for the latest version of Git.
- Get the SHA-256 checksum for 
PortableGit-<version>-64-bit.7z.exe. 
 - Get the SHA-256 checksum for 
 - Check for commit hash changes of 
srcsubmodule inthird_party/microsoft_dxheaders(e.g. using GitHubhttps://github.com/chromium/chromium/tree/<version>/third_party/microsoft_dxheaders).- Replace 
versionwith the Chromium version inhelium-chromium/chromium_version.txt. 
 - Replace 
 - Check the node version changes in 
third_party/node/update_node_binaries(e.g. using GitHubhttps://github.com/chromium/chromium/tree/<version>/third_party/node/update_node_binaries).- Download the "Standalone Binary" version from the NodeJS website.
 - Get the SHA-512 checksum using 
sha512suminMSYS2 MSYS. 
 - Check for version changes of windows rust crate (
third_party/rust/windows_x86_64_msvc/).- Download rust crate zip file.
 - Get the SHA-512 checksum using 
sha512suminMSYS2 MSYS. - Update 
patches/ungoogled-chromium/windows/windows-fix-building-with-rust.patchaccordingly. 
 
- Check 
RUST_REVISIONconstant in filetools/rust/update_rust.pyin build root.- Example: Revision could be 
f7b43542838f0a4a6cfdb17fbeadf45002042a77 
 - Example: Revision could be 
 - Get date for nightly rust build from the Rust GitHub page: 
https://github.com/rust-lang/rust/commit/f7b43542838f0a4a6cfdb17fbeadf45002042a77- Replace 
RUST_REVISIONwith the obtained value - Adapt 
downloads.iniaccordingly 
- Example: The above revision corresponds to the nightly build date 
2025-03-14(YYYY-mm-dd) 
 - Replace 
 - Download nightly rust build from: 
https://static.rust-lang.org/dist/<build-date>/rust-nightly-x86_64-pc-windows-msvc.tar.gz- Replace 
build-datewith the obtained value - Get the SHA-512 checksum using 
sha512suminMSYS2 MSYS. - Extract archive
 - Execute 
rustc\bin\rustc.exe -Vto get rust version string - Adapt 
patches\ungoogled-chromium\windows\windows-fix-building-with-rust.patchaccordingly 
 - Replace 
 - Download nightly rust build from: 
https://static.rust-lang.org/dist/<build-date>/rust-nightly-i686-pc-windows-msvc.tar.gz- Replace 
build-datewith the obtained value - Get the SHA-512 checksum using 
sha512suminMSYS2 MSYS. 
 - Replace 
 - Download nightly rust build from: 
https://static.rust-lang.org/dist/<build-date>/rust-nightly-aarch64-pc-windows-msvc.tar.gz- Replace 
build-datewith the obtained value - Get the SHA-512 checksum using 
sha512suminMSYS2 MSYS. 
 - Replace