Article View: comp.sys.next.misc
Article #3341Re: Distinguishing 3.0 binaries
From: Allen B
Date: Wed, 11 Nov 1992 21:38
Date: Wed, 11 Nov 1992 21:38
89 lines
3340 bytes
3340 bytes
Earlier, I said:
> I received several responses that all said about the same
> thing. Since I have a fantastic collection of old
> NeXTstep releases, I will post a sh script here shortly
> that identifies binaries of as many as I can manage. This
> should be fun!
Here's the script. It's also on sonata as
pub/next/lore/version. I'll add some more error
checking and junk later. Make sure you set the modes right
on it (readable and executable for whomever).
To use, just give it filenames of programs you want to
check, like "version /LocalApps/*" and it does the rest.
I'm no sh wizard, but I do OK. :-)
Thanks for the tips. I rummaged through my morgue and made
it a little more robust. :-)
#!/bin/sh
#
# version Find the version of the OS a program was created under
#
# by Allen B (ab@nova.cc.purdue.edu) with help from the net.
#
# Uses otool to check version numbers on libraries, then checks those
# against the versions of the OS I had handy. I've got quite a morgue
# here, but I don't have a lot of 2.x variants.
#
# If it ever says "Version n" instead of printing the OS level, send
# the version number and OS name to me and I'll fix it.
for PROGRAM
do
BINARY=`echo $PROGRAM | sed "s,\([^/]*\)\.app,\1.app/\1,"`
if [ "$BINARY" = "$PROGRAM" ]
then
TYPE="executable"
else
TYPE="App"
fi
VERSION=`/bin/otool -L "$BINARY" | grep libsys_s...shlib | sed "s/.*
\([0-9][0-9]*\).*/\1/"`
if [ ! "$VERSION" ]
then
VERSION=`/bin/otool -L "$BINARY" | grep libappkit | sed "s/.*
\([0-9][0-9]*\).*/\1/"`
fi
# OS="I have no idea what kind of"
OS="Version $VERSION"
case "$VERSION" in
14) # 0.8a26e0.8
OS="NeXTStep 0.8"
;;
1) # 0.9.49:0.83
OS="NeXTStep 0.9"
;;
10) # 1.0.63 (also labeled 0.981 physically)
OS="NeXTStep 0.981"
;;
12) # 1.0.63 (also labeled 0.981 physically)
OS="NeXTStep 0.981"
;;
13) # 1.0.63/1.067 (also labeled 0.981/0.991 physically)
OS="NeXTStep 0.991"
;;
17) # 1.067 (also labeled 0.991 physically)
OS="NeXTStep 0.991"
;;
18) # 1.0.68
OS="NextStep 1.0"
;;
19) # 1.0.68
OS="NextStep 1.0"
;;
44) # Whatever I was using
OS="NeXTstep 2.x"
;;
55) # 3.0 CD Distribution
OS="NeXTSTEP 3.0"
;;
esac
# echo "$PROGRAM: $OS ($VERSION) $TYPE"
echo "$PROGRAM: $OS $TYPE"
done
Technical Details
Message-ID:
<BxKMsL.2rv@mentor.cc.purdue.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!destroyer!gatech!purdue!mentor.cc.purdue.edu!newsReferences:
<BxKBs1.3yH@mentor.cc.purdue.edu>Show Full Headers
Complete Article Headers
Newsgroups: comp.sys.next.misc Path: arc1-ca.pugleaf.net!sparky!uunet!destroyer!gatech!purdue!mentor.cc.purdue.edu!news From: ab@nova.cc.purdue.edu (Allen B) Subject: Re: Distinguishing 3.0 binaries Message-ID: <BxKMsL.2rv@mentor.cc.purdue.edu> Keywords: cool sh script Sender: news@mentor.cc.purdue.edu (USENET News) Organization: Purdue University References: <BxKBs1.3yH@mentor.cc.purdue.edu> Date: Wed, 11 Nov 1992 21:38:44 GMT Lines: 89