Skip to content

feat(altlinux): add ALT Linux 10/11 support - #2125

Merged
twangboy merged 6 commits into
saltstack:developfrom
KegsZooL:feat/altlinux
Sep 3, 2026
Merged

feat(altlinux): add ALT Linux 10/11 support#2125
twangboy merged 6 commits into
saltstack:developfrom
KegsZooL:feat/altlinux

Conversation

@KegsZooL

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds ALT Linux 10 and 11 support to bootstrap-salt.sh: detection, and install functions for stable/onedir/git install types

What issues does this PR fix or reference?

Requires saltstack/salt-ci-containers#131 to be merged first

Previous Behavior

ALT Linux wasn't present in this repo at all

@twangboy

Copy link
Copy Markdown
Contributor

Once the ci-containers PR get's merged we'll get tests running on this one

@twangboy

twangboy commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Working on a fix here: saltstack/salt-ci-containers#133

KegsZooL and others added 2 commits September 2, 2026 15:07
/etc/os-release on ALT Linux 10/11 sets ID=altlinux, which was falling
through to the default case in __gather_linux_system_info and setting
DISTRO_NAME_L to 'altlinux' instead of 'alt_linux'. This mismatched
every install_alt_linux_* function added for ALT Linux support,
causing bootstrap to exit with 'No dependencies installation function
found.' Add the missing case so both the /etc/*-release and
os-release detection paths agree on 'ALT Linux' -> DISTRO_NAME_L=alt_linux.
install_alt_linux_onedir_deps() installed packages without refreshing
the apt cache first, so on a fresh container it failed outright
('apt-get install' exit 100) rather than hitting the lock-retry path
in __wait_for_apt. Run apt-get update first, matching the other ALT
Linux deps functions.
install_alt_linux_onedir() only resolved ONEDIR_REV=latest; a bare
4-digit major version (e.g. '3006'), a documented, valid input per
__validate_salt_version_arg, passed through unresolved and produced
a nonexistent GitHub release tag (v3006 instead of e.g. v3006.26),
so wget failed outright.

Reuse __get_packagesite_onedir_latest(), the same artifactory
directory-listing based resolver already used by the macOS/Windows/
Photon onedir installers, to resolve both 'latest' and a bare major
version to the actual latest GA release before building the download
URL.
install_alt_linux_onedir_post() only added /opt/saltstack/salt to PATH
via /etc/profile.d/saltstack.sh, which only takes effect for login/
interactive shells. CI invokes tests via 'docker exec <container>
pytest ...', which runs without a login shell, so salt-call was never
found on PATH ('stable' with a version arg is rewritten to 'onedir'
internally, so this affected both the stable-* and onedir-* jobs).

Symlink the onedir binaries into /usr/bin, which is always on PATH,
matching how the onedir-via-package installs on other distros already
work (their apt/yum packages ship real /usr/bin/salt-* entries).
…arm64 naming

GitHub Releases doesn't carry an onedir tarball asset for every
historical point release - e.g. v3007.1's release page exists but
only has source tarballs/docs, no onedir tarball, so 'stable 3007.1'
(and any pinned older point release) failed outright. Broadcom's
artifactory generic repo (packages.broadcom.com/artifactory/
saltproject-generic/onedir/) has the complete history and is already
the source used by the macOS/Windows/Photon onedir installers and by
the CI images' own provisioning, so fetch from there instead.

Also fixes the Linux arm64 tarball name: onedir filenames (on both
GitHub and artifactory) use 'arm64', not the 'aarch64' uname -m
reports - a latent bug copied from the pre-existing, seemingly never
tested on arm64, install_arch_linux_onedir().
@twangboy
twangboy merged commit 9bbcf63 into saltstack:develop Sep 3, 2026
143 checks passed
@twangboy twangboy self-assigned this Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants