fix: pull akmods-extra only for bazzite (Fixes #441)

This commit is contained in:
Francisco Torres Pérez 2025-05-15 10:05:29 +02:00 committed by Gerald Pinder
parent 67cbca3218
commit 2f3e4e2237
3 changed files with 28 additions and 17 deletions

View file

@ -3,7 +3,7 @@ use bon::Builder;
#[derive(Debug, Clone, Builder, PartialEq, Eq, Hash)]
pub struct AkmodsInfo {
#[builder(into)]
pub images: (String, String, Option<String>),
pub images: (String, Option<String>, Option<String>),
#[builder(into)]
pub stage_name: String,

View file

@ -154,34 +154,43 @@ impl<'a> ModuleRequiredFields<'a> {
AkmodsInfo::builder()
.images(match (base, nvidia) {
(Some(b), NvidiaAkmods::Enabled | NvidiaAkmods::Proprietary) if !b.is_empty() => (
format!("akmods:{b}-{os_version}"),
format!("akmods-extra:{b}-{os_version}"),
Some(format!("akmods-nvidia:{b}-{os_version}")),
(Some("bazzite"), NvidiaAkmods::Enabled | NvidiaAkmods::Proprietary) => (
format!("akmods:bazzite-{os_version}"),
Some(format!("akmods-extra:bazzite-{os_version}")),
Some(format!("akmods-nvidia:bazzite-{os_version}")),
),
(Some(b), NvidiaAkmods::Disabled) if !b.is_empty() => (
format!("akmods:{b}-{os_version}"),
format!("akmods-extra:{b}-{os_version}"),
(Some("bazzite"), NvidiaAkmods::Disabled) => (
format!("akmods:bazzite-{os_version}"),
Some(format!("akmods-extra:bazzite-{os_version}")),
None,
),
(Some("bazzite"), NvidiaAkmods::Open) => (
format!("akmods:bazzite-{os_version}"),
Some(format!("akmods-extra:bazzite-{os_version}")),
Some(format!("akmods-nvidia-open:bazzite-{os_version}")),
),
(Some(b), NvidiaAkmods::Enabled | NvidiaAkmods::Proprietary) if !b.is_empty() => (
format!("akmods:{b}-{os_version}"),
None,
Some(format!("akmods-nvidia:{b}-{os_version}")),
),
(Some(b), NvidiaAkmods::Disabled) if !b.is_empty() => {
(format!("akmods:{b}-{os_version}"), None, None)
}
(Some(b), NvidiaAkmods::Open) if !b.is_empty() => (
format!("akmods:{b}-{os_version}"),
format!("akmods-extra:{b}-{os_version}"),
None,
Some(format!("akmods-nvidia-open:{b}-{os_version}")),
),
(_, NvidiaAkmods::Enabled | NvidiaAkmods::Proprietary) => (
format!("akmods:main-{os_version}"),
format!("akmods-extra:main-{os_version}"),
None,
Some(format!("akmods-nvidia:main-{os_version}")),
),
(_, NvidiaAkmods::Disabled) => (
format!("akmods:main-{os_version}"),
format!("akmods-extra:main-{os_version}"),
None,
),
(_, NvidiaAkmods::Disabled) => (format!("akmods:main-{os_version}"), None, None),
(_, NvidiaAkmods::Open) => (
format!("akmods:main-{os_version}"),
format!("akmods-extra:main-{os_version}"),
None,
Some(format!("akmods-nvidia-open:main-{os_version}")),
),
})

View file

@ -2,7 +2,9 @@
# Stage for AKmod {{ info.stage_name }}
FROM scratch as stage-akmods-{{ info.stage_name }}
COPY --from=ghcr.io/ublue-os/{{ info.images.0 }} /rpms /rpms
COPY --from=ghcr.io/ublue-os/{{ info.images.1 }} /rpms /rpms
{%- if let Some(extra_image) = info.images.1 %}
COPY --from=ghcr.io/ublue-os/{{ extra_image }} /rpms /rpms
{%- endif %}
{%- if let Some(nv_image) = info.images.2 %}
COPY --from=ghcr.io/ublue-os/{{ nv_image }} /rpms /rpms
{%- endif %}