# SPDX-License-Identifier: NVIDIA DEEP LEARNING CONTAINER LICENSE

#     Copyright (c) 2026 SUSE LLC

# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon.

# The content of THIS FILE IS AUTOGENERATED and should not be manually modified.
# It is maintained by the BCI team and generated by
# https://github.com/SUSE/BCI-dockerfile-generator

# Please submit bugfixes or comments via https://bugs.opensuse.org/
# You can contact the BCI team via https://github.com/SUSE/bci/discussions

#!UseOBSRepositories
#!ExclusiveArch: aarch64
#!BuildTag: third-party/nvidia/driver:580-64kb-sles%OS_VERSION_ID_SP%-%RELEASE%
#!BuildTag: third-party/nvidia/driver:580-64kb-sles%OS_VERSION_ID_SP%
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.55-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.52-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.45-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.40-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.34-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.31-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.28-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.25-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.22-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.19-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.16-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.11-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.6-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.53.3-64kb-sles15.7
#!BuildTag: third-party/nvidia/driver:580-6.4.0-150700.51-64kb-sles15.7
#!BcntSyncTag: nvidia-driver-image
#!BuildName: nvidia-driver-580-64kb
#!BuildVersion: 15.7.580.159.04
FROM registry.suse.com/bci/bci-micro:15.7 AS target
FROM registry.suse.com/bci/bci-base:15.7 AS nvidia-driver-builder
COPY --from=target / /target
RUN set -euo pipefail; zypper -n install --no-recommends dwarves elfutils gcc libelf-devel pesign-obs-integration zstd dracut gcc-c++ make mokutil pciutils perl-Bootloader python3 systemd xz
RUN set -euo pipefail; \
    export CHKSTAT_ALLOW_INSECURE_MODE_IF_NO_PROC=1; \
    zypper -n --installroot /target --gpg-auto-import-keys install --no-recommends awk coreutils findutils grep jq kmod rpm-ndb sed util-linux util-linux-systemd infiniband-diags
