diff --git a/.gitignore b/.gitignore index 8f65d56..ff22e19 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ /pkglists /repos /results -/lorax_templates/*.tmpl /xorriso/input.txt /xorriso/*.sh /original-pkgsizes.txt diff --git a/Makefile b/Makefile index 9ef8061..03b27cb 100644 --- a/Makefile +++ b/Makefile @@ -1,22 +1,25 @@ # Configuration vars ## Formatting = UPPERCASE +# General +ADDITIONAL_TEMPLATES = ARCH = x86_64 -VERSION = 39 -IMAGE_REPO = quay.io/fedora-ostree-desktops +EXTRA_BOOT_PARAMS = IMAGE_NAME = base +IMAGE_REPO = quay.io/fedora-ostree-desktops IMAGE_TAG = $(VERSION) -VARIANT = Server -WEB_UI = false REPOS = $(subst :,\:,$(shell ls /etc/yum.repos.d/*.repo)) -ADDITIONAL_TEMPLATES = +ROOTFS_SIZE = 4 +VARIANT = Server +VERSION = 39 +WEB_UI = false +# Flatpak FLATPAK_REMOTE_NAME = flathub FLATPAK_REMOTE_URL = https://flathub.org/repo/flathub.flatpakrepo FLATPAK_REMOTE_REFS = +# Secure boot ENROLLMENT_PASSWORD = SECURE_BOOT_KEY_URL = -ADDITIONAL_TEMPLATES = -EXTRA_BOOT_PARAMS = -ROOTFS_SIZE = 4 +# Cache DNF_CACHE = # Generated/internal vars @@ -26,14 +29,14 @@ _IMAGE_REPO_ESCAPED = $(subst /,\/,$(IMAGE_REPO)) _IMAGE_REPO_DOUBLE_ESCAPED = $(subst \,\\\,$(_IMAGE_REPO_ESCAPED)) _VOLID = $(firstword $(subst -, ,$(IMAGE_NAME)))-$(ARCH)-$(IMAGE_TAG) _REPO_FILES = $(subst /etc/yum.repos.d,repos,$(REPOS)) -_ALL_LORAX_TEMPLATES = $(subst .in,,$(shell ls lorax_templates/*.tmpl.in)) $(foreach file,$(shell ls lorax_templates/scripts/post),lorax_templates/post_$(file).tmpl) -_EXTERNAL_TEMPLATES = fedora-lorax-templates/ostree-based-installer/lorax-embed-flatpaks.tmpl -_EXCLUDED_TEMPLATES = lorax_templates/copy_dnf_cache.tmpl -_LORAX_TEMPLATES = $(filter-out $(_EXCLUDED_TEMPLATES),$(_ALL_LORAX_TEMPLATES)) +_LORAX_TEMPLATES = $(shell ls lorax_templates/install_*.tmpl) $(foreach file,$(notdir $(shell ls lorax_templates/scripts/post/install_*)),lorax_templates/post_$(file).tmpl) +_LORAX_TEMPLATES_FLATPAKS = $(shell ls lorax_templates/flatpak_*.tmpl) $(foreach file,$(notdir $(shell ls lorax_templates/scripts/post/flatpak_*)),lorax_templates/post_$(file).tmpl) external/fedora-lorax-templates/ostree-based-installer/lorax-embed-flatpaks.tmpl +_LORAX_TEMPLATES_SECUREBOOT = $(shell ls lorax_templates/secureboot_*.tmpl) $(foreach file,$(notdir $(shell ls lorax_templates/scripts/post/secureboot_*)),lorax_templates/post_$(file).tmpl) +_LORAX_TEMPLATES_CACHE = $(shell ls lorax_templates/cache_*.tmpl) $(foreach file,$(notdir $(shell ls lorax_templates/scripts/post/cache_*)),lorax_templates/post_$(file).tmpl) _LORAX_ARGS = _FLATPAK_REPO_URL = $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^URL=' | cut -d= -f2) _FLATPAK_REPO_GPG = $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^GPGKey=' | cut -d= -f2) -_TEMPLATE_VARS = ARCH VERSION IMAGE_REPO IMAGE_NAME IMAGE_TAG VARIANT WEB_UI REPOS _IMAGE_REPO_ESCAPED _IMAGE_REPO_DOUBLE_ESCAPED FLATPAK_REMOTE_NAME FLATPAK_REMOTE_URL FLATPAK_REMOTE_REFS _FLATPAK_REPO_URL _FLATPAK_REPO_GPG ENROLLMENT_PASSWORD +_TEMPLATE_VARS = ARCH IMAGE_NAME IMAGE_REPO _IMAGE_REPO_DOUBLE_ESCAPED _IMAGE_REPO_ESCAPED IMAGE_TAG REPOS VARIANT VERSION WEB_UI ifeq ($(findstring redhat.repo,$(REPOS)),redhat.repo) @@ -49,8 +52,8 @@ _LORAX_ARGS += -i anaconda-webui endif ifneq ($(DNF_CACHE),) -_LORAX_ARGS += --cachedir $(DNF_CACHE) -_LORAX_TEMPLATES += lorax_templates/copy_dnf_cache.tmpl +_LORAX_ARGS += --cachedir $(DNF_CACHE) +_LORAX_TEMPLATES += $(_LORAX_TEMPLATES_CACHE) endif ifeq ($(findstring redhat.repo,$(REPOS)),redhat.repo) @@ -60,7 +63,14 @@ _PLATFORM_ID = platform:f$(VERSION) endif ifneq ($(FLATPAK_REMOTE_REFS),) -_LORAX_ARGS += -i flatpak-libs +_LORAX_ARGS += -i flatpak-libs +_LORAX_TEMPLATES += $(_LORAX_TEMPLATES_FLATPAKS) +_TEMPLATE_VARS += FLATPAK_REMOTE_NAME FLATPAK_REMOTE_REFS FLATPAK_REMOTE_URL _FLATPAK_REPO_GPG _FLATPAK_REPO_URL +endif + +ifneq ($(SECURE_BOOT_KEY_URL),) +_LORAX_TEMPLATES += $(_LORAX_TEMPLATES_SECUREBOOT) +_TEMPLATE_VARS += ENROLLMENT_PASSWORD endif # Step 7: Build end ISO @@ -135,9 +145,6 @@ lorax_templates/post_%.tmpl: lorax_templates/scripts/post/% done < lorax_templates/scripts/post/$* echo "append $(_ISO_FILE) \"%end\"" >> lorax_templates/post_$*.tmpl -lorax_templates/%.tmpl: lorax_templates/%.tmpl.in - $(eval _VARS = IMAGE_NAME IMAGE_TAG _IMAGE_REPO_DOUBLE_ESCAPED _IMAGE_REPO_ESCAPED) - $(foreach var,$(_VARS),$(var)=$($(var))) envsubst '$(foreach var,$(_VARS),$$$(var))' < $(_BASE_DIR)/lorax_templates/$*.tmpl.in > $(_BASE_DIR)/lorax_templates/$*.tmpl repos: $(_REPO_FILES) @@ -152,7 +159,7 @@ repos/%.repo: /etc/yum.repos.d/%.repo %.repo: # Step 3: Build boot.iso using Lorax -boot.iso: $(_LORAX_TEMPLATES) $(_REPO_FILES) +boot.iso: $(findstring lorax_templates/,$(_LORAX_TEMPLATES)) $(_REPO_FILES) rm -Rf $(_BASE_DIR)/results || true mv /etc/rpm/macros.image-language-conf /etc/rpm/macros.image-language-conf.orig || true cp /etc/os-release /etc/os-release.orig || true diff --git a/lorax_templates/cache_copy_dnf.tmpl b/lorax_templates/cache_copy_dnf.tmpl new file mode 100644 index 0000000..69f3413 --- /dev/null +++ b/lorax_templates/cache_copy_dnf.tmpl @@ -0,0 +1,3 @@ +<%page args="dnf_cache"/> + +runcmd bash -c "if [[ -d ${dnf_cache} ]]; then cp -R ${dnf_cache} ${dnf_cache}_new; fi" \ No newline at end of file diff --git a/lorax_templates/copy_dnf_cache.tmpl.in b/lorax_templates/copy_dnf_cache.tmpl.in deleted file mode 100644 index 74a3873..0000000 --- a/lorax_templates/copy_dnf_cache.tmpl.in +++ /dev/null @@ -1 +0,0 @@ -runcmd bash -c "if [[ -d /cache/dnf_new ]]; then cp -R /cache/dnf /cache/dnf_new; fi" \ No newline at end of file diff --git a/lorax_templates/set_flatpak_repo.tmpl.in b/lorax_templates/flatpak_set_repo.tmpl similarity index 100% rename from lorax_templates/set_flatpak_repo.tmpl.in rename to lorax_templates/flatpak_set_repo.tmpl diff --git a/lorax_templates/install_set_installer.tmpl b/lorax_templates/install_set_installer.tmpl new file mode 100644 index 0000000..78687b4 --- /dev/null +++ b/lorax_templates/install_set_installer.tmpl @@ -0,0 +1,4 @@ +<%page args="image_name, image_tag"/> + +append usr/share/anaconda/interactive-defaults.ks "ostreecontainer --url=/run/install/repo/${image_name}-${image_Tag} --transport=oci --no-signature-verification" + diff --git a/lorax_templates/scripts/post/configure_flatpak b/lorax_templates/scripts/post/flatpak_configure similarity index 100% rename from lorax_templates/scripts/post/configure_flatpak rename to lorax_templates/scripts/post/flatpak_configure diff --git a/lorax_templates/scripts/post/configure_upgrades b/lorax_templates/scripts/post/install_configure_upgrades similarity index 100% rename from lorax_templates/scripts/post/configure_upgrades rename to lorax_templates/scripts/post/install_configure_upgrades diff --git a/lorax_templates/scripts/post/enroll-secureboot-key b/lorax_templates/scripts/post/secureboot_enroll_key similarity index 100% rename from lorax_templates/scripts/post/enroll-secureboot-key rename to lorax_templates/scripts/post/secureboot_enroll_key diff --git a/lorax_templates/set_installer.tmpl.in b/lorax_templates/set_installer.tmpl.in deleted file mode 100644 index 66f01e0..0000000 --- a/lorax_templates/set_installer.tmpl.in +++ /dev/null @@ -1,2 +0,0 @@ -append usr/share/anaconda/interactive-defaults.ks "ostreecontainer --url=/run/install/repo/${IMAGE_NAME}-${IMAGE_TAG} --transport=oci --no-signature-verification" -