Files
UmbraEdit/BUILD_LINUX.md
B.D. Murphy a04eaaa779 house: add multi-platform build infrastructure
- Add MANIFEST.in to include utils/ and setup/ in source distributions
- Add utils/build_all.py - unified multi-platform build orchestrator
  (Linux amd64/arm64, macOS amd64/arm64, Windows amd64/arm64)
- Add BUILD_LINUX.md - Linux build guide with .deb and AppImage options
- Add RELEASE.md - complete release process with versioning (YYYY/MM.####),
  platform support matrix, and release workflow
- Fix .gitignore to exclude UmbraEdit_Projects/, Inner_Demon_1.2a.docm,
  UmbraEdit_deb_Build_Script.txt, requirements.txt, .DS_Store
- All source distributions now include build scripts for Linux packages
2026-11-06 08:03:35 -08:00

3.6 KiB

UmbraEdit - Linux AMD64 Build Guide

UmbraEdit is developed on macOS but builds natively on Linux AMD64 and ARM64. This guide covers building Linux install packages from source.

Source Distribution

The source tarball (umbraedit-2026.11.1.tar.gz) includes everything needed to build Linux packages:

umbraedit-2026.11.1/
├── pyproject.toml          # Project metadata & dependencies
├── UmbraEdit.py            # Application entry point
├── pkgutils.py             # Packaging utility
├── run_tests.py            # Test runner
├── setup/                  # Packaging assets
│   ├── data/               # .desktop file, MIME type XML
│   ├── macos/              # macOS-specific packaging
│   └── windows/            # Windows-specific packaging
├── utils/                  # Build scripts
│   ├── build_debian.py     # .deb package builder
│   ├── build_appimage.py   # AppImage builder
│   ├── build_all.py        # Multi-platform build orchestrator
│   └── ...
├── umbraedit/              # Application source code
└── tests/                  # Test suite

Prerequisites on Linux

Debian/Ubuntu

sudo apt-get update
sudo apt-get install \
    python3 python3-pip \
    python3-pyqt6 python3-pyqt6.qtsvg \
    python3-enchant \
    qt6-image-formats-plugins qt6-svg-plugins \
    dh-python debhelper python3-build python3-setuptools \
    python3-pytest python3-pytestqt python3-pytest-timeout \
    appimagetool

Fedora/RHEL

sudo dnf install \
    python3 python3-pip \
    python3-pyqt6 python3-enchant \
    qt6-qtimageformats qt6-qtsvg \
    python3-build python3-setuptools \
    dpkg rpm-build appimagetool

Arch Linux

sudo pacman -S \
    python python-pip \
    python-pyqt6 python-enchant \
    qt6-imageformats qt6-svg \
    python-build python-setuptools \
    dpkg appimagetool

Build Options

Option 1: Install via Wheel (Simplest)

The pure Python wheel requires no compilation:

pip install umbraedit-2026.11.1-py3-none-any.whl
umbraedit

Option 2: Install from Source Tarball

tar xzf umbraedit-2026.11.1.tar.gz
cd umbraedit-2026.11.1
pip install .
umbraedit

Option 3: Build .deb Package

tar xzf umbraedit-2026.11.1.tar.gz
cd umbraedit-2026.11.1

# Build for Ubuntu Noble (24.04)
python3 utils/build_debian.py --distro noble --build 1

# The .deb will be in dist_deb/
sudo dpkg -i dist_deb/umbraedit_*_amd64.deb

Available distro targets: bookworm, trixie, noble, resolute, stonking, wilma

Option 4: Build AppImage

pip install python-appimage
sudo apt-get install appimagetool

tar xzf umbraedit-2026.11.1.tar.gz
cd umbraedit-2026.11.1

python3 utils/build_appimage.py --linux ubuntu --arch amd64 --python 3.12

chmod +x dist_appimage/umbraedit-2026.11-amd64.AppImage
./dist_appimage/umbraedit-2026.11-amd64.AppImage

Option 5: Build All Linux Packages

tar xzf umbraedit-2026.11.1.tar.gz
cd umbraedit-2026.11.1

python3 utils/build_all.py --platform linux --arch amd64

Project Storage

UmbraEdit projects are stored in plain folders with an nwProject.nwx file. The sample project included in the distribution can be used for testing:

umbraedit  # Opens the welcome dialog
# Select "Sample Project" from the list, or browse to your .nwx file

Version

Current development version: 2026.11.0004

License

GPL-3.0-or-later AND Apache-2.0 AND ISC AND MIT

UmbraEdit is based on novelWrite 2026.02 by Veronica Berglyd Olsen (novelWriter.io), licenced under the same GPL v3.0 license.