/usr/src/linux/scripts/ver_linux prints out incorrect info when "ls" is aliased.

From: Ishikawa (ishikawa@yk.rim.or.jp)
Date: Sun Feb 04 2001 - 10:15:28 EST


I just noticed that running

        . /usr/src/linux/script/ver_linux

prints out strange libc version when I run it
as a normal user. It prints out expected output if
I run it as superuser.

Output Example: Incorrect and correct examples.

  Binutils 2.10.0.26
! Linux C Library 1.3.so*
  Dynamic linker ldd: version 1.9.11
--- 7,9 ----
  Binutils 2.10.0.26
! Linux C Library 2.1.3
  Dynamic linker ldd: version 1.9.11

After playing with the ver_linux script,
I found that if the command "ls" is aliased to
"ls -aF", the output is incorrect.

Not that I alias "ls" for superuser, but
I usually write bug report, etc. in
a normal user account, and ls is
aliased to "ls -aF" there.

Here is a potential fix to "ver_script".
(Given the possibility of various shell binaries/shell
startup code setting, etc., I think the
common denomiator solution is to use the output of
which as the name of the ls binary.)

I didn't change the handling of other commands.
"ls" is likely to be aliased, but I wonder
whether other commands are aliased. YMMV.

Possible fix to ver_script is attached.


*** ver_linux Sun Feb 4 23:53:11 2001
--- /tmp/ver_linux Mon Feb 5 00:00:54 2001
***************
*** 7,12 ****
--- 7,19 ----
  PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH
  echo '-- Versions installed: (if some fields are empty or look'
  echo '-- unusual then possibly you have very old versions)'
+
+ # to avoid the effect of aliasing "ls" command.
+ # YMMV.
+ # (I am not sure if other commands require similar
+ # treatment.)
+ LS=`which ls`
+
  uname -a
  insmod -V 2>&1 | awk 'NR==1 {print "Kernel modules ",$NF}'
  echo "Gnu C " `gcc --version`
***************
*** 14,24 ****
        '/GNU Make/{print "Gnu Make ",$NF}'
  ld -v 2>&1 | awk -F\) '{print $1}' | awk \
        '/BFD/{print "Binutils ",$NF}'
! ls -l `ldd /bin/sh | awk '/libc/{print $3}'` | sed -e 's/\.so$//' \
    | awk -F'[.-]' '{print "Linux C Library " $(NF-2)"."$(NF-1)"."$NF}'
  echo -n "Dynamic linker "
  ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -1
! ls -l /usr/lib/lib{g,stdc}++.so 2>/dev/null | awk -F. \
         '{print "Linux C++ Library " $4"."$5"."$6}'
  ps --version 2>&1 | awk 'NR==1{print "Procps ", $NF}'
  mount --version | awk -F\- '{print "Mount ", $NF}'
--- 21,31 ----
        '/GNU Make/{print "Gnu Make ",$NF}'
  ld -v 2>&1 | awk -F\) '{print $1}' | awk \
        '/BFD/{print "Binutils ",$NF}'
! ${LS} -l `ldd /bin/sh | awk '/libc/ { print $3 } ' ` | sed -e 's/\.so$//' \
    | awk -F'[.-]' '{print "Linux C Library " $(NF-2)"."$(NF-1)"."$NF}'
  echo -n "Dynamic linker "
  ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -1
! ${LS} -l /usr/lib/lib{g,stdc}++.so 2>/dev/null | awk -F. \
         '{print "Linux C++ Library " $4"."$5"."$6}'
  ps --version 2>&1 | awk 'NR==1{print "Procps ", $NF}'
  mount --version | awk -F\- '{print "Mount ", $NF}'

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Feb 07 2001 - 21:00:19 EST