View Issue Details

IDProjectCategoryView StatusLast Update
0012079Rocky ServicesMirror Managerpublic2026-02-25 04:54
ReporterStephen Tuggy Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status newResolutionopen 
Platformx86_64OSRocky LinuxOS Version10.1
Summary0012079: 10.x devel repository mirrors not working
DescriptionEnabling the "Devel" repository for 10.0 and 10.x fails. It stopped working sometime in the last couple of months or so.

A similar bug was previously reported for 9.x: https://bugs.rockylinux.org/view.php?id=3268

Note that this is in the context of building a custom Docker image within a GitHub Actions workflow, based on rockylinux/rockylinux from Docker Hub.
Steps To ReproduceThese steps to reproduce may be more elaborate than needed, but I will go ahead and list them anyway.

Create a Dockerfile containing the following:

-------------------------------------------------------------------------------------
ARG from
FROM ${from}

WORKDIR /usr/local/src/build-system-docker-images

COPY script/ script/

RUN DEBIAN_FRONTEND=noninteractive script/bootstrap 1
-------------------------------------------------------------------------------------

Pass 'rockylinux/rockylinux:10.1' as the value of the 'from' argument from the GitHub workflow. For instance, create file .github/workflows/gh-actions-pr.yml, with the following contents:

-------------------------------------------------------------------------------------
name: 'GH Actions - PR'
permissions:
  contents: read
  pull-requests: read

on: [ pull_request ]

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        FROM:
          - 'rockylinux/rockylinux:10.1'
          - 'rockylinux/rockylinux:10.0'
          - 'rockylinux/rockylinux:9.7'
          - 'rockylinux/rockylinux:9.6'

    steps:
    - name: Checkout repository
      uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      with:
        # We must fetch at least the immediate parents so that if this is
        # a pull request then we can check out the head.
        fetch-depth: 2
        submodules: false

    # Ensure PRs are built against the PR Head
    # As opposed to the merge commit
    - name: Move to PR HEAD
      run: git checkout HEAD^2

    - name: Run CI
      env:
        FROM: ${{ matrix.FROM }}
        IS_RELEASE: 0
      run: script/cibuild
-------------------------------------------------------------------------------------

Next, create file script/cibuild, with the following contents:
-------------------------------------------------------------------------------------
#!/usr/bin/env bash

set -e

DOCKER_IMG_NAME="vegastrike/vega-strike-build-env:$(echo "$FROM" | sed 's/:/_/' | sed 's/\//_/')"
docker build --build-arg from="$FROM" -t "$DOCKER_IMG_NAME" .
if [ "${IS_RELEASE}" -eq 1 ]; then
    # NOTE: Login done by a Git Hub Action prior to this script being run
    docker push "$DOCKER_IMG_NAME"
fi

echo "cibuild Done!"
-------------------------------------------------------------------------------------

Next, create the script/bootstrap file, with the following contents:

-------------------------------------------------------------------------------------
#!/usr/bin/env bash

set -e

platform="$(uname | tr '[:upper:]' '[:lower:]')"

case "$platform" in
    "linux"|"linux-gnu")
        echo "Bootstrapping on Linux..."
        if [ -f ./script/bootstrap-on-linux.sh ] && [ -x ./script/bootstrap-on-linux.sh ]
        then
            ./script/bootstrap-on-linux.sh "$1"
        elif [ -f ./bootstrap-on-linux.sh ] && [ -x ./bootstrap-on-linux.sh ]
        then
            ./bootstrap-on-linux.sh "$1"
        else
            echo "Error locating bootstrap-on-linux.sh"
            exit 3
        fi
        ;;
    "darwin")
        echo "Bootstrapping on macOS X or later..."
        if [ -f ./script/bootstrap-on-macOS.sh ] && [ -x ./script/bootstrap-on-macOS.sh ]
        then
            ./script/bootstrap-on-macOS.sh "$1"
        elif [ -f ./bootstrap-on-macOS.sh ] && [ -x ./bootstrap-on-macOS.sh ]
        then
            ./bootstrap-on-macOS.sh "$1"
        else
            echo "Error locating bootstrap-on-macOS.sh"
            exit 3
        fi
        ;;
    *)
        echo "Sorry, unrecognized or unsupported operating system"
        exit 2
        ;;
esac
-------------------------------------------------------------------------------------

Next, create the script/bootstrap-on-linux.sh file, with at least the following contents:

-------------------------------------------------------------------------------------
#!/usr/bin/env bash

set -e

UPDATE_ALL_SYSTEM_PACKAGES="$1"

if [ -f /etc/os-release ]
then
    OS_RELEASE_LOCATION="/etc/os-release"
elif [ -f /usr/lib/os-release ]
then
    OS_RELEASE_LOCATION="/usr/lib/os-release"
else
    echo "os-release file not found; unable to continue"
    exit 1
