]> git.pld-linux.org Git - packages/rpm.git/blob - rpm-perl-macros.patch
- add provides/requires scripts macros for perl and python
[packages/rpm.git] / rpm-perl-macros.patch
1 --- rpm-5.3.1/configure.ac.wiget        2010-05-22 17:15:11.000000000 +0200
2 +++ rpm-5.3.1/configure.ac      2010-05-30 16:37:59.526924459 +0200
3 @@ -2198,6 +2198,7 @@ AC_CONFIG_FILES([ po/Makefile.in
4      build/Makefile build/auto/Makefile build/auto/desc build/auto/types
5      tools/Makefile
6      scripts/Makefile
7 +    scripts/perl.req scripts/perl.prov
8      rpmdb/DB_CONFIG
9      macros/macros macros/macros.rpmbuild
10      macros/java macros/libtool macros/mono macros/perl 
11 --- rpm-5.3.1/scripts/perl.req.wiget    2008-10-26 10:50:53.000000000 +0100
12 +++ rpm-5.3.1/scripts/perl.req  2010-05-30 16:35:36.999438206 +0200
13 @@ -1,4 +1,4 @@
14 -#!/usr/bin/perl
15 +#!@__PERL@
16  
17  # RPM (and its source code) is covered under two separate licenses. 
18  
19 @@ -41,7 +41,11 @@
20  
21  if ("@ARGV") {
22    foreach (@ARGV) {
23 -    process_file($_);
24 +    if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) {
25 +      if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) {
26 +        process_file($_);
27 +      }
28 +    }
29    }
30  } else {
31    
32 @@ -49,7 +53,11 @@ if ("@ARGV") {
33    # contents of the file.
34    
35    foreach (<>) {
36 -    process_file($_);
37 +     if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) {
38 +       if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) {
39 +         process_file($_);
40 +       }
41 +     }
42    }
43  }
44  
45 @@ -215,19 +223,41 @@ sub process_file {
46  
47        $module =~ s/\(\s*\)$//;
48  
49 -      if ( $module =~ m/^v?([0-9._]+)$/ ) {
50 +      if ( $module =~ m/^(v?)([0-9._]+)$/ ) {
51        # if module is a number then both require and use interpret that
52        # to mean that a particular version of perl is specified
53  
54 -      my $ver=$1;
55 -      if ($ver =~ /5.00/) {
56 -        print "perl >= 0:$ver\n";
57 -        next;
58 -      }
59 -      else {
60 -        print "perl >= 1:$ver\n";
61 -        next;
62 -      }
63 +       my $ver=$2;
64 +       if (($1 eq 'v') or ($ver =~ /[0-9]+\.[0-9]+\.[0-9]+/)) {
65 +         # $V-style
66 +         if ($ver =~ m/5\.([0-5])(\.([0-9]+))?$/) {
67 +           if (defined $3) {
68 +             print "perl-base >= 0:5.00$1_$3\n";
69 +           } else {
70 +             print "perl-base >= 0:5.00$1\n";
71 +           }
72 +         } else {
73 +           print "perl-base >= 1:$ver\n";
74 +         }
75 +       } else {
76 +         # $]-style
77 +         if ($ver =~ m/5\.(00[0-5])_?([0-9]+)?$/) {
78 +           if (defined $2) {
79 +             print "perl-base >= 0:5.$1_$2\n";
80 +           } else {
81 +             print "perl-base >= 0:5.$1\n";
82 +           }
83 +         } else {
84 +           # expand to M.NNN_nnn form
85 +           $ver =~ s/^([0-9])$/$1./;
86 +           $ver =~ s/^([0-9]\.[0-9]{0,5}|[0-9]\.[0-9]{3}_[0-9]{0,2})$/${1}000000/;
87 +           $ver =~ s/^([0-9]\.[0-9]{3})_?([0-9]{3})0*$/$1_$2/;
88 +           # match trimming leading 0s
89 +           $ver =~ m/^([0-9])\.0*([1-9][0-9]*|0)_0*([1-9][0-9]*|0)$/;
90 +           print "perl-base >= 1:$1.$2.$3\n";
91 +         }
92 +       }
93 +       next;
94  
95        };
96  
97 @@ -244,7 +274,31 @@ sub process_file {
98        # will be included with the name sys/systeminfo.ph so only use the
99        # basename of *.ph files
100  
101 -      ($module  =~ m/\.ph$/) && next;
102 +      # ($module  =~ m/\.ph$/) && ($module =~ s!.*/!!g );
103
104 +      # there is no need to generate dependencies for ph, pl or test files
105 +      # so let's just skip them.
106 +
107 +      ($module =~ m/\.(ph|pl|t)$/) && next;
108 +
109 +      # skip all modules for platforms other than linux.
110 +
111 +      ($module =~ m/Mac|OS2|MSDOS|Win32|VMS|vmsish/) && next;
112 +
113 +      # if the module name starts in a dot it is not a module name.
114 +
115 +      ($module =~ m/^\./) && next;
116 +
117 +      # if the module ends with .pm strip it to leave only basename.
118 +
119 +      $module =~ s/\.pm$//;
120 +
121 +      $module =~ s/\//::/;
122 +
123 +      # trim off trailing parenthesis if any.  Sometimes people pass
124 +      # the module an empty list.
125 +
126 +      $module =~ s/\(\s*\)$//;
127  
128        $require{$module}=$version;
129        $line{$module}=$_;
This page took 0.039664 seconds and 3 git commands to generate.