Slackware 2.2 bug: binutils "strings" incompatible with installpkg

Slackware 2.2 bug: binutils "strings" incompatible with installpkg

Post by Jonathan Kame » Sat, 10 Jun 1995 04:00:00



Slackware 2.2 has a /usr/bin/strings binary in two different packages:
a2/util.tgz and d8/binutils.tgz.  The util.tgz version looks like this:

-rwxr-xr-x root/bin       3504 Mar 21 04:37 1995 usr/bin/strings

The binutils.tgz version looks like this:

-rwxr-xr-x root/bin     135172 Dec 14 12:02 1994 usr/bin/strings

Now, it wouldn't be such a big deal that the two versions are different, if it
weren't for the fact that the util.tgz version takes input from stdin and the
binutils.tgz version doesn't.  Unfortunately, /sbin/installpkg expects the
former behavior:

Quote:> grep strings /sbin/installpkg

        if cat $file | strings | uniq | fgrep "$shortname:" >> /var/adm/packages/$shortname 2> /dev/null ; then
          cat $file | strings | uniq | fgrep "$shortname:"

Therefore, after installing the binutils.tgz package, installpkg will
suddenly start printing errors of this sort when it runs:

Usage: /cdrom/live/usr/bin/strings [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-]
       [--all] [--print-file-name] [--bytes=min-len] [--radix={o,x,d}]
       [--target=bfdname] [--help] [--version] file...

It does actually install the package even when it prints this error, but
still, this is sub-optimal.

Every version of "strings" I've ever used has been able to take input from
stdin, so it seems to me that this is a bug with the binutils version of
strings, so I'm CC'ing this to its maintainers as well as to the maintainer of
Slackware.

(If you don't care about the extra functionality that the binutils.tgz version
of "strings" provides, an easy solution to this problem is simply to reinstall
the utils.tgz version after installing binutils.tgz.)