fi
LINUX_ID=$(grep ^ID= $OS_RELEASE_LOCATION | sed 's/^ID=//' | tr -d '"\n')
echo "LINUX_ID = ${LINUX_ID}"
LINUX_CODENAME=$(grep ^VERSION_CODENAME= $OS_RELEASE_LOCATION | sed 's/^VERSION_CODENAME=//' | tr -d '"\n')
echo "LINUX_CODENAME = ${LINUX_CODENAME}"
LINUX_VERSION_ID=$(grep ^VERSION_ID= $OS_RELEASE_LOCATION | sed 's/^VERSION_ID=//' | tr -d '"\n')
echo "LINUX_VERSION_ID = ${LINUX_VERSION_ID}"

function bootstrapOnRockyLinux ()
{
    case "${LINUX_VERSION_ID}" in
        "9.6"|"9.7")
            if [ "${UPDATE_ALL_SYSTEM_PACKAGES}" -eq 1 ]
            then
                dnf -y upgrade --refresh
            fi
            dnf -y install dnf-plugins-core
            dnf -y config-manager --set-enabled crb
            dnf -y config-manager --set-enabled devel
            dnf -y install epel-release
            dnf -y update
            dnf -y install \
                                git \
                                cmake \
                                gcc-c++ \
                                rpm-build \
                                make \
                                autoconf \
                                autoconf-archive \
                                automake \
                                libtool \
                                curl-minimal \
                                zip \
                                unzip \
                                tar \
                                kernel-headers \
                                perl \
                                libX11-devel \
                                xorg-x11-proto-devel \
                                libXfixes-devel \
                                libXi-devel \
                                libXmu-devel \
                                libXrandr-devel \
                                libXtst-devel \
                                wayland-devel \
                                libxkbcommon-devel \
                                wayland-protocols-devel \
                                ibus-devel \
                                python3-jinja2 \
                                boost-devel \
                                boost-python3-devel \
                                boost-json \
                                freeglut-devel \
                                openal-soft-devel \
                                SDL2-devel \
                                SDL2_image-devel \
                                libvorbis-devel \
                                libglvnd-devel \
                                libjpeg-turbo-devel \
                                libpng-devel \
                                expat-devel \
                                gtk3-devel \
                                python3-devel \
                                libarchive-devel \
                                clang \
                                fribidi-devel \
                                mesa-libGLU-devel \
                                libtool-ltdl-devel
            ;;
        "10.0"|"10.1")
            declare -a pkgs_to_uninstall=('SDL2-devel' 'SDL2')
            for pkg in "${pkgs_to_uninstall[@]}"
            do
                if dnf list installed | grep -qF "$pkg"; then
                    dnf -y remove "$pkg"
                else
                    echo "Package '$pkg' is not installed."
                fi
            done

            if [ "${UPDATE_ALL_SYSTEM_PACKAGES}" -eq 1 ]
            then
                dnf -y upgrade --refresh
            fi
            dnf -y install 'dnf-command(config-manager)'
            dnf -y config-manager --set-enabled crb
            dnf -y config-manager --set-enabled devel
            dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm
            dnf -y update
            dnf -y install \
                                git \
                                cmake \
                                gcc-c++ \
                                rpm-build \
                                make \
                                autoconf \
                                autoconf-archive \
                                automake \
                                libtool \
                                curl \
                                zip \
                                unzip \
                                tar \
                                kernel-headers \
                                perl \
                                libX11-devel \
                                xorg-x11-proto-devel \
                                libXfixes-devel \
                                libXi-devel \
                                libXmu-devel \
                                libXrandr-devel \
                                libXtst-devel \
                                wayland-devel \
                                libxkbcommon-devel \
                                wayland-protocols-devel \
                                ibus-devel \
                                python3-jinja2 \
                                boost-devel \
                                boost-python3-devel \
                                boost-json \
                                freeglut-devel \
                                openal-soft-devel \
                                SDL3-devel \
                                sdl2-compat-devel \
                                SDL2_image-devel \
                                libvorbis-devel \
                                libglvnd-devel \
                                libjpeg-turbo-devel \
                                libpng-devel \
                                expat-devel \
                                gtk3-devel \
                                python3-devel \
                                libarchive-devel \
                                clang \
                                fribidi-devel \
                                mesa-libGLU-devel \
                                libtool-ltdl-devel
            ;;
        *)
            echo "Sorry, this version of Rocky Linux is unsupported"
            exit 2
            ;;
    esac
}

case "${LINUX_ID}" in
    "rocky")
        bootstrapOnRockyLinux
        ;;
    *)
        echo "Sorry, unrecognized/unsupported Linux distribution"
        exit 2
        ;;
esac

echo "Bootstrapping finished!"
-------------------------------------------------------------------------------------
Additional InformationThe 9.6 and 9.7 mirrors are working just fine. It's only the 10.0 and 10.1 mirrors that are broken, AFAICT.
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2026-02-25 04:54 Stephen Tuggy New Issue