]> git.pld-linux.org Git - packages/rpm.git/blame - rpm-perl-macros.patch
- handle different forms of "require version"
[packages/rpm.git] / rpm-perl-macros.patch
CommitLineData
49deaedf
AM
1diff -urN rpm-4.3.org/configure.ac rpm-4.3/configure.ac
2--- rpm-4.3.org/configure.ac 2004-01-07 01:51:35.251160244 +0100
3+++ rpm-4.3/configure.ac 2004-01-07 01:55:53.198560246 +0100
dafd24dd
AM
4@@ -1313,6 +1313,7 @@
5 Doxyfile Makefile macros rpmpopt rpm.spec
6 rpmio/Makefile rpmdb/Makefile lib/Makefile build/Makefile
7 scripts/Makefile scripts/macros.perl scripts/macros.php
8+ scripts/perl.req scripts/perl.prov
9 scripts/macros.python tools/Makefile misc/Makefile doc/Makefile
10 doc/manual/Makefile doc/fr/Makefile doc/ja/Makefile doc/ko/Makefile
11 doc/pl/Makefile doc/ru/Makefile doc/sk/Makefile python/Makefile
fe3cefac
JB
12--- rpm-4.4.9/scripts/perl.req.orig 2006-07-08 16:13:50.000000000 +0200
13+++ rpm-4.4.9/scripts/perl.req 2008-03-24 01:13:31.985544655 +0100
2fa5aec3
AF
14@@ -1,4 +1,4 @@
15-#!/usr/bin/perl
5b0f0ac9 16+#!@__PERL@
4703c2f4 17
fe3cefac 18 # RPM (and its source code) is covered under two separate licenses.
4703c2f4
AF
19
20@@ -41,7 +41,11 @@
2fa5aec3
AF
21
22 if ("@ARGV") {
23 foreach (@ARGV) {
24- process_file($_);
20a6d548 25+ if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) {
2eb651d8 26+ if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) {
2fa5aec3
AF
27+ process_file($_);
28+ }
29+ }
30 }
31 } else {
32
fe3cefac 33@@ -49,7 +53,11 @@
2fa5aec3
AF
34 # contents of the file.
35
36 foreach (<>) {
37- process_file($_);
4703c2f4
AF
38+ if (m=/usr/(sbin|bin|lib|share|X11R6/(lib|bin))/=) {
39+ if (! m=(/(doc|man|info|usr/src)/|\.(so|ph|h|html|pod)$)=) {
40+ process_file($_);
41+ }
42+ }
2fa5aec3
AF
43 }
44 }
edf87823 45
fe3cefac 46@@ -203,19 +211,41 @@
edf87823 47
fe3cefac
JB
48 $module =~ s/\(\s*\)$//;
49
50- if ( $module =~ m/^v?([0-9._]+)$/ ) {
51+ if ( $module =~ m/^(v?)([0-9._]+)$/ ) {
52 # if module is a number then both require and use interpret that
53 # to mean that a particular version of perl is specified
54
55- my $ver=$1;
56- if ($ver =~ /5.00/) {
57- print "perl >= 0:$ver\n";
58- next;
59- }
60- else {
61- print "perl >= 1:$ver\n";
62- next;
63- }
64+ my $ver=$2;
65+ if (($1 eq 'v') or ($ver =~ /[0-9]+\.[0-9]+\.[0-9]+/)) {
66+ # $V-style
67+ if ($ver =~ m/5\.([0-5])(\.([0-9]+))?$/) {
68+ if (defined $3) {
69+ print "perl-base >= 0:5.00$1_$3\n";
70+ } else {
71+ print "perl-base >= 0:5.00$1\n";
72+ }
73+ } else {
74+ print "perl-base >= 1:$ver\n";
75+ }
76+ } else {
77+ # $]-style
78+ if ($ver =~ m/5\.(00[0-5])_?([0-9]+)?$/) {
79+ if (defined $2) {
80+ print "perl-base >= 0:5.$1_$2\n";
81+ } else {
82+ print "perl-base >= 0:5.$1\n";
83+ }
84+ } else {
85+ # expand to M.NNN_nnn form
86+ $ver =~ s/^([0-9])$/$1./;
87+ $ver =~ s/^([0-9]\.[0-9]{0,5}|[0-9]\.[0-9]{3}_[0-9]{0,2})$/${1}000000/;
88+ $ver =~ s/^([0-9]\.[0-9]{3})_?([0-9]{3})0*$/$1_$2/;
89+ # match trimming leading 0s
90+ $ver =~ m/^([0-9])\.0*([1-9][0-9]*|0)_0*([1-9][0-9]*|0)$/;
91+ print "perl-base >= 1:$1.$2.$3\n";
92+ }
93+ }
94+ next;
95
96 };
2fa5aec3 97
fe3cefac 98@@ -232,7 +262,31 @@
3ce8984f 99 # will be included with the name sys/systeminfo.ph so only use the
100 # basename of *.ph files
101
5b0f0ac9 102- ($module =~ m/\.ph$/) && next;
3ce8984f 103+ # ($module =~ m/\.ph$/) && ($module =~ s!.*/!!g );
5b0f0ac9 104+
852c3a98 105+ # there is no need to generate dependencies for ph, pl or test files
4a19987c 106+ # so let's just skip them.
4703c2f4 107+
852c3a98 108+ ($module =~ m/\.(ph|pl|t)$/) && next;
cfd811fa 109+
4a19987c 110+ # skip all modules for platforms other than linux.
92b19143 111+
112+ ($module =~ m/Mac|OS2|MSDOS|Win32|VMS|vmsish/) && next;
113+
4a19987c 114+ # if the module name starts in a dot it is not a module name.
4d8fb4e3 115+
116+ ($module =~ m/^\./) && next;
117+
4a19987c 118+ # if the module ends with .pm strip it to leave only basename.
5e855029 119+
4a19987c 120+ $module =~ s/\.pm$//;
5e855029 121+
cb87a980 122+ $module =~ s/\//::/;
123+
4a19987c 124+ # trim off trailing parenthesis if any. Sometimes people pass
125+ # the module an empty list.
126+
127+ $module =~ s/\(\s*\)$//;
cfd811fa 128
3ce8984f 129 $require{$module}=$version;
5b0f0ac9 130 $line{$module}=$_;
This page took 0.198583 seconds and 4 git commands to generate.