/
usr
/
lib
/
rpm
/
/usr/lib/rpm
mkdir
upload
Name
Size
Mode
Actions
macros.d/
-
0755
rm
platform/
-
0755
rm
redhat/
-
0755
rm
brp-compress
1466
0755
edit
dl
rm
brp-java-gcjcompile
1401
0755
edit
dl
rm
brp-python-bytecompile
3031
0755
edit
dl
rm
brp-strip
487
0755
edit
dl
rm
brp-strip-comment-note
696
0755
edit
dl
rm
brp-strip-shared
684
0755
edit
dl
rm
brp-strip-static-archive
389
0755
edit
dl
rm
check-buildroot
1231
0755
edit
dl
rm
check-files
663
0755
edit
dl
rm
check-prereqs
418
0755
edit
dl
rm
check-rpaths
1039
0755
edit
dl
rm
check-rpaths-worker
5045
0755
edit
dl
rm
config.guess
44941
0755
edit
dl
rm
config.sub
34423
0755
edit
dl
rm
debugedit
30544
0755
edit
dl
rm
desktop-file.prov
437
0755
edit
dl
rm
find-debuginfo.sh
9358
0755
edit
dl
rm
find-lang.sh
5621
0755
edit
dl
rm
find-provides
1559
0755
edit
dl
rm
find-requires
3505
0755
edit
dl
rm
fontconfig.prov
489
0755
edit
dl
rm
javadeps
23400
0755
edit
dl
rm
libtooldeps.sh
707
0755
edit
dl
rm
macros
43450
0644
edit
dl
rm
macros.perl
596
0644
edit
dl
rm
macros.php
313
0644
edit
dl
rm
macros.python
906
0644
edit
dl
rm
mkinstalldirs
3495
0755
edit
dl
rm
mono-find-provides
1105
0755
edit
dl
rm
mono-find-requires
1914
0755
edit
dl
rm
ocaml-find-provides.sh
1880
0755
edit
dl
rm
ocaml-find-requires.sh
2354
0755
edit
dl
rm
osgideps.pl
10591
0755
edit
dl
rm
perl.prov
5776
0755
edit
dl
rm
perl.req
7973
0755
edit
dl
rm
perldeps.pl
32900
0644
edit
dl
rm
pkgconfigdeps.sh
1171
0755
edit
dl
rm
pythondeps.sh
875
0755
edit
dl
rm
rpm.daily
284
0644
edit
dl
rm
rpm.log
61
0644
edit
dl
rm
rpm.xinetd
319
0644
edit
dl
rm
rpm2cpio.sh
1255
0755
edit
dl
rm
rpmdb_archive
-
0
edit
dl
rm
rpmdb_deadlock
-
0
edit
dl
rm
rpmdb_dump
-
0
edit
dl
rm
rpmdb_load
-
0
edit
dl
rm
rpmdb_loadcvt
1467
0755
edit
dl
rm
rpmdb_printlog
-
0
edit
dl
rm
rpmdb_recover
-
0
edit
dl
rm
rpmdb_stat
-
0
edit
dl
rm
rpmdb_upgrade
-
0
edit
dl
rm
rpmdb_verify
-
0
edit
dl
rm
rpmdeps
8616
0755
edit
dl
rm
rpmdiff
23977
0755
edit
dl
rm
rpmdiff.cgi
15674
0644
edit
dl
rm
rpmpopt-4.8.0
7920
0644
edit
dl
rm
rpmrc
13698
0644
edit
dl
rm
tcl.req
2069
0755
edit
dl
rm
tgpg
907
0755
edit
dl
rm
Edit:
/usr/lib/rpm/perl.prov
(5776B)
#!/usr/bin/perl # RPM (and it's source code) is covered under two separate licenses. # The entire code base may be distributed under the terms of the GNU # General Public License (GPL), which appears immediately below. # Alternatively, all of the source code in the lib subdirectory of the # RPM source code distribution as well as any code derived from that # code may instead be distributed under the GNU Library General Public # License (LGPL), at the choice of the distributor. The complete text # of the LGPL appears at the bottom of this file. # This alternative is allowed to enable applications to be linked # against the RPM library (commonly called librpm) without forcing # such applications to be distributed under the GPL. # Any questions regarding the licensing of RPM should be addressed to # Erik Troan <ewt@redhat.com>. # a simple script to print the proper name for perl libraries. # To save development time I do not parse the perl grammmar but # instead just lex it looking for what I want. I take special care to # ignore comments and pod's. # it would be much better if perl could tell us the proper name of a # given script. # The filenames to scan are either passed on the command line or if # that is empty they are passed via stdin. # If there are lines in the file which match the pattern # (m/^\s*\$VERSION\s*=\s+/) # then these are taken to be the version numbers of the modules. # Special care is taken with a few known idioms for specifying version # numbers of files under rcs/cvs control. # If there are strings in the file which match the pattern # m/^\s*\$RPM_Provides\s*=\s*["'](.*)['"]/i # then these are treated as additional names which are provided by the # file and are printed as well. # I plan to rewrite this in C so that perl is not required by RPM at # build time. # by Ken Estes Mail.com kestes@staff.mail.com if ("@ARGV") { foreach (@ARGV) { process_file($_); } } else { # notice we are passed a list of filenames NOT as common in unix the # contents of the file. foreach (<>) { process_file($_); } } foreach $module (sort keys %require) { if (length($require{$module}) == 0) { print "perl($module)\n"; } else { # I am not using rpm3.0 so I do not want spaces arround my # operators. Also I will need to change the processing of the # $RPM_* variable when I upgrade. print "perl($module) = $require{$module}\n"; } } exit 0; sub process_file { my ($file) = @_; chomp $file; open(FILE, "<$file") || return; my ($package, $version, $incomment, $inover) = (); while (<FILE>) { # skip the documentation # we should not need to have item in this if statement (it # properly belongs in the over/back section) but people do not # read the perldoc. if (m/^=(head[1-4]|pod|item)/) { $incomment = 1; } if (m/^=(cut)/) { $incomment = 0; $inover = 0; } if (m/^=(over)/) { $inover = 1; } if (m/^=(back)/) { $inover = 0; } if ($incomment || $inover) { next; } # skip the data section if (m/^__(DATA|END)__$/) { last; } # not everyone puts the package name of the file as the first # package name so we report all namespaces except some common # false positives as if they were provided packages (really ugly). if (m/^\s*package\s+([_:a-zA-Z0-9]+)\s*;/) { $package=$1; undef $version; if ($package eq 'main') { undef $package; } else { # If $package already exists in the $require hash, it means # the package definition is broken up over multiple blocks. # In that case, don't stomp a previous $VERSION we might have # found. (See BZ#214496.) $require{$package}=undef unless (exists $require{$package}); } } # after we found the package name take the first assignment to # $VERSION as the version number. Exporter requires that the # variable be called VERSION so we are safe. # here are examples of VERSION lines from the perl distribution #FindBin.pm:$VERSION = $VERSION = sprintf("%d.%02d", q$Revision: 1.9 $ =~ /(\d+)\.(\d+)/); #ExtUtils/Install.pm:$VERSION = substr q$Revision: 1.9 $, 10; #CGI/Apache.pm:$VERSION = (qw$Revision: 1.9 $)[1]; #DynaLoader.pm:$VERSION = $VERSION = "1.03"; # avoid typo warning #General.pm:$Config::General::VERSION = 2.33; # # or with the new "our" pragma you could (read will) see: # # our $VERSION = '1.00' if (($package) && (m/^\s*(our\s+)?\$(\Q$package\E::)?VERSION\s*=\s+/)) { # first see if the version string contains the string # '$Revision' this often causes bizzare strings and is the most # common method of non static numbering. if (m/(\$Revision: (\d+[.0-9]+))/) { $version= $2; } elsif (m/[\'\"]?(\d+[.0-9]+)[\'\"]?/) { # look for a static number hard coded in the script $version= $1; } $require{$package}=$version; } # Allow someone to have a variable that defines virtual packages # The variable is called $RPM_Provides. It must be scoped with # "our", but not "local" or "my" (just would not make sense). # # For instance: # # $RPM_Provides = "blah bleah" # # Will generate provides for "blah" and "bleah". # # Each keyword can appear multiple times. Don't # bother with datastructures to store these strings, # if we need to print it print it now. if ( m/^\s*(our\s+)?\$RPM_Provides\s*=\s*["'](.*)['"]/i) { foreach $_ (split(/\s+/, $2)) { print "$_\n"; } } } close(FILE) || die("$0: Could not close file: '$file' : $!\n"); return ; }
Save
cmd:
run