Commit Graph

303 Commits

Author SHA1 Message Date
boypt
e9a25bd29a refactor: simplify GUESS_DIST to generic el5/el6/el7 mapping
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.
2026-08-24 13:49:24 +08:00
boypt
568202d282 refactor: remove GH_PROXY mechanism 2026-08-22 00:12:13 +08:00
boypt
a33c6b5efe docs(docker): document repos must be rewritten before any dnf operation in modify_el8 2026-08-21 17:59:25 +08:00
boypt
ff80eac7f7 refactor(docker): rewrite_baseurls comments out original line and appends own baseurl 2026-08-21 16:47:00 +08:00
boypt
cabaf74682 fix(docker): match '# baseurl=' with space in rewrite_baseurls for el6 sclo 2026-08-21 16:29:56 +08:00
boypt
af284228a1 fix(docker): drop archives.fedoraproject.org from EPEL to avoid el5 https redirect 2026-08-21 16:24:20 +08:00
boypt
aa02c16f46 fix: use single-line baseurl list for DNF 4.x compatibility
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.
2026-08-21 16:10:27 +08:00
boypt
f85590a72e refactor(docker): rename to modify_vault/live_source and unify to bash
- git mv modify_yum_source.sh -> modify_vault_source.sh (vault: EL5/6/7/8)
- git mv modify_dnf_source.pl -> modify_live_source.sh and rewrite perl
  logic in bash (LIVE_MIRRORS array official-first: mirror.stream.centos.org,
  mirrors.kernel.org/centos, aliyun/ustc/iij/yandex; bash -n clean)
- update Dockerfile.centos/centos5 to call modify_vault_source.sh
- update Dockerfile.centos-stream EL8 to call modify_vault_source.sh and
  EL9 to call modify_live_source.sh via bash (drop perl dep for Stream 9)
- AGENTS.md: update vault script reference
2026-08-21 14:01:21 +08:00
boypt
4dbb7babec docs(docker): add live-source official mirrors and clarify vault/live scope
- 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
2026-08-21 13:52:00 +08:00
boypt
67dbf9ae04 refactor(docker): reorganize vault mirrors to top arrays, merge shared vault/epel
- move EL8 vault sed from Dockerfile.centos-stream into modify_yum_source.sh:modify_el8()
  and simplify Dockerfile EL8 branch to bash ./docker/modify_yum_source.sh
- extract hardcoded one-line baseurl strings into top-level arrays for easy maintenance:
  VAULT (official-first HTTPS shared by el7/altarch/8-stream; yandex excluded),
  VAULT_HTTP (plain HTTP for el5/6), EPEL (merged EPEL_EL7+EPEL_HTTP)
- merge VAULT_EL7+VAULT_EL8 (verified 5/5 cross-available, domestic not prioritized for CI)
  and EPEL_EL7+EPEL_HTTP (both http); de-duplicate aliyun
- reprioritize VAULT official-first: vault.centos.org -> archive.kernel.org -> aliyun/iij
  (yandex excluded from VAULT, kept only in VAULT_HTTP/EPEL)
- rewrite VAULT/VAULT_HTTP header comments with selection rationale
2026-08-21 13:38:57 +08:00
boypt
88a11ca9ca docs: fix markdown table separator (use ---- not ====) 2026-08-21 12:13:10 +08:00
boypt
7ae3bb4d1e docs: align UOS20 to EL8 image and map Recommended RPMs to CI artifacts
- README.md table: replace meaningless aarch64_el7/8/9 tags with actual CI
  artifacts (rpm-el5-x86_64/i686, rpm-el6-x86_64, rpm-el7/8/9-*,
  rpm-uos20-*), fuzzy version via artifact name; fix UOS20 row from
  aarch64_el7 to rpm-uos20-*
- README.md: UOS20=1 ./compile.sh el7 -> el8 (spec remains el7 via
  GUESS_DIST), anchor #uos-20-variant-el7-family -> #uos-20-variant-el8
