From 25f341822c555005b79494b1a02e0c3b4d1f8f8d Mon Sep 17 00:00:00 2001 From: jbj Date: Fri, 1 Jun 2001 19:27:33 +0000 Subject: [PATCH] - merge sparc64/ia64 fiddles back into linux.{req,prov}. - automagically generate perl module dependencies always. CVS patchset: 4825 CVS date: 2001/06/01 19:27:33 --- CHANGES | 2 + autodeps/ia64-linux.prov | 30 +++++++++++++-- autodeps/ia64-linux.req | 90 ++++++++++++++++++++++++++++++++++++--------- autodeps/linux.prov | 37 ++++++++++++++++--- autodeps/linux.req | 91 +++++++++++++++++++++++++++++++++++++--------- autodeps/sparc-linux.prov | 30 +++++++++++++-- autodeps/sparc-linux.req | 90 ++++++++++++++++++++++++++++++++++++--------- scripts/find-requires.perl | 13 +++++++ scripts/perl.prov | 13 +++---- scripts/perl.req | 5 +-- 10 files changed, 326 insertions(+), 75 deletions(-) diff --git a/CHANGES b/CHANGES index f49e323..4a62098 100644 --- a/CHANGES +++ b/CHANGES @@ -74,6 +74,8 @@ - return multiple suggested packages (Pawel Kolodziej ). - fix: return suggested packages when using Depends cache. + - merge sparc64/ia64 fiddles back into linux.{req,prov}. + - automagically generate perl module dependencies always. 4.0 -> 4.0.[12] - add doxygen and lclint annotations most everywhere. diff --git a/autodeps/ia64-linux.prov b/autodeps/ia64-linux.prov index fa95113..aa23cc1 100644 --- a/autodeps/ia64-linux.prov +++ b/autodeps/ia64-linux.prov @@ -3,12 +3,21 @@ # This script reads filenames from STDIN and outputs any relevant provides # information that needs to be included in the package. -filelist=$(grep "\\.so" | grep -v "^/lib/ld.so" | xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1) +filelist=`sed "s/['\"]/\\\&/g"` -for f in $filelist; do +solist=$(echo $filelist | grep "\\.so" | grep -v "^/lib/ld.so" | \ + xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1) +perllist=$(echo $filelist | grep "\\.pm") +pythonlist= +tcllist= + +# +# --- Library sonames and weak symbol versions (from glibc). +for f in $solist; do soname=$(objdump -p $f | awk '/SONAME/ {print $2}') - lib64=`if file -L $f 2>/dev/null | grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` if [ "$soname" != "" ]; then if [ ! -L $f ]; then echo $soname$lib64 @@ -27,3 +36,18 @@ for f in $filelist; do echo ${f##*/}$lib64 fi done | sort -u + +# +# --- Perl modules. +[ -x /usr/lib/rpm/perl.prov -a -n "$perllist" ] && + echo $perllist | tr [:blank:] \\n | /usr/lib/rpm/perl.prov | sort -u + +# +# --- Python modules. +[ -x /usr/lib/rpm/python.prov -a -n "$pythonlist" ] && + echo $pythonlist | tr [:blank:] \\n | /usr/lib/rpm/python.prov | sort -u + +# +# --- Tcl modules. +[ -x /usr/lib/rpm/tcl.prov -a -n "$tcllist" ] && + echo $tcllist | tr [:blank:] \\n | /usr/lib/rpm/tcl.prov | sort -u diff --git a/autodeps/ia64-linux.req b/autodeps/ia64-linux.req index b93b6c6..9a92d5d 100644 --- a/autodeps/ia64-linux.req +++ b/autodeps/ia64-linux.req @@ -1,35 +1,72 @@ -#!/bin/sh +#!/bin/bash -# note this works for both a.out and ELF executables -# it also auto-generates requirment lines for shell scripts +# +# Auto-generate requirements for executables (both ELF and a.out) and library +# sonames, script interpreters, and perl modules. +# ulimit -c 0 filelist=`sed "s/['\"]/\\\&/g"` -exelist=`echo $filelist | xargs -r file | grep ":.*executable" | cut -d: -f1 ` -scriptlist=`echo $filelist | xargs -r file | egrep ":.* (commands|script) " | cut -d: -f1 ` -liblist=`echo $filelist | xargs -r file | grep ":.*shared object" | cut -d : -f1 ` +exelist=`echo $filelist | xargs -r file | egrep -v ":.* (commands|script) " | \ + grep ":.*executable" | cut -d: -f1` +scriptlist=`echo $filelist | xargs -r file | \ + egrep ":.* (commands|script) " | cut -d: -f1` +liblist=`echo $filelist | xargs -r file | \ + grep ":.*shared object" | cut -d : -f1` +interplist= +perllist= +pythonlist= +tcllist= + +# +# --- Executable sonames. for f in $exelist; do - lib64=`if file -L $f 2>/dev/null | grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` - if [ -x $f ]; then - ldd $f | awk '/=>/ { if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { gsub(/'\''"/,"\\&",$1); printf "%s'$lib64'\n", $1 } }' - fi + [ -r $f -a -x $f ] || continue + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + ldd $f | awk '/=>/ { + if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { + gsub(/'\''"/,"\\&",$1); + printf "%s'$lib64'\n", $1 + } + }' done | xargs -r -n 1 basename | sort -u +# +# --- Library sonames. for f in $liblist; do - lib64=`if file -L $f 2>/dev/null | grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` - ldd $f | awk '/=>/ { if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { gsub(/'\''"/,"\\&",$1); printf "%s'$lib64'\n", $1 } }' + [ -r $f ] || continue + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + ldd $f | awk '/=>/ { + if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { + gsub(/'\''"/,"\\&",$1); + printf "%s'$lib64'\n", $1 + } + }' done | xargs -r -n 1 basename | sort -u +# +# --- Script interpreters. for f in $scriptlist; do - if [ -x $f ]; then - head -1 $f | sed -e 's/^\#\![ ]*//' | cut -d" " -f1 - fi -done | sort -u + [ -r $f -a -x $f ] || continue + interp=`head -1 $f | sed -e 's/^\#\![ ]*//' | cut -d" " -f1` + interplist="$interplist $interp" + case $interp in + */perl) perllist="$perllist $f" ;; + *) [ "${f%.pm} != "${f}" ] && perllist="$perllist $f" ;; + esac +done +[ -n "$interplist" ] && { echo "$interplist" | sort -u ; } +# +# --- Weak symbol versions (from glibc). for f in $liblist $exelist ; do - lib64=`if file -L $f 2>/dev/null | grep "ELF 64-bit" >/dev/null; then echo "(64bit)"; fi` + [ -r $f ] || continue + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` objdump -p $f | awk ' BEGIN { START=0; LIBNAME=""; } /Version References:/ { START=1; } @@ -37,7 +74,24 @@ for f in $liblist $exelist ; do sub(/:/, "", $3); LIBNAME=$3; } - (START==1) && (LIBNAME!="") && ($4!="") { print LIBNAME "(" $4 ")'$lib64'"; } + (START==1) && (LIBNAME!="") && ($4~/^GLIBC_*/) { + print LIBNAME "(" $4 ")'$lib64'"; + } /^$/ { START=0; } ' done | sort -u + +# +# --- Perl modules. +[ -x /usr/lib/rpm/perl.req -a -n "$perllist" ] && \ + echo $perllist | tr [:blank:] \\n | /usr/lib/rpm/perl.req | sort -u + +# +# --- Python modules. +[ -x /usr/lib/rpm/python.req -a -n "$pythonlist" ] && \ + echo $pythonlist | tr [:blank:] \\n | /usr/lib/rpm/python.req | sort -u + +# +# --- Tcl modules. +[ -x /usr/lib/rpm/tcl.req -a -n "$tcllist" ] && \ + echo $tcllist | tr [:blank:] \\n | /usr/lib/rpm/tcl.req | sort -u diff --git a/autodeps/linux.prov b/autodeps/linux.prov index 472d786..aa23cc1 100644 --- a/autodeps/linux.prov +++ b/autodeps/linux.prov @@ -3,14 +3,24 @@ # This script reads filenames from STDIN and outputs any relevant provides # information that needs to be included in the package. -filelist=$(grep "\\.so" | grep -v "^/lib/ld.so" | xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1) +filelist=`sed "s/['\"]/\\\&/g"` -for f in $filelist; do +solist=$(echo $filelist | grep "\\.so" | grep -v "^/lib/ld.so" | \ + xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1) +perllist=$(echo $filelist | grep "\\.pm") +pythonlist= +tcllist= + +# +# --- Library sonames and weak symbol versions (from glibc). +for f in $solist; do soname=$(objdump -p $f | awk '/SONAME/ {print $2}') + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` if [ "$soname" != "" ]; then - if [ ! -L $f ]; then - echo $soname + if [ ! -L $f ]; then + echo $soname$lib64 objdump -p $f | awk ' BEGIN { START=0 ; } /Version definitions:/ { START=1; } @@ -19,10 +29,25 @@ for f in $filelist; do ' | \ grep -v $soname | \ while read symbol ; do - echo "$soname($symbol)" + echo "$soname($symbol)`echo $lib64 | sed 's/()//'`" done fi else - echo ${f##*/} + echo ${f##*/}$lib64 fi done | sort -u + +# +# --- Perl modules. +[ -x /usr/lib/rpm/perl.prov -a -n "$perllist" ] && + echo $perllist | tr [:blank:] \\n | /usr/lib/rpm/perl.prov | sort -u + +# +# --- Python modules. +[ -x /usr/lib/rpm/python.prov -a -n "$pythonlist" ] && + echo $pythonlist | tr [:blank:] \\n | /usr/lib/rpm/python.prov | sort -u + +# +# --- Tcl modules. +[ -x /usr/lib/rpm/tcl.prov -a -n "$tcllist" ] && + echo $tcllist | tr [:blank:] \\n | /usr/lib/rpm/tcl.prov | sort -u diff --git a/autodeps/linux.req b/autodeps/linux.req index fda723b..9a92d5d 100644 --- a/autodeps/linux.req +++ b/autodeps/linux.req @@ -1,32 +1,72 @@ -#!/bin/sh +#!/bin/bash -# note this works for both a.out and ELF executables -# it also auto-generates requirment lines for shell scripts +# +# Auto-generate requirements for executables (both ELF and a.out) and library +# sonames, script interpreters, and perl modules. +# ulimit -c 0 filelist=`sed "s/['\"]/\\\&/g"` -exelist=`echo $filelist | xargs -r file | grep ":.*executable" | cut -d: -f1 ` -scriptlist=`echo $filelist | xargs -r file | egrep ":.* (commands|script) " | cut -d: -f1 ` -liblist=`echo $filelist | xargs -r file | grep ":.*shared object" | cut -d : -f1 ` +exelist=`echo $filelist | xargs -r file | egrep -v ":.* (commands|script) " | \ + grep ":.*executable" | cut -d: -f1` +scriptlist=`echo $filelist | xargs -r file | \ + egrep ":.* (commands|script) " | cut -d: -f1` +liblist=`echo $filelist | xargs -r file | \ + grep ":.*shared object" | cut -d : -f1` +interplist= +perllist= +pythonlist= +tcllist= + +# +# --- Executable sonames. for f in $exelist; do - if [ -x $f ]; then - ldd $f | awk '/=>/ { print $1 }' - fi -done | sort -u | sed "s/['\"]/\\\&/g" | xargs -r -n 1 basename | grep -v 'libNoVersion.so' | sort -u + [ -r $f -a -x $f ] || continue + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + ldd $f | awk '/=>/ { + if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { + gsub(/'\''"/,"\\&",$1); + printf "%s'$lib64'\n", $1 + } + }' +done | xargs -r -n 1 basename | sort -u +# +# --- Library sonames. for f in $liblist; do - ldd $f | awk '/=>/ { print $1 }' -done | sort -u | sed "s/['\"]/\\\&/g" | xargs -r -n 1 basename | grep -v 'libNoVersion.so' | sort -u + [ -r $f ] || continue + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + ldd $f | awk '/=>/ { + if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { + gsub(/'\''"/,"\\&",$1); + printf "%s'$lib64'\n", $1 + } + }' +done | xargs -r -n 1 basename | sort -u +# +# --- Script interpreters. for f in $scriptlist; do - if [ -x $f ]; then - head -1 $f | sed -e 's/^\#\![ ]*//' | cut -d" " -f1 - fi -done | sort -u + [ -r $f -a -x $f ] || continue + interp=`head -1 $f | sed -e 's/^\#\![ ]*//' | cut -d" " -f1` + interplist="$interplist $interp" + case $interp in + */perl) perllist="$perllist $f" ;; + *) [ "${f%.pm} != "${f}" ] && perllist="$perllist $f" ;; + esac +done +[ -n "$interplist" ] && { echo "$interplist" | sort -u ; } +# +# --- Weak symbol versions (from glibc). for f in $liblist $exelist ; do + [ -r $f ] || continue + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` objdump -p $f | awk ' BEGIN { START=0; LIBNAME=""; } /Version References:/ { START=1; } @@ -34,7 +74,24 @@ for f in $liblist $exelist ; do sub(/:/, "", $3); LIBNAME=$3; } - (START==1) && (LIBNAME!="") && ($4~/^GLIBC_*/) { print LIBNAME "(" $4 ")"; } + (START==1) && (LIBNAME!="") && ($4~/^GLIBC_*/) { + print LIBNAME "(" $4 ")'$lib64'"; + } /^$/ { START=0; } ' done | sort -u + +# +# --- Perl modules. +[ -x /usr/lib/rpm/perl.req -a -n "$perllist" ] && \ + echo $perllist | tr [:blank:] \\n | /usr/lib/rpm/perl.req | sort -u + +# +# --- Python modules. +[ -x /usr/lib/rpm/python.req -a -n "$pythonlist" ] && \ + echo $pythonlist | tr [:blank:] \\n | /usr/lib/rpm/python.req | sort -u + +# +# --- Tcl modules. +[ -x /usr/lib/rpm/tcl.req -a -n "$tcllist" ] && \ + echo $tcllist | tr [:blank:] \\n | /usr/lib/rpm/tcl.req | sort -u diff --git a/autodeps/sparc-linux.prov b/autodeps/sparc-linux.prov index fa95113..aa23cc1 100644 --- a/autodeps/sparc-linux.prov +++ b/autodeps/sparc-linux.prov @@ -3,12 +3,21 @@ # This script reads filenames from STDIN and outputs any relevant provides # information that needs to be included in the package. -filelist=$(grep "\\.so" | grep -v "^/lib/ld.so" | xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1) +filelist=`sed "s/['\"]/\\\&/g"` -for f in $filelist; do +solist=$(echo $filelist | grep "\\.so" | grep -v "^/lib/ld.so" | \ + xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1) +perllist=$(echo $filelist | grep "\\.pm") +pythonlist= +tcllist= + +# +# --- Library sonames and weak symbol versions (from glibc). +for f in $solist; do soname=$(objdump -p $f | awk '/SONAME/ {print $2}') - lib64=`if file -L $f 2>/dev/null | grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` if [ "$soname" != "" ]; then if [ ! -L $f ]; then echo $soname$lib64 @@ -27,3 +36,18 @@ for f in $filelist; do echo ${f##*/}$lib64 fi done | sort -u + +# +# --- Perl modules. +[ -x /usr/lib/rpm/perl.prov -a -n "$perllist" ] && + echo $perllist | tr [:blank:] \\n | /usr/lib/rpm/perl.prov | sort -u + +# +# --- Python modules. +[ -x /usr/lib/rpm/python.prov -a -n "$pythonlist" ] && + echo $pythonlist | tr [:blank:] \\n | /usr/lib/rpm/python.prov | sort -u + +# +# --- Tcl modules. +[ -x /usr/lib/rpm/tcl.prov -a -n "$tcllist" ] && + echo $tcllist | tr [:blank:] \\n | /usr/lib/rpm/tcl.prov | sort -u diff --git a/autodeps/sparc-linux.req b/autodeps/sparc-linux.req index b93b6c6..9a92d5d 100644 --- a/autodeps/sparc-linux.req +++ b/autodeps/sparc-linux.req @@ -1,35 +1,72 @@ -#!/bin/sh +#!/bin/bash -# note this works for both a.out and ELF executables -# it also auto-generates requirment lines for shell scripts +# +# Auto-generate requirements for executables (both ELF and a.out) and library +# sonames, script interpreters, and perl modules. +# ulimit -c 0 filelist=`sed "s/['\"]/\\\&/g"` -exelist=`echo $filelist | xargs -r file | grep ":.*executable" | cut -d: -f1 ` -scriptlist=`echo $filelist | xargs -r file | egrep ":.* (commands|script) " | cut -d: -f1 ` -liblist=`echo $filelist | xargs -r file | grep ":.*shared object" | cut -d : -f1 ` +exelist=`echo $filelist | xargs -r file | egrep -v ":.* (commands|script) " | \ + grep ":.*executable" | cut -d: -f1` +scriptlist=`echo $filelist | xargs -r file | \ + egrep ":.* (commands|script) " | cut -d: -f1` +liblist=`echo $filelist | xargs -r file | \ + grep ":.*shared object" | cut -d : -f1` +interplist= +perllist= +pythonlist= +tcllist= + +# +# --- Executable sonames. for f in $exelist; do - lib64=`if file -L $f 2>/dev/null | grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` - if [ -x $f ]; then - ldd $f | awk '/=>/ { if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { gsub(/'\''"/,"\\&",$1); printf "%s'$lib64'\n", $1 } }' - fi + [ -r $f -a -x $f ] || continue + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + ldd $f | awk '/=>/ { + if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { + gsub(/'\''"/,"\\&",$1); + printf "%s'$lib64'\n", $1 + } + }' done | xargs -r -n 1 basename | sort -u +# +# --- Library sonames. for f in $liblist; do - lib64=`if file -L $f 2>/dev/null | grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` - ldd $f | awk '/=>/ { if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { gsub(/'\''"/,"\\&",$1); printf "%s'$lib64'\n", $1 } }' + [ -r $f ] || continue + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` + ldd $f | awk '/=>/ { + if ($1 !~ /libNoVersion.so/ && $1 !~ /4[um]lib.so/) { + gsub(/'\''"/,"\\&",$1); + printf "%s'$lib64'\n", $1 + } + }' done | xargs -r -n 1 basename | sort -u +# +# --- Script interpreters. for f in $scriptlist; do - if [ -x $f ]; then - head -1 $f | sed -e 's/^\#\![ ]*//' | cut -d" " -f1 - fi -done | sort -u + [ -r $f -a -x $f ] || continue + interp=`head -1 $f | sed -e 's/^\#\![ ]*//' | cut -d" " -f1` + interplist="$interplist $interp" + case $interp in + */perl) perllist="$perllist $f" ;; + *) [ "${f%.pm} != "${f}" ] && perllist="$perllist $f" ;; + esac +done +[ -n "$interplist" ] && { echo "$interplist" | sort -u ; } +# +# --- Weak symbol versions (from glibc). for f in $liblist $exelist ; do - lib64=`if file -L $f 2>/dev/null | grep "ELF 64-bit" >/dev/null; then echo "(64bit)"; fi` + [ -r $f ] || continue + lib64=`if file -L $f 2>/dev/null | \ + grep "ELF 64-bit" >/dev/null; then echo "()(64bit)"; fi` objdump -p $f | awk ' BEGIN { START=0; LIBNAME=""; } /Version References:/ { START=1; } @@ -37,7 +74,24 @@ for f in $liblist $exelist ; do sub(/:/, "", $3); LIBNAME=$3; } - (START==1) && (LIBNAME!="") && ($4!="") { print LIBNAME "(" $4 ")'$lib64'"; } + (START==1) && (LIBNAME!="") && ($4~/^GLIBC_*/) { + print LIBNAME "(" $4 ")'$lib64'"; + } /^$/ { START=0; } ' done | sort -u + +# +# --- Perl modules. +[ -x /usr/lib/rpm/perl.req -a -n "$perllist" ] && \ + echo $perllist | tr [:blank:] \\n | /usr/lib/rpm/perl.req | sort -u + +# +# --- Python modules. +[ -x /usr/lib/rpm/python.req -a -n "$pythonlist" ] && \ + echo $pythonlist | tr [:blank:] \\n | /usr/lib/rpm/python.req | sort -u + +# +# --- Tcl modules. +[ -x /usr/lib/rpm/tcl.req -a -n "$tcllist" ] && \ + echo $tcllist | tr [:blank:] \\n | /usr/lib/rpm/tcl.req | sort -u diff --git a/scripts/find-requires.perl b/scripts/find-requires.perl index a457100..ae404e6 100755 --- a/scripts/find-requires.perl +++ b/scripts/find-requires.perl @@ -17,10 +17,23 @@ for f in $scriptlist; do esac done | sort -u +for f in $filelist; do + [ -r $f ] || continue + if echo $f | grep -q '\.pm$' + then + modules="$modules $f" + fi +done + +[ -n "$modules" ] && perllist="$perllist $modules" + # # Generate perl module dependencies, if any. set -x [ -x /usr/lib/rpm/perl.req -a -n "$perllist" ] && \ echo $perllist | tr [:blank:] \\n | /usr/lib/rpm/perl.req | sort -u + +# +# Then process the files as usual. set +x echo $filelist | /usr/lib/rpm/find-requires diff --git a/scripts/perl.prov b/scripts/perl.prov index c9723f8..1dc6a62 100755 --- a/scripts/perl.prov +++ b/scripts/perl.prov @@ -67,7 +67,7 @@ foreach $module (sort keys %require) { # 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_* vairable when I upgrade. + # $RPM_* variable when I upgrade. print "perl($module) = $require{$module}\n"; } @@ -82,8 +82,7 @@ sub process_file { my ($file) = @_; chomp $file; - open(FILE, "<$file")|| - die("$0: Could not open file: '$file' : $!\n"); + open(FILE, "<$file") || return; my ($package, $version) = (); @@ -124,9 +123,9 @@ sub process_file { # here are examples of VERSION lines from the perl distribution - #FindBin.pm:$VERSION = $VERSION = sprintf("%d.%02d", q$Revision: 1.3 $ =~ /(\d+)\.(\d+)/); - #ExtUtils/Install.pm:$VERSION = substr q$Revision: 1.3 $, 10; - #CGI/Apache.pm:$VERSION = (qw$Revision: 1.3 $)[1]; + #FindBin.pm:$VERSION = $VERSION = sprintf("%d.%02d", q$Revision: 1.4 $ =~ /(\d+)\.(\d+)/); + #ExtUtils/Install.pm:$VERSION = substr q$Revision: 1.4 $, 10; + #CGI/Apache.pm:$VERSION = (qw$Revision: 1.4 $)[1]; #DynaLoader.pm:$VERSION = $VERSION = "1.03"; # avoid typo warning if ( @@ -161,7 +160,7 @@ sub process_file { } - close(FILE)|| + close(FILE) || die("$0: Could not close file: '$file' : $!\n"); return ; diff --git a/scripts/perl.req b/scripts/perl.req index e63235d..6e28761 100755 --- a/scripts/perl.req +++ b/scripts/perl.req @@ -76,8 +76,7 @@ sub process_file { my ($file) = @_; chomp $file; - open(FILE, "<$file")|| - die("$0: Could not open file: '$file' : $!\n"); + open(FILE, "<$file") || return; while () { @@ -192,7 +191,7 @@ sub process_file { } - close(FILE)|| + close(FILE) || die("$0: Could not close file: '$file' : $!\n"); return ; -- 2.7.4