From 21408d36bb87137a5236fd19fb47db6c134c5d67 Mon Sep 17 00:00:00 2001 From: Danny Canter Date: Thu, 26 Jun 2025 09:51:36 -0700 Subject: [PATCH 1/2] Revert "Provides explicit makefile targets for files (#167)" This reverts commit f9198d6ff79abb53ed51a87f9ce7afe49e08f48f. --- Makefile | 38 ++++++++++++++------------------------ vminitd/Makefile | 18 ++++++------------ 2 files changed, 20 insertions(+), 36 deletions(-) diff --git a/Makefile b/Makefile index e6c5c9148..3a75d751d 100644 --- a/Makefile +++ b/Makefile @@ -40,39 +40,33 @@ release: BUILD_CONFIGURATION = release release: all .PHONY: containerization -containerization: bin/cctl bin/containerization-integration - -.PHONY: swift-build -swift-build: +containerization: @echo Building containerization binaries... + @mkdir -p bin @$(SWIFT) build -c $(BUILD_CONFIGURATION) -$(BUILD_BIN_DIR)/cctl $(BUILD_BIN_DIR)/containerization-integration: - @"$(MAKE)" swift-build + @echo Copying containerization binaries... + @install $(BUILD_BIN_DIR)/cctl ./bin/ + @install $(BUILD_BIN_DIR)/containerization-integration ./bin/ -bin/%: $(BUILD_BIN_DIR)/% - @mkdir -p bin/ - @install $< bin/ - @codesign --force --sign - --timestamp=none --entitlements=signing/vz.entitlements $@ + @echo Signing containerization binaries... + @codesign --force --sign - --timestamp=none --entitlements=signing/vz.entitlements bin/cctl + @codesign --force --sign - --timestamp=none --entitlements=signing/vz.entitlements bin/containerization-integration -init := bin/init.rootfs.tar.gz .PHONY: init -init: $(init) - -$(init): vminitd/bin/vminitd vminitd/bin/vmexec bin/cctl +init: vminitd @echo Creating init.ext4... - @rm -f $(init) bin/init.block - @./bin/cctl rootfs create --vminitd vminitd/bin/vminitd --labels org.opencontainers.image.source=https://github.com/apple/containerization --vmexec vminitd/bin/vmexec $(init) vminit:latest + @rm -f bin/init.rootfs.tar.gz bin/init.block + @./bin/cctl rootfs create --vminitd vminitd/bin/vminitd --labels org.opencontainers.image.source=https://github.com/apple/containerization --vmexec vminitd/bin/vmexec bin/init.rootfs.tar.gz vminit:latest .PHONY: cross-prep cross-prep: @"$(MAKE)" -C vminitd cross-prep .PHONY: vminitd -vminitd: vminitd/bin/vminitd vminitd/bin/vmexec - -vminitd/bin/%: - @"$(MAKE)" -C vminitd BUILD_CONFIGURATION=$(BUILD_CONFIGURATION) bin/$* +vminitd: + @mkdir -p ./bin + @"$(MAKE)" -C vminitd BUILD_CONFIGURATION=$(BUILD_CONFIGURATION) .PHONY: update-libarchive-source update-libarchive-source: @@ -94,10 +88,6 @@ ifeq (,$(wildcard bin/vmlinux)) @echo No bin/vmlinux kernel found. See fetch-default-kernel target. @exit 1 endif - @"$(MAKE)" integration-kernel-checked - -.PHONY: integration-kernel-checked -integration-kernel-checked: $(init) bin/containerization-integration @echo Running the integration tests... @./bin/containerization-integration --bootlog ./bin/boot.log diff --git a/vminitd/Makefile b/vminitd/Makefile index d90eab4df..dabaff8eb 100644 --- a/vminitd/Makefile +++ b/vminitd/Makefile @@ -31,20 +31,14 @@ MACOS_RELEASE_TYPE := $(shell sw_vers | grep ReleaseType) .DEFAULT_GOAL := all .PHONY: all -all: bin/vminitd bin/vmexec - -.PHONY: swift-build -swift-build: +all: @echo Building vminitd and vmexec... + @mkdir -p ./bin/ + @rm -f ./bin/vminitd + @rm -f ./bin/vmexec @swift build -c $(BUILD_CONFIGURATION) $(SWIFT_CONFIGURATION) - -$(VMINITD_BIN_PATH)/vminitd $(VMINITD_BIN_PATH)/vmexec: - @$(MAKE) swift-build - -bin/%: $(VMINITD_BIN_PATH)/% - @mkdir -p bin/ - @rm -f $@ - @install $< bin/ + @install $(VMINITD_BIN_PATH)/vminitd ./bin/vminitd + @install $(VMINITD_BIN_PATH)/vmexec ./bin/vmexec .PHONY: cross-prep cross-prep: linux-sdk macos-sdk From 280af87955da1f1bb173be0a959a52a4a401cce5 Mon Sep 17 00:00:00 2001 From: Danny Canter Date: Thu, 26 Jun 2025 09:53:54 -0700 Subject: [PATCH 2/2] Makefile: Add required dependencies Some of the targets rely on others but weren't actually listed: - init relies on containerization as it invokes cctl. - integration relies on init as it needs the rootfs with vminitd inside. --- Makefile | 2 +- vminitd/Sources/vmexec/ExecCommand.swift | 3 --- vminitd/Sources/vmexec/RunCommand.swift | 3 --- vminitd/Sources/vmexec/vmexec.swift | 2 -- vminitd/Sources/vminitd/StandardIO.swift | 1 - vminitd/Sources/vminitd/TerminalIO.swift | 1 - 6 files changed, 1 insertion(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 3a75d751d..6267ce83e 100644 --- a/Makefile +++ b/Makefile @@ -54,7 +54,7 @@ containerization: @codesign --force --sign - --timestamp=none --entitlements=signing/vz.entitlements bin/containerization-integration .PHONY: init -init: vminitd +init: containerization vminitd @echo Creating init.ext4... @rm -f bin/init.rootfs.tar.gz bin/init.block @./bin/cctl rootfs create --vminitd vminitd/bin/vminitd --labels org.opencontainers.image.source=https://github.com/apple/containerization --vmexec vminitd/bin/vmexec bin/init.rootfs.tar.gz vminit:latest diff --git a/vminitd/Sources/vmexec/ExecCommand.swift b/vminitd/Sources/vmexec/ExecCommand.swift index 966c6c295..fe43a758f 100644 --- a/vminitd/Sources/vmexec/ExecCommand.swift +++ b/vminitd/Sources/vmexec/ExecCommand.swift @@ -15,10 +15,7 @@ //===----------------------------------------------------------------------===// import ArgumentParser -import Containerization -import ContainerizationError import ContainerizationOCI -import ContainerizationOS import Foundation import LCShim import Logging diff --git a/vminitd/Sources/vmexec/RunCommand.swift b/vminitd/Sources/vmexec/RunCommand.swift index c4870f768..f08beff25 100644 --- a/vminitd/Sources/vmexec/RunCommand.swift +++ b/vminitd/Sources/vmexec/RunCommand.swift @@ -15,10 +15,7 @@ //===----------------------------------------------------------------------===// import ArgumentParser -import Containerization -import ContainerizationError import ContainerizationOCI -import ContainerizationOS import Foundation import LCShim import Logging diff --git a/vminitd/Sources/vmexec/vmexec.swift b/vminitd/Sources/vmexec/vmexec.swift index 1374eb29b..9a3078b10 100644 --- a/vminitd/Sources/vmexec/vmexec.swift +++ b/vminitd/Sources/vmexec/vmexec.swift @@ -20,10 +20,8 @@ /// and mount namespace. import ArgumentParser -import Containerization import ContainerizationError import ContainerizationOCI -import ContainerizationOS import Foundation import LCShim import Logging diff --git a/vminitd/Sources/vminitd/StandardIO.swift b/vminitd/Sources/vminitd/StandardIO.swift index beef84c99..7aba046fa 100644 --- a/vminitd/Sources/vminitd/StandardIO.swift +++ b/vminitd/Sources/vminitd/StandardIO.swift @@ -14,7 +14,6 @@ // limitations under the License. //===----------------------------------------------------------------------===// -import Containerization import ContainerizationOS import Foundation import Logging diff --git a/vminitd/Sources/vminitd/TerminalIO.swift b/vminitd/Sources/vminitd/TerminalIO.swift index 30372a41b..f67d1b033 100644 --- a/vminitd/Sources/vminitd/TerminalIO.swift +++ b/vminitd/Sources/vminitd/TerminalIO.swift @@ -14,7 +14,6 @@ // limitations under the License. //===----------------------------------------------------------------------===// -import Containerization import ContainerizationOS import Foundation import Logging