Commit baaa403ba1 for openssl.org

commit baaa403ba1e7aede17bf5623be9860260896fe16
Author: Eugene Syromiatnikov <esyr@openssl.org>
Date:   Wed Sep 16 15:02:14 2026 +0200

    .github/workflows: add Rolling OS Zoo CI workflow

    Populate it with Alpine Edge, Debian Unstable, Ubuntu Rolling,
    and Fedora Rawhide, running on weekly schedule.  Remove Alpine Edge
    from the regular OS Zoo CI.

    Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
    Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org>
    Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
    Merge-date: Mon Sep 21 09:46:31 2026
    Merged-from: https://github.com/openssl/openssl/pull/32852

diff --git a/.github/workflows/os-zoo-rolling.yml b/.github/workflows/os-zoo-rolling.yml
new file mode 100644
index 0000000000..2ae90743ab
--- /dev/null
+++ b/.github/workflows/os-zoo-rolling.yml
@@ -0,0 +1,122 @@
+# Copyright 2021-2026 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+name: Rolling OS Zoo CI
+
+on:
+  schedule:
+    - cron: '50 03 * * 6'
+  workflow_dispatch:
+    inputs:
+      pr:
+        description: 'Internal: openssl-ci-bot PR number. Leave empty for a normal manual run.'
+        required: false
+        type: string
+      head_sha:
+        description: 'Internal: openssl-ci-bot commit SHA. Leave empty for a normal manual run.'
+        required: false
+        type: string
+      check_run_id:
+        description: 'Internal: openssl-ci-bot check-run ID. Leave empty for a normal manual run.'
+        required: false
+        type: string
+
+# Keep in sync with openssl-ci-bot's run-name parser, and with the Actions statistics
+# collector that attributes CI load by parsing this same string. Both break silently.
+run-name: >-
+  ${{ github.event.inputs.pr && format('ci-dispatch pr={0} head={1} check_run_id={2}', github.event.inputs.pr, github.event.inputs.head_sha, github.event.inputs.check_run_id) || github.workflow }}
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.inputs.pr || github.run_id }}
+
+permissions:
+  contents: read
+
+jobs:
+  # Only a dispatch carries inputs, so this is skipped on the nightly cron.
+  validate-dispatch-inputs:
+    if: |
+      github.repository == 'openssl/openssl' &&
+      (inputs.pr != '' || inputs.head_sha != '' || inputs.check_run_id != '')
+    uses: ./.github/workflows/validate-dispatch-inputs.yml
+    with:
+      pr: ${{ inputs.pr }}
+      head_sha: ${{ inputs.head_sha }}
+      check_run_id: ${{ inputs.check_run_id }}
+
+  alpine:
+    if: github.repository == 'openssl/openssl'
+    strategy:
+      fail-fast: false
+      matrix:
+        tag: [edge]
+        cc: [gcc, clang]
+    runs-on: ubuntu-latest
+    container:
+      image: docker.io/library/alpine:${{ matrix.tag }}
+    env:
+      # See https://www.openwall.com/lists/musl/2022/02/16/14
+      # for the reason why -Wno-sign-compare is needed with clang
+      # -Wno-stringop-overflow is needed to silence a bogus
+      # warning on new fortify-headers with gcc
+      EXTRA_CFLAGS: ${{ matrix.cc == 'clang' && '-Wno-sign-compare' || '-Wno-stringop-overflow' }}
+      CC: ${{ matrix.cc }}
+    steps:
+    - name: install packages
+      run: apk --no-cache add build-base perl linux-headers python3 ${{ matrix.cc }}
+    - uses: actions/checkout@v6
+      with:
+        persist-credentials: false
+        ref: ${{ github.event.inputs.head_sha || github.sha }}
+    - name: config
+      run: |
+        ./config --strict-warnings --banner=Configured no-shared enable-fips \
+                 ${EXTRA_CFLAGS}
+    - name: config dump
+      run: ./configdata.pm --dump
+    - name: make
+      run: make -s -j4 -k
+    - name: get cpu info
+      run: |
+        cat /proc/cpuinfo
+        ./util/opensslwrap.sh version -c
+    - name: make test
+      run: make test HARNESS_JOBS=${HARNESS_JOBS:-4} LHASH_WORKERS=${LHASH_WORKERS:-16}
+
+  linux:
+    if: github.repository == 'openssl/openssl'
+    strategy:
+      fail-fast: false
+      matrix:
+        zoo:
+          - image: docker.io/library/debian:unstable
+            install: apt-get update && apt-get install -y gcc make perl libc6-dev
+          - image: docker.io/library/ubuntu:rolling
+            install: apt-get update && apt-get install -y gcc make perl
+          - image: docker.io/library/fedora:rawhide
+            install: dnf install -y gcc make perl-core
+    runs-on: ubuntu-latest
+    container: ${{ matrix.zoo.image }}
+    steps:
+    - uses: actions/checkout@v6
+      with:
+        persist-credentials: false
+        ref: ${{ github.event.inputs.head_sha || github.sha }}
+    - name: install packages
+      run: ${{ matrix.zoo.install }}
+    - name: config
+      run: ./config
+    - name: config dump
+      run: ./configdata.pm --dump
+    - name: make
+      run: make -s -j4 -k
+    - name: get cpu info
+      run: |
+        cat /proc/cpuinfo
+        ./util/opensslwrap.sh version -c
+    - name: make test
+      run: make test HARNESS_JOBS=${HARNESS_JOBS:-4} LHASH_WORKERS=${LHASH_WORKERS:-16}
diff --git a/.github/workflows/os-zoo.yml b/.github/workflows/os-zoo.yml
index 917ecd8368..02aa6d08b4 100644
--- a/.github/workflows/os-zoo.yml
+++ b/.github/workflows/os-zoo.yml
@@ -58,7 +58,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        tag: [edge, latest]
+        tag: [latest]
         cc: [gcc, clang]
     runs-on: ubuntu-latest
     container: