Skip to content

feat(acme.sh): package acme.sh for all targets - #53

Merged
markuslf merged 1 commit into
mainfrom
feat/acme.sh
Oct 26, 2026
Merged

markuslf merged 1 commit into
mainfrom
feat/acme.sh

Conversation

@markuslf

Copy link
Copy Markdown
Member

Packages acme.sh 3.1.6 for all 11 targets as one noarch package, laid out like the Debian package: script and dnsapi/deploy/notify hooks below /usr/share/acme.sh, /usr/bin/acme.sh exports ACME_PACKAGED, so acme.sh no longer upgrades itself.

Existing packages: only Debian 13 (3.1.1) and Ubuntu 26.04 (3.1.2); upstream ships none, EPEL and SLES neither. Ours replaces the distro package there.

Differences to the Debian package: openssl in Depends, no /var/log/acme.sh, GPL-3.0-only, all four public domain hooks in copyright.

Tested: local matrix build and smoke test on all targets (x86_64); upgrade from the Debian 13 package in a VM; install, --issue against LE staging, rpm --verify and removal in a Rocky 9 VM. The GitHub archive matches the SSH-signed tag 3.1.6.

Follow-up: switch the LFOps role acme_sh from curl | sh and --upgrade to the package.

The LFOps role acme_sh installs acme.sh with curl | sh from the master
branch and upgrades it the same way on every run. Packaging it gives
signed, versioned updates instead.

Only Debian 13 (3.1.1) and Ubuntu 26.04 (3.1.2) ship acme.sh; upstream
has no packages, EPEL and SLES none. Laid out like the Debian package:
the script and its dnsapi, deploy and notify hooks below
/usr/share/acme.sh, /usr/bin/acme.sh exports ACME_PACKAGED, which makes
acme.sh 3.1.4+ refuse --upgrade and --install-online, skip AUTO_UPGRADE
in --cron and leave the script out of LE_WORKING_DIR. Man page from
--help via help2man, bash completion from upstream.

Differences to the Debian package: openssl in Depends (acme.sh needs it
and Debian minimal lacks it), no /var/log/acme.sh (acme.sh does not
write there), GPL-3.0-only (upstream states GPLv3 only), four public
domain hooks instead of one in copyright.

Verified the GitHub archive of 3.1.6 against the SSH-signed tag
(allowed_signers). Tested: matrix build and smoke test on all 11
targets (x86_64); upgrade from the Debian 13 package 3.1.1 in a VM
cloned from tpl_debian13; install, --issue against LE staging, rpm
--verify and removal in a VM cloned from tpl_rocky9. Upstream dropped
dns_hetzner (now dns_hetznercloud) and dns_linode (now dns_linode_v4)
since 3.1.1; no inventory uses them.
@markuslf markuslf added the build Packaging, build scripts, distribution artifacts label Oct 26, 2026
@markuslf
markuslf merged commit bab5817 into main Oct 26, 2026
33 checks passed
@markuslf
markuslf deleted the feat/acme.sh branch October 26, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Packaging, build scripts, distribution artifacts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant