View Issue Details

IDProjectCategoryView StatusLast Update
0012079Rocky ServicesMirror Managerpublic2026-02-26 06:57
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

Stephen Tuggy

Stephen Tuggy

2026-02-26 02:58

reporter   ~0012838

Update: This appears to be fixed.

Issue History

Date Modified Username Field Change
2026-02-25 04:54 Stephen Tuggy New Issue
2026-02-26 02:58 Stephen Tuggy Note Added: 0012838