- docker/README.md: UOS 20 Variant (EL7-family) -> (EL8), reuse EL7
  image / Dockerfile.centos:7 -> reuse EL8 image via
  Dockerfile.centos-stream:8 (with GUESS_DIST note), uos20- -> uos20.,
  build-args table EL7 -> EL8
2026-08-21 12:09:34 +08:00
boypt
ad677a79a3 docs(docker): translate Chinese note to English for consistency
- 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.
2026-08-21 11:31:03 +08:00
boypt
234a5acf00 fix(docker): correct 8-stream vault baseurl to avoid duplication
- revert EL8 sed to use vault roots without /8-stream suffix:
  https://mirrors.aliyun.com/centos-vault
  https://ftp.iij.ad.jp/pub/linux/centos-vault
  https://ftp.yandex.ru/centos/centos
  (previously included /8-stream causing 8-stream/8-stream duplication
   since repo file retains /$releasever suffix; vault.centos.org logic
   confirmed single vault root works)
- fixes buildx failure in 32441214302 (el8 sed exit 1)
2026-08-21 10:52:50 +08:00
boypt
e062237c5c fix(docker): use verified vault/stream mirrors for 8/9-stream
- 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
2026-08-21 10:49:44 +08:00
boypt
464f44b1ed refactor(docker): remove MIRROR branching, use multi-baseurl failover
- drop ARG MIRROR / MIRROR_HOLDER sed injection across all Dockerfiles
- modify_yum_source.sh: EL5/6 use 4x HTTP centos-vault + 5x HTTP epel
  (ftp.iij, mirrors.aliyun, ftp.yandex, ftp.pasteur / sindad, debian.sbor)
  to avoid TLS/302 on Python2.4; EL7 keep 2x HTTPS vault + 2x epel
- modify_dnf_source.pl: replace single mirror holder with @mirrors array
  (vault.centos.org, mirrors.ustc, mirrors.aliyun) emitting multi baseurl
