# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note

#     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: x86_64
#!BuildTag: third-party/amd/amdgpu-driver:sles-%OS_VERSION_ID_SP%-7.0.3-%RELEASE%
#!BuildTag: third-party/amd/amdgpu-driver:sles-%OS_VERSION_ID_SP%-7.0.3
#!BuildTag: third-party/amd/amdgpu-driver:sles-15.7-6.4.0-150700.51-default-7.0.3
#!BuildName: amd-driver-7.0.3
#!BuildVersion: 15.7.7.0.3
FROM registry.suse.com/bci/bci-micro:15.7 AS target
FROM registry.suse.com/bci/bci-base:15.7 AS builder
COPY --from=target / /target
RUN set -euo pipefail; zypper -n install --no-recommends awk dwarves elfutils gcc libelf-devel pesign-obs-integration zstd autoconf automake bc bison dracut flex gawk libzstd-devel make mokutil perl perl-Bootloader python3 python3-setuptools python3-wheel
RUN set -euo pipefail; \
    export CHKSTAT_ALLOW_INSECURE_MODE_IF_NO_PROC=1; \
    zypper -n --installroot /target --gpg-auto-import-keys install --no-recommends rpm-ndb kmod sles-release
RUN mkdir -p /tmp/
#!RemoteAssetUrl: https://repo.radeon.com/amdgpu/7.0.3/sle/15.7/main/x86_64/amdgpu-dkms-6.14.14-2247874.noarch.rpm amdgpu-dkms-6.14.14-2247874.x86_64.rpm sha256:9b15943e0de348e06cdb27242cdb8d2022cdacf3c3afdf4261c3e8b9621874c4
COPY amdgpu-dkms-6.14.14-2247874.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://repo.radeon.com/amdgpu/7.0.3/sle/15.7/main/x86_64/amdgpu-dkms-firmware-30.10.3.0.30100300-2247874.noarch.rpm amdgpu-dkms-firmware-30.10.3.0.30100300-2247874.x86_64.rpm sha256:8898216d56dcae5d807b07cefd6d98bf6db784cf2e6e4693254ecb28733e6882
COPY amdgpu-dkms-firmware-30.10.3.0.30100300-2247874.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://repo.radeon.com/amdgpu/7.0.3/sle/15.7/main/x86_64/dkms-3.0.11-bp156.1.2.noarch.rpm dkms-3.0.11-bp156.1.2.x86_64.rpm sha256:e23d830e20fa1cb64d03e1aa34637dcae590788d3e07c02a75631bde8454e2d5
COPY dkms-3.0.11-bp156.1.2.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP7:GA/pool/x86_64/kernel-default/kernel-default-6.4.0-150700.51.1.x86_64.rpm
COPY kernel-default-6.4.0-150700.51.1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP7:GA/pool/x86_64/kernel-default/kernel-default-devel-6.4.0-150700.51.1.x86_64.rpm
COPY kernel-default-devel-6.4.0-150700.51.1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP7:GA/pool/x86_64/kernel-syms/kernel-syms-6.4.0-150700.51.1.x86_64.rpm
COPY kernel-syms-6.4.0-150700.51.1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP7:GA/pool/x86_64/kernel-source/kernel-devel-6.4.0-150700.51.1.noarch.rpm kernel-devel-6.4.0-150700.51.1.x86_64.rpm
COPY kernel-devel-6.4.0-150700.51.1.x86_64.rpm /tmp/
#!RemoteAssetUrl: https://api.opensuse.org/public/build/SUSE:SLE-15-SP7:GA/pool/x86_64/kernel-source/kernel-macros-6.4.0-150700.51.1.noarch.rpm kernel-macros-6.4.0-150700.51.1.x86_64.rpm
COPY kernel-macros-6.4.0-150700.51.1.x86_64.rpm /tmp/

COPY radeon-sles15sp7-x86_64.gpg.key /tmp/radeon-sles15sp7-x86_64.gpg.key
RUN rpm --import /tmp/radeon-sles15sp7-x86_64.gpg.key


RUN if [ "$(uname -m)" = "x86_64" ]; then \
        zypper -n install \
            /tmp/amdgpu-dkms-6.14.14-2247874.x86_64.rpm \
            /tmp/amdgpu-dkms-firmware-30.10.3.0.30100300-2247874.x86_64.rpm \
            /tmp/dkms-3.0.11-bp156.1.2.x86_64.rpm \
            /tmp/kernel-default-6.4.0-150700.51.1.x86_64.rpm \
            /tmp/kernel-default-devel-6.4.0-150700.51.1.x86_64.rpm \
            /tmp/kernel-syms-6.4.0-150700.51.1.x86_64.rpm \
            /tmp/kernel-devel-6.4.0-150700.51.1.x86_64.rpm \
            /tmp/kernel-macros-6.4.0-150700.51.1.x86_64.rpm; \
    fi

COPY radeon-sles15sp7-x86_64.repo /etc/zypp/repos.d/radeon-sles15sp7-x86_64.repo

RUN rm -rf /tmp/*

# decompress modules for getKmodsToSign (kmmmodule.go) since it expects uncompressed files
RUN set -euo pipefail; \
    find /lib/modules/6.4.0-150700.51-default -name "*.ko.zst" -exec zstd -d --rm {} \;; \
    depmod 6.4.0-150700.51-default

# copy modules to /opt since getKmodsToSign (kmmmodule.go) expects it there
RUN set -euo pipefail; \
    mkdir -p /target/opt/lib/modules/6.4.0-150700.51-default/updates/dkms; \
    cp /lib/modules/6.4.0-150700.51-default/updates/amd* /target/opt/lib/modules/6.4.0-150700.51-default/updates/dkms; \
    cp /lib/modules/6.4.0-150700.51-default/modules.* /target/opt/lib/modules/6.4.0-150700.51-default/; \
    cp -r /lib/modules/6.4.0-150700.51-default/kernel /target/opt/lib/modules/6.4.0-150700.51-default/kernel; \
    depmod -b /target/opt 6.4.0-150700.51-default

# copy firmware to /firmwareDir
RUN set -euo pipefail; \
    mkdir -p /target/firmwareDir/updates/amdgpu; \
    cp -r /lib/firmware/updates/amdgpu /target/firmwareDir/updates/amdgpu; \
    install -p -D /usr/share/doc/packages/amdgpu-dkms-firmware/LICENSE /target/usr/share/licenses/amdgpu-dkms-firmware/LICENSE

# 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.amd-driver
LABEL org.opencontainers.image.authors="https://github.com/SUSE/bci/discussions"
LABEL org.opencontainers.image.title="AMD GPU Driver for SUSE Linux Enterprise Server 15 SP7"
LABEL org.opencontainers.image.description="AMD GPU Driver container based on the SUSE Linux Enterprise Base Container Image."
LABEL org.opencontainers.image.version="7.0.3"
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="sles-%OS_VERSION_ID_SP%-7.0.3"
LABEL org.opensuse.reference="registry.suse.com/third-party/amd/amdgpu-driver:sles-%OS_VERSION_ID_SP%-7.0.3-%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.md)%"
# Avoid blkid waiting on udev (bsc#1247914)
RUN set -euo pipefail; sed -i -e 's/^EVALUATE=.*/EVALUATE=scan/g' /etc/blkid.conf
