On Sat, 2007-03-31 at 06:52 +0200, Ralf Corsepius wrote:
On Wed, 2007-03-28 at 15:33 -0400, Robin Norwood wrote:
> Hi,
>
> Sorry for the delay, but here's a new perl spec file including Ralf and
> Tom's changes, removing the Requires: perl-devel, and a couple of minor
> cleanups from me.
>
> It seems to build, except on s390... I'll look into that.
>
> Comments?
It doesn't work.
The epochs on dependencies on "perl" inside of sub-packages are wrong.
E.g.:
# rpm -q --requires -p perl-CPAN-1.76_02-16.i386.rpm
...
perl = 0:5.8.8-16
...
# rpm -q --provides -p perl-5.8.8-16.i386.rpm
...
perl = 4:5.8.8-16
...
This causes all kind of dependency breakages in yum.
AFAIS, you seem to have missed the %{epoch} related Requires having been
contained in my latest *.spec.
Scratch this sentence - I was wrong.
You added
Requires: perl = %{epoch}:%{perl_version}-%{release}
to subpackages' %package.
This breaks if a subpackage uses a different Epoch as the main packages,
for example this:
...
%package Test-Harness
Summary: Run Perl standard test scripts with statistics
Group: Development/Languages
Epoch: 0
Version: 2.56
Requires: perl-devel
Requires: perl = %{epoch}:%{perl_version}-%{release}
...
At the time, rpm processes the %{epoch} inside of the
"Requires: perl =...",
%{epoch} contains the "0" from the "Epoch: 0" line above and
doesn't
contain the global epoch anymore.
A brute-force approach to work-around this would be to add a global
%define perl_epoch 4
at the beginning of the *.spec and to replace all references to the main
perl package's Epoch (%{epoch}) with %{perl_epoch}
The patch below implements this approach.
Ralf