Fix os.family references for Arch and Gentoo-based distributions#333
Merged
saz merged 1 commit intosaz:masterfrom Apr 22, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Updates sudo module platform detection to rely on Facter’s os.family for Arch- and Gentoo-based systems, avoiding brittle os.name matching and fixing failures on Arch derivatives like CachyOS (Issue #332).
Changes:
- Add explicit
case $facts['os']['family']branches forArchlinuxandGentoo. - Remove the prior
os.name-based special-casing (Gentoo exact match and Arch/Manjaro regex) and keep unsupported platforms failing fast.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+222
to
+231
| 'Archlinux': { | ||
| $package = 'sudo' | ||
| $package_ldap = $package | ||
| $package_ensure = 'present' | ||
| $package_source = undef | ||
| $package_admin_file = undef | ||
| $config_file = '/etc/sudoers' | ||
| $config_dir = '/etc/sudoers.d' | ||
| $content_template = "${content_base}sudoers.archlinux.erb" | ||
| $secure_path = undef |
There was a problem hiding this comment.
This change broadens support by keying off os.family for Archlinux/Gentoo, but there are no unit tests asserting the new behavior (e.g., os.family => 'Archlinux' with os.name => 'CachyOS', and os.family => 'Gentoo' with a non-'Gentoo' os.name). Adding rspec-puppet examples for these fact combinations would prevent regressions and validate the fix for #332.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request (PR) description
Switches to matching Gentoo and Arch via
os.familyinstead ofos.name.Previously, code handled Manjaro/Gentoo/Arch-vanilla by checking if the name was "Gentoo", or if it started with "Arch" or "Manjaro" and ended with nothing or "linux". Facter already uses equivalent logic to generate the
os.familyfact, here, so it doesn't need to be reimplemented in this module: https://github.com/puppetlabs/facter/blob/main/lib/facter/util/facts/facts_utils.rb#L24Side effects:
This Pull Request (PR) fixes the following issues
Fixes #332