226 Commits

Author SHA1 Message Date
boypt
e5ed62f421 ci: support [skip ci] for deps image builds 2026-09-15 18:28:35 +08:00
boypt
3d96f9f4ae docs(install_deps): clarify _apt_candidate_version SIGPIPE comment 2026-09-15 18:24:54 +08:00
BEN
392a4da986 Merge pull request #19 from udhayakumar-in8/master
fix awk pipe error -  apt-cache policy dwz
2026-09-15 18:23:29 +08:00
udhayakumar - (return 0;)
03ff42aabf fix awk pipe error - apt-cache policy dwz
apt-cache policy dwz abort error while   build openssh in ubunut 22.04
2026-09-15 15:09:49 +05:30
boypt
c70df46e89 docs: link rolling back section from quick start 2026-09-04 17:55:13 +08:00
boypt
cda9f187a5 refactor(install_deps): unify bullseye with buster unconditional archive switch
Both buster and bullseye now switch unconditionally to archive.debian.org
(no probing). bullseye-security lines are commented out because
archive.debian.org does not carry bullseye-security yet (404), avoiding
apt update errors. _probe_url and all probe/revert logic removed (~60
lines). Docs updated accordingly.
2026-09-03 10:15:36 +08:00
boypt
81553997e8 chore(install_deps): drop leftover DEBUG version echoes
Remove the two 'DEBUG: __debhelper_ver / __coreutils_ver' printouts; the
version guards and their comparison branches already make the flow
self-explanatory.
2026-09-03 09:36:06 +08:00
boypt
2735b4b1ba refactor(install_deps): slim _probe_url to wget→curl, drop python3 fallback
The redundant non-curl -L call was removed (-L covers both cases). The
python3 urllib fallback (~25 lines) guarded against containers lacking
both wget and curl, which never occurs in the supported Debian/Ubuntu
build images, so it was dropped. Behavior verified with sandboxed
runs: bullseye probe-success keeps official sources, probe-fail
switches main to archive and reverts security to deb.debian.org.
2026-09-03 09:35:10 +08:00
boypt
b5c8d9cd3c refactor(install_deps): dedupe EOL archive switching into shared helpers
buster is fully archived (main/updates/backports and security under
buster/updates all on archive.debian.org), so keep the unconditional
switch but drop its duplicated .list/.sources loops. Extract shared
_switch_to_archive() and _add_backports() helpers used by both buster
and bullseye, merge the bullseye security-revert loops, and remove the
redundant EOL_CODENAMES scan and dead warning branch. Behavior
unchanged; verified via sandboxed runs for buster, bullseye (probe
ok + probe fail) and non-EOL bookworm.
2026-09-03 09:29:32 +08:00
boypt
cdff912705 docs: revamp README — highlight supported distros and clarify positioning
- Move supported distributions to top with prominent table (codename/arch/notes)
- Clarify project positioning: rebuild official Sid sources as native debs
- Polish English for fluency and native phrasing
- Restructure sections: Current Versions, Quick Start, Build from Source, How It Works
- Preserve all technical details (OpenSSL linkage, EOL handling, quirks)
2026-09-01 17:23:04 +08:00
boypt
a9f3c50008 refactor(compile): merge openssh-tests handling into idempotent guard
Consolidate PATCH 10.4p1-1 comment hack with SKIP -Nopenssh-tests.
Replace s|^|#| with idempotent || true so chmod does not fail when
debian/openssh-tests is skipped (-N). Still required on 10.5p1-1
where upstream debian/rules has unconditional chmod +x.
2026-09-01 17:14:26 +08:00
boypt
a68f3c11e2 refactor(pullsrc): probe gz/xz and only download existing orig
Fallback when .dsc parsing fails now probes xz→gz in order via
wget→curl→python3 _probe_url (timeout 5) and only adds the first
200 URL; avoids 404 on future gz↔xz switches. Keeps .dsc parsing as
primary, preserves set -e safety.
2026-09-01 16:37:30 +08:00
boypt
d58fe29375 fix: orig tarball gz→xz for 10.5p1-1 (sid switched to xz, drop .asc)
sid 10.5p1-1 pool only provides orig.tar.xz and no .asc; previous
hard-coded gz/.asc caused wget 404 and set -e abort in pullsrc.sh
(failing Create release 33487065147 19s quick fail across all codenames).
Parse .dsc for actual orig filename dynamically with fallback to xz,
and make compile.sh SOURCES expect xz with compat fallback to gz for old
caches (e.g. 10.4).
v10.5p1-1_b2
2026-09-01 16:35:26 +08:00
boypt
b7a01f8a74 ci: upgrade docker actions to Node24 and fix bullseye archive 404
- docker/setup-buildx-action v3->v4, docker/login-action v3->v4,
  docker/build-push-action v5->v7 to eliminate Node.js 20 deprecated
  warnings (Node 24 runtime, requires runner >=2.327.1)
  actions/checkout@v5, upload-artifact@v7, download-artifact@v7,
  ncipollo/release-action@v1 already node24 -> keep

