diff options
Diffstat (limited to 'build/rpm/filter-requires')
-rwxr-xr-x | build/rpm/filter-requires | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/build/rpm/filter-requires b/build/rpm/filter-requires new file mode 100755 index 0000000..379415d --- /dev/null +++ b/build/rpm/filter-requires @@ -0,0 +1,75 @@ +#!/bin/sh +# +# Filter to exclude some Requires targets from those automatically +# generated by rpmbuild's helper script find-requires +# +# Specifically intended for Perl modules that PCP uses, but which +# may not be packaged in some distributions. +# + +_usage() +{ + echo >&2 "Usage: $0 [option] path-to-real-find-requires [arg]" + echo >&2 "Options:" + echo >&2 " -f fedora_version" + echo >&2 " -r redhat_version" + echo >&2 " -v vendor (\"redhat\" or \"suse\" or ...)" +} + +#debug# echo >&2 "$0 called as: $0 $*" + +FEDORA=0 +REDHAT=0 +VENDOR=unknown +while getopts "f:r:v:?" c +do + case $c + in + f) + FEDORA="$OPTARG" + ;; + r) + REDHAT="$OPTARG" + ;; + v) + VENDOR="$OPTARG" + ;; + esac +done +shift `expr $OPTIND - 1` + +if [ $# -lt 1 ] +then + _usage + exit 1 +fi + +if [ ! -f "$1" ] +then + echo "$0: Error: rpm script $1 not found" + exit 1 +fi + +# Filtering depends on distro vendor and possibly version +# +# Lines from find-requires look like this ... +# /bin/sh +# libc.so.6()(64bit) +# libc.so.6(GLIBC_2.2.5)(64bit) +# perl(Spreadsheet::Read) +# perl(strict) +# +case "$VENDOR" +in + redhat) + # See RedHat BZ 830923 and BZ 754678 for Spreadsheet::Read + # issues. + # Does not seem to matter what version of RH or Fedora. + $* \ + | sed \ + -e '/^perl(Spreadsheet::Read)$/d' + ;; + *) + $* + ;; +esac |