On disttags (was: Choosing rpm-release for fc1 and fdr add-on rpms)

Michael Schwendt fedora at wir-sind-cool.org
Wed May 12 14:10:33 UTC 2004


On Wed, 12 May 2004 15:44:53 +0200, Ralf Corsepius wrote:

> All I read on the "old Fedora Project" home page
> (http://www.fedora.us/wiki/PackageNamingGuidelines) is:
> ...
> C-4. Dist tag
> ...
>   0.fdr.%{X}.%{disttag}
> ...
> 
> AFAIS, this doesn't match with what Fedora.US currently ships: 

It does. %{disttag} is the target distribution and evaluates to rh80,
rh90, 1, 2, and so on. %{X} is what you increase with each package
revision. Example:

  foo-1.0-0.fdr.4.rh80

%X = 4
%disttag = rh80
 
> It also does not seem to cover conventions on
> * Replacement packages

Do you mean upgrades of what is included within Fedora Core?
Obviously, %release must be higher than the current %release of
the package in Fedora Core, but preferably lower than the next
security Update.

> * 3rd party add-on packages
> both wrt. FedoraCore/RedHat and FedoraCore/RedHat+Fedora.US.
> 
> In my understanding, for replacement packages the "leading 0" must match
> the FC/RH version the package is supposed to replace, while third party
> packages are supposed to use a custom %{disttag}, while leaving the rest
> of the Fedora.US release-tag intact.

That part I didn't understand. What is a "replacement package"?
 
> Let's try to apply the GuideLines to an example:
> A package of mine requires perl-XML-LibXML-Common.
> 
> Neither Fedora Core 1 nor Fedora.US ship perl-XML-LibXML-Common, but
> Fedora Core 2 has it. There is a package proposal pending for months in
> Fedora.US's QA to add perl-XML-LibXML-Common to Fedora.US/FC1, but ATM
> it is not available for FC1.

Then review and approve Ville's package.
 
> As I want to release my "pkg" for FC1 *now*, I'd have to release a
> perl-XML-LibXML-Common legacy package for FC1 *now*. However, I actually
> do not want to maintain a perl-XML-LibXML-Common myself and want the
> Fedora.US/FC1-Extras package to replace mine, once it will/should be
> released.
> 
> How to choose the "release-tag" for my "temporary legacy package", that
> an upgrade from FC1->FC2 will replace my perl-XML-LibXML-Common rpm with
> that shipped with FC2 and that a potential release of
> perl-XML-LibXML-Common by Fedora.US will replace my package?

Choose a %release lower than the current package in the queue and lower
than the package in FC2:

  perl-XML-LibXML-Common-0.13-0.fdr.4.ralf.1.1.rpm

Or choose the lowest %epoch:%version-%release possible. If you have doubts
that 0.13-0 is enough, as a last resort you could even decrease %version
to 0 and move the actual software version into the %release tag, e.g.
perl-XML-LibXML-Common-0-0.13.1.ralf to indicate that this is temporary
package only.

> * FC2 ships perl-XML-LibXML-Common-0.13-5.i386.rpm
> * Thereofore I'd expect a potential FC1-Extras/Legacy package to be
> named perl-XML-LibXML-Common-0.13-0.fdr.5.1.i386.rpm.
> 
> Now, which release-tag to use for my "temporary legacy package"?

Dist-tags are evil. Attempts at defining inter-repository release-tags
fail miserably as soon as multiple versions/releases of a package
exist and contain different %release tags. Even if you put "ralf"
at the very right, it would be included in EVR comparison and win
over tags like "fdr" or "lvn", but also over numerical ones.
 
> As it seems to me, the only functional solution for my purposes is:
> perl-XML-LibXML-Commmon-0.13-0.fdr.5.<char><*>.1.rpm
> 
> For example:
> perl-XML-LibXML-Common-0.13.0-0.fdr.5.ralf.1.1.rpm

Yes, just with 4, not 5.





More information about the fedora-devel-list mailing list