- Dockerfile.centos-stream: EL9 now unconditional perl, EL8 vault direct
- workflows/README: drop MIRROR docs and build-args
- shfmt fix docker_compile.sh (tabs)
2026-08-21 10:12:41 +08:00
boypt
e1da586e03 docs: update README/AGENTS for aarch64 support
- README: expand supported distro table to 4 cols with Arch (x86_64/aarch64) and per-arch tags aarch64_el7/8/9, add altarch note
- AGENTS: add Supported architectures (per-arch tags) and altarch vault handling, expand CI matrix details for build-images (5+3) and build-rpm (arm64@ubuntu-24.04-arm)
2026-08-20 17:28:34 +08:00
boypt
9e54e5d205 style: shfmt docker/modify_yum_source.sh (tabs) 2026-08-20 16:50:07 +08:00
boypt
c52b9968ed fix(docker): handle el7 aarch64 altarch baseurl and make epel sed robust 2026-08-20 16:42:48 +08:00
boypt
116e7ec791 fix(docker): use HTTP aliyun EPEL for el5 to avoid Python2.4 HTTPS redirect (302) 2026-08-20 16:38:52 +08:00
boypt
f961f49444 fix(pullsrc): download perl for DOCKERBUILD without GETEL check (fix el5 lstat) 2026-08-20 16:27:46 +08:00
boypt
d551b20885 ci: remove redundant Replace Mirror URL steps, keep source intact 2026-08-20 16:19:35 +08:00
boypt
f82afb75b3 fix(ci): correct Replace Mirror URL regex to avoid Dockerfile truncation 2026-08-20 16:17:27 +08:00
boypt
1a6c26eeba refactor(docker): simplify images, move el8 to centos-stream, isolate el5, fix altarch/metalink 2026-08-20 16:09:50 +08:00
boypt
43ff05ed49 fix: ignore dot files 2026-08-16 11:24:29 +08:00
boypt
cbb519644d lint: add shellcheck/shfmt rules to AGENTS.md, format compile.sh and pullsrc.sh 2026-08-16 11:21:01 +08:00
boypt
277ccf7ec4 cleanup: remove deprecated --with-md5-passwords, --with-smartcard, --with-systemd, and fix kerberos5 in initv spec 2026-08-16 10:59:00 +08:00
boypt
385c677425 config: add .opencode/opencode.json for edit/bash/external_directory permissions
Allow editing version.env without confirmation, allow /tmp external
directory access, and default bash commands to ask.
2026-08-11 15:42:00 +08:00
boypt
4c8b1fb2e9 fix: use '.' separator in UOS20 PKGREL prefix to avoid illegal '-' in Release field
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.'.
v10.5p1_b2
2026-08-11 15:17:39 +08:00
boypt
31c5e61c6e ver bump: 10.5p1 v10.5p1_b1 2026-08-11 15:09:58 +08:00
boypt
b0690b2822 docs: mark UnionTech UOS V20 as UOS20 variant in Supported Distro
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.
2026-08-07 17:05:07 +08:00
boypt
f7b7dfccc2 docs: auto-detect ARCH and EL when downloading from latest release
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.
2026-08-07 17:04:12 +08:00
boypt
d6bcab2809 fix: use 'uos20-' as PKGREL prefix to avoid unreadable 'uos201'
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.
2026-08-07 16:48:38 +08:00
boypt
1dddf9eb4a docs: document UOS20=1 build variant in README
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.
2026-08-07 16:46:04 +08:00
boypt
761cc835d7 ci: decouple artifact name from matrix.el/arch via explicit field
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.
v10.4p1_b13
2026-08-07 16:34:30 +08:00
boypt
59870bad71 ci: build UOS 20 RPMs in build-rpm workflow (x86_64 + aarch64)
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.
v10.4p1_b12
2026-08-07 16:19:28 +08:00
boypt
422e850fe0 docs: document UOS20=1 docker build variant
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.
2026-08-07 16:15:27 +08:00
boypt
ef31f9cb53 refactor: consolidate UOS20 spec into main openssh.spec via UOS20=1
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.
2026-08-07 16:12:21 +08:00
boypt
fc0fd802a6 refactor: rename aarch64-kernel-panic patch to uos20-kernel-panic, switch to Patch999
The do_dup2() NULL pointer dereference panic affects all UOS 20 systems,
not just aarch64, so the patch name is generalized. Move the patch slot
from Patch100 (which collides with 10.4-fix-gssapi.patch in other specs)
to Patch999. Add an inline comment documenting the panic call trace and
fix mechanism.
2026-08-07 16:01:40 +08:00
boypt
7f1af1b7d0 feat: add --latest to check upstream OpenSSH version, document release workflow 2026-07-29 10:08:22 +08:00
boypt
6eb13e831a refactor: map el8+ to el7 in GUESS_DIST, add AGENTS.md 2026-07-29 09:49:14 +08:00
boypt
75c8793cb4 fix: revert unnecess pkg 2026-07-10 16:30:35 +08:00
boypt
b4e4764bb9 fix: patch applying v10.4p1_b11 2026-07-10 16:01:47 +08:00
boypt
4d8cac9a2d fix: docker detect openssl 2026-07-10 15:48:11 +08:00
boypt
aa5a4b8162 fix: upstream bug with GSSAPI options 2026-07-10 15:47:02 +08:00
boypt
fd02898584 fix: force gssapi enabled 2026-07-10 14:13:18 +08:00
boypt
e631cda76c fix: move the el5 krb5 linking hack to SPCE 2026-07-10 09:09:14 +08:00
boypt
fb9940fc8c fix: remove tab indent 2026-07-09 16:42:26 +08:00
boypt
ed95794b1f fix: el5 perl ver check 2026-07-09 16:12:38 +08:00
boypt
2d5684db77 fix: el5 fake perl src 2026-07-09 16:08:10 +08:00