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?
-RN
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?
Some remarks without actually having tried it yet:
- "sh Configure ..." I'd prefer "/bin/sh Configure"
- There are several places where a hard-coded "/usr/bin" is used At least those which refer to files currently being built should probably be %{_bindir}
- there are hard-coded "/usr/lib"'s I think, these should be "%{_prefix}/lib"
Ralf
Ralf Corsepius rc040203@freenet.de writes:
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?
Some remarks without actually having tried it yet:
- "sh Configure ..."
I'd prefer "/bin/sh Configure"
- There are several places where a hard-coded "/usr/bin" is used
At least those which refer to files currently being built should probably be %{_bindir}
- there are hard-coded "/usr/lib"'s
I think, these should be "%{_prefix}/lib"
Alright, looking at fixing all three of these now.
Thanks,
-RN
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.
Ralf
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
Ralf Corsepius rc040203@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
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?
Thanks,
-RN
Robin Norwood rnorwood@redhat.com writes:
Ralf Corsepius rc040203@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 rnorwood@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:
-RN
Robin Norwood rnorwood@redhat.com writes:
Ralf Corsepius rc040203@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
perl-devel@lists.fedoraproject.org