Issue #2662 has been updated by R.I. Pienaar aka Volcane.

I agree, arch =>  would be best.

If we say for yum we need name.arch and for debian probably we'd need some 
other kludgy naming convention on the package name to achieve the same and 
ditto for other operating systems.

Adding arch => solves it elegantly and the providers can do the right thing 
with the information for their OS, no need to try and come up with Regexes etc. 
 
----------------------------------------
Bug #2662: Yum package arch and version ensuring failing
http://projects.reductivelabs.com/issues/2662

Author: David Ward
Status: Needs more information
Priority: Normal
Assigned to: David  Lutterkort
Category: package
Target version: Rowlf
Affected version: 0.24.7
Keywords: yum provider version arch ensure
Branch: 


After lots of trial and error I found a bug in our current Puppet version

Having a package line like so:

 package { "firefox.x86_64": ensure => "3.0.12-1.el5.centos", require => 
Package["xulrunner.x86_64"] }

Would fail with debug output:
*_
debug: 
//Node[om012274.drd.int]/workstation/workstation_centos53/mozillasuite53/Package[firefox.x86_64]:
 Changing ensure
debug: 
//Node[om012274.drd.int]/workstation/workstation_centos53/mozillasuite53/Package[firefox.x86_64]:
 1 change(s)
debug: Package[firefox.x86_64](provider=yum): Ensuring => 3.0.12-1.el5.centos
debug: Puppet::Type::Package::ProviderYum: Executing '/usr/bin/yum -d 0 -e 0 -y 
install firefox.x86_64-3.0.12-1.el5.centos'
debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm -q 
firefox.x86_64 --nosignature --nodigest --qf %{NAME} %|EPOCH?{%{EPOCH}}:{0}| 
%{VERSION} %{RELEASE}
%{ARCH}
'
err: 
//Node[om012274.drd.int]/workstation/workstation_centos53/mozillasuite53/Package[firefox.x86_64]/ensure:
 change from absent to 3.0.12-1.el5.centos failed: Could
 not update: Could not find package firefox.x86_64 at 
/etc/puppet/manifests/CentOS.pp:149_*


It didn't matter if I listed ver-release or just ver, same sort of error; it 
appends the version-[release] to the package name and arch. Which obviously 
fails as yum packages must be referred to like so:

          name
          name.arch
          name-ver
          name-ver-rel
          name-ver-rel.arch
          name-epoch:ver-rel.arch
          epoch:name-ver-rel.arch


So if I omitted the arch and changed the line to:

 package { "firefox": ensure => "3.0.12-1.el5.centos", require => 
Package["xulrunner.x86_64"] }

We would have more success with the 64bit version but it would try and bring 
the 32bit Firefox version too along with its dependencies. Not what I wanted.

*_debug: Package[firefox](provider=yum): Ensuring => 3.0.12-1.el5.centos.x86_64
debug: Puppet::Type::Package::ProviderYum: Executing '/usr/bin/yum -d 0 -e 0 -y 
install firefox-3.0.12-1.el5.centos.x86_64'
debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm -q firefox 
--nosignature --nodigest --qf %{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} 
%{RELEASE} %{ARCH}
'
err: 
//Node[om012274.drd.int]/workstation/workstation_centos53/mozillasuite53/Package[firefox]/ensure:
 change from 3.0.12-1.el5.centos to 3.0.12-1.el5.centos.x86_64 failed: Could 
not update: Failed to update to version 3.0.12-1.el5.centos.x86_64, got version 
3.0.12-1.el5.centos instead at /etc/puppet/manifests/CentOS.pp:149_*


So chatting on IRC and more trial and error I found this is the only way to get 
it to work:


 package { "firefox-3.0.12-1.el5.centos.x86_64": ensure => "present", require 
=> Package["xulrunner.x86_64"] }

So this side-steps puppets version management though.

This may be fixed in a newer version. I haven't tried yet.






-- 
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