summaryrefslogtreecommitdiff
path: root/autodeps/irix6.req
diff options
context:
space:
mode:
authorewt <devnull@localhost>1998-06-14 16:03:14 +0000
committerewt <devnull@localhost>1998-06-14 16:03:14 +0000
commit835ae99566c22cf8bfac0f6d53e035faca385df8 (patch)
tree086dfe82719c195dc74e79728f9be0a8fc185a1d /autodeps/irix6.req
parentd32b57aafa60dccb0af4996e3eed1d127e57be06 (diff)
downloadlibrpm-tizen-835ae99566c22cf8bfac0f6d53e035faca385df8.tar.gz
librpm-tizen-835ae99566c22cf8bfac0f6d53e035faca385df8.tar.bz2
librpm-tizen-835ae99566c22cf8bfac0f6d53e035faca385df8.zip
more updates from Tim Mooney
CVS patchset: 2149 CVS date: 1998/06/14 16:03:14
Diffstat (limited to 'autodeps/irix6.req')
-rw-r--r--autodeps/irix6.req125
1 files changed, 124 insertions, 1 deletions
diff --git a/autodeps/irix6.req b/autodeps/irix6.req
index 75c0b1b82..48d0e4fd6 100644
--- a/autodeps/irix6.req
+++ b/autodeps/irix6.req
@@ -1,7 +1,130 @@
#! /usr/bin/ksh
# Original Author: Tim Mooney (mooney@plains.nodak.edu)
-# $Id: irix6.req,v 1.1 1998/06/02 13:48:59 ewt Exp $
+# $Id: irix6.req,v 1.2 1998/06/14 16:03:14 ewt Exp $
+#
+# This file is distributed under the terms of the GNU Public License
+#
+# find-requires is part of RPM, the Red Hat Package Manager. find-requires
+# reads a list of full pathnames (in a package) on stdin, and outputs all
+# shared libraries the package requires to execute.
+#
+# NOTE: I use `:' as the delimiter (by default) between the library soname
+# and any library version info. This is because IRIX libraries (even
+# system libraries) have "version information" in both the soname and the
+# internal version field, so it's important to be able to separate those
+# fields. If we just used `.', we wouldn't know where the soname ends and
+# the version infromation begins.
+#
+# On IRIX, use `elfdump -Dl' to find what libraries are required by
+# an executable. `elfdump -L' does what we need too, but it gives us more
+# than we really need.
+#
+# Example `elfdump -Dl' output:
+#
+#$elfdump -Dl /usr/bin/X11/xterm
+#
+#
+#
+#/usr/bin/X11/xterm:
+#
+# **** MIPS LIBLIST INFORMATION ****
+#.liblist :
+#[INDEX] Timestamp Checksum Flags Name Version
+#[1] Nov 23 15:39:02 1997 0x4da65893 ----- libXaw.so.2 sgi2.0
+#[2] Nov 23 15:39:02 1997 0x414eece6 ----- libXmu.so sgi1.0
+#[3] Nov 23 15:39:02 1997 0x6f314e69 ----- libXt.so sgi1.0
+#[4] Nov 23 15:39:02 1997 0xcbe81fff ----- libXext.so sgi1.0
+#[5] Nov 23 15:39:02 1997 0x89ae8e98 ----- libX11.so.1 sgi1.0
+#[6] Oct 27 01:00:29 1997 0x99b27890 ----- libcurses.so sgi1.0
+#[7] Jun 16 18:23:15 1997 0x92321a0c ----- libc.so.1 sgi1.0
+#
+
+#
+# TVM: it might be better to re-write this so that `file' isn't used, since
+# it can all be done with `elfdump', but this works.
+#
+
+PATH=/usr/bin:/usr/sbin
+export PATH
+
+filelist=`cat -`
+
+#
+# Handle scripts first
+#
+for f in `echo $filelist | xargs file | grep 'script text' | cut -d: -f 2 \
+ | awk '{ print $1 }'`
+do
+ print $f
+done | sort -u
+
+
+for f in `echo $filelist | xargs file | egrep 'executable|lib' | cut -d: -f1`
+do
+ #echo "Working on $f"
+ elfdump -Dl $f 2>/dev/null | awk '
+
+ #
+ # For you non-awk-ers, no single quotes in comments -- the shell
+ # sees them and things get hosed.
+ #
+
+ BEGIN {
+ found_column_headers = 0;
+ FS = " ";
+ RS = "\n";
+ OFS="";
+ soname_version_delimiter=":";
+ }
+
+ # uncomment the next line for debugging information
+ #{ print "Saw input:", $0 }
+
+ found_column_headers == 1 && $0 !~ /^$/ {
+
+ # get the library name (field 15) and the library version (field 16)
+ # if present.
+ numfields = split($0,fields)
+ if (numfields == 8) {
+ print fields[8]
+ } else if (numfields == 9) {
+ #
+ print fields[8], soname_version_delimiter, fields[9]
+ } else if (numfields > 9) {
+ #
+ # SGI has this annoying habit of putting comments, complete
+ # with whitespace, in their library IVERSION field. Yuck.
+ #
+ # Handle libraries like this gracefully.
+ #
+ verfields = split(fields[NF], junk, "#")
+ if (verfields == 2) {
+ print fields[8], soname_version_delimiter, junk[2]
+ } else if (verfields > 2) {
+ print fields[8], soname_version_delimiter, junk[verfields]
+ } else {
+ print "Cannot find version:", fields[numfields] | "cat 2>&1"
+ }
+ }
+ }
+
+ /^\[INDEX\].Timestamp.*Checksum.*Flags.*Name.*Version$/ {
+ # we better start paying attention now.
+ found_column_headers = 1
+ #
+ # uncomment the next line for debugging information
+ #print "found the column headers: ", $0
+ }
+
+ ' # end of awk
+done | sort -u
+# comment out the previous line and uncomment the next when debugging
+#done
+#! /usr/bin/ksh
+
+# Original Author: Tim Mooney (mooney@plains.nodak.edu)
+# $Id: irix6.req,v 1.2 1998/06/14 16:03:14 ewt Exp $
#
# This file is distributed under the terms of the GNU Public License
#