12 Commits

Author SHA1 Message Date
nocode 7730ac7b00 feat(build): add preflight package resolution and fws-dnd package
Add preflight package resolution step in build-offi.sh to validate all profile
packages against pacman repositories before mkarchiso execution. This prevents
'target not found' errors during ISO creation by catching missing packages early
with helpful error messages and recovery instructions.

Introduce fws-dnd package (D&D 5e manager for FWS with GTK4 interface) to the
local package build process in setup-aur.sh. Include PKGBUILD definition and
source tarball.

When package resolution fails, the build now exits with clear feedback pointing
users to run setup-aur.sh to build missing dependencies like fws-dnd.
2026-07-07 21:39:29 +02:00
nocode 7fe54d0791 fix(setup-aur.sh)!: use explicit package list instead of glob for install and publish
Change publish_to_repo() to accept explicit file list via variadic arguments
instead of a directory glob. This prevents re-publishing stale .pkg files
from previous builds that may still exist in BUILD_DIR.

Update build_or_skip() to get the actual list of packages produced by the
current makepkg invocation using --packagelist, filter for .pkg.tar.* files,
verify they exist on disk, and pass only those to pacman -U and publish_to_repo().

This fixes issues where:
- After pkgrel bumps, old .pkg files would cause pacman to receive duplicate
  package names ("repeated target" error)
- Stale packages would be republished over the purge in local-repo
- Optional debug packages would cause errors when not produced

BREAKING CHANGE: publish_to_repo() function signature changed from publish_to_repo(name, directory) to publish_to_repo(name, file1, file2, ...) - callers must pass explicit file paths instead of a directory path
2026-07-03 23:59:32 +02:00
nocode 7d6bba42b2 feat(anaconda): add hostname field to user spoke and fix keyboard layout by territory
Replace keyboard correction logic in kickstart with anaconda package patches:

- Add "Nom de machine" (hostname) field to the User spoke in anaconda GUI
- user.py writes the hostname value to /tmp/fws-hostname for the kickstart %post
- Simplify kickstart to read from /tmp/fws-hostname instead of live hostname
- Fix keyboard layout selection to use full locale (e.g. fr_CH) instead of just language (fr)
  to correctly derive territory-specific keymaps (ch(fr) for Switzerland, not fr for France)
- Remove outdated fix_keyboard() function from kickstart

Also add --network=host flag to podman run in setup-aur.sh to ensure DNS and internet
connectivity through the host stack instead of the bridge (fixes timeout issues on
certain networks with firewalld/NAT).

Bump anaconda pkgrel from 2 to 4.
2026-06-23 10:48:32 +02:00
nocode ee7a5fdaab feat(baseline): add locale generation and rootfs mounting infrastructure
Add locale configuration, systemd service for rootfs mounting, and customization script:

- Add locale.gen to generate en_US.UTF-8 locale required by Anaconda
- Add fws-rootfsbase.service to expose squashfs as /run/rootfsbase for Anaconda LiveOS payload detection
- Add customize_airootfs.sh to run locale-gen during image build
- Add python-iso639 0.1.4 PKGBUILD (local package with correct find() API)
- Add python-langtable 0.0.71 PKGBUILD (local package with list_common_languages())
- Remove python-iso639 and python-langtable from AUR packages due to version/API incompatibilities
- Update LOCAL_BUILD_ORDER to include new local packages
2026-06-17 23:32:46 +02:00
nocode a4e46a4309 feat(anaconda): add python-crypt_r and ostree dependencies for python 3.13+ compatibility
Add python-crypt_r PKGBUILD to provide the crypt module removed in Python 3.13 (PEP 594), required by pyanaconda/core/users.py for password hashing.

Add python-legacy-cgi for the cgi module also removed in Python 3.13, required by python-requests-ftp imported by pyanaconda/core/util.py.

Add ostree to provide the OSTree-1.0 GI namespace required by pyanaconda/rescue.py for the rpm_ostree payload.

Add libblockdev LVM CLI mode configuration to avoid DBus dependency issues with lvmdbusd unavailable in Arch.