- install_deps.sh: fix bullseye EOL handling that caused
  'archive.debian.org/debian-security bullseye-security 404' in
  Build and Push Dependency Images (continously failing since 82d0f3f):
  robust _probe_url (wget->curl->python3 fallback, both Release/InRelease),
  keep official source when reachable, and when falling back to archive
  verify archive security exists else revert security to deb.debian.org
  (keeps bullseye/main on archive, security on official until archive ready)
v10.5p1-1_b1
2026-09-01 16:18:03 +08:00
boypt
4ef6b27bec refactor: download sid debhelper .debs on host via pullsrc.sh instead of bundling in git
- pullsrc.sh fetches debhelper/libdebhelper-perl 14.3 (pinned DEBHELPER_SIDPKG
  in version.env, empty = auto-detect latest sid) into gitignored builddep/
- install_deps.sh installs builddep/*.deb and adds compat sed hacks for sid
  debhelper >= 13.27: rewrite Dh_Lib.pm bucket 'cp --update=none' to '-n' on
  coreutils < 9.3 (buster/bionic/bookworm), downgrade use v5.28 pragmas in
  Dh_Lib.pm/dh_assistant for perl < 5.28, handle ${tmpdir} brace form in the
  non-merged-usr hack; drop the dead sid-apt-source _DEBIAN_DEBHELPER
- Dockerfile.deps: BuildKit bind mounts instead of COPY (nothing in layers)
- CI deps-image build runs ./pullsrc.sh debhelper first to populate context
2026-09-01 15:41:24 +08:00
boypt
0ab53f15fa version bump 2026-09-01 14:57:18 +08:00
boypt
f61816eee8 bump version 2026-09-01 13:24:23 +08:00
boypt
82d0f3f0ab refactor: consolidate apt source handling into install_deps.sh
- merge APT_MIRROR and EOL archive switching into install_deps.sh
  fix_apt_sources() (buster unconditional, bullseye probed via
  Release/InRelease with fallback to archive.debian.org)
- make DEBMIRROR follow APT_MIRROR in version.env (nounset-safe)
- remove switch_archive_sources.sh (no remaining callers)
- simplify docker/Dockerfile.deps to single RUN and update CI to use
  install_deps.sh --fix-apt-only
- update docs (AGENTS.md/README.md) to reflect new flow
2026-09-01 12:09:32 +08:00
boypt
93ba9e6727 feat: add Debian 10 buster to supported distros and CI matrix
The buster backport was verified via docker:
- install_deps.sh with archive.debian.org fallback (switch_archive_sources.sh)
- compile.sh: zero new patches needed, existing bionic-era guards sufficed
- install test: packages install, sshd runs, login/scp all functional
- libfido2-dev from backports fixed (priority-500 gate)

README: add buster(10) to both supported-distro sections.
v10.4p1-5_b3
2026-09-01 09:44:41 +08:00
boypt
179cb38059 ci: trigger deps image rebuild on switch_archive_sources.sh changes
The Dockerfile copies switch_archive_sources.sh into the image, so
changes to it should also trigger a rebuild of the dependency images.
2026-09-01 09:41:00 +08:00
boypt
2a4896676a fix: only switch archive sources for buster, keep bullseye on deb.debian.org
bullseye's repos are still live on deb.debian.org/security.debian.org
(as of 2026-09), while archive.debian.org does not serve
bullseye-security yet. Rewriting bullseye's sources broke the deps
image build.
2026-09-01 09:35:07 +08:00
boypt
22cb4f2456 fix: correct security.debian.org → archive.debian.org replacement
bullseye uses security.debian.org as a separate domain (not bundled
under deb.debian.org like buster), so the sed must only replace the
domain portion to avoid path duplication.
2026-09-01 09:27:35 +08:00
boypt
beb09df438 feat: extract archive source switch script for EOL Debian builds
Create switch_archive_sources.sh that rewrites /etc/apt/sources.list
from deb.debian.org to archive.debian.org (with backports) for EOL
Debian releases (buster, bullseye).  Both docker/Dockerfile.deps and
the CI install-test step use this script instead of inline fallback
logic.

Also record the pullsrc-on-host strategy in AGENTS.md.
2026-09-01 09:16:19 +08:00
boypt
ba154124c6 fix: only install libfido2-dev from the default archive (priority 500)
Building against libfido2-dev from backports (e.g. Debian 10 buster,
libfido2 1.5.0-2~bpo10+1) produces a libfido2-1 (>= 1.5.0) runtime
dependency that a stock target system (libfido2 0.4.0) cannot satisfy,
making the package uninstallable. Gate the install on the package being
available from the default archive instead of only in backports.
2026-09-01 09:09:08 +08:00
boypt
7a9e27b1f4 docs: add bionic(18.04) to release supported OSs 2026-08-31 22:46:04 +08:00
boypt
66f3834387 ci: fix deps-image push trigger branch main -> master v10.4p1-5_b2 2026-08-31 22:28:28 +08:00
boypt
7af331abe5 bump version to 10.4p1-5 v10.4p1-5_b1 2026-08-31 18:20:04 +08:00
boypt
408fc63800 feat: add Ubuntu 18.04 (bionic) backport support
compile.sh:
- drop libcrypt-dev build-dep when absent (crypt.h in libc6-dev)
- strip runit integration when dh-runit constraint is unsatisfiable
  (avoids uninstallable runit-helper >= 2.17 dep)
- rewrite sysusers named-GID syntax for systemd < 244 (237 cannot
  parse 'u sshd -:nogroup', sshd privsep user was never created)
- install systemd units to /lib on non-merged-usr distros
  (deb-systemd-helper 1.51 only searches /lib/systemd/system)

install_deps.sh:
- install ca-certificates (fixes GitHub TLS verification in pullsrc)
- install libcrypt-dev when available in the archive
- pull dwz from <codename>-backports when too old for debhelper 13.14
- patch debhelper 13.14 for Perl 5.26 (list-context state, dh_missing)
- lower init-system-helpers dep versions and drop
  --skip-systemd-native from invoke-rc.d calls on old distros
- keep dh_installsystemd unit path at /lib on non-merged-usr

CI: add ubuntu:bionic to both workflow matrices
2026-08-31 18:20:04 +08:00
boypt
3536b16fbb docs: clarify OpenSSL dynamic/static linking timing in README 2026-08-28 13:41:13 +08:00
boypt
3efebe8d9f bump version to 10.4p1-5 2026-08-24 11:18:28 +08:00
boypt
1110156d55 docs: clarify version pinning vs auto-detect behavior 2026-07-29 09:40:00 +08:00
boypt
091c8ca107 fix: version 2026-07-29 09:37:35 +08:00
boypt
aa4461e2e7 docs: update release workflow to include version.env update step 2026-07-29 09:36:24 +08:00
boypt
238d84c1b1 docs: add technical details of compile.sh patches 2026-07-29 09:25:43 +08:00
boypt
0bee1565b4 refactor: use brace expansion in DOWNLOADLINKS 2026-07-29 09:19:46 +08:00
boypt
7cf48f945b bump version to 10.4p1-3 v10.4p1-3_b1 2026-07-29 09:06:47 +08:00
boypt
379299b603 docker: fix images v10.4p1-1_b4 2026-07-07 15:21:37 +08:00
boypt
a8f7831f67 docker: build dep images 2026-07-07 15:12:44 +08:00
boypt
71d9a204b7 update actions 2026-07-07 15:01:45 +08:00
boypt
3f28a01450 Revert "fix: skip tests pkgs"
This reverts commit 139a631fad.
v10.4p1-1_b3
2026-07-07 14:50:18 +08:00
boypt
e9bf64010f Reapply "ver: 10.4p1-1"
This reverts commit 2cfd688941.
2026-07-07 14:49:03 +08:00
boypt
b85ac85998 fix: patch for 10.4p1-1 v10.4p1-1_b2 2026-07-07 14:42:57 +08:00
boypt
2cfd688941 Revert "ver: 10.4p1-1"
This reverts commit 8e1788620c.
2026-07-07 14:40:10 +08:00
boypt
139a631fad fix: skip tests pkgs 2026-07-07 14:33:20 +08:00
boypt
8e1788620c ver: 10.4p1-1 v10.4p1-1_b1 2026-07-07 09:01:16 +08:00
boypt
f9fdf5fce0 ver bump: openssh_10.3p1-5 openssl 3.5.7 v10.3p1-5_b1 2026-06-29 10:10:27 +08:00
boypt
17cebd3107 version bump: openssh_10.3p1-4 v10.3p1-4_b1 2026-06-05 14:38:30 +08:00
boypt
85c89abd99 fix: release file include version v10.3p1-3_b4 2026-06-01 10:26:38 +08:00
boypt
0fc1979af4 fix: CI name v10.3p1-3_b3 2026-06-01 10:13:25 +08:00
boypt
784b219cdc update lazy script v10.3p1-3_b2 2026-06-01 10:01:49 +08:00