Re: A good time to switch to dash as /bin/sh?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Fri, Sep 26, 2014 at 6:06 PM, Mailing Lists
<mailinglists@xxxxxxxxxxxxxx> wrote:
>
> i just ran the "checkbashisms" script from the AUR on my /usr/bin using
> the command from the wiki:
>
> # checkbashisms -f -p $(grep -rlE '^#! ?/bin/(env )?sh' /usr/bin)
>
> which revealed 470 instances of putative bashisms in scripts using
> #!/bin/sh.

The grep would find some false positives -- e.g., some perl script might
include #!/bin/sh in its body (such as findimagedupes).

With dash you don't really need -p, which is more strict.

The following will reduce the count drastically:

    #!/bin/sh
    for f in /usr/bin/*; do
        test -f "$f" || continue
        sed -nr '
        /^#!/!d
        \@^#![[:space:]]*/bin/(env[[:space:]]+)?sh\>@q1
        q
        ' "$f" || checkbashisms -f "$f"
    done

This finds 259 instances for me, of which 208 instances are from a
*single* script /usr/bin/libtool -- which apparently really relies on bash.

Among The other instances of bashism, many are false positives (if we
had removed -f from the checkbashisms command line, some could have been
detected), but some are real, such as /usr/bin/bzgrep and /usr/bin/xbmc,
but they're mostly an easy fix for upstream.

> Assuming that these bashisms all come from upstream, patching
> and maintaining them would be a chore.

>From my inspection above, bashism is really not that wide spread.


[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux