=============================================================================
AidaIDE for Linux  (x86_64 + aarch64 / NVIDIA Jetson)
=============================================================================

This is the source-based Linux release of AidaIDE. One tarball works on
every architecture: the installer creates a Python virtual environment on
the target machine and installs the pinned dependencies there.

Tested targets
  - NVIDIA Jetson Orin Nano / Orin Nano Super (JetPack 6, Ubuntu 22.04,
    Python 3.10, aarch64)
  - Ubuntu 22.04 / 24.04 x86_64
  - Debian 13 x86_64 (Python 3.13)

Requirements
  - Python 3.10 or newer with tkinter
  - Internet access during install (pip downloads dependencies)
  - ~2 GB free disk for the app + virtualenv

System packages
  install.sh apt-installs these for you when it can:

    python3-venv python3-tk python3-dev build-essential pkg-config
    libffi-dev libssl-dev

  If apt is unavailable, or you run with --skip-apt, install the equivalents
  first. build-essential/python3-dev/pkg-config matter more than they look:
  any dependency without a wheel for your Python is compiled from source, and
  the build stops at the first missing compiler with an error that points at
  the package rather than at the toolchain.

  tkinter is the one package apt cannot always get right on its own.
  python3-tk covers the distro's DEFAULT python3 only. If install.sh selects a
  different interpreter - a deadsnakes or pyenv build, or a newer series than
  the one apt calls python3 - the package you need is pythonX.Y-tk for that
  exact version. install.sh now tries that automatically and names it if the
  attempt fails.

Python 3.13 and newer
  Fully supported. Worth knowing what happens underneath: no numpy 1.x
  release ships a wheel for 3.13, so requirements.txt selects numpy 2.x there
  (the <2.0 pin is a PyInstaller constraint for the frozen Windows build and
  does not apply to a source install). On an older interpreter you still get
  numpy 1.26 from a wheel. Either way pip should not need to compile numpy -
  if you see it building numpy from source, the version markers are being
  ignored, which usually means a very old pip: python3 -m pip install -U pip.

-----------------------------------------------------------------------------
Install (on the Jetson / Linux box)
-----------------------------------------------------------------------------
  tar xzf AidaIDE-<version>-linux.tar.gz
  cd AidaIDE-<version>-linux
  ./install.sh

Then run:
  aidaide                      (in a desktop session on the device)
  ssh -X user@jetson aidaide   (GUI forwarded over SSH)

A menu entry ("AidaIDE") is created as well.

-----------------------------------------------------------------------------
Deploy from a Windows PC over SSH
-----------------------------------------------------------------------------
From the AidaIDE repo on Windows:

  DEPLOY_TO_JETSON.bat user@<jetson-ip>

(or: powershell -File DEPLOY_TO_JETSON.ps1 user@<jetson-ip> [-Port 22]
 [-KeyFile path] [-Tarball path])

This copies the tarball over scp and runs install.sh on the device via ssh.

-----------------------------------------------------------------------------
Updating
-----------------------------------------------------------------------------
Run install.sh from a newer tarball (or re-run the deploy script). User
state is preserved: ~/.aidaide (license, vault), app/data, config.json.
The virtualenv is reused, so updates are fast.

-----------------------------------------------------------------------------
Uninstall
-----------------------------------------------------------------------------
  ~/.local/share/aidaide/install.sh --uninstall

Removes the app, venv, launcher, and menu entry. ~/.aidaide is kept.

-----------------------------------------------------------------------------
Notes
-----------------------------------------------------------------------------
  - First launch asks you to create a master key, then for your AidaIDE
    license key (same flow as Windows).
  - The built-in web interface listens on port 5001 on the device.
  - JetPack 5 / Ubuntu 20.04 ships Python 3.8, which is too old. Install
    Python >= 3.10 (e.g. deadsnakes) and pass:  ./install.sh --python python3.10
  - install.sh --help lists all options (--prefix, --skip-apt, --no-desktop,
    --non-interactive, --uninstall).
=============================================================================
