[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, upstream, updated. 0.25.5-639-g8f94f35

test branch puppet-dev at googlegroups.com
Wed Jul 14 10:32:36 UTC 2010


The following commit has been merged in the upstream branch:
commit 966b2690824c5c66059380eb762a2a83bfe7afe5
Author: Nigel Kersten <nigelk at google.com>
Date:   Mon Mar 29 10:49:47 2010 -0700

    Fixes #3419. OS X 10.6 Ruby doesn't set supplementary groups

diff --git a/lib/puppet/util/suidmanager.rb b/lib/puppet/util/suidmanager.rb
index a0a9178..424fb46 100644
--- a/lib/puppet/util/suidmanager.rb
+++ b/lib/puppet/util/suidmanager.rb
@@ -1,4 +1,3 @@
-require 'facter'
 require 'puppet/util/warnings'
 require 'forwardable'
 
@@ -6,14 +5,39 @@ module Puppet::Util::SUIDManager
     include Puppet::Util::Warnings
     extend Forwardable
 
+    # Note groups= is handled specially due to a bug in OS X 10.6
     to_delegate_to_process = [ :euid=, :euid, :egid=, :egid,
-                               :uid=, :uid, :gid=, :gid, :groups=, :groups ]
+                               :uid=, :uid, :gid=, :gid, :groups ]
 
     to_delegate_to_process.each do |method|
         def_delegator Process, method
         module_function method
     end
 
+    def osx_maj_ver
+        return @osx_maj_ver unless @osx_maj_ver.nil?
+        require 'facter'
+        # 'kernel' is available without explicitly loading all facts
+        if Facter.value('kernel') != 'Darwin'
+          @osx_maj_ver = false
+          return @osx_maj_ver
+        end
+        # But 'macosx_productversion_major' requires it.
+        Facter.loadfacts
+        @osx_maj_ver = Facter.value('macosx_productversion_major')
+        return @osx_maj_ver
+    end
+    module_function :osx_maj_ver
+    
+    def groups=(grouplist)
+        if osx_maj_ver == '10.6'
+            return true
+        else
+            return Process.groups = grouplist
+        end
+    end
+    module_function :groups=
+
     if Facter['kernel'].value == 'Darwin'
         # Cannot change real UID on Darwin so we set euid
         alias :uid :euid

-- 
Puppet packaging for Debian



More information about the Pkg-puppet-devel mailing list