Hi all,
Not so long ago I took over an rpm called dpm-dsi, being the released version 1.9.0. The release of that version was decided by upstream.
However, now upstream has decided to deprecate 1.9.0 for the moment being, since they consider it not stable enough. And they want to release an 1.8.* version.
So my question is: can I build and push to updates a lower version of an existing rpm, and overwrite the existing one?
Regards.
On 07/12/2013 08:35 AM, Alejandro Alvarez Ayllon wrote:
So my question is: can I build and push to updates a lower version of an existing rpm, and overwrite the existing one?
Not really, but you can set an epoch. Please note the caveats mentioned in the guidelines:
http://fedoraproject.org/wiki/Packaging:Guidelines#Use_of_Epochs
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Fri, 12 Jul 2013 08:35:43 +0200 Alejandro Alvarez Ayllon alejandro.alvarez.ayllon@cern.ch wrote:
Hi all,
Not so long ago I took over an rpm called dpm-dsi, being the released version 1.9.0. The release of that version was decided by upstream.
However, now upstream has decided to deprecate 1.9.0 for the moment being, since they consider it not stable enough. And they want to release an 1.8.* version.
So my question is: can I build and push to updates a lower version of an existing rpm, and overwrite the existing one?
Yes you can, this is why we have epochs http://fedoraproject.org/wiki/Packaging:Guidelines#Use_of_Epochs
Dennis
On Fri, 2013-07-12 at 08:35 +0200, Alejandro Alvarez Ayllon wrote:
Hi all,
Not so long ago I took over an rpm called dpm-dsi, being the released version 1.9.0. The release of that version was decided by upstream.
However, now upstream has decided to deprecate 1.9.0 for the moment being, since they consider it not stable enough. And they want to release an 1.8.* version.
So my question is: can I build and push to updates a lower version of an existing rpm, and overwrite the existing one?
Yes, if you use an Epoch. Using Epochs is generally considered bad form as they're often 'hidden' in queries and, once you use one, you Can Never Go Back, but occasionally it's necessary, and if there isn't likely to be a new 1.9 release soon, it sounds like it may be necessary in your case :/
An Epoch is basically an RPM versioning 'trump card'. No matter what the version and release numbers of each build are, a build with an Epoch of 1 is *always* considered 'higher versioned' than a build with an Epoch of 0, etc. (The initialism NEVR, which you'll see around the place, stands for Name, Epoch, Version, Release).
On 07/12/2013 08:35 AM, Alejandro Alvarez Ayllon wrote:
Hi all,
Not so long ago I took over an rpm called dpm-dsi, being the released version 1.9.0. The release of that version was decided by upstream.
However, now upstream has decided to deprecate 1.9.0 for the moment being, since they consider it not stable enough. And they want to release an 1.8.* version.
So my question is: can I build and push to updates a lower version of an existing rpm, and overwrite the existing one?
There exist several alternatives:
a) If the current version "works sufficiently" (No major or user visible bugs present) and if an estimate time of arrival for the final upgrade can be gives, just "leaning back" and wait for upstream to catch up, could be possible.
b) Apply rpm's "Epoch:", i.e. add an Epoch: tag and switch to using the lower version. However, as "Epoch:" can cause massive troubles, e.g. they can never be removed from package and may introduce needs to be reflected to other packages (in particuliar BuildRequires and Requires), add them needs to very carefully thought about.
c) Temporarily use a "Fake version number", i.e. use 1.9.0 as rpm's Version:-tag, but package 1.8.x inside. Unfortunatly, as version numbers often imply incompatible (ABI/API, feature) changes, this approach only is applicable in special cases.
I'd try to avoid b) whenever possible and try to resort to a) or c). Unfortunately, b) is the only generally applicable solution. I don't know the package in question, so don't know which approach may best in your case.
Ralf
On 07/12/2013 08:35 AM, Alejandro Alvarez Ayllon wrote:
Hi all,
Not so long ago I took over an rpm called dpm-dsi, being the released version 1.9.0. The release of that version was decided by upstream.
However, now upstream has decided to deprecate 1.9.0 for the moment being, since they consider it not stable enough. And they want to release an 1.8.* version.
So my question is: can I build and push to updates a lower version of an existing rpm, and overwrite the existing one?
How long is upstream planning on deprecating it? If they've got a 1.9.1 in the works coming out in 2 weeks, I'd consider just waiting.
Similar things happened with Samba and KDE and gcc at various points in Fedora and RHEL history: New releases were tagged as "samba4" or "gcc4", and the original version left in place with the new versions given different package names. When the new versions became the system defaults, with a new release, *then* they were released with package names like "gcc-4.*" or "samba-3.*", and obsoleted the old package.
It doesn't solve your current issue, but it might help if you need to maintain parallel versions with different API's for a while.