On Fri, Mar 26, 2010 at 5:55 PM, Nigel Kersten <[email protected]> wrote: > On Fri, Mar 26, 2010 at 5:22 PM, Luke Kanies <[email protected]> wrote: >> I'd much prefer the groups= method have this behaviour in it, rather than >> have it done at loading time. >> >> Everyone loads this util module but not everyone uses the groups= method, so >> just having the code in groups= will make testing/debugging much easier and >> just generally make the system simpler. > > I don't think I quite get what you mean. > > The groups= method gets delegated to Process.groups= ? It isn't > actually defined for this class at all normally.
Oh now I think I know what you mean. You're saying we should always define self.groups= here and inside it decide whether or not to delegate it to Process or stub it out for OS X 10.6 ? I'm not entirely clear as to why that would be better though. > > >> >> On Mar 26, 2010, at 4:04 PM, Nigel Kersten wrote: >> >>> >>> Signed-off-by: Nigel Kersten <[email protected]> >>> --- >>> lib/puppet/util/suidmanager.rb | 15 ++++++++++++++- >>> 1 files changed, 14 insertions(+), 1 deletions(-) >>> >>> diff --git a/lib/puppet/util/suidmanager.rb >>> b/lib/puppet/util/suidmanager.rb >>> index a0a9178..99ed3a4 100644 >>> --- a/lib/puppet/util/suidmanager.rb >>> +++ b/lib/puppet/util/suidmanager.rb >>> @@ -9,12 +9,25 @@ module Puppet::Util::SUIDManager >>> to_delegate_to_process = [ :euid=, :euid, :egid=, :egid, >>> :uid=, :uid, :gid=, :gid, :groups=, :groups >>> ] >>> >>> + if Facter.value('kernel') == 'Darwin' >>> + Facter.loadfacts >>> + osx_maj_ver = Facter.value('macosx_productversion_major') >>> + raise Puppet::Error, "OS X requires Facter >= 1.5.5" if >>> osx_maj_ver.nil? >>> + # Process.groups= broken on 10.6 >>> http://openradar.appspot.com/7791698 >>> + if osx_maj_ver == '10.6' >>> + to_delegate_to_process.delete(:groups=) >>> + def self.groups=(grouplist) >>> + return true >>> + end >>> + end >>> + end >>> + >>> to_delegate_to_process.each do |method| >>> def_delegator Process, method >>> module_function method >>> end >>> >>> - if Facter['kernel'].value == 'Darwin' >>> + if Facter.value('kernel') == 'Darwin' and osx_maj_ver == '10.4' >>> # Cannot change real UID on Darwin so we set euid >>> alias :uid :euid >>> alias :gid :egid >>> -- >>> 1.7.0.3 >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Puppet Developers" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/puppet-dev?hl=en. >>> >> >> >> -- >> I take my children everywhere, but they always find their way >> back home. --Robert Orben >> --------------------------------------------------------------------- >> Luke Kanies -|- http://puppetlabs.com -|- +1(615)594-8199 >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Puppet Developers" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/puppet-dev?hl=en. >> >> > > > > -- > nigel > -- nigel -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.
