- Python 75.8%
- Shell 22.7%
- C 1.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .github/workflows | ||
| branding | ||
| docs | ||
| kiwi | ||
| packages | ||
| platforms/macbook-neo | ||
| rpm | ||
| scripts | ||
| tools/m1n1-mcp | ||
| .gitattributes | ||
| .gitignore | ||
| README.md | ||
Flux Linux
Flux Linux is a Fedora-based desktop remix scaffold. The current KIWI description supports both a live/install ISO and an EFI disk image profile, following Fedora's image description flow.
Layout
kiwi/ KIWI image description, repo definitions, and image config
packages/ Package include and exclude manifests
rpm/ RPM skeletons for Flux identity and default settings
scripts/ Local build and VM test helpers
branding/ Logos, wallpapers, and Plymouth assets
First Build Loop
Install the build tools on the Fedora host:
sudo dnf install kiwi-cli kiwi-systemdeps kiwi-systemdeps-iso-media \
distribution-gpg-keys createrepo_c rpm-build
Build the live ISO:
./scripts/build-iso.sh
Build the EFI disk image:
./scripts/build-disk.sh
The wrappers build the local Flux RPM repository, regenerate
kiwi/generated/flux-packages.xml from the package manifests, and run
kiwi-ng system build against kiwi/Flux.kiwi with the selected profile.
If you only want to rebuild from an existing build/localrepo, skip the RPM
rebuild:
FLUX_KIWI_BUILD_RPMS=0 ./scripts/build-iso.sh
Use KIWI's isolated boxbuild path when you want the build to run in KIWI's containerized environment:
FLUX_KIWI_ISOLATED=1 ./scripts/build-iso.sh
Boot-test the result:
./scripts/test-in-vm.sh build/Flux-Linux-44-x86_64.iso
The disk image includes Fedora Initial Setup so the first boot can create a regular user account. The installed system also retains the third-party COPR repositories used for Helium Browser, Ghostty, and the CachyOS kernel packages.
Run the local configuration and RPM checks with:
./scripts/check-image.sh
./scripts/build-rpms.sh
CI runs image configuration and Neo wrapper checks separately from RPM builds
for pushes to main and pull requests. The RPM workflow can also be started manually
and saves build/localrepo/ as the downloadable flux-rpm-repository artifact.
CI does not yet build or boot a complete ISO or disk image.
Common Overrides
FLUX_RELEASEVER=44
FLUX_BASEARCH=x86_64
FLUX_RESULTDIR=build
FLUX_ARTIFACT_NAME=
FLUX_KIWI_DIR=kiwi
FLUX_KIWI_PROFILE=Flux-Live
FLUX_KIWI_TYPE=iso
FLUX_KIWI_BUILD_RPMS=1
FLUX_KIWI_CLEAN=1
FLUX_KIWI_ISOLATED=0
FLUX_KIWI_DEBUG=0
FLUX_KIWI_TARGETDIR=build/kiwi-build-flux-live
The default release target is Fedora 44, the latest stable release. Change
FLUX_RELEASEVER when you intentionally build against another Fedora release.
./scripts/build-iso.sh sets FLUX_KIWI_PROFILE=Flux-Live and
FLUX_KIWI_TYPE=iso. ./scripts/build-disk.sh sets
FLUX_KIWI_PROFILE=Flux-Disk and FLUX_KIWI_TYPE=oem. Override either wrapper
by exporting different values before running it.
Bootloader Policy
The live ISO uses Fedora/KIWI's GRUB-based live media boot path. Flux v0.1 still
targets systemd-boot for installed UEFI systems through the post-install helper
packaged by flux-release. See docs/systemd-boot.md for the test notes,
Secure Boot caveat, and helper usage:
sudo flux-convert-to-systemd-boot
MacBook Neo development
The full Neo image is derived from Fedora Asahi Remix 44 Minimal and adds the Flux Niri desktop and Neo component RPMs. Its local build and independent Neo boot validation are still in progress.
The experimental Neo kernel has a separate ARM64 build path:
./scripts/build-neo-kernel.sh
It builds Gravity's pinned Neo kernel and J700 device tree under build/neo/.
See the Neo build guide for dependencies, toolchain
setup, output files, and the remaining bootloader and root filesystem work.
The Neo graphics guide builds Gravity Mesa and an ARM64 Weston development image with the USB console and input fixes.
The Neo Niri diagnostic guide adds Niri, Noctalia
Shell, Ghostty, and the pinned chrono/dots desktop configuration to that
temporary graphics stack.