1
0
Fork 0
mirror of https://github.com/JasonN3/build-container-installer.git synced 2025-12-25 10:57:55 +01:00

add flatpaks to iso

This commit is contained in:
Jason N. 2024-03-25 11:32:21 -04:00
parent 13d4cbfd04
commit e99ecbb068
4 changed files with 31 additions and 6 deletions

View file

@ -17,6 +17,7 @@ FLATPAK_REMOTE_NAME = flathub
FLATPAK_REMOTE_URL = https://flathub.org/repo/flathub.flatpakrepo FLATPAK_REMOTE_URL = https://flathub.org/repo/flathub.flatpakrepo
FLATPAK_REMOTE_REFS = FLATPAK_REMOTE_REFS =
FLATPAK_REMOTE_REFS_DIR = FLATPAK_REMOTE_REFS_DIR =
FLATPAK_DIR =
# Secure boot # Secure boot
ENROLLMENT_PASSWORD = ENROLLMENT_PASSWORD =
SECURE_BOOT_KEY_URL = SECURE_BOOT_KEY_URL =
@ -133,9 +134,17 @@ _LORAX_ARGS += -i flatpak-libs
_LORAX_TEMPLATES += $(call get_templates,flatpak) \ _LORAX_TEMPLATES += $(call get_templates,flatpak) \
external/fedora-lorax-templates/ostree-based-installer/lorax-embed-flatpaks.tmpl 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 _TEMPLATE_VARS += FLATPAK_REMOTE_NAME FLATPAK_REMOTE_REFS FLATPAK_REMOTE_URL _FLATPAK_REPO_GPG _FLATPAK_REPO_URL
endif 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),) ifneq ($(SECURE_BOOT_KEY_URL),)
_LORAX_TEMPLATES += $(call get_templates,secureboot) _LORAX_TEMPLATES += $(call get_templates,secureboot)
_TEMPLATE_VARS += ENROLLMENT_PASSWORD _TEMPLATE_VARS += ENROLLMENT_PASSWORD
@ -200,7 +209,7 @@ container/$(IMAGE_NAME)-$(IMAGE_TAG):
xorriso/%.sh: xorriso/%.sh.in 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/boot/grub2/grub.cfg
sed -i 's/quiet/quiet $(EXTRA_BOOT_PARAMS)/g' results/EFI/BOOT/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 $(foreach var,$(_VARS),$(var)=$($(var))) envsubst '$(foreach var,$(_VARS),$$$(var))' < $(_BASE_DIR)/xorriso/$*.sh.in > $(_BASE_DIR)/xorriso/$*.sh
# Step 6: Generate xorriso input # Step 6: Generate xorriso input

View file

@ -141,13 +141,13 @@ runs:
run: | run: |
image="${{ inputs.image_repo }}/${{ inputs.image_name }}:${{ inputs.image_tag }}" image="${{ inputs.image_repo }}/${{ inputs.image_name }}:${{ inputs.image_tag }}"
# Make temp space # 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 # Get list of refs from directory
sudo mkdir /github || true sudo mkdir /github || true
sudo ln -s ${{ github.workspace }} /github/workspace sudo ln -s ${{ github.workspace }} /github/workspace
DIR_REFS=$(cat ${{ inputs.flatpak_remote_refs_dir }}/* | tr '\n' ' ' ) DIR_REFS=$(cat ${{ inputs.flatpak_remote_refs_dir }}/* | tr '\n' ' ' )
# Generate install script # Generate install script
cat << EOF > ${FLATPAK_DIR}/script.sh cat << EOF > ${{ github.workspace }}/${FLATPAK_DIR}/script.sh
mkdir -p /flatpak/flatpak /flatpak/triggers mkdir -p /flatpak/flatpak /flatpak/triggers
mkdir /var/tmp || true mkdir /var/tmp || true
chmod -R 1777 /var/tmp chmod -R 1777 /var/tmp
@ -159,7 +159,7 @@ runs:
cp -R /flatpak/flatpak /flatpak_dir/ cp -R /flatpak/flatpak /flatpak_dir/
ostree refs --repo=/flatpak_dir/flatpak/repo ostree refs --repo=/flatpak_dir/flatpak/repo
EOF 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 echo "flatpak_dir=${FLATPAK_DIR}" >> $GITHUB_OUTPUT
docker rmi ${image} docker rmi ${image}
@ -216,7 +216,7 @@ runs:
FLATPAK_REMOTE_NAME="${{ inputs.flatpak_remote_name }}" \ FLATPAK_REMOTE_NAME="${{ inputs.flatpak_remote_name }}" \
${vars} \ ${vars} \
FLATPAK_REMOTE_URL="${{ inputs.flatpak_remote_url }}" \ 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_NAME="${{ inputs.image_name }}" \
IMAGE_REPO="${{ inputs.image_repo }}" \ IMAGE_REPO="${{ inputs.image_repo }}" \
IMAGE_TAG="${{ inputs.image_tag || inputs.version }}" \ IMAGE_TAG="${{ inputs.image_tag || inputs.version }}" \

View file

@ -0,0 +1,5 @@
<%page args="flatpak_dir"/>
%if flatpak_dir != ""
symlink /run/install/repo/flatpak /flatpak
%endif

View file

@ -10,6 +10,17 @@ echo "-chmod 0444 boot/grub2/grub.cfg"
echo "-map $(pwd)/results/EFI/BOOT/grub.cfg EFI/BOOT/grub.cfg" echo "-map $(pwd)/results/EFI/BOOT/grub.cfg EFI/BOOT/grub.cfg"
echo "-chmod 0444 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 ] if [ -f $(pwd)/sb_pubkey.der ]
then then
echo "-map $(pwd)/sb_pubkey.der sb_pubkey.der" echo "-map $(pwd)/sb_pubkey.der sb_pubkey.der"