From 369237d3dd5faba76478fdb2b389cafbac3bb706 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Fri, 21 Nov 2025 08:44:02 -0800 Subject: [PATCH] Fix push and improve mount messages --- mk/config.mk | 13 +++++++++++++ mk/disk.mk | 26 +++++++++++++------------- mk/repo.mk | 24 ++++++++++++++++-------- 3 files changed, 42 insertions(+), 21 deletions(-) diff --git a/mk/config.mk b/mk/config.mk index 45f43bb3..7c397908 100644 --- a/mk/config.mk +++ b/mk/config.mk @@ -120,6 +120,19 @@ endif # Automatic variables ROOT=$(CURDIR) export RUST_COMPILER_RT_ROOT=$(ROOT)/rust/src/llvm-project/compiler-rt +RUNNING_IN_PODMAN=$(shell [ -f /run/.containerenv ] && echo 1 || echo 0) +ifeq ($(PODMAN_BUILD),1) +ifeq ($(RUNNING_IN_PODMAN),1) +$(info Please unset PODMAN_BUILD=1 in .config!) +endif +endif + +ALLOW_FSTOOLS?=0 +ifeq ($(FSTOOLS_IN_PODMAN),0) +ifeq ($(RUNNING_IN_PODMAN),0) +ALLOW_FSTOOLS=1 +endif +endif ## Userspace variables ifeq ($(ARCH),riscv64gc) diff --git a/mk/disk.mk b/mk/disk.mk index 9702cb9a..d84d8069 100644 --- a/mk/disk.mk +++ b/mk/disk.mk @@ -62,38 +62,38 @@ mount: $(FSTOOLS) FORCE ifeq ($(FSTOOLS_IN_PODMAN),1) $(PODMAN_RUN) make $@ else - mkdir -p $(MOUNT_DIR) + @mkdir -p $(MOUNT_DIR) $(REDOXFS) $(BUILD)/harddrive.img $(MOUNT_DIR) - sleep 2 - pgrep redoxfs + @sleep 2 + @pgrep redoxfs endif mount_extra: $(FSTOOLS) FORCE ifeq ($(FSTOOLS_IN_PODMAN),1) $(PODMAN_RUN) make $@ else - mkdir -p $(MOUNT_DIR) + @mkdir -p $(MOUNT_DIR) $(REDOXFS) $(BUILD)/extra.img $(MOUNT_DIR) - sleep 2 - pgrep redoxfs + @sleep 2 + @pgrep redoxfs endif mount_live: $(FSTOOLS) FORCE ifeq ($(FSTOOLS_IN_PODMAN),1) $(PODMAN_RUN) make $@ else - mkdir -p $(MOUNT_DIR) + @mkdir -p $(MOUNT_DIR) $(REDOXFS) $(BUILD)/redox-live.iso $(MOUNT_DIR) - sleep 2 - pgrep redoxfs + @sleep 2 + @pgrep redoxfs endif unmount: FORCE ifeq ($(FSTOOLS_IN_PODMAN),1) $(PODMAN_RUN) make $@ else - sync - -$(FUMOUNT) $(MOUNT_DIR) || true - rm -rf $(MOUNT_DIR) - -$(FUMOUNT) /tmp/redox_installer || true + @sync + -$(FUMOUNT) $(MOUNT_DIR) + @rm -rf $(MOUNT_DIR) + @-$(FUMOUNT) /tmp/redox_installer 2>/dev/null || true endif diff --git a/mk/repo.mk b/mk/repo.mk index df04615f..9145d227 100644 --- a/mk/repo.mk +++ b/mk/repo.mk @@ -62,17 +62,21 @@ MOUNTED_TAG=$(MOUNT_DIR)~ # Push compiled package into existing image # DO NOT RUN THIS WHILE QEMU ALIVE, THE DISK MIGHT CORRUPT IN DOING SO p.%: $(FSTOOLS_TAG) FORCE -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else +ifeq ($(ALLOW_FSTOOLS),1) @rm -f $(MOUNTED_TAG) @if [ ! -d "$(MOUNT_DIR)" ]; then \ $(MAKE) mount; \ touch $(MOUNTED_TAG); \ fi +endif +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ ALLOW_FSTOOLS=$(FSTOOLS_IN_PODMAN) +else ./target/release/repo push $(foreach f,$(subst $(comma), ,$*),$(f)) "--sysroot=$(MOUNT_DIR)" +endif +ifeq ($(ALLOW_FSTOOLS),1) @if [ -f $(MOUNTED_TAG) ]; then \ - $(MAKE) unmount && rm -f $(MOUNTED_TAG); \ + $(MAKE) unmount && rm -f $(MOUNTED_TAG) && echo "Filesystem unmounted"; \ else echo "Not unmounting by ourself, don't forget to do it"; \ fi endif @@ -83,17 +87,21 @@ pp.%: $(FSTOOLS_TAG) FORCE # Push all recipes specified by the filesystem config push: $(FSTOOLS_TAG) FORCE -ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) make $@ -else +ifeq ($(ALLOW_FSTOOLS),1) @rm -f $(MOUNTED_TAG) @if [ ! -d "$(MOUNT_DIR)" ]; then \ $(MAKE) mount; \ touch $(MOUNTED_TAG); \ fi +endif +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ ALLOW_FSTOOLS=$(FSTOOLS_IN_PODMAN) +else ./target/release/repo push $(COOKBOOK_OPTS) --with-package-deps "--sysroot=$(MOUNT_DIR)" +endif +ifeq ($(ALLOW_FSTOOLS),1) @if [ -f $(MOUNTED_TAG) ]; then \ - $(MAKE) unmount && rm -f $(MOUNTED_TAG); \ + $(MAKE) unmount && rm -f $(MOUNTED_TAG) && echo "Filesystem unmounted"; \ else echo "Not unmounting by ourself, don't forget to do it"; \ fi endif