33 Commits

Author SHA1 Message Date
boypt
3d96f9f4ae docs(install_deps): clarify _apt_candidate_version SIGPIPE comment 2026-09-15 18:24:54 +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
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
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)
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
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
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
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
cbc3b3b552 clear comment 2025-10-10 11:01:09 +08:00
boypt
fc95cf0da1 fix: debhelper version 2025-10-10 10:48:50 +08:00
boypt
09413437d9 refact: improve debhelper installation logic 2025-10-10 10:29:03 +08:00
boypt
0384cda499 fix: comment out unnecesary logics 2025-10-10 10:22:21 +08:00
boypt
81e16f35e6 refact: use gpg file in sources 2025-10-10 10:09:59 +08:00
boypt
b7e0e038b5 install_dep refact: dont add sid source in coreutils < 9.5 2025-10-10 08:59:38 +08:00
boypt
a6a8668b4e fix: latest debhelper does not work with older coreutils 2025-10-09 10:10:14 +00:00
boypt
ab81f3e214 dropping ub18 dep code 2025-04-24 14:53:12 +08:00
boypt
55ecd944d2 script accept env vars 2025-04-24 12:12:46 +08:00
boypt
72510103ef move lsb-release as build dep 2025-04-23 14:10:03 +08:00
boypt
77b8a0a853 fix build on ub18 2025-04-22 16:41:21 +08:00
boypt
f1321250bf fix gnupg 2025-04-22 08:31:43 +00:00
Git User
bb47a34c99 move code block 2025-04-22 16:12:49 +08:00
Git User
95346c474b fix: var missing 2025-04-22 15:53:20 +08:00
Git User
5ae4cdf515 fix: var typo 2025-04-22 15:50:33 +08:00
Git User
08c2efa944 use compat code from pr #11 2025-04-22 15:48:06 +08:00
Git User
96d44bb201 fix: deps script 2025-03-13 14:49:35 +08:00
Git User
74b4a40418 simplify docker build process 2025-03-13 14:34:04 +08:00
Git User
19f3c2770c use wget instead 2025-03-13 14:09:17 +08:00
Git User
158eda7e62 fix: curl dep 2025-03-13 14:00:10 +08:00
Git User
bbb064d368 noninterative install 2025-03-13 13:50:29 +08:00
Git User
b4139897aa move dep install process into seprated script 2025-03-13 13:42:40 +08:00