From 20c7e92f0b48212c5ba0d637ea6f1af6f876f4e5 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Tue, 27 May 2025 12:32:59 +0700 Subject: [PATCH 1/8] Fix macos podman build --- mk/ci.mk | 4 ++-- mk/fstools.mk | 2 ++ mk/podman.mk | 12 ++++++------ mk/prefix.mk | 8 ++++++++ mk/repo.mk | 14 +++++++------- podman/redox-base-containerfile | 12 ++++++------ podman/rustinstall.sh | 3 +++ 7 files changed, 34 insertions(+), 21 deletions(-) diff --git a/mk/ci.mk b/mk/ci.mk index 16270a6e7..a8ae10f82 100644 --- a/mk/ci.mk +++ b/mk/ci.mk @@ -24,7 +24,7 @@ minimal minimal-net server desktop demo: FORCE # CI packaging target ci-pkg: prefix $(FSTOOLS_TAG) $(CONTAINER_TAG) FORCE ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else $(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release $(HOST_CARGO) build --manifest-path cookbook/pkgar/Cargo.toml --release @@ -40,7 +40,7 @@ endif # CI toolchain ci-toolchain: $(CONTAINER_TAG) FORCE ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else $(MAKE) PREFIX_BINARY=0 \ "prefix/$(TARGET)/gcc-install.tar.gz" \ diff --git a/mk/fstools.mk b/mk/fstools.mk index 61a850664..7623c53a9 100644 --- a/mk/fstools.mk +++ b/mk/fstools.mk @@ -6,6 +6,7 @@ fstools: $(FSTOOLS_TAG) $(FSTOOLS_TAG): cookbook installer $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else $(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release $(HOST_CARGO) build --manifest-path cookbook/pkgar/Cargo.toml --release @@ -26,6 +27,7 @@ $(HOST_FSTOOLS): installer redoxfs fstools_clean: FORCE $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else $(HOST_CARGO) clean --manifest-path cookbook/Cargo.toml $(HOST_CARGO) clean --manifest-path cookbook/pkgar/Cargo.toml diff --git a/mk/podman.mk b/mk/podman.mk index abd2b1e12..47313ae7c 100644 --- a/mk/podman.mk +++ b/mk/podman.mk @@ -17,10 +17,10 @@ endif ## Podman Home Directory PODMAN_HOME?=$(ROOT)/build/podman ## Podman command with its many arguments -PODMAN_VOLUMES?=--volume $(ROOT):$(CONTAINER_WORKDIR)$(PODMAN_VOLUME_FLAG) --volume $(PODMAN_HOME):/home$(PODMAN_VOLUME_FLAG) -PODMAN_ENV?=--env PATH=/home/poduser/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env PODMAN_BUILD=0 +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) --userns keep-id --user `id -u` --interactive --tty --env TERM=$(TERM) +PODMAN_OPTIONS?=--rm --workdir $(CONTAINER_WORKDIR) --interactive --tty --env TERM=$(TERM) PODMAN_RUN?=podman run $(PODMAN_OPTIONS) $(PODMAN_VOLUMES) $(PODMAN_ENV) $(PODMAN_CONFIG) $(IMAGE_TAG) container_shell: build/container.tag @@ -31,7 +31,7 @@ else endif container_su: FORCE - podman exec --user=0 --latest --interactive --tty bash + podman run $(PODMAN_VOLUMES) --interactive --tty $(IMAGE_TAG) bash container_clean: FORCE rm -f build/container.tag @@ -56,12 +56,12 @@ container_kill: FORCE build/container.tag: $(CONTAINERFILE) ifeq ($(PODMAN_BUILD),1) rm -f build/container.tag - @echo "If podman_home dir cannot be removed, remove with \"sudo rm\"." + -chmod -R 0700 $(PODMAN_HOME) || true -rm -rf $(PODMAN_HOME) || true -podman image rm --force $(IMAGE_TAG) || true mkdir -p $(PODMAN_HOME) @echo "Building Podman image. This may take some time." - sed s/_UID_/`id -u`/ $(CONTAINERFILE) | podman build --file - $(PODMAN_VOLUMES) --tag $(IMAGE_TAG) + cat $(CONTAINERFILE) | podman build --file - $(PODMAN_VOLUMES) --tag $(IMAGE_TAG) @echo "Mapping Podman user space. Please wait." $(PODMAN_RUN) bash -e podman/rustinstall.sh mkdir -p build diff --git a/mk/prefix.mk b/mk/prefix.mk index 09692c736..c737b70d8 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -45,6 +45,7 @@ $(PREFIX)/relibc: $(ROOT)/relibc $(PREFIX)/relibc-install: $(PREFIX)/relibc | $(PREFIX)/rust-install $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else rm -rf "$@.partial" "$@" cp -r "$(PREFIX)/rust-install" "$@.partial" @@ -88,6 +89,7 @@ $(PREFIX)/libtool: $(PREFIX)/libtool-build: $(PREFIX)/libtool $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else mkdir -p "$@.partial" PATH="$(ROOT)/$(PREFIX)/rust-install/bin:$$PATH" && \ @@ -111,6 +113,7 @@ endif $(PREFIX)/sysroot: $(PREFIX)/relibc-install $(PREFIX)/libtool-build $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else cp -r "$(PREFIX)/relibc-install/" "$@" PATH="$(ROOT)/$(PREFIX)/rust-install/bin:$$PATH" && \ @@ -159,6 +162,7 @@ $(PREFIX)/binutils: $(PREFIX)/binutils-$(BINUTILS_BRANCH).tar.bz2 $(PREFIX)/binutils-install: $(PREFIX)/binutils $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else rm -rf "$<-build" "$@.partial" "$@" mkdir -p "$<-build" "$@.partial" @@ -195,6 +199,7 @@ $(PREFIX)/gcc: $(PREFIX)/gcc-$(GCC_BRANCH).tar.bz2 $(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc | $(PREFIX)/binutils-install $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else rm -rf "$<-freestanding-build" "$@.partial" "$@" mkdir -p "$<-freestanding-build" @@ -231,6 +236,7 @@ $(PREFIX)/relibc-freestanding: $(ROOT)/relibc $(PREFIX)/relibc-freestanding-install: $(PREFIX)/relibc-freestanding | $(PREFIX_FREESTANDING_INSTALL) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else rm -rf "$@.partial" "$@" mkdir -p "$@.partial" @@ -250,6 +256,7 @@ endif $(PREFIX)/gcc-install: $(PREFIX)/gcc | $(PREFIX)/relibc-freestanding-install $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else rm -rf "$<-build" "$@.partial" "$@" mkdir -p "$<-build" @@ -292,6 +299,7 @@ $(PREFIX)/gcc-install.tar.gz: $(PREFIX)/gcc-install $(PREFIX)/rust-install: $(ROOT)/rust/configure | $(PREFIX)/gcc-install $(PREFIX)/relibc-freestanding-install $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else rm -rf "$(PREFIX)/rust-build" "$@.partial" "$@" mkdir -p "$(PREFIX)/rust-build" diff --git a/mk/repo.mk b/mk/repo.mk index 3f6ad7872..ff25563ee 100644 --- a/mk/repo.mk +++ b/mk/repo.mk @@ -2,7 +2,7 @@ $(BUILD)/fetch.tag: prefix $(FSTOOLS_TAG) $(FILESYSTEM_CONFIG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else export PATH="$(PREFIX_PATH):$$PATH" && \ PACKAGES="$$($(LIST_PACKAGES) $(LIST_PACKAGES_OPTS) -c $(FILESYSTEM_CONFIG))" && \ @@ -15,7 +15,7 @@ endif $(REPO_TAG): $(BUILD)/fetch.tag $(FSTOOLS_TAG) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else export PATH="$(PREFIX_PATH):$$PATH" && \ export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ @@ -32,7 +32,7 @@ endif # Find recipe find.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else export PATH="$(PREFIX_PATH):$$PATH" && \ export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ @@ -43,7 +43,7 @@ endif # Invoke clean.sh for a single target c.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else export PATH="$(PREFIX_PATH):$$PATH" && \ export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ @@ -54,7 +54,7 @@ endif # Invoke fetch.sh for a single target f.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else export PATH="$(PREFIX_PATH):$$PATH" && \ export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ @@ -65,7 +65,7 @@ endif # Invoke repo.sh for a single target r.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else export PATH="$(PREFIX_PATH):$$PATH" && \ export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ @@ -76,7 +76,7 @@ endif # Invoke unfetch.sh for a single target u.%: $(FSTOOLS_TAG) FORCE ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ + $(PODMAN_RUN) make $@ else export PATH="$(PREFIX_PATH):$$PATH" && \ export COOKBOOK_HOST_SYSROOT="$(ROOT)/$(PREFIX_INSTALL)" && \ diff --git a/podman/redox-base-containerfile b/podman/redox-base-containerfile index 9eb123dd1..db09786f7 100644 --- a/podman/redox-base-containerfile +++ b/podman/redox-base-containerfile @@ -5,10 +5,9 @@ FROM debian:stable-backports # _UID_ must be replaced with the user's uid on host # podman root is mapped to your user id on host during build, # poduser is mapped to your user id during podman run -RUN useradd --create-home --no-log-init --uid _UID_ poduser \ - && chown -R root:root /home \ - && apt-get update \ - && apt-get install -y --no-install-recommends -t stable-backports \ +RUN apt-get update + +RUN apt-get install -y --no-install-recommends -t stable-backports \ ant \ appstream \ appstream-compose \ @@ -36,7 +35,6 @@ RUN useradd --create-home --no-log-init --uid _UID_ poduser \ gtk-doc-tools \ help2man \ intltool \ - libc6-dev-i386 \ libexpat-dev \ libfontconfig1-dev \ libfuse3-dev \ @@ -72,7 +70,6 @@ RUN useradd --create-home --no-log-init --uid _UID_ poduser \ ruby \ scons \ ssh \ - syslinux-utils \ texinfo \ unifdef \ unzip \ @@ -85,3 +82,6 @@ RUN useradd --create-home --no-log-init --uid _UID_ poduser \ zip \ zlib1g-dev \ zstd + +RUN if [ "$(dpkg --print-architecture)" = "amd64" ]; then \ + apt-get install -y --no-install-recommends libc6-dev-i386 syslinux-utils; diff --git a/podman/rustinstall.sh b/podman/rustinstall.sh index 2fce22bdb..49a26b4e8 100755 --- a/podman/rustinstall.sh +++ b/podman/rustinstall.sh @@ -4,6 +4,9 @@ # in Podman after the image has been built curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable +echo "source $HOME/.cargo/env" >> $HOME/.bashrc +source $HOME/.cargo/env + cargo +stable install --force --version 0.1.1 cargo-config cargo +stable install --force --version 1.16.0 just cargo +stable install --force --version 0.27.0 cbindgen From b080d14f47c897d1c67c67121fa9de18d819e13a Mon Sep 17 00:00:00 2001 From: Wildan M Date: Tue, 27 May 2025 14:33:46 +0700 Subject: [PATCH 2/8] Fix deleting lines --- mk/prefix.mk | 8 -------- 1 file changed, 8 deletions(-) diff --git a/mk/prefix.mk b/mk/prefix.mk index c737b70d8..8743386d9 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -44,7 +44,6 @@ $(PREFIX)/relibc: $(ROOT)/relibc $(PREFIX)/relibc-install: $(PREFIX)/relibc | $(PREFIX)/rust-install $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ $(PODMAN_RUN) make $@ else rm -rf "$@.partial" "$@" @@ -88,7 +87,6 @@ $(PREFIX)/libtool: $(PREFIX)/libtool-build: $(PREFIX)/libtool $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ $(PODMAN_RUN) make $@ else mkdir -p "$@.partial" @@ -112,7 +110,6 @@ endif $(PREFIX)/sysroot: $(PREFIX)/relibc-install $(PREFIX)/libtool-build $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ $(PODMAN_RUN) make $@ else cp -r "$(PREFIX)/relibc-install/" "$@" @@ -161,7 +158,6 @@ $(PREFIX)/binutils: $(PREFIX)/binutils-$(BINUTILS_BRANCH).tar.bz2 $(PREFIX)/binutils-install: $(PREFIX)/binutils $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ $(PODMAN_RUN) make $@ else rm -rf "$<-build" "$@.partial" "$@" @@ -198,7 +194,6 @@ $(PREFIX)/gcc: $(PREFIX)/gcc-$(GCC_BRANCH).tar.bz2 $(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc | $(PREFIX)/binutils-install $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ $(PODMAN_RUN) make $@ else rm -rf "$<-freestanding-build" "$@.partial" "$@" @@ -235,7 +230,6 @@ $(PREFIX)/relibc-freestanding: $(ROOT)/relibc $(PREFIX)/relibc-freestanding-install: $(PREFIX)/relibc-freestanding | $(PREFIX_FREESTANDING_INSTALL) $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ $(PODMAN_RUN) make $@ else rm -rf "$@.partial" "$@" @@ -255,7 +249,6 @@ endif $(PREFIX)/gcc-install: $(PREFIX)/gcc | $(PREFIX)/relibc-freestanding-install $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ $(PODMAN_RUN) make $@ else rm -rf "$<-build" "$@.partial" "$@" @@ -298,7 +291,6 @@ $(PREFIX)/gcc-install.tar.gz: $(PREFIX)/gcc-install $(PREFIX)/rust-install: $(ROOT)/rust/configure | $(PREFIX)/gcc-install $(PREFIX)/relibc-freestanding-install $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ $(PODMAN_RUN) make $@ else rm -rf "$(PREFIX)/rust-build" "$@.partial" "$@" From 401d30bf20758a0235e6c6e25259c103bb8c4e4f Mon Sep 17 00:00:00 2001 From: Wildan M Date: Tue, 27 May 2025 14:35:05 +0700 Subject: [PATCH 3/8] Fix deleting lines --- mk/fstools.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/mk/fstools.mk b/mk/fstools.mk index 7623c53a9..125b8cbf7 100644 --- a/mk/fstools.mk +++ b/mk/fstools.mk @@ -5,7 +5,6 @@ fstools: $(FSTOOLS_TAG) # These tools run inside Podman if it is used, or on the host if Podman is not used $(FSTOOLS_TAG): cookbook installer $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ $(PODMAN_RUN) make $@ else $(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release @@ -26,7 +25,6 @@ $(HOST_FSTOOLS): installer redoxfs fstools_clean: FORCE $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) - $(PODMAN_RUN) $(MAKE) $@ $(PODMAN_RUN) make $@ else $(HOST_CARGO) clean --manifest-path cookbook/Cargo.toml From 6ab9d4503f909bbead5bddb12fa73bcde1566775 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Tue, 27 May 2025 15:03:33 +0700 Subject: [PATCH 4/8] Merge back run commands --- podman/redox-base-containerfile | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/podman/redox-base-containerfile b/podman/redox-base-containerfile index db09786f7..94325f9a8 100644 --- a/podman/redox-base-containerfile +++ b/podman/redox-base-containerfile @@ -5,9 +5,8 @@ FROM debian:stable-backports # _UID_ must be replaced with the user's uid on host # podman root is mapped to your user id on host during build, # poduser is mapped to your user id during podman run -RUN apt-get update - -RUN apt-get install -y --no-install-recommends -t stable-backports \ +RUN apt-get update \ + && apt-get install -y --no-install-recommends -t stable-backports \ ant \ appstream \ appstream-compose \ @@ -81,7 +80,6 @@ RUN apt-get install -y --no-install-recommends -t stable-backports \ xxd \ zip \ zlib1g-dev \ - zstd - -RUN if [ "$(dpkg --print-architecture)" = "amd64" ]; then \ - apt-get install -y --no-install-recommends libc6-dev-i386 syslinux-utils; + zstd; \ + if [ "$(dpkg --print-architecture)" = "amd64" ]; then \ + apt-get install -y --no-install-recommends libc6-dev-i386 syslinux-utils; fi From f542a13c449f10d5ac03fd6f1c8c8183955cd6c4 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Tue, 27 May 2025 18:04:09 +0700 Subject: [PATCH 5/8] Add arch to force use of prebuilt prefix --- mk/podman.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mk/podman.mk b/mk/podman.mk index 47313ae7c..2b90894a8 100644 --- a/mk/podman.mk +++ b/mk/podman.mk @@ -61,7 +61,7 @@ ifeq ($(PODMAN_BUILD),1) -podman image rm --force $(IMAGE_TAG) || true mkdir -p $(PODMAN_HOME) @echo "Building Podman image. This may take some time." - cat $(CONTAINERFILE) | podman build --file - $(PODMAN_VOLUMES) --tag $(IMAGE_TAG) + cat $(CONTAINERFILE) | podman build --file - $(PODMAN_VOLUMES) --arch=amd64 --tag $(IMAGE_TAG) @echo "Mapping Podman user space. Please wait." $(PODMAN_RUN) bash -e podman/rustinstall.sh mkdir -p build From f52a8d033fc69b819dbecac9a023c477f49d9442 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Wed, 28 May 2025 09:59:13 +0700 Subject: [PATCH 6/8] Remove comments --- podman/redox-base-containerfile | 3 --- 1 file changed, 3 deletions(-) diff --git a/podman/redox-base-containerfile b/podman/redox-base-containerfile index 94325f9a8..326e79c5a 100644 --- a/podman/redox-base-containerfile +++ b/podman/redox-base-containerfile @@ -2,9 +2,6 @@ FROM debian:stable-backports -# _UID_ must be replaced with the user's uid on host -# podman root is mapped to your user id on host during build, -# poduser is mapped to your user id during podman run RUN apt-get update \ && apt-get install -y --no-install-recommends -t stable-backports \ ant \ From 6edca75bb5bb1e25d37944ba960edbb17ed4398d Mon Sep 17 00:00:00 2001 From: Wildan M Date: Wed, 28 May 2025 11:27:51 +0700 Subject: [PATCH 7/8] Avoid permission error when building libtool Apparently .git files contains 0400 mode files which fails cp -rp so it fails with rootless podman setting --- mk/prefix.mk | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/mk/prefix.mk b/mk/prefix.mk index 8743386d9..4019d669f 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -70,21 +70,19 @@ $(PREFIX)/relibc-install.tar.gz: $(PREFIX)/relibc-install --directory="$<" \ . -$(PREFIX)/libtool: +$(PREFIX)/libtool: $(PREFIX)/libtool.tar.gz rm -rf "$@.partial" "$@" mkdir -p "$@.partial" - - git clone \ - --recurse-submodules \ - "https://gitlab.redox-os.org/redox-os/libtool/" \ - --branch "v$(LIBTOOL_VERSION)-redox" \ - --depth 2 \ - "$@.partial" - + tar --extract --file "$<" --directory "$@.partial" --strip-components=1 touch "$@.partial" echo $(LIBTOOL_VERSION) > $@.partial/.tarball-version mv "$@.partial" "$@" +$(PREFIX)/libtool.tar.gz: + mkdir -p "$(@D)" + wget -O $@.partial "https://gitlab.redox-os.org/redox-os/libtool/-/archive/v$(LIBTOOL_VERSION)-redox/libtool-v$(LIBTOOL_VERSION)-redox.tar.gz" + mv $@.partial $@ + $(PREFIX)/libtool-build: $(PREFIX)/libtool $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) $(PODMAN_RUN) make $@ @@ -98,7 +96,7 @@ else --gnulib-srcdir=./gnulib PATH="$(ROOT)/$(PREFIX)/rust-install/bin:$$PATH" && \ cd "$@.partial" && \ - cp -rp $(abspath $<)/. ./ && \ + cp -r $(abspath $<)/. ./ && \ "$(ROOT)/$ Date: Sat, 31 May 2025 14:10:04 +0700 Subject: [PATCH 8/8] Force use fuse inside podman --- mk/disk.mk | 12 ++++++++++++ mk/fstools.mk | 4 ++++ mk/podman.mk | 4 ++-- 3 files changed, 18 insertions(+), 2 deletions(-) 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