RUN mkdir -p /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/dkms-3.4.1-1.noarch.rpm dkms-3.4.1-1.x86_64.rpm sha256:57aa1f1920218fdfac94ea6a1e365617bcba7edd67c3c4312d0eaf853b4cec86
COPY dkms-3.4.1-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/dkms-3.4.1-1.noarch.rpm dkms-3.4.1-1.aarch64.rpm sha256:57aa1f1920218fdfac94ea6a1e365617bcba7edd67c3c4312d0eaf853b4cec86
COPY dkms-3.4.1-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/libOpenCL1-2.2.11-8.3.1.x86_64.rpm sha256:d0a60fce054572969271cd27629574cd35930fcb3b83c9685acc6c267b931e6e
COPY libOpenCL1-2.2.11-8.3.1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/libOpenCL1-2.2.11-8.3.1.aarch64.rpm sha256:a664cba336a0fb95fedaaf29b002ea064ef91d1b304dce263dcd1f99be03fadd
COPY libOpenCL1-2.2.11-8.3.1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/libnvidia-cfg-580.159.04-1.x86_64.rpm sha256:000612d25a2faa9ec1d40f44e4c31e867a8c1e40a14f97089bcc85238812febc
COPY libnvidia-cfg-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/libnvidia-cfg-580.159.04-1.aarch64.rpm sha256:7dbd91a6825f6d22c92978d75ac5b7f9ec4f0d1bd53fdafbb40e424d612cddbc
COPY libnvidia-cfg-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/libnvidia-gpucomp-580.159.04-1.x86_64.rpm sha256:c14594fafb30595eb3d83418b41d34cc02bcb7a0f01eea6b339504c202e75e31
COPY libnvidia-gpucomp-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/libnvidia-gpucomp-580.159.04-1.aarch64.rpm sha256:065f99e57af5db503baf2dbaa1b359af8b09f6d4101fb3ba23b4369bd63a6ef9
COPY libnvidia-gpucomp-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/libnvidia-ml-580.159.04-1.x86_64.rpm sha256:cc31c7a5b3ad7d4dcbc6632c64e5ccc6e1e570254e930eb1bd81b7e6ac5ec674
COPY libnvidia-ml-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/libnvidia-ml-580.159.04-1.aarch64.rpm sha256:fef6be4ea8b9a66c26c3ea7e710f6130cd3f7b2b5637d1b8e53c869a7daebef5
COPY libnvidia-ml-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/libnvidia-nscq-580.159.04-1.x86_64.rpm sha256:982929b05a28381568c8d48ae9de0016b7eee2a3a63587f2698ed8508b1dfc3d
COPY libnvidia-nscq-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/libnvidia-nscq-580.159.04-1.aarch64.rpm sha256:d0c5d3321d518ab7ce7014a30cc2e976b49462faa303c537b751cc0313828dfb
COPY libnvidia-nscq-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/libnvsdm-580.159.04-1.x86_64.rpm sha256:d42211bca43e27ecfa505eda80343471f1eb169956704c40338150dd736f6bf0
COPY libnvsdm-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/nvidia-common-G06-580.159.04-1.x86_64.rpm sha256:aab086171cda13b333b36aa61632c18af59c5c7489879e36531c14f4aff46f6f
COPY nvidia-common-G06-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/nvidia-common-G06-580.159.04-1.aarch64.rpm sha256:63d35e5edba2db481ce45e88694e1c2a1f3dc09a49a33749f4faa10bf719229e
COPY nvidia-common-G06-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/nvidia-compute-G06-580.159.04-1.x86_64.rpm sha256:a03e8c94fc48c08d041b656bd04915d6817feda091b553ff6eb7302e7c4f3215
COPY nvidia-compute-G06-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/nvidia-compute-G06-580.159.04-1.aarch64.rpm sha256:bbbe50a42090bf04721c3c3a50ccd27fe804185323ca41e5c4ace193e3a7f7d9
COPY nvidia-compute-G06-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/nvidia-compute-utils-G06-580.159.04-1.x86_64.rpm sha256:d993154767b60c37cdeb78abdb21c40e73a8f4c1af620e7f3ee7eed99bd50e76
COPY nvidia-compute-utils-G06-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/nvidia-compute-utils-G06-580.159.04-1.aarch64.rpm sha256:ad9f70fcde3826b30f2b12af569653b9397a3fa2598a95ff19d1df2170524d25
COPY nvidia-compute-utils-G06-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/nvidia-driver-G06-580.159.04-1.x86_64.rpm sha256:7619c90609611a99fd5d437570d788e07a3ad07fc50ccf492cd0f6ded204513a
COPY nvidia-driver-G06-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/nvidia-driver-G06-580.159.04-1.aarch64.rpm sha256:783f32028f14293761b8152e58fd4a1bc80f65ff0efbc27f795a1df59ee5880b
COPY nvidia-driver-G06-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/nvidia-driver-assistant-0.51.71.05-1.noarch.rpm nvidia-driver-assistant-0.51.71.05-1.x86_64.rpm sha256:01f2f3380df4ba9e0e9b523bea93de6ec36e5e4e97695fa29619ef4af7e8d3c7
COPY nvidia-driver-assistant-0.51.71.05-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/nvidia-driver-assistant-0.51.71.05-1.noarch.rpm nvidia-driver-assistant-0.51.71.05-1.aarch64.rpm sha256:01f2f3380df4ba9e0e9b523bea93de6ec36e5e4e97695fa29619ef4af7e8d3c7
COPY nvidia-driver-assistant-0.51.71.05-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/nvidia-fabricmanager-580.159.04-1.x86_64.rpm sha256:4c2941eba979ca9e35075c0d47b112d96db9ca3fb720378dd3a18cf3dcfa078f
COPY nvidia-fabricmanager-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/nvidia-fabricmanager-580.159.04-1.aarch64.rpm sha256:8031931905cdc8698db99d42c8779a0b68df6e7e03938b2684ceca275e44adbb
COPY nvidia-fabricmanager-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/nvidia-imex-580.159.04-1.x86_64.rpm sha256:b5f2acda7eb762b8c6779312f1182d8178496145a73340861aabc12ec8d6a9ea
COPY nvidia-imex-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/nvidia-imex-580.159.04-1.aarch64.rpm sha256:fc6a08bf1ac439ec03e056805b66c646ecb70e5746dbd3c68a6a515617f6109e
COPY nvidia-imex-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/nvidia-modprobe-580.159.04-1.x86_64.rpm sha256:4e4a45b90f9170801291856e5eb8a62621efdecf77bca92c33fa5de0bec2e191
COPY nvidia-modprobe-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/nvidia-modprobe-580.159.04-1.aarch64.rpm sha256:85025e6d872a434e0840fdee8a2be8d9db0b2a51e357ed87dcb644a6ada143b7
COPY nvidia-modprobe-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/nvidia-open-driver-G06-580.159.04-1.noarch.rpm nvidia-open-driver-G06-580.159.04-1.x86_64.rpm sha256:113edf5beffc42ebd103f2bfaf580789dd3159ae67bf15acfe3e84e949d63b9c
COPY nvidia-open-driver-G06-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/nvidia-open-driver-G06-580.159.04-1.noarch.rpm nvidia-open-driver-G06-580.159.04-1.aarch64.rpm sha256:113edf5beffc42ebd103f2bfaf580789dd3159ae67bf15acfe3e84e949d63b9c
COPY nvidia-open-driver-G06-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/nvidia-persistenced-580.159.04-1.x86_64.rpm sha256:520ecd2d60b768f74d3a711c77b1870c1bbf78c9e0f511f2642d5941263acb8d
COPY nvidia-persistenced-580.159.04-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/nvidia-persistenced-580.159.04-1.aarch64.rpm sha256:c41c5840032e86140b806da48fc29a48519d48bc96f02217c6464f75dcddfdb2
COPY nvidia-persistenced-580.159.04-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/nvlsm-2025.10.12-1.x86_64.rpm sha256:dd3fd41f09c905497f68778f29ce3bf77719297b6ec730eea43aefcc5e7dc8cb
COPY nvlsm-2025.10.12-1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://developer.download.nvidia.com/compute/cuda/repos/sles15/sbsa/nvlsm-2025.10.12-1.aarch64.rpm sha256:ae6ceb2a661baaa5c310db94f7d31c55e858c512c8d6b91226c1eecb639b3c33
COPY nvlsm-2025.10.12-1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP7:GA/pool/aarch64/kernel-64kb/kernel-64kb-6.4.0-150700.51.1.aarch64.rpm
COPY kernel-64kb-6.4.0-150700.51.1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP7:GA/pool/aarch64/kernel-64kb/kernel-64kb-devel-6.4.0-150700.51.1.aarch64.rpm
COPY kernel-64kb-devel-6.4.0-150700.51.1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP7:GA/pool/aarch64/kernel-default/kernel-default-devel-6.4.0-150700.51.1.aarch64.rpm
COPY kernel-default-devel-6.4.0-150700.51.1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP7:GA/pool/aarch64/kernel-syms/kernel-syms-6.4.0-150700.51.1.aarch64.rpm
COPY kernel-syms-6.4.0-150700.51.1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP7:GA/pool/aarch64/kernel-source/kernel-devel-6.4.0-150700.51.1.noarch.rpm kernel-devel-6.4.0-150700.51.1.aarch64.rpm
COPY kernel-devel-6.4.0-150700.51.1.aarch64.rpm /tmp/
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP7:GA/pool/aarch64/kernel-source/kernel-macros-6.4.0-150700.51.1.noarch.rpm kernel-macros-6.4.0-150700.51.1.aarch64.rpm
COPY kernel-macros-6.4.0-150700.51.1.aarch64.rpm /tmp/

