JasonN3 / build-container-installer

Creates an ISO for installing a container image as an OS
GNU General Public License v3.0
64 stars 9 forks source link

[FR] Ability to Parse List of Files with Flatpaks and their Dependencies #65

Closed noelmiller closed 8 months ago

noelmiller commented 8 months ago

Is your feature request related to a problem? Please describe. Currently you need to specify flatpaks and all their dependencies in a long list. This makes it really hard to know what dependencies belong with which flatpak.

As an example with not that many apps:

docker run --rm --privileged --volume .:/github/workspace/build  ghcr.io/jasonn3/build-container-installer:main VERSION=39 IMAGE_NAME=bluefin IMAGE_REPO=ghcr.io/ublue-os IMAGE_TAG=39-testing VARIANT=Silverblue FLATPAK_REMOTE_REFS="runtime/org.kde.Platform/x86_64/6.5 runtime/org.kde.Platform.Locale/x86_64/6.5 runtime/org.kde.PlatformTheme.QGnomePlatform/x86_64/6.5 runtime/org.kde.WaylandDecoration.QAdwaitaDecorations/x86_64/6.5 runtime/org.kde.WaylandDecoration.QGnomePlatform-decoration/x86_64/6.5 runtime/org.freedesktop.Platform/x86_64/23.08 runtime/org.gnome.Platform/x86_64/45 runtime/org.gnome.Platform/x86_64/44 runtime/org.gnome.Platform.Locale/x86_64/44 runtime/org.gnome.Platform.Locale/x86_64/45 runtime/org.freedesktop.Platform.GL.default/x86_64/22.08 runtime/org.freedesktop.Platform.GL.default/x86_64/22.08-extra runtime/org.freedesktop.Platform.GL.default/x86_64/23.08 runtime/org.freedesktop.Platform.GL.default/x86_64/23.08-extra runtime/org.freedesktop.Platform.Locale/x86_64/23.08 runtime/org.freedesktop.Platform.openh264/x86_64/2.2.0 runtime/org.gnome.Calculator.Locale/x86_64/stable app/org.gnome.Calculator/x86_64/stable runtime/org.gnome.Calendar.Locale/x86_64/stable app/org.gnome.Calendar/x86_64/stable runtime/org.gnome.Characters.Locale/x86_64/stable app/org.gnome.Characters/x86_64/stable runtime/org.gnome.Connections.Locale/x86_64/stable app/org.gnome.Connections/x86_64/stable runtime/org.gnome.Contacts.Locale/x86_64/stable app/org.gnome.Contacts/x86_64/stable runtime/org.gnome.Evince.Locale/x86_64/stable app/org.gnome.Evince/x86_64/stable runtime/org.gnome.Loupe.HEIC/x86_64/stable runtime/org.gnome.Loupe.Locale/x86_64/stable app/org.gnome.Loupe/x86_64/stable app/org.gnome.Logs/x86_64/stable runtime/org.gnome.Maps.Locale/x86_64/stable app/org.gnome.Maps/x86_64/stable runtime/org.gnome.NautilusPreviewer.Locale/x86_64/stable app/org.gnome.NautilusPreviewer/x86_64/stable runtime/org.gnome.TextEditor.Locale/x86_64/stable app/org.gnome.TextEditor/x86_64/stable runtime/org.gnome.Weather.Locale/x86_64/stable app/org.gnome.Weather/x86_64/stable runtime/org.gnome.baobab.Locale/x86_64/stable app/org.gnome.baobab/x86_64/stable runtime/org.gnome.clocks.Locale/x86_64/stable app/org.gnome.clocks/x86_64/stable runtime/org.gnome.font_viewer.Locale/x86_64/stable app/org.gnome.font-viewer/x86_64/stable runtime/com.mattjakeman.ExtensionManager.Locale/x86_64/stable app/com.mattjakeman.ExtensionManager/x86_64/stable app/com.github.tchx84.Flatseal/x86_64/stable runtime/io.github.dvlv.boxbuddyrs.Locale/x86_64/stable app/io.github.dvlv.boxbuddyrs/x86_64/stable runtime/io.github.flattool.Warehouse.Locale/x86_64/stable app/io.github.flattool.Warehouse/x86_64/stable app/org.fedoraproject.MediaWriter/x86_64/stable runtime/io.missioncenter.MissionCenter.Locale/x86_64/stable app/io.missioncenter.MissionCenter/x86_64/stable runtime/io.github.celluloid_player.Celluloid.Locale/x86_64/stable app/io.github.celluloid_player.Celluloid/x86_64/stable runtime/org.mozilla.firefox.Locale/x86_64/stable app/org.mozilla.firefox/x86_64/stable"

Describe the solution you'd like It would be very useful to have a standard file type you could create in your repo that has metadata for each flatpak and it's dependencies. That would allow you to define it in a set of files for easier organization. For the docker container we would want the option to specify a directory or mount that directory as a volume into the container.

Describe alternatives you've considered The alternative is the above command :D

noelmiller commented 8 months ago

Since a lot of flatpaks share dependencies, we will want to have logic that makes sure the dependency does not get added to the list of installed flatpaks more than once.