Commit 4a645d5ea65baaa5736bcb566673bf4a351b2ad8 broke ver_linux
on etch which glibc has 3-digit version number. Patch replaces awk
wanking with more robust sed wanking.
Tested on gentoo, etch, centos 4.2.
Signed-off-by: Alexey Dobriyan <[email protected]>
---
scripts/ver_linux | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/scripts/ver_linux
+++ b/scripts/ver_linux
@@ -65,9 +65,9 @@ isdnctrl 2>&1 | grep version | awk \
showmount --version 2>&1 | grep nfs-utils | awk \
'NR==1{print "nfs-utils ", $NF}'
-ls -l `ldd /bin/sh | awk '/libc/{print $3}'` | sed \
--e 's/\.so$//' | sed -e 's/>//' | \
-awk -F'[.-]' '{print "Linux C Library "$(NF-1)"."$NF}'
+echo -n "Linux C Library "
+ls -l `ldd /bin/sh | awk '/libc/{print $3}'` | \
+ sed -e 's/.*libc-//' -e 's/\.so$//'
ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -n 1 | awk \
'NR==1{print "Dynamic linker (ldd) ", $NF}'
On 21/08/07, Alexey Dobriyan <[email protected]> wrote:
> Commit 4a645d5ea65baaa5736bcb566673bf4a351b2ad8 broke ver_linux
> on etch which glibc has 3-digit version number.
Whoops, sorry about that.
> Patch replaces awk
> wanking with more robust sed wanking.
>
> Tested on gentoo, etch, centos 4.2.
>
I tested your patch on Slackware 12.0, Debian 3.1 & Gentoo Base System
release 1.12.9 and it works fine on those as well.
> Signed-off-by: Alexey Dobriyan <[email protected]>
Tested-by: Jesper Juhl <[email protected]>
> ---
>
> scripts/ver_linux | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
--
Jesper Juhl <[email protected]>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html
On Tue, Aug 21, 2007 at 11:56:32AM +0200, Jesper Juhl wrote:
> On 21/08/07, Alexey Dobriyan <[email protected]> wrote:
> > Commit 4a645d5ea65baaa5736bcb566673bf4a351b2ad8 broke ver_linux
> > on etch which glibc has 3-digit version number.
>
> Whoops, sorry about that.
>
> > Patch replaces awk
> > wanking with more robust sed wanking.
> >
> > Tested on gentoo, etch, centos 4.2.
> >
> I tested your patch on Slackware 12.0, Debian 3.1 & Gentoo Base System
> release 1.12.9 and it works fine on those as well.
How about simply doing
sh -c 'cat /proc/$$/maps'|sed -n -e '/^.*\/libc-\([^/]*\)\.so$/{s//\1/;p;q}'
and to hell with parsing ls -l output?
On 22/08/07, Al Viro <[email protected]> wrote:
> On Tue, Aug 21, 2007 at 11:56:32AM +0200, Jesper Juhl wrote:
> > On 21/08/07, Alexey Dobriyan <[email protected]> wrote:
> > > Commit 4a645d5ea65baaa5736bcb566673bf4a351b2ad8 broke ver_linux
> > > on etch which glibc has 3-digit version number.
> >
> > Whoops, sorry about that.
> >
> > > Patch replaces awk
> > > wanking with more robust sed wanking.
> > >
> > > Tested on gentoo, etch, centos 4.2.
> > >
> > I tested your patch on Slackware 12.0, Debian 3.1 & Gentoo Base System
> > release 1.12.9 and it works fine on those as well.
>
> How about simply doing
> sh -c 'cat /proc/$$/maps'|sed -n -e '/^.*\/libc-\([^/]*\)\.so$/{s//\1/;p;q}'
> and to hell with parsing ls -l output?
>
Works for me.
--
Jesper Juhl <[email protected]>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html
On Wed, Aug 22, 2007 at 02:02:44AM +0200, Jesper Juhl wrote:
> > How about simply doing
> > sh -c 'cat /proc/$$/maps'|sed -n -e '/^.*\/libc-\([^/]*\)\.so$/{s//\1/;p;q}'
> > and to hell with parsing ls -l output?
> >
> Works for me.
or, simpler yet,
sed -n -e '/^.*\/libc-\([^/]*\)\.so$/{s//\1/;p;q}' </proc/self/maps
Fix ver_linux glibc version printing (for real this time)
Alexey Dobriyan reported that commit
4a645d5ea65baaa5736bcb566673bf4a351b2ad8
broke ver_linux when glibc has a 3 digit
version number, and proposed a patch.
Al Viro then suggested a simpler way to
solve the problem which I've then simply
put into patch form.
Signed-off-by: Alexey Dobriyan <[email protected]>
Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Jesper Juhl <[email protected]>
---
scripts/ver_linux | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/scripts/ver_linux b/scripts/ver_linux
index 8f8df93..5a16bad 100755
--- a/scripts/ver_linux
+++ b/scripts/ver_linux
@@ -65,9 +65,8 @@ isdnctrl 2>&1 | grep version | awk \
showmount --version 2>&1 | grep nfs-utils | awk \
'NR==1{print "nfs-utils ", $NF}'
-ls -l `ldd /bin/sh | awk '/libc/{print $3}'` | sed \
--e 's/\.so$//' | sed -e 's/>//' | \
-awk -F'[.-]' '{print "Linux C Library "$(NF-1)"."$NF}'
+echo -n "Linux C Library "
+sed -n -e '/^.*\/libc-\([^/]*\)\.so$/{s//\1/;p;q}' < /proc/self/maps
ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -n 1 | awk \
'NR==1{print "Dynamic linker (ldd) ", $NF}'
Al Viro <[email protected]> wrote:
| or, simpler yet,
|
| sed -n -e '/^.*\/libc-\([^/]*\)\.so$/{s//\1/;p;q}' </proc/self/maps
Or:
sed -n 's/^.*\/libc-\([^/]*\)\.so$/\1/p; T; q' < /proc/self/maps
--
Dick Streefland //// Altium BV
[email protected] (@ @) http://www.altium.com
--------------------------------oOO--(_)--OOo---------------------------
On Wed, Aug 22, 2007 at 03:11:56AM +0200, Jesper Juhl wrote:
>
> Fix ver_linux glibc version printing (for real this time)
>
> Alexey Dobriyan reported that commit
> 4a645d5ea65baaa5736bcb566673bf4a351b2ad8
> broke ver_linux when glibc has a 3 digit
> version number, and proposed a patch.
> Al Viro then suggested a simpler way to
> solve the problem which I've then simply
> put into patch form.
>
> Signed-off-by: Alexey Dobriyan <[email protected]>
> Signed-off-by: Al Viro <[email protected]>
> Signed-off-by: Jesper Juhl <[email protected]>
> ---
>
> scripts/ver_linux | 5 ++---
> 1 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/ver_linux b/scripts/ver_linux
> index 8f8df93..5a16bad 100755
> --- a/scripts/ver_linux
> +++ b/scripts/ver_linux
> @@ -65,9 +65,8 @@ isdnctrl 2>&1 | grep version | awk \
> showmount --version 2>&1 | grep nfs-utils | awk \
> 'NR==1{print "nfs-utils ", $NF}'
>
> -ls -l `ldd /bin/sh | awk '/libc/{print $3}'` | sed \
> --e 's/\.so$//' | sed -e 's/>//' | \
> -awk -F'[.-]' '{print "Linux C Library "$(NF-1)"."$NF}'
> +echo -n "Linux C Library "
> +sed -n -e '/^.*\/libc-\([^/]*\)\.so$/{s//\1/;p;q}' < /proc/self/maps
>
> ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -n 1 | awk \
> 'NR==1{print "Dynamic linker (ldd) ", $NF}'
>
Applied.
Sam