COPY cuda-sles15-x86_64.repo /etc/zypp/repos.d/cuda-sles15-x86_64.repo
COPY cuda-sles15-x86_64.gpg.key /tmp/cuda-sles15-x86_64.gpg.key
RUN rpm --import /tmp/cuda-sles15-x86_64.gpg.key
RUN rpm --root /target --import /tmp/cuda-sles15-x86_64.gpg.key
COPY cuda-sles15-sbsa.repo /etc/zypp/repos.d/cuda-sles15-sbsa.repo
COPY cuda-sles15-sbsa.gpg.key /tmp/cuda-sles15-sbsa.gpg.key
RUN rpm --import /tmp/cuda-sles15-sbsa.gpg.key
RUN rpm --root /target --import /tmp/cuda-sles15-sbsa.gpg.key
FROM nvidia-driver-builder AS open-driver-builder
RUN set -euo pipefail; if [ "$(uname -m)" = "aarch64" ]; then \
        zypper -n --gpg-auto-import-keys install \
            --capability \
            --no-recommends \
            --auto-agree-with-licenses \
            /tmp/dkms-3.4.1-1.aarch64.rpm \
            /tmp/libOpenCL1-2.2.11-8.3.1.aarch64.rpm \
            /tmp/libnvidia-cfg-580.159.04-1.aarch64.rpm \
            /tmp/libnvidia-gpucomp-580.159.04-1.aarch64.rpm \
            /tmp/libnvidia-ml-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-common-G06-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-compute-G06-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-compute-utils-G06-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-driver-assistant-0.51.71.05-1.aarch64.rpm \
            /tmp/nvidia-modprobe-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-open-driver-G06-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-persistenced-580.159.04-1.aarch64.rpm \
            /tmp/kernel-64kb-6.4.0-150700.51.1.aarch64.rpm \
            /tmp/kernel-64kb-devel-6.4.0-150700.51.1.aarch64.rpm \
            /tmp/kernel-default-devel-6.4.0-150700.51.1.aarch64.rpm \
            /tmp/kernel-syms-6.4.0-150700.51.1.aarch64.rpm \
            /tmp/kernel-devel-6.4.0-150700.51.1.aarch64.rpm \
            /tmp/kernel-macros-6.4.0-150700.51.1.aarch64.rpm; \
    fi

