From e99ecbb06814e2fe8ce73ee723376df6b145f058 Mon Sep 17 00:00:00 2001 From: "Jason N." <33561705+JasonN3@users.noreply.github.com> Date: Mon, 25 Mar 2024 11:32:21 -0400 Subject: [PATCH] add flatpaks to iso --- Makefile | 13 +++++++++++-- action.yml | 8 ++++---- lorax_templates/flatpak_link.tmpl | 5 +++++ xorriso/gen_input.sh.in | 11 +++++++++++ 4 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 lorax_templates/flatpak_link.tmpl diff --git a/Makefile b/Makefile index acf2d0d..c2a5c55 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,7 @@ FLATPAK_REMOTE_NAME = flathub FLATPAK_REMOTE_URL = https://flathub.org/repo/flathub.flatpakrepo FLATPAK_REMOTE_REFS = FLATPAK_REMOTE_REFS_DIR = +FLATPAK_DIR = # Secure boot ENROLLMENT_PASSWORD = SECURE_BOOT_KEY_URL = @@ -133,9 +134,17 @@ _LORAX_ARGS += -i flatpak-libs _LORAX_TEMPLATES += $(call get_templates,flatpak) \ external/fedora-lorax-templates/ostree-based-installer/lorax-embed-flatpaks.tmpl _TEMPLATE_VARS += FLATPAK_REMOTE_NAME FLATPAK_REMOTE_REFS FLATPAK_REMOTE_URL _FLATPAK_REPO_GPG _FLATPAK_REPO_URL - endif +ifneq ($(FLATPAK_DIR),) +_FLATPAK_REPO_GPG = $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^GPGKey=' | cut -d= -f2) +_FLATPAK_REPO_URL = $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^URL=' | cut -d= -f2) +_LORAX_ARGS += -i flatpak-libs +_LORAX_TEMPLATES += $(call get_templates,flatpak) +_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 += $(call get_templates,secureboot) _TEMPLATE_VARS += ENROLLMENT_PASSWORD @@ -200,7 +209,7 @@ container/$(IMAGE_NAME)-$(IMAGE_TAG): xorriso/%.sh: xorriso/%.sh.in sed -i 's/quiet/quiet $(EXTRA_BOOT_PARAMS)/g' results/boot/grub2/grub.cfg sed -i 's/quiet/quiet $(EXTRA_BOOT_PARAMS)/g' results/EFI/BOOT/grub.cfg - $(eval _VARS = IMAGE_NAME IMAGE_TAG ARCH VERSION) + $(eval _VARS = FLATPAK_DIR IMAGE_NAME IMAGE_TAG ARCH VERSION) $(foreach var,$(_VARS),$(var)=$($(var))) envsubst '$(foreach var,$(_VARS),$$$(var))' < $(_BASE_DIR)/xorriso/$*.sh.in > $(_BASE_DIR)/xorriso/$*.sh # Step 6: Generate xorriso input diff --git a/action.yml b/action.yml index df268ac..776bd2c 100644 --- a/action.yml +++ b/action.yml @@ -141,13 +141,13 @@ runs: run: | image="${{ inputs.image_repo }}/${{ inputs.image_name }}:${{ inputs.image_tag }}" # Make temp space - FLATPAK_DIR=$(mktemp -d -p ${{ github.workspace }} flatpak.XXX) + FLATPAK_DIR=$(basename $(mktemp -d -p ${{ github.workspace }} flatpak.XXX)) # Get list of refs from directory sudo mkdir /github || true sudo ln -s ${{ github.workspace }} /github/workspace DIR_REFS=$(cat ${{ inputs.flatpak_remote_refs_dir }}/* | tr '\n' ' ' ) # Generate install script - cat << EOF > ${FLATPAK_DIR}/script.sh + cat << EOF > ${{ github.workspace }}/${FLATPAK_DIR}/script.sh mkdir -p /flatpak/flatpak /flatpak/triggers mkdir /var/tmp || true chmod -R 1777 /var/tmp @@ -159,7 +159,7 @@ runs: cp -R /flatpak/flatpak /flatpak_dir/ ostree refs --repo=/flatpak_dir/flatpak/repo EOF - docker run --rm --privileged --entrypoint bash -e FLATPAK_SYSTEM_DIR=/flatpak/flatpak -e FLATPAK_TRIGGERSDIR=/flatpak/triggers --volume ${FLATPAK_DIR}:/flatpak_dir ${image} /flatpak_dir/script.sh + docker run --rm --privileged --entrypoint bash -e FLATPAK_SYSTEM_DIR=/flatpak/flatpak -e FLATPAK_TRIGGERSDIR=/flatpak/triggers --volume ${{ github.workspace }}/${FLATPAK_DIR}:/flatpak_dir ${image} /flatpak_dir/script.sh echo "flatpak_dir=${FLATPAK_DIR}" >> $GITHUB_OUTPUT docker rmi ${image} @@ -216,7 +216,7 @@ runs: FLATPAK_REMOTE_NAME="${{ inputs.flatpak_remote_name }}" \ ${vars} \ FLATPAK_REMOTE_URL="${{ inputs.flatpak_remote_url }}" \ - FLATPAK_DIR="${{ steps.flatpak_dependencies.outputs.flatpak_dir }}" \ + FLATPAK_DIR="${{ steps.flatpak_dependencies.outputs.flatpak_dir && format('/github/workspace/{0}', steps.flatpak_dependencies.outputs.flatpak_dir) || '' }}" \ IMAGE_NAME="${{ inputs.image_name }}" \ IMAGE_REPO="${{ inputs.image_repo }}" \ IMAGE_TAG="${{ inputs.image_tag || inputs.version }}" \ diff --git a/lorax_templates/flatpak_link.tmpl b/lorax_templates/flatpak_link.tmpl new file mode 100644 index 0000000..83cbc06 --- /dev/null +++ b/lorax_templates/flatpak_link.tmpl @@ -0,0 +1,5 @@ +<%page args="flatpak_dir"/> + +%if flatpak_dir != "" +symlink /run/install/repo/flatpak /flatpak +%endif \ No newline at end of file diff --git a/xorriso/gen_input.sh.in b/xorriso/gen_input.sh.in index f2f678c..6a9f521 100644 --- a/xorriso/gen_input.sh.in +++ b/xorriso/gen_input.sh.in @@ -10,6 +10,17 @@ echo "-chmod 0444 boot/grub2/grub.cfg" echo "-map $(pwd)/results/EFI/BOOT/grub.cfg EFI/BOOT/grub.cfg" echo "-chmod 0444 EFI/BOOT/grub.cfg" +if [[ -n "${FLATPAK_DIR}" ]] +then + pushd ${FLATPAK_DIR} > /dev/null + for file in $(find) + do + echo "-map $(pwd)/${file} flatpak/${file}" + echo "-chmod 0444 flatpak/${file}" + done + popd > /dev/null +fi + if [ -f $(pwd)/sb_pubkey.der ] then echo "-map $(pwd)/sb_pubkey.der sb_pubkey.der"