Issue #400 has been updated by Ruben Kerkhof.

Affected version set to 0.24.8

This just happened to me as well. yum-protectbase was renamed to 
yum-plugin-protectbase.
Adding --whatprovides to the rpm command solved it for me, but I'm not sure if 
this covers all the corner cases.

--- rpm.rb      2009-05-17 01:35:30.321473894 +0200
+++ rpm.rb.orig 2009-05-17 01:44:56.435519516 +0200
@@ -55,7 +55,7 @@
         #NOTE: Prior to a fix for issue 1243, this method potentially returned 
a cached value
         #IF YOU CALL THIS METHOD, IT WILL CALL RPM
         #Use get(:property) to check if cached values are available 
-        cmd = ["-q", @resource[:name], "--whatprovides", "--nosignature", 
"--nodigest", "--qf", "#{NEVRAFORMAT}\n"]
+        cmd = ["-q", @resource[:name], "--nosignature", "--nodigest", "--qf", 
"#{NEVRAFORMAT}\n"]
 
         begin
             output = rpm(*cmd)

----------------------------------------
Feature #400: yum software provider doesn't handle virtual packages
http://projects.reductivelabs.com/issues/400

Author: bbaetz -
Status: Needs design decision
Priority: Normal
Assigned to: lutter -
Category: yumrepo
Target version: unplanned
Complexity: Unknown
Patch: None
Affected version: 0.24.8
Keywords: 


ethereal has been renamed to wireshark. The package has been renamed, but the 
old package also provides ethereal:

<pre>
[r...@techteam ~]# rpm -q --provides wireshark
...
ethereal
...
</pre>

<pre>
        package { ethereal:
                provider => yum,
        }
</pre>

installs the package (since yum resolves "yum install ethereal"), but claims 
that it wasn't installed:

<pre>
debug: package provider yum: Executing '/bin/rpm -q ethereal --qf '%{NAME} 
%{VERSION}-%{RELEASE}
_
debug: //techteam/package=ethereal: Changing ensure
debug: //techteam/package=ethereal: 1 change(s)
debug: //techteam/package=ethereal/ensure: setting present (currently absent)
debug: package provider yum: Executing '/usr/bin/yum -y install ethereal'
debug: package provider yum: Executing '/bin/rpm -q ethereal --qf '%{NAME} 
%{VERSION}-%{RELEASE}
_
/usr/lib/ruby/site_ruby/1.8/puppet/provider/package/yum.rb:14:in @install'
/usr/lib/ruby/site_ruby/1.8/puppet/type/package.rb:33:in @set_present'
/usr/lib/ruby/site_ruby/1.8/puppet/type/state.rb:149:in @send'
/usr/lib/ruby/site_ruby/1.8/puppet/type/state.rb:149:in @call_valuemethod'
/usr/lib/ruby/site_ruby/1.8/puppet/type/state.rb:354:in @set'
/usr/lib/ruby/site_ruby/1.8/puppet/type/state.rb:429:in @sync'
/usr/lib/ruby/site_ruby/1.8/puppet/statechange.rb:48:in @go'
/usr/lib/ruby/site_ruby/1.8/puppet/statechange.rb:94:in @forward'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:77:in @apply'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:69:in @collect'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:69:in @apply'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:176:in @evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:348:in @thinmark'
/usr/lib/ruby/1.8/benchmark.rb:293:in @measure'
/usr/lib/ruby/1.8/benchmark.rb:307:in @realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:347:in @thinmark'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:175:in @evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:168:in @collect'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:168:in @evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/client/master.rb:116:in @apply'
/usr/lib/ruby/site_ruby/1.8/puppet/client/master.rb:460:in @run'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:208:in @benchmark'
/usr/lib/ruby/1.8/benchmark.rb:293:in @measure'
/usr/lib/ruby/1.8/benchmark.rb:307:in @realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:207:in @benchmark'
/usr/lib/ruby/site_ruby/1.8/puppet/client/master.rb:459:in @run'
/usr/lib/ruby/site_ruby/1.8/puppet/client/master.rb:373:in @lock'
/usr/lib/ruby/site_ruby/1.8/puppet/client/master.rb:449:in @run'
/usr/sbin/puppetd:421
err: //techteam/package=ethereal/ensure: change from absent to present failed: 
Could not find package ethereal

</pre>

The yum provider (and the rpm one?) should probably use "rpm -q --whatprovides 
<package>" instead?

(The real package name is needed for 'rpm -e', so this may also affect the 
purge stuff)


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://reductivelabs.com/redmine/my/account

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" 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-bugs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to