Created attachment 639599 [details] Patch to spec file etc Description of problem: Puppet is behind upstream. Version-Release number of selected component (if applicable): 2.7.18 appears to be the last build for rawhide, and upstream is at 3.0.1. Note 3.0.1 is not a fully compatible update from 2.7.18. How reproducible: Download puppet, notice it is out of date. Additional info: Happy to assist with this in any way I can. I've attached a patch to the spec etc that updates Puppet to 3.0.1. When working through it, one thing that I was uncertain of was how best to handle hiera-puppet. Puppet >= 3.0.0 absorbed the source of the hiera-puppet 1.0.0 release, so I added.. Obsoletes: hiera-puppet Provides: hiera-puppet >= 1.0.0 ..which generates rpmlint warnings due to self-obsoletion and non-explicit Obsoletes version, but these versions/comparisons are a gray area. It's possible that in the future, bug fixes on hiera-puppet will be released as a new hiera-puppet package to be consumed by the 2.7.x branch of puppet. However any such bug-fixes to hiera-puppet that also apply to the "previously hiera-puppet" code currently in puppet 3.x.x will be cherry-picked over into puppet. Thus, puppet 3.x.x will theoretically never need/use anything from a hiera-puppet package > 1.0.0. However, in order to keep the upgrade path open from puppet 2.7.x to 3.x.x, the obsoletes & provides of hiera-puppet in 3.x.x need to take into account that newer versions of hiera-puppet may have been released (maybe containing code also in puppet 3.x.x), and obsolete & provide those newer versions as well. Referencing the guidelines here: http://fedoraproject.org/wiki/Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages, this turns out to be strange and unideal territory..
I am 100% in favor of getting Puppet updated to 3.0.1. (or 3.0.2) which will release today or tomorrow. If I don't get any comments in the next week or so, I will merge this patch in and make it so for F18 (zero day) and rawhide. Note that in F17 (and F18 currently) Puppet is pretty broken with 1.9.3 because Puppet 3 is the one that supports Ruby 1.9.3.
Sounds good to me. The unversioned obsolete shouldn't be used though. If hiera-puppet was ever in fedora, then the last version available is what must be obsoleted. If it wasn't in fedora, then I'm not sure we really need to obsolete it. But to be nice to folks that had the puppetlabs repos, we can obsolete whatever version was the last version there before hiera was merged into puppet. This allows a future version of hiera-puppet to return if needed. If the plan is that only 2.7 will continue with hiera-puppet but it will always be less than 3.0, then an obsoletes of < 3.0 would probably work. I think the provides should be hiera-puppet = %{version}-%{release}. A >= there doesn't make sense. Thanks for the help guys. I've had too little time to work on this stuff. Someday, hopefully, more backwards compatibility will emerge and updates won't be such a pain to roll out to both Fedora and EPEL at the same time. This is a huge pain for folks that want to use Puppet and don't have the time or inclination to closely follow the upstream mailing lists or fiddle with things after each update. Worth noting is that ruby is planned to be updated again in F19 to 2.0¹. I have no idea how compatible it will be or how much of the guidelines will be rewritten (again). :/ ¹ http://lists.fedoraproject.org/pipermail/devel/2012-December/175485.html
I updated the hiera-puppet obsoletes/provides per your recommendations, e.g. obsoletes hiera-puppet <= 1.0 provides hiera-puppet = %{version}-%{release} I also rebased to Puppet 3.0.2, which was released yesterday. Patch: https://s3.amazonaws.com/puppet-3-0-rawhide/0001-Update-puppet-spec-to-3.0.2.patch resulting spec: https://s3.amazonaws.com/puppet-3-0-rawhide/puppet.spec resulting SRPM: https://s3.amazonaws.com/puppet-3-0-rawhide/puppet-3.0.2-1.fc19.src.rpm
Thanks Moses, I see that hiera-puppet-1.0.0-1.fc17 is the latest in the puppetlabs repos. The Obsoletes: hiera-puppet <= 1.0.0 means this will not be obsoleted, AFAIK. Maybe I'm missing the point, but I think you want to ensure that folks updating from the yum.puppetlabs.com repos or who have otherwise installed hiera-puppet in Fedora will have the standalone hiera-puppet replaced with the puppet package. To achieve that we need a version in the Obsoletes that has a greater NVR than what's been released, e.g. < 1.0.0-2 would be sufficient (if you never intended to release another hiera-puppet that you wanted installed alongside of puppet >= 3.x). http://fedoraproject.org/wiki/Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages discusses the obsoletes/provides a little more for replacing packages.
I see what you're saying, and it is also perhaps cleaner and more explicitly readable to do a bumped release for the Obsoletes. I could definitely be missing something also, but I think Obsoletes: hiera-puppet <= 1.0.0 actually works as expected though- I tested with hiera-puppet 1.0.0 installed from the Puppet yum repo, and it was indeed removed and replaced cleanly when I installed the Puppet 3.0.2 rpm that obsoletes hiera-puppet <= 1.0.0. Either way, I bumped the Obsoletes to hiera-puppet <= 1.0.0-2, which certainly works, and does seem to align better with common practices per the guidelines. Updated: Patch: https://s3.amazonaws.com/puppet-3-0-rawhide/0001-Update-puppet-spec-to-3.0.2.patch Spec: https://s3.amazonaws.com/puppet-3-0-rawhide/puppet.spec SRPM: https://s3.amazonaws.com/puppet-3-0-rawhide/puppet-3.0.2-1.fc19.src.rpm
I think the Provides: hiera-puppet = %{version}-%{release} sort of masks the Obsoletes. Without it, I don't think the < 1.0.0 would work. But either way it works. :) Many thanks for the spec updates. Unless I come into a bunch of free time, I'll leave it to Mike to push this out.
Ahh, I see what you're saying. Excellent.
puppet-3.0.2-1.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/puppet-3.0.2-1.fc18
Package puppet-3.0.2-1.fc18: * should fix your issue, * was pushed to the Fedora 18 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing puppet-3.0.2-1.fc18' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2012-21082/puppet-3.0.2-1.fc18 then log in and leave karma (feedback).
Couple items: - 3.1.0 is out (and should fix an selinux issue I'm seeing with 3.0.2) - The Fedora 18 update moves from sysv init to systemd within a release, which as I recall is forbidden. I've noted that in the update comments, but no response so far.
Orion, thanks for the note. This is back on my radar, but I likely won't get to it today.
puppet-3.1.0-4.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/puppet-3.1.0-4.fc18
Updated with proper handling of systemd. Also is at 3.1.0.
puppet-3.1.1-1.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/puppet-3.1.1-1.fc18
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle. Changing version to '19'. (As we did not run this process for some time, it could affect also pre-Fedora 19 development cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.) More information and reason for this action is here: https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora19
puppet-3.1.1-1.fc18 has been pushed to the Fedora 18 stable repository. If problems still persist, please make note of it in this bug report.