Drop stale hardcoded versions (point to version.env) and content already
covered by the root README; fix el7 socket-activation wording, document
the openssh.initv.spec variant and SPECFILE switch.
BUILD_RPM now creates the rpmbuild _topdir subdirs (BUILD/RPMS/SRPMS/
SOURCES/SPECS) itself, so the 11 tracked .keep placeholders (downloads,
output, el*/{BUILD,RPMS,SRPMS}) are no longer needed; output/ and
downloads/ were already created by compile.sh/pullsrc.sh.
TOPDIR_SELECT now assigns rpmtopdir from GUESS_DIST directly and uses a
single -d guard instead of a 4-branch identity-mapping case; the el5/el6
WITH_OPENSSL=2 default is dropped (BUILD_RPM already falls back to 2),
keeping only the el7 system-openssl auto-detection. Main flow collapses
case fallthrough + manual-dir + trailing checks into one dispatch case.
Drop per-distro special cases (Anolis an7/an8, UOS uel*) in favor of a
generic rule: only el5/el6 keep dedicated spec dirs, everything else
maps to el7. Collapse the redundant glibc fallback chain into default
branches.
DNF 4.x baseurl is list type (space-separated on one line per
dnf.readthedocs.io); repeated baseurl= keys overwrite and only the
last survives. Rewrite join_baseurls and add rewrite_baseurls helper
to emit single baseurl= line with space-separated mirrors while
preserving remainder after prefix (fixes multi-line sed truncation).
Keep official-first ordering for GitHub CI. Also quote ELDIR in
docker_compile.sh to pass shellcheck.
- modify_dnf_source.pl: prioritize official live mirrors
https://mirror.stream.centos.org and https://mirrors.kernel.org/centos
before aliyun/ustc/iij/yandex; add header comment that live handling is
for still-supported Stream EL and vault handling lives in
modify_yum_source.sh
- Standalone Dockerfiles for Amazon Linux / openEuler / Rocky Linux have been
consolidated into the generic EL images (reusing EL8/EL9 via glibc
compatibility) and are no longer maintained separately.
- 8-stream (EOL): switch from single vault.centos.org to 3 verified vault mirrors
https://mirrors.aliyun.com/centos-vault/8-stream/https://ftp.iij.ad.jp/pub/linux/centos-vault/8-stream/https://ftp.yandex.ru/centos/centos/8-stream/ (dual-path validated)
via multi-baseurl sed in Dockerfile.centos-stream EL8 branch
- 9-stream: update modify_dnf_source.pl @mirrors to 4 verified stream mirrors
(mirrors.aliyun, mirrors.ustc, ftp.iij, ftp.yandex /centos-stream)
drop vault.centos.org (404 for active 9-stream, verified via HEAD)
- verified repodata (BaseOS/$basearch/os/repodata/repomd.xml) on both arches
RPM does not allow '-' in the Release field (it is the Version/Release
delimiter). The 'uos20-' prefix produced Release values like 'uos20-b1.el8'
which rpmbuild rejects with 'Illegal char '-' (0x2d)'. Switch to 'uos20.'.
The standard EL 8 build does not include the do_dup2() kernel-panic
workaround needed on UOS 20 kernels. Point UOS 20 users at the UOS20
variant instead, matching the dedicated 'Build for uniontech UOS 20'
section in Other Notes.
Replace the hardcoded 'el7' / 'x86_64' filter with ARCH and EL
variables, populated from `uname -m` and `./compile.sh GETEL`
respectively. UOS 20 still requires manually setting EL=uos20
since it's not auto-detectable from the running system.
PKGREL=1 + 'uos20' prefix concatenated to 'uos201', which reads as
'uos two hundred one' rather than 'uos20 version 1'. Add a hyphen
('uos20-') so the resulting release tag is 'uos20-1' / 'uos20-b12' etc.
Update compile.sh logic and the three doc references (README,
AGENTS.md, docker/README.md) to match.
Add an 'Other Notes' subsection describing the UOS 20 kernel
do_dup2() panic, the openssh-uos20-kernel-panic-fix.patch workaround,
and how to opt in via UOS20=1 (which also prefixes PKGREL with uos20).
Note that ordinary EL7/8/9 builds are unaffected, and link to the
Docker build instructions for the same variant.
The upload-artifact template hardcoded 'el' as a prefix
(rpm-el${el}-${arch}), which glued 'el' to non-numeric el values
like 'uos20' and produced ugly artifact names such as
'rpm-eluos20-x86_64'.
Add an explicit 'artifact' field to each matrix entry carrying the
full artifact name, and reference it directly in the upload step.
This keeps naming fully self-describing per entry and lets future
variants pick their own label without touching the template.
Add a UOS 20 matrix entry to both build-arm64 and build-amd64 jobs,
reusing the existing el8 / aarch64_el8 base images and passing
-e UOS20=1 to the container. Artifact names use 'uos20' (rpm-uos20-x86_64,
rpm-uos20-aarch64) so they are distinguishable from the standard el8
builds in releases.
The release job already downloads everything under artifacts/, so no
changes there.
Add a UOS 20 Variant subsection in the EL7 build area and a row in the
Build Arguments table, showing how to reuse the elssh:el7 image with
-e UOS20=1 to produce UOS 20 RPMs.
The UOS 20 build was previously a near-duplicate spec (openssh.uos20.spec)
with only the kernel-panic patch as an intentional difference. The
kerberos5 and gssapi drift was unintentional and caused maintenance pain
upstream changes had to be applied in two places.
Now there is one spec. The kernel-panic patch is gated on a uos20 macro
that compile.sh sets only when UOS20=1 is in the environment, so non-UOS
builds cannot accidentally pick it up. When UOS20=1, PKGREL is prefixed
with 'uos20' so the resulting RPMs are distinguishable from the standard
build (e.g. PKGREL=1 -> uos201).
Delete openssh.uos20.spec, document UOS20=1 in AGENTS.md.