ostree-config/build/Makefile
2024-06-16 20:02:06 -04:00

76 lines
2.6 KiB
Makefile

RELEASE_VER_MAJOR = 9
RELEASE_VER_MINOR = 4
ARCH = $(shell uname -m)
RELEASE_NAME = rocky-linux-ostree-$(ARCH)-$(RELEASE_VER_MAJOR).$(RELEASE_VER_MINOR)
DEFAULT_OSTREE_REMOTE = https://dl.rockylinux.org/pub/sig/$(RELEASE_VER_MAJOR)/ostree/$(ARCH)/standard/
MOCK_CONFIG = rocky-$(RELEASE_VER_MAJOR)-$(ARCH)
.PHONY: all
all: init tree iso
.PHONY: clean
clean:
rm -rf ./repo ./cache
.PHONY: init
init: clean
mkdir -p ./{repo,cache,images}
ostree --repo=./repo init --mode=archive
.PHONY: mirror
mirror: init
ostree --repo=./repo remote add rockylinux --set=gpg-verify=false $(DEFAULT_OSTREE_REMOTE) && \
ostree --repo=./repo pull --mirror rockylinux rockylinux/$(RELEASE_VER_MAJOR)/$(ARCH)/minimal/devel && \
ostree --repo=./repo summary --update
.PHONY: tree
tree:
rpm-ostree compose tree --repo=./repo --cachedir=./cache --unified-core ../manifest.9-minimal.yaml && \
ostree summary --repo=./repo --update
.PHONY: iso
iso:
mock -r $(MOCK_CONFIG) --clean
mock -r $(MOCK_CONFIG) --init
mock -r $(MOCK_CONFIG) --install lorax ostree
mock -r $(MOCK_CONFIG) --copyin $$(pwd)/repo /builddir/repo
mock -r $(MOCK_CONFIG) --copyin $$(pwd)/lorax-templates /builddir/lorax-templates
mock -r $(MOCK_CONFIG) --enable-network --chroot "cd /builddir && \
lorax --product='Rocky Linux OSTree' \
--version=$(RELEASE_VER_MAJOR) \
--release=$$(date +%Y%m%d) \
--variant=R$(RELEASE_VER_MAJOR) \
--skip-branding \
--installpkgs rocky-release* \
--installpkgs rocky-logos-$(RELEASE_VER_MAJOR)* \
--installpkgs ostree* \
--source=https://dl.rockylinux.org/pub/rocky/$(RELEASE_VER_MAJOR)/BaseOS/$(ARCH)/os/ \
--source=https://dl.rockylinux.org/pub/rocky/$(RELEASE_VER_MAJOR)/AppStream/$(ARCH)/os/ \
--nomacboot \
--volid=$(RELEASE_NAME) \
--add-template=/builddir/lorax-templates/lorax-configure-repo.tmpl \
--add-template=/builddir/lorax-templates/lorax-embed-repo.tmpl \
--add-template-var=ostree_install_repo=file:///builddir/repo \
--add-template-var=remote_url=$(DEFAULT_OSTREE_REMOTE) \
--add-template-var=default_ref=rockylinux/$(RELEASE_VER_MAJOR)/$(ARCH)/minimal/devel \
--logfile=/builddir/lorax.log \
--tmp=/builddir/tmp \
--rootfs-size=8 \
/builddir/completed-iso"
mock -r $(MOCK_CONFIG) --copyout /builddir/completed-iso/images/boot.iso $$(pwd)/images/$(RELEASE_NAME).iso
.PHONY: test-server
test-server:
podman stop ostree-test-server --ignore && \
podman rm ostree-test-server --ignore && \
podman run -d \
--name=ostree-test-server \
-p 9001:80 \
-v ./repo:/usr/share/nginx/repo \
-v ./nginx.conf:/etc/nginx/nginx.conf \
--security-opt label=disable \
nginx