Skip to content

Modernize the AppImage builder for eSim 2.6 #645

Description

@VaradhaCodes

Background

The repository contains an AppImage builder originally contributed for eSim 2.5. It packages PyQt5, KiCad 6.0.11, ngspice 35, OpenModelica, GHDL, Verilator, Makerchip, and their supporting libraries.

eSim 2.6 now uses PyQt6, supports newer KiCad versions, and uses ngspice 45.2 with updated mixed-signal patches. Configuration paths, generated symbol libraries, simulator paths, and per-user data handling have also changed.

The existing AppImage builder is preserved in the repository, but it has not been shown to build or run eSim 2.6. It is therefore excluded from the normal eSim 2.6 Ubuntu release archive and is not currently listed as a supported installation method.

Goal

Update the existing AppImage builder to produce a working portable image of eSim 2.6.

The preserved implementation should be used as the starting point. The updated builder should reuse the repository's existing installer and toolchain logic wherever possible instead of maintaining separate dependency rules.

Requirements

The updated builder should:

  • build from the eSim 2.6 release tag or an agreed commit;
  • launch the PyQt6 application without modifying production source files during packaging;
  • include a KiCad version supported by eSim 2.6;
  • package ngspice 45.2 with the matching mixed-signal patches from the repository;
  • support the static and generated symbol libraries used by native installations;
  • keep user configuration and generated models outside the read-only AppImage;
  • avoid relying on paths or dependencies from the host machine;
  • record the source and checksum of downloaded dependencies;
  • document the licenses of bundled third-party components;
  • produce a versioned AppImage and SHA-256 checksum;
  • provide repeatable smoke tests for application launch, KiCad handoff, ngspice simulation, and the supported HDL tools;
  • document supported Linux distributions, FUSE requirements, and known limitations.

The native Ubuntu installer, Windows installer, Flatpak, and Docker packaging should remain independent.

Acceptance criteria

  • The AppImage can be built from a clean, documented Linux environment.
  • The output identifies the eSim tag or commit from which it was built.
  • eSim launches successfully using PyQt6.
  • KiCad can be opened through eSim for the same project.
  • A bundled example can be netlisted, simulated, and plotted.
  • The packaged HDL tools work without relying on host-only paths.
  • Static libraries load correctly.
  • Generated libraries and user configuration remain writable across launches.
  • The AppImage contains no developer caches, local models, test output, or repository metadata.
  • Another contributor can reproduce the AppImage and checksum using the documentation.

Useful starting points

appimage/README.md
appimage/build-appimage.sh
Ubuntu/bootstrap.sh
Ubuntu/install-eSim.sh
make-release.sh
PACKAGING.md
library/kicadLibrary/
src/configuration/paths.py
src/maker/ToolchainCheck.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions