lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMuHMdV43-mcMutEzjXZkC1DfJc4j8by3mSJUV+rd+UcjGxQfQ@mail.gmail.com>
Date:   Tue, 27 Oct 2020 19:09:42 +0100
From:   Geert Uytterhoeven <geert@...ux-m68k.org>
To:     Saravana Kannan <saravanak@...gle.com>
Cc:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Rob Herring <robh@...nel.org>,
        Nicolas Saenz Julienne <nsaenzjulienne@...e.de>,
        Android Kernel Team <kernel-team@...roid.com>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v1] scripts/dev-needs: Add script to list device dependencies

Hi Saravana,

On Tue, Oct 27, 2020 at 6:31 PM Saravana Kannan <saravanak@...gle.com> wrote:
> On Tue, Oct 27, 2020 at 3:12 AM Geert Uytterhoeven <geert@...ux-m68k.org> wrote:
> > On Wed, Sep 2, 2020 at 12:51 AM Saravana Kannan <saravanak@...gle.com> wrote:
> > > This script can be useful for:
> > > - Figuring out the list of modules you need to pack in initrd
> > > - Figuring out the list of drivers you need to modularize for a device
> > >   to be fully functional without building in any dependencies.
> > > - Figuring out which drivers to enable first, when porting drivers
> > >   between kernels (say, to upstream).
> > > - Plotting graphs of system dependencies, etc.
> > >
> > > Usage: dev-needs.sh [-c|-d|-m|-f] [filter options] <list of devices>
> > >
> > > This script needs to be run on the target device once it has booted to a
> > > shell.
> > >
> > > The script takes as input a list of one or more device directories under
> > > /sys/devices and then lists the probe dependency chain (suppliers and
> > > parents) of these devices. It does a breadth first search of the dependency
> > > chain, so the last entry in the output is close to the root of the
> > > dependency chain.
> >
> > Thanks for your patch!
> >
> > > --- /dev/null
> > > +++ b/scripts/dev-needs.sh
> > > @@ -0,0 +1,315 @@
> > > +#! /bin/sh
> >
> > On Debian, where /bin/sh -> dash:
> >
> >     dev-needs.sh: 6: dev-needs.sh: Syntax error: "(" unexpected
>
> dash doesn't like () after the function name maybe? If so, we could
> drop it. I think it'll still work with toybox and bash.

That's not sufficient:

    ./dev-needs.sh: 47: ./dev-needs.sh: Syntax error: "}" unexpected

> > When using bash, I get:
> >
> > # ./dev-needs.sh /sys/devices/platform/soc/feb00000.display
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> >
> > # ./dev-needs.sh -c /sys/devices/platform/soc/feb00000.display
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
> > ./dev-needs.sh: line 255: detail: command not found
>
> This is odd. bash definitely works with this script on my Debian x86 machine.
>
> This error happens when the "detail" alias is not "seen" by the shell
> when it interprets detail_chosen function. Sigh, every shell seems to
> want a different order. Can you try to debug it on your end?

The bash man page says:

    Aliases are not expanded when the shell is not interactive,
    unless the expand_aliases shell option is set using shopt

And adding "shopt -s expand_aliases" at the top makes it work.

Nevertheless, the bash man page says "... do not use alias in
compound commands".

> This is the version I have:
> GNU bash, version 5.1.0(1)-rc1

# /bin/bash --version
GNU bash, version 5.0.3(1)-release (aarch64-unknown-linux-gnu)

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