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

146 lines
3.6 KiB
Markdown

# 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
```bash
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
```bash
sudo dnf install \
python3 python3-pip \
python3-pyqt6 python3-enchant \
qt6-qtimageformats qt6-qtsvg \
python3-build python3-setuptools \
dpkg rpm-build appimagetool
```
### Arch Linux
```bash
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:
```bash
pip install umbraedit-2026.11.1-py3-none-any.whl
umbraedit
```
### Option 2: Install from Source Tarball
```bash
tar xzf umbraedit-2026.11.1.tar.gz
cd umbraedit-2026.11.1
pip install .
umbraedit
```
### Option 3: Build .deb Package
```bash
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
```bash
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
```bash
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:
```bash
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.