Bug 43081 - omitted 'provides'-information for packages containing perl
omitted 'provides'-information for packages containing perl
Status: CLOSED RAWHIDE
Product: Red Hat Linux
Classification: Retired
Component: rpm (Show other bugs)
7.1
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Crutcher Dunnavant
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2001-05-31 12:56 EDT by Daniel Resare
Modified: 2008-05-01 11:38 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2003-01-01 13:46:54 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
a patch for the two problems decribed (1.70 KB, patch)
2001-05-31 12:58 EDT, Daniel Resare
no flags Details | Diff
when starting to use perl dependencies for real, some pragmas needs to be provided by perl (1.09 KB, patch)
2001-06-01 05:36 EDT, Daniel Resare
no flags Details | Diff

  None (edit)
Description Daniel Resare 2001-05-31 12:56:01 EDT
Description of Problem:
Due to a bug in /usr/lib/rpm/perl.prov a bogous POD-directive in a perl
module overshadows all provides symbols until an inverted POD-directive
shows up. This is because the internal state of the '..' operator in perl
is persistant between function calls.

How Reproducible:
Build a reasonably big program with perl modules (the easy example is
'perl') and check the 'provides' output. Compare to the list of included
modules, and you will see that it don't match. For example perl-5.6.0-12
includes the IO::Handle module, but don't advertise it in the 'Provides' field.

Additional Information:
The effects of this bug is overshadowed of the fact that requires is not
correctly checked when building new perl programs

I will attach a patch that fixes those two problems. Those will lead to a
chain reaction of things needed to be fixed (for for example perl doesnt
provide 'perl(strict)' that most installed scripts require)
Comment 1 Daniel Resare 2001-05-31 12:58:15 EDT
Created attachment 20037 [details]
a patch for the two problems decribed
Comment 2 Daniel Resare 2001-06-01 05:36:01 EDT
Created attachment 20074 [details]
when starting to use perl dependencies for real, some pragmas needs to be provided by perl
Comment 3 Jeff Johnson 2001-06-01 15:31:26 EDT
OK, I've merged the find-{requires,provides}.perl changes into the main
find-{requires,provides}, so the find-*.perl stuff can be removed.
Changes are in CVS on the rpm-4_0 branch, will be in rpm-4.0.3-0.31
as well.

What's still bothersome is that perl.prov takes like ~150MB to do it's
dirty when invoked as
	find /usr/lib -type f | /usr/lib/rpm/perl.prov
Any chance that you could take a look at *why* perl.prov consumes
so much memory? TIA ...
Comment 4 Jeff Johnson 2001-06-01 16:14:40 EDT
Off to perl to add the Provides to the spec file ...
Comment 5 Crutcher Dunnavant 2001-06-13 20:47:42 EDT
adding provides
Comment 6 Eugene Byrganov 2001-07-12 02:57:19 EDT
I have found ERROR in rpm-4.0.2/scripts/find-requires.perl:
 perllist=
 for f in $scriptlist; do
     [ -x $f ] || continue
     */perl) perllist="$perllist $f" ;;
     esac
 done | sort -u
 
 perllist always be empty after this code, because subshell use.
 Try 'echo perllist=$perllist 1>&2'. Why  need  '| sort -u'?

rpm-4.0.2-perl-provides.patch don't correct this bug.
Comment 7 Daniel Resare 2003-01-01 13:46:54 EST
From what I can see this bug seems fixed in Phoebe (rpm-4.2-0.25.1, perl-5.8.0-73).

Eugene, could you please file another bug with the oddity you've found.
Preferably with a simple test case showing that things actually go wrong as a
result of what you describe.

Note You need to log in before you can comment on or make changes to this bug.