New perl spec file

Robin Norwood rnorwood at redhat.com
Sun Apr 1 01:01:48 UTC 2007


Ralf Corsepius <rc040203 at freenet.de> writes:

[...]

>> 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.

Good catch Ralf, thanks - I've applied that patch and I'll try out a
local build.

Thanks,

-RN

-- 
Robin Norwood
Red Hat, Inc.

"The Sage does nothing, yet nothing remains undone."
-Lao Tzu, Te Tao Ching




More information about the Fedora-perl-devel-list mailing list