New perl spec file

Robin Norwood rnorwood at redhat.com
Wed Apr 4 14:10:21 UTC 2007


Robin Norwood <rnorwood at redhat.com> writes:

> Alright, try, try again:
>
> This includes the fixed epochs, as well as various references to
> %{_libdir} and %{_prefix} where it seemed appropriate.
>
> One thing I'm curious about - I notice that the perl-CPAN package
> doesn't automatically provide 'cpan' or anything similar - so 'yum
> install cpan' is likely to fail.  Would it be wise to add a:
>
> Provides: cpan
>
> To that package?

And did I include the spec file in question?  No, I did not.  Here it
is:

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: perl.spec
URL: <http://listman.redhat.com/archives/fedora-perl-devel-list/attachments/20070404/4c7f483b/attachment.ksh>
-------------- next part --------------

-RN

> Robin Norwood <rnorwood at redhat.com> writes:
>
>> 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
>
> -- 
> Robin Norwood
> Red Hat, Inc.
>
> "The Sage does nothing, yet nothing remains undone."
> -Lao Tzu, Te Tao Ching

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