FROM quay.io/centos/centos:stream9

# Replace the default repo file (metalink-based, unreliable in CI) with
# one that uses direct baseurl mirrors. CRB is enabled here so packages
# like libnbd-devel are available without a separate config-manager call.
COPY centos.repo /etc/yum.repos.d/centos.repo

# Install build dependencies, then fix the EPEL repo (which only exists after
# epel-release is installed), disable unused EPEL side-repos, and install UPX.
RUN dnf -y update && \
    dnf install -y \
        golang \
        libnbd-devel \
        gcc \
        make \
        git \
        epel-release && \
    sed -i \
        -e 's|^metalink=|#metalink=|g' \
        -e 's|^#baseurl=https://download.example/|baseurl=https://dl.fedoraproject.org/|g' \
        /etc/yum.repos.d/epel.repo && \
    sed -i 's/^enabled=1/enabled=0/' \
        /etc/yum.repos.d/epel-cisco-openh264.repo \
        /etc/yum.repos.d/epel-next.repo \
        /etc/yum.repos.d/epel-next-testing.repo \
        /etc/yum.repos.d/epel-testing.repo && \
    { dnf install -y upx || echo "UPX not available in EPEL — skipping."; } && \
    dnf clean all

# Disable extras-common (uses metalink, not needed for Go builds).
# centos-addons.repo ships in the base image so this runs before any dnf call.
RUN sed -i '/^\[extras-common\]/,/^\[/{s/^enabled=1/enabled=0/}' \
    /etc/yum.repos.d/centos-addons.repo

WORKDIR /code
