[Pkg-puppet-devel] Bug#1136963: facter: Apply upstream patch to fix 'virtual' resolution on Illumos LX
Steve Mokris
smokris-debian at softpixel.com
Sun May 17 18:41:38 BST 2026
Package: facter
Version: 4.10.0-1
Severity: normal
Tags: patch
Facter 4.8.0 introduced a regression causing the 'virtual' fact to
return an incorrect result under Illumos/SmartOS LX virtualization.
Upstream merged a fix for this back in 2024[^1], but it's unclear when
upstream will tag a new release, so if practical I'd like the Debian
Puppet Package Maintainers to apply the attached patch to the Debian
package.
[^1]: https://github.com/puppetlabs/facter/pull/2772
>From 31d32da513aae094bdbcc011155c2e247be11284 Mon Sep 17 00:00:00 2001
From: Steve Mokris <steve at kosada.com>
Date: Sun, 20 Oct 2024 19:09:14 -0400
Subject: [PATCH] On Illumos LX, make Facter::Resolvers::Containers return nil,
so Facter::Util::Facts::Posix::VirtualDetector#check_illumos_lx is executed
---
lib/facter/resolvers/containers.rb | 2 ++
spec/facter/resolvers/containers_spec.rb | 10 ++++++++++
2 files changed, 12 insertions(+)
diff --git a/lib/facter/resolvers/containers.rb b/lib/facter/resolvers/containers.rb
index ac02b321df..030d7267a4 100644
--- a/lib/facter/resolvers/containers.rb
+++ b/lib/facter/resolvers/containers.rb
@@ -51,6 +51,8 @@ def read_environ(fact_name)
vm = 'podman'
when 'crio'
vm = 'crio'
+ when 'zone'
+ return nil
when 'systemd-nspawn'
vm = 'systemd_nspawn'
info = { 'id' => Facter::Util::FileHelper.safe_read('/etc/machine-id', nil).strip }
diff --git a/spec/facter/resolvers/containers_spec.rb b/spec/facter/resolvers/containers_spec.rb
index 87b567d434..64348c3794 100644
--- a/spec/facter/resolvers/containers_spec.rb
+++ b/spec/facter/resolvers/containers_spec.rb
@@ -92,6 +92,16 @@
end
end
+ context 'when hypervisor is illumos' do
+ let(:cgroup_output) { nil }
+ let(:environ_output) { ['container=zone'] }
+
+ it 'return nil' do
+ expect(containers_resolver.resolve(:vm)).to eq(nil)
+ expect(containers_resolver.resolve(:hypervisor)).to eq(nil)
+ end
+ end
+
context 'when hypervisor is neighter lxc nor docker' do
let(:cgroup_output) { load_fixture('cgroup_file').read }
let(:environ_output) { ['PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin'] }
More information about the Pkg-puppet-devel
mailing list