From 5e2bc438918693d46ddc773a00b217a7008794d5 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Wed, 23 Apr 2025 17:40:56 -0600 Subject: [PATCH] Build installer and redoxfs for host outside of podman --- mk/config.mk | 7 ++++--- mk/disk.mk | 8 ++++---- mk/fstools.mk | 18 ++++++++++++------ 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/mk/config.mk b/mk/config.mk index b677b7938..e742a15a7 100644 --- a/mk/config.mk +++ b/mk/config.mk @@ -84,11 +84,12 @@ else export GNU_TARGET=$(TARGET) endif BUILD=build/$(ARCH)/$(CONFIG_NAME) -FSTOOLS_PATH=build/fstools/bin -INSTALLER=$(FSTOOLS_PATH)/redox_installer +INSTALLER=build/fstools/redox_installer INSTALLER_OPTS= -LIST_PACKAGES=$(FSTOOLS_PATH)/list_packages +LIST_PACKAGES=installer/target/release/list_packages LIST_PACKAGES_OPTS= +REDOXFS=build/fstools/bin/redoxfs +REDOXFS_MKFS=build/fstools/bin/redoxfs-mkfs ifeq ($(REPO_BINARY),0) INSTALLER_OPTS+=--cookbook=cookbook else diff --git a/mk/disk.mk b/mk/disk.mk index 264f4fee1..60831a54f 100644 --- a/mk/disk.mk +++ b/mk/disk.mk @@ -34,9 +34,9 @@ $(BUILD)/filesystem.img: $(FSTOOLS_TAG) $(REPO_TAG) FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \ fi && \ truncate -s "$$FILESYSTEM_SIZE"m $@.partial - $(FSTOOLS_PATH)/redoxfs-mkfs $(REDOXFS_MKFS_FLAGS) $@.partial + $(REDOXFS_MKFS) $(REDOXFS_MKFS_FLAGS) $@.partial mkdir -p $(BUILD)/filesystem/ - $(FSTOOLS_PATH)/redoxfs $@.partial $(BUILD)/filesystem/ + $(REDOXFS) $@.partial $(BUILD)/filesystem/ sleep 1 pgrep redoxfs umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $(BUILD)/filesystem/ @@ -47,13 +47,13 @@ $(BUILD)/filesystem.img: $(FSTOOLS_TAG) $(REPO_TAG) mount: $(FSTOOLS_TAG) FORCE mkdir -p $(BUILD)/filesystem/ - $(FSTOOLS_PATH)/redoxfs $(BUILD)/harddrive.img $(BUILD)/filesystem/ + $(REDOXFS) $(BUILD)/harddrive.img $(BUILD)/filesystem/ sleep 2 pgrep redoxfs mount_extra: $(FSTOOLS_TAG) FORCE mkdir -p $(BUILD)/filesystem/ - $(FSTOOLS_PATH)/redoxfs $(BUILD)/extra.img $(BUILD)/filesystem/ + $(REDOXFS) $(BUILD)/extra.img $(BUILD)/filesystem/ sleep 2 pgrep redoxfs diff --git a/mk/fstools.mk b/mk/fstools.mk index e4baa34fd..fc50ddf40 100644 --- a/mk/fstools.mk +++ b/mk/fstools.mk @@ -2,21 +2,27 @@ fstools: $(FSTOOLS_TAG) -## The installer runs on the host, even when using Podman build -$(FSTOOLS_TAG): cookbook installer redoxfs $(CONTAINER_TAG) +# These tools run inside Podman if it is used, or on the host if Podman is not used +$(FSTOOLS_TAG): cookbook installer build/fstools $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) $(MAKE) $@ else - rm -rf build/fstools - mkdir -p build/fstools $(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release $(HOST_CARGO) build --manifest-path cookbook/pkgar/Cargo.toml --release - $(HOST_CARGO) install --root build/fstools --path installer --bin list_packages --bin redox_installer - $(HOST_CARGO) install --root build/fstools --path redoxfs --bin redoxfs --bin redoxfs-mkfs + $(HOST_CARGO) build --manifest-path installer/Cargo.toml --bin list_packages mkdir -p build touch $@ endif +## The installer and redoxfs run on the host, even when using Podman build +build/fstools: installer redoxfs + rm -rf $@ $@.partial + mkdir -p $@.partial + $(HOST_CARGO) install --root $@.partial --path installer --bin redox_installer + $(HOST_CARGO) install --root $@.partial --path redoxfs --bin redoxfs --bin redoxfs-mkfs + mv $@.partial $@ + touch $@ + fstools_clean: FORCE $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) $(MAKE) $@