Skip to content

pacman provider not working on CachyOS #9580

Open

Description

@barryking93

Describe the Bug

pacman doesn't function as a provider on cachyos, which is based on archlinux

Expected Behavior

pacman should work on cachyos, since it's the default package manager there and is in the $PATH

Steps to Reproduce

Steps to reproduce the behavior:

  1. tell puppet to install a package w/ pacman as a provider
  2. recieve error:
    Error: /Package[packagenamehere]: Provider pacman is not functional on this host

Environment

  • Version - 8.1.0
  • Platform - CachyOS current

Additional Context

I think your easiest bet here is to base the provider of 'pacman' on using ['os]['family'] of 'Archlinux' instead of basing it on ['os']['name'], which is what the related docs say you're doing here: https://help.puppet.com/core/current/Content/PuppetCore/Markdown/package.htm#package-provider-pacman

Activity

  1. NuWhE3wn0D commented on Jul 19, 2026

    @NuWhE3wn0D

    It seems like the provider's functionality is tied to the check on ['os']['name'] instead of ['os']['family'], as mentioned in the issue. Have you tried checking the output of facter os to confirm the values returned for both ['os']['name'] and ['os']['family'] on your CachyOS system? This might provide insight into whether the provider logic needs adjustment to accommodate distributions that are Arch-based but not recognized as Archlinux specifically.

  2. erlenekalafo commented on Aug 7, 2026

    @erlenekalafo

    Have you tried checking the facter output specifically for the ['os']['family'] value? If it’s not returning 'Archlinux', that may be the root of the issue. Additionally, look into the pacman provider code to see how it validates the provider on initialization—there might be a conditional check that’s not accounting for CachyOS correctly. It could also help to add some debug logging in the provider to see what values it's working with at runtime.

  3. rorieaniston26 commented on Aug 18, 2026

    @rorieaniston26

    It seems that the pacman provider might not be recognizing CachyOS correctly due to how it checks the OS in its initialization. Have you looked at the initialize method in the pacman provider code? You might want to add some debug logging there to see what values are being processed for ['os']['name'] and ['os']['family'] when the provider loads. This could help identify if the verification logic needs adjustment to support CachyOS as it relates to the expected behavior.

  4. eliottramanda26 commented on Aug 26, 2026

    @eliottramanda26

    Looking at the pacman provider implementation, it likely checks Facter.value(:operatingsystem) instead of os.family during its self.instances or confine block validation. Since CachyOS reports its name as CachyOS rather than Archlinux, the confine fails before reaching the installation step that throws Error: /Package[packagenamehere]: Provider pacman is not functional on this host. We should update the confinement in lib/puppet/provider/package/pacman.rb to use osfamily => :archlinux or explicitly add CachyOS to the osatthishost list. Could you paste the output of facter os.name and facter os.family from your CachyOS host so we can verify the exact fact values?

  5. jadayaanaliah26 commented on Aug 29, 2026

    @jadayaanaliah26

    The Provider pacman is not functional on this host error in 8.1.0 comes from the pacman provider's confine block matching against the operatingsystem fact instead of osfamily which CachyOS reports as Archlinux.

  6. gustavocastillo5 commented on Sep 4, 2026

    @gustavocastillo5

    OS as part of the Archlinux family, the fix actually needs to happen in Facter's OS

  7. naeemgwendlyn26 commented on Sep 4, 2026

    @naeemgwendlyn26

    The confine block for the pacman provider likely restricts execution to operatingsystem => Archlinux, so changing the constraint to osfamily => Archlinux within the provider definition should resolve the registration failure on CachyOS.

  8. roberalani26 commented on Sep 11, 2026

    @roberalani26

    The current confine block in the pacman provider uses Facter.value(:operatingsystem) == 'Archlinux', which is too restrictive for downstream distributions. To fix this, we should modify the confine statement to check Facter.value(:osfamily) == 'Arch' instead, as this will correctly encompass both base Arch and CachyOS. Can you confirm if your local Facter output for osfamily returns Arch when running facter osfamily on your CachyOS environment?

  9. tearsaalainah26 commented on Sep 14, 2026

    @tearsaalainah26

    Archlinuxor addingcachyos(or better yet, switching to:osfamily => :

  10. darnellaakaisha26 commented on Sep 17, 2026

    @darnellaakaisha26

    The current confine block explicitly restricts the provider to operatingsystem => Archlinux, which causes the Provider pacman is not functional on this host error on CachyOS despite the underlying package management being identical. Can you confirm if updating the confine block to osfamily => Archlinux resolves the provider initialization without breaking compatibility for other Arch-based distributions?

  11. wideeyedmessa commented on Oct 8, 2026

    @wideeyedmessa

    => [:archlinux, :manjaro]). * If we change the confine in

  12. Runogrin commented on Oct 11, 2026

    @Runogrin

    The confine block in the provider needs to be updated to evaluate Facter.value(:os)['family'] == 'Archlinux' instead of relying on operatingsystem, as the latter is currently failing to match the CachyOS string.

  13. melina-karleen commented on Oct 23, 2026

    @melina-karleen

    The confine block in the provider is clearly using operatingsystem => :archlinux, which causes the provider to fail silently on CachyOS because the facter value for os.name does not match. Can you confirm if changing the confine constraint to osfamily => :archlinux resolves the registration error without side effects for other Arch-based derivatives?

  14. beefyi6 commented on Oct 25, 2026

    @beefyi6

    workaround/PR change in lib/puppet/provider/package/pacman.rb.
    *

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions