On Sun, 4 Jan 2004 20:32:28 +0100, Matthias Saou wrote:
Warren Togami wrote :
> If you require a specific version of any package, then you MUST include
> an Epoch in that dependency. If the Epoch is blank, then make it "0".
Why? Can you give a good reason to introduce "0" in every versionned
dependency? I can only think of reasons _not_ to :
- Keep things shorter, clearer thus easier to understand
- Not confuse the user with the arbitrary number that the epoch is when he
gets a message like "Failed dependencies, requires foo >= 1.20"
Epochs are only used in corner-cases, why make them appear in the general
case at all?
I still don't think introducing a zero epoch everywhere is sensible nor
useful.
With chosing the term "corner-cases" you remove every base for discussion.
You acknowledge that an explicit zero epoch can be useful, but at the same
time you pin it down to corner-cases which you don't specify. Suppose
someone wants to avoid problems with any such corner-cases. I'm not an RPM
expert, but I'm aware of problems like this:
# cat /etc/redhat-release
Red Hat Linux release 8.0 (Psyche)
Suppose we've got a library sub-package "libfoo" which is created as
part of a "foo" src.rpm:
# rpm -qp --qf "%{epoch}:%{version}\n" libfoo-2.0-0.i386.rpm
(none):2.0
In a new release, upstream decides to split off a library, starting with
an unstable pre-1.0 release:
# rpm -qp --qf "%{epoch}:%{version}\n" libfoo-0.8-0.i386.rpm
1:0.8
# rpm -ivh libfoo-2.0-0.i386.rpm
Preparing... ########################################### [100%]
1:libfoo ########################################### [100%]
# rpm -Uvh libfoo-0.8-0.i386.rpm
Preparing... ########################################### [100%]
1:libfoo ########################################### [100%]
# rpm -Uvh libfoo-2.0-0.1.i386.rpm
Preparing... ########################################### [100%]
1:libfoo ########################################### [100%]
[...]
Explicit Epoch 0 makes a difference:
# rpm -q --qf "%{epoch}:%{version}\n" libfoo
1:0.8
# rpm -qp --qf "%{epoch}:%{version}\n" libfoo-2.0-1.i386.rpm
0:2.0
# rpm -Uvh libfoo-2.0-1.i386.rpm
Preparing... ########################################### [100%]
package libfoo-0.8-0 (which is newer than libfoo-2.0-1) is already installed
--