a0244075e7
Phase 1 (Critical): - Fix broken config includes: redbear-minimal -> redbear-mini in wifi/bt experimental configs - Fix 05_boot-essential.target dependency: 00_base -> 04_drivers for correct boot ordering - Fix IOMMU service dependency: 00_base -> 05_boot-essential - Fix firmware-loader dependency: 00_base -> 05_boot-essential - Fix messagebus shell: /usr/bin/zsh -> /usr/bin/false (security) - Add offline gate to fetch-firmware.sh (REPO_OFFLINE=1 blocks network access) - Add --upstream gate to fetch-all-sources.sh (network access requires explicit opt-in) - Gate U-Boot wget calls in mk/qemu.mk with REPO_OFFLINE check - Fix patch-inclusion-gate.sh: rewrite from Python deps to pure shell implementation - Fix build-redbear.sh: remove direct patch application, let repo fetch handle it atomically Phase 2 (High): - Increase redbear-full filesystem_size: 4096 -> 8192 MiB for KDE desktop - Deprecate redbear-greeter-services.toml (orphaned, not included by any config) - Add cascade rebuild target to Makefile (make cascade.<package>) - Gate cargo-update.sh with REDBEAR_ALLOW_UPSTREAM - Add deprecation notice to apply-patches.sh - Make protected recipe list data-driven via config/protected-recipes.toml - Replace 127-entry hardcoded Rust matches! with TOML config file reader Phase 3 (Medium): - Fix 5 phantom doc references in local/AGENTS.md (retired/removed docs) - Fix stale config names: redbear-minimal -> redbear-mini across scripts - Fix duplicate references in docs/README.md - Fix run_full.sh and run_mini.sh: hardcoded paths -> relative paths + error handling
121 lines
4.1 KiB
Makefile
121 lines
4.1 KiB
Makefile
# Configuration file with the commands configuration of the Red Bear OS image
|
|
|
|
$(BUILD)/harddrive.img: $(FSTOOLS) $(REPO_TAG)
|
|
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
|
$(PODMAN_RUN) make $@
|
|
else
|
|
mkdir -p $(BUILD)
|
|
$(FUMOUNT) $(MOUNT_DIR) 2>/dev/null || echo "Warning: failed to unmount $(MOUNT_DIR) (may not have been mounted)"
|
|
$(FUMOUNT) /tmp/redox_installer 2>/dev/null || echo "Warning: failed to unmount /tmp/redox_installer (may not have been mounted)"
|
|
rm -rf $@ $@.partial $(MOUNT_DIR)
|
|
FILESYSTEM_SIZE=$(FILESYSTEM_SIZE) && \
|
|
if [ -z "$$FILESYSTEM_SIZE" ] ; then \
|
|
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
|
|
fi && \
|
|
truncate -s "$$FILESYSTEM_SIZE"m $@.partial
|
|
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) --no-mount -c $(FILESYSTEM_CONFIG) $@.partial
|
|
mv $@.partial $@
|
|
endif
|
|
|
|
$(LIVE_IMG): $(FSTOOLS) $(REPO_TAG) sources
|
|
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
|
$(PODMAN_RUN) make $@
|
|
else
|
|
mkdir -p $(LIVE_BUILD)
|
|
rm -rf $@ $@.partial
|
|
$(FUMOUNT) /tmp/redox_installer 2>/dev/null || echo "Warning: failed to unmount /tmp/redox_installer (may not have been mounted)"
|
|
FILESYSTEM_SIZE=$(FILESYSTEM_SIZE) && \
|
|
if [ -z "$$FILESYSTEM_SIZE" ] ; then \
|
|
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
|
|
fi && \
|
|
truncate -s "$$FILESYSTEM_SIZE"m $@.partial
|
|
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) --no-mount -c $(FILESYSTEM_CONFIG) --write-bootloader="$(LIVE_BOOTLOADER)" --live $@.partial
|
|
mv $@.partial $@
|
|
endif
|
|
|
|
$(LIVE_ISO): $(LIVE_IMG) redbear.ipxe
|
|
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
|
$(PODMAN_RUN) make $@
|
|
else
|
|
mkdir -p $(LIVE_BUILD)
|
|
rm -rf $@ $@.partial
|
|
cp "$(LIVE_IMG)" $@.partial
|
|
mv $@.partial $@
|
|
cp redbear.ipxe $(LIVE_IPXE)
|
|
endif
|
|
@echo "NOTE: $(LIVE_ISO) is a raw disk image with iPXE boot, not an ISO9660 image."
|
|
@echo " Use 'make live' for the full live image with bootloader embedded."
|
|
|
|
$(BUILD)/filesystem.img: $(FSTOOLS) $(REPO_TAG)
|
|
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
|
$(PODMAN_RUN) make $@
|
|
else
|
|
mkdir -p $(BUILD)
|
|
$(FUMOUNT) $(MOUNT_DIR) 2>/dev/null || echo "Warning: failed to unmount $(MOUNT_DIR) (may not have been mounted)"
|
|
rm -rf $@ $@.partial $(MOUNT_DIR)
|
|
$(FUMOUNT) /tmp/redox_installer 2>/dev/null || echo "Warning: failed to unmount /tmp/redox_installer (may not have been mounted)"
|
|
FILESYSTEM_SIZE=$(FILESYSTEM_SIZE) && \
|
|
if [ -z "$$FILESYSTEM_SIZE" ] ; then \
|
|
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
|
|
fi && \
|
|
truncate -s "$$FILESYSTEM_SIZE"m $@.partial
|
|
$(REDOXFS_MKFS) $(REDOXFS_MKFS_FLAGS) $@.partial
|
|
mkdir -p $(MOUNT_DIR)
|
|
$(REDOXFS) $@.partial $(MOUNT_DIR)
|
|
sleep 1
|
|
pgrep redoxfs
|
|
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $(MOUNT_DIR)
|
|
sync
|
|
$(FUMOUNT) $(MOUNT_DIR) 2>/dev/null || echo "Warning: failed to unmount $(MOUNT_DIR) after install"
|
|
rm -rf $(MOUNT_DIR)
|
|
mv $@.partial $@
|
|
endif
|
|
|
|
mount: $(FSTOOLS) FORCE
|
|
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
|
$(PODMAN_RUN) make $@
|
|
else
|
|
@mkdir -p $(MOUNT_DIR)
|
|
$(REDOXFS) $(BUILD)/harddrive.img $(MOUNT_DIR)
|
|
@sleep 2
|
|
@echo "\033[1;36;49mharddrive.img mounted ($$(pgrep redoxfs))\033[0m"
|
|
endif
|
|
|
|
mount_extra: $(FSTOOLS) FORCE
|
|
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
|
$(PODMAN_RUN) make $@
|
|
else
|
|
@mkdir -p $(MOUNT_DIR)
|
|
$(REDOXFS) $(BUILD)/extra.img $(MOUNT_DIR)
|
|
@sleep 2
|
|
@echo "\033[1;36;49mextra.img mounted ($$(pgrep redoxfs))\033[0m"
|
|
endif
|
|
|
|
mount_live: $(FSTOOLS) FORCE
|
|
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
|
$(PODMAN_RUN) make $@
|
|
else
|
|
@mkdir -p $(MOUNT_DIR)
|
|
$(REDOXFS) $(LIVE_IMG) $(MOUNT_DIR)
|
|
@sleep 2
|
|
@echo "\033[1;36;49m$(notdir $(LIVE_IMG)) mounted ($$(pgrep redoxfs))\033[0m"
|
|
endif
|
|
|
|
unmount: FORCE
|
|
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
|
$(PODMAN_RUN) make $@
|
|
else
|
|
@sync
|
|
$(FUMOUNT) $(MOUNT_DIR) 2>/dev/null || echo "Warning: failed to unmount $(MOUNT_DIR)"
|
|
@rm -rf $(MOUNT_DIR)
|
|
@$(FUMOUNT) /tmp/redox_installer 2>/dev/null || echo "Warning: failed to unmount /tmp/redox_installer"
|
|
@echo "\033[1;36;49mFilesystem unmounted\033[0m"
|
|
endif
|
|
|
|
validate-init: $(BUILD)/harddrive.img
|
|
@scripts/validate-init-services.sh $(BUILD)/harddrive.img
|
|
|
|
validate: lint-config validate-init
|
|
@scripts/validate-file-ownership.sh
|
|
@echo "\033[1;36;49mBuild validation passed\033[0m"
|