Update setup-aur.sh to include python-crypt_r in the local build order before python-meh.
2026-06-17 18:35:12 +02:00
nocode 3f83316fa8 fix(setup-aur): fix variable expansion order in build_or_skip function
Fixed a bash variable expansion bug where $name was being referenced before assignment in a multi-variable local declaration. Changed d assignment to use $1 directly instead of $name to ensure the correct directory path is set. This prevents PKGBUILD lookup failures when processing dependent packages in AUR chains.
2026-06-17 13:42:08 +02:00
nocode fc62c7e9c2 refactor(setup-aur): implement incremental build system for AUR and local packages
Replace the full rebuild approach with an incremental system that skips packages already present in local-repo at the same version. This provides significant performance improvement when iterating on individual packages.

Key changes:
- Add helper functions: pkgbuild_fullver(), repo_has(), publish_to_repo(), and build_or_skip()
- Use shallow git clones (--depth=1) for AUR packages to reduce download time
- Skip package builds if already present in local-repo with matching version
- Always install packages to resolve inter-package dependencies (AUR→AUR chains, anaconda, etc.)
- Consolidate local PKGBUILD building with the new incremental system
- Regenerate only the repo database instead of copying all packages each run
- Update step 4 to regenerate repo database from existing packages in local-repo
2026-06-17 13:21:52 +02:00
nocode 4473f0eee7 feat(pkgbuild): add anaconda and anaconda-widgets packages with dependency ordering
Add PKGBUILD files for anaconda (45.8) and anaconda-widgets (45.8) to support Fedora's Anaconda installer ported to Arch for FWS with liveimg payload.

anaconda-widgets:
- GTK3 UI widgets with GObject introspection
- Extracted from anaconda source as autonomous autotools project
- Versioned on anaconda release

anaconda:
- Main installer with comprehensive dependency set
- Includes note that further iteration needed on real Arch for buildtime deps and Fedora-specific paths
- Removes widgets files (provided by anaconda-widgets package)

Update setup-aur.sh to build local packages in proper dependency order:
- Define LOCAL_BUILD_ORDER array to ensure leaf packages build first
- anaconda builds last (depends on all other local packages)
- Extract build logic into build_local_pkg function
- Fallback to alphabetical scan for future unlisted packages
- This prevents makepkg -s failures when deps are not yet installed
2026-06-17 11:24:10 +02:00
nocode 2420bf2404 feat(build): add podman container support for non-arch linux distributions
Add automatic detection and relaunching of build scripts in an Arch Linux container via podman when running on non-Arch distributions (Fedora, Ubuntu, Debian, etc.).

Key changes:
- Implement host_is_arch() function to detect if running on Arch Linux by checking both pacman availability and /etc/os-release
- When non-Arch host is detected, scripts automatically pull docker.io/library/archlinux:latest and relaunch themselves in rootful podman container with --privileged
- Mount repository at same absolute path inside container so WORK_DIR and out/ directories work transparently
- Set up persistent pacman cache volume (fws-pacman-cache) between runs
- Auto-chown output files back to host user after build completes
- Update pacman config to disable landlock sandbox in containers (similar to WSL workaround)
- Run full pacman -Syu upgrade in container before installing archiso to avoid partial upgrade issues
- Add comprehensive documentation in README about Fedora/non-Arch setup
- Update .gitignore to exclude pkgbuilds/ directory
- Add environnement.md documentation file
2026-06-17 11:05:59 +02:00
nocode de9647a00d chore: migrate from calamares to anaconda installer
Remove Calamares compilation and configuration, replace with Anaconda installer setup.

Changes:
- Remove Calamares-related entries from .gitignore
- Update README with migration status from Calamares to Anaconda
- Rename setup-calamares.sh references to setup-aur.sh
- Remove Calamares packages from package lists
- Add anaconda and liveimg payload packages
- Add Anaconda kickstart configuration (interactive-defaults.ks)
- Update boot sequence documentation: remove Calamares desktop selection, simplify to Openbox live environment
- Remove Calamares-specific troubleshooting entries
- Clean up .xinitrc and .zlogin to remove Calamares launcher
- Update build scripts to reference local repo generically instead of Calamares-specific
2026-06-17 10:33:28 +02:00
nocode c412cd5d33 feat(Anaconda): Local Repo 2026-06-13 02:06:34 +02:00
nocode 05ae9c36c3 refactor(Anaconda)! : Changing the installator to Anaconda
'cause Calamares is a way to difficult for what we want and we want to try something else
2026-06-12 23:31:35 +02:00