RUN set -euo pipefail; if rpm -q dkms >/dev/null 2>&1; then \
        printf 'compress="zstd"\n' > /etc/dkms/framework.conf.d/module-compress.conf; \
        dkms autoinstall -k $(basename /lib/modules/*-64kb); \
    fi
RUN set -euo pipefail; cp -rfx /lib/modules/*/updates /opt/open
RUN set -euo pipefail; mkdir /opt/lib && cp -rfx /lib/firmware /opt/lib/firmware

FROM nvidia-driver-builder AS closed-driver-builder
RUN set -euo pipefail; if [ "$(uname -m)" = "aarch64" ]; then \
        zypper -n --gpg-auto-import-keys install \
            --capability \
            --no-recommends \
            --auto-agree-with-licenses \
            /tmp/dkms-3.4.1-1.aarch64.rpm \
            /tmp/libOpenCL1-2.2.11-8.3.1.aarch64.rpm \
            /tmp/libnvidia-cfg-580.159.04-1.aarch64.rpm \
            /tmp/libnvidia-gpucomp-580.159.04-1.aarch64.rpm \
            /tmp/libnvidia-ml-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-common-G06-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-compute-G06-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-compute-utils-G06-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-driver-G06-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-driver-assistant-0.51.71.05-1.aarch64.rpm \
            /tmp/nvidia-modprobe-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-persistenced-580.159.04-1.aarch64.rpm \
            /tmp/kernel-64kb-6.4.0-150700.51.1.aarch64.rpm \
            /tmp/kernel-64kb-devel-6.4.0-150700.51.1.aarch64.rpm \
            /tmp/kernel-default-devel-6.4.0-150700.51.1.aarch64.rpm \
            /tmp/kernel-syms-6.4.0-150700.51.1.aarch64.rpm \
            /tmp/kernel-devel-6.4.0-150700.51.1.aarch64.rpm \
            /tmp/kernel-macros-6.4.0-150700.51.1.aarch64.rpm; \
    fi

RUN set -euo pipefail; if rpm -q dkms >/dev/null 2>&1; then \
        printf 'compress="zstd"\n' > /etc/dkms/framework.conf.d/module-compress.conf; \
        dkms autoinstall -k $(basename /lib/modules/*-64kb); \
    fi
RUN set -euo pipefail; cp -rfx /lib/modules/*/updates /opt/proprietary

FROM nvidia-driver-builder AS builder

COPY --from=open-driver-builder /usr/share/nvidia-driver-assistant/supported-gpus/supported-gpus.json /target/usr/share/nvidia-driver-assistant/supported-gpus/supported-gpus.json
COPY --from=open-driver-builder /opt/lib /target/opt/lib
COPY --from=open-driver-builder /opt/open /target/opt/open
COPY --from=closed-driver-builder /opt/proprietary /target/opt/proprietary
RUN set -euo pipefail; if [ "$(uname -m)" = "aarch64" ]; then \
        rpm --root /target -Uvh --nodeps \
            /tmp/dkms-3.4.1-1.aarch64.rpm \
            /tmp/libOpenCL1-2.2.11-8.3.1.aarch64.rpm \
            /tmp/libnvidia-cfg-580.159.04-1.aarch64.rpm \
            /tmp/libnvidia-gpucomp-580.159.04-1.aarch64.rpm \
            /tmp/libnvidia-ml-580.159.04-1.aarch64.rpm \
            /tmp/libnvidia-nscq-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-common-G06-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-compute-G06-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-compute-utils-G06-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-driver-assistant-0.51.71.05-1.aarch64.rpm \
            /tmp/nvidia-fabricmanager-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-imex-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-modprobe-580.159.04-1.aarch64.rpm \
            /tmp/nvidia-persistenced-580.159.04-1.aarch64.rpm \
            /tmp/nvlsm-2025.10.12-1.aarch64.rpm; \
    fi

RUN set -euo pipefail; if rpm --root /target -q compat-usrmerge-tools; then rpm --root /target -e compat-usrmerge-tools; fi

# cleanup logs and temporary files
RUN set -euo pipefail; zypper -n --installroot /target clean -a; \
    rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}; \
    rm -rf {/target,}/run/*; \
    rm -f {/target,}/etc/{shadow-,group-,passwd-,.pwd.lock}; \
    rm -f {/target,}/usr/lib/sysimage/rpm/.rpm.lock; \
    rm -f {/target,}/var/lib/zypp/AnonymousUniqueId; \
    rm -f {/target,}/var/lib/zypp/AutoInstalled; \
    rm -f {/target,}/var/cache/ldconfig/aux-cache

# set the day of last password change to empty
RUN set -euo pipefail; sed -i 's/^\([^:]*:[^:]*:\)[^:]*\(:.*\)$/\1\2/' /target/etc/shadow
FROM registry.suse.com/bci/bci-micro:15.7
COPY --from=builder /target /
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=com.suse.third-party.nvidia-driver
LABEL org.opencontainers.image.authors="https://github.com/SUSE/bci/discussions"
LABEL org.opencontainers.image.title="NVIDIA Driver for SUSE Linux Enterprise Server 15 SP7"
LABEL org.opencontainers.image.description="NVIDIA Driver container based on the SUSE Linux Enterprise Base Container Image."
LABEL org.opencontainers.image.version="580.159.04"
LABEL org.opencontainers.image.url="https://www.suse.com/products/base-container-images/"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="SUSE LLC"
LABEL org.opencontainers.image.source="%SOURCEURL%"
LABEL org.opencontainers.image.ref.name="580-64kb-sles%OS_VERSION_ID_SP%"
LABEL org.opensuse.reference="registry.suse.com/third-party/nvidia/driver:580-64kb-sles%OS_VERSION_ID_SP%-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL com.suse.supportlevel="techpreview"
LABEL com.suse.supportlevel.until=""
LABEL com.suse.eula="sle-beta"
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle#suse-linux-enterprise-server-15"
LABEL com.suse.release-stage="beta"
# endlabelprefix
LABEL org.opencontainers.image.base.name="%BASE_REFNAME%"
LABEL org.opencontainers.image.base.digest="%BASE_DIGEST%"
LABEL io.artifacthub.package.readme-url="%SOURCEURL_WITH(README.driver-580-64kb.md)%"
ENV DISABLE_VGPU_VERSION_CHECK="true"
ENV DRIVER_BRANCH="580"
ENV DRIVER_TYPE="passthrough"
ENV DRIVER_VERSION="580.159.04"
ENV KERNEL_VERSION="latest"
ENV NVIDIA_VISIBLE_DEVICES="void"
ENV VGPU_LICENSE_SERVER_TYPE="NLS"
ENTRYPOINT ["nvidia-driver", "load"]

COPY extract-vmlinux /usr/local/bin/
RUN set -euo pipefail; chmod +x /usr/local/bin/extract-vmlinux

COPY nvidia-driver /usr/local/bin/
RUN set -euo pipefail; chmod +x /usr/local/bin/nvidia-driver

COPY nvidia-driver-selector.sh /usr/local/bin/
RUN set -euo pipefail; chmod +x /usr/local/bin/nvidia-driver-selector.sh

RUN set -euo pipefail; mkdir /licenses
COPY NGC-DL-CONTAINER-LICENSE /licenses

RUN set -euo pipefail; mkdir /drivers
COPY vGPU-README.md /drivers/README.md

WORKDIR /drivers

ENTRYPOINT ["nvidia-driver", "load"]
# Avoid blkid waiting on udev (bsc#1247914)
RUN set -euo pipefail; sed -i -e 's/^EVALUATE=.*/EVALUATE=scan/g' /etc/blkid.conf
