- docs/: new 13-page Jekyll site with Just the Docs theme - Home, Building, Installer, Packages, CI/CD, Development - Desktop Environments (with GNOME joke), Wallpapers, Launcher - Overlays, Root Overlay, Live Overlay - .github/workflows/pages.yml: build & deploy docs from docs/ on push to master (only when docs/ changes) - .github/workflows/build.yml: temporarily disable Internet Archive upload (if: false) until ISO is stable - live-overlay/settings.conf: add instances section for init + desktop packagechooser instances - live-overlay/modules/packagechooser_init.conf: init system selector (OpenRC, Runit, S6, Dinit) via netinstall-add method - live-overlay/modules/packagechooser_desktop.conf: DE selector (Plasma, Xfce, Cinnamon, MATE, LXQt, i3, Sway, Hyprland + No Desktop) via legacy method - README.md, AGENTS.md: fix sudo buildiso -> sudo ./buildiso, add note about system buildiso lacking --overwrite='*' - .gitignore: add docs/_site/
87 lines
3.1 KiB
Markdown
87 lines
3.1 KiB
Markdown
---
|
|
title: Development
|
|
layout: default
|
|
nav_order: 6
|
|
---
|
|
|
|
# Development
|
|
|
|
## Critical gotchas
|
|
|
|
### `./buildiso` vs `buildiso`
|
|
|
|
Always use the repo's `./buildiso`, **not** the system Artix `/usr/bin/buildiso`. The system version lacks `--overwrite='*'` and will fail with file conflicts between `calamares` and `calamares-branding-antergos-next`.
|
|
|
|
### `sudo -E` is required
|
|
|
|
Without `-E`, `WORKSPACE_DIR` is stripped and `load_profile()` returns empty `HAS_LIVE`/`LIVEUSER`, causing build failures.
|
|
|
|
### Pacman config must be user-overridden
|
|
|
|
`buildiso` reads from `~/.config/artools/pacman.conf.d/iso-x86_64.conf`. If missing, it falls back to the Artix default at `/usr/share/artools/pacman.conf.d/iso-x86_64.conf` which lacks `[antergos-pkgs]`.
|
|
|
|
```bash
|
|
mkdir -p ~/.config/artools/pacman.conf.d
|
|
cp pacman.conf.d/iso-x86_64.conf ~/.config/artools/pacman.conf.d/
|
|
```
|
|
|
|
### Squashfs compression
|
|
|
|
If `$COMPRESSION` is unset in config, `mksquashfs` produces a sparse zero file instead of a valid squashfs. Always verify compression is set, or remove stale images before retry.
|
|
|
|
### Calamares module precedence
|
|
|
|
`/etc/calamares/modules/` overrides `/usr/share/calamares/modules/`. Live-overlay online/offline directories override both.
|
|
|
|
### Live-overlay is not overlay-mounted
|
|
|
|
Live-overlay files are copied via `cp -LR` in `make_livefs()`. Deleting a file from live-overlay exposes the package version, not hides it. Use `NoDisplay=true` in `.desktop` files instead.
|
|
|
|
### `plasma-wayland-session` does not exist on Artix
|
|
|
|
Artix bundles the Wayland session into `plasma-workspace` itself. Do not add it to package lists.
|
|
|
|
### File conflicts
|
|
|
|
`calamares` and `calamares-branding-antergos-next` both install to `/usr/share/calamares/branding/default/`. Handled by `--overwrite='*'`.
|
|
|
|
### `calamares-next.sh SetConfig()`
|
|
|
|
Must `rm -f` the symlink at `/etc/calamares/settings.conf` before `cp`, otherwise `cp` follows the symlink and overwrites the offline config file instead of replacing it.
|
|
|
|
### Do not push commits while IA keys are set
|
|
|
|
Test ISOs manually first. IA credentials are set as repo secrets and will trigger an upload on push to master.
|
|
|
|
## Profile structure
|
|
|
|
```
|
|
iso-profiles/
|
|
├── antergos/
|
|
│ ├── profile.yaml # Packages, services (rootfs + livefs)
|
|
│ ├── root-overlay/ # Merged into squashfs rootfs
|
|
│ └── live-overlay/ # Merged into live environment
|
|
└── common/
|
|
└── common.yaml # Shared base packages
|
|
```
|
|
|
|
## Building locally
|
|
|
|
```bash
|
|
export WORKSPACE_DIR="$PWD"
|
|
sudo -E ./buildiso -p antergos
|
|
```
|
|
|
|
### A Note to the "Branding Police"
|
|
|
|
If you came here to hate and you're about to type "why are you using Antergos's branding" — pack your bags and go to **Manjaro**. We have Dustin's blessing. We are respectful. We are not them. Move on.
|
|
|
|
## Testing
|
|
|
|
Boot the resulting ISO in a VM. Verify:
|
|
- Wayland is the default display server (SDDM session is `plasma.desktop`)
|
|
- No "Install Artix Linux" entry in the app menu
|
|
- Wallpaper is set on first login
|
|
- Online mode: init selector + DE selector both work
|
|
- Slideshow renders correctly
|