Open EDA AppImages
Portable, single-file AppImages for open-source EDA tools. No installation. No package manager. No container. Download one file, chmod +x, run.
Built automatically from official upstream sources, so you always get a clean, reproducible binary.
Why this exists
-
EDA tools move fast.
apt install <your-tool>gives you whatever your distro froze 1–2 years ago. -
Building them from source is painful. Multiple dependencies, fiddly configure steps, and one small mistake sends you back through the whole process again. After you’re done, your system is littered with build tooling you’ll probably never use again. Removing all of that cleanly later is another manual chore.
An AppImage solves both problems: one file, no installation, no residue.
How to trust this
Don’t trust the repo. Don’t trust the maintainer. Audit the workflows yourself and trust what you see.
Everything is public:
- The build workflows are readable YAML.
- The build logs are public for every release.
- Every release ships with a SHA256 checksum.
There is no human intervention between source and release. Every step — fetching the upstream source, building, bundling dependencies, verifying the AppImage, computing the checksum, and publishing the release — runs on GitHub-hosted runners via GitHub Actions. The maintainer doesn’t touch the binaries. Neither should you have to.
Transparency is the whole point. You can verify every step.
Requirements
Even packaging has its limits:
- glibc 2.35 or newer — Ubuntu 22.04+, Debian 12+, Fedora 36+. We are actively working on lowering this.
- FUSE 2 — needed only for direct execution. Most distros ship it; if yours doesn’t, install
libfuse2/fuse2, or run with--appimage-extract-and-runand skip FUSE entirely. - Architecture — x86_64 and aarch64 only. More to come.
Available tools
| Tool | Versions | Architectures | Source | Release channel | Details |
|---|---|---|---|---|---|
| ABC | Rolling | x86_64, aarch64 | berkeley-abc/abc | Updated every ~10 days (rolling tag abc-appimage) | ABC page → |
| Yosys | 0.68 and newer | x86_64, aarch64 | YosysHQ/yosys | Tagged per version (yosys-v<version>) | Yosys page → |
| OpenSTA | Rolling | x86_64, aarch64 | parallaxsw/OpenSTA | Updated monthly (rolling tag opensta-appimage) | OpenSTA page → |
| Surelog | v1.81 and newer | x86_64, aarch64 | chipsalliance/Surelog | Tagged per version (surelog-v<version>) | Surelog page → |
| Netgen | 1.5.323 and newer | x86_64, aarch64 | RTimothyEdwards/netgen | Tagged per version (netgen-v<version>) | Netgen page → |
Each tool has a dedicated page covering what the tool is, how to download it, and exactly how it is built and packaged: source, build flags, bundler versions, and checks.
- ABC → — logic synthesis and formal verification
- Yosys → — RTL synthesis framework
- OpenSTA → — gate-level static timing analysis
- Surelog → — SystemVerilog 2017 parser, elaborator and UHDM compiler
- Netgen → — LVS (layout vs. schematic) netlist comparison
- Symlinks and AppImage Management → — optional: keep every AppImage in
~/AppImagesand expose it on yourPATHvia~/.local/binwhen you want to call tools by name
Follow the releases page or the Discussions for updates.
Quick start
Pick the tool and version you want, then go to its release page and download the AppImage for your architecture.
Yosys
# Download
wget https://github.com/MrAbhi19/open-eda-appimage/releases/download/yosys-v0.69/yosys-0.69-x86_64.AppImage
# Make executable and run
chmod +x yosys-0.69-x86_64.AppImage
./yosys-0.69-x86_64.AppImage --version
# Verify the download
sha256sum -c yosys-0.69-x86_64.AppImage.sha256
ABC
# Download
wget https://github.com/MrAbhi19/open-eda-appimage/releases/download/abc-appimage/abc-x86_64.AppImage
# Make executable and run
chmod +x abc-x86_64.AppImage
./abc-x86_64.AppImage
# Verify the download
sha256sum -c abc-x86_64.AppImage.sha256
OpenSTA
# Download
wget https://github.com/MrAbhi19/open-eda-appimage/releases/download/opensta-appimage/opensta-x86_64.AppImage
# Make executable and run
chmod +x opensta-x86_64.AppImage
./opensta-x86_64.AppImage -version
# Verify the download
sha256sum -c opensta-x86_64.AppImage.sha256
Surelog
# Download
wget https://github.com/MrAbhi19/open-eda-appimage/releases/download/surelog-v1.81/surelog-v1.81-x86_64.AppImage
# Make executable and run
chmod +x surelog-v1.81-x86_64.AppImage
./surelog-v1.81-x86_64.AppImage --version
# Verify the download
sha256sum -c surelog-v1.81-x86_64.AppImage.sha256
Netgen
# Download
wget https://github.com/MrAbhi19/open-eda-appimage/releases/download/netgen-v1.5.323/netgen-1.5.323-x86_64.AppImage
# Make executable and run (batch mode; omit -batch for the Tk console)
chmod +x netgen-1.5.323-x86_64.AppImage
echo "quit" | ./netgen-1.5.323-x86_64.AppImage -batch
# Verify the download
sha256sum -c netgen-1.5.323-x86_64.AppImage.sha256
For ARM64 devices, replace x86_64 with aarch64 in the filenames. See the ABC, Yosys, OpenSTA, Surelog and Netgen pages for details.
If you want to call the tools by name (optional)
Running the AppImage directly — ./yosys-0.69-x86_64.AppImage … — is the whole point of this project, and it’s enough on its own. You do not need to install anything, and you do not need symlinks.
But many EDA flows and scripts don’t know about AppImages. They invoke tools by bare name: a Makefile that runs yosys …, a Tcl flow that shells out to abc, an OpenROAD script that calls sta, a CI job that expects surelog on PATH. In those cases you have two options:
- Point the flow at the AppImage explicitly — edit the script or set a variable so it runs
~/AppImages/yosys-0.69-x86_64.AppImageinstead ofyosys. Works, but it means touching every script. - Symlink the AppImage onto your
PATH— drop a link in~/.local/bin/yosysonce, and every script, Makefile and flow that saysyosysjust works, unmodified.
The second option is the reason the Symlinks and AppImage Management page exists. It is a convenience, not a requirement — use it if you want the “call by name” experience, skip it if you’re happy invoking the AppImage directly.
Sketch of the setup, if you want it:
# Put AppImages in one place, symlink them into ~/.local/bin
mkdir -p ~/AppImages ~/.local/bin
mv yosys-0.69-x86_64.AppImage ~/AppImages/
ln -s ~/AppImages/yosys-0.69-x86_64.AppImage ~/.local/bin/yosys
# Now flows that say "yosys" work as-is
yosys --version
The full walkthrough — including a Yosys end-to-end demo, what happens to a symlink when the AppImage is upgraded or deleted, and how to remove symlinks cleanly — is on the Symlinks and AppImage Management page.
How releases work
Each tool has its own workflow under .github/workflows/.
Each workflow:
- Fetches the upstream source: the official release tarball for Yosys and Netgen, the tagged release (with git submodules) for Surelog, and the latest commit for ABC and OpenSTA
- Builds natively on Ubuntu 22.04 (x86_64) and Ubuntu 22.04 ARM (aarch64)
- Bundles dependencies with linuxdeploy and packs the AppImage (zstd-compressed for Yosys, ABC and OpenSTA)
- Smoke tests the AppImage. Beyond that:
- ABC and OpenSTA also check for broken symlinks and missing shared libraries, and OpenSTA additionally runs a Tcl round-trip to exercise its bundled Tcl runtime.
- Surelog and Netgen audit the ELF binaries inside the AppImage and fail the build if any shared library leaks in from the host instead of being bundled (only glibc and a short base-system allowlist are permitted). Netgen also checks that the bundled Tcl/Tk script libraries are present and starts in batch mode to exercise them.
- Publishes to GitHub Releases with a SHA256 checksum
Yosys additionally has a test workflow that downloads the published AppImage and synthesizes the picorv32 RISC-V core with it.
Build logs are public in the Actions tab.
The exact build flags, dependency lists, and bundling decisions for each tool are documented on its dedicated page — see ABC, Yosys, OpenSTA, Surelog and Netgen.
Unofficial
These are unofficial repackagings. Each tool retains its upstream license and is maintained by its own team.
- Bug in the tool itself? Report it upstream.
- Bug in the packaging? Open an issue here.