diff --git a/mk/disk.mk b/mk/disk.mk index 39b3aa3e2..f972c26b1 100644 --- a/mk/disk.mk +++ b/mk/disk.mk @@ -1,6 +1,9 @@ # Configuration file with the commands configuration of the Redox image $(BUILD)/harddrive.img: $(HOST_FSTOOLS) $(REPO_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else mkdir -p $(BUILD) rm -rf $@ $@.partial -$(FUMOUNT) /tmp/redox_installer || true @@ -11,8 +14,12 @@ $(BUILD)/harddrive.img: $(HOST_FSTOOLS) $(REPO_TAG) truncate -s "$$FILESYSTEM_SIZE"m $@.partial umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $@.partial mv $@.partial $@ +endif $(BUILD)/livedisk.iso: $(HOST_FSTOOLS) $(REPO_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else mkdir -p $(BUILD) rm -rf $@ $@.partial -$(FUMOUNT) /tmp/redox_installer || true @@ -23,8 +30,12 @@ $(BUILD)/livedisk.iso: $(HOST_FSTOOLS) $(REPO_TAG) truncate -s "$$FILESYSTEM_SIZE"m $@.partial umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) --live $@.partial mv $@.partial $@ +endif $(BUILD)/filesystem.img: $(HOST_FSTOOLS) $(REPO_TAG) +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else mkdir -p $(BUILD) -$(FUMOUNT) $(BUILD)/filesystem/ || true rm -rf $@ $@.partial $(BUILD)/filesystem/ @@ -44,6 +55,7 @@ $(BUILD)/filesystem.img: $(HOST_FSTOOLS) $(REPO_TAG) -$(FUMOUNT) $(BUILD)/filesystem/ || true rm -rf $(BUILD)/filesystem/ mv $@.partial $@ +endif mount: $(HOST_FSTOOLS) FORCE mkdir -p $(BUILD)/filesystem/ diff --git a/mk/fstools.mk b/mk/fstools.mk index 125b8cbf7..44a5884d7 100644 --- a/mk/fstools.mk +++ b/mk/fstools.mk @@ -16,12 +16,16 @@ endif ## The installer and redoxfs run on the host, even when using Podman build $(HOST_FSTOOLS): installer redoxfs +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else 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 $@ +endif fstools_clean: FORCE $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) diff --git a/mk/podman.mk b/mk/podman.mk index 2b90894a8..7d249abd4 100644 --- a/mk/podman.mk +++ b/mk/podman.mk @@ -20,12 +20,12 @@ PODMAN_HOME?=$(ROOT)/build/podman PODMAN_VOLUMES?=--volume $(ROOT):$(CONTAINER_WORKDIR)$(PODMAN_VOLUME_FLAG) --volume $(PODMAN_HOME):/root$(PODMAN_VOLUME_FLAG) PODMAN_ENV?=--env PATH=/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env PODMAN_BUILD=0 PODMAN_CONFIG?=--env ARCH=$(ARCH) --env BOARD=$(BOARD) --env CONFIG_NAME=$(CONFIG_NAME) --env FILESYSTEM_CONFIG=$(FILESYSTEM_CONFIG) -PODMAN_OPTIONS?=--rm --workdir $(CONTAINER_WORKDIR) --interactive --tty --env TERM=$(TERM) +PODMAN_OPTIONS?=--rm --workdir $(CONTAINER_WORKDIR) --interactive --tty --env --cap-add SYS_ADMIN --device /dev/fuse TERM=$(TERM) PODMAN_RUN?=podman run $(PODMAN_OPTIONS) $(PODMAN_VOLUMES) $(PODMAN_ENV) $(PODMAN_CONFIG) $(IMAGE_TAG) container_shell: build/container.tag ifeq ($(PODMAN_BUILD),1) - podman run $(PODMAN_VOLUMES) $(PODMAN_OPTIONS) $(PODMAN_ENV) --tty $(IMAGE_TAG) bash + podman run $(PODMAN_VOLUMES) $(PODMAN_OPTIONS) $(PODMAN_ENV) $(IMAGE_TAG) bash else @echo PODMAN_BUILD=$(PODMAN_BUILD), please set it to 1 in mk/